1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: All labi, tāpēc tas ir CS50. 3 00:00:13,060 --> 00:00:15,040 Un tas ir skaidri piektdienā. 4 00:00:15,040 --> 00:00:16,850 Un tas ir beigas nedēļas viena. 5 00:00:16,850 --> 00:00:21,020 Tātad, jūs varat atgādināt, ka mēs left off, pēdējo reizi, ar cliffhanger veidu. 6 00:00:21,020 --> 00:00:25,020 Kuru mēs pakļaut šo meli, ka nē neatkarīgi no tā, ko jūs esat mācīts pieaug 7 00:00:25,020 --> 00:00:31,610 up, 1 dalīts ar 10, nav, jo Fakts, 0.1 vai 0,100 vai 0,10000. 8 00:00:31,610 --> 00:00:35,270 Patiesībā, ja mēs apkopotu šo Programma, kā mēs to darījām vakar, ar, 9 00:00:35,270 --> 00:00:39,770 padarīt neprecizitātes, un pēc tam do dot, slīpsvītra, neprecizitāte, 10 00:00:39,770 --> 00:00:43,600 mēs uzzinājām, ka tas ir tas, kas ir 1 dalīts ar 10 patiesībā ir. 11 00:00:43,600 --> 00:00:46,140 Tātad tas nav īsti gluži tas gadījums. 12 00:00:46,140 --> 00:00:49,014 Bet tas nav mājiens dažus būtisks ierobežojums datoriem. 13 00:00:49,014 --> 00:00:50,930 Un tiešām, starp lietas, ko mēs gatavojamies darīt 14 00:00:50,930 --> 00:00:55,130 šodien ir veikt apskatīt, kāpēc tas ir noticis, kādas sekas tas ir, 15 00:00:55,130 --> 00:00:58,430 kā cilvēce nav apgūt šo dažu ļoti 16 00:00:58,430 --> 00:01:00,410 nopietns situations-- rezultāts no kuriem 17 00:01:00,410 --> 00:01:03,141 ir diezgan traģiski un expensive-- un arī 18 00:01:03,141 --> 00:01:04,849 ieskatieties kā mēs faktiski var aizstāvēt 19 00:01:04,849 --> 00:01:06,530 pret šiem ierobežojumiem veidu. 20 00:01:06,530 --> 00:01:10,940 Tātad intuitīvi, iespējams, kāpēc ir 1 dalīts ar 10, 21 00:01:10,940 --> 00:01:15,480 saskaņā ar manu datoru šeit, ne tikai 1/10, 0.10? 22 00:01:15,480 --> 00:01:15,980 Jā. 23 00:01:15,980 --> 00:01:16,530 Ko tu domā? 24 00:01:16,530 --> 00:01:17,860 >> Auditorijas locekļa: Radix ir atšķirīgs? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J Malan: The kas ir? 26 00:01:18,550 --> 00:01:19,730 Ak, radix ir atšķirīgs? 27 00:01:19,730 --> 00:01:20,720 Tātad ne gluži. 28 00:01:20,720 --> 00:01:23,200 Tas ir tiešām vairāk būtiska aparatūru. 29 00:01:23,200 --> 00:01:23,980 Citas domas? 30 00:01:23,980 --> 00:01:24,584 Jā. 31 00:01:24,584 --> 00:01:26,750 Auditorijas locekļa: Viņi pārstāvēt skaitļus savādāk? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Tātad they-- Right. 33 00:01:27,880 --> 00:01:29,338 Viņi pārstāv skaitļus savādāk. 34 00:01:29,338 --> 00:01:30,700 Neprecīzi, acīmredzot. 35 00:01:30,700 --> 00:01:33,190 Tā, ka is-- Nu, atšķirīgi no tā, ko? 36 00:01:33,190 --> 00:01:34,490 Vai no kā? 37 00:01:34,490 --> 00:01:35,050 No mums? 38 00:01:35,050 --> 00:01:35,966 Auditorijas locekļa: Jā. 39 00:01:35,966 --> 00:01:38,930 Viņi neizmantojiet decimālo sistēma [nedzirdama]. 40 00:01:38,930 --> 00:01:39,680 DAVID J Malan: OK. 41 00:01:39,680 --> 00:01:41,560 Tātad savā ziņā, tie nav izmantot decimāldaļu sistēmu. 42 00:01:41,560 --> 00:01:43,720 Zem motora pārsega, viss ir, patiešām, binārā, 43 00:01:43,720 --> 00:01:45,510 un tas ir saistīts, patiesībā. 44 00:01:45,510 --> 00:01:48,135 Bet tas ir pat vienkāršāka izskaidrojums nekā. 45 00:01:48,135 --> 00:01:48,635 Jā. 46 00:01:48,635 --> 00:01:49,970 >> Auditorijas locekļa: Viņi ir tikai tik daudz biti. 47 00:01:49,970 --> 00:01:52,370 Viņi var tikai uzglabāt līdz noteiktam mērā, kā ar decimāldaļām. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J Malan: Jā. 49 00:01:52,780 --> 00:01:54,420 Tas ir tas, kas patiešām kļūst pie tā. 50 00:01:54,420 --> 00:01:57,180 Izrādās, ka datori parasti, būs vienmēr tikai 51 00:01:57,180 --> 00:01:59,690 izmantot ierobežotos informācijas apjomu pārstāvēt kaut ko. 52 00:01:59,690 --> 00:01:59,870 Tiesības? 53 00:01:59,870 --> 00:02:02,110 Galu galā, mums ir tikai fiksētu daudzums cietajā diskā. 54 00:02:02,110 --> 00:02:04,210 Mums ir tikai fiksētu summu RAM, vai datora atmiņā. 55 00:02:04,210 --> 00:02:06,251 Un, ja jums ir tikai fiksēta summa par kaut ko, 56 00:02:06,251 --> 00:02:09,611 protams, jūs nevarat patiešām saskaitīt līdz bezgalībai vai jebkuru numuru, kuru vēlaties. 57 00:02:09,611 --> 00:02:11,610 Jūs, veida, ir atlasīt un izvēlēties to, ko klāstu 58 00:02:11,610 --> 00:02:13,220 Vērtību jūs gatavojas atbalstīt. 59 00:02:13,220 --> 00:02:18,100 >> Un tā, piemēram, nedēļu vai divas atpakaļ, kad mēs runājām par ASCII, 60 00:02:18,100 --> 00:02:21,610 un mēs runājām par 8 biti, vai baits, tā sakot, 61 00:02:21,610 --> 00:02:26,360 Visvairāk mēs varētu pārstāvēt ar 8 bitiem bija tas, ko? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Un mēs varam pārstāvēt 256 kopējās vērtības bet ne tad, ja mēs tērēt vienu no tām 64 00:02:31,850 --> 00:02:34,190 uz 0-- Nu, bet, ja mēs pavadīt vienu no tām uz 0, 65 00:02:34,190 --> 00:02:36,830 tad vislielākais skaits ir, protams, 255. 66 00:02:36,830 --> 00:02:39,410 >> Tātad izrādās, ka tas ir gadījumā arī šajā kontekstā. 67 00:02:39,410 --> 00:02:42,350 Mēs sākām runāt, pēdējo reizi, par peldošo komatu numuriem, kas 68 00:02:42,350 --> 00:02:44,640 atšķiras no veseliem skaitļiem, jo ka viņiem ir komatu 69 00:02:44,640 --> 00:02:47,056 un, cerams, daži skaitļi pēc tam, bet tie ir pārāk. 70 00:02:47,056 --> 00:02:51,730 Dators ir tikai parasti dodas izmantot 32 bitus, varbūt 64 bitiem 71 00:02:51,730 --> 00:02:53,497 pārstāvēt peldošo punktu vērtību. 72 00:02:53,497 --> 00:02:56,080 Tātad, pat ja mēs esam izauguši mācīties matemātiku un zinot 73 00:02:56,080 --> 00:02:58,750 ka jūs varat būt absolūti bezgalīgi daudz skaitļu 74 00:02:58,750 --> 00:03:01,650 aiz komata, nevis ja jums ir ierobežots atmiņas. 75 00:03:01,650 --> 00:03:03,930 Jūs, veida, ir apaļas, vai atlasīt un izvēlēties, kuru 76 00:03:03,930 --> 00:03:05,346 numurus jūs gatavojas pārstāvēt. 77 00:03:05,346 --> 00:03:08,710 Un tā jūs varat iedomāties, kas nozīmē, tas ir datora tuvākais 78 00:03:08,710 --> 00:03:14,050 aproksimācija ar vērtību 1/10, ka tā var iegūt, tikai ar 32 vai tik bitiem. 79 00:03:14,050 --> 00:03:15,300 Un tas nav tikai 1/10. 80 00:03:15,300 --> 00:03:19,820 >> Piemēram, ja es mainīt to 1/3, kas, mūsuprāt, ir vēl vienkāršāka. 81 00:03:19,820 --> 00:03:21,300 Tātad 1 dalīts ar 3. 82 00:03:21,300 --> 00:03:22,355 Ļaujiet man saglabāt failu. 83 00:03:22,355 --> 00:03:24,680 Ļaujiet man iet uz priekšu un recompile to. 84 00:03:24,680 --> 00:03:25,820 Un ļaujiet man vēlreiz palaist to. 85 00:03:25,820 --> 00:03:30,000 Arī šeit, acīmredzot, 1/3 nav 0.3 un tad bezgalīgi daudz 3'S 86 00:03:30,000 --> 00:03:30,770 pēc tam. 87 00:03:30,770 --> 00:03:32,540 Jums ir šī neprecizitātes beigās. 88 00:03:32,540 --> 00:03:35,544 Tātad mēs cilvēkiem ir pareizi, un to, kas esat iemācījušies ir, faktiski, pareiza, 89 00:03:35,544 --> 00:03:37,460 bet mēs esam mutuļošana up pret dažiem ierobežojumiem. 90 00:03:37,460 --> 00:03:39,420 >> Un ko es domāju mēs gribētu darīt šodien, ir sākt 91 00:03:39,420 --> 00:03:42,190 skatoties, atklāti sakot, tad traģiskas sekas šis 92 00:03:42,190 --> 00:03:45,490 Dažreiz, kad cilvēce nav gluži īstenot 93 00:03:45,490 --> 00:03:48,460 par šo realitāti un šiem ierobežojumiem. 94 00:03:48,460 --> 00:03:52,360 Un mēs redzēsim virkni vinješu No History Channel, kas notiek 95 00:03:52,360 --> 00:03:53,950 apskatīt, kā lietas ir nogājis greizi. 96 00:03:53,950 --> 00:03:56,340 Tas ir apmēram 8 minūtes garš, un mēs atgriezties pēc šīs 97 00:03:56,340 --> 00:03:59,439 un to apskatīt tieši ko vēl var noiet greizi. 98 00:03:59,439 --> 00:04:00,605 Ja mēs varētu blāvākas lights-- 99 00:04:00,605 --> 00:04:02,350 >> [Video atskaņošana] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Mēs visi esam ieradušies pieņemt tad bieži nomākta problēmas, kas 101 00:04:06,310 --> 00:04:07,750 iet ar viņiem. 102 00:04:07,750 --> 00:04:11,370 Bugs, vīrusi, un programmatūra glitches ir mazas cenas 103 00:04:11,370 --> 00:04:13,230 maksāt par ērtībām. 104 00:04:13,230 --> 00:04:17,519 Bet augsto tehnoloģiju un ātrgaitas militārās un kosmosa programmu pieteikumus, 105 00:04:17,519 --> 00:04:22,130 mazākais problēma var tiek palielināts par katastrofu. 106 00:04:22,130 --> 00:04:27,750 4.jūnijā, 1996, zinātnieki sagatavoja uzsākt bezpilota Ariane 5 raķeti. 107 00:04:27,750 --> 00:04:29,890 Tas nesa zinātniskā satelīti izstrādātas 108 00:04:29,890 --> 00:04:33,030 noteikt precīzi, kā Zemes magnētiskais lauks mijiedarbojas 109 00:04:33,030 --> 00:04:35,600 ar saules vēju. 110 00:04:35,600 --> 00:04:37,930 Raķete tika uzbūvēta Eiropas Kosmosa aģentūra 111 00:04:37,930 --> 00:04:41,620 un pacēla off no objekta krastā Franču Gviānā. 112 00:04:41,620 --> 00:04:44,924 >> -Un Par 30 sekundēm uz lidojums, viņi vispirms 113 00:04:44,924 --> 00:04:46,340 pamanīju kaut kas notiek nepareizi. 114 00:04:46,340 --> 00:04:49,280 Ka sprauslas tika šarnīra tādā veidā viņi tiešām nevajadzētu. 115 00:04:49,280 --> 00:04:53,042 Aptuveni 40 sekundes iekļaušanu lidojuma, skaidri transportlīdzeklis bija nepatikšanas, 116 00:04:53,042 --> 00:04:55,250 un tas ir tad, kad viņi lēmums to iznīcināt. 117 00:04:55,250 --> 00:04:58,970 Virkni drošības speciālists ar milzīgas iekšas nospiedis pogu, 118 00:04:58,970 --> 00:05:03,940 uzspridzināja raķeti pirms tā varētu kļūt par apdraudējumu sabiedrības drošībai. 119 00:05:03,940 --> 00:05:06,600 >> -Tas Bija jaunava reiss no Ariane 5, 120 00:05:06,600 --> 00:05:09,270 un tā iznīcināšana ņēma vietu, jo plaisāt 121 00:05:09,270 --> 00:05:10,992 iestrādāta raķešu programmatūras. 122 00:05:10,992 --> 00:05:12,700 -The Problēma par Ariane bija tas, ka 123 00:05:12,700 --> 00:05:15,370 bija vairāki, kas nepieciešami 64 biti izteikt, 124 00:05:15,370 --> 00:05:18,150 un viņš vēlējās, lai pārvērstu tas uz 16 bitu skaitu. 125 00:05:18,150 --> 00:05:21,160 Viņi pieņem, ka skaitu nekad bija būs ļoti liels, 126 00:05:21,160 --> 00:05:25,020 ka lielākā daļa no šiem cipariem 64 bitu skaits bija 0 s. 127 00:05:25,020 --> 00:05:26,310 Viņi bija nepareizi. 128 00:05:26,310 --> 00:05:28,680 >> -The Nespēja viena programmatūru pieņemt 129 00:05:28,680 --> 00:05:32,820 veida numuru, ko ģenerē cits bija pie saknes neveiksmi. 130 00:05:32,820 --> 00:05:37,190 Programmatūras izstrāde bija kļuvis ļoti dārgi daļa no jaunās tehnoloģijas. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 raķete bija ļoti veiksmīgs, tik daudz programmatūras 132 00:05:40,760 --> 00:05:43,990 izveidots tā bija arī izmanto uz Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Galvenā problēma bija tā, ka Ariane 5 bija ātrāks, paātrināta ātrāk. 134 00:05:49,750 --> 00:05:53,000 Un programmatūru nebija veidoja to. 135 00:05:53,000 --> 00:05:56,330 >> -The Iznīcināšana raķete bija milzīgs finanšu katastrofa, 136 00:05:56,330 --> 00:05:59,670 viss dēļ minūšu programmatūras kļūdu. 137 00:05:59,670 --> 00:06:01,990 Bet tas nebija pirmais laika datu pārveides problēmas 138 00:06:01,990 --> 00:06:05,310 bija cieš modernas raķešu tehnoloģijas. 139 00:06:05,310 --> 00:06:08,300 >> -In 1991 ar sākuma Par pirmā Persijas līča kara, 140 00:06:08,300 --> 00:06:10,650 Patriot raķešu piedzīvoja līdzīga veida 141 00:06:10,650 --> 00:06:12,650 skaita konversijas problēmu. 142 00:06:12,650 --> 00:06:15,620 Tā rezultātā, 28 cilvēki, 28 amerikāņu karavīri 143 00:06:15,620 --> 00:06:18,440 tika nogalināti un par 100 citi ievainoti, 144 00:06:18,440 --> 00:06:21,900 kad Patriot, kas bija paredzēts aizsardzībai pret ienākošo scuds, 145 00:06:21,900 --> 00:06:24,630 neizdevās uguns raķeti. 146 00:06:24,630 --> 00:06:29,440 >> -Kad Irāka iebruka Kuveitā un Ameriku uzsāka Desert Storm 1991 sākumā, 147 00:06:29,440 --> 00:06:33,800 Patriot raķešu baterijas tika izvietoti aizsargāt Saūda Arābiju un Izraēlu 148 00:06:33,800 --> 00:06:37,000 no Irākas dzīšanās raķešu uzbrukumiem. 149 00:06:37,000 --> 00:06:40,610 Patriot ir ASV, vidēja darbības rādiusa zeme-gaiss sistēmas 150 00:06:40,610 --> 00:06:43,010 ražojis Raytheon uzņēmums. 151 00:06:43,010 --> 00:06:49,080 >> -The Izmērs Patriot kolektoru, pati, ir aptuveni, apmēram 20 pēdu garš. 152 00:06:49,080 --> 00:06:51,250 Un tas sver aptuveni 2000 mārciņas. 153 00:06:51,250 --> 00:06:55,195 Un tā veic kaujas galviņu no about-- Es domāju, ka tas ir aptuveni 150 mārciņas. 154 00:06:55,195 --> 00:06:59,500 Un kaujas galviņu, pats, ir augsts sprādzienbīstama, 155 00:06:59,500 --> 00:07:02,570 kas ir fragmenti ap to. 156 00:07:02,570 --> 00:07:06,890 No kaujas galviņu korpuss ir paredzēti rīkoties kā rupja skrots. 157 00:07:06,890 --> 00:07:09,130 >> -Mikroshēmas Raķetes ir veikts, 4 vienā konteinerā, 158 00:07:09,130 --> 00:07:12,080 un tiek transportēti ar puspiekabi. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot anti raķešu sistēma iet atpakaļ vismaz 20 gadus. 160 00:07:19,100 --> 00:07:22,320 Tā sākotnēji tika izstrādāta kā gaisa aizsardzības raķete 161 00:07:22,320 --> 00:07:24,180 atvašu nosaka ienaidnieks lidmašīnas. 162 00:07:24,180 --> 00:07:27,860 Pirmajā Persijas līča kara, kad tas karš nāca kopā, 163 00:07:27,860 --> 00:07:32,745 armija vēlējās izmantot, lai atvašu nosaka scuds, nevis lidmašīnas. 164 00:07:32,745 --> 00:07:36,150 Irākas spēki nebija tik daudz problēmu, 165 00:07:36,150 --> 00:07:39,110 bet armija bija noraizējies par scuds. 166 00:07:39,110 --> 00:07:42,340 Un tā viņi centās uzlabot Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Ienaidnieks raķešu ceļo pie Mach piecās 168 00:07:44,760 --> 00:07:47,250 bija būs izaicinājums pietiekami. 169 00:07:47,250 --> 00:07:50,000 Bet, kad Patriot tika steidzās ekspluatācijā, 170 00:07:50,000 --> 00:07:54,030 Armijas nebija zināms par Irākas modifikācija, kas padarīja 171 00:07:54,030 --> 00:07:56,840 viņu scuds gandrīz neiespējami, lai sasniegtu. 172 00:07:56,840 --> 00:08:01,020 >> -Kas Ir noticis, ir scuds ka Tika nāk, bija nestabila, 173 00:08:01,020 --> 00:08:02,310 tie wobbling. 174 00:08:02,310 --> 00:08:05,140 Iemesls tam, bija irākiešiem, lai 175 00:08:05,140 --> 00:08:09,450 lai saņemtu 600 kilometrus no 300 kilometru diapazons raķešu, 176 00:08:09,450 --> 00:08:12,930 paņēma svaru no priekšējās kaujas galviņu un padarīja kaujas galviņu vieglāks. 177 00:08:12,930 --> 00:08:17,710 Tāpēc tagad, Patriot mēģina nākt pie dzīšanās, un lielākā daļa no laika, 178 00:08:17,710 --> 00:08:21,700 lielākā daļa no laiks, tas būtu tikai lidot ar dzīšanās. 179 00:08:21,700 --> 00:08:25,700 >> -Kad Patriot sistēmas operatoru sapratu Patriot sasniegusi savu mērķi, 180 00:08:25,700 --> 00:08:29,790 tie uzsprāgt Patriot ir kaujas galviņu, lai izvairītos no iespējamiem nelaimes gadījumiem, ja tā 181 00:08:29,790 --> 00:08:32,380 bija atļauts krist uz zemes. 182 00:08:32,380 --> 00:08:36,340 >> -That Bija tas, ko lielākā daļa cilvēku redzēja, šie lielie fireballs debesīs, 183 00:08:36,340 --> 00:08:41,289 un pārprot kā pārtver no dzīšanās kaujas galviņām. 184 00:08:41,289 --> 00:08:43,590 Lai gan naktī debesis, Patriots parādījās 185 00:08:43,590 --> 00:08:47,020 būt veiksmīgi iznīcinot scuds, pie Dhahran, 186 00:08:47,020 --> 00:08:49,730 tur varētu būt kļūda par savu sniegumu. 187 00:08:49,730 --> 00:08:53,990 Tur, Patriot ir radaru sistēma zaudējis dziesmu par ienākošu dzīšanās, 188 00:08:53,990 --> 00:08:56,650 un nekad uzsāka, sakarā ar programmatūras plaisāt. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Tas bija izraēliešiem kurš pirmais atklāja ka vairs sistēma bija, 191 00:09:04,100 --> 00:09:07,510 jo lielāks laiks neatbilstība kļuva, pateicoties pulksteņa iegulto 192 00:09:07,510 --> 00:09:09,490 sistēmā datorā. 193 00:09:09,490 --> 00:09:12,670 >> -Par 2 nedēļas pirms traģēdija in Dhahran, 194 00:09:12,670 --> 00:09:15,010 izraēlieši ziņots Aizsardzības departaments, 195 00:09:15,010 --> 00:09:17,940 ka sistēma bija zaudēt laiku, ka pēc aptuveni 8 stundas pēc kārtas, 196 00:09:17,940 --> 00:09:21,410 viņi pamanīja, ka sistēma bija kļūst ievērojami mazāk precīza. 197 00:09:21,410 --> 00:09:25,290 Aizstāvības departaments atbildēja, stāsta visi Patriot baterijas 198 00:09:25,290 --> 00:09:28,070 lai neatstāj sistēmas uz ilgu laiku. 199 00:09:28,070 --> 00:09:29,960 Viņi nekad nav teicis, ko ilgu laiku bija. 200 00:09:29,960 --> 00:09:30,460 8 stundas? 201 00:09:30,460 --> 00:09:30,960 10 stundas? 202 00:09:30,960 --> 00:09:31,870 1000 stundas? 203 00:09:31,870 --> 00:09:33,734 Neviens nezināja. 204 00:09:33,734 --> 00:09:35,650 -The Patriot baterijas izvietoti pie kazarmām 205 00:09:35,650 --> 00:09:40,410 pie Dhahran, un tās trūkumi iekšējās pulkstenis, bija par vairāk nekā 100 stundas 206 00:09:40,410 --> 00:09:43,041 naktī no 25. februāra. 207 00:09:43,041 --> 00:09:47,416 >> -Tas Kāpurķēžu laiku ar precizitāti apmēram 1/10 no otrās. 208 00:09:47,416 --> 00:09:49,290 Tagad 1/10 no otra ir interesants skaitlis 209 00:09:49,290 --> 00:09:52,700 jo tas nevar būt izteikts bināro, precīzi. 210 00:09:52,700 --> 00:09:54,820 Kas nozīmē, ka nevar jāizsaka, tieši tā, 211 00:09:54,820 --> 00:09:57,420 jebkurā mūsdienu ciparu datora. 212 00:09:57,420 --> 00:10:01,460 Ir grūti noticēt, bet izmantot kā piemēru. 213 00:10:01,460 --> 00:10:03,520 Paņemsim numuru, 1/3. 214 00:10:03,520 --> 00:10:07,110 1/3 nevar izteikt jo aiz komata, precīzi. 215 00:10:07,110 --> 00:10:11,490 1/3 ir 0,333 notiek uz bezgalību. 216 00:10:11,490 --> 00:10:15,486 Nav veids, kā to darīt, ar absolūtā precizitāte, jo aiz komata. 217 00:10:15,486 --> 00:10:18,360 Tas ir tieši tas pats veida problēma, kas notika Patriot. 218 00:10:18,360 --> 00:10:22,510 Jo ilgāk sistēma skrēja, tad sliktāks laiks kļūda kļuva. 219 00:10:22,510 --> 00:10:28,420 >> -Pēc 100 darba stundām, tad kļūda laikā bija tikai aptuveni 1/3 no otrā. 220 00:10:28,420 --> 00:10:31,830 Bet attiecībā uz mērķauditorijas raķešu ceļo pie Mach 5, 221 00:10:31,830 --> 00:10:35,890 tas izraisīja uzskaites kļūda vairāk nekā 600 metrus. 222 00:10:35,890 --> 00:10:38,970 Tā būtu fatāla kļūda par karavīriem pie Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> -Kas Ir noticis, ir dzīšanās sākt bija atklāj agrīnās brīdināšanas satelītiem, 224 00:10:45,035 --> 00:10:48,930 un viņi jauns ka dzīšanās bija nāk viņu vispārējo virzienu. 225 00:10:48,930 --> 00:10:51,170 Viņi nezināja, kur tas nāk. 226 00:10:51,170 --> 00:10:53,990 >> Tagad -Tas bija līdz radara komponents no Patriota sistēmas, 227 00:10:53,990 --> 00:10:58,520 aizstāvot Dhahran, lai atrastu un saglabātu līdzi ienākošo ienaidnieka raķešu. 228 00:10:58,520 --> 00:10:59,690 >> -The Radars bija ļoti gudrs. 229 00:10:59,690 --> 00:11:01,710 Tas faktiski izsekot nostāja dzīšanās 230 00:11:01,710 --> 00:11:04,040 un tad paredzēt, kur tas, iespējams, varētu būt, 231 00:11:04,040 --> 00:11:06,140 nākamajā reizē, tad radars nosūtīja impulsu out. 232 00:11:06,140 --> 00:11:07,660 Ka sauca diapazons vārtiem. 233 00:11:07,660 --> 00:11:11,870 >> -Tad, Kad Patriot nolemj pietiekami daudz laika ir 234 00:11:11,870 --> 00:11:16,280 nodots, lai dotos atpakaļ un pārbaudiet nākamo vieta šim atklāto objektu, 235 00:11:16,280 --> 00:11:17,280 tas iet atpakaļ. 236 00:11:17,280 --> 00:11:21,690 Tad, kad tā devās atpakaļ uz nepareizu vieta, tad tas nesaskata objektu 237 00:11:21,690 --> 00:11:25,230 un tā nolemj, ka nav objekts, tas bija viltus atklāšanas, 238 00:11:25,230 --> 00:11:26,650 un pilieni dziesmu. 239 00:11:26,650 --> 00:11:29,690 Ienākošo dzīšanās pazuda no radara ekrāna, 240 00:11:29,690 --> 00:11:32,670 un sekundes vēlāk, to ietriecās kazarmās. 241 00:11:32,670 --> 00:11:38,100 Dzīšanās nogalināti 28 un bija pēdējais viens atlaists pirmā Līča kara laikā. 242 00:11:38,100 --> 00:11:43,460 Traģiski, atjaunināto programmatūru ieradās Dhahran nākamajā dienā. 243 00:11:43,460 --> 00:11:46,150 Programmatūra plaisāt bija ir noteikts, slēgšana 244 00:11:46,150 --> 00:11:48,940 viens nodaļu nemierīgajā vēsture Patriot raķešu. 245 00:11:48,940 --> 00:11:50,220 >> [Beigtu atskaņošanu] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Tātad mēs ņemšu apskatīt daži līdzīgi ierobežojumi tikai mazliet. 247 00:11:54,340 --> 00:11:58,470 Bet vispirms, pieņemsim pāreja uz dažiem FYI ir. 248 00:11:58,470 --> 00:12:01,575 Tātad one-- Šajā nedēļas nogalē, tur būs super sekcijas, 249 00:12:01,575 --> 00:12:04,200 kas ir paredzēti, lai izspiest Regulāri regulārie posmi, kas 250 00:12:04,200 --> 00:12:05,460 sāksies up nedēļā tātad. 251 00:12:05,460 --> 00:12:08,204 Veikt apskatīt uz CS50 mājas lapā Plašāku informāciju par tiem. 252 00:12:08,204 --> 00:12:11,120 Tie tiks filmēts un noskatīties dzīvot tiem, kas nevar ierasties. 253 00:12:11,120 --> 00:12:12,980 Problēma ir noteikts 1 ir uz Protams mājas lapā jau, 254 00:12:12,980 --> 00:12:15,105 un mēs ņemšu apskatīt ka tikai mazliet. 255 00:12:15,105 --> 00:12:18,350 Un biroja darba laiks arī veiks ievietot šo pirmdienas līdz ceturtdienai. 256 00:12:18,350 --> 00:12:20,960 >> Tātad tas bija visvairāk kanonisko Programma mēs paskatījās pēdējo reizi. 257 00:12:20,960 --> 00:12:23,590 Tas ir tāpat kā visvienkāršākais programma, jūs varat rakstīt C, 258 00:12:23,590 --> 00:12:25,250 un pat tas ir mazliet drosmīgu apgalvojumu. 259 00:12:25,250 --> 00:12:25,750 Tiesības? 260 00:12:25,750 --> 00:12:28,070 Jo tur ir daudz šķietams sarežģītību šim. 261 00:12:28,070 --> 00:12:30,445 Tātad pieņemsim ātri apskatīt ko daži no šiem elementiem 262 00:12:30,445 --> 00:12:33,080 bija un tad mēģināt nodrošināt garīga modelis kā 263 00:12:33,080 --> 00:12:35,710 šie visvienkāršāko programmu strādāt, un tad mēs sāksim 264 00:12:35,710 --> 00:12:38,050 skatoties uz lietām arvien sarežģītāka. 265 00:12:38,050 --> 00:12:41,280 Tātad šī līnija šeit, uzsvēra tagad, dzeltenā krāsā, ko gan mēs sakām, pēdējo reizi, 266 00:12:41,280 --> 00:12:43,200 ka tas mums? 267 00:12:43,200 --> 00:12:45,220 Kāds ir mērķis tā kalpo? 268 00:12:45,220 --> 00:12:46,984 Ikviens no tālāk atpakaļ? 269 00:12:46,984 --> 00:12:47,483 Jā. 270 00:12:47,483 --> 00:12:48,649 >> Auditorijas locekļa: [nedzirdama] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J Malan: Labi. 273 00:12:51,704 --> 00:12:53,537 Tātad, tas dod jums piekļuvi uz komandām, vai pieņemsim 274 00:12:53,537 --> 00:12:56,750 Zvanu viņiem funkcijas, ka kāds cits rakstīja, ka tiek deklarētas, 275 00:12:56,750 --> 00:12:58,350 tā sakot, kādā citā failā. 276 00:12:58,350 --> 00:13:02,370 Tātad mēs redzēsim, ko tieši .H fails ir pret a .c failu, galu galā. 277 00:13:02,370 --> 00:13:04,710 Bet tagad, tikai zinu ka printf, piemēram, 278 00:13:04,710 --> 00:13:08,370 ir viens no funkcijām, kas ir bijuši deklarēta kādā citā failā, kaut kur 279 00:13:08,370 --> 00:13:12,930 cits uz mākoņa cieto disku, kas ļauj mums piekļūt printf un izmantot to 280 00:13:12,930 --> 00:13:15,240 bez jauna ka riteņu sevi. 281 00:13:15,240 --> 00:13:16,930 Tikmēr galvenais. 282 00:13:16,930 --> 00:13:19,690 Kāds bija analogs galvenais, pagājušajā nedēļā? 283 00:13:19,690 --> 00:13:20,190 Jā. 284 00:13:20,190 --> 00:13:21,460 >> Auditorijas locekļa: Green karogs ir uzklikšķināt. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J Malan: Jā. 286 00:13:21,740 --> 00:13:23,490 Scratch s, kad zaļais karogs uzklikšķināt. 287 00:13:23,490 --> 00:13:25,560 Tas ir tāpat kā puzzle gabals ka kicks lietas off. 288 00:13:25,560 --> 00:13:28,306 Un tā līdzīgi, tomēr pasauli nolēma pirms dažiem gadiem, ka C, 289 00:13:28,306 --> 00:13:30,930 un ķekars citās valodās, ja jūs vēlaties, lai uzrakstīt programmu, 290 00:13:30,930 --> 00:13:33,410 jūsu pirmā funkcija ir, lai varētu saukt, galvenais. 291 00:13:33,410 --> 00:13:34,641 Un tas ir, lai izskatās šādi. 292 00:13:34,641 --> 00:13:36,640 Bet mēs būsim atpakaļ, cits laiks, lai ko, int, 293 00:13:36,640 --> 00:13:38,690 un, par spēkā neesošu, nozīmē šajā kontekstā. 294 00:13:38,690 --> 00:13:42,860 Tagad, cirtaini bikšturi ir laipns līdzīgu Scratch ir puzzle gabals formas 295 00:13:42,860 --> 00:13:45,080 kas apkopo kādu līniju skaitu. 296 00:13:45,080 --> 00:13:47,070 Un starp līnijās šeit, šeit tas viens. 297 00:13:47,070 --> 00:13:51,610 printf ir funkcija, kuras mērķis ir dzīve ir drukāt formatētu virkni. 298 00:13:51,610 --> 00:13:55,010 Un formatēti, es domāju tevi varat kontaktdakšu vietturis vērtībām, 299 00:13:55,010 --> 00:13:58,360 un jūs varat norādīt, cik daudz decimālo norāda, cik daudz skaitļi drukāt 300 00:13:58,360 --> 00:14:00,040 Pēc komata un tamlīdzīgi. 301 00:14:00,040 --> 00:14:05,040 Un printf, protams, aizņem vienu vai vairāk argumentus vai parametrus, 302 00:14:05,040 --> 00:14:06,770 citādi zināma, vairāk vienkārši, kā izejvielas. 303 00:14:06,770 --> 00:14:09,230 >> Tātad printf, tāpat daudz funkcijas, ņem ieejas. 304 00:14:09,230 --> 00:14:12,730 Un šie dati tiek paustās ar diviem iekavās šeit. 305 00:14:12,730 --> 00:14:15,180 Un iekšpusē no tiem ir viens ieejas. 306 00:14:15,180 --> 00:14:18,600 Tas ir string, jo mēs esam to sauca, kas ir tikai rakstzīmju sekvence, 307 00:14:18,600 --> 00:14:22,310 piemēram, vārdu vai frāzi, vai kopumā eseja pat, starp pēdiņās. 308 00:14:22,310 --> 00:14:25,712 Un tas, kas notiek varētu ietekmēt uzvedība printf, jo, protams, 309 00:14:25,712 --> 00:14:27,170 tas ir tikai vispārējs drukas funkcija. 310 00:14:27,170 --> 00:14:29,600 Tas nav gatavojas zināt, ko drukāt, ja vien jums pateikt to. 311 00:14:29,600 --> 00:14:31,000 Un tad, daži sīkumi. 312 00:14:31,000 --> 00:14:34,056 Ko mēs sakām tas dīvaini secība simboliem ir? 313 00:14:34,056 --> 00:14:34,556 Jā. 314 00:14:34,556 --> 00:14:35,410 >> Auditorijas locekļa: New līnija. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J Malan: New līnija. 316 00:14:35,990 --> 00:14:39,340 Tātad izrādās, jūs varat ne tikai hit, ievadīt, kad jūs esat rakstiski programmu. 317 00:14:39,340 --> 00:14:42,590 Parasti kompilators gatavojas iegūt nedaudz mulsina par to, ko tu domā. 318 00:14:42,590 --> 00:14:45,340 Drīzāk, jums ir burtiski saka, dod man jaunu līniju šeit. 319 00:14:45,340 --> 00:14:49,506 Un tā / n ir tas, ko mēs parasti zvaniet glābšanās raksturs. 320 00:14:49,506 --> 00:14:50,870 Tātad n, jaunu līniju. 321 00:14:50,870 --> 00:14:53,810 Un kompilators zina ka tad, kad redz / n, 322 00:14:53,810 --> 00:14:57,420 tas tiešām būtu izraisīt datoru, galu galā, vai printf, šajā gadījumā, 323 00:14:57,420 --> 00:15:00,260 izdrukāt faktisko Jauns līnija, tāpat kā hitting, ievadīt, 324 00:15:00,260 --> 00:15:01,480 taustiņu uz tastatūras. 325 00:15:01,480 --> 00:15:05,620 Un visbeidzot, ko darīja mēs sakām šis gabals sintakse ir? 326 00:15:05,620 --> 00:15:06,591 Ko tas pārstāv? 327 00:15:06,591 --> 00:15:07,090 Jā. 328 00:15:07,090 --> 00:15:07,490 >> Auditorijas locekļa: [nedzirdama] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J Malan: Tas ir tikai beigām, līnijas. 330 00:15:08,660 --> 00:15:09,909 Tas ir beigu pārskatā. 331 00:15:09,909 --> 00:15:11,890 Un saprast, ka mums nav viņus visur. 332 00:15:11,890 --> 00:15:13,900 Mēs, protams, nav viņus galos katrā no tām. 333 00:15:13,900 --> 00:15:16,680 Piemēram, tur ir neviens no pirmajā rindā, tur neviens uz līnijas 334 00:15:16,680 --> 00:15:18,680 ar, galvenais, tur neviens pēc cirtaini lencēm, 335 00:15:18,680 --> 00:15:21,740 bet jūs sākat redzēt un saņemt iepazinušies ar kur to sauc par. 336 00:15:21,740 --> 00:15:26,014 Un tas ir gandrīz vienmēr pēc funkcijas zvaniet vai paziņojums, daži pasākumi 337 00:15:26,014 --> 00:15:27,180 ka jūs faktiski lietojat. 338 00:15:27,180 --> 00:15:29,520 >> Un zinu tagad, it īpaši, ja Starp tiem ir mazāk apmierināti, 339 00:15:29,520 --> 00:15:32,540 šie ir stulba lietas veidu kas jūs galu galā nejauši banging 340 00:15:32,540 --> 00:15:33,873 galvu pret sienu vairāk. 341 00:15:33,873 --> 00:15:36,107 Tāpēc, ka jūs būsiet loģiski pārliecināti par kādu problēmu 342 00:15:36,107 --> 00:15:38,440 Jūs esat atrisināta problēma komplekts, un nopelt lieta tikko 343 00:15:38,440 --> 00:15:40,187 nebūs sastādīt vai pat palaist. 344 00:15:40,187 --> 00:15:43,270 Un tik bieži, agri, tas notiek, lai būt tāpēc, ka jūs neatbildētos iekavās 345 00:15:43,270 --> 00:15:44,455 vai jūs neatbildētos semikolu. 346 00:15:44,455 --> 00:15:46,547 Un tā vienkārši jābūt uzmanīgiem no šīm lietām, 347 00:15:46,547 --> 00:15:49,380 un mēģiniet nav iegūt neapmierinātas ar tos, jo ļoti ātri to dara 348 00:15:49,380 --> 00:15:50,640 novecot cepure. 349 00:15:50,640 --> 00:15:53,910 Bet tas ir ļoti viegli nokļūt neapmierinātas agri, kā rezultātā. 350 00:15:53,910 --> 00:15:57,020 >> Tāpēc tagad, pieņemsim to apskatīt, kā Šī līnija ir faktiski strādā 351 00:15:57,020 --> 00:15:59,170 un pēc tam apskatīt nedaudz sarežģītāka viens. 352 00:15:59,170 --> 00:16:02,017 Tāpēc mums ir vairāk nekā šeit, tad spēja izdarīt šajā ekrānā. 353 00:16:02,017 --> 00:16:04,100 Un pieņemsim, ka šī ir mana datora ekrāna, 354 00:16:04,100 --> 00:16:08,589 bet es esmu rakstot šo, sveiki programmu, un man nav īstenoti, printf. 355 00:16:08,589 --> 00:16:10,130 Kāds cits ir īstenojusi, printf. 356 00:16:10,130 --> 00:16:12,420 Kurš gribētu apgalvot ir īstenoti, printf? 357 00:16:12,420 --> 00:16:12,920 Ja mēs varam? 358 00:16:12,920 --> 00:16:13,830 Visas tiesības, kas ir jūsu vārds? 359 00:16:13,830 --> 00:16:14,155 >> STUDENT 1: [? Kopāls. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J Malan: Copal, nākt uz augšu. 361 00:16:15,529 --> 00:16:16,430 Nāciet uz augšu. 362 00:16:16,430 --> 00:16:17,070 Viss kārtībā. 363 00:16:17,070 --> 00:16:22,260 Tāpēc mums ir, šeit, daži vārdu tagus, jo mēs veiksim nelielu spēli šis. 364 00:16:22,260 --> 00:16:26,270 Un mēs aicinām jūs, printf. 365 00:16:26,270 --> 00:16:30,170 Un, ja jūs vēlaties, lai nāk pār šeit, ko es tikko novilkta uz ekrāna, 366 00:16:30,170 --> 00:16:32,340 tas ir diezgan vienkārši, tur ir man, tas. 367 00:16:32,340 --> 00:16:35,550 >> Labi, tāpēc, sveiki mans vārds ir, printf, ja jūs vēlaties, lai tas tālāk. 368 00:16:35,550 --> 00:16:35,740 Viss kārtībā. 369 00:16:35,740 --> 00:16:37,360 Un, ja jūs varat iet stāvēt ar datora ekrāna 370 00:16:37,360 --> 00:16:39,730 it kā jums ir funkcija, kas nāca ar šo datoru sistēmas. 371 00:16:39,730 --> 00:16:42,063 Un jūsu mērķis dzīvē ir faktiski drukāt kaut ko. 372 00:16:42,063 --> 00:16:44,560 Bet, līdzīgi kā programmu mēs tikko bija uz ekrāna, šeit, 373 00:16:44,560 --> 00:16:47,060 mēs esam nāksies faktiski dod jums dažas ievadi. 374 00:16:47,060 --> 00:16:51,810 >> Un tā, ja manu ieguldījumu, šeit ir acīmredzot, kas ir nodota printf, 375 00:16:51,810 --> 00:16:53,730 pieņemsim veida izspēles to, kā šis. 376 00:16:53,730 --> 00:16:58,720 Es esmu gatavojas burtiski rakstīt uz papīra gabals, "Hello, world," 377 00:16:58,720 --> 00:17:03,020 slīpsvītru N. Un, lai būtu skaidrs, ko Esmu tikko sagatavots par šo papīra gabalu, 378 00:17:03,020 --> 00:17:04,020 izskatās šādi. 379 00:17:04,020 --> 00:17:08,730 Tātad, kad es palaist šo programmu, un šī dzeltenā līnija kods tiek izpildīts, 380 00:17:08,730 --> 00:17:12,970 tā, it kā es, Hello programmu, esmu nododot kādu ievadi off uz funkciju 381 00:17:12,970 --> 00:17:13,970 ka kāds cits rakstīja. 382 00:17:13,970 --> 00:17:16,595 >> Un, ja jūs, ar pirkstu, varētu reāli, ar pirkstu, 383 00:17:16,595 --> 00:17:21,520 zīmēt uz ekrāna neatkarīgi tas ir jums ir nodoti, 384 00:17:21,520 --> 00:17:27,465 efekts, galu galā, ir redzēt, tieši tas, uz ekrāna. 385 00:17:27,465 --> 00:17:29,140 Un Little stūra gadījums. 386 00:17:29,140 --> 00:17:31,540 Un labi, mums nevajadzētu redzēt The, jaunā līnija, šajā brīdī. 387 00:17:31,540 --> 00:17:33,900 Būtu nepareizi, lai jūs skaidri izdarīt newline. 388 00:17:33,900 --> 00:17:36,810 Bet, ja mēs tur rakstot vārdus par ekrāna, viņi galu galā zemāks. 389 00:17:36,810 --> 00:17:39,560 >> Tik liels paldies, bet pieturēties šeit apmēram tikai vienu mirkli. 390 00:17:39,560 --> 00:17:42,860 Mums tagad ir nepieciešams viens otru brīvprātīgo, ja mēs varētu, 391 00:17:42,860 --> 00:17:46,830 kas notiek, lai ir nepieciešams, lai spēlēt lomu of-- Tas ir tikai cilvēki orķestri 392 00:17:46,830 --> 00:17:47,355 tieši tagad. 393 00:17:47,355 --> 00:17:47,980 Kā about-- OK. 394 00:17:47,980 --> 00:17:48,480 Tieši te. 395 00:17:48,480 --> 00:17:49,180 Nāciet uz augšu. 396 00:17:49,180 --> 00:17:49,955 Kā tevi sauc? 397 00:17:49,955 --> 00:17:50,922 >> STUDENT 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J Malan: Sorry? 399 00:17:51,796 --> 00:17:52,990 STUDENT 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J Malan: Ethan, nākt uz augšu. 401 00:17:55,320 --> 00:17:55,820 Nē? 402 00:17:55,820 --> 00:17:58,390 Vai es saņemt, ka nepareizi, pat pēc tam, kad teica, ka divreiz? 403 00:17:58,390 --> 00:17:58,890 Nāciet uz augšu. 404 00:17:58,890 --> 00:18:00,030 Ir grūti dzirdēt šeit. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 LABI. 407 00:18:05,740 --> 00:18:07,190 Un es atvainojos, kas ir jūsu vārds? 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. ?] LABI. 410 00:18:08,790 --> 00:18:10,430 Tagad, ja jums nav prāts, jūs GetString. 411 00:18:10,430 --> 00:18:11,013 >> STUDENT 2: OK. 412 00:18:11,013 --> 00:18:11,797 Cool. 413 00:18:11,797 --> 00:18:14,630 DAVID J Malan: Tātad, ja jūs vēlaties stāvēt šeit tikai brīdi, 414 00:18:14,630 --> 00:18:17,100 pieņemsim to apskatīt nedaudz sarežģītāka programma, kas 415 00:18:17,100 --> 00:18:18,670 Tagad ir trīs rindas kodu. 416 00:18:18,670 --> 00:18:24,080 Tātad mums ir viens, norādiet savu vārdu, izmantojot printf; divi, aicinājums uz GetString, 417 00:18:24,080 --> 00:18:28,060 seko norīkojumā mainīgs sauc, stīgu s, vai sauc s; 418 00:18:28,060 --> 00:18:31,260 un tad vēl aicinājumu, printf, bet šoreiz ar divām ieejām. 419 00:18:31,260 --> 00:18:33,646 >> Tātad mēs esam jau darījuši valsts Jūsu vārds, vai drīzāk, mēs esam 420 00:18:33,646 --> 00:18:34,770 jau paveikuši printf zvanu. 421 00:18:34,770 --> 00:18:38,960 Tāpēc es esmu gatavojas rakstīt, valsts savu vārdu. 422 00:18:38,960 --> 00:18:42,089 Un tā, ko es esmu gatavojas caurlaide, printf, tikai brīdi, 423 00:18:42,089 --> 00:18:43,005 ir pavisam vienkārši, tas. 424 00:18:43,005 --> 00:18:47,760 Tātad, ja jūs vēlaties, lai iet uz priekšu un izdarīt šo uz ekrāna, tas ir jūsu ieejas tagad. 425 00:18:47,760 --> 00:18:48,260 Viss kārtībā. 426 00:18:48,260 --> 00:18:51,160 Un aizmirst virkni, mums tagad ir mūsu pašu līniju koda šeit. 427 00:18:51,160 --> 00:18:54,470 Tātad, GetString, mums vajag faktiski zvanīt, GetString. 428 00:18:54,470 --> 00:18:57,920 Tātad jūsu mērķis dzīvē ir tikai staigāt ārā orķestri, ja jūs varētu, 429 00:18:57,920 --> 00:18:58,980 un iegūt kādu vārdu. 430 00:18:58,980 --> 00:19:00,860 Bet pieņemsim dot jums kaut likt to. 431 00:19:00,860 --> 00:19:02,908 Ja jūs vēlaties, iet uz priekšu un iegūt virkni, 432 00:19:02,908 --> 00:19:05,241 dabūt kādu vārdu par to papīra gabaliņš, ja jūs varētu. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Viss kārtībā. 435 00:19:13,530 --> 00:19:15,250 Un mēs redzēsim, tikai brīdi, kura vārds mēs esam nonākuši. 436 00:19:15,250 --> 00:19:17,630 Tajā pašā laikā, ko es esmu gatavojas ir gatavs, ir tukšs gabals 437 00:19:17,630 --> 00:19:21,340 no papīra, kurā, es eju uzglabāt kāda vērtība to 438 00:19:21,340 --> 00:19:25,752 ir tas, ka GetString atgriežas pie manis, Es, būdams string mainīgo sauc, s. 439 00:19:25,752 --> 00:19:26,252 Viss kārtībā. 440 00:19:26,252 --> 00:19:27,293 Tātad, ko jums ir šeit? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Viss kārtībā. 443 00:19:28,450 --> 00:19:30,910 Tāpēc mums ir Nik vārdu šeit. 444 00:19:30,910 --> 00:19:33,750 Tātad, tas ir tas, ko burtiski atdota 445 00:19:33,750 --> 00:19:35,810 man, tā sakot, ar GetString. 446 00:19:35,810 --> 00:19:38,720 >> Es, tagad dodos uz izpildīt kreiso pusi 447 00:19:38,720 --> 00:19:43,440 Šīs izpausmes, kur es vienkārši kopēt leju, šodienas vajadzībām, Nik. 448 00:19:43,440 --> 00:19:46,470 Tāpēc tagad, man ir mainīgais sauc, s, uzglabājot Nik vārdu. 449 00:19:46,470 --> 00:19:49,520 Esmu jau pārņēma printf, iepriekšējais arguments. 450 00:19:49,520 --> 00:19:52,800 Bet mūsu trešajā un pēdējā rindā kods, man tiešām ir roku printf 451 00:19:52,800 --> 00:19:58,500 kaut nedaudz different-- "sveiki,% s," reversā slīpsvītra n. 452 00:19:58,500 --> 00:20:01,510 >> Un tā pēdējā rindā es eju lai send-- pēdējā lieta, ko es esmu 453 00:20:01,510 --> 00:20:03,060 gatavojas rakstīt uz leju tagad, tas ir. 454 00:20:03,060 --> 00:20:06,310 Tātad divas rindiņas koda, vai drīzāk pēdējā rindā kodu, 455 00:20:06,310 --> 00:20:10,690 prasa divu inputs-- viens, tas, un divi, šis. 456 00:20:10,690 --> 00:20:13,330 Tātad, ja mūsu printf funkciju tagad var pieņemt tos kā ievade, 457 00:20:13,330 --> 00:20:16,000 ļaujiet man notīrītu ekrānu jums. 458 00:20:16,000 --> 00:20:17,250 Patiesībā nē, jūs varat iet uz priekšu. 459 00:20:17,250 --> 00:20:19,333 Mēs atstāt to uz augšu, jo tas ir par to pašu programmu. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Mums vajadzētu redzēt, hello Nik. 462 00:20:27,380 --> 00:20:27,880 Viss kārtībā. 463 00:20:27,880 --> 00:20:29,670 Tātad tas bija diezgan maz stīpām lēkt cauri, tikai 464 00:20:29,670 --> 00:20:31,620 rakstīt, norādīt savu nosaukums, un, hello Nik. 465 00:20:31,620 --> 00:20:37,210 Bet tas vienkārši ideja ziņa iet, ieejas tuvo un produkcijas saņemšanu, 466 00:20:37,210 --> 00:20:40,430 ir tieši tāds modelis, mēs esam nāksies lai pat vissarežģītākās funkcijas. 467 00:20:40,430 --> 00:20:41,804 Tātad paldies jums tik daudz, lai jums abiem. 468 00:20:41,804 --> 00:20:43,730 Mums ir jauki stress bumba šeit jums. 469 00:20:43,730 --> 00:20:48,890 Un paldies mūsu GetString un printf brīvprātīgie līdzīgi. 470 00:20:48,890 --> 00:20:49,551 Paldies. 471 00:20:49,551 --> 00:20:50,050 Viss kārtībā. 472 00:20:50,050 --> 00:20:50,966 Paldies jums abiem. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Tāpēc mēs esam runājuši par līdz šim, galvenokārt par stīgām. 475 00:21:00,430 --> 00:21:06,550 Un izrādās, ka C var faktiski saprast dažus dažādus datu tipus. 476 00:21:06,550 --> 00:21:08,860 Patiesībā, pieņemsim apskatīt šos šeit. 477 00:21:08,860 --> 00:21:12,490 Tātad C, un daudz valodu, izprast lietas sauc simboli. 478 00:21:12,490 --> 00:21:16,852 Char parasti ir baitu vai astoņi biti. 479 00:21:16,852 --> 00:21:19,810 Un tas nozīmē tikai vienu rakstzīmi, tāpat burtu A, vai kapitālu 480 00:21:19,810 --> 00:21:21,990 burts A, vai arī mazo burtu A, vai izsaukuma zīme, 481 00:21:21,990 --> 00:21:25,440 vai kāds raksturs, ka jūs varat rakstīt par klaviatūras, un dažreiz pat vairāk. 482 00:21:25,440 --> 00:21:26,795 Mēs arī gadās redzēt pludiņus. 483 00:21:26,795 --> 00:21:31,160 Pluds ir, parasti A 32-bitu vērtības, vai četri baiti 484 00:21:31,160 --> 00:21:33,660 jo atkal, viens baits ir astoņi biti. 485 00:21:33,660 --> 00:21:36,675 >> Tātad pludiņš ir peldošā punkta vērtība, kaut kas ar komata. 486 00:21:36,675 --> 00:21:38,550 Un tiešām, tas, ko filma runāja 487 00:21:38,550 --> 00:21:42,240 par to, kad viņi runāja par peldošs punktu vērtības, kādu noteiktu bitu skaitu 488 00:21:42,240 --> 00:21:43,940 tiek izmantoti, lai pārstāvētu reālu numuru. 489 00:21:43,940 --> 00:21:45,740 Bet tur ir arī lietas, ko sauc dubultspēlēs. 490 00:21:45,740 --> 00:21:47,860 Tie pastāv Java, ja tu esi APCS, 491 00:21:47,860 --> 00:21:51,540 un dubultā, jo vārds par laimi liecina, ir divas reizes lielāks kā apgrozāmos līdzekļus. 492 00:21:51,540 --> 00:21:54,540 Tas joprojām ir reāls skaitlis, tas vienkārši ir vairāk bitu 493 00:21:54,540 --> 00:21:58,390 ar kuru būt arvien precīzāk, vai uzglabāt pat lielākus skaitļus. 494 00:21:58,390 --> 00:21:58,890 int ir viegli. 495 00:21:58,890 --> 00:22:00,181 Mēs runājām par to, ka pēdējo reizi. 496 00:22:00,181 --> 00:22:01,160 Tas ir tikai skaitlis. 497 00:22:01,160 --> 00:22:03,980 Un tas parasti 32 biti, vai četri baiti. 498 00:22:03,980 --> 00:22:07,850 >> Un tā, ja jums ir, pieņemsim redzēt tagad, 32 bits-- un mēs darījām nedēļā 0, 499 00:22:07,850 --> 00:22:10,820 kādreiz tik briefly--, ja jums ir 32 biti, kas ir lielākais 500 00:22:10,820 --> 00:22:13,580 numurs jūs varat pārstāvēt kā vesels skaitlis? 501 00:22:13,580 --> 00:22:16,080 Dot vai ņemt? 502 00:22:16,080 --> 00:22:18,380 Tas ir tāpat kā 4 miljardus, un tas ir tikai tad, ja mēs esam 503 00:22:18,380 --> 00:22:20,690 pārstāv tikai pozitīvus skaitļus. 504 00:22:20,690 --> 00:22:23,930 Ja jums ir 32 biti, un jūs vēlaties, lai pārstāvēt negatīvus skaitļus, kā arī, 505 00:22:23,930 --> 00:22:27,100 Jūsu diapazons būtībā ir negatīvs 2 miljardi uz pozitīvu 2 miljardiem. 506 00:22:27,100 --> 00:22:29,250 Bet vispār, mēs sāksim 0 iet līdz 4 miljardiem. 507 00:22:29,250 --> 00:22:32,400 >> Jums nav jāzina precīzi, bet mēs varam redzēt to, patiesībā, ja es vienkārši 508 00:22:32,400 --> 00:22:36,400 atvērt mazliet kalkulatoru, šeit. 509 00:22:36,400 --> 00:22:41,070 Es varu darīt 2 no 32, un tas ir tieši tas, cik liels, 510 00:22:41,070 --> 00:22:43,190 cik daudz vērtības jūs varat pārstāvēt, ar 32 bitiem. 511 00:22:43,190 --> 00:22:44,442 Un tas ir aptuveni 4 miljardi. 512 00:22:44,442 --> 00:22:46,900 Tāpēc mēs turpinām redzēt šo numuru pāris dažādās vietās. 513 00:22:46,900 --> 00:22:48,890 Bet, ja jums ir nepieciešams ilgāks skaitļi nekā, 514 00:22:48,890 --> 00:22:51,670 izrādās, tur ir kaut ko sauc ilgi ilgi. 515 00:22:51,670 --> 00:22:54,005 Un ilgi ilgi parasti 64 bitiem, kas 516 00:22:54,005 --> 00:22:56,380 nozīmē, ka tas ir par kārtu pat lielāks nekā int. 517 00:22:56,380 --> 00:22:59,510 >> Tāpēc es pat nevaru izrunāt lielākais numurs, jūs varat pārstāvēt, 518 00:22:59,510 --> 00:23:01,340 bet tas ir ievērojami lielāks. 519 00:23:01,340 --> 00:23:05,190 Tagad kā malā, vēsturiski, ja int ir 32 biti, 520 00:23:05,190 --> 00:23:12,780 un ilgi ilgi ir 64 biti, kā liels ir ilgs, nav ilgi ilgi? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Jūs domājat, ka tas ir garāks nekā int bet varbūt mazāk nekā ilgi ilgi ilgi, 523 00:23:20,330 --> 00:23:21,400 bet tas tiešām atkarīgs. 524 00:23:21,400 --> 00:23:23,400 >> Un tā izrādās viens no neapmierinātību pārāk, 525 00:23:23,400 --> 00:23:26,830 ar rakstot kodu konkrētām sistēmām, ir tā, ka nav visi no šiem datu tipu 526 00:23:26,830 --> 00:23:28,440 ir iepriekš noteiktām vērtībām. 527 00:23:28,440 --> 00:23:29,771 Dažreiz tas ir šo daudz biti. 528 00:23:29,771 --> 00:23:31,020 Dažreiz tas ir, ka daudzi bitiem. 529 00:23:31,020 --> 00:23:32,750 Tātad jums tiešām ir jāzina, dažreiz, kāda aparatūra 530 00:23:32,750 --> 00:23:34,083 jūs strādājat savu programmatūru. 531 00:23:34,083 --> 00:23:36,960 Par laimi, citas valodas un citi datu veidi, kas šobrīd pastāv, 532 00:23:36,960 --> 00:23:38,400 ļauj precīzāk. 533 00:23:38,400 --> 00:23:41,220 Nu, mēs redzējām virkni, un mēs redzējām bool, pārāk, 534 00:23:41,220 --> 00:23:43,960 bet izrādās, tie nāk tikai ar CS50 bibliotēkā. 535 00:23:43,960 --> 00:23:46,240 Tātad tie nav būvētas uz C. Tie vietā, 536 00:23:46,240 --> 00:23:49,340 nākt šajā failā ar nosaukumu CS50.h, ka mēs galu galā 537 00:23:49,340 --> 00:23:51,831 mizu atpakaļ slāņus. 538 00:23:51,831 --> 00:23:53,830 Bet tagad, viņi vienkārši papildu datu tipi. 539 00:23:53,830 --> 00:23:57,060 Bool ir patiess vai nepatiess, un virkne ir rakstzīmju sekvence, 540 00:23:57,060 --> 00:23:57,970 kā vārdu. 541 00:23:57,970 --> 00:24:01,690 Tagad printf, mēs esam redzējuši, ir vietturi,% s ir viens. 542 00:24:01,690 --> 00:24:05,430 Un jūs varētu būt iespēja, lai tagad, secināt no šiem citiem piemēriem, kā 543 00:24:05,430 --> 00:24:07,720 Jums varētu būt vietturi dažādiem datu veidiem. 544 00:24:07,720 --> 00:24:11,150 Piemēram, ņem uzminēt, ja jums vēlējās izdrukāt vienu char izmantojot 545 00:24:11,150 --> 00:24:15,270 printf, vietturi ir iespējams% c. 546 00:24:15,270 --> 00:24:19,650 Un, ja jūs vēlaties, lai izdrukāt vesels skaitlis ar viettura,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD ir garš garš decimālo vērtību, bet ilgi ilgi, lai kartes, lai to. 548 00:24:25,150 --> 00:24:28,640 Un tad% f peldošo punktu vērtība vai dubultā, 549 00:24:28,640 --> 00:24:31,270 tāpēc dažreiz viņi atkārtoti izmanto dažādos kontekstos. 550 00:24:31,270 --> 00:24:33,350 Tātad mēs redzēsim un izmantot daži no tiem laika gaitā. 551 00:24:33,350 --> 00:24:36,420 Un printf un citas funkcijas arī atbalstīt citu personu evakuācijas sekvences, 552 00:24:36,420 --> 00:24:38,080 un reizēm, tie ir nepieciešami. 553 00:24:38,080 --> 00:24:39,770 Tātad slīpsvītru n ir jauna līnija. 554 00:24:39,770 --> 00:24:42,886 Slīpsvītru t, vai kāds vēlaties veikt stab? 555 00:24:42,886 --> 00:24:43,760 Auditorijas locekļa: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J Malan: Tab. 557 00:24:44,551 --> 00:24:46,810 Tātad, ja jūs tiešām vēlaties izdrukāt cilni, ne 558 00:24:46,810 --> 00:24:49,940 fiksēts skaits telpās, bet faktiskā tab raksturs, jums nav hit jūsu, 559 00:24:49,940 --> 00:24:53,490 tab, taustiņu uz tastatūras, parasti, jūs faktiski darīt reversā slīpsvītra t. 560 00:24:53,490 --> 00:24:57,750 Slīpsvītru double quote, kāpēc es kādreiz vēlaties, ka? 561 00:24:57,750 --> 00:24:58,250 Tiesības? 562 00:24:58,250 --> 00:25:00,417 Kāpēc es nevaru vienkārši ierakstiet double quote uz manu klaviatūru? 563 00:25:00,417 --> 00:25:02,124 Auditorijas locekli: Jo, pretējā gadījumā, tas ir 564 00:25:02,124 --> 00:25:04,830 gatavojas domāju, ka tas ir beigu no patīk jūsu drukas [? teksta. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J Malan: Tieši tā. 566 00:25:05,420 --> 00:25:07,211 Atcerieties, ar mūsu printf piemēri, kad mēs 567 00:25:07,211 --> 00:25:10,075 Tika iet uz printf ieeju, pa kreisi no šīs ieejas virkni 568 00:25:10,075 --> 00:25:12,950 un par tiesībām uz šī ieguldījuma pavasarī, protams, bija dubultā citātu. 569 00:25:12,950 --> 00:25:16,270 Ja jūsu pašu ieguldījums ir dubultā quote vidū, kas, 570 00:25:16,270 --> 00:25:18,920 dators varētu potenciāli apmulst, kā to, 571 00:25:18,920 --> 00:25:20,760 Vai šis dubultā citātu pieder vidū? 572 00:25:20,760 --> 00:25:22,150 Vai tas pieder ar kreiso vienu? 573 00:25:22,150 --> 00:25:23,566 Vai tas pieder ar pareizo vienu? 574 00:25:23,566 --> 00:25:26,780 Un tā, ja jūs vēlaties, lai padarītu to super skaidrs, jūs slīpsvītru dubultu citātu, 575 00:25:26,780 --> 00:25:30,480 tā ka tas ir aizbēguši, tā sakot, un tas nav esot sajaukusi par kaut ko citu. 576 00:25:30,480 --> 00:25:34,400 Un tur ir daži citi šeit, slīpsvītru r, vienu pēdiņām, 0, 577 00:25:34,400 --> 00:25:36,510 ka mēs varam redzēt laika gaitā, kā arī. 578 00:25:36,510 --> 00:25:37,760 Un tagad, ko par funkcijām? 579 00:25:37,760 --> 00:25:41,630 >> Tāpēc darbības, ko mēs varam veikt līdz šim šajā valodā, C, labi, mēs esam redzējuši, 580 00:25:41,630 --> 00:25:44,320 printf, protams, un viss viens no otra uz ekrāna, 581 00:25:44,320 --> 00:25:47,140 šeit, ka mēs izmantosim, lai Protams pirmie pāris tikai nedēļas, 582 00:25:47,140 --> 00:25:48,485 nākt kad CS50 bibliotēku. 583 00:25:48,485 --> 00:25:51,850 Un viņi dara to daudz vieglāk, jo C, lai faktiski saņemtu lietotāja ievadi. 584 00:25:51,850 --> 00:25:54,200 Izrādās, ka C, un atklāti pāris valodās, 585 00:25:54,200 --> 00:25:57,450 tas ir reāls sāpes kaklā darīt kaut kas vienkāršs, piemēram, tūlītēju lietotāju 586 00:25:57,450 --> 00:26:01,310 par klaviatūru, par viņa vai viņas ieguldījumu. 587 00:26:01,310 --> 00:26:03,240 Un tā šīs funkcijas padara vieglāku. 588 00:26:03,240 --> 00:26:05,472 >> Un tas arī ir kļūda pārbaudot visu, 589 00:26:05,472 --> 00:26:07,180 tā, ka, kad jūs atgādināt trešdien, mēs 590 00:26:07,180 --> 00:26:09,740 redzēja, mēģiniet vēlreiz, brīdinājums, kad es nesadarbojās, 591 00:26:09,740 --> 00:26:11,700 un es drukāti vārdu, nevis vairākas? 592 00:26:11,700 --> 00:26:15,402 Mēs esam darījuši smago celšanas sākumā par pārliecināties lietotājs sadarbojas. 593 00:26:15,402 --> 00:26:17,860 Bet tie ir tikai mācības riteņi, ka mēs galu galā, 594 00:26:17,860 --> 00:26:19,640 un ātri, pacelšanās. 595 00:26:19,640 --> 00:26:22,630 >> Tātad, lai Atgādinājums, tad, pieņemsim ātri apskatīt, 596 00:26:22,630 --> 00:26:26,620 līdzīgi mēs darījām ar nulles, pie daži kanonisko konstrukcijas C 597 00:26:26,620 --> 00:26:28,580 Tas ir domāts, lai, kārtot novērtējums būt viesulis tūre, 598 00:26:28,580 --> 00:26:30,990 tikai tāpēc, ka jums ir atsauce un ka jūs esat redzējis lietas sākumā. 599 00:26:30,990 --> 00:26:34,100 Bet tad mēs apskatīt faktisko kodēšana izmantot dažus no šiem pamatelementiem. 600 00:26:34,100 --> 00:26:36,710 Tik daudz, tāpat kā nulles, kad mums bija paziņojumi, piemēram, 601 00:26:36,710 --> 00:26:41,570 teikt, vai gaidīt, C, mums ir funkcijas, kā arī, piemēram, printf. 602 00:26:41,570 --> 00:26:45,350 >> Ja mēs gribam izteikt nosacījumu C, tas ir līdzīgs, garā, 603 00:26:45,350 --> 00:26:47,840 uz šo puzzle gabals, kas izskatījās tas nulles. 604 00:26:47,840 --> 00:26:49,850 Bet tā vietā, mēs burtiski vienkārši uzrakstīt, ja. 605 00:26:49,850 --> 00:26:51,830 Un tad, iekavās, mēs ieliekam nosacījumu, 606 00:26:51,830 --> 00:26:54,807 ja šis nosacījums ir tas, ko mēs zvanu, atkal, Būla izteiksme. 607 00:26:54,807 --> 00:26:56,390 Un atkal, tas ir sava veida pseudocode. 608 00:26:56,390 --> 00:26:58,830 Un, patiesībā, // ir komentārs. 609 00:26:58,830 --> 00:27:00,550 Tas ir tikai angļu vārdus pie sevis. 610 00:27:00,550 --> 00:27:03,000 Bet tas ir vispārīgs struktūra ir, ja, stāvoklī. 611 00:27:03,000 --> 00:27:05,220 Bet mēs redzēsim betona piemēri tikai brīdi. 612 00:27:05,220 --> 00:27:07,960 >> Ja jūs vēlaties, lai būtu divvirzienu dakša uz ceļa, 613 00:27:07,960 --> 00:27:11,740 līdzīgi mēs darījām ar mūsu brīvprātīgo par Trešdiena, jums var būt, ja cits. 614 00:27:11,740 --> 00:27:16,020 Un, ja jūs vēlaties, lai būtu trešā un Galīgais nosacījums, vai noklusējuma situācija, 615 00:27:16,020 --> 00:27:19,006 Jums var būt tikai par citu bloku, tur. 616 00:27:19,006 --> 00:27:21,880 Un līdzīgi, ar Būla izteiksmes, jūs varat, un, tos kopā. 617 00:27:21,880 --> 00:27:24,296 Un mēs redzējām trešdien, ka tas nav viens & zīme, 618 00:27:24,296 --> 00:27:28,220 tas ir divi, jo zemāka līmeņa iemesliem, mēs beidzot redzēt un spēlēt ar. 619 00:27:28,220 --> 00:27:30,410 Vai-ing lietas kopā ir 2 vertikālas svītras. 620 00:27:30,410 --> 00:27:32,240 Uz ASV tastatūru, šis parasti ir galvenais 621 00:27:32,240 --> 00:27:35,730 ar Shift taustiņu virs Jūsu taustiņu Enter vai Return taustiņu. 622 00:27:35,730 --> 00:27:38,620 >> Tad tur ir šīs lietas, kas mēs izmantosim varbūt vienu vai divas reizes. 623 00:27:38,620 --> 00:27:42,570 Tie ir funkcionāli līdzvērtīgi ko jūs varat darīt ar, ja cits, ja, 624 00:27:42,570 --> 00:27:44,950 cits, ja cits, būvēt, bet viņi sauc slēdzi. 625 00:27:44,950 --> 00:27:48,020 Tie izskatās ļoti dažādi, bet mēs redzēt dažus no mūsu sadales kodu, 626 00:27:48,020 --> 00:27:51,890 nākotnes problēmu kopumu, visticamāk, ka tas ir dažreiz tikai glītāka 627 00:27:51,890 --> 00:27:54,060 veids, kā paust vienotu veselumu ķekars nosacījumiem, 628 00:27:54,060 --> 00:27:57,590 bez daudz cirtaini lencēm un daudz iekavās un iespiedumiem. 629 00:27:57,590 --> 00:28:01,910 Bet viņi dod mums ne vairāk jauda nekā mums jau ir. 630 00:28:01,910 --> 00:28:02,550 Un tagad cilpas. 631 00:28:02,550 --> 00:28:05,020 Un tas viens, mēs meklēt at nedaudz lēnāk. 632 00:28:05,020 --> 00:28:08,470 Bet tad mēs sāksim izmantot šos, jo īpaši tiem, kas jau pazīstami. 633 00:28:08,470 --> 00:28:13,830 Tas ir kanonisko veids, ja neticami arcane veids, lai rakstītu cilpu C 634 00:28:13,830 --> 00:28:15,896 >> Tagad cilpa Scratch bija diezgan vienkārši. 635 00:28:15,896 --> 00:28:17,020 Jums ir, uz visiem laikiem, bloku. 636 00:28:17,020 --> 00:28:19,760 Jums ir, Atkārtot, bloks ar tikai skaitlis jums ir rakstīt. 637 00:28:19,760 --> 00:28:22,220 Un ar, cilpas, jūs varat īstenot abas šīm idejām, 638 00:28:22,220 --> 00:28:23,595 bet tas ir mazliet vairāk tehnisks. 639 00:28:23,595 --> 00:28:25,994 Bet atklāti sakot, tas ir arī samērā vienkāršs. 640 00:28:25,994 --> 00:28:28,160 Tiklīdz jūs zināt par kārtību operācijas, jūs burtiski 641 00:28:28,160 --> 00:28:30,910 ir tikai gatavojas plug vērtībām un pateikt datoram, ko darīt. 642 00:28:30,910 --> 00:28:32,800 Tātad, šeit ir piemērs. 643 00:28:32,800 --> 00:28:38,040 Tas ir cilpa, kas, diezgan vienkārši, skaitās no viena numura uz augšu 644 00:28:38,040 --> 00:28:40,187 caur citu. 645 00:28:40,187 --> 00:28:42,020 Un tikai ar glancing pie tā, pat ja jums ir 646 00:28:42,020 --> 00:28:44,660 nav iepriekšēja pieredze ar šī valoda, ko skaits 647 00:28:44,660 --> 00:28:46,920 tas, iespējams, sākt skaitīšana? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 Un es esmu guessing tas ir tāpēc, ka jums redzēt, ka tur ir int un i, 650 00:28:50,240 --> 00:28:51,073 kas ir mainīgs. 651 00:28:51,073 --> 00:28:52,390 Tas ir inicializēts ar 0. 652 00:28:52,390 --> 00:28:55,670 >> Un tad vēlāk, tas izskatās mēs iet printf, vērtību. 653 00:28:55,670 --> 00:28:58,000 Un, patiesībā, es mazliet typo šeit. 654 00:28:58,000 --> 00:28:59,850 Bet tas ir viegli noteikts. 655 00:28:59,850 --> 00:29:02,390 Ļaujiet man piebilst, es šeit. 656 00:29:02,390 --> 00:29:06,150 Mums tagad ir printf būtni izturējis šo viettura vērtību. 657 00:29:06,150 --> 00:29:08,299 Un kas notiek, lai saskaitīt cauri? 658 00:29:08,299 --> 00:29:08,840 Mērķ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 Tātad 50, pēc pirmā acu uzmetiena, šķiet labi. 663 00:29:13,340 --> 00:29:16,990 Bet tas, izrādās, būs Mūsu nosacījums, ka mēs turpinām pārbaudīt. 664 00:29:16,990 --> 00:29:21,740 Un mēs ejam, lai apturētu reizi i ir vairs nav mazāks par 50. 665 00:29:21,740 --> 00:29:24,920 Tātad šī cilpa, tieši pretēji, vajadzētu izpildīt, tik ilgi, kamēr i ir mazāks nekā 50. 666 00:29:24,920 --> 00:29:28,891 Bet, tiklīdz tas kļūst 50, vai 51, vai vēl ļaunāk, tas būtu automātiski apstāties. 667 00:29:28,891 --> 00:29:29,390 Viss kārtībā. 668 00:29:29,390 --> 00:29:31,200 >> Tātad, kas patiesībā notiek šeit? 669 00:29:31,200 --> 00:29:33,160 Tātad šis ir no rīkojums operācijas cilpu. 670 00:29:33,160 --> 00:29:35,440 One, jums ir tā saukto inicializācijas. 671 00:29:35,440 --> 00:29:38,264 Šī dzeltenā uzsvēra rieciens kods tiek izpildīts pirmais, 672 00:29:38,264 --> 00:29:40,930 un tā sekas ir, ka uz vienu Trešdiena, jūs, iespējams iedomāties. 673 00:29:40,930 --> 00:29:45,500 Tas rada mainīgo sauc i un to veikali šajā mainīgā vērtība 0. 674 00:29:45,500 --> 00:29:47,560 Tāpēc es ir 0 šajā brīdī stāsts. 675 00:29:47,560 --> 00:29:49,680 >> Nākamā lieta, kas notiek šajā būvēt, 676 00:29:49,680 --> 00:29:51,540 ir tā, ka nosacījums izpaužas pārbaudīti. 677 00:29:51,540 --> 00:29:54,325 Tāpēc es pārbaudīt uzreiz, ir i mazāk nekā 50? 678 00:29:54,325 --> 00:29:57,700 Un, protams, atbilde tagad ir, protams, jā. 679 00:29:57,700 --> 00:30:00,710 Jā, jo i ir 0, un tas protams ir mazāks par 50. 680 00:30:00,710 --> 00:30:03,866 Tad kas notiek, ir tas, ka šis līnija koda izpaužas izpildīts. 681 00:30:03,866 --> 00:30:06,740 Un patiesībā, ja tur ir vairākas rindas kods šajās cirtaini bikšturi, 682 00:30:06,740 --> 00:30:09,020 viņi visi iegūt izpildīts viens pēc otra. 683 00:30:09,020 --> 00:30:11,450 >> Un efekts šeit ir acīmredzot, izdrukāt 684 00:30:11,450 --> 00:30:15,365 skaits i, kas notiek pie būt 0, un pēc tam pēc tam 1 un 2. 685 00:30:15,365 --> 00:30:15,865 Bet kāpēc? 686 00:30:15,865 --> 00:30:17,410 Kāpēc tas get palielina? 687 00:30:17,410 --> 00:30:20,680 Nu, ceturtā lieta, kas notiek, ir tas, ka šo sintaksi 688 00:30:20,680 --> 00:30:22,610 izpaužas izpildīts, pēc semikolu. 689 00:30:22,610 --> 00:30:27,506 i ++ ir stenogrāfija veids, kā pateikt; ņemt vērtību i, un pievieno 1 līdz tā; 690 00:30:27,506 --> 00:30:30,380 un tad nākamajā reizē apkārt, pievienot 1 ar to; un nākamajā reizē apkārt, 691 00:30:30,380 --> 00:30:31,330 pievieno 1 līdz to. 692 00:30:31,330 --> 00:30:33,640 >> Tātad, ja mēs turpinām iet, kas notiek varētu notikt 693 00:30:33,640 --> 00:30:35,890 Nākamais ir es neesmu gatavojas sāktu es kādreiz atkal. 694 00:30:35,890 --> 00:30:38,290 Ja es tur inicializēšana i 0, šis piemērs 695 00:30:38,290 --> 00:30:41,110 tas nekad nebeigsies, jo Es būtu iestrēdzis pie 0. 696 00:30:41,110 --> 00:30:43,870 Bet to, kas notiks, ir ka nosacījums tiks pārbaudīta, 697 00:30:43,870 --> 00:30:54,280 līnija koda saņems izpildīts, i tiks palielināts, 698 00:30:54,280 --> 00:30:56,970 stāvoklis tiks pārbaudīts, kods saņems izpildīts. 699 00:30:56,970 --> 00:30:59,790 Un tas tur riteņbraukšana atkal, un atkal, un atkal, 700 00:30:59,790 --> 00:31:03,340 līdz i ++ inducē vērtība ir 50. 701 00:31:03,340 --> 00:31:05,870 >> Nosacījums tam saka: ir 50 mazāk nekā 50? 702 00:31:05,870 --> 00:31:09,360 Atbilde, protams, nav, un tāpēc visa kods apstājas izpildes. 703 00:31:09,360 --> 00:31:13,020 Un, ja jums ir vairāk kodu uz ekrāna lejā, ka tas, kas notiks tālāk. 704 00:31:13,020 --> 00:31:17,530 Tā pops no šiem cirtaini lencēm un turpina drukāt vēl pēc tam. 705 00:31:17,530 --> 00:31:20,470 >> Tātad joks tagad, no fokstrots, ka jūs varbūt tagad saprotu. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Tas vienmēr ir smieklīgi. 708 00:31:31,560 --> 00:31:34,110 Tas ir tāpat kā chuckles veida izkāst, 709 00:31:34,110 --> 00:31:38,370 un tad tu saproti, jums nevajadzētu būt smejoties humors, kā šis. 710 00:31:38,370 --> 00:31:41,160 Bet ir daži takeaway šeit, pedagoģiski, too. 711 00:31:41,160 --> 00:31:43,577 Tātad izrādās, ka es esmu trūkst gabals sintaksi, 712 00:31:43,577 --> 00:31:45,410 vai fokstrots ir pazudis gabals sintakses šeit. 713 00:31:45,410 --> 00:31:48,076 Kas trūkst, ka mēs esam bija jebkurā citā Piemēram, līdz šim? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Atgriešanās, ir tur, tāpēc tas ir kaut kas cits, 716 00:31:53,390 --> 00:31:54,440 ka mēs atgriezīsimies pie pirms ilgi. 717 00:31:54,440 --> 00:31:55,398 Kas trūkst, lai gan? 718 00:31:55,398 --> 00:31:55,908 Jā. 719 00:31:55,908 --> 00:31:58,150 >> Auditorijas locekļa: The inicializācijas no [nedzirdama]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J Malan: OK. 721 00:31:58,470 --> 00:31:58,980 So yeah. 722 00:31:58,980 --> 00:32:03,210 Tātad faktiski šis is-- Nu, un skaits ir inicializēts 723 00:32:03,210 --> 00:32:05,470 augšas, vai drīzāk, paziņoja augšas. 724 00:32:05,470 --> 00:32:06,960 Tātad šis ir vēl viens veids, kā to darīt. 725 00:32:06,960 --> 00:32:08,685 Bet ne vienā rindā, tas ir derīgs gan. 726 00:32:08,685 --> 00:32:09,310 Kā par šeit? 727 00:32:09,310 --> 00:32:10,196 >> Auditorijas locekļa: Vai tas ir cirtaini bikšturi? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J Malan: Jā. 729 00:32:10,640 --> 00:32:12,080 Tātad cirtaini bikšturi trūkst. 730 00:32:12,080 --> 00:32:15,495 Bet tas kods, es domāju, uz to kredītu, faktiski, sintaktiski spēkā. 731 00:32:15,495 --> 00:32:17,610 Izrādās, jums nav nepieciešama cirtaini bikšturi 732 00:32:17,610 --> 00:32:21,691 ja jums ir tikai vienu rindiņu kodu, kas jūs vēlaties izpildīt iekšpusē cilpas. 733 00:32:21,691 --> 00:32:24,190 Tagad mēs vienmēr, klasē un visas mūsu sadales kodu, 734 00:32:24,190 --> 00:32:26,730 ietver cirtaini bikšturi anyway, tikai skaidrības labad. 735 00:32:26,730 --> 00:32:29,010 Bet saprotu, ka mācību grāmatās un tiešsaistes piemēri, 736 00:32:29,010 --> 00:32:31,300 jums var ļoti labi redzēt cirtaini breketes trūkst dažkārt. 737 00:32:31,300 --> 00:32:34,850 Un tas ir OK, ja tas, ko tu ir atkāpi un paredzēts 738 00:32:34,850 --> 00:32:38,650 ir tikai vienu rindiņu kodu, un nav vairākas rindas kods, iespējams. 739 00:32:38,650 --> 00:32:39,150 Viss kārtībā. 740 00:32:39,150 --> 00:32:44,500 Tātad saistībā ar jautājumu par neprecizitāte, ir jautājums par pārplūdi, 741 00:32:44,500 --> 00:32:48,560 tādā nozīmē, ka, līdzīgi, Vai skaitļu ir robežas tiem 742 00:32:48,560 --> 00:32:49,970 tāpat kā peldošā punkta vērtības? 743 00:32:49,970 --> 00:32:53,120 Šajā pasaulē Peldošāpunkt vērtībām, mēs varam būt tikai tik precīzi, 744 00:32:53,120 --> 00:32:55,710 pēc tam, dažreiz sliktas lietas var notikt, 745 00:32:55,710 --> 00:32:57,760 un mūsu programmas var būt buggy un kļūdu. 746 00:32:57,760 --> 00:33:00,050 Tagad pat ar veseliem skaitļiem, jūs varat uzskriet problēmas. 747 00:33:00,050 --> 00:33:03,820 Tagad vesels skaitlis nav komatu vai numuri pēc tā. 748 00:33:03,820 --> 00:33:07,130 Tas ir tikai dabas numuru, parasti. 749 00:33:07,130 --> 00:33:09,430 Tātad, ko varētu iet nepareizi ar int? 750 00:33:09,430 --> 00:33:12,210 Ja es esmu, izmantojot int uz Count, kas varētu noiet greizi? 751 00:33:12,210 --> 00:33:13,230 Šķiet daudz vienkāršāk. 752 00:33:13,230 --> 00:33:13,873 Jā. 753 00:33:13,873 --> 00:33:16,240 >> Auditorijas locekļa: Ja numurs izpaužas [nedzirdama] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J Malan: Jā. 755 00:33:17,073 --> 00:33:20,820 Ko darīt, ja jūs skaits tik augsts, ka jums nevar izteikt, kas patiešām liels skaits. 756 00:33:20,820 --> 00:33:21,320 Tiesības? 757 00:33:21,320 --> 00:33:23,910 Kādā brīdī, jūs gatavojas pārsniegt robežas 758 00:33:23,910 --> 00:33:27,077 of a 32-bit vērtību vai 64 bitu vērtību. 759 00:33:27,077 --> 00:33:29,410 Tagad atkal, es neesmu pārliecināts, kā izrunāt 64 bitu vērtību, 760 00:33:29,410 --> 00:33:32,230 bet es zinu, ar 32 bitu vesels skaitlis, lielākā vērtība, tas var būt, 761 00:33:32,230 --> 00:33:35,490 ja tas ir tikai pozitīvs vērtībām, ir aptuveni 4 miljardi. 762 00:33:35,490 --> 00:33:39,000 Tātad, ja es mēģinātu skaitīt līdz 5 miljardiem, kaut notiks. 763 00:33:39,000 --> 00:33:41,050 Bet pieņemsim redzēt, kas, patiesībā, var notikt. 764 00:33:41,050 --> 00:33:44,570 Pasaulē skaitlim pārplūdes, kur jūs, kas nozīmē, 765 00:33:44,570 --> 00:33:48,270 pārplūst kapacitātes skaitlis, kas varētu notikt? 766 00:33:48,270 --> 00:33:51,190 >> Tātad, šeit ir bināro numuru, tas ir atavisms 0. 767 00:33:51,190 --> 00:33:54,630 Tas ir visu 1 s, un vietturi tur, ir pilnvaras 2, 768 00:33:54,630 --> 00:33:55,980 tāpēc tas ir bināro. 769 00:33:55,980 --> 00:33:59,416 Tātad šie ir 8, 1 biti uz ekrāna. 770 00:33:59,416 --> 00:34:01,290 Un, ja jūs atceraties, vai jūs ātri math, 771 00:34:01,290 --> 00:34:06,074 kāda vērtība pārstāvētās šeit ar šiem astoņiem 1 bitiem? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Un, pat ja jums nav pilnīgi pārliecināts par matemātiku, jūs varētu darīt to ārā. 774 00:34:09,260 --> 00:34:10,550 Vai jūs varētu tikai veida no iemesla caur to, 775 00:34:10,550 --> 00:34:12,633 pagaidiet minūti, ja es esmu pārstāvot 8 bitu vērtība, 776 00:34:12,633 --> 00:34:17,750 un es esam ieguvuši 256 iespējamās vērtības, bet no kuriem pirmais ir 0, 777 00:34:17,750 --> 00:34:19,909 Es tikai zinu, ka Lielākais būs 255, 778 00:34:19,909 --> 00:34:21,510 un tas, ko tas varētu būt. 779 00:34:21,510 --> 00:34:26,060 >> Tāpēc domāju, ka es cenšos pievienot 1 līdz šai vērtībai. 780 00:34:26,060 --> 00:34:28,750 Ko tu darītu pakāpē skolu, pievienojot 1, un tas 781 00:34:28,750 --> 00:34:31,139 nav īsti piemērots, jo Jums ir veikt: 1? 782 00:34:31,139 --> 00:34:34,380 Kas ir šis skaitlis turpinās kļūt, kad jūs pievienot 1? 783 00:34:34,380 --> 00:34:37,030 Tas notiek, lai kļūtu 0. 784 00:34:37,030 --> 00:34:37,530 Tiesības? 785 00:34:37,530 --> 00:34:41,139 Jo, ja jums bija vairāk bits-- un es ņemšu mēģināt, veida, ierakstiet to ārā here-- 786 00:34:41,139 --> 00:34:44,710 ja mums būtu vairāk bitu, ko mēs varētu darīt, šeit ir pievienot 1, 787 00:34:44,710 --> 00:34:47,370 un tad mēs gribētu saņemt šo. 788 00:34:47,370 --> 00:34:48,739 Whoops. 789 00:34:48,739 --> 00:34:52,250 Mēs gribētu ir 1 mazliet visu ceļu vairāk nekā šeit. 790 00:34:52,250 --> 00:34:55,530 >> Bet, ja tas ir ierobežots vērtība, tas ir tikai 8 biti, 791 00:34:55,530 --> 00:34:57,480 un tas ir iepriekš noteikts ar datoru, 792 00:34:57,480 --> 00:34:59,370 ka 1 ir faktiski nav tur. 793 00:34:59,370 --> 00:35:00,980 Tas tikai veida nokrīt no klints. 794 00:35:00,980 --> 00:35:05,480 Un tāpēc, ja jūs pievienot 1 līdz 255, ko vērtību, jūs acīmredzot nokļūt? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Un tā skaitļiem nejauši, un iespējams, nejauši, 797 00:35:09,700 --> 00:35:12,040 beigties ietīšana apkārt kā šis. 798 00:35:12,040 --> 00:35:14,079 Tātad, kādi var būt saistība ar šo? 799 00:35:14,079 --> 00:35:15,620 Nu, tur ir dažas dažādas lietas. 800 00:35:15,620 --> 00:35:18,751 Tātad viens, tas galu galā meklē piemēram, 0, nejauši, 801 00:35:18,751 --> 00:35:20,750 bet jūs varat veida redzēt, pat reālajā pasaulē, 802 00:35:20,750 --> 00:35:23,416 lai labāk vai sliktāk, izpausmes šo ideju par limitu. 803 00:35:23,416 --> 00:35:26,630 Piemēram, kāds no jums, kas ir kādreiz bijusi Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 Vai kāds zinu maksimālais skaits monētu 805 00:35:28,880 --> 00:35:32,032 Jūs varat savākt Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Veikt, ka, balstoties uz mūsdienu vadošajiem jautājumiem. 807 00:35:35,640 --> 00:35:39,140 Tas ir lielāks nekā 256 vai 255. 808 00:35:39,140 --> 00:35:40,330 Tas ir 4 miljardi. 809 00:35:40,330 --> 00:35:42,080 Tātad izrādās, un tur ir daži people-- 810 00:35:42,080 --> 00:35:46,080 daži googling apstiprināja pagājušajā night-- gotten 4 miljardus zelta monētas, 811 00:35:46,080 --> 00:35:47,730 vai plauktiņš, jo Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Lai gan acīmredzot, tur ir veids, kā triks spēli, 813 00:35:49,860 --> 00:35:53,222 tur ir bug vai funkcija, kas ļauj jums tikai uzkrāj daudz un daudz punktus. 814 00:35:53,222 --> 00:35:54,930 Bet iespējams, lielākais vērtība, saskaņā 815 00:35:54,930 --> 00:35:58,360 šai ekrānuzņēmums par kādu I atrast internetā, ir patiesi, 4 miljardi. 816 00:35:58,360 --> 00:35:59,240 >> Tagad, kāpēc tā? 817 00:35:59,240 --> 00:36:03,040 Tas ir tieši tas, 4 miljardi, droši vien tāpēc, ka kāds nolēma, 818 00:36:03,040 --> 00:36:05,500 kurš bija rakstot šo spēli, ka viņi varētu darīt 4 miljardi, 819 00:36:05,500 --> 00:36:07,340 kaut kas, kaut kas, kaut kas, tāpat vērtības es safasēti 820 00:36:07,340 --> 00:36:10,256 ar kalkulatoru agrāk, bet tas ir tikai nedaudz tīrāku cilvēkiem 821 00:36:10,256 --> 00:36:12,610 teikt maksimālo skaitu no coins-- vai kniedes, 822 00:36:12,610 --> 00:36:14,860 kā tie piestāj them-- ka jūs var savākt, ir 4 miljardi. 823 00:36:14,860 --> 00:36:16,290 Un tā, kāpēc tas ir? 824 00:36:16,290 --> 00:36:20,310 Kā ir LEGO spēle Īstenojot counter 825 00:36:20,310 --> 00:36:23,420 kas ir sekotu monētu skaits jums ir? 826 00:36:23,420 --> 00:36:24,266 Viņi izmanto to, ko? 827 00:36:24,266 --> 00:36:26,390 Auditorijas locekļa: Tas apstājas skaitīšana pēc 4 miljardi. 828 00:36:26,390 --> 00:36:27,720 DAVID J Malan: Tas apstājas skaitīšana pēc 4 miljardus, 829 00:36:27,720 --> 00:36:29,525 kas nozīmē, ka jūs varat secināt, kā programmētājs, 830 00:36:29,525 --> 00:36:31,960 ka viņi, iespējams, Izmantojot 32 bitu vesels skaitlis. 831 00:36:31,960 --> 00:36:35,380 Tāpat programmētājs burtiski tikko drukāti, int, viņa vai viņas kodu, 832 00:36:35,380 --> 00:36:39,620 un tas ir mainīgā tips, kas viņi izmanto, lai saglabātu kādu kodu. 833 00:36:39,620 --> 00:36:42,230 Tātad tur ir citas izpausmes no šiem ierobežojumiem veidu. 834 00:36:42,230 --> 00:36:45,063 >> Tāpēc es neesmu spēlējis šo SPĒLI_ un es lasīju līdzi vēsturi 835 00:36:45,063 --> 00:36:48,470 apstiprināt kā much-- bet tajā, ka Sākotnējā versijā civilizācijas, kur 836 00:36:48,470 --> 00:36:53,240 Jūs acīmredzot mijiedarboties ar katru otru un var karot vai ir miers, 837 00:36:53,240 --> 00:36:56,590 Gandijs bija jābūt vienam no vismierīgākajām rakstzīmes, kā es 838 00:36:56,590 --> 00:36:59,280 saprotu, pirmajā versija civilizācijas. 839 00:36:59,280 --> 00:37:03,250 Un faktiski, atzīmi no 1 līdz 10, viņa agresivitāte bija tikai 1. 840 00:37:03,250 --> 00:37:05,620 Tik kādreiz tik maigi agresīvs, acīmredzot. 841 00:37:05,620 --> 00:37:11,590 >> Bet kādā brīdī, jūs varat acīmredzot instalēt demokrātiju savā ģeogrāfijā. 842 00:37:11,590 --> 00:37:14,900 Un, ja jūs instalējiet demokrātiju savā versijā spēli, 843 00:37:14,900 --> 00:37:17,320 tad jūsu agresijas līmenis iet uz leju. 844 00:37:17,320 --> 00:37:18,460 Tā ir laba lieta. 845 00:37:18,460 --> 00:37:20,890 Cilvēki ir vairāk rāms acīmredzot, šādā situācijā. 846 00:37:20,890 --> 00:37:23,190 Bet acīmredzot, kāds to darīja ne ir, ja, nosacījums 847 00:37:23,190 --> 00:37:24,780 oriģinālajā versijā kodu. 848 00:37:24,780 --> 00:37:30,650 >> Tātad Gandija agresija līmenis pieauga no pozitīvs 1, mīnus 2, uz negatīvu 1, 849 00:37:30,650 --> 00:37:33,840 bet spēle nav izprast negatīvus skaitļus. 850 00:37:33,840 --> 00:37:38,680 Tātad, kas notika bija Gandija agresija līmenis pieauga no 1, līdz 0, uz negatīvu 1, 851 00:37:38,680 --> 00:37:40,900 kas rezultātā tika ietīšana ap to 852 00:37:40,900 --> 00:37:44,690 visvairāk agresīvu raksturu spēlē, pie kura vērtība ir 255, 853 00:37:44,690 --> 00:37:46,630 atzīmi no 1 līdz 10. 854 00:37:46,630 --> 00:37:49,887 Un kopš tā laika, tur ir bijis vairāk inkarnācijām šajā spēlē, 855 00:37:49,887 --> 00:37:51,720 un viņi tur to kā sava veida Lieldienu olu, 856 00:37:51,720 --> 00:37:53,870 ka Gandhi ir acīmredzami tik briesmīgi agresīvs. 857 00:37:53,870 --> 00:37:56,740 Bet tas bija rezultāts ļoti vienkāršs programmēšanas kļūda 858 00:37:56,740 --> 00:37:58,630 šajā ļoti agri versiju spēli. 859 00:37:58,630 --> 00:38:02,860 >> Tagad vairāk satraucoši, vairāk nesen, Boeing 787 860 00:38:02,860 --> 00:38:05,720 tika dokumentēts kā kam bug, nav tāda veida ierīces 861 00:38:05,720 --> 00:38:07,340 jūs īpaši vēlaties, lai būtu kļūda. 862 00:38:07,340 --> 00:38:10,130 Un simptomi, ka es izlasīju šeit, no raksta internetā, 863 00:38:10,130 --> 00:38:13,840 bija tas, modelis 787 lidmašīna kas ir nepārtraukti powered 864 00:38:13,840 --> 00:38:18,030 par 248 dienām var zaudēt visu maiņstrāvu, AC, 865 00:38:18,030 --> 00:38:20,850 elektriskā jauda, ​​pateicoties Ģenerators kontroles vienības, 866 00:38:20,850 --> 00:38:23,330 GCUs, vienlaicīgi nonākšana bezatteices režīmā. 867 00:38:23,330 --> 00:38:26,790 Tātad tas bija brīdinājums izsniegts kad šī problēma tika atklāts. 868 00:38:26,790 --> 00:38:28,750 Šis nosacījums ir radījis ar programmatūras letes, 869 00:38:28,750 --> 00:38:32,230 iekšējais uz GCUs, tāpēc vesels skaitlis vai mainīga, 870 00:38:32,230 --> 00:38:36,850 ka griba pārplūdes pēc 248 dienas nepārtrauktas jaudas. 871 00:38:36,850 --> 00:38:40,350 Boeing ir procesā izstrādā GCU programmatūras jauninājums, ka 872 00:38:40,350 --> 00:38:42,350 kas novērstu nedrošu stāvokli. 873 00:38:42,350 --> 00:38:44,226 >> Tik daudz kā raķete scenārijs, kur 874 00:38:44,226 --> 00:38:46,850 tie bija sava veida mainīgo kas bija skaitīšana, un skaitīšana, 875 00:38:46,850 --> 00:38:50,720 un skaitīšana, bet pamazām pārpildīta robežas savas iespējas, 876 00:38:50,720 --> 00:38:54,890 līdzīgi bija nopelt lidmašīnu ir mainīga pārplūdes 877 00:38:54,890 --> 00:38:56,410 Pēc pietiekami laika norisi. 878 00:38:56,410 --> 00:38:59,240 Un tā mēles-in-vaiga veids Darba ap šo jautājumu 879 00:38:59,240 --> 00:39:04,400 ir patiesi, reboot, jūsu lidmašīna ik 247 dienas, tā ka atmiņa izpaužas noslaucītajiem 880 00:39:04,400 --> 00:39:06,100 un mainīgais iet atpakaļ uz 0. 881 00:39:06,100 --> 00:39:09,410 Bet saprast, tas ir ļoti liels avatārs programmatūru, 882 00:39:09,410 --> 00:39:14,070 bet jo īpaši kā mēs dzirdam par Apple operētājsistēmas nonākšana automašīnām, 883 00:39:14,070 --> 00:39:18,030 un self-braukšanas automašīnas no Google, un kāds no inkarnācijām programmatūru skaits 884 00:39:18,030 --> 00:39:21,000 mūsu ikdienas dzīvē, TV un pulksteņi, un vairāk, 885 00:39:21,000 --> 00:39:24,950 realizēt būtu ieskauj programmatūru, visi, kas ir uzrakstīts ar mums cilvēkiem. 886 00:39:24,950 --> 00:39:28,150 >> Un kā mēs visi drīz atklāt, tas ir ļoti viegli un ļoti tipisks 887 00:39:28,150 --> 00:39:30,250 kļūdīties rakstot programmatūru. 888 00:39:30,250 --> 00:39:32,745 Un, ja jums nav nozvejas viņiem, dažas sliktas lietas var notikt. 889 00:39:32,745 --> 00:39:35,400 Tagad reizēm, daži funny lietas var notikt, 890 00:39:35,400 --> 00:39:38,280 vai vismaz dažreiz mēs zināt sagaidīt kādu sliktums. 891 00:39:38,280 --> 00:39:41,550 Tātad 0 dalīts ar 0, no pakāpes skola, parasti ir slikta lieta. 892 00:39:41,550 --> 00:39:43,050 Tas ir undefined. 893 00:39:43,050 --> 00:39:46,440 Un izrādās out-- un pieņemsim redzēt, ja mans mic var paņemt šo up-- ka Apple 894 00:39:46,440 --> 00:39:47,790 bija daži jautri ar šo nesen. 895 00:39:47,790 --> 00:39:48,850 Tāpēc man ir iPhone šeit. 896 00:39:48,850 --> 00:39:54,160 Es esmu gatavojas runāt ar Siri un uzdot viņai sniegt man atbildi uz 0 atbildi dalīts ar 0. 897 00:39:54,160 --> 00:39:55,850 Kas ir 0 dala ar 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> Siri: Iedomājieties, ka jums ir 0 cepumi, un jūs sadalīt tos vienmērīgi 900 00:40:02,230 --> 00:40:03,540 starp 0 draugiem. 901 00:40:03,540 --> 00:40:05,810 Cik cookies tas katram cilvēkam nokļūt? 902 00:40:05,810 --> 00:40:06,350 Skatīt? 903 00:40:06,350 --> 00:40:07,660 Tam nav jēgas. 904 00:40:07,660 --> 00:40:10,540 Un Cookie Monster ir skumji ka nav cookies. 905 00:40:10,540 --> 00:40:13,987 Un jums ir skumji, ka jums nav draugu. 906 00:40:13,987 --> 00:40:15,570 DAVID J Malan: Tas ir sava veida nepatīkams. 907 00:40:15,570 --> 00:40:17,550 Tātad, tas ir tas, kas bija tikko teica tur. 908 00:40:17,550 --> 00:40:21,380 Tas ir nenoteikts, tas nav noteikts, Un tiešām, daudzas programmēšanas valodas 909 00:40:21,380 --> 00:40:24,950 vai, tiešām, sastādītāji būs noteikt, kad jūs, programmā, 910 00:40:24,950 --> 00:40:27,050 mēģināt sadalīt 0, 0. 911 00:40:27,050 --> 00:40:29,830 Vairāk jautrības nekā šo, lai gan, ir ka acīmredzot, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 ir par čivināt šajās dienās. 913 00:40:31,270 --> 00:40:37,610 Un viņš atbildēja uz šo, ar to, kas ir absolūti adorable. 914 00:40:37,610 --> 00:40:40,110 Bet pieņemsim ātri apskatīt pāris citas konstrukcijas, 915 00:40:40,110 --> 00:40:43,459 un tad ielieciet dažus šīs jāizmanto kods, labos veidos. 916 00:40:43,459 --> 00:40:45,250 Tātad izrādās, turklāt uz cilpas, tur ir 917 00:40:45,250 --> 00:40:49,174 kaut kas ko sauc par kamēr cilpa, ka izskatās citādi, un tiek īstenota 918 00:40:49,174 --> 00:40:51,590 mazliet differently-- un mēs beidzot redzēt examples-- 919 00:40:51,590 --> 00:40:53,500 bet savā ziņā, tas ir vienkāršāk, jo tas 920 00:40:53,500 --> 00:40:56,670 neļauj jums, lai sāktu un atjaunināt ietvaros robežas cilpas. 921 00:40:56,670 --> 00:40:57,794 Jūs joprojām varat īstenot. 922 00:40:57,794 --> 00:41:01,219 Tātad jūs varat darīt tieši tādas pašas lietas ar kamēr cilpa, kā ar par cilpu, 923 00:41:01,219 --> 00:41:03,260 bet jūsu sintakse, ultimately-- kā mēs beidzot 924 00:41:03,260 --> 00:41:04,551 see-- būs atšķirīgs. 925 00:41:04,551 --> 00:41:07,450 Tur pat darīt, kamēr cilpa, kas ir faktiski mazliet atšķirīgs, 926 00:41:07,450 --> 00:41:09,640 šajā tā kā par cilpu un kamēr cilpa vienmēr 927 00:41:09,640 --> 00:41:13,005 pārbaudiet to stāvokli, pirmkārt, ja Jūs lasāt šo lietu augšas uz apakšu, 928 00:41:13,005 --> 00:41:16,440 tā veida izskatās, ka tas notiek, lai pārbaudiet to stāvokli pēdējais, jo tas ir 929 00:41:16,440 --> 00:41:17,910 patiesi pēdējā rindā kodu. 930 00:41:17,910 --> 00:41:20,580 Un tiešām, tas būs noderīgs dažās programmās, ka mēs rakstām, 931 00:41:20,580 --> 00:41:23,746 ja jūs vēlaties, lai tikai akli kaut ko darīt un galu galā pārbaudīt stāvokli. 932 00:41:23,746 --> 00:41:25,205 Tas nav nekas slikts. 933 00:41:25,205 --> 00:41:27,912 Ja mēs gribam mainīgos, mēs varam darīt tā pāris dažādos veidos. 934 00:41:27,912 --> 00:41:30,290 Un mēs redzējām Foxtrot karikatūra, viens no veidiem, kā to darīt, 935 00:41:30,290 --> 00:41:33,400 kur jūs atzīt savu mainīgo, piemēram, int counter semikolu, 936 00:41:33,400 --> 00:41:36,570 un tad later-- varbūt nākamais line, varbūt 10 līnijas later-- 937 00:41:36,570 --> 00:41:37,800 jūs tiešām sāktu to. 938 00:41:37,800 --> 00:41:42,230 Tātad šie 2 koda rindiņas deklarēt int tipa mainīgais 939 00:41:42,230 --> 00:41:44,930 un sauc to skaitītājs, tāpēc tas dod mani pietiekami biti rīkot int. 940 00:41:44,930 --> 00:41:48,230 Un tad galu galā, tas liek vērtība 0 minētajā mainīgs. 941 00:41:48,230 --> 00:41:51,250 Tā organizē 0 un 1 ir preces modelis, ka mēs zinām, no pagājušajā nedēļā, 942 00:41:51,250 --> 00:41:53,260 apzīmē skaitu mēs pazīstam kā 0. 943 00:41:53,260 --> 00:41:56,920 Vai godīgi sakot, jūs varat darīt daudz kodolīgāk, tāpat kā šo. 944 00:41:56,920 --> 00:41:59,390 >> Tagad mums ir arī spēja zvanu funkciju. 945 00:41:59,390 --> 00:42:03,070 Un patiesībā, šeit ir 2 līnijas Programma, vai izvilkums punktu, 946 00:42:03,070 --> 00:42:06,157 kas ļauj mums faktiski uzrakstīt kādu kodu, kas 947 00:42:06,157 --> 00:42:08,990 saņem virkni no user-- daudz tāpat kā mūsu brīvprātīgais brīdi ago-- 948 00:42:08,990 --> 00:42:11,320 uzglabājot rezultātu mainīgā sauc vārds, 949 00:42:11,320 --> 00:42:15,470 un then-- līdzīgi ar mūsu brīvprātīgo ar printf-- izdrukā šīs vērtības 950 00:42:15,470 --> 00:42:19,180 pārejot uz diviem argumentiem, tad virknes, kam seko mainīgā 951 00:42:19,180 --> 00:42:20,781 sauc, nosaukums, pati. 952 00:42:20,781 --> 00:42:23,155 Tātad, pieņemsim to apskatīt, pirms mēs nonākam atpakaļ pie Mario tur, 953 00:42:23,155 --> 00:42:26,010 pie pāris tagad, piemēri. 954 00:42:26,010 --> 00:42:30,537 >> Es iešu uz priekšu un atvērt up, teiksim, funkcija-0.c. 955 00:42:30,537 --> 00:42:33,120 Un, kā vienmēr, šis kods ir pieejams par kursu mājas lapā, 956 00:42:33,120 --> 00:42:35,660 lai jūs varētu spēlēt kopā at mājas un apskatīt to vēlāk. 957 00:42:35,660 --> 00:42:40,400 Bet šeit ir programma tas ir būtība, no līnijas 17 līdz 22. 958 00:42:40,400 --> 00:42:43,270 Galvenais programma ir vieta, kur Programma vienmēr gatavojas sākt. 959 00:42:43,270 --> 00:42:46,980 Šī programma, acīmredzot, gatavojas izdrukāt savu vārdu, kolu. 960 00:42:46,980 --> 00:42:50,320 Tas ir tad dodas uz zvanu GetString, tāpat kā mēs to darījām ar mūsu brīvprātīgajiem. 961 00:42:50,320 --> 00:42:53,365 Un tad, tas ir interesanti, tas notiek, lai izsauktu PrintName. 962 00:42:53,365 --> 00:42:56,490 Izrādās, visu šo laiku, tur šķiet, ir funkcija sauc PrintName. 963 00:42:56,490 --> 00:42:57,614 Kas drukā kādu vārdu. 964 00:42:57,614 --> 00:43:01,210 Mums nav nepieciešams izmantot printf no vakardienas, tur ir PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Bet tas ir maldinošs jo PrintName nav 966 00:43:03,500 --> 00:43:06,760 nāk ar C. cilvēki nav izgudrot to pirms aptuveni 40 vai 50 gadiem, 967 00:43:06,760 --> 00:43:07,990 Es darīju, vietā. 968 00:43:07,990 --> 00:43:10,330 Un patiesībā, ja es ritiniet kas tālāk, paziņojums 969 00:43:10,330 --> 00:43:14,200 kā es varu uzrakstīt mana funkcijas C. Mēs ņemšu beidzot 970 00:43:14,200 --> 00:43:16,319 izskaidrot, kāpēc mēs turpinām sakot, par spēkā neesošu, jo dažās vietās, 971 00:43:16,319 --> 00:43:18,110 bet šodien, pieņemsim paskatieties uz vārda. 972 00:43:18,110 --> 00:43:20,905 >> On line 24, ja jūs vēlaties, lai izveidot savu funkciju, 973 00:43:20,905 --> 00:43:22,780 Jūs burtiski rakstīt Nosaukums funkciju. 974 00:43:22,780 --> 00:43:24,340 Es izvēlējos PrintName. 975 00:43:24,340 --> 00:43:26,159 Iekavās, jūs tad jānorāda, kāda veida 976 00:43:26,159 --> 00:43:28,450 izejvielu, un cik daudz jūs gribu šo funkciju veikt. 977 00:43:28,450 --> 00:43:31,906 Šajā gadījumā, es gribu, lai ņemtu 1 mainīgo sauc, vārds, 978 00:43:31,906 --> 00:43:34,030 un tas būs par veids, stīgu, tāpēc tas notiek 979 00:43:34,030 --> 00:43:35,780 būt daži secība rakstzīmes. 980 00:43:35,780 --> 00:43:39,170 Un tad, tas program-- līdzīgi kā nulles, 981 00:43:39,170 --> 00:43:42,590 Jūs varat būt pasūtījuma mīklu pieces-- nāksies šo pasūtījuma uzvedību. 982 00:43:42,590 --> 00:43:46,760 Tas notiek, lai izsauktu printf garāmejot, hello, viettura, 983 00:43:46,760 --> 00:43:49,110 un tad tas notiek, lai kontaktdakšu jebkurā lietotājs sauc. 984 00:43:49,110 --> 00:43:51,450 >> Tātad šis ir piemērs tam, ko dators zinātnieks būtu 985 00:43:51,450 --> 00:43:55,090 zvans abstrakcija vai funkcionālā sadalīšanās, kas ir tikai 986 00:43:55,090 --> 00:43:58,110 fancy veidi no saying-- ir, ja jums patīk šī augsta līmeņa ideju, 987 00:43:58,110 --> 00:44:01,569 kā es gribu funkcionalitāti, kas izdrukā kādu vārdu, absolūti jums 988 00:44:01,569 --> 00:44:04,360 var burtiski rakstīt printf un pēc tam apliecību argumentiem vēlaties, 989 00:44:04,360 --> 00:44:07,340 un programma darbosies, kā tas ir kopš trešdienas. 990 00:44:07,340 --> 00:44:10,510 Bet jūs varat sākt abstrakts prom jēdziens drukāšanas nosaukumu. 991 00:44:10,510 --> 00:44:13,270 Jūs varat arī tā nosaukumu, piemēram PrintName, un šis 992 00:44:13,270 --> 00:44:15,280 ir šī ideja layering no nedēļas 0. 993 00:44:15,280 --> 00:44:19,910 >> Turpmāk, es un jums nav jāzina vai aprūpi, kā PrintName tiek īstenots. 994 00:44:19,910 --> 00:44:22,470 Jā tā izmanto printf, varbūt tas nav, kas zina, ko lieto? 995 00:44:22,470 --> 00:44:23,410 Who cares? 996 00:44:23,410 --> 00:44:26,034 Tagad es runāju šeit, nevis uz leju šeit. 997 00:44:26,034 --> 00:44:28,700 Un tiešām, kā mūsu programmas nokļūt spēcīgākās un sarežģītākas, 998 00:44:28,700 --> 00:44:32,550 mēs spēsim turpināt lietot par pašsaprotamu ka zemāka līmeņa puzzle gabalus pastāvēt. 999 00:44:32,550 --> 00:44:34,780 Tāpēc, ka mēs rakstījām tos vai kāds cits darīja, tāpēc 1000 00:44:34,780 --> 00:44:36,910 ka mēs varam pēc tam jābalstās uz augšu no tiem. 1001 00:44:36,910 --> 00:44:39,430 Pieņemsim to apskatīt šo variants, darbojas viens. 1002 00:44:39,430 --> 00:44:41,780 >> Tātad šis ir nedaudz vairāk uzlabotas, bet izrādās, 1003 00:44:41,780 --> 00:44:44,570 ka CS50 bibliotēkā, tur ir tikai GetInt funkcija. 1004 00:44:44,570 --> 00:44:47,720 Mēs nedomājām, pirms vairākiem gadiem, lai īstenotu GetPositiveInt funkciju. 1005 00:44:47,720 --> 00:44:50,970 Un tas ir mazliet kaitinošas, jo, ja jūs puiši rakstāt programmu pie kam 1006 00:44:50,970 --> 00:44:53,325 jūs vēlaties saņemt pozitīvu vesels skaitlis no lietotāja, 1007 00:44:53,325 --> 00:44:55,010 Jūs varat absolūti izmantot GetInt. 1008 00:44:55,010 --> 00:44:57,840 Un jūs varat absolūti pārbaudīt ar nosacījums un varbūt cilpa 1009 00:44:57,840 --> 00:45:00,320 ja tas int ir lielāks par 0 un kliegt pie lietotāja 1010 00:45:00,320 --> 00:45:02,699 ja viņš vai viņa nesniedz Jūs pozitīvs skaitlis. 1011 00:45:02,699 --> 00:45:04,740 Bet pieņemsim veidot šo ēka bloķēt sevi, a, 1012 00:45:04,740 --> 00:45:06,555 custom Scratch gabals, ja Jums gribas. 1013 00:45:06,555 --> 00:45:08,680 Es esmu nāksies programma šeit, ka galu galā, es 1014 00:45:08,680 --> 00:45:11,780 vēlas, lai varētu zvanīt GetPositiveInt, un es gribu būt 1015 00:45:11,780 --> 00:45:14,200 iespēja izdrukāt lai kas int ir. 1016 00:45:14,200 --> 00:45:16,240 Bet tas ir nošķirts prom tagad. 1017 00:45:16,240 --> 00:45:19,050 Tas ir tikai dota augstu vārds, kas saka, ka tas, ko tā dara, 1018 00:45:19,050 --> 00:45:21,780 kas ir brīnišķīgi, jo tas ir ļoti intuitīvu tagad lasīt. 1019 00:45:21,780 --> 00:45:24,710 Un, ja man vienalga, kas ir zem ar kapuci, ļaujiet man ritiniet uz leju. 1020 00:45:24,710 --> 00:45:27,140 Un tas ir nedaudz biedējoša sākumā, īpaši 1021 00:45:27,140 --> 00:45:29,470 Ja šī ir jūsu pirmā programma, bet pieņemsim to apskatīt. 1022 00:45:29,470 --> 00:45:32,860 >> Es vairs sakot, par spēkā neesošu, jo izrādās funkcijas, 1023 00:45:32,860 --> 00:45:34,777 līdzīgi GetString, var atgriež vērtību man. 1024 00:45:34,777 --> 00:45:36,610 Tie nav vienkārši ir drukāt uz ekrāna, 1025 00:45:36,610 --> 00:45:38,410 tie faktiski var nodot man kaut kas atpakaļ. 1026 00:45:38,410 --> 00:45:41,535 Un tā kā pirms PrintName, Man nav nepieciešams neko atpakaļ. 1027 00:45:41,535 --> 00:45:44,160 Man vajadzēja blakusparādība kaut kas rāda uz augšu uz ekrāna, 1028 00:45:44,160 --> 00:45:46,570 bet man nav vajadzīga cilvēka atdot man kaut ko atpakaļ. 1029 00:45:46,570 --> 00:45:48,840 Lūk, ar GetPositiveInt, tāpat ar GetInt, 1030 00:45:48,840 --> 00:45:50,640 Es gribu jānodod kaut ko atpakaļ. 1031 00:45:50,640 --> 00:45:53,220 Tāpēc es saku nē, par spēkā neesošu, on line 23, bet int, 1032 00:45:53,220 --> 00:45:55,570 kas saka, šī funkcija ka es rakstu, 1033 00:45:55,570 --> 00:45:58,860 sauc GetPositiveInt gatavojas roku mani atpakaļ veselu skaitli, nevis nekas, 1034 00:45:58,860 --> 00:45:59,890 nav spēkā. 1035 00:45:59,890 --> 00:46:03,280 >> Tajā pašā laikā, tas notiek, lai ne ieejas, tāpēc es esmu, veida, mainīja to. 1036 00:46:03,280 --> 00:46:08,280 Es neesmu dodot GetPositiveInt nevienu ievade, es gribu, lai man savu produkciju. 1037 00:46:08,280 --> 00:46:09,800 Un tad, kas notiek tagad? 1038 00:46:09,800 --> 00:46:11,640 Tātad, šeit ir, kā es varu deklarēt mainīgo. 1039 00:46:11,640 --> 00:46:15,090 Es esmu darījusi to ārpus cilpas, iemeslu dēļ, mēs beidzot redzam, 1040 00:46:15,090 --> 00:46:17,700 bet tas tikai dod man 32 biti sauc, n, 1041 00:46:17,700 --> 00:46:20,952 un es esmu iepriekš noteiktu tos uzglabāt skaitlim. 1042 00:46:20,952 --> 00:46:23,660 Un šeit ir, ka, darīt, kamēr būvēt, un tas ir iemesls, kāpēc tas ir noderīgi. 1043 00:46:23,660 --> 00:46:26,700 Burtiski to izdarītu, bet n ir mazāk nekā 1. 1044 00:46:26,700 --> 00:46:28,030 Tātad, pieņemsim redzēt, kas notiek. 1045 00:46:28,030 --> 00:46:30,760 Es izdrukāt, lūdzu man pozitīvu int. 1046 00:46:30,760 --> 00:46:34,300 Tad man int, izmantojot CS50 s darboties un uzglabā n. 1047 00:46:34,300 --> 00:46:38,990 >> Un tad, kas rindā kodu, iespējams, izpaužas izpildīts nākamais, loģiski? 1048 00:46:38,990 --> 00:46:41,890 Kura līnija numurs? 1049 00:46:41,890 --> 00:46:42,571 Jā, tā 31. 1050 00:46:42,571 --> 00:46:45,320 Jūs nezināt to, līdz jūs esat teicis vai veida secināt to, 1051 00:46:45,320 --> 00:46:45,986 bet tā ir taisnība. 1052 00:46:45,986 --> 00:46:48,280 Tā iet no augšas uz leju un tad tur atkārtojot. 1053 00:46:48,280 --> 00:46:55,840 Tātad, ja man ir drukāti teiksim, skaita negatīvs 1, ir n mazāks nekā negatīvs 1? 1054 00:46:55,840 --> 00:46:56,340 Jā. 1055 00:46:56,340 --> 00:46:58,470 Jo negatīvā 1 ir mazāks nekā 1. 1056 00:46:58,470 --> 00:46:59,510 Tātad, ko vajadzētu notikt? 1057 00:46:59,510 --> 00:47:03,260 Es esmu gatavojas darīt bet n ir mazāks par 1, 1058 00:47:03,260 --> 00:47:05,760 tāpēc es esmu gatavojas doties atpakaļ uz līnijas 28. 1059 00:47:05,760 --> 00:47:09,530 >> Un katrs LAIKU_ un pieņemsim palaist this-- veikt funkcijas 1, lai apkopotu to, 1060 00:47:09,530 --> 00:47:11,340 un tagad dot slash funkciju 1. 1061 00:47:11,340 --> 00:47:14,280 Ja es rakstīt negatīvu 1, tas ir gatavojas glabāt kliedza uz mani 1062 00:47:14,280 --> 00:47:17,530 kamēr es sadarboties, jo katrs no maniem izejvielām ir mazāks par 1 1063 00:47:17,530 --> 00:47:20,070 un, ja tā ir, bet mazāk nekā 1, Es esmu gatavojas, lai saglabātu darot to. 1064 00:47:20,070 --> 00:47:24,240 Ja es beidzot to numuru, piemēram, 50, Par laimi, tā saka, paldies par 50. 1065 00:47:24,240 --> 00:47:24,970 Kāpēc? 1066 00:47:24,970 --> 00:47:30,640 Jo tiklīdz n nav mazāks par 1, es stop kļūst iestrēdzis šīs cilpas, 1067 00:47:30,640 --> 00:47:33,840 un šī jaunā atslēgvārds šodien, atgriešanās, burtiski tas, ka. 1068 00:47:33,840 --> 00:47:36,800 Tāpēc es esmu tikko ieviesta, jo izjūta, ekvivalents GetString, 1069 00:47:36,800 --> 00:47:40,590 kur es esmu, nododot atpakaļ kurš izmanto mani, kāda vērtība. 1070 00:47:40,590 --> 00:47:42,820 Tai nav jābūt virkne, tas ir int. 1071 00:47:42,820 --> 00:47:44,990 Tik vienkāršs, ātrs Piemēram, bet mēs drīz 1072 00:47:44,990 --> 00:47:47,930 redzēt dažas sarežģītākas versijas joprojām. 1073 00:47:47,930 --> 00:47:53,882 Patiesībā, pieņemsim to apskatīt ciparu viens, ko sauc return.c. 1074 00:47:53,882 --> 00:47:55,590 Un tas viens ir faktiski nedaudz vienkāršāka. 1075 00:47:55,590 --> 00:47:59,010 Tātad šī programma ir nolūks life-- pieņemsim apkopot un palaist to, 1076 00:47:59,010 --> 00:48:03,090 lai padarītu atdevi, dot slash, return-- paziņojums 1077 00:48:03,090 --> 00:48:05,530 Programma vienkārši kubiņos vērtību 2. 1078 00:48:05,530 --> 00:48:08,410 Tas ir diezgan muļķīgi, tas ir grūti kods, tas neveic nekādus ieguldījumus, 1079 00:48:08,410 --> 00:48:12,220 bet tas pierāda, cits funkcija, kas es esmu rakstījis pats. 1080 00:48:12,220 --> 00:48:15,760 Tātad šeit, es esmu paziņojis, ka mainīgais, ko sauc par x, int tipa, 1081 00:48:15,760 --> 00:48:17,840 vienāds ar numuru 2, pilnīgi patvaļīgi. 1082 00:48:17,840 --> 00:48:19,530 Tas ir tikai dažas pūkains apdruka. 1083 00:48:19,530 --> 00:48:23,070 Tajā teikts, x ir tagad, piemēram un piemēram, cubing dot dot dot. 1084 00:48:23,070 --> 00:48:26,390 Un maģija ir acīmredzami atbilst 21. 1085 00:48:26,390 --> 00:48:30,120 Es esmu aicinot funkciju sauc, kubu, Es esmu nododot to papīra lapu 1086 00:48:30,120 --> 00:48:32,890 ar numuru 2, rakstīts par to, un kāda vērtība, matemātiski, 1087 00:48:32,890 --> 00:48:34,860 vēlos izkļūt no tā? 1088 00:48:34,860 --> 00:48:36,570 Tāpat kā veselība pārbaudītu? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Tiesības? 1091 00:48:37,570 --> 00:48:40,160 Es gribu 2 kubā atpakaļ, 2 līdz jauda 3, tā 8 atpakaļ. 1092 00:48:40,160 --> 00:48:42,570 >> Tātad, ja ir kubs īstenots? 1093 00:48:42,570 --> 00:48:44,349 Nu, uzraksta tas ir īstenots uz leju šeit. 1094 00:48:44,349 --> 00:48:47,140 Un, tāpat kā agrāk, loģiski, kaut gan sintakse ir iespējams 1095 00:48:47,140 --> 00:48:49,320 ļoti jauns, lai daudzi no jums, Es gribu šo funkciju 1096 00:48:49,320 --> 00:48:51,780 atdot man atpakaļ lapas papīrs ar int par to. 1097 00:48:51,780 --> 00:48:53,990 Tāpēc man ir int, ka nosaukums ir patvaļīgi, 1098 00:48:53,990 --> 00:48:55,530 bet ērti sauc kubu. 1099 00:48:55,530 --> 00:48:58,430 Ieguldījums to, ir n tipa vesels skaitlis, tā, ka ir 1100 00:48:58,430 --> 00:49:00,800 kā es varu iet skaita 2 uz papīra lapas. 1101 00:49:00,800 --> 00:49:03,910 Un tad izrādās, C balstus math, tāpēc jums nav x ir par laikiem, 1102 00:49:03,910 --> 00:49:06,680 jūs vienkārši izmantot zvaigznīti pavairošanai. 1103 00:49:06,680 --> 00:49:11,070 Un tas atgriežas n reizes n reizes n, kas ir tikai kubā vērtība. 1104 00:49:11,070 --> 00:49:12,840 >> Tātad, ja mēs ejam ar visu šo? 1105 00:49:12,840 --> 00:49:14,570 Tas noteikti ir viesulis tūre, esiet droši, 1106 00:49:14,570 --> 00:49:16,410 ka super sadaļās un problēmu noteikt 1, 1107 00:49:16,410 --> 00:49:18,368 jums tiks gāja cauri tas viss vēl vairāk. 1108 00:49:18,368 --> 00:49:22,490 Un problēma ir noteikts 1, mēs pāriet no grafiskā pasaules Scratch 1109 00:49:22,490 --> 00:49:25,640 lai kaut ko vairāk komandrindas C. Bet mēs smelties iedvesmu 1110 00:49:25,640 --> 00:49:27,680 no šī te spēlē no vakardienas, kur 1111 00:49:27,680 --> 00:49:31,591 izmantojot C un standarta izdevums p komplekts jums īstenot Mario piramīdu. 1112 00:49:31,591 --> 00:49:34,340 Un hakeru izdevumā p komplekts, ja jums tā izvēlēties ievēlēt, 1113 00:49:34,340 --> 00:49:38,280 Jūs īstenos mazliet vairāk apstrīdot piramīda ar divām virsotnēm. 1114 00:49:38,280 --> 00:49:41,239 Jūs arī īsteno algoritms, mantkārīgs algoritms. 1115 00:49:41,239 --> 00:49:43,030 Izrādās, tur ir daži interesanti loģika 1116 00:49:43,030 --> 00:49:45,640 aiz procesā rādīt kases staciju 1117 00:49:45,640 --> 00:49:47,410 un faktiski nododot kāds atpakaļ pārmaiņas. 1118 00:49:47,410 --> 00:49:50,410 Ir algoritms, kas ir diezgan vienkārši, ka jūs pat varētu 1119 00:49:50,410 --> 00:49:53,576 satveriet intuitīvi, kad pirmo reizi izlasīju it-- saprotot, ka tas, ko es vienmēr esmu 1120 00:49:53,576 --> 00:49:57,110 darīts jebkurā laikā es esmu dota kāds kādu nauda back-- kas ļauj jums vienmēr 1121 00:49:57,110 --> 00:50:00,679 samazināt skaitu papīra piezīmes vai metāla monētas 1122 00:50:00,679 --> 00:50:02,220 ka jūs nodošanu atpakaļ uz lietotāja. 1123 00:50:02,220 --> 00:50:04,610 Un tas, protams, ir pārliecinoši jo, ja jūs doties uz CVS vai plauktiņš, 1124 00:50:04,610 --> 00:50:06,430 Jūs nevēlaties būt roku visu ķekars tiem 1125 00:50:06,430 --> 00:50:07,596 vai visu ķekars pennies. 1126 00:50:07,596 --> 00:50:10,120 Jūs vēlaties vismazāk monētas, iespējams, iespējams. 1127 00:50:10,120 --> 00:50:13,070 >> Beidzot, jūs arī var apstrīdēt plunčāties pasaulē ūdens 1128 00:50:13,070 --> 00:50:17,220 un faktiski iegūt atzinību par kartēšana starp likmēm plūsmu, 1129 00:50:17,220 --> 00:50:19,890 no patīk, ūdens dušu, cik daudz ūdens tiek izmantots. 1130 00:50:19,890 --> 00:50:22,640 Un tajā mājiens, būs šo klipu šeit, 1131 00:50:22,640 --> 00:50:24,840 ko mēs galu on tikai 60 sekundes, lai 1132 00:50:24,840 --> 00:50:29,070 krāsu attēlu zemas plūsmas dušas galviņas. 1133 00:50:29,070 --> 00:50:30,886 >> [Video atskaņošana] 1134 00:50:30,886 --> 00:50:31,385 -Viss kārtībā. 1135 00:50:31,385 --> 00:50:32,774 Man viss šeit. 1136 00:50:32,774 --> 00:50:35,800 Man ciklona F sērija, Hydra, Jetflow, Stokholma 1137 00:50:35,800 --> 00:50:37,660 Supersteam, jūs nosaukums tam. 1138 00:50:37,660 --> 00:50:39,265 >> -Un Ko jūs ieteiktu? 1139 00:50:39,265 --> 00:50:40,460 >> -Ko jūs meklējat? 1140 00:50:40,460 --> 00:50:41,300 >> -Power Cilvēks. 1141 00:50:41,300 --> 00:50:42,285 Power. 1142 00:50:42,285 --> 00:50:42,910 -Tāpat Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -That Ir par radiāciju. 1144 00:50:44,520 --> 00:50:46,335 -That Ir labi. 1145 00:50:46,335 --> 00:50:48,275 -Tagad Kas tas ir? 1146 00:50:48,275 --> 00:50:49,704 -That Ir Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Man nav pārdot, ka viens. 1148 00:50:50,620 --> 00:50:51,700 >> -Bet Tas, ko mēs gribam. 1149 00:50:51,700 --> 00:50:52,680 Tas ir commando 450. 1150 00:50:52,680 --> 00:50:53,882 >> -No Ticiet man. 1151 00:50:53,882 --> 00:50:55,090 Tas ir tikai izmanto cirka. 1152 00:50:55,090 --> 00:50:56,512 Tas ir par ziloņiem. 1153 00:50:56,512 --> 00:50:59,356 >> -I'll Maksāt neko. 1154 00:50:59,356 --> 00:51:01,252 >> -Kas Par Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Viņš Nevarēja rīkoties tā. 1156 00:51:02,760 --> 00:51:04,910 Viņš ir delikāts. 1157 00:51:04,910 --> 00:51:05,750 O jā. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [Beigtu atskaņošanu] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Labi. 1161 00:51:37,700 --> 00:51:38,820 Tas ir, ja par CS50. 1162 00:51:38,820 --> 00:51:40,050 Redzēsim tevi nākamnedēļ. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> SPEAKER 1: [? Scully?], [? Ian,?] ciktāl šo outro projektu, 1165 00:51:49,029 --> 00:51:50,362 ko jūs esat puiši nāk klajā ar? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: Nu, mēs esam dota tas dažādas domas, 1167 00:51:51,990 --> 00:51:53,250 un mēs domājam, ka labākais veids, kuri paredzēti, 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3: es drīkstu? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Jā. 1170 00:51:54,326 --> 00:51:56,360 Ar visiem līdzekļiem, faktiski. 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3: Tāpēc es domāju, ka mēs varam Rezumējot mūsu ideju 1172 00:51:59,425 --> 00:52:05,450 par Outros ar vienu word-- neko. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J Malan: Nekas? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3: Nekas. 1176 00:52:11,200 --> 00:52:12,990 DAVID J Malan: Ko tas nozīmē? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3: The Outros ir par neko. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: Nu, es domāju, filozofijā, Es domāju, nekas vienmēr ir kaut kas. 1179 00:52:21,720 --> 00:52:24,200 SPEAKER 1: Tātad what's-- kas ir priekšnoteikums? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3: Tātad tas ir tāpat kā dzīvē. 1181 00:52:25,720 --> 00:52:26,680 LABI. 1182 00:52:26,680 --> 00:52:28,294 Ko tu šodien darīji? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J Malan: Es piecēlos, bija Brokastis, un nāca uz darbu. 1184 00:52:31,811 --> 00:52:34,056 >> SPEAKER 3: Tas outro. 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2: Bet, es domāju, nevajadzētu kaut kas notiek ar viņu uz the-- 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3: Nē, nē, nē, nē. 1187 00:52:37,889 --> 00:52:40,220 Nekas nenotiek. 1188 00:52:40,220 --> 00:52:42,910 >> SPEAKER 1: Tad kāpēc mēs skatoties? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3: Jo tas ir outro par CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J Malan: Vēl nav. 1191 00:52:48,652 --> 00:52:49,151