1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: Visos teisė, todėl tai yra CS50. 3 00:00:13,060 --> 00:00:15,040 Ir tai aiškiai penktadienį. 4 00:00:15,040 --> 00:00:16,850 Ir tai yra savaitės vienas galas. 5 00:00:16,850 --> 00:00:21,020 Taigi jums gali priminti, kad mes baigėte, Paskutinį kartą, su dvasia Įspūdingos filmą. 6 00:00:21,020 --> 00:00:25,020 Drauge mes atskleisti šį melą, kad nė Nesvarbu, ką jūs buvote mokomi auga 7 00:00:25,020 --> 00:00:31,610 iki 1 padalytą iš 10 nėra, į Faktas, 0.1 arba 0.100 arba 0,10000. 8 00:00:31,610 --> 00:00:35,270 Iš tiesų, jei mes kaupia šis programa, kaip mes padarėme vakar, su, 9 00:00:35,270 --> 00:00:39,770 kad paklaidos, o tada padaryti tašką, velniop, netikslumas, 10 00:00:39,770 --> 00:00:43,600 mes sužinojome, kad tai, kas 1, padalytą iš 10 iš tikrųjų yra. 11 00:00:43,600 --> 00:00:46,140 Taigi, kad tikrai ne visai tas atvejis. 12 00:00:46,140 --> 00:00:49,014 Bet tai nereiškia, užuominą į kai esminis apribojimas kompiuterius. 13 00:00:49,014 --> 00:00:50,930 Ir iš tiesų, tarp tai, ką mes ketiname daryti 14 00:00:50,930 --> 00:00:55,130 šiandien yra pažvelgti, kodėl tai turi išvaizdą atsitiko, kokį poveikį tai turi, 15 00:00:55,130 --> 00:00:58,430 kaip žmonija nesugebėjo suvokti tai kai labai 16 00:00:58,430 --> 00:01:00,410 rimtas situations-- nuo kurios rezultatas 17 00:01:00,410 --> 00:01:03,141 buvo gana tragiška ir expensive-- ir 18 00:01:03,141 --> 00:01:04,849 Pažvelgti, kaip mes žiūrime iš tiesų gali ginti 19 00:01:04,849 --> 00:01:06,530 prieš šių apribojimų rūšių. 20 00:01:06,530 --> 00:01:10,940 Taigi intuityviai, ko gero, kodėl 1, padalytą iš 10, 21 00:01:10,940 --> 00:01:15,480 pagal mano kompiuterio čia ne tik 1/10, 0,10? 22 00:01:15,480 --> 00:01:15,980 Taip. 23 00:01:15,980 --> 00:01:16,530 Ką tu manai? 24 00:01:16,530 --> 00:01:17,860 >> AUDITORIJA narys: Radix skiriasi? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: The kas yra? 26 00:01:18,550 --> 00:01:19,730 Oi, radix skiriasi? 27 00:01:19,730 --> 00:01:20,720 Taigi ne visai. 28 00:01:20,720 --> 00:01:23,200 Tai tikrai daugiau esminis įranga. 29 00:01:23,200 --> 00:01:23,980 Kitos mintys? 30 00:01:23,980 --> 00:01:24,584 Taip. 31 00:01:24,584 --> 00:01:26,750 AUDITORIJA narys: Jie atstovauti numerius kitaip? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Taigi they-- Teisė. 33 00:01:27,880 --> 00:01:29,338 Jie atstovauja numerius kitaip. 34 00:01:29,338 --> 00:01:30,700 Netiksliai, matyt. 35 00:01:30,700 --> 00:01:33,190 Taigi, kad is-- Na, skirtingai nuo ko? 36 00:01:33,190 --> 00:01:34,490 Arba iš kurių? 37 00:01:34,490 --> 00:01:35,050 Iš mus? 38 00:01:35,050 --> 00:01:35,966 AUDITORIJA narys: Taip. 39 00:01:35,966 --> 00:01:38,930 Jie nenaudoja dešimtainio sistema [nesigirdi]. 40 00:01:38,930 --> 00:01:39,680 DAVID J Malan: Gerai. 41 00:01:39,680 --> 00:01:41,560 Taigi, tam tikra prasme, jie neturi naudoti dešimtainę sistemą. 42 00:01:41,560 --> 00:01:43,720 Priešais gaubtu, viskas yra, iš tiesų, dvejetainis, 43 00:01:43,720 --> 00:01:45,510 ir tai susiję, iš tikrųjų. 44 00:01:45,510 --> 00:01:48,135 Bet tai dar paprastesnis paaiškinimas, kad ne. 45 00:01:48,135 --> 00:01:48,635 Taip. 46 00:01:48,635 --> 00:01:49,970 >> AUDITORIJA narys: Jie tik tiek daug bitai. 47 00:01:49,970 --> 00:01:52,370 Jie gali tik saugoti iki tam tikro kiek, kaip ir su kablelio. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J Malan: Taip. 49 00:01:52,780 --> 00:01:54,420 Tai, kas iš tikrųjų gauti į jį. 50 00:01:54,420 --> 00:01:57,180 Pasirodo, kad kompiuteriai Paprastai visada bus tik 51 00:01:57,180 --> 00:01:59,690 naudoti baigtinių informacijos kiekį atstovauti kažką. 52 00:01:59,690 --> 00:01:59,870 Teisė? 53 00:01:59,870 --> 00:02:02,110 Galų gale, mes turime tik fiksuotas suma laisvos vietos standžiajame diske. 54 00:02:02,110 --> 00:02:04,210 Mes turime tik fiksuotą sumą RAM, ar kompiuterio atmintis. 55 00:02:04,210 --> 00:02:06,251 Ir jei turite tik fiksuota suma kažką, 56 00:02:06,251 --> 00:02:09,611 Žinoma, jūs negalite iš tikrųjų skaičiuoti iki iki begalybės ar norimo numerio. 57 00:02:09,611 --> 00:02:11,610 Jūs, natūra, turi pasirinkti, kokiame intervale 58 00:02:11,610 --> 00:02:13,220 Vertybių jūs ketinate paremti. 59 00:02:13,220 --> 00:02:18,100 >> Ir taip, pavyzdžiui, savaitę ar dvi prieš kai mes kalbėjome apie ASCII, 60 00:02:18,100 --> 00:02:21,610 ir mes kalbėjome apie 8 bitai, arba baitas, taip sakant, 61 00:02:21,610 --> 00:02:26,360 didžiausias skaičius galėtume atstovauti 8 bitai buvo ką? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Ir mes galime atstovauti 256 bendras vertybes bet ne, jei mes praleidžiame vieną iš jų 64 00:02:31,850 --> 00:02:34,190 nuo 0-- Na, bet jei mes praleidžia vieną iš jų ant 0, 65 00:02:34,190 --> 00:02:36,830 tada didžiausias skaičius yra, žinoma, 255. 66 00:02:36,830 --> 00:02:39,410 >> Taigi, pasirodo, kad tai yra tuo atveju, taip pat, šiame kontekste. 67 00:02:39,410 --> 00:02:42,350 Mes pradėjome kalbėti, paskutinį kartą, apie slankiojo kablelio skaičių, kuris 68 00:02:42,350 --> 00:02:44,640 skiriasi nuo sveikųjų skaičių, ir kad jie turi kablelio 69 00:02:44,640 --> 00:02:47,056 ir, tikiuosi, kai numeriai po to, kad, bet jie yra per daug. 70 00:02:47,056 --> 00:02:51,730 Kompiuteris yra tik paprastai vyksta naudoti 32 bitus, o gal 64 bitų 71 00:02:51,730 --> 00:02:53,497 atstovauti slankiojo kablelio skaičius. 72 00:02:53,497 --> 00:02:56,080 Taigi, nors mes užaugo mokymosi matematikos ir žinant 73 00:02:56,080 --> 00:02:58,750 kad jūs galite turėti visiškai begalinis skaičius skaičiais 74 00:02:58,750 --> 00:03:01,650 po kablelio, o ne jei turite baigtinių atmintį. 75 00:03:01,650 --> 00:03:03,930 Jūs, natūra, turite apvalios, arba pasirinkti kurį 76 00:03:03,930 --> 00:03:05,346 numeriai jūs ketinate atstovauti. 77 00:03:05,346 --> 00:03:08,710 Ir todėl jūs galite galvoti, tam tikra prasme, tai yra kompiuteris artimiausių 78 00:03:08,710 --> 00:03:14,050 aproksimacija vertės 1/10, kad jis gali gauti, tik su 32 ar panašiai bitai. 79 00:03:14,050 --> 00:03:15,300 Ir tai ne tik 1/10. 80 00:03:15,300 --> 00:03:19,820 >> Pavyzdžiui, jei tai pakeisti į 1/3, kurį mes manome, yra dar paprasčiau. 81 00:03:19,820 --> 00:03:21,300 Taigi 1, padalytą iš 3. 82 00:03:21,300 --> 00:03:22,355 Leiskite išsaugoti failą. 83 00:03:22,355 --> 00:03:24,680 Leiskite man eiti į priekį ir perkompiliuoti ją. 84 00:03:24,680 --> 00:03:25,820 Ir leiskite man vėl ją paleisti. 85 00:03:25,820 --> 00:03:30,000 Čia taip pat, matyt, 1/3 nėra 0,3 ir tada begalinis skaičius 3 " 86 00:03:30,000 --> 00:03:30,770 vėliau. 87 00:03:30,770 --> 00:03:32,540 Turite šį netikslumą pabaigoje. 88 00:03:32,540 --> 00:03:35,544 Taigi mes, žmonės yra teisingi, ir ką sužinojau, iš tiesų, teisinga, 89 00:03:35,544 --> 00:03:37,460 bet mes nelygumai iki prieš kai kuriuos apribojimus. 90 00:03:37,460 --> 00:03:39,420 >> Ir ką aš maniau mes norime padaryti šiandien, yra pradėti 91 00:03:39,420 --> 00:03:42,190 pažvelgus, Atvirai kalbant, tragiškų pasekmių tai 92 00:03:42,190 --> 00:03:45,490 Kartais, kai žmonija ne visai įgyvendinti 93 00:03:45,490 --> 00:03:48,460 Šio realybės ir šių apribojimų. 94 00:03:48,460 --> 00:03:52,360 Ir mes pamatysite vinječių seriją iš istorijos kanalą, kuris trunka 95 00:03:52,360 --> 00:03:53,950 į tai, kaip viskas atrodo jau negerai. 96 00:03:53,950 --> 00:03:56,340 Tai apie 8 minučių ilgio, ir mes grįžti po to 97 00:03:56,340 --> 00:03:59,439 ir pažiūrėtų į tiksliai išvaizdą ką dar gali suklysti. 98 00:03:59,439 --> 00:04:00,605 Jei galėtume pritemdyti lights-- 99 00:04:00,605 --> 00:04:02,350 >> [Vaizdo įrašų atkūrimas] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Mes visi ateis priimti kad dažnai nelinksma problemų, kurios 101 00:04:06,310 --> 00:04:07,750 eiti su jais. 102 00:04:07,750 --> 00:04:11,370 Klaidos, virusų ir programinės įrangos trikdžių yra maži kainos 103 00:04:11,370 --> 00:04:13,230 mokėti už patogumą. 104 00:04:13,230 --> 00:04:17,519 Tačiau aukštųjų technologijų ir didelės spartos karinių ir kosmoso programos paraiškas, 105 00:04:17,519 --> 00:04:22,130 mažiausia problema gali Tebūna išaukštintas į katastrofą. 106 00:04:22,130 --> 00:04:27,750 Birželio 4, 1996, mokslininkai parengė pradėti nepilotuojamas Ariane 5 raketų. 107 00:04:27,750 --> 00:04:29,890 Jis nešėsi mokslo palydovai sukurta 108 00:04:29,890 --> 00:04:33,030 nustatyti tiksliai, kaip Žemės magnetinio lauko sąveikauja 109 00:04:33,030 --> 00:04:35,600 su saulės vėjų. 110 00:04:35,600 --> 00:04:37,930 Raketa buvo pastatytas Europos kosmoso agentūra 111 00:04:37,930 --> 00:04:41,620 ir pakilo iš savo įrenginio nuo Prancūzijos Gvianos priekrantės vandenų. 112 00:04:41,620 --> 00:04:44,924 >> -O Apie 30 sekundes į skrydis, jie pirmą kartą 113 00:04:44,924 --> 00:04:46,340 pastebėjau, kad kažkas negerai. 114 00:04:46,340 --> 00:04:49,280 Tai purkštukai buvo pasukami tokiu būdu jie tikrai neturėtų. 115 00:04:49,280 --> 00:04:53,042 Maždaug 40 sekundžių į skrydžio aiškiai automobilis buvo bėdų, 116 00:04:53,042 --> 00:04:55,250 ir tai, kai jie padarė sprendimas jį sunaikinti. 117 00:04:55,250 --> 00:04:58,970 Range Saugos pareigūnas milžiniškas viduriai paspaudėte mygtuką, 118 00:04:58,970 --> 00:05:03,940 susprogdino raketų, kol jis galėtų tapti pavojaus visuomenės saugumui. 119 00:05:03,940 --> 00:05:06,600 >> -Tai Buvo mergelė kelionė Ariane 5, 120 00:05:06,600 --> 00:05:09,270 ir jos naikinimo veiksmai buvo padėkite, nes škvalas 121 00:05:09,270 --> 00:05:10,992 įdėta į raketą programinės įrangos. 122 00:05:10,992 --> 00:05:12,700 -The Problema dėl Ariadnė buvo, kad 123 00:05:12,700 --> 00:05:15,370 buvo numeris, reikalingas 64 bitai išreikšti, 124 00:05:15,370 --> 00:05:18,150 ir jis norėjo paversti jį į 16 bitų skaičių. 125 00:05:18,150 --> 00:05:21,160 Jie prielaidą, kad skaičių buvo niekada nebus labai didelis, 126 00:05:21,160 --> 00:05:25,020 kad dauguma šių skaitmenų dydžio 64 bit skaičius buvo 0 aisiais. 127 00:05:25,020 --> 00:05:26,310 Jie buvo neteisūs. 128 00:05:26,310 --> 00:05:28,680 >> -The Vienas nesugebėjimas programa sutikti 129 00:05:28,680 --> 00:05:32,820 numeris, nurodytas rūšies generuoja kitas buvo ties gedimo šaknų. 130 00:05:32,820 --> 00:05:37,190 Programinės įrangos kūrimas tapo labai brangus dalis naujos technologijos. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 raketa buvo labai sėkmingas, tiek daug, programinės įrangos 132 00:05:40,760 --> 00:05:43,990 sukurta ji taip pat buvo naudojamas ant Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Pagrindinė problema buvo ta, kad Ariane 5 buvo greitesnis, pagreitinto greičiau. 134 00:05:49,750 --> 00:05:53,000 Ir programinė neturėjo sudarė tai. 135 00:05:53,000 --> 00:05:56,330 >> -Iš Raketų sunaikinimo buvo didžiulė finansinė katastrofa, 136 00:05:56,330 --> 00:05:59,670 visi dėl minučių programinės įrangos klaidos. 137 00:05:59,670 --> 00:06:01,990 Tačiau tai nebuvo pirmas laiko duomenų konvertavimo problemos 138 00:06:01,990 --> 00:06:05,310 buvo kentėjo modernią raketų technologiją. 139 00:06:05,310 --> 00:06:08,300 >> -in 1991, su pradžios Pirmojo Persijos įlankos karo, 140 00:06:08,300 --> 00:06:10,650 Patriot raketų patyrė panašų natūra 141 00:06:10,650 --> 00:06:12,650 skaičiaus perskaičiavimo problema. 142 00:06:12,650 --> 00:06:15,620 Kaip rezultatas, 28 žmonės, 28 amerikiečių kariai 143 00:06:15,620 --> 00:06:18,440 žuvo ir apie 100 žaizdos, 144 00:06:18,440 --> 00:06:21,900 kai Patriot, kuris turėjo apsaugoti nuo gaunamų scuds, 145 00:06:21,900 --> 00:06:24,630 nepavyko ugnį raketa. 146 00:06:24,630 --> 00:06:29,440 >> -Kai Irakas įsiveržė Kuveitas ir Amerikoje pradėjo Desert Storm 1991 pradžioje, 147 00:06:29,440 --> 00:06:33,800 Patriot raketų baterijos buvo dislokuota apsaugoti Saudo Arabija ir Izraeliu 148 00:06:33,800 --> 00:06:37,000 iš Irako Skadi raketų atakų. 149 00:06:37,000 --> 00:06:40,610 Patriot yra JAV, vidutinio nuotolio paviršius-oras sistemos 150 00:06:40,610 --> 00:06:43,010 pagaminti iš Raytheon kompanijos. 151 00:06:43,010 --> 00:06:49,080 >> -Iš Patriot Interceptor dydis, pati, apie, maždaug 20 pėdų ilgio. 152 00:06:49,080 --> 00:06:51,250 Ir ji sveria apie 2000 svarų. 153 00:06:51,250 --> 00:06:55,195 Ir ji vykdo daug about-- užtaisą Manau, kad tai maždaug 150 svarų. 154 00:06:55,195 --> 00:06:59,500 Ir užtaisą pati, yra didelė sprogstamoji, 155 00:06:59,500 --> 00:07:02,570 kuris turi fragmentus aplink jį. 156 00:07:02,570 --> 00:07:06,890 Iš galvutės korpusas sukurta veikti kaip šautuvo šratai. 157 00:07:06,890 --> 00:07:09,130 >> -The Raketos atliekami, 4 už konteinerį, 158 00:07:09,130 --> 00:07:12,080 ir yra gabenami puspriekabe. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot kovos raketinės sistemos nueina dabar bent 20 metų. 160 00:07:19,100 --> 00:07:22,320 Iš pradžių buvo suprojektuotas kaip priešlėktuvinės gynybos raketiniais 161 00:07:22,320 --> 00:07:24,180 nušauti priešo lėktuvus. 162 00:07:24,180 --> 00:07:27,860 Per pirmąjį Persijos įlankos karą, kai, kad karas atėjo kartu, 163 00:07:27,860 --> 00:07:32,745 armija norėjo jį naudoti numušti scuds, o ne lėktuvais. 164 00:07:32,745 --> 00:07:36,150 Irako pajėgų nebuvo tiek daug problemų, 165 00:07:36,150 --> 00:07:39,110 bet armijos buvo neramu apie scuds. 166 00:07:39,110 --> 00:07:42,340 Ir taip jie bandė atnaujinti Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Priešą raketa keliaujant mach penkių 168 00:07:44,760 --> 00:07:47,250 ketino būti pakankamai sudėtinga. 169 00:07:47,250 --> 00:07:50,000 Bet kai Patriot buvo skubėjome eksploatuoti, 170 00:07:50,000 --> 00:07:54,030 armija nebuvo žinoma, kad dėl Irako modifikacija, kad padarė 171 00:07:54,030 --> 00:07:56,840 jų scuds beveik neįmanoma hit. 172 00:07:56,840 --> 00:08:01,020 >> -Kas Atsitiko, yra scuds kad ateidavo į, buvo nestabili, 173 00:08:01,020 --> 00:08:02,310 jie buvo Įtaka. 174 00:08:02,310 --> 00:08:05,140 Dėl šios priežasties, buvo irakiečius, kad 175 00:08:05,140 --> 00:08:09,450 gauti 600 kilometrų iš 300 kilometrų nuotolio raketų, 176 00:08:09,450 --> 00:08:12,930 paėmė svorio iš priekio galvutės ir padarė užtaisą lengvesni. 177 00:08:12,930 --> 00:08:17,710 Taigi dabar, Patriot bando ateiti tuo Traukties, ir didžiąją dalį laiko, 178 00:08:17,710 --> 00:08:21,700 Dauguma iš laikas, tai būtų tiesiog skristi iš Skadi. 179 00:08:21,700 --> 00:08:25,700 >> -Kai The Patriot sistemų operatorių supratau Patriot praleido savo tikslą, 180 00:08:25,700 --> 00:08:29,790 jie susprogdino Patriot anketa užtaisą, išvengti galimų aukų, jei jis 181 00:08:29,790 --> 00:08:32,380 buvo leista patenka į žemę. 182 00:08:32,380 --> 00:08:36,340 >> Išmokėtą sumą buvo tai, ką dauguma žmonių matė, tie dideli ugnies danguje, 183 00:08:36,340 --> 00:08:41,289 ir nesuprato, kaip ašyje Skadi galvučių. 184 00:08:41,289 --> 00:08:43,590 Nors naktį dangus, patriotai atsirado 185 00:08:43,590 --> 00:08:47,020 būti sėkmingai sunaikinti scuds, bent Dhahran, 186 00:08:47,020 --> 00:08:49,730 ten gali būti ne klaida apie jos veiklą. 187 00:08:49,730 --> 00:08:53,990 Ten, Patriot radaras sistema neteko stebėti priimamą Skadi, 188 00:08:53,990 --> 00:08:56,650 ir niekada pradėjo, dėl to, kad programinės įrangos trūkumas. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Tai buvo Izraelio, kuris pirmą kartą atrado kad ilgiau sistema buvo įjungtas, 191 00:09:04,100 --> 00:09:07,510 tuo didesnis laiko neatitikimas tapo, nes laikrodis įterptųjų 192 00:09:07,510 --> 00:09:09,490 į sistemos kompiuterį. 193 00:09:09,490 --> 00:09:12,670 >> -About 2 savaites prieš Į Dhahran tragedija, 194 00:09:12,670 --> 00:09:15,010 Izraelis pranešė, kad Gynybos departamentas, 195 00:09:15,010 --> 00:09:17,940 kad sistema buvo prarasti laiką, kad maždaug po 8 valandų iš eilės, 196 00:09:17,940 --> 00:09:21,410 jie pastebėjo, kad sistema buvo tampa pastebimai mažiau tikslūs. 197 00:09:21,410 --> 00:09:25,290 Gynybos departamentas atsakė sakau visi Patriot baterijos 198 00:09:25,290 --> 00:09:28,070 ne palikti sistemas ant ilgą laiką. 199 00:09:28,070 --> 00:09:29,960 Jie niekada sakė, kas ilgą laiką buvo. 200 00:09:29,960 --> 00:09:30,460 8 valandas? 201 00:09:30,460 --> 00:09:30,960 10 valandas? 202 00:09:30,960 --> 00:09:31,870 1000 valandas? 203 00:09:31,870 --> 00:09:33,734 Niekas nežinojo. 204 00:09:33,734 --> 00:09:35,650 -The Patriot "baterija dislokuota kareivinėse 205 00:09:35,650 --> 00:09:40,410 ne Dhahran, o jo trūkumų vidaus laikrodis, Buvo per 100 valandų 206 00:09:40,410 --> 00:09:43,041 nuo vasario 25 naktį. 207 00:09:43,041 --> 00:09:47,416 >> -Tai Stebimi laiko tikslumas apie 1/10 sekundės. 208 00:09:47,416 --> 00:09:49,290 Dabar 1/10 antrasis yra įdomi skaičius 209 00:09:49,290 --> 00:09:52,700 nes ji gali būti ne išreikštas dvejetainiu, tiksliai. 210 00:09:52,700 --> 00:09:54,820 Tai reiškia, kad negali būti išreikštas, tiksliai, 211 00:09:54,820 --> 00:09:57,420 bet šiuolaikinio skaitmeninio kompiuterio. 212 00:09:57,420 --> 00:10:01,460 Sunku patikėti, bet tai naudoti kaip pavyzdys. 213 00:10:01,460 --> 00:10:03,520 Paimkime skaičių, 1/3. 214 00:10:03,520 --> 00:10:07,110 03/01 negali būti išreikšta dešimtaine, tiksliai. 215 00:10:07,110 --> 00:10:11,490 1/3 yra 0.333 vyksta už begalybės. 216 00:10:11,490 --> 00:10:15,486 Nėra taip, kaip tai padaryti, su absoliutus tikslumas, dešimtaine. 217 00:10:15,486 --> 00:10:18,360 Būtent tos pačios rūšies Problema, kad atsitiko Patriot. 218 00:10:18,360 --> 00:10:22,510 Kuo ilgiau sistema bėgo, The Blogiau laikas klaida tapo. 219 00:10:22,510 --> 00:10:28,420 >> -Po 100 veikimo valandų, klaida laiku buvo tik apie 1/3 sekundės. 220 00:10:28,420 --> 00:10:31,830 Tačiau kalbant apie skirtomis raketa keliaujant mach 5 221 00:10:31,830 --> 00:10:35,890 tai lėmė sekimo paklaida daugiau nei 600 metrų. 222 00:10:35,890 --> 00:10:38,970 Būtų lemtinga klaida už ne Dhahran karių. 223 00:10:38,970 --> 00:10:45,035 >> -Kas Atsitiko, yra Skadi paleidimas buvo aptikta išankstinio perspėjimo palydovai, 224 00:10:45,035 --> 00:10:48,930 ir jie new kad Skadi buvo ateina jų bendrą kryptį. 225 00:10:48,930 --> 00:10:51,170 Jie nežinojo, kur ji atėjo. 226 00:10:51,170 --> 00:10:53,990 >> -Tai Dabar buvo iki radaro komponentas Patriot sistema, 227 00:10:53,990 --> 00:10:58,520 ginti Dhahran, rasti ir išlaikyti kelio nuo gaunamus priešų raketos. 228 00:10:58,520 --> 00:10:59,690 >> -The Radaras buvo labai protingas. 229 00:10:59,690 --> 00:11:01,710 Būtų tikrai sekti Iš Skadi pozicija 230 00:11:01,710 --> 00:11:04,040 ir tada numatyti, kur tikriausiai jis toks ir būtų, 231 00:11:04,040 --> 00:11:06,140 kitą kartą, radaro siunčiami impulsas iš. 232 00:11:06,140 --> 00:11:07,660 Tai buvo vadinama asortimentas vartai. 233 00:11:07,660 --> 00:11:11,870 >> -Tada, Kai Patriot nusprendžia pakankamai laiko turi 234 00:11:11,870 --> 00:11:16,280 praėjo grįžti ir patikrinti kitą Vieta šiam aptiktą objektą, 235 00:11:16,280 --> 00:11:17,280 jis eina atgal. 236 00:11:17,280 --> 00:11:21,690 Taigi, kai jis grįžo į tą vieta, tai tada nemato objektą 237 00:11:21,690 --> 00:11:25,230 ir jis nusprendžia, kad nebuvo objektas, tai buvo klaidinga aptikimo, 238 00:11:25,230 --> 00:11:26,650 ir lašai takelį. 239 00:11:26,650 --> 00:11:29,690 Kadenciją Skadi dingo iš radaro ekrano, 240 00:11:29,690 --> 00:11:32,670 vėliau ir sekundes, ją pateko į kareivines. 241 00:11:32,670 --> 00:11:38,100 Skadi žuvo 28 ir buvo paskutinis vienas atleistas Pirmojo Persijos įlankos karo metu. 242 00:11:38,100 --> 00:11:43,460 Tragiška, atnaujinta programinė įranga atvyko Dhahran kitą dieną. 243 00:11:43,460 --> 00:11:46,150 Programinė įranga škvalas turėjo buvo fiksuota, uždarymas 244 00:11:46,150 --> 00:11:48,940 vienas skyrius neramus istorija Patriot raketos. 245 00:11:48,940 --> 00:11:50,220 >> [PABAIGA PLAYBACK] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Taigi mes pažvelgti kai kurie panašūs apribojimai tik šiek tiek. 247 00:11:54,340 --> 00:11:58,470 Bet pirmiausia, tegul perėjimas prie mažai FYI yra. 248 00:11:58,470 --> 00:12:01,575 Taigi one-- šį savaitgalį, yra bus super skyriai, 249 00:12:01,575 --> 00:12:04,200 kuris yra skirtas išstumia reguliarūs skyriai, kurie 250 00:12:04,200 --> 00:12:05,460 bus pradėti per savaitę, taigi. 251 00:12:05,460 --> 00:12:08,204 Pažvelkite į CS50 tinklalapyje išvaizdą Daugiau informacijos apie juos. 252 00:12:08,204 --> 00:12:11,120 Jie taip pat bus filmuojamas ir transliuojamas gyventi tiems, kurie negali dalyvauti. 253 00:12:11,120 --> 00:12:12,980 Problema nustatyti 1 yra ant Kursas tinklapyje jau 254 00:12:12,980 --> 00:12:15,105 ir mes pažvelgti kad tik šiek tiek. 255 00:12:15,105 --> 00:12:18,350 Ir darbo valandos per imsis įdėti šį pirmadienio iki ketvirtadienio. 256 00:12:18,350 --> 00:12:20,960 >> Taigi tai buvo labiausiai Canonical programa, mes pažvelgė paskutinį kartą. 257 00:12:20,960 --> 00:12:23,590 Tai kaip paprasčiausias programa, galite rašyti C, 258 00:12:23,590 --> 00:12:25,250 ir net tai iš paryškintu reikalavimo tiek. 259 00:12:25,250 --> 00:12:25,750 Teisė? 260 00:12:25,750 --> 00:12:28,070 Nes ten yra daug tariamas sudėtingumo tai. 261 00:12:28,070 --> 00:12:30,445 Taigi leiskite priimti greitai pažvelgti ką kai kurie iš šių elementų 262 00:12:30,445 --> 00:12:33,080 buvo ir tada pabandykite pateikti psichikos modelis, kaip 263 00:12:33,080 --> 00:12:35,710 tai paprasčiausias programų dirbti, ir tada mes pradėsime 264 00:12:35,710 --> 00:12:38,050 ieško dalykų vis sudėtingesnė. 265 00:12:38,050 --> 00:12:41,280 Taigi ši eilutė čia pabrėžė dabar geltonai, ko gi mes sakome, paskutinį kartą, 266 00:12:41,280 --> 00:12:43,200 kad tai daro mus? 267 00:12:43,200 --> 00:12:45,220 Koks tikslas ji tarnauja? 268 00:12:45,220 --> 00:12:46,984 Kiekvienas iš toliau atgal? 269 00:12:46,984 --> 00:12:47,483 Taip. 270 00:12:47,483 --> 00:12:48,649 >> AUDITORIJA narys: [nesigirdi] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J Malan: Geras. 273 00:12:51,704 --> 00:12:53,537 Taigi ji suteikia jums prieigą į komandas, arba tegul 274 00:12:53,537 --> 00:12:56,750 skambinti jiems funkcijas, kad kažkas kitur rašė, kad deklaruojami, 275 00:12:56,750 --> 00:12:58,350 taip sakant, į kitą failą. 276 00:12:58,350 --> 00:13:02,370 Taigi mes tiksliai pamatyti, ką .h failą yra palyginti su .c failas, galų gale. 277 00:13:02,370 --> 00:13:04,710 Bet dabar, tiesiog žinau, kad printf, pavyzdžiui, 278 00:13:04,710 --> 00:13:08,370 yra tarp funkcijų, kurios buvo deklaruota kitu failo, kažkur 279 00:13:08,370 --> 00:13:12,930 dar ant debesies kietajame diske, kad leidžia mums naudotis printf ir jį naudoti 280 00:13:12,930 --> 00:13:15,240 nereikia išradinėti kad rato save. 281 00:13:15,240 --> 00:13:16,930 Tuo tarpu pagrindinis. 282 00:13:16,930 --> 00:13:19,690 Koks buvo pagrindinis, praėjusią savaitę analoginis? 283 00:13:19,690 --> 00:13:20,190 Taip. 284 00:13:20,190 --> 00:13:21,460 >> AUDITORIJA narys: Žalioji vėliava paspaudėte. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J Malan: Taip. 286 00:13:21,740 --> 00:13:23,490 Įbrėžimams ųjų, kai žalia vėliava paspaudėte. 287 00:13:23,490 --> 00:13:25,560 Tai tarsi dėlionės gabalas kad prasideda ko ne. 288 00:13:25,560 --> 00:13:28,306 Ir taip panašiai, padarė pasaulį nusprendė prieš keletą metų, kad C, 289 00:13:28,306 --> 00:13:30,930 ir kitų kalbos krūva, jei norite parašyti programą, 290 00:13:30,930 --> 00:13:33,410 Jūsų pirmoji funkcija turi būti vadinamas pagrindiniu. 291 00:13:33,410 --> 00:13:34,641 Ir ji turi atrodyti taip. 292 00:13:34,641 --> 00:13:36,640 Bet mes grįžti, kitą kartą, į tai, ką, INT, 293 00:13:36,640 --> 00:13:38,690 ir tuščia, reiškia tame kontekste. 294 00:13:38,690 --> 00:13:42,860 Nes dabar, garbanotas petnešos yra natūra nuo nulio, kaip savo įspūdį formos 295 00:13:42,860 --> 00:13:45,080 kad apjungia keletą eilučių skaičių. 296 00:13:45,080 --> 00:13:47,070 Ir tarp linijose čia tai vienas čia. 297 00:13:47,070 --> 00:13:51,610 printf yra funkcija, kurios paskirtis gyvenimas yra atspausdinti suformatuotą eilutę. 298 00:13:51,610 --> 00:13:55,010 Ir suformatuotas, aš turiu galvoje tave gali prijungti placeholder vertybių, 299 00:13:55,010 --> 00:13:58,360 ir jūs galite nurodyti, kiek dešimtosios dalies Taškai, kiek numeriai spausdinti 300 00:13:58,360 --> 00:14:00,040 po kablelio ir pan. 301 00:14:00,040 --> 00:14:05,040 Ir printf, žinoma, užima vieną ar daugiau argumentų ar parametrai, 302 00:14:05,040 --> 00:14:06,770 kitaip žinomas, daugiau tiesiog, kaip įėjimai. 303 00:14:06,770 --> 00:14:09,230 >> Taigi printf, tarsi daug funkcijos, užima įėjimus. 304 00:14:09,230 --> 00:14:12,730 Ir tie įėjimai apkabino dviejų skliausteliuose čia. 305 00:14:12,730 --> 00:14:15,180 Ir viduje jų yra vienas įėjimas. 306 00:14:15,180 --> 00:14:18,600 Tai eilutė, kaip mes jį pavadino, kuri yra tik ženklų seka, 307 00:14:18,600 --> 00:14:22,310 kaip žodis arba frazė, ar apskritai esė net tarp kabutes. 308 00:14:22,310 --> 00:14:25,712 Ir tai, kas vyksta daryti įtaką elgesio printf nes, žinoma, 309 00:14:25,712 --> 00:14:27,170 tai tik bendrinis spausdinimo funkcijos. 310 00:14:27,170 --> 00:14:29,600 Jis nesiruošia žinoti, ką spausdinti, jei pasakys. 311 00:14:29,600 --> 00:14:31,000 Ir tada, kai individualiųjų požymių. 312 00:14:31,000 --> 00:14:34,056 Ką mes galime pasakyti tai keista simbolių seka yra? 313 00:14:34,056 --> 00:14:34,556 Taip. 314 00:14:34,556 --> 00:14:35,410 >> AUDITORIJA narys: Nauja linija. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J Malan: Naujas linija. 316 00:14:35,990 --> 00:14:39,340 Taigi paaiškėja, jūs negalite tiesiog paspauskite, įvesti, kai rašote programą. 317 00:14:39,340 --> 00:14:42,590 Apskritai, kompiliatorių ketina gauti šiek tiek supainioti, ką reiškia. 318 00:14:42,590 --> 00:14:45,340 Atvirkščiai, jūs turite tiesiog sako, duok man naują eilutę čia. 319 00:14:45,340 --> 00:14:49,506 Ir taip / n yra tai, ką mes paprastai skambinti pabėgti charakterį. 320 00:14:49,506 --> 00:14:50,870 Taigi n už naują eilutę. 321 00:14:50,870 --> 00:14:53,810 Ir kompiliatorius žino kad kai jis mato / n, 322 00:14:53,810 --> 00:14:57,420 ji iš tikrųjų turėtų sukelti kompiuterį, galiausiai, arba printf, šiuo atveju, 323 00:14:57,420 --> 00:15:00,260 spausdinti faktinė Naujas linija, kaip pataikyti, įveskite, 324 00:15:00,260 --> 00:15:01,480 klaviatūros klavišą. 325 00:15:01,480 --> 00:15:05,620 Ir galiausiai, ką padarė sakome Ši sintaksė gabalas yra? 326 00:15:05,620 --> 00:15:06,591 Ką tai reiškia? 327 00:15:06,591 --> 00:15:07,090 Taip. 328 00:15:07,090 --> 00:15:07,490 >> AUDITORIJA narys: [nesigirdi] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J Malan: Tai tiesiog geležinkelio linijos pabaigos. 330 00:15:08,660 --> 00:15:09,909 Tai pareiškimo pabaiga. 331 00:15:09,909 --> 00:15:11,890 Ir suprasti, kad mes ne įdėti juos visur. 332 00:15:11,890 --> 00:15:13,900 Mes, žinoma, nedėkite jų ne kiekvieno linijos galuose. 333 00:15:13,900 --> 00:15:16,680 Pavyzdžiui, ten nė dėl Pirmoji eilutė, ten nė viena ant linijos 334 00:15:16,680 --> 00:15:18,680 su, pagrindinė, ten nė viena po klamrami, 335 00:15:18,680 --> 00:15:21,740 bet jūs pradėsite matyti ir gauti susipažinęs su kur jis paragino. 336 00:15:21,740 --> 00:15:26,014 Ir tai beveik visada po funkcijos skambinti arba pareiškimas, kai veiksmai 337 00:15:26,014 --> 00:15:27,180 kad jūs iš tikrųjų atsižvelgiant. 338 00:15:27,180 --> 00:15:29,520 >> Ir dabar žinau, ypač jei tarp tų, mažiau patogus, 339 00:15:29,520 --> 00:15:32,540 tai yra kvailas dalykų rūšių kad jūs galų gale netyčia beldžiasi 340 00:15:32,540 --> 00:15:33,873 jūsų galva prieš daugiau nei sienos. 341 00:15:33,873 --> 00:15:36,107 Kadangi jums bus logiškai įsitikinę, kai problemos 342 00:15:36,107 --> 00:15:38,440 Jūs išspręsta problema rinkinys, ir velniškai dalykas tik 343 00:15:38,440 --> 00:15:40,187 nebus surinkti ar net paleisti. 344 00:15:40,187 --> 00:15:43,270 Ir taip dažnai, anksti, jis ketina būti, nes jūs praleidote skliaustų, 345 00:15:43,270 --> 00:15:44,455 arba jūs praleidote kabliataškį. 346 00:15:44,455 --> 00:15:46,547 Ir taip tiesiog turėti omenyje Šių rūšių dalykų, 347 00:15:46,547 --> 00:15:49,380 ir bandyti ne gauti nusivylė juos, nes labai greitai tai daro 348 00:15:49,380 --> 00:15:50,640 tapo sena skrybėlę. 349 00:15:50,640 --> 00:15:53,910 Bet tai labai lengva gauti nusivylusios anksti, kaip rezultatas. 350 00:15:53,910 --> 00:15:57,020 >> Taigi dabar leiskite pažvelgti, kaip atrodo Ši linija yra faktiškai dirba 351 00:15:57,020 --> 00:15:59,170 ir tada pažvelgti šiek tiek daugiau sudėtingas. 352 00:15:59,170 --> 00:16:02,017 Taigi, mes turime daugiau nei Čia gebėjimas atkreipti šiame ekrane. 353 00:16:02,017 --> 00:16:04,100 Ir tarkime, kad tai yra mano kompiuterio ekrane, 354 00:16:04,100 --> 00:16:08,589 bet aš rašau į Hello programą, ir aš neįgyvendino, printf. 355 00:16:08,589 --> 00:16:10,130 Kažkas kitas jau įgyvendinta, printf. 356 00:16:10,130 --> 00:16:12,420 Kas norėtų pretenduoti į Įgyvendinome printf? 357 00:16:12,420 --> 00:16:12,920 Jei mes gali? 358 00:16:12,920 --> 00:16:13,830 Gerai, kas yra jūsų vardas? 359 00:16:13,830 --> 00:16:14,155 >> STUDENTŲ 1: [? Akmuo. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J Malan: kopalas ateiti iki. 361 00:16:15,529 --> 00:16:16,430 Nagi iki. 362 00:16:16,430 --> 00:16:17,070 Gerai. 363 00:16:17,070 --> 00:16:22,260 Taigi, mes turime čia, kai žymos, nes mes padaryti šiek tiek žaidimas tai. 364 00:16:22,260 --> 00:16:26,270 Ir mes jums paskambinti, printf. 365 00:16:26,270 --> 00:16:30,170 Ir jei norite ateiti per čia ką aš ką tik sudarytas ekrane, 366 00:16:30,170 --> 00:16:32,340 tai tiesiog, ten mane, tai. 367 00:16:32,340 --> 00:16:35,550 >> Gerai, taip, labas mano vardas yra printf, jei norite įdėti, kad. 368 00:16:35,550 --> 00:16:35,740 Gerai. 369 00:16:35,740 --> 00:16:37,360 Ir jei galite eiti stendas pagal kompiuterio ekrane 370 00:16:37,360 --> 00:16:39,730 taip, tarsi jūs esate funkcija, buvo su šio kompiuterinėje sistemoje. 371 00:16:39,730 --> 00:16:42,063 Ir jūsų tikslas gyvenime yra kad iš tikrųjų spausdinti kažką. 372 00:16:42,063 --> 00:16:44,560 Bet labai panašus į programos mes tiesiog turėjo ekrane, čia, 373 00:16:44,560 --> 00:16:47,060 mes ketiname turi iš tikrųjų duoti jums šiek tiek įvestį. 374 00:16:47,060 --> 00:16:51,810 >> Ir taip, jei mano indėlis čia yra Matyt, tai, kas perduota printf, 375 00:16:51,810 --> 00:16:53,730 tegul rūšies išjuokti jį kaip šis. 376 00:16:53,730 --> 00:16:58,720 Aš ruošiuosi tiesiog rašyti popieriaus gabalas, "Sveikas, pasauli", 377 00:16:58,720 --> 00:17:03,020 Backslash N. Ir kad būtų aišku, kas Aš ką tik sudarytas dėl šio popieriaus, 378 00:17:03,020 --> 00:17:04,020 atrodo taip. 379 00:17:04,020 --> 00:17:08,730 Taigi, kai aš paleisti šią programą, ir tai geltona linija kodo paleidžiama vykdyti, 380 00:17:08,730 --> 00:17:12,970 tai taip, nors aš, Hello programos, esu atiduodami tam tikrą indėlį išjungti funkciją 381 00:17:12,970 --> 00:17:13,970 kad kažkas parašė. 382 00:17:13,970 --> 00:17:16,595 >> Ir jei jūs, su pirštu, realiai gali, su pirštu, 383 00:17:16,595 --> 00:17:21,520 piešti ant ekrano kokia tai jūs jau įteikė, 384 00:17:21,520 --> 00:17:27,465 poveikis, galiausiai, yra tiksliai pamatyti, kad ant ekrano. 385 00:17:27,465 --> 00:17:29,140 Ir šiek tiek kampelis atveju. 386 00:17:29,140 --> 00:17:31,540 Ir gerai, mes neturėtume pamatyti the, nauja linija, šiuo metu. 387 00:17:31,540 --> 00:17:33,900 Būtų neteisinga jumis aiškiai atkreipti ^ Z. 388 00:17:33,900 --> 00:17:36,810 Bet jei mes nuolat raštu žodžius, ekranas, jie galų gale žemiau, kad. 389 00:17:36,810 --> 00:17:39,560 >> Taigi labai ačiū, bet klijuoti aplink čia tik vieną akimirką. 390 00:17:39,560 --> 00:17:42,860 Dabar turime vieną kitą savanoris, jei galėtume, 391 00:17:42,860 --> 00:17:46,830 kad ketina reikia atlikti svarbų vaidmenį of-- tai tik žmonių orkestro 392 00:17:46,830 --> 00:17:47,355 dabar. 393 00:17:47,355 --> 00:17:47,980 Kaip about-- Gerai. 394 00:17:47,980 --> 00:17:48,480 Štai čia. 395 00:17:48,480 --> 00:17:49,180 Nagi iki. 396 00:17:49,180 --> 00:17:49,955 Koks tavo vardas? 397 00:17:49,955 --> 00:17:50,922 >> STUDENTŲ 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J Malan: Atsiprašome? 399 00:17:51,796 --> 00:17:52,990 STUDENTŲ 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J Malan: Etanas, nagi iki. 401 00:17:55,320 --> 00:17:55,820 Nėra? 402 00:17:55,820 --> 00:17:58,390 Ar aš galiu gauti, kad negerai, net po to, kai pasakė, kad du kartus? 403 00:17:58,390 --> 00:17:58,890 Nagi iki. 404 00:17:58,890 --> 00:18:00,030 Sunku girdėti čia. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 GERAI. 407 00:18:05,740 --> 00:18:07,190 Ir aš atsiprašau, koks tavo vardas? 408 00:18:07,190 --> 00:18:07,680 >> STUDENTŲ 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J Malan: Ivay. ?] GERAI. 410 00:18:08,790 --> 00:18:10,430 Nes dabar, jei jūs neturite Protas, jūs GetString. 411 00:18:10,430 --> 00:18:11,013 >> STUDENTŲ 2: Gerai. 412 00:18:11,013 --> 00:18:11,797 Atvėsti. 413 00:18:11,797 --> 00:18:14,630 DAVID J Malan: Taigi, jei norėtumėte stovėti čia tik akimirką, 414 00:18:14,630 --> 00:18:17,100 Paimkime pažvelgti šiek tiek sudėtingesnė programa, kad 415 00:18:17,100 --> 00:18:18,670 dabar turi tris eilutes kodo. 416 00:18:18,670 --> 00:18:24,080 Taigi, mes turime vieną, nurodykite savo vardą, naudojant printf; du, kvietimas GetString, 417 00:18:24,080 --> 00:18:28,060 po to iki A užduoties kintamasis vadinamas, styginių S arba vadinamas -ai; 418 00:18:28,060 --> 00:18:31,260 ir tada kitas skambutis, printf, bet šį kartą su dviem įėjimai. 419 00:18:31,260 --> 00:18:33,646 >> Taigi, mes jau padaryta būklė Jūsų vardas, arba, tiksliau, mes 420 00:18:33,646 --> 00:18:34,770 jau padariau printf skambutį. 421 00:18:34,770 --> 00:18:38,960 Taigi, aš ruošiuosi rašyti, Nurodykite savo vardą. 422 00:18:38,960 --> 00:18:42,089 Ir taip, ką aš ruošiuosi praeiti, printf, vos akimirką, 423 00:18:42,089 --> 00:18:43,005 yra paprasčiausiai tai. 424 00:18:43,005 --> 00:18:47,760 Taigi, jei norite eiti į priekį ir daryti tai ekrane, kad jūsų įvesties dabar. 425 00:18:47,760 --> 00:18:48,260 Gerai. 426 00:18:48,260 --> 00:18:51,160 Ir pamiršti eilutę, dabar mes turime mūsų pačių linija kodą čia. 427 00:18:51,160 --> 00:18:54,470 Taigi, GetString, turime kad iš tikrųjų skambinti, GetString. 428 00:18:54,470 --> 00:18:57,920 Taigi jūsų gyvenimo tikslas yra tiesiog vaikščioti išėję į orkestro, jei galėtų, 429 00:18:57,920 --> 00:18:58,980 ir gauti kažkieno vardą. 430 00:18:58,980 --> 00:19:00,860 Bet tegul duoti jums kažkas įdėti jį į. 431 00:19:00,860 --> 00:19:02,908 Jei norite, eikite į priekį ir gauti eilutę, 432 00:19:02,908 --> 00:19:05,241 gauti kažkieno vardą, kad gabalas popieriaus, jei gali. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Gerai. 435 00:19:13,530 --> 00:19:15,250 Ir mes pamatysime, vos akimirką, kurio vardas mes vis. 436 00:19:15,250 --> 00:19:17,630 Tuo tarpu, ką aš ruošiuosi turi pasiruošę, yra tuščias gabalas 437 00:19:17,630 --> 00:19:21,340 popieriaus, kuriame aš ruošiuosi saugoti kokia vertė ją 438 00:19:21,340 --> 00:19:25,752 yra tai, kad GetString grįžta į mane, Aš, būdamas styginių kintamasis vadinamas, Š. 439 00:19:25,752 --> 00:19:26,252 Gerai. 440 00:19:26,252 --> 00:19:27,293 Taigi, ką jūs turite čia? 441 00:19:27,293 --> 00:19:27,950 Nikas. 442 00:19:27,950 --> 00:19:28,450 Gerai. 443 00:19:28,450 --> 00:19:30,910 Taigi, mes turime Nik vardą čia. 444 00:19:30,910 --> 00:19:33,750 Taigi tai, kas pažodžiui buvo grąžintas 445 00:19:33,750 --> 00:19:35,810 man, taip sakant, pagal GetString. 446 00:19:35,810 --> 00:19:38,720 >> Aš, dabar einu vykdyti kairėje pusėje 447 00:19:38,720 --> 00:19:43,440 tos išraiškos, kur aš tiesiog nusikopijuokite, šiandienos tikslais, Nik. 448 00:19:43,440 --> 00:19:46,470 Taigi dabar turiu kintamąjį vadinamas, S, saugoti Nik vardą. 449 00:19:46,470 --> 00:19:49,520 Aš jau įteikė printf, ankstesnis argumentas. 450 00:19:49,520 --> 00:19:52,800 Tačiau mūsų trečiąją ir paskutinę eilutę kodas, aš iš tikrųjų turi ranka printf 451 00:19:52,800 --> 00:19:58,500 nors šiek tiek different-- "Sveiki% s" Backslash n. 452 00:19:58,500 --> 00:20:01,510 >> Ir taip paskutinė eilutė aš ruošiuosi į send-- paskutinis dalykas, aš tikiu, 453 00:20:01,510 --> 00:20:03,060 ketina užrašyti dabar tai. 454 00:20:03,060 --> 00:20:06,310 Taigi dvi eilutes kodo arba o paskutinės eilutės kodas, 455 00:20:06,310 --> 00:20:10,690 ragina dviejų inputs-- viena, tai, ir du, tai. 456 00:20:10,690 --> 00:20:13,330 Taigi, jei mūsų printf funkcija dabar gali priimti tai kaip indėlis, 457 00:20:13,330 --> 00:20:16,000 leiskite man išvalyti ekraną už jus. 458 00:20:16,000 --> 00:20:17,250 Tiesą sakant, ne, galite eiti į priekį. 459 00:20:17,250 --> 00:20:19,333 Mes palikti jį, nes tai tuo pačiu programą. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Turėtume pamatyti, hello, Nik. 462 00:20:27,380 --> 00:20:27,880 Gerai. 463 00:20:27,880 --> 00:20:29,670 Taigi tai buvo nemažai lankus peršokti per, tiesiog 464 00:20:29,670 --> 00:20:31,620 rašyti, nurodykite savo pavadinimą, ir labas, Nik. 465 00:20:31,620 --> 00:20:37,210 Tačiau ši paprasta idėja Message Passing, įvesties artimųjų ir išvesties gavimo, 466 00:20:37,210 --> 00:20:40,430 yra tiksliai modelis mes ketiname turėti už net labiausiai sudėtingų funkcijų. 467 00:20:40,430 --> 00:20:41,804 Taigi Thank you so much jums abiem. 468 00:20:41,804 --> 00:20:43,730 Mes turime gražių stresą rutulinis čia jums. 469 00:20:43,730 --> 00:20:48,890 Ir ačiū mūsų GetString ir printf savanoriai vienodai. 470 00:20:48,890 --> 00:20:49,551 Ačiū. 471 00:20:49,551 --> 00:20:50,050 Gerai. 472 00:20:50,050 --> 00:20:50,966 Dėkojame jums abiem. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Taigi, mes jau kalbame apie Iki šiol daugiausia apie stygos. 475 00:21:00,430 --> 00:21:06,550 Ir paaiškėja, kad C iš tikrųjų gali suprasti keletą skirtingų duomenų tipų. 476 00:21:06,550 --> 00:21:08,860 Iš tiesų, galime imtis Žvilgsnis tai čia. 477 00:21:08,860 --> 00:21:12,490 Taigi C ir kalbų daug, suprasti dalykus, vadinamus simbolių. 478 00:21:12,490 --> 00:21:16,852 Char paprastai yra vieno baito arba aštuonis bitus. 479 00:21:16,852 --> 00:21:19,810 Ir tai reiškia vieną simbolį, kaip laišku arba kapitalo 480 00:21:19,810 --> 00:21:21,990 raidė, arba mažosiomis raidėmis A arba šauktukas, 481 00:21:21,990 --> 00:21:25,440 arba bet kokio pobūdžio, kad galite įvesti į Jūsų klaviatūra, o kartais net daugiau. 482 00:21:25,440 --> 00:21:26,795 Mes taip pat atsitiktų pamatyti plūdės. 483 00:21:26,795 --> 00:21:31,160 Plūduras yra, plačiau, 32 bitų vertė arba keturių baitų 484 00:21:31,160 --> 00:21:33,660 nes vėl vienas baitas yra aštuoni bitai. 485 00:21:33,660 --> 00:21:36,675 >> Taigi plūdė yra slankiojo kablelio vertė, kažkas su kablelio. 486 00:21:36,675 --> 00:21:38,550 Ir iš tiesų, tai ką filmas buvo kalbama 487 00:21:38,550 --> 00:21:42,240 kai jie kalbėjo apie plaukiojantieji taško verčių, kai fiksuoto bitų skaičius 488 00:21:42,240 --> 00:21:43,940 naudojamas atstovauti tikrą numerį. 489 00:21:43,940 --> 00:21:45,740 Bet ten taip pat viskas vadinami dviviečiai kambariai. 490 00:21:45,740 --> 00:21:47,860 Tai egzistuoja Java, Jei atlikote APCs, 491 00:21:47,860 --> 00:21:51,540 ir dvigubai, nes pavadinimas laimei rodo, yra dvigubai didesnis plūdės. 492 00:21:51,540 --> 00:21:54,540 Jis vis dar realusis skaičius, jis tiesiog turi daugiau bitai 493 00:21:54,540 --> 00:21:58,390 su kuria būti dar tiksliau, ar saugoti, net didesnius numerius. 494 00:21:58,390 --> 00:21:58,890 INT yra paprasta. 495 00:21:58,890 --> 00:22:00,181 Mes kalbėjome apie tą paskutinį kartą. 496 00:22:00,181 --> 00:22:01,160 Tai tiesiog sveikas. 497 00:22:01,160 --> 00:22:03,980 Ir tai dažniausiai 32 bitai, arba keturių baitų. 498 00:22:03,980 --> 00:22:07,850 >> Ir taip, jei turite, pažiūrėkime dabar 32 bits-- ir mes tai padarėme savaitę 0, 499 00:22:07,850 --> 00:22:10,820 vis tiek briefly-- jei turite 32 bitų, kas didžiausias 500 00:22:10,820 --> 00:22:13,580 Taškų galite atstovauti kaip sveikasis skaičius? 501 00:22:13,580 --> 00:22:16,080 Suteikti arba užtrukti? 502 00:22:16,080 --> 00:22:18,380 Tai kaip 4 milijardai eurų, ir tai tik tada, jei mes 503 00:22:18,380 --> 00:22:20,690 atstovauja tik teigiamus skaičius. 504 00:22:20,690 --> 00:22:23,930 Jei turite 32 bitų, ir jūs norite atstovauti neigiamus skaičius, taip pat, 505 00:22:23,930 --> 00:22:27,100 Jūsų diapazonas yra iš esmės neigiamas 2 mlrd teigiamas 2 mlrd. 506 00:22:27,100 --> 00:22:29,250 Bet apskritai, mes pradėsime 0 eiti iki 4 mlrd. 507 00:22:29,250 --> 00:22:32,400 >> Jūs neturite tiksliai žinoti, bet matome tai, iš tiesų, jei aš tiesiog 508 00:22:32,400 --> 00:22:36,400 atverti šiek skaičiuoklė, čia. 509 00:22:36,400 --> 00:22:41,070 Galiu padaryti 2 32, ir tai tiksliai, kaip didelis, 510 00:22:41,070 --> 00:22:43,190 Kiek daug vertybių galite atstovauti, 32 bitai. 511 00:22:43,190 --> 00:22:44,442 Ir tai maždaug 4 mlrd. 512 00:22:44,442 --> 00:22:46,900 Taigi mes nuolat matau šį numerį per keletą skirtingose ​​vietose. 513 00:22:46,900 --> 00:22:48,890 Bet jei jums reikia daugiau numeriai nei, kad 514 00:22:48,890 --> 00:22:51,670 it turns out ten kažkas vadinamas ilgas ilgas. 515 00:22:51,670 --> 00:22:54,005 Ir ilgai ilgai paprastai 64 bitai, kurie 516 00:22:54,005 --> 00:22:56,380 reiškia, kad jis dydžio, kad net didesnis, nei int. 517 00:22:56,380 --> 00:22:59,510 >> Taigi, aš negaliu net ištarti didžiausia skaičius, kad jūs galite atstovauti, 518 00:22:59,510 --> 00:23:01,340 bet tai gerokai didesni. 519 00:23:01,340 --> 00:23:05,190 Dabar, kaip panaikinti, istoriškai, jei int yra 32 bitai, 520 00:23:05,190 --> 00:23:12,780 ir ilgai ilgai 64 bitai, kaip didelis yra ilgas, nėra ilgas ilgai? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Jūs manote, kad tai ilgiau nei int bet gal mažiau ilga, nei ilgas ilgas, 523 00:23:20,330 --> 00:23:21,400 bet ji iš tikrųjų priklauso. 524 00:23:21,400 --> 00:23:23,400 >> Ir taip it turns out vieną iš nusivylimų taip pat 525 00:23:23,400 --> 00:23:26,830 su raštu kodą tikroms sistemoms, yra tai, kad ne visi šie duomenų tipų 526 00:23:26,830 --> 00:23:28,440 turi iš anksto nustatytus vertybes. 527 00:23:28,440 --> 00:23:29,771 Kartais tai tik daug bitai. 528 00:23:29,771 --> 00:23:31,020 Kartais tai, kad daugelis bitai. 529 00:23:31,020 --> 00:23:32,750 Taigi jūs iš tikrųjų turite žinoti, kartais, kokios aparatūros 530 00:23:32,750 --> 00:23:34,083 vykdote savo programinę įrangą. 531 00:23:34,083 --> 00:23:36,960 Laimei, kitas kalbas ir kitų duomenų tipų, kad dabar egzistuoja, 532 00:23:36,960 --> 00:23:38,400 leidžia tiksliau. 533 00:23:38,400 --> 00:23:41,220 Na, mes matėme eilutę, ir pamatėme bool, taip pat, 534 00:23:41,220 --> 00:23:43,960 bet it turns out tie ateis tik su CS50 bibliotekoje. 535 00:23:43,960 --> 00:23:46,240 Taigi tie, kurie nebuvo pastatyta į C. Tie, vietoj to, 536 00:23:46,240 --> 00:23:49,340 ateiti į tą bylą, vadinamą CS50.h, kad mes galų gale 537 00:23:49,340 --> 00:23:51,831 Nuplėškite sluoksnių. 538 00:23:51,831 --> 00:23:53,830 Bet dabar, jie tiesiog papildomas duomenų tipai. 539 00:23:53,830 --> 00:23:57,060 Bool yra true arba false, ir eilutė yra ženklų seka, 540 00:23:57,060 --> 00:23:57,970 kaip žodžio. 541 00:23:57,970 --> 00:24:01,690 Dabar printf, mes matėme, turi pamainymai% s yra vienas. 542 00:24:01,690 --> 00:24:05,430 Ir jums gali būti suteikta, kad dabar numanyti iš šių kitų pavyzdžių, kaip 543 00:24:05,430 --> 00:24:07,720 Jums gali turėti vietos rezervavimo ženklą įvairių duomenų tipų. 544 00:24:07,720 --> 00:24:11,150 Pavyzdžiui, spėti, jei jums norėjo išspausdinti vieną char naudojant 545 00:24:11,150 --> 00:24:15,270 printf, pakaitalą yra turbūt% c. 546 00:24:15,270 --> 00:24:19,650 Ir jei norite spausdinti patikrinimą sveikasis skaičius su imituojančiu,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD yra ilgas ilgas Dešimtainis vertė, bet ilgai ilgai, todėl, kad žemėlapiai kad. 548 00:24:25,150 --> 00:24:28,640 Ir tada% f kintamosiomis punkto vertė arba dvigubas, 549 00:24:28,640 --> 00:24:31,270 todėl kartais jie pakartotinai naudojamas skirtinguose kontekstuose. 550 00:24:31,270 --> 00:24:33,350 Taigi mes pamatysime ir naudoti kai kurios laikui bėgant. 551 00:24:33,350 --> 00:24:36,420 Ir printf ir kitas funkcijas taip pat padėti kitiems "evakuacijos sekas, 552 00:24:36,420 --> 00:24:38,080 o kartais, tai yra būtina. 553 00:24:38,080 --> 00:24:39,770 Taigi Backslash n yra nauja eilutė. 554 00:24:39,770 --> 00:24:42,886 Kairinis pasvirasis brūkšnys t, Ar kas nors nori imtis Pabandyti? 555 00:24:42,886 --> 00:24:43,760 AUDITORIJA narys: Skirtukas. 556 00:24:43,760 --> 00:24:44,551 DAVID J Malan: Skirtukas. 557 00:24:44,551 --> 00:24:46,810 Taigi, jei jūs tikrai norite spausdinti skirtuką, o ne 558 00:24:46,810 --> 00:24:49,940 nustatytą skaičių erdvėse, bet tikrasis skirtukas simbolių, jums nereikia nukentėjo jūsų, 559 00:24:49,940 --> 00:24:53,490 skirtuką, klaviatūros klavišą, paprastai, jūs iš tikrųjų padaryti backslash t. 560 00:24:53,490 --> 00:24:57,750 Kairinis pasvirasis brūkšnys dvigubai citata, kodėl turėčiau norėti, kad? 561 00:24:57,750 --> 00:24:58,250 Teisė? 562 00:24:58,250 --> 00:25:00,417 Kodėl aš negaliu tiesiog įveskite dvigubas citata mano klaviatūros? 563 00:25:00,417 --> 00:25:02,124 AUDITORIJA narys: Nes kitaip, tai 564 00:25:02,124 --> 00:25:04,830 ketina manau, kad tai pabaiga panašaus spausdinimo [? teksto. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: Būtent. 566 00:25:05,420 --> 00:25:07,211 Atminkite, kad su mūsų printf pavyzdžiai, kai mes 567 00:25:07,211 --> 00:25:10,075 eidavo į printf į įvestį, dėl šios įvesties eilutę kairėje 568 00:25:10,075 --> 00:25:12,950 ir dėl šios įėjimo dešinėje pavasarį, žinoma, buvo dvigubai citata. 569 00:25:12,950 --> 00:25:16,270 Jei jūsų įvestis turi dvigubai citata viduryje, kad, 570 00:25:16,270 --> 00:25:18,920 kompiuteris potencialiai gali susipainioti, nes į, 571 00:25:18,920 --> 00:25:20,760 daro šį dvigubą citata priklauso viduryje? 572 00:25:20,760 --> 00:25:22,150 Ar tai priklauso kairiuoju vieną? 573 00:25:22,150 --> 00:25:23,566 Ar tai priklauso su teise vieną? 574 00:25:23,566 --> 00:25:26,780 Ir taip, jei norite, kad jis super aišku, jūs backslash dvigubos kabutės, 575 00:25:26,780 --> 00:25:30,480 taip, kad jis pabėgo, taip sakant, ir tai ne sietų kažkas. 576 00:25:30,480 --> 00:25:34,400 Ir ten keletą kitų čia Backslash r Viengubomis kabutėmis, 0, 577 00:25:34,400 --> 00:25:36,510 kad mes gali matyti, laikui bėgant, taip pat. 578 00:25:36,510 --> 00:25:37,760 O dabar, ką apie funkcijas? 579 00:25:37,760 --> 00:25:41,630 >> Taigi veiksmų, kad mes galime imtis iki šiol šia kalba C, gerai, mes matėme, 580 00:25:41,630 --> 00:25:44,320 printf, žinoma, ir visi iš ekrane kitiems, 581 00:25:44,320 --> 00:25:47,140 čia, kad mes naudosime už tik žinoma pirmieji keletą savaičių, 582 00:25:47,140 --> 00:25:48,485 ateiti, kai CS50 biblioteką. 583 00:25:48,485 --> 00:25:51,850 Ir jie daug lengviau, ir C faktiškai gauti vartotojo įvesties. 584 00:25:51,850 --> 00:25:54,200 Pasirodo, kad C, ir atvirai per kelias kalbas, 585 00:25:54,200 --> 00:25:57,450 tai tikras skausmas, kaklo daryti kažkas paprasta, kaip greitai vartotojas 586 00:25:57,450 --> 00:26:01,310 už klaviatūros, už savo indėlį. 587 00:26:01,310 --> 00:26:03,240 Ir taip šios funkcijos lengviau. 588 00:26:03,240 --> 00:26:05,472 >> Ir jis taip pat turi klaidą tikrinti visą, 589 00:26:05,472 --> 00:26:07,180 taip, kad, kai jūs prisiminti trečiadienį, mes 590 00:26:07,180 --> 00:26:09,740 pamačiau, bandykite dar kartą, įspėjimas, kai aš nebendradarbiavo, 591 00:26:09,740 --> 00:26:11,700 ir aš įvedėte Žodžiu, vietoj skaičių? 592 00:26:11,700 --> 00:26:15,402 Mes padarėme didelių svorių iškėlimą anksti į įsitikinkite, kad vartotojas bendradarbiauja. 593 00:26:15,402 --> 00:26:17,860 Tačiau tai yra tik mokymo ratai, kad mes galų gale, 594 00:26:17,860 --> 00:26:19,640 ir greitai, kilimo. 595 00:26:19,640 --> 00:26:22,630 >> Taigi, norint Priminti tada, tegul priimti greitai pažvelgti, 596 00:26:22,630 --> 00:26:26,620 panašiai kaip mes padarėme su nulio, esant kai kanoninės konstruktai C 597 00:26:26,620 --> 00:26:28,580 Tai reiškia, kad, rūšiuoti d būti viesulas kelionė, 598 00:26:28,580 --> 00:26:30,990 tik todėl, kad jūs turite nuorodą ir kad jūs matėte, ką iš pradžių. 599 00:26:30,990 --> 00:26:34,100 Bet tada mes pažvelgti faktinio kodavimo naudoti kai kurie iš šių statybinių blokų. 600 00:26:34,100 --> 00:26:36,710 Taigi, panašiai kaip nulio, kai mes buvome pareiškimai patinka, 601 00:26:36,710 --> 00:26:41,570 sako arba laukti, C, mes turime funkcijos taip pat, kaip printf. 602 00:26:41,570 --> 00:26:45,350 >> Jei norime išreikšti būklę C, jis panašus, dvasia, 603 00:26:45,350 --> 00:26:47,840 tai įspūdį, kad Atrodė tai nulio. 604 00:26:47,840 --> 00:26:49,850 Bet vietoj to, mes pažodžiui tik rašyti, jei. 605 00:26:49,850 --> 00:26:51,830 Ir tada, skliausteliuose, mes įdėti sąlygą, 606 00:26:51,830 --> 00:26:54,807 kur ši sąlyga yra tai, ką mes vėl skambinti,, Būlio išraiška. 607 00:26:54,807 --> 00:26:56,390 Ir vėl, tai yra tarsi Pseudocode. 608 00:26:56,390 --> 00:26:58,830 Ir, tiesą sakant, // yra komentaras. 609 00:26:58,830 --> 00:27:00,550 Tai tik angliškus žodžius sau. 610 00:27:00,550 --> 00:27:03,000 Bet tai yra bendra struktūra yra, jei būklę. 611 00:27:03,000 --> 00:27:05,220 Bet mes pamatysime betono pavyzdžiai tik akimirką. 612 00:27:05,220 --> 00:27:07,960 >> Jei norite turėti dvipusis kelio išsišakojimas, 613 00:27:07,960 --> 00:27:11,740 panašiai kaip mes padarėme mūsų savanoriauja Trečiadienis, jūs galite turėti, kitas, jei. 614 00:27:11,740 --> 00:27:16,020 Ir jei jūs norite turėti trečią ir Paskutine sąlyga, ar numatytasis situacija, 615 00:27:16,020 --> 00:27:19,006 Jūs galite turėti tik kita blokas, ten. 616 00:27:19,006 --> 00:27:21,880 Ir panašiai, ir loginės išraiškos, jūs galite, ir juos kartu. 617 00:27:21,880 --> 00:27:24,296 Ir mes matėme trečiadienį, kad tai ne vienas Ampersand, 618 00:27:24,296 --> 00:27:28,220 tai du, už žemesnio lygio priežasčių, mes galų gale pamatyti ir žaisti. 619 00:27:28,220 --> 00:27:30,410 Arba-mas dalykų kartu yra 2 vertikalios juostos. 620 00:27:30,410 --> 00:27:32,240 Dėl JAV klaviatūra, tai paprastai yra pagrindinis 621 00:27:32,240 --> 00:27:35,730 su Shift klavišą aukščiau Jūsų klavišą Enter arba grąžinti klavišą. 622 00:27:35,730 --> 00:27:38,620 >> Tada ten šiuos dalykus, kad mes naudosime gal kartą ar du kartus. 623 00:27:38,620 --> 00:27:42,570 Jie yra funkciškai lygiavertės ką galite daryti su an, jei kitur, jei 624 00:27:42,570 --> 00:27:44,950 else if kitur, statyti, bet jie vadinami jungiklis. 625 00:27:44,950 --> 00:27:48,020 Jie atrodo labai skirtingi, bet mes matyti kai mūsų platinimo kodą, 626 00:27:48,020 --> 00:27:51,890 būsimos problemos rinkinys, greičiausiai, kad kartais tiesiog gražiau 627 00:27:51,890 --> 00:27:54,060 iš būdų išreikšti visumą krūva sąlygų, 628 00:27:54,060 --> 00:27:57,590 be daug garbanotas petnešos daug ir iš skliausteliuose ir įdubimas daug. 629 00:27:57,590 --> 00:28:01,910 Bet jie suteikia mums ne daugiau galios, nei turime jau. 630 00:28:01,910 --> 00:28:02,550 Ir dabar kilpų. 631 00:28:02,550 --> 00:28:05,020 Ir tai viena, mes pažvelgti bent šiek tiek daugiau lėtai. 632 00:28:05,020 --> 00:28:08,470 Bet tada mes pradėsime naudoti jų ypač tiems, kurie jau susipažinę. 633 00:28:08,470 --> 00:28:13,830 Tai Canonical būdu, jei neįtikėtinai slaptas būdas, parašyti C kilpa 634 00:28:13,830 --> 00:28:15,896 >> Dabar į nulio kilpa buvo gana paprasta. 635 00:28:15,896 --> 00:28:17,020 Jūs turite visada, kad blokas. 636 00:28:17,020 --> 00:28:19,760 Jūs turite, pakartokite, blokas su tik skaičius turite įvesti. 637 00:28:19,760 --> 00:28:22,220 Ir su, už kilpos, galite įgyvendinti ir iš tų idėjų, 638 00:28:22,220 --> 00:28:23,595 bet tai šiek tiek daugiau techninio pobūdžio. 639 00:28:23,595 --> 00:28:25,994 Bet tiesą sakant, jis taip pat gana paprasta. 640 00:28:25,994 --> 00:28:28,160 Kai žinote užsakymo operacijos, jums tiesiog 641 00:28:28,160 --> 00:28:30,910 yra tik ketina prijungti vertybių ir pasakykite kompiuterį, ką daryti. 642 00:28:30,910 --> 00:28:32,800 Taigi čia pavyzdys. 643 00:28:32,800 --> 00:28:38,040 Tai yra, kad kilpa, gana tiesiog, skaičiuoja nuo vieno skaičių iki 644 00:28:38,040 --> 00:28:40,187 per kitą. 645 00:28:40,187 --> 00:28:42,020 Ir tik skaitydamas į jį, net jei jūs turite 646 00:28:42,020 --> 00:28:44,660 ne prieš patirtimi su Ši kalba, ką numeris 647 00:28:44,660 --> 00:28:46,920 tai tikriausiai pradėti skaičiuoti ne? 648 00:28:46,920 --> 00:28:47,730 Gerai, 0. 649 00:28:47,730 --> 00:28:50,240 Ir spėju, kad todėl, kad jūsų matyti, kad ten int ir i 650 00:28:50,240 --> 00:28:51,073 kuris yra kintama. 651 00:28:51,073 --> 00:28:52,390 Tai inicializuoti 0. 652 00:28:52,390 --> 00:28:55,670 >> Ir vėliau, atrodo, mes artimųjų printf, vertės. 653 00:28:55,670 --> 00:28:58,000 Ir, tiesą sakant, aš padariau šiek tiek typo čia. 654 00:28:58,000 --> 00:28:59,850 Bet tai lengvai nustatoma. 655 00:28:59,850 --> 00:29:02,390 Leiskite man pridėti, čia. 656 00:29:02,390 --> 00:29:06,150 Mes dabar turime printf savijautą išlaikė tą vietaženklį vertę. 657 00:29:06,150 --> 00:29:08,299 Ir tai, kas vyksta skaičiuoti ne per? 658 00:29:08,299 --> 00:29:08,840 Auditorija: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J Malan: 49. 662 00:29:10,910 --> 00:29:13,340 Taigi 50, iš pirmo žvilgsnio, atrodo teisinga. 663 00:29:13,340 --> 00:29:16,990 Bet tai, it turns out, bus Mūsų sąlyga, kad mes nuolat tikrinti. 664 00:29:16,990 --> 00:29:21,740 Ir mes ketiname sustabdyti kartą i yra ne ilgiau mažiau kaip 50. 665 00:29:21,740 --> 00:29:24,920 Taigi, tai kilpa, atvirkščiai, turėtų vykdyti, tol, kol i yra mažiau nei 50. 666 00:29:24,920 --> 00:29:28,891 Bet kaip tik jis tampa 50, arba 51, arba, dar blogiau, ji turėtų nustoti automatiškai. 667 00:29:28,891 --> 00:29:29,390 Gerai. 668 00:29:29,390 --> 00:29:31,200 >> Taigi, kas iš tikrųjų vyksta čia? 669 00:29:31,200 --> 00:29:33,160 Taigi tai yra tam operacijos kilpą. 670 00:29:33,160 --> 00:29:35,440 Vienas iš jų, jūs turite Vadinamasis iniciacijos. 671 00:29:35,440 --> 00:29:38,264 Ši geltona pabrėžė riekė kodo vykdomas pirmą kartą, 672 00:29:38,264 --> 00:29:40,930 ir ji turi tokį poveikį, kad, vienam Trečiadienis, jūs tikriausiai įsivaizduoti. 673 00:29:40,930 --> 00:29:45,500 Tai sukuria kintamąjį vadinamas I ir ją parduotuvių, kad kintamasis vertė 0. 674 00:29:45,500 --> 00:29:47,560 Taigi aš yra 0 šiuo metu į istoriją. 675 00:29:47,560 --> 00:29:49,680 >> Kitas dalykas, kad vyksta šiame konstruktą, 676 00:29:49,680 --> 00:29:51,540 yra tai, kad sąlyga bus tikrinama. 677 00:29:51,540 --> 00:29:54,325 Taigi aš patikrinti iš karto, yra i mažiau nei 50? 678 00:29:54,325 --> 00:29:57,700 Ir, žinoma, atsakymas dabar yra, be abejo, taip. 679 00:29:57,700 --> 00:30:00,710 Taip, nes i yra 0, ir tai tikrai mažiau nei 50. 680 00:30:00,710 --> 00:30:03,866 Tada, kas atsitinka, yra ta, kad šis linija kodą paleidžiama vykdyti. 681 00:30:03,866 --> 00:30:06,740 Ir iš tikrųjų, jei yra išsėtinė eilučių kodo tose garbanotas petnešos, 682 00:30:06,740 --> 00:30:09,020 jie visi gauti įvykdytas vienas po kito. 683 00:30:09,020 --> 00:30:11,450 >> Ir efektas čia yra Matyt, atsispausdinti 684 00:30:11,450 --> 00:30:15,365 numeris i, kurios vyksta būti 0, ir tada 1, ir tada 2. 685 00:30:15,365 --> 00:30:15,865 Bet kodėl? 686 00:30:15,865 --> 00:30:17,410 Kodėl tai gauti vienetu? 687 00:30:17,410 --> 00:30:20,680 Na, ketvirtas dalykas, kad atsitinka, kad šioje sintaksę 688 00:30:20,680 --> 00:30:22,610 paleidžiama vykdyti po kabliataškiu. 689 00:30:22,610 --> 00:30:27,506 Aš ++ yra sutrumpinimas būdas pasakyti; imtis I vertę ir pridėti 1 prie jo; 690 00:30:27,506 --> 00:30:30,380 ir tada, kai kitą kartą aplink, pridėti 1 su ja; ir kitą kartą aplink, 691 00:30:30,380 --> 00:30:31,330 pridėti 1 į jį. 692 00:30:31,330 --> 00:30:33,640 >> Taigi, jei mes nuolat vyksta, kas nutiks 693 00:30:33,640 --> 00:30:35,890 Kitas yra, aš nesiruošia inicijuoti aš kada nors vėl. 694 00:30:35,890 --> 00:30:38,290 Jei aš nuolat Inicijuojama i 0, šis pavyzdys 695 00:30:38,290 --> 00:30:41,110 būtų niekada nesibaigs, nes Būčiau įstrigo 0. 696 00:30:41,110 --> 00:30:43,870 Bet kas nutiks yra kad sąlyga bus tikrinama, 697 00:30:43,870 --> 00:30:54,280 kodinių linija gaus įvykdytas, i bus didinamas, 698 00:30:54,280 --> 00:30:56,970 sąlyga bus tikrinama, kodas gaus įvykdytas. 699 00:30:56,970 --> 00:30:59,790 Ir tai laikoma dviračiu vėl, ir vėl, ir vėl, 700 00:30:59,790 --> 00:31:03,340 kol i ++ sukelia vertę 50. 701 00:31:03,340 --> 00:31:05,870 >> Sąlyga tada sako, yra mažiau nei 50 50? 702 00:31:05,870 --> 00:31:09,360 Atsakymas, žinoma, yra ne, ir todėl visa kodas sustoja vykdyti. 703 00:31:09,360 --> 00:31:13,020 O jei turite daugiau kodą ekrane apačioje, tai, kas vyksta šalia. 704 00:31:13,020 --> 00:31:17,530 Ji pasirodo iš šių garbanotas petnešos ir toliau spausdinti daugiau po to. 705 00:31:17,530 --> 00:31:20,470 >> Taigi pokštas dabar iš Foxtrot, kad jūs galbūt dabar suprasti. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Jis visada juokinga. 708 00:31:31,560 --> 00:31:34,110 Tai kaip chuckles rūšies prasismelkti, 709 00:31:34,110 --> 00:31:38,370 ir tada jūs suprasite, jūs neturėtumėte būti juokiasi humoro, kaip šis. 710 00:31:38,370 --> 00:31:41,160 Tačiau yra tam tikrų Takeaway čia pedagogiškai, taip pat. 711 00:31:41,160 --> 00:31:43,577 Taigi paaiškėja, kad aš trūksta sintaksės gabalas, 712 00:31:43,577 --> 00:31:45,410 arba Foxtrot s trūksta gabalas sintaksė čia. 713 00:31:45,410 --> 00:31:48,076 Ko trūksta, kad mes turėjome visais kitais Pavyzdžiui, iki šiol? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Sugrįžk, yra ten, kad tai kažkas, 716 00:31:53,390 --> 00:31:54,440 kad mes grįžti į prieš ilgas. 717 00:31:54,440 --> 00:31:55,398 Ko trūksta, nors? 718 00:31:55,398 --> 00:31:55,908 Taip. 719 00:31:55,908 --> 00:31:58,150 >> AUDITORIJA nariams: iniciacijos [nesigirdi]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J Malan: Gerai. 721 00:31:58,470 --> 00:31:58,980 Taigi taip. 722 00:31:58,980 --> 00:32:03,210 Taigi iš tikrųjų, tai is-- Na, ir skaičius yra inicializuoti 723 00:32:03,210 --> 00:32:05,470 iki pirmiau, arba, tiksliau, deklaruojamos iki viršaus. 724 00:32:05,470 --> 00:32:06,960 Taigi tai yra dar vienas būdas tai daryti. 725 00:32:06,960 --> 00:32:08,685 Tačiau ne vienoje linijoje, tai galioja, nors. 726 00:32:08,685 --> 00:32:09,310 Kaip apie čia? 727 00:32:09,310 --> 00:32:10,196 >> AUDITORIJA narys: Ar tai garbanotas petnešos? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J Malan: Taip. 729 00:32:10,640 --> 00:32:12,080 Taigi garbanotas petnešos trūksta. 730 00:32:12,080 --> 00:32:15,495 Tačiau šis kodas, aš turiu galvoje, kad jų kredito, yra iš tikrųjų, sintaksiškai neteisingas. 731 00:32:15,495 --> 00:32:17,610 Pasirodo, jūs neturite reikia garbanotas petnešos 732 00:32:17,610 --> 00:32:21,691 jei turite tik vieną eilutę kodo, kad Jūs norite vykdyti viduje kilpą. 733 00:32:21,691 --> 00:32:24,190 Dabar mes visada, klasėje ir visi mūsų platinimo kodą, 734 00:32:24,190 --> 00:32:26,730 įtraukti vingiuotus skliaustus Bet kokiu atveju, tiesiog dėl aiškumo dėlei. 735 00:32:26,730 --> 00:32:29,010 Bet suprantu, kad vadovėliuose ir internetiniai pavyzdžiai, 736 00:32:29,010 --> 00:32:31,300 jums gali labai gerai pamatyti garbanotas petnešos trūksta kažkada. 737 00:32:31,300 --> 00:32:34,850 Ir tai gerai, jei tai, ką jūs jau atitraukiama ir skirtas 738 00:32:34,850 --> 00:32:38,650 yra tik viena eilutė kodo, o ne keletą eilučių kodo, galimai. 739 00:32:38,650 --> 00:32:39,150 Gerai. 740 00:32:39,150 --> 00:32:44,500 Taigi susijusi su išleidimo netikslumas, tai iš perpildymo problema, 741 00:32:44,500 --> 00:32:48,560 ta prasme, kad panašiai, do sveikieji skaičiai turi ribas į juos 742 00:32:48,560 --> 00:32:49,970 kaip slankiojo kablelio vertybes? 743 00:32:49,970 --> 00:32:53,120 Pasaulyje slankiojo kablelio vertybes, mes galime būti tik tokie tikslūs, 744 00:32:53,120 --> 00:32:55,710 po kurio, kartais blogi dalykai gali atsitikti, 745 00:32:55,710 --> 00:32:57,760 ir mūsų programos gali būti Buggy ir klaidos. 746 00:32:57,760 --> 00:33:00,050 Dabar net su sveikaisiais skaičiais, galite paleisti į problemų. 747 00:33:00,050 --> 00:33:03,820 Dabar sveikas skaičius, neturi Dešimtainis taškas arba numeriai po jo. 748 00:33:03,820 --> 00:33:07,130 Tai tiesiog natūralusis skaičius, paprastai. 749 00:33:07,130 --> 00:33:09,430 Taigi, ką gali suklysti su int? 750 00:33:09,430 --> 00:33:12,210 Jei aš naudoju AN į int skaičius, kas galėtų suklysti? 751 00:33:12,210 --> 00:33:13,230 Atrodo daug paprastesnis. 752 00:33:13,230 --> 00:33:13,873 Taip. 753 00:33:13,873 --> 00:33:16,240 >> AUDITORIJA narys: Jei skaičius tampa [nesigirdi] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J Malan: Taip. 755 00:33:17,073 --> 00:33:20,820 Ką daryti, jei jums suskaičiuoti toks didelis, kad jūs negali išreikšti, kad tikrai didelis skaičius. 756 00:33:20,820 --> 00:33:21,320 Teisė? 757 00:33:21,320 --> 00:33:23,910 Tam tikru momentu jūs ketinate viršyti ribas 758 00:33:23,910 --> 00:33:27,077 iš 32-bit vertės arba 64 bitų vertės. 759 00:33:27,077 --> 00:33:29,410 Dabar vėl, aš nesu įsitikinęs, kaip ištarti 64 bitų vertę, 760 00:33:29,410 --> 00:33:32,230 bet aš žinau, su 32 bitų sveikasis skaičius, didžiausia vertė gali būti, 761 00:33:32,230 --> 00:33:35,490 jei tai tik teigiamas vertės, yra maždaug 4 mlrd. 762 00:33:35,490 --> 00:33:39,000 Taigi, jei aš pabandyti suskaičiuoti iki 5 mlrd, kažkas nutiks. 763 00:33:39,000 --> 00:33:41,050 Bet pažiūrėkime, ką, tiesą sakant, gali atsitikti. 764 00:33:41,050 --> 00:33:44,570 Atsižvelgiant į sveikasis skaičius pasaulyje perpildymo, kur, tam tikra prasme, 765 00:33:44,570 --> 00:33:48,270 sklidinos An pajėgumus sveikasis skaičius, kas gali atsitikti? 766 00:33:48,270 --> 00:33:51,190 >> Taigi čia dvejetainis skaičius, tai Perjungimas į 0. 767 00:33:51,190 --> 00:33:54,630 Tai visi 1-ųjų ir pamainymai ten yra įgaliojimai 2, 768 00:33:54,630 --> 00:33:55,980 todėl tai yra dvejetainis. 769 00:33:55,980 --> 00:33:59,416 Taigi, tai yra 8, 1 bitai ekrane. 770 00:33:59,416 --> 00:34:01,290 Ir jei jūs prisimenate, arba jums greitai padaryti matematikos, 771 00:34:01,290 --> 00:34:06,074 kas vertė yra atstovavo čia su šių aštuonių 1 bitai? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Ir net jei buvo ne visai tikras, iš matematikos, jums galėtų padaryti jį. 774 00:34:09,260 --> 00:34:10,550 Arba galite tiesiog rūšies proto per jį, 775 00:34:10,550 --> 00:34:12,633 palauk, jei aš atstovaujanti 8 bitų reikšmę, 776 00:34:12,633 --> 00:34:17,750 ir aš turiu 256 galimų reikšmių, bet kuri pirmoji yra 0, 777 00:34:17,750 --> 00:34:19,909 Aš tiesiog žinau, kad Didžiausia bus 255, 778 00:34:19,909 --> 00:34:21,510 ir tai, ką tai vienas galėtų būti. 779 00:34:21,510 --> 00:34:26,060 >> Taigi manau, bandau pridėti 1 iki šios vertės. 780 00:34:26,060 --> 00:34:28,750 Ką darytum lygiui mokyklos, kai pridedate 1, ir ji 781 00:34:28,750 --> 00:34:31,139 tikrai ne tiks, nes jūs turite nešti 1? 782 00:34:31,139 --> 00:34:34,380 Kas yra šis skaičius bus tapti, jei norite pridėti 1? 783 00:34:34,380 --> 00:34:37,030 Jis taps 0. 784 00:34:37,030 --> 00:34:37,530 Teisė? 785 00:34:37,530 --> 00:34:41,139 Nes jei turėjo daugiau bits-- ir aš pabandyti, tipo, įveskite jį here-- 786 00:34:41,139 --> 00:34:44,710 jei mes turėjome daugiau bitų, ką mes gali padaryti čia yra įdėti 1, 787 00:34:44,710 --> 00:34:47,370 ir tada mes norime gauti tai. 788 00:34:47,370 --> 00:34:48,739 Oi. 789 00:34:48,739 --> 00:34:52,250 Mes norime turėti 1 bitas visą kelią čia. 790 00:34:52,250 --> 00:34:55,530 >> Bet jei tai yra baigtinis vertės, tai tik 8 bitai, 791 00:34:55,530 --> 00:34:57,480 ir kad iš anksto nustatytas kompiuteriu, 792 00:34:57,480 --> 00:34:59,370 kad 1 yra efektyviai nėra. 793 00:34:59,370 --> 00:35:00,980 Tai tiesiog rūšies nukrenta nuo skardžio. 794 00:35:00,980 --> 00:35:05,480 Ir todėl, jei norite pridėti 1 iki 255, kas vertę tu matyt gauti? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Ir taip numeriais netyčia, o gal netyčia, 797 00:35:09,700 --> 00:35:12,040 galų gale vyniojimo aplink kaip šis. 798 00:35:12,040 --> 00:35:14,079 Taigi, kas gali būti šio POVEIKIS? 799 00:35:14,079 --> 00:35:15,620 Na, yra keletas skirtingų dalykų. 800 00:35:15,620 --> 00:35:18,751 Taigi vienas, jis galų gale ieškote kaip 0, netyčia, 801 00:35:18,751 --> 00:35:20,750 bet jūs galite rūšies pamatyti, net ir realiame pasaulyje, 802 00:35:20,750 --> 00:35:23,416 geriau ar blogiau, pasireiškimai šio limito idėja. 803 00:35:23,416 --> 00:35:26,630 Pavyzdžiui, kas nors iš jūsų, kuris kada nors grojo Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 Ar kas nors atsitiktų žinoti didžiausias skaičius monetų 805 00:35:28,880 --> 00:35:32,032 galite surinkti į Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Paimkite atspėti remiantis šiandien žinomų klausimai. 807 00:35:35,640 --> 00:35:39,140 Tai daugiau nei 256 ar 255. 808 00:35:39,140 --> 00:35:40,330 Tai 4 mlrd. 809 00:35:40,330 --> 00:35:42,080 Taigi paaiškėja, ir Yra keletas people-- 810 00:35:42,080 --> 00:35:46,080 kai "Google" paiešką patvirtino paskutinis night-- Dotarłeś 4 mlrd aukso monetų, 811 00:35:46,080 --> 00:35:47,730 arba Papuošalą, kad Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Nors, matyt, yra būdas apgauti žaidimą, 813 00:35:49,860 --> 00:35:53,222 ten klaida ar funkcija, kuri leidžia jums tik sukaupsite daug ir daug taškų. 814 00:35:53,222 --> 00:35:54,930 Bet didžiausia įmanoma vertė, pagal 815 00:35:54,930 --> 00:35:58,360 į šią fotografiją ekrano Mylimas rasti internete, yra iš tikrųjų, 4 mlrd. 816 00:35:58,360 --> 00:35:59,240 >> Dabar, kodėl taip yra? 817 00:35:59,240 --> 00:36:03,040 Tai būtent 4 mlrd, tikriausiai todėl, kad kažkas nusprendė, 818 00:36:03,040 --> 00:36:05,500 kuris rašau šį žaidimą, kad jie galėtų padaryti 4 milijardai eurų, 819 00:36:05,500 --> 00:36:07,340 kažkas, kažkas, kažkas, kaip vertės Aš taikstytis 820 00:36:07,340 --> 00:36:10,256 su skaičiuotuvu anksčiau, tačiau tai tik šiek tiek švaresnis žmonėms 821 00:36:10,256 --> 00:36:12,610 pasakyti maksimalų skaičių iš coins-- ar smeigės, 822 00:36:12,610 --> 00:36:14,860 kaip jie vadina them--, kad jums gali rinkti yra 4 mlrd. 823 00:36:14,860 --> 00:36:16,290 Ir taip, tai kodėl tai yra? 824 00:36:16,290 --> 00:36:20,310 Kaip LEGO žaidimas skaitiklis įgyvendinti 825 00:36:20,310 --> 00:36:23,420 kad manimi sekti iš monetų skaičius turite? 826 00:36:23,420 --> 00:36:24,266 Jie naudoja, ką? 827 00:36:24,266 --> 00:36:26,390 AUDITORIJA narys: Tai sustos skaičiuojant po 4 mlrd. 828 00:36:26,390 --> 00:36:27,720 DAVID J Malan: Tai sustos skaičiuojant po 4 milijardai eurų, 829 00:36:27,720 --> 00:36:29,525 tai reiškia, jūs galite numanyti, kaip programuotojas, 830 00:36:29,525 --> 00:36:31,960 kad jie tikriausiai naudojant 32 bitų sveikasis skaičius. 831 00:36:31,960 --> 00:36:35,380 Kaip programuotojas pažodžiui tik įvestos, INT, jo ar jos kodas, 832 00:36:35,380 --> 00:36:39,620 ir tai kintamojo tipas, jie naudoja saugoti kažkieno kodą. 833 00:36:39,620 --> 00:36:42,230 Taigi ten kitas apraiškas iš šių ribų rūšių. 834 00:36:42,230 --> 00:36:45,063 >> Taigi aš ne grojo šį _pasirinkti ir aš skaičiau ant istorijos 835 00:36:45,063 --> 00:36:48,470 patvirtinti kaip much-- bet į Originali versija civilizacijos, kur 836 00:36:48,470 --> 00:36:53,240 Jūs, matyt, sąveikauja vienas su kitą ir gali kariauti arba turėti ramybę, 837 00:36:53,240 --> 00:36:56,590 Gandis turėjo būti vienas iš ramiausių simbolių, kaip aš 838 00:36:56,590 --> 00:36:59,280 suprasti, kad pirmasis versija civilizacija. 839 00:36:59,280 --> 00:37:03,250 Ir iš tikrųjų, nuo 1-10 mastu, jo agresyvumas buvo tik 1. 840 00:37:03,250 --> 00:37:05,620 Taigi vis tiek šiek tiek agresyvi, matyt. 841 00:37:05,620 --> 00:37:11,590 >> Bet tam tikru momentu, galite matyt įdiegti demokratiją savo geografiją. 842 00:37:11,590 --> 00:37:14,900 Ir jei jūs įdiegti demokratiją į jūsų žaidimo versija, 843 00:37:14,900 --> 00:37:17,320 tada jūsų agresija lygis krinta. 844 00:37:17,320 --> 00:37:18,460 Tai geras dalykas. 845 00:37:18,460 --> 00:37:20,890 Žmonės ramiau Matyt, toje situacijoje. 846 00:37:20,890 --> 00:37:23,190 Bet, matyt, kažkas padarė neturės, jei būklę 847 00:37:23,190 --> 00:37:24,780 originalioje versijoje kodą. 848 00:37:24,780 --> 00:37:30,650 >> Taigi Gandhi agresija lygis sumažėjo nuo Teigiamas 1, ± 2, į neigiamą 1, 849 00:37:30,650 --> 00:37:33,840 bet žaidimas nėra suprasti neigiamus skaičius. 850 00:37:33,840 --> 00:37:38,680 Taigi, kas atsitiko Gandhi agresija lygis sumažėjo nuo 1 iki 0, kad neigiama 1, 851 00:37:38,680 --> 00:37:40,900 kuri turėjo poveikį vyniojimo aplink yra 852 00:37:40,900 --> 00:37:44,690 labiausiai agresyvus charakteris žaidime, kurių vertė 255, 853 00:37:44,690 --> 00:37:46,630 nuo 1 iki 10. 854 00:37:46,630 --> 00:37:49,887 Ir nuo tada, ten buvo Daugiau įsikūnijimai Šiame žaidime, 855 00:37:49,887 --> 00:37:51,720 ir jie saugomi kaip iš margučiu rūšiuoti, 856 00:37:51,720 --> 00:37:53,870 kad Gandhi, matyt, taip siaubingai agresyvus. 857 00:37:53,870 --> 00:37:56,740 Tačiau ji buvo rezultatas labai paprasta programavimo klaida 858 00:37:56,740 --> 00:37:58,630 toje labai ankstyvame žaidimo versija. 859 00:37:58,630 --> 00:38:02,860 >> Dabar labiau nerimą, daugiau Neseniai "Boeing 787 860 00:38:02,860 --> 00:38:05,720 buvo dokumentuota, turinčiais klaidą, o ne prietaiso rūšies 861 00:38:05,720 --> 00:38:07,340 kurią ypač nori turėti klaidų. 862 00:38:07,340 --> 00:38:10,130 Ir simptomai, kad aš skaityti čia iš straipsnio internete, 863 00:38:10,130 --> 00:38:13,840 buvo tai, modelis 787 lėktuvas , kuris buvo varomas nuolat 864 00:38:13,840 --> 00:38:18,030 už 248 dienų galite prarasti visus kintamoji srovė, AC, 865 00:38:18,030 --> 00:38:20,850 elektros energijos, dėl to, generatoriaus valdymo blokai, 866 00:38:20,850 --> 00:38:23,330 GCUs, tuo pačiu metu vyksta į saugus būdas. 867 00:38:23,330 --> 00:38:26,790 Taigi tai buvo įspėjimas išduotas kai ši problema buvo atrasta. 868 00:38:26,790 --> 00:38:28,750 Ši sąlyga sukelia pagal programinės įrangos skaitiklis 869 00:38:28,750 --> 00:38:32,230 vidinis GCUs, todėl sveikasis skaičius arba kintamasis, 870 00:38:32,230 --> 00:38:36,850 kad bus perkrautas po 248 dienų nepertraukiamo galią. 871 00:38:36,850 --> 00:38:40,350 Boeing yra iš proceso plėtoti GCU programinės įrangos atnaujinimas, kad 872 00:38:40,350 --> 00:38:42,350 bus ištaisyti pavojingą būseną. 873 00:38:42,350 --> 00:38:44,226 >> Taigi panašiai kaip raketa scenarijus, kuriame 874 00:38:44,226 --> 00:38:46,850 jie turėjo tam tikrą kintamojo natūra kad tikėjosi ir tikisi, 875 00:38:46,850 --> 00:38:50,720 ir tikisi, tačiau palaipsniui perpildyta kad jos galimybes ribas, 876 00:38:50,720 --> 00:38:54,890 Panašiai padarė Damn lėktuvu turėti kintamąjį perpildymo 877 00:38:54,890 --> 00:38:56,410 Po pakankamai laiko veikia. 878 00:38:56,410 --> 00:38:59,240 Ir taip kalba-in-skruosto būdas darbo išspręsti šią problemą 879 00:38:59,240 --> 00:39:04,400 yra tikrai, perkrauti, jūsų lėktuvas kiekvieną 247 dienų, todėl, kad atminties gauna išnyko paprastosios 880 00:39:04,400 --> 00:39:06,100 o kintamasis nueina į 0. 881 00:39:06,100 --> 00:39:09,410 Tačiau suprantame, kad tai labai didelis įsikūnijimas programinę įrangą, 882 00:39:09,410 --> 00:39:14,070 bet ypač kaip girdime apie "Apple" operacinės sistemos vyksta į automobilius, 883 00:39:14,070 --> 00:39:18,030 ir savarankiškai vairuoti automobilius iš "Google", ir bet įsikūnijimų programinės įrangos skaičius 884 00:39:18,030 --> 00:39:21,000 mūsų kasdieniame gyvenime, televizoriai ir laikrodžiai, ir daugiau, 885 00:39:21,000 --> 00:39:24,950 realizuoti buvo apsuptas programinę įrangą, kurie visi yra parašyta mus žmonėms. 886 00:39:24,950 --> 00:39:28,150 >> Ir kaip mes visi netrukus atranda, tai labai lengva ir labai tipiškas 887 00:39:28,150 --> 00:39:30,250 klysti, kai rašymo programinės įrangos. 888 00:39:30,250 --> 00:39:32,745 Ir jei jūs neturite juos sugauti, kai blogi dalykai gali atsitikti. 889 00:39:32,745 --> 00:39:35,400 Dabar kartais, kai juokingi dalykai gali atsitikti, 890 00:39:35,400 --> 00:39:38,280 arba bent kartais mes žinoti, kad tikėtis, kai blogumas. 891 00:39:38,280 --> 00:39:41,550 Taigi 0 padalintas 0, iš klasės mokyklos, paprastai yra blogas dalykas. 892 00:39:41,550 --> 00:39:43,050 Tai neapibrėžta. 893 00:39:43,050 --> 00:39:46,440 Ir paaiškėja out-- ir tegul pamatyti, jei mano mic gali pasiimti tai, kad "Apple up-- 894 00:39:46,440 --> 00:39:47,790 turėjo tam tikrą su šiuo įdomus neseniai. 895 00:39:47,790 --> 00:39:48,850 Taigi turiu iPhone čia. 896 00:39:48,850 --> 00:39:54,160 Aš ruošiuosi kalbėti "Siri" ir paprašyti ją kad man į 0 atsakymo padalinta iš 0. 897 00:39:54,160 --> 00:39:55,850 Kas yra 0, padalytą iš 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Įsivaizduokite, kad turite 0 slapukai, ir jūs juos padalinti tolygiai 900 00:40:02,230 --> 00:40:03,540 tarp 0 draugais. 901 00:40:03,540 --> 00:40:05,810 Kiek slapukai nėra kiekvienas asmuo gauti? 902 00:40:05,810 --> 00:40:06,350 Žr? 903 00:40:06,350 --> 00:40:07,660 Tai neturi prasmės. 904 00:40:07,660 --> 00:40:10,540 Ir Slapukas pabaisa yra liūdna kad nėra slapukus. 905 00:40:10,540 --> 00:40:13,987 Ir jūs esate liūdna, kad jūs neturite draugų. 906 00:40:13,987 --> 00:40:15,570 DAVID J Malan: Tai tipo nemalonus. 907 00:40:15,570 --> 00:40:17,550 Taigi tai, kas buvo ką tik pasakė ten. 908 00:40:17,550 --> 00:40:21,380 Tai neapibrėžta, tai nėra apibrėžta, Ir iš tiesų, daug programavimo kalbų 909 00:40:21,380 --> 00:40:24,950 ar tikrai, kompiliatoriai bus aptikti, kai jūs, į programą, 910 00:40:24,950 --> 00:40:27,050 pabandykite padalinti 0 iki 0. 911 00:40:27,050 --> 00:40:29,830 Smagiau nei šio, nors yra kad, matyt, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 yra on Twitter šių dienų. 913 00:40:31,270 --> 00:40:37,610 Ir jis į tai atsakė, su tuo, kuri yra absoliučiai žavinga. 914 00:40:37,610 --> 00:40:40,110 Bet tegul greitai pažvelgti į kitų konstrukcijų pora, 915 00:40:40,110 --> 00:40:43,459 ir tada įdėti kai tai kodas naudoti, geros būdais. 916 00:40:43,459 --> 00:40:45,250 Taigi paaiškėja, be už kilpomis, ten 917 00:40:45,250 --> 00:40:49,174 kažkas vadinamas while cikle, kad atrodo kitaip ir yra įgyvendinama 918 00:40:49,174 --> 00:40:51,590 šiek tiek differently-- ir mes galų gale pamatyti examples-- 919 00:40:51,590 --> 00:40:53,500 bet tam tikra prasme, tai paprastesnis, nes juo 920 00:40:53,500 --> 00:40:56,670 neleidžia inicijuoti ir atnaujinti per kilpos ribos. 921 00:40:56,670 --> 00:40:57,794 Jūs vis dar galite ją įgyvendinti. 922 00:40:57,794 --> 00:41:01,219 Taigi jūs galite padaryti tikslius pačius dalykus su while cikle, kaip ir už kilpos, 923 00:41:01,219 --> 00:41:03,260 bet jūsų sintaksė, ultimately-- kaip mes galų gale 924 00:41:03,260 --> 00:41:04,551 see-- bus kitoks. 925 00:41:04,551 --> 00:41:07,450 Yra net while cikle, Do kuris iš tikrųjų yra šiek tiek kitoks, 926 00:41:07,450 --> 00:41:09,640 toje kadangi už kilpos ir while cikle visada 927 00:41:09,640 --> 00:41:13,005 patikrinti jų būklę pirma, jei jūs skaitote šį dalyką iš viršaus į apačią, 928 00:41:13,005 --> 00:41:16,440 Jis rūšies atrodo, kad jis ketina Check it būklę paskutinis, nes tai 929 00:41:16,440 --> 00:41:17,910 tikrai paskutinė eilutė kodo. 930 00:41:17,910 --> 00:41:20,580 Ir iš tiesų, kad tai bus naudinga į tam tikrų programų, kad mes rašome, 931 00:41:20,580 --> 00:41:23,746 jei norite tik aklai kažką daryti ir galiausiai patikrinti būklę. 932 00:41:23,746 --> 00:41:25,205 Tai nebūtinai yra blogas dalykas. 933 00:41:25,205 --> 00:41:27,912 Jei norime kintamuosius, mes galime padaryti ji įvairiais būdais pora. 934 00:41:27,912 --> 00:41:30,290 Ir matėme Foxtrot Cartoon, vienas iš būdų tai daryti, 935 00:41:30,290 --> 00:41:33,400 kur deklaruoti savo kintamasis, kaip int kovos kabliataškiu, 936 00:41:33,400 --> 00:41:36,570 ir tada later-- gal kitą linija, o gal 10 eilučių later-- 937 00:41:36,570 --> 00:41:37,800 jūs iš tikrųjų inicijuoti ją. 938 00:41:37,800 --> 00:41:42,230 Todėl šie 2 eilučių kodo paskelbti tipas int kintamasis 939 00:41:42,230 --> 00:41:44,930 ir vadina jį skaitiklis, todėl ji suteikia man pakankamai bitai surengti int. 940 00:41:44,930 --> 00:41:48,230 Ir tada galiausiai, tai kelia vertė 0 į tą kintamąjį. 941 00:41:48,230 --> 00:41:51,250 Ji organizuoja 0 "ir 1-ųjų A modelis, kad mes žinome, iš praeitą savaitę, 942 00:41:51,250 --> 00:41:53,260 atstovauja skaičių mes žinome, kaip 0. 943 00:41:53,260 --> 00:41:56,920 Arba atvirai, jūs galite tai padaryti daug daugiau glaustai, tiesiog patinka. 944 00:41:56,920 --> 00:41:59,390 >> Dabar mes taip pat turime gebėjimas skambinti funkcijas. 945 00:41:59,390 --> 00:42:03,070 Ir iš tiesų, čia 2 linija programa arba ištrauka dalį, 946 00:42:03,070 --> 00:42:06,157 kuri leidžia mums iš tikrųjų rašyti tam tikrą kodą, kad 947 00:42:06,157 --> 00:42:08,990 gauna iš user-- eilutę daug kaip mūsų savanorio akimirką ago-- 948 00:42:08,990 --> 00:42:11,320 saugoti į rezultatą kintamasis vadinamas vardas 949 00:42:11,320 --> 00:42:15,470 ir then-- panašiai kaip su mūsų savanore su printf-- spausdina šias vertybes 950 00:42:15,470 --> 00:42:19,180 išlaikius dviem argumentais eilutė, po kintamojo 951 00:42:19,180 --> 00:42:20,781 vadinamas, vardas, pati. 952 00:42:20,781 --> 00:42:23,155 Taigi leiskite pažvelgti, prieš mes einame atgal į Mario ten, 953 00:42:23,155 --> 00:42:26,010 esant dabar pavyzdžių ši pora. 954 00:42:26,010 --> 00:42:30,537 >> Aš ruošiuosi eiti į priekį ir atvira iki, tarkim, funkcijos 0.c. 955 00:42:30,537 --> 00:42:33,120 Ir kaip visada, šis kodas yra galima nuo kurso tinklalapyje, 956 00:42:33,120 --> 00:42:35,660 todėl jūs galite žaisti kartu ne Namai ir pažvelgti į ją vėliau. 957 00:42:35,660 --> 00:42:40,400 Bet čia programa tai esmė, nuo 17 eilutės iki 22. 958 00:42:40,400 --> 00:42:43,270 Pagrindinės programos yra, kur programa visada bus pradėti. 959 00:42:43,270 --> 00:42:46,980 Ši programa, matyt, vyksta spausdinti savo vardą, dvitaškis. 960 00:42:46,980 --> 00:42:50,320 Tai tada vyksta skambinti GetString, kaip mes padarėme su mūsų savanoriai. 961 00:42:50,320 --> 00:42:53,365 Ir tada, tai yra įdomus, jis ketina skambinti PrintName. 962 00:42:53,365 --> 00:42:56,490 Pasirodo, visą šį laiką, yra Atrodo, kad funkcija vadinama PrintName. 963 00:42:56,490 --> 00:42:57,614 Tai spausdina kažkieno vardą. 964 00:42:57,614 --> 00:43:01,210 Mes nereikėjo naudoti printf nuo pasekėjai, ten PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Bet tai klaidinanti nes PrintName nėra 966 00:43:03,500 --> 00:43:06,760 ateiti su C. žmonės neturėjo sugalvoti ji prieš maždaug 40 ar 50 metų, 967 00:43:06,760 --> 00:43:07,990 Aš, vietoj. 968 00:43:07,990 --> 00:43:10,330 Ir iš tiesų, jei aš pereikite nustatantį tolesnes, pranešimu 969 00:43:10,330 --> 00:43:14,200 kaip aš galiu parašyti savo funkcijos C. Mes galų gale 970 00:43:14,200 --> 00:43:16,319 paaiškinti, kodėl mes nuolat sakydamas, negaliojančiu, keliose vietose, 971 00:43:16,319 --> 00:43:18,110 bet šiandien, tegul tiesiog pažvelgti į pavadinimą. 972 00:43:18,110 --> 00:43:20,905 >> On line 24, jei norite sukurti savo funkciją, 973 00:43:20,905 --> 00:43:22,780 Jums tiesiog parašyti Pavadinimas funkcija. 974 00:43:22,780 --> 00:43:24,340 Aš pasirinkau PrintName. 975 00:43:24,340 --> 00:43:26,159 Skliaustuose, jums tada nurodykite, kokių rūšių 976 00:43:26,159 --> 00:43:28,450 sąnaudų ir kiek jums nori, kad ši funkcija imtis. 977 00:43:28,450 --> 00:43:31,906 Šiuo atveju, aš noriu imtis 1 kintamasis vadinamas, vardas, 978 00:43:31,906 --> 00:43:34,030 ir jis ketina būti tipas, styginių, todėl jis ketina 979 00:43:34,030 --> 00:43:35,780 turi būti tam tikras simbolių seka. 980 00:43:35,780 --> 00:43:39,170 Ir tada, tai program-- panašiai kaip nulio, 981 00:43:39,170 --> 00:43:42,590 Jūs galite turėti pasirinktinį galvosūkį pieces-- teks šis paprotys elgesį. 982 00:43:42,590 --> 00:43:46,760 Ji ketina skambinti printf einančios, labas, vietos rezervavimo, 983 00:43:46,760 --> 00:43:49,110 ir tada ji ketina prijungti bet kokia vadinamas vartotojas. 984 00:43:49,110 --> 00:43:51,450 >> Taigi, šis yra pavyzdys, kas kompiuterių mokslininkas būtų 985 00:43:51,450 --> 00:43:55,090 kvietimas gavyba ar funkcinis skilimas, kuri yra tik 986 00:43:55,090 --> 00:43:58,110 išgalvotas būdai iš saying-- yra, jei Jums patinka šis aukšto lygio idėją, 987 00:43:58,110 --> 00:44:01,569 kaip aš noriu funkcionalumą, kad spausdina kažkieno vardą, visiškai jums 988 00:44:01,569 --> 00:44:04,360 galite tiesiog parašyti printf ir tada pereiti į argumentus, kuriuos norite, 989 00:44:04,360 --> 00:44:07,340 ir programa veiks, nes ji yra trečiadienį. 990 00:44:07,340 --> 00:44:10,510 Bet jūs galite pradėti abstrakti toli spausdinimo pavadinimą sąvoka. 991 00:44:10,510 --> 00:44:13,270 Jūs galite suteikti jai pavadinimą, kaip PrintName, o tai 992 00:44:13,270 --> 00:44:15,280 yra toks sluoksniavimasis savaitė 0 idėja. 993 00:44:15,280 --> 00:44:19,910 >> Nuo šiol, aš ir jūs neturite žinoti arba rūpintis, kaip PrintName įgyvendinama. 994 00:44:19,910 --> 00:44:22,470 Taip jis naudoja printf, gal ne, kas žino, kas naudoja? 995 00:44:22,470 --> 00:44:23,410 Kam rūpi? 996 00:44:23,410 --> 00:44:26,034 Dabar aš kalbu čia, vietoj žemyn čia. 997 00:44:26,034 --> 00:44:28,700 Ir iš tiesų, kaip mūsų programos gauti daugiau pažangių ir sudėtingų, 998 00:44:28,700 --> 00:44:32,550 mes ketiname gertumėte už suteiktas kad egzistuoja žemesnio lygio įspūdį. 999 00:44:32,550 --> 00:44:34,780 Nes mes juos parašė ar kas nors kitas padarė, todėl 1000 00:44:34,780 --> 00:44:36,910 kad mes galime tada statyti ant jų. 1001 00:44:36,910 --> 00:44:39,430 Paimkime į tai žiūrėti variantas, veikti vienas. 1002 00:44:39,430 --> 00:44:41,780 >> Taigi tai viena yra šiek tiek daugiau pažengęs, tačiau paaiškėja, 1003 00:44:41,780 --> 00:44:44,570 kad CS50 bibliotekoje, ten tik GetInt funkcija. 1004 00:44:44,570 --> 00:44:47,720 Mes nemanė, prieš keletą metų, kad įgyvendinti GetPositiveInt funkciją. 1005 00:44:47,720 --> 00:44:50,970 Ir tai šiek tiek erzina, nes jei vaikinai rašote programą besiskiriantis 1006 00:44:50,970 --> 00:44:53,325 norite gauti teigiamas sveikasis skaičius nuo naudotojo, 1007 00:44:53,325 --> 00:44:55,010 galite visiškai pasinaudoti GetInt. 1008 00:44:55,010 --> 00:44:57,840 Ir jūs galite visiškai patikrinti su sąlyga, o gal kilpa 1009 00:44:57,840 --> 00:45:00,320 jei tai int yra didesnis nei 0 ir klykauti ne vartotojui 1010 00:45:00,320 --> 00:45:02,699 jei jis ar ji nesuteikia Jūs teigiamas skaičius. 1011 00:45:02,699 --> 00:45:04,740 Bet Kurkime tai statybinis blokas save, A, 1012 00:45:04,740 --> 00:45:06,555 užsakymą įbrėžimams gabalas, jei bus. 1013 00:45:06,555 --> 00:45:08,680 Aš ruošiuosi turėti programą čia, kad galiausiai aš 1014 00:45:08,680 --> 00:45:11,780 nori, kad būtų galima skambinti GetPositiveInt, ir aš noriu būti 1015 00:45:11,780 --> 00:45:14,200 gali spausdinti bet kada, kad INT yra. 1016 00:45:14,200 --> 00:45:16,240 Bet tai yra išgaunama toli dabar. 1017 00:45:16,240 --> 00:45:19,050 Tai tiesiog buvo suteikta aukšto lygio pavadinimas, kuris sako, ką ji daro, 1018 00:45:19,050 --> 00:45:21,780 kuri yra nuostabu, nes tai labai intuityvus dabar skaityti. 1019 00:45:21,780 --> 00:45:24,710 Ir jei aš rūpintis, kas apačioje dangtis, leiskite man slinkite žemyn. 1020 00:45:24,710 --> 00:45:27,140 Ir tai šiek tiek bauginanti per pirmąjį, ypač 1021 00:45:27,140 --> 00:45:29,470 jei tai yra jūsų pirmoji programa, bet tegul pažvelgti. 1022 00:45:29,470 --> 00:45:32,860 >> Aš nebe sakydamas negaliojančiu, nes ji Pasirodo, funkcijas, 1023 00:45:32,860 --> 00:45:34,777 panašiai kaip GetString, gali grąžina reikšmę man. 1024 00:45:34,777 --> 00:45:36,610 Jie ne tik turi spausdinti į ekraną, 1025 00:45:36,610 --> 00:45:38,410 jie iš tikrųjų gali perduoti man kažką atgal. 1026 00:45:38,410 --> 00:45:41,535 Ir o prieš PrintName, Man nereikėjo nieko atgal. 1027 00:45:41,535 --> 00:45:44,160 I reikėjo šalutinį poveikį kažkas rodomi ekrane, 1028 00:45:44,160 --> 00:45:46,570 bet man nereikėjo žmogų į rankas man kažką atgal. 1029 00:45:46,570 --> 00:45:48,840 Čia su GetPositiveInt, kaip su GetInt, 1030 00:45:48,840 --> 00:45:50,640 Noriu būti perduotas kažką atgal. 1031 00:45:50,640 --> 00:45:53,220 Taigi aš sakau ne, tuščia, on-line 23, bet int, 1032 00:45:53,220 --> 00:45:55,570 kurie sako, ši funkcija kad rašau, 1033 00:45:55,570 --> 00:45:58,860 vadinamas GetPositiveInt ketina ranka mane atgal sveikasis skaičius, ne nieko, 1034 00:45:58,860 --> 00:45:59,890 ne negaliojančiu. 1035 00:45:59,890 --> 00:46:03,280 >> Tuo tarpu, ji ketina imtis jokių įėjimai, todėl aš, tipo, atstatomas ją. 1036 00:46:03,280 --> 00:46:08,280 Aš ne suteikiant GetPositiveInt jokios įėjimas, noriu, kad jis man savo produkciją. 1037 00:46:08,280 --> 00:46:09,800 Ir kas tada atsitinka dabar? 1038 00:46:09,800 --> 00:46:11,640 Taigi čia, kaip aš galiu paskelbti kintamąjį. 1039 00:46:11,640 --> 00:46:15,090 Aš padariau tai už kilpos, dėl priežasčių, mes galų gale pamatyti, 1040 00:46:15,090 --> 00:46:17,700 bet tai tik suteikia man 32 bitai vadinami, N, 1041 00:46:17,700 --> 00:46:20,952 ir aš iš anksto nustatyti juos saugoti sveikasis skaičius. 1042 00:46:20,952 --> 00:46:23,660 Ir čia, kad padaryti, o konstruktą, ir tai, kodėl tai naudinga. 1043 00:46:23,660 --> 00:46:26,700 Pažodžiui tai padaryti, o n yra mažesnis už 1. 1044 00:46:26,700 --> 00:46:28,030 Taigi pažiūrėkime, kas vyksta. 1045 00:46:28,030 --> 00:46:30,760 Aš atsispausdinti, prašome man teigiamą int. 1046 00:46:30,760 --> 00:46:34,300 Tada aš gauti int, naudojant CS50 s veikti ir saugomi n. 1047 00:46:34,300 --> 00:46:38,990 >> Ir tada, ką eilutę kodo tikriausiai paleidžiama vykdyti kitas, logiškai? 1048 00:46:38,990 --> 00:46:41,890 Kuris eilutės numeris? 1049 00:46:41,890 --> 00:46:42,571 Taip, taip, 31. 1050 00:46:42,571 --> 00:46:45,320 Jūs nebūtų žinau, tai, kol jūs buvo pasakyta, ar rūšiuoti išvadą, kad, 1051 00:46:45,320 --> 00:46:45,986 bet tai tiesa. 1052 00:46:45,986 --> 00:46:48,280 Jis eina iš viršaus į apačią ir tada kartoja. 1053 00:46:48,280 --> 00:46:55,840 Taigi, jei aš įvedėte tarkim, skaičius neigiamas 1, yra n mažiau nei 1 neigiamas? 1054 00:46:55,840 --> 00:46:56,340 Taip. 1055 00:46:56,340 --> 00:46:58,470 Nes neigiamas 1 yra mažesnis kaip 1. 1056 00:46:58,470 --> 00:46:59,510 Taigi, kas turėtų atsitikti? 1057 00:46:59,510 --> 00:47:03,260 Aš ruošiuosi tai padaryti o n yra mažesnis už 1, 1058 00:47:03,260 --> 00:47:05,760 todėl aš ruošiuosi grįžti į eilutę 28. 1059 00:47:05,760 --> 00:47:09,530 >> Ir kiekvienas LAIKĄ_ ir tegul eina this-- kad funkcija nuo 1 iki kaupia jį, 1060 00:47:09,530 --> 00:47:11,340 ir dabar dot velniop funkciją 1. 1061 00:47:11,340 --> 00:47:14,280 Jei aš tipo neigiamą 1, tai ketina išlaikyti šaukiantį mane 1062 00:47:14,280 --> 00:47:17,530 kol aš bendradarbiauti, nes kiekvienas mano įėjimai yra mažiau nei 1 1063 00:47:17,530 --> 00:47:20,070 ir jei ji, o mažesnis už 1, Aš ruošiuosi laikyti tai daryti. 1064 00:47:20,070 --> 00:47:24,240 Jei aš pagaliau suteikti jai skaičių kaip 50, Laimei, ji sako, ačiū už 50. 1065 00:47:24,240 --> 00:47:24,970 Kodėl? 1066 00:47:24,970 --> 00:47:30,640 Nes, kai tik n yra ne mažesnis kaip 1, sustabdyti strigti šios kilpos, 1067 00:47:30,640 --> 00:47:33,840 ir tai naujas raktažodis šiandien grąža, tiesiog tai daro. 1068 00:47:33,840 --> 00:47:36,800 Taigi aš tiesiog įgyvendinama, A prasme, GetString atitikmuo, 1069 00:47:36,800 --> 00:47:40,590 kur aš atiduodami atgal į kas naudoja manimi, kai vertę. 1070 00:47:40,590 --> 00:47:42,820 Ji neturi būti eilutė, tai int. 1071 00:47:42,820 --> 00:47:44,990 Taigi paprastas, greitas pavyzdžiui, bet mes greitai 1072 00:47:44,990 --> 00:47:47,930 pamatyti šiek tiek daugiau sudėtinga versijos dar. 1073 00:47:47,930 --> 00:47:53,882 Iš tiesų, tegul ne išvaizdą skaitinė vienas, kuris yra vadinamas return.c. 1074 00:47:53,882 --> 00:47:55,590 Ir tai vienas tikrai šiek tiek paprastesnis. 1075 00:47:55,590 --> 00:47:59,010 Taigi šios programos paskirtis life-- tegul kaupia ir paleisti jį, 1076 00:47:59,010 --> 00:48:03,090 todėl, kad grąžą, dot velniop, return-- pranešimas 1077 00:48:03,090 --> 00:48:05,530 programa tiesiog kubeliai vertės 2. 1078 00:48:05,530 --> 00:48:08,410 Tai gana kvaila, sunku kodas, ji nesiima jokių sąnaudų, 1079 00:48:08,410 --> 00:48:12,220 tačiau ji įrodo, kita funkcija, kad aš parašiau save. 1080 00:48:12,220 --> 00:48:15,760 Taigi čia aš deklaruotas kintamasis, vadinama x, int tipo, 1081 00:48:15,760 --> 00:48:17,840 lygus skaičiui, 2, visiškai savavališkas. 1082 00:48:17,840 --> 00:48:19,530 Tai tik keletas purus spausdinimas. 1083 00:48:19,530 --> 00:48:23,070 Ji sako x yra dabar tokia ir pavyzdžiui, cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 Ir magija yra, matyt, atitinka 21. 1085 00:48:26,390 --> 00:48:30,120 Aš paskambinę funkcija vadinama, kubas, Aš atiduodami jam popieriaus lapą 1086 00:48:30,120 --> 00:48:32,890 su numeriu 2 parašyta ant jo, ir kas vertė, matematiškai, 1087 00:48:32,890 --> 00:48:34,860 aš noriu gauti iš jo? 1088 00:48:34,860 --> 00:48:36,570 Tiesiog kaip normalumas patikrinti? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Teisė? 1091 00:48:37,570 --> 00:48:40,160 Noriu 2 Cubed atgal, 2 3 galios, todėl 8 atgal. 1092 00:48:40,160 --> 00:48:42,570 >> Taigi, kur yra kubas įgyvendinti? 1093 00:48:42,570 --> 00:48:44,349 Na, pastebite, kad įgyvendinama žemyn čia. 1094 00:48:44,349 --> 00:48:47,140 Ir kaip anksčiau logiška, nors sintaksė tikriausiai 1095 00:48:47,140 --> 00:48:49,320 labai nauja ir daugelis iš jūsų, Noriu šią funkciją 1096 00:48:49,320 --> 00:48:51,780 ranka mane atgal lapą popierius su ant jo tarpt. 1097 00:48:51,780 --> 00:48:53,990 Taigi turiu int, kad vardas savavališkai, 1098 00:48:53,990 --> 00:48:55,530 bet patogiai vadinamas kubas. 1099 00:48:55,530 --> 00:48:58,430 Įvesties į jį, yra n tipo sveikasis skaičius, taip, kad tai 1100 00:48:58,430 --> 00:49:00,800 kaip aš galiu pereiti į numerį 2 ant popieriaus lapo. 1101 00:49:00,800 --> 00:49:03,910 Ir tada paaiškėja, C palaiko matematikos, todėl jūs neturite x'S laikais, 1102 00:49:03,910 --> 00:49:06,680 jūs tiesiog naudoti žvaigždutę dauginti. 1103 00:49:06,680 --> 00:49:11,070 Ir tai grįžta n kartų n kartų n, kuris yra tiesiog Cubed vertė. 1104 00:49:11,070 --> 00:49:12,840 >> Taigi, kur mes einame su visa tai? 1105 00:49:12,840 --> 00:49:14,570 Tai tikrai viesulas kelionė, būkite tikri, 1106 00:49:14,570 --> 00:49:16,410 kad super sekcijų ir problema nustatyti 1, 1107 00:49:16,410 --> 00:49:18,368 jums bus vaikščioti per visa tai visi daugiau. 1108 00:49:18,368 --> 00:49:22,490 Ir problema Set 1, mes pereiti nuo grafinę pasaulyje nulio 1109 00:49:22,490 --> 00:49:25,640 į kažką daugiau komandų eilutės C Bet mes semtis įkvėpimo 1110 00:49:25,640 --> 00:49:27,680 iš šio žaidimo čia nuo pasekėjai, kuriame 1111 00:49:27,680 --> 00:49:31,591 naudojant C ir standartinis leidimas p rinkinys jums įgyvendinti Mario piramidę. 1112 00:49:31,591 --> 00:49:34,340 Ir hacker leidimas p rinkinys, jei to pageidautų išrinkti, 1113 00:49:34,340 --> 00:49:38,280 Jums bus įgyvendinti šiek tiek daugiau sudėtinga piramidę su dviejų smailių. 1114 00:49:38,280 --> 00:49:41,239 Jūs taip pat įgyvendinti plataus algoritmas, godus algoritmas. 1115 00:49:41,239 --> 00:49:43,030 Pasirodo, ten įdomių logika 1116 00:49:43,030 --> 00:49:45,640 už proceso veikia kasininko darbo vietoje 1117 00:49:45,640 --> 00:49:47,410 ir iš tikrųjų dalijamos kažkas vėl pokyčiai. 1118 00:49:47,410 --> 00:49:50,410 Yra algoritmas, kuris gana paprasta, kad galbūt net 1119 00:49:50,410 --> 00:49:53,576 suvokti intuityviai, kai pirmą kartą perskaičiau it-- suprasdamas, kad tai, ką aš visada 1120 00:49:53,576 --> 00:49:57,110 padaryti bet kuriuo metu aš tikrą žmogų, kai pinigų back--, kuri leidžia jums visada 1121 00:49:57,110 --> 00:50:00,679 sumažinti skaičių popieriaus banknotai ar metalų monetos 1122 00:50:00,679 --> 00:50:02,220 kad jūs atiduodami atgal vartotojui. 1123 00:50:02,220 --> 00:50:04,610 Ir tai, žinoma, yra būtinybė nes jei jūs einate į CVS ar Papuošalą, 1124 00:50:04,610 --> 00:50:06,430 Jūs nenorite būti paskelbtas visa krūva tie 1125 00:50:06,430 --> 00:50:07,596 arba visa krūva centus. 1126 00:50:07,596 --> 00:50:10,120 Jūs norite Retas monetas, tikriausiai, įmanoma. 1127 00:50:10,120 --> 00:50:13,070 >> Galiausiai, jūs taip pat būti ginčijami taškytis vandens pasaulyje 1128 00:50:13,070 --> 00:50:17,220 ir faktiškai gauti dėkingi kovai tarp normos srauto žemėlapių, 1129 00:50:17,220 --> 00:50:19,890 panašaus, vandens dušu, tik kiek yra naudojamas vanduo,. 1130 00:50:19,890 --> 00:50:22,640 Ir jame aliuzinis, bus šis įrašas čia 1131 00:50:22,640 --> 00:50:24,840 kurį mes galų ant vos 60 sekundžių, kad 1132 00:50:24,840 --> 00:50:29,070 piešia paveikslėlį mažo srauto dušo galvutes. 1133 00:50:29,070 --> 00:50:30,886 >> [Vaizdo įrašų atkūrimas] 1134 00:50:30,886 --> 00:50:31,385 -Gerai. 1135 00:50:31,385 --> 00:50:32,774 Aš turiu viską, čia. 1136 00:50:32,774 --> 00:50:35,800 Gavau Cyclone F serija, Hidra, Jetflow, Stokholmas 1137 00:50:35,800 --> 00:50:37,660 Supersteam, you name it. 1138 00:50:37,660 --> 00:50:39,265 >> -O Ką jūs rekomenduoti? 1139 00:50:39,265 --> 00:50:40,460 >> -Ko tu ieškai? 1140 00:50:40,460 --> 00:50:41,300 >> Power žmogus. 1141 00:50:41,300 --> 00:50:42,285 Maitinimo. 1142 00:50:42,285 --> 00:50:42,910 -kaip Silkwood. 1143 00:50:42,910 --> 00:50:44,520 Išmokėtą sumą yra radiacijos. 1144 00:50:44,520 --> 00:50:46,335 -Teisingai. 1145 00:50:46,335 --> 00:50:48,275 -Dabar, Kas tai yra? 1146 00:50:48,275 --> 00:50:49,704 Išmokėtą sumą aisiais Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Aš neparduodame, kad vienas. 1148 00:50:50,620 --> 00:50:51,700 >> -Bet Tai, ką norime. 1149 00:50:51,700 --> 00:50:52,680 Tai Commando 450. 1150 00:50:52,680 --> 00:50:53,882 >> -Ne Patikėkite manimi. 1151 00:50:53,882 --> 00:50:55,090 Jis naudojamas tik cirko. 1152 00:50:55,090 --> 00:50:56,512 Tai dramblys. 1153 00:50:56,512 --> 00:50:59,356 >> -I'll Nieko mokėti. 1154 00:50:59,356 --> 00:51:01,252 >> -Kas Apie Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Jis Negalėjo dirbti, kad. 1156 00:51:02,760 --> 00:51:04,910 Jis subtilus. 1157 00:51:04,910 --> 00:51:05,750 O taip. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [PABAIGA PLAYBACK] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Visos dešinę. 1161 00:51:37,700 --> 00:51:38,820 Tai jei dėl CS50-aisiais. 1162 00:51:38,820 --> 00:51:40,050 Mes jus pamatyti kitą savaitę. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> GARSIAKALBIS 1: [? Scully?] [? Ian,?] kiek šioje Outro projektą 1165 00:51:49,029 --> 00:51:50,362 ką jūs vaikinai sugalvoti? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: Na, mes jau davė tai minties įvairovė, 1167 00:51:51,990 --> 00:51:53,250 ir mes manome, kad geriausias būdas to-- 1168 00:51:53,250 --> 00:51:53,660 >> GARSIAKALBIS 3: Ar galiu? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Taip. 1170 00:51:54,326 --> 00:51:56,360 Visomis priemonėmis, iš tikrųjų. 1171 00:51:56,360 --> 00:51:59,425 >> GARSIAKALBIS 3: Taigi, manau, mes galime Apibendrinant mūsų idėja 1172 00:51:59,425 --> 00:52:05,450 už su vienu word-- nieko outro. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J Malan: Nieko? 1175 00:52:10,409 --> 00:52:11,200 GARSIAKALBIS 3: Nieko. 1176 00:52:11,200 --> 00:52:12,990 DAVID J Malan: Ką tai reiškia? 1177 00:52:12,990 --> 00:52:16,260 GARSIAKALBIS 3: outros yra apie nieką. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: Na, aš turiu galvoje, filosofijos, Aš turiu galvoje, nieko visada yra kažkas. 1179 00:52:21,720 --> 00:52:24,200 GARSIAKALBIS 1: Taigi what's-- kas yra prielaida? 1180 00:52:24,200 --> 00:52:25,720 GARSIAKALBIS 3: Taigi, tai, kaip gyvenime. 1181 00:52:25,720 --> 00:52:26,680 GERAI. 1182 00:52:26,680 --> 00:52:28,294 Ką jūs darote šiandien? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J Malan: Atsikėliau, turėjo Pusryčiai ir atėjo į darbą. 1184 00:52:31,811 --> 00:52:34,056 >> GARSIAKALBIS 3: Tai labai Outro. 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2: Bet aš turiu galvoje, neturėtų kažkas atsitiks jam ant the-- 1186 00:52:36,806 --> 00:52:37,889 GARSIAKALBIS 3: Ne, ne, ne, ne. 1187 00:52:37,889 --> 00:52:40,220 Nieko neįvyksta. 1188 00:52:40,220 --> 00:52:42,910 >> GARSIAKALBIS 1: Tad kodėl mes žiūrime? 1189 00:52:42,910 --> 00:52:46,956 >> GARSIAKALBIS 3: Kadangi tai yra už CS50 Outro. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J Malan: Dar nėra. 1191 00:52:48,652 --> 00:52:49,151