1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [Jwe mizik] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 DAVID J. Malan: Tout dwa. 5 00:00:12,660 --> 00:00:15,590 Sa a se CS50, ak sa a se kòmansman an nan semèn de. 6 00:00:15,590 --> 00:00:19,120 Se konsa, kite nou kòmanse jodi a ak yon ensèk. 7 00:00:19,120 --> 00:00:20,974 Yon ensèk, nan kou, se yon erè nan yon pwogram, 8 00:00:20,974 --> 00:00:22,890 epi ou ap jwenn anpil abitye avèk konsèp sa a 9 00:00:22,890 --> 00:00:26,050 si ou pa janm te pwograme anvan. pset0 e kounye a, pset1. 10 00:00:26,050 --> 00:00:29,280 Men, kite a konsidere yon bagay yon ti kras senp nan premye. 11 00:00:29,280 --> 00:00:32,189 Pwogram sa a isit la ke mwen jete ansanm nan avanse, 12 00:00:32,189 --> 00:00:37,280 ak mwen reklamasyon ke sa a ta dwe enprime 10 zetwal sou ekran an lè l sèvi avèk printf, 13 00:00:37,280 --> 00:00:41,020 men li la aparamman buggy nan kèk fason. 14 00:00:41,020 --> 00:00:45,370 >> Etandone ke spesifikasyon ki li ta dwe ekri ak lèt ​​detache 10 zetwal, 15 00:00:45,370 --> 00:00:50,230 men li fè sa pa aparamman, sa ki ou ta reklame se pinèz la? 16 00:00:50,230 --> 00:00:52,004 Yeah? 17 00:00:52,004 --> 00:00:54,420 Se konsa, li nan yon koupe pa yon sèl erè, ak sa ou vle di pa sa? 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 OK. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 Ekselan. 22 00:01:10,410 --> 00:01:13,930 Se konsa, nou te espesifye yon kòmanse valè de zewo pou mwen, 23 00:01:13,930 --> 00:01:18,399 e nou te espesifye yon valè n nan 10, men nou te itilize mwens pase oswa egal a. 24 00:01:18,399 --> 00:01:21,190 Ak rezon an ke sa a se de karaktè epi li pa jis yon sèl senbòl, 25 00:01:21,190 --> 00:01:22,630 tankou nan yon liv matematik, se ke ou pa gen 26 00:01:22,630 --> 00:01:24,880 yon fason pou eksprime la yon karaktè ekivalan. 27 00:01:24,880 --> 00:01:28,450 >> Se konsa, sa vle di mwens pase, men si w kòmanse konte nan zewo, 28 00:01:28,450 --> 00:01:31,690 men ou konte tout wout la moute nan ak egal a 10, 29 00:01:31,690 --> 00:01:34,170 w ap nan kou ale nan konte 11 bagay sa yo nan manm. 30 00:01:34,170 --> 00:01:35,900 Se konsa, w ap ale nan enprime 11 zetwal yo. 31 00:01:35,900 --> 00:01:37,990 Se konsa, sa ki ta ka yon ranje pou sa a? 32 00:01:37,990 --> 00:01:39,970 Yeah? 33 00:01:39,970 --> 00:01:43,980 >> Se konsa, jis ajiste mwens la pase oswa egal a jis dwe mwens pase, 34 00:01:43,980 --> 00:01:46,250 ak gen nan, mwen reklame, petèt yon lòt solisyon, tou. 35 00:01:46,250 --> 00:01:47,210 Ki sa ki ta lòt bagay ou fè? 36 00:01:47,210 --> 00:01:48,590 Yeah? 37 00:01:48,590 --> 00:01:53,660 >> Se konsa, kòmanse egal li nan 1, ak kite mwens la pase oswa egal a. 38 00:01:53,660 --> 00:01:56,187 Ak franchman mwen ta fè reklamasyon ki, pou yon moun tipik, 39 00:01:56,187 --> 00:01:57,770 sa a se pwobableman plis dwat. 40 00:01:57,770 --> 00:02:00,280 Kòmanse konte nan 1 ak konte moute nan 10. 41 00:02:00,280 --> 00:02:01,690 Esansyèlman fè sa ou vle di. 42 00:02:01,690 --> 00:02:04,010 >> Men, reyalite a se nan pwogramasyon, menm jan nou te wè, 43 00:02:04,010 --> 00:02:07,598 syantis konpitè ak pwogramasyon jeneralman kòmanse konte nan zewo. 44 00:02:07,598 --> 00:02:09,389 Se konsa, ki nan amann yon fwa ou jwenn itilize li. 45 00:02:09,389 --> 00:02:12,640 Kondisyon w ap jeneralman dwe yon bagay tankou mwens pase. 46 00:02:12,640 --> 00:02:14,910 Se konsa, tou senpleman yon lojik erè ki nou te kapab kounye a 47 00:02:14,910 --> 00:02:17,990 ranje ak finalman compile sa a epi pou yo jwenn jis 10. 48 00:02:17,990 --> 00:02:19,610 >> Oke ki jan sou ensèk sa a isit la? 49 00:02:19,610 --> 00:02:24,200 Isit la, ankò, mwen reklame ke mwen gen yon objektif nan enprime 10 stars-- 50 00:02:24,200 --> 00:02:28,140 youn pou chak liy tan sa a, men li pa fè sa. 51 00:02:28,140 --> 00:02:30,940 Anvan nou pwopoze sa ki ranje a se, ki sa ki sa a 52 00:02:30,940 --> 00:02:34,640 enprime vizyèlman si m 'te konpile ak kouri pwogram sa a ou panse? 53 00:02:34,640 --> 00:02:35,140 Yeah? 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> Star. 56 00:02:38,860 --> 00:02:41,690 Se konsa, tout zetwal yo sou la menm liy se sa m 'tande, 57 00:02:41,690 --> 00:02:43,391 ak Lè sa a nouvo pèsonaj la liy. 58 00:02:43,391 --> 00:02:44,140 Se konsa, kite a eseye sa. 59 00:02:44,140 --> 00:02:48,710 Se konsa, fè buggy-1, antre nan, ak mwen wè yo lòd, ki rezone 60 00:02:48,710 --> 00:02:50,090 ke nou te pale osijè de dènye fwa. 61 00:02:50,090 --> 00:02:55,180 ./buggy-1, ak tout bon Mwen wè tout 10 zetwal sou liy lan menm menm si mwen reklame 62 00:02:55,180 --> 00:02:58,690 nan spesifikasyon mwen jis yon kòmantè anlè Kòd la ke mwen gen entansyon fè yon sèl pou chak 63 00:02:58,690 --> 00:02:59,230 liy. 64 00:02:59,230 --> 00:03:00,580 Men, sa a sanble dwat. 65 00:03:00,580 --> 00:03:04,620 >> Koulye a, liy 15 li sanble mwen se enprime yon etwal, ak Lè sa a liy 16 66 00:03:04,620 --> 00:03:06,620 li sanble mwen se enprime yon karaktè nouvo liy, 67 00:03:06,620 --> 00:03:09,560 epi yo ap tou de utilize konsa Mwen se andedan nan bouk la byen klè. 68 00:03:09,560 --> 00:03:13,610 Se konsa, pa ta dwe mwen dwe ap fè zetwal, nouvo liy, etwal, nouvo liy, zetwal, nouvo liy? 69 00:03:13,610 --> 00:03:14,110 Wi? 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> Yeah, kontrèman ak yon lang tankou Piton, si w ap abitye, 72 00:03:21,240 --> 00:03:23,540 dekoupaj pa fè sa gen pwoblèm nan òdinatè a. 73 00:03:23,540 --> 00:03:25,280 Li sèlman zafè imen an. 74 00:03:25,280 --> 00:03:29,860 Se konsa, liy Lè nou konsidere ke isit la mwen te envante 15 ak 16-- ki sanble bèl, 75 00:03:29,860 --> 00:03:31,330 men òdinatè a pa pran swen. 76 00:03:31,330 --> 00:03:34,640 Òdinatè a gen sousi pou aktyèlman gen aparèy òtopedik Curly 77 00:03:34,640 --> 00:03:36,310 alantou liy sa yo nan Kòd. 78 00:03:36,310 --> 00:03:39,520 >> Se konsa, ke li nan clear-- jis tankou nan Scratch-- ke moun de liy nan kòd 79 00:03:39,520 --> 00:03:40,450 yo ta dwe egzekite. 80 00:03:40,450 --> 00:03:44,390 Menm jan ak youn nan moun ki devinèt grafouyen jòn moso ankò e ankò e ankò. 81 00:03:44,390 --> 00:03:50,920 >> Se konsa, kounye a si mwen re-kouri sa a program-- ./buggy-2-- Hm. 82 00:03:50,920 --> 00:03:51,770 Mwen gen yon erè kounye a. 83 00:03:51,770 --> 00:03:54,212 Ki sa mwen bliye fè? 84 00:03:54,212 --> 00:03:55,420 Yeah, se konsa mwen pa t 'konpile li. 85 00:03:55,420 --> 00:03:56,740 Se konsa, fè buggy-2. 86 00:03:56,740 --> 00:03:59,840 Pa gen tankou dosye paske mwen pa t ' aktyèlman konpile vèsyon, dezyèm lan. 87 00:03:59,840 --> 00:04:04,860 Se konsa, kounye enteresan sekrè variable-- pa 2. 88 00:04:04,860 --> 00:04:05,510 Nou ap fè 1. 89 00:04:05,510 --> 00:04:11,050 Fè buggy-1-- ./buggy-1-- e kounye a, chak nan yo se sou liy la menm. 90 00:04:11,050 --> 00:04:13,880 >> Koulye a, gen yon eksepsyon nan sa a reklamasyon sipoze m ' 91 00:04:13,880 --> 00:04:15,520 ke ou bezwen sa yo aparèy òtopedik Curly. 92 00:04:15,520 --> 00:04:20,160 Lè se li aktyèlman OK-- si ou te remake nan seksyon oswa textbooks-- 93 00:04:20,160 --> 00:04:22,130 oblije aparèy òtopedik yo Curly? 94 00:04:22,130 --> 00:04:22,630 Yeah? 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> Egzakteman. 97 00:04:26,870 --> 00:04:28,940 Lè gen nan yon sèl sèlman liy nan kòd ke ou 98 00:04:28,940 --> 00:04:32,830 vle yo dwe asosye ak nan bouk tankou nan premye egzanp nou an. 99 00:04:32,830 --> 00:04:36,380 Li se parfe lejitim oblije aparèy òtopedik yo Curly 100 00:04:36,380 --> 00:04:40,310 menm jan sòt de yon konvenyans soti nan du a ba ou. 101 00:04:40,310 --> 00:04:40,810 Yeah? 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 Bon kesyon. 104 00:04:43,930 --> 00:04:45,500 Li ta dwe konsidere kòm yon erè style? 105 00:04:45,500 --> 00:04:49,340 Nou ta promote-- tankou nan CS50 gid style, URL la pou ki 106 00:04:49,340 --> 00:04:51,926 se nan pset1-- ki toujou sèvi ak aparèy òtopedik yo Curly. 107 00:04:51,926 --> 00:04:53,550 Sètènman, si ou nouvo nan pwogramasyon. 108 00:04:53,550 --> 00:04:56,800 Reyalite a se nou pa ale nan entèdi ou 109 00:04:56,800 --> 00:04:58,680 soti nan fè konfor sa yo. 110 00:04:58,680 --> 00:05:00,846 Men, si w ap jis ap resevwa nan balanse nan de bagay sa yo, 111 00:05:00,846 --> 00:05:04,020 absoliman jis toujou sèvi ak Curly la aparèy òtopedik jiskaske w jwenn pann an nan li. 112 00:05:04,020 --> 00:05:04,640 Bon kesyon. 113 00:05:04,640 --> 00:05:05,320 >> Tout dwa. 114 00:05:05,320 --> 00:05:07,660 Se konsa, ki Lè sa a, se te yon ensèk. 115 00:05:07,660 --> 00:05:09,190 Omwen nan yon bagay san patipri ki senp. 116 00:05:09,190 --> 00:05:11,260 Men, ou ta ka panse ke sa a se jistis estanda, dwa? 117 00:05:11,260 --> 00:05:13,635 Sa a se sòt nan premye semèn nan nan gade nan lang lan 118 00:05:13,635 --> 00:05:14,890 tankou, gade pinèz ou ladan l '. 119 00:05:14,890 --> 00:05:17,250 Men, reyalite a sa yo, se aktyèlman reprezantan 120 00:05:17,250 --> 00:05:20,310 nan kèk pwoblèm trè pè ki ka leve nan mond lan reyèl. 121 00:05:20,310 --> 00:05:23,530 >> Se konsa, kèk nan ou ta ka sonje si w swiv teknoloji nouvèl, 122 00:05:23,530 --> 00:05:25,740 oswa petèt menm kenbe van nan sa a nan mwa fevriye 123 00:05:25,740 --> 00:05:29,434 nan sa a ane ki sot pase ke Apple te gen te fè yon ti jan nan yon erè nan tou de iOS, 124 00:05:29,434 --> 00:05:31,350 sistèm nan fonksyone sou telefòn yo, epi tou li 125 00:05:31,350 --> 00:05:34,220 Mac OS, sistèm nan fonksyone sou Bureau yo ak laptops. 126 00:05:34,220 --> 00:05:36,480 Epi ou wè tit tankou sa a. 127 00:05:36,480 --> 00:05:41,120 Epi apre sa, Apple te pwomèt yo ranje ensèk sa a, 128 00:05:41,120 --> 00:05:45,950 ak trè byen vit te fè fikse li nan iOS, men Lè sa a finalman fiks l 'nan Mac OS 129 00:05:45,950 --> 00:05:46,810 kòm byen. 130 00:05:46,810 --> 00:05:50,370 >> Koulye a, Pa gen yonn nan tit sa yo pou kont li vrèman revele sa pwoblèm nan kache te, 131 00:05:50,370 --> 00:05:55,640 men li te pinèz la finalman redwi a yon ensèk nan SSL, sipò an sekirite kouch. 132 00:05:55,640 --> 00:05:57,390 Ak istwa long kout, sa a se lojisyèl an 133 00:05:57,390 --> 00:06:01,030 ki navigatè nou yo ak lòt lojisyèl itilize yo fè ki sa? 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> Si mwen te di ke SSL se patisipe, nenpòt lè ou 136 00:06:06,860 --> 00:06:13,920 vizite yon URL ki kòmanse ak t, sa Lè sa a, ta ka SSL ki gen rapò ak? 137 00:06:13,920 --> 00:06:14,580 Chifreman. 138 00:06:14,580 --> 00:06:16,470 Se konsa, nou pral pale sou sa a nan jou k'ap vini yo. 139 00:06:16,470 --> 00:06:18,750 Chifreman, atizay la nan eskalade enfòmasyon. 140 00:06:18,750 --> 00:06:22,200 >> Men, istwa long kout, Apple nenpòt moman de sa te fè yon erè 141 00:06:22,200 --> 00:06:25,970 nan aplikasyon yo nan SSL a, lojisyèl ki finalman aplike 142 00:06:25,970 --> 00:06:30,120 URL tankou t oswa max koneksyon gen tou. 143 00:06:30,120 --> 00:06:32,850 Rezilta a nan ki se ke ou koneksyon te kapab potansyèlman 144 00:06:32,850 --> 00:06:33,920 dwe entèsepte yo. 145 00:06:33,920 --> 00:06:37,130 Ak koneksyon ou yo te pa nesesèman chiffres 146 00:06:37,130 --> 00:06:40,350 si ou te gen kèk nèg move nan ant ou ak sou sit entènèt nan destinasyon ki 147 00:06:40,350 --> 00:06:42,170 te konnen ki jan yo pran avantaj de sa a. 148 00:06:42,170 --> 00:06:45,090 >> Koulye a, Apple finalman afiche yon ranje pou sa a finalman, 149 00:06:45,090 --> 00:06:46,920 ak deskripsyon an nan ranje yo te sa a. 150 00:06:46,920 --> 00:06:49,878 Tache transpò echwe pou pou valide otantisite a nan koneksyon an. 151 00:06:49,878 --> 00:06:52,920 Pwoblèm nan te adrese pa restore manke etap validation. 152 00:06:52,920 --> 00:06:57,250 >> Se konsa, sa a se yon eksplikasyon tranble men trè pou tou senpleman di ke nou vise yo. 153 00:06:57,250 --> 00:07:00,920 Gen literalman yon sèl liy nan kòd ki te buggy 154 00:07:00,920 --> 00:07:05,130 nan aplikasyon yo nan SSL, ak si ou ale sou entènèt ak rechèch pou sa a 155 00:07:05,130 --> 00:07:07,210 ou ka aktyèlman jwenn kòd la sous orijinal la. 156 00:07:07,210 --> 00:07:11,960 Pou egzanp, sa a se yon piki ekran an jis yon pòsyon nan yon jistis gwo dosye, 157 00:07:11,960 --> 00:07:15,965 men sa a se yon fonksyon aparamman rele SSL verifye sèvè siy kle echanj. 158 00:07:15,965 --> 00:07:17,840 Epi li pran yon pakèt moun sou agiman ak entrain. 159 00:07:17,840 --> 00:07:20,298 Epi nou pa ap ale nan konsantre twòp sou ti detay la a, 160 00:07:20,298 --> 00:07:24,390 men si ou konsantre sou kòd la anndan nan ki topmost function-- kite nan 161 00:07:24,390 --> 00:07:25,590 rale nan sou sa. 162 00:07:25,590 --> 00:07:28,140 Ou ta ka deja sispèk sa erè a ta ka 163 00:07:28,140 --> 00:07:31,230 gen menm si ou pa gen okenn lide finalman ki sa ou ap chèche a. 164 00:07:31,230 --> 00:07:35,924 Genyen kalite yon anomali isit la, ki se ki sa? 165 00:07:35,924 --> 00:07:38,940 >> Yeah, mwen pa reyèlman renmen gade nan nan de Goto echwe. 166 00:07:38,940 --> 00:07:42,060 Franchman, mwen pa vrèman konnen ki sa Goto fail vle di, men li te gen de nan disip yo 167 00:07:42,060 --> 00:07:42,810 tounen nan tounen. 168 00:07:42,810 --> 00:07:45,290 Sa jis kalite fwote m ' entelektyèlman wout la sa ki mal, 169 00:07:45,290 --> 00:07:48,910 ak tout bon si nou rale nan sou jis liy sa yo, sa a se C. 170 00:07:48,910 --> 00:07:52,220 >> Se konsa, yon anpil nan kòd Apple la se tèt li ekri nan C, 171 00:07:52,220 --> 00:07:55,780 ak sa a aparamman se reyèlman equivalent-- 172 00:07:55,780 --> 00:07:59,060 pa ak sa yo ki dekoupaj trè vèsyon, men si ou rekonèt lefèt 173 00:07:59,060 --> 00:08:02,560 ki gen nan pa gen aparèy òtopedik Curly, sa ki Apple reyèlman te ekri te kòd ki sanble 174 00:08:02,560 --> 00:08:03,540 tankou sa a. 175 00:08:03,540 --> 00:08:07,080 Se konsa, mwen te agrandi soti ak mwen jis fiks dekoupaj an nan sans 176 00:08:07,080 --> 00:08:10,690 ke si gen nan pa gen aparèy òtopedik Curly, ki Goto dezyèm fail sa a, se nan jòn 177 00:08:10,690 --> 00:08:12,500 ki pral egzekite pa gen pwoblèm sa. 178 00:08:12,500 --> 00:08:15,540 Li pa nan ki asosye ak si kondisyon an pi wo a li. 179 00:08:15,540 --> 00:08:19,590 >> Se konsa, menm ankò, se pa si ou fè byen konprann ki sa sa a te kapab pètèt 180 00:08:19,590 --> 00:08:23,230 ap fè, konnen ke chak nan sa yo conditions-- chak nan liy sa yo 181 00:08:23,230 --> 00:08:26,180 se yon etap ki enpòtan anpil nan pwosesis pou yo tcheke 182 00:08:26,180 --> 00:08:28,350 si done ou se an reyalite chiffres. 183 00:08:28,350 --> 00:08:31,710 Se konsa, si w rate youn nan sa yo etap, pa lide a pi byen. 184 00:08:31,710 --> 00:08:34,840 >> Men, paske nou gen sa a dezyèm Goto fail nan jòn, 185 00:08:34,840 --> 00:08:36,840 epi paske yon fwa nou sòt de estetik 186 00:08:36,840 --> 00:08:40,480 deplase li nan bò gòch la kote li lojikman se nan moman sa a, ki sa 187 00:08:40,480 --> 00:08:43,230 sa vle di pou liy la nan kòd anba a ki dezyèm Goto 188 00:08:43,230 --> 00:08:46,480 fail ou ta panse? 189 00:08:46,480 --> 00:08:48,860 Li nan toujou yo pral sote. 190 00:08:48,860 --> 00:08:52,100 Se konsa, gotos yo jeneralman dezaprouve sou pou rezon nou pa pral reyèlman ale nan, 191 00:08:52,100 --> 00:08:54,940 ak tout bon nan CS50 nou pa gen tandans yo anseye deklarasyon sa a Goto, 192 00:08:54,940 --> 00:08:58,130 men ou ka panse a Goto fail kòm siyifikasyon ale so 193 00:08:58,130 --> 00:08:59,600 nan kèk lòt pati nan kòd la. 194 00:08:59,600 --> 00:09:03,120 >> Nan lòt mo sote sou liy sa a pase a nèt, 195 00:09:03,120 --> 00:09:07,420 ak Se konsa, rezilta a nan sa a estipid erè senp sa ki te jis 196 00:09:07,420 --> 00:09:10,330 yon rezilta nan pwobableman yon moun w kopye e kole youn twò 197 00:09:10,330 --> 00:09:14,150 anpil fwa te ke tout la sekirite nan iOS ak Mac OS 198 00:09:14,150 --> 00:09:18,240 te vilnerab a entèrsèpsyon pa nèg move pou kèk tan. 199 00:09:18,240 --> 00:09:19,940 Jiska Apple finalman fiks sa a. 200 00:09:19,940 --> 00:09:23,100 >> Koulye a, si kèk nan nou yo aktyèlman kouri vèsyon fin vye granmoun nan iOS oswa Mac OS, 201 00:09:23,100 --> 00:09:27,250 ou ka ale nan gotofail.com ki se yon sit entènèt ke yon moun mete kanpe 202 00:09:27,250 --> 00:09:29,190 esansyèlman detèmine programe 203 00:09:29,190 --> 00:09:30,980 si òdinatè w lan se toujou vilnerab. 204 00:09:30,980 --> 00:09:33,600 Ak franchman, si li se, li la pwobableman yon bon lide 205 00:09:33,600 --> 00:09:36,870 yo mete ajou telefòn ou oswa Mac ou nan pwen sa. 206 00:09:36,870 --> 00:09:40,120 Men, gen, jis kontra Bondye a jis ki jan yon apresyasyon nan sa yo pi ba nivo 207 00:09:40,120 --> 00:09:42,400 detay epi san patipri lide ki senp ka vrèman 208 00:09:42,400 --> 00:09:44,590 tradwi nan desizyon ak pwoblèm ki 209 00:09:44,590 --> 00:09:47,320 affected-- nan case-- sa a dè milyon de moun. 210 00:09:47,320 --> 00:09:49,107 >> Koulye a, yon mo sou administrasyon an. 211 00:09:49,107 --> 00:09:50,690 Seksyon ap kòmanse sa a ap vini Dimanch. 212 00:09:50,690 --> 00:09:53,360 Ou pral resevwa yon imèl pa nan fen semèn sou seksyon, nan ki pwen 213 00:09:53,360 --> 00:09:55,290 pwosesis la resectioning ap kòmanse si ou te 214 00:09:55,290 --> 00:09:56,998 reyalize ou kounye a gen kèk nouvo konfli. 215 00:09:56,998 --> 00:10:00,180 Se konsa, sa k ap pase chak ane, epi nou pral akomode nan jou yo ap vini yo. 216 00:10:00,180 --> 00:10:02,430 >> Biwo hours-- fè kenbe yon je sou orè sa a isit la. 217 00:10:02,430 --> 00:10:05,100 Chanjman yon ti jan semèn sa a, patikilyèman lè yo kòmanse 218 00:10:05,100 --> 00:10:08,180 ak kote an, se konsa konsilte ke anvan tit nan lè biwo 219 00:10:08,180 --> 00:10:09,520 nenpòt nan kat nwit kap vini yo. 220 00:10:09,520 --> 00:10:12,680 Epi, koulye a yon mo sou evalyasyon, patikilyèman jan ou plonje nan pwoblèm 221 00:10:12,680 --> 00:10:14,350 kouche youn ak apre. 222 00:10:14,350 --> 00:10:17,070 >> Se konsa, pou chak spesifikasyon la, sa yo, se jeneralman 223 00:10:17,070 --> 00:10:20,360 aks yo ansanm ki nou evalye travay ou. 224 00:10:20,360 --> 00:10:23,170 Dimansyon refere a sa ki limit egzekite kòd ou a 225 00:10:23,170 --> 00:10:25,690 karakteristik yo ki egzije pa spesifikasyon nou an. 226 00:10:25,690 --> 00:10:28,290 Nan lòt mo, ki jan anpil nan yon moso seri ou te mòde koupe. 227 00:10:28,290 --> 00:10:30,440 Èske ou te fè yon tyè nan li, yon mwatye nan li, 100% nan li. 228 00:10:30,440 --> 00:10:33,000 Menm si li pa kòrèk, konbyen lajan ou t 'eseye? 229 00:10:33,000 --> 00:10:35,290 Se konsa, ki kaptire nivo a nan efò ak kantite lajan an 230 00:10:35,290 --> 00:10:38,260 yo ki ou mòde koupe nan pwoblèm seri pwoblèm nan. 231 00:10:38,260 --> 00:10:40,690 >> Correct sa a yon sèl, ki nivo, se kòd ou 232 00:10:40,690 --> 00:10:43,150 ki konsistan avèk nou an espesifikasyon ak gratis nan pinèz. 233 00:10:43,150 --> 00:10:44,770 Se konsa, li travay kòrèkteman? 234 00:10:44,770 --> 00:10:48,700 Si nou ba li kèk D ', fè li ban nou pwodiksyon an ke nou atann? 235 00:10:48,700 --> 00:10:52,570 Design-- kounye a sa a se premye a nan yo menm ki patikilyèman kalitatif, 236 00:10:52,570 --> 00:10:56,180 oswa sa yo ki mande pou jijman imen. 237 00:10:56,180 --> 00:10:59,690 Ak tout bon, sa a se rezon sa a genyen yon anplwaye nan zanmi ansèyman anpil ak kou 238 00:10:59,690 --> 00:11:00,350 asistan. 239 00:11:00,350 --> 00:11:03,480 Nan ki nivo se ou Kòd ekri byen? 240 00:11:03,480 --> 00:11:05,810 >> Epi ankò sa a se yon trè evalyasyon qualitative 241 00:11:05,810 --> 00:11:09,100 ki pral travay avèk ou sou bi-dirèksyonelman nan semèn kap vini yo. 242 00:11:09,100 --> 00:11:12,060 Se konsa, ki lè ou jwenn pa sèlman nimerik nòt, men tou, 243 00:11:12,060 --> 00:11:16,682 yon nòt ekri, oswa tape fidbak, fidbak oswa ekri nan mo angle. 244 00:11:16,682 --> 00:11:19,640 Sa a ki sa nou pral sèvi ak nan kondwi ou nan direksyon aktyèlman ekri pi bon Kòd. 245 00:11:19,640 --> 00:11:23,320 Ak nan konferans ak seksyon, nou pral eseye nan pwen out-- osi souvan sa nou can-- 246 00:11:23,320 --> 00:11:26,420 ki sa ki fè yon pwogram pa sèlman kòrèk epi yo fonksyonèl bon, 247 00:11:26,420 --> 00:11:28,200 men tou, byen fèt. 248 00:11:28,200 --> 00:11:31,850 Pi efikas la li te kapab fè, oswa menm ki pi bèl nan li kapab. 249 00:11:31,850 --> 00:11:33,100 >> Ki mennen nou nan style. 250 00:11:33,100 --> 00:11:36,876 Style finalman se yon jijman ayestetik. 251 00:11:36,876 --> 00:11:38,750 Eske ou te chwazi bon non pou varyab ou a? 252 00:11:38,750 --> 00:11:40,330 Eske ou utilize Kòd ou byen? 253 00:11:40,330 --> 00:11:44,010 li gade byen, ak Se poutèt sa, se li fasil pou yon lòt moun yo te 254 00:11:44,010 --> 00:11:46,550 li respektif ou nan Correct li yo. 255 00:11:46,550 --> 00:11:50,300 >> Kounye a jeneralman pou chak progranm a, nou ta fè nòt Asebyen bagay sa yo sou yon echèl senk pwen. 256 00:11:50,300 --> 00:11:53,640 Ak kite m 'mato lakay pwen an ke yon twa se vre bon. 257 00:11:53,640 --> 00:11:55,550 Trè byen vit fè jan kòmanse fè aritmetik. 258 00:11:55,550 --> 00:11:58,133 Lè yo jwenn yon soti twa nan senk sou Correct pou kèk pset 259 00:11:58,133 --> 00:12:02,040 e yo panse modi, mwen pral 60% ki se esansyèlman yon D oswa yon E. 260 00:12:02,040 --> 00:12:03,980 >> Sa a pa fason nou panse a nimewo sa yo. 261 00:12:03,980 --> 00:12:06,880 Yon twa se vre bon, ak ki sa nou jeneralman atann nan kòmansman an 262 00:12:06,880 --> 00:12:09,820 nan tèm nan se ke si w ap vin yon pakèt moun sou three's-- petèt yon koup 263 00:12:09,820 --> 00:12:12,540 nan fwa, yon koup nan fours-- oswa yon Dezan koup, yon koup la fours-- 264 00:12:12,540 --> 00:12:13,748 sa a, se yon bon plas yo kòmanse. 265 00:12:13,748 --> 00:12:16,320 Se konsa, lontan ke nou wè yon anwo trajectoire sou tan, 266 00:12:16,320 --> 00:12:18,540 w ap nan yon patikilyèman bon plas. 267 00:12:18,540 --> 00:12:20,752 >> Fòmil la nou itilize yo bagay sa yo pwa se esansyèlman 268 00:12:20,752 --> 00:12:22,710 sa a pou chak progranm la, ki jis vle di ke nou 269 00:12:22,710 --> 00:12:24,750 bay plis pwa nan Correct. 270 00:12:24,750 --> 00:12:27,930 Paske li nan trè souvan Correct ki pran tan ki pi. 271 00:12:27,930 --> 00:12:28,760 Trust m 'kounye a. 272 00:12:28,760 --> 00:12:31,190 Ou pral find-- omwen nan yon sèl pset-- ke ou 273 00:12:31,190 --> 00:12:36,790 depanse 90% nan tan ou ap travay sou 10% nan pwoblèm nan. 274 00:12:36,790 --> 00:12:39,320 >> Ak tout bagay sòt de travay eksepte pou yon sèl oswa de pinèz, 275 00:12:39,320 --> 00:12:41,570 ak sa yo se bug yo ki kenbe ou moute anreta nan mitan lannwit. 276 00:12:41,570 --> 00:12:43,380 Moun sa yo se sa yo ki sòt de chape ou. 277 00:12:43,380 --> 00:12:45,560 Men apre, lè dòmi sou li, oswa ale nan lè biwo 278 00:12:45,560 --> 00:12:48,844 oswa poze kesyon sou entènèt, se lè ou rive nan objektif sa a 100%, 279 00:12:48,844 --> 00:12:50,760 e ke sa a poukisa nou pwa Correct pi plis la. 280 00:12:50,760 --> 00:12:54,102 Desine yon ti kras mwens, ak style yon ti kras mwens pase sa. 281 00:12:54,102 --> 00:12:56,060 Men, kenbe nan mind-- style se petèt pi fasil la 282 00:12:56,060 --> 00:12:58,890 nan sa yo mòde koupe tankou pou chak gid-la style. 283 00:12:58,890 --> 00:13:01,580 >> Epi, koulye a, yon pi grav sonje sou onètete akademik. 284 00:13:01,580 --> 00:13:05,000 CS50 gen distenksyon an malere nan ke yo te pwodiktè nan pi gwo nan Ad Komisyon Konsèy 285 00:13:05,000 --> 00:13:07,330 ka prèske chak ane istorikman. 286 00:13:07,330 --> 00:13:11,012 Sa a se pa paske elèv tronpe nan CS50 nenpòt ki plis konsa pase nenpòt lòt klas, 287 00:13:11,012 --> 00:13:13,720 men se paske pa nati nan travay la, lefèt ke li nan elektwonik, 288 00:13:13,720 --> 00:13:16,636 lefèt ke nou gade pou li, epi lefèt nou se syantis konpitè, 289 00:13:16,636 --> 00:13:20,570 Mwen kapab di nou se malerezman trè bon nan detekte li. 290 00:13:20,570 --> 00:13:22,710 >> Se konsa, sa sa vle di nan tèm reyèl? 291 00:13:22,710 --> 00:13:24,820 Se konsa, li, pou chak progranm la, filozofi kou a nan 292 00:13:24,820 --> 00:13:28,090 reyèlman bouyi desann nan dwe rezonab. 293 00:13:28,090 --> 00:13:31,684 Gen liy sa a ant fè travay yon sèl la sou pwòp ou a 294 00:13:31,684 --> 00:13:34,100 yo ak pou jwenn yon ti kras nan èd rezonab nan men yon zanmi, 295 00:13:34,100 --> 00:13:38,020 ak kareman fè sa travay pou ou zanmi, oswa voye l 'oswa li kòd ou a 296 00:13:38,020 --> 00:13:41,080 se konsa ke li oswa li te kapab tou senpleman pran oswa prete li soti dwat. 297 00:13:41,080 --> 00:13:43,580 Epi ki kwaze liy lan ke nou trase nan klas la. 298 00:13:43,580 --> 00:13:45,410 >> Gade, progranm la finalman pou liy ki 299 00:13:45,410 --> 00:13:48,209 ke nou trase tankou se te rezonab ak konpòtman rezonab, 300 00:13:48,209 --> 00:13:50,000 men li vrèman fè bouyi desann nan sans nan 301 00:13:50,000 --> 00:13:53,980 nan travay ou bezwen yo gen pwòp ou a nan fen an. 302 00:13:53,980 --> 00:13:56,230 Koulye a, ak ki te di, gen yon eristik. 303 00:13:56,230 --> 00:13:58,980 Paske jan ou ta ka imagine-- soti nan biwo heures Et vizyèl yo 304 00:13:58,980 --> 00:14:01,060 ak videyo yo nou te montre konsa far-- CS50 305 00:14:01,060 --> 00:14:04,530 se vre vle di ke yo dwe kòm kolaborasyon ak jan koperativ ak jan sosyal 306 00:14:04,530 --> 00:14:06,450 ke posib. 307 00:14:06,450 --> 00:14:08,570 Kòm kolaborasyon kòm li se difisil. 308 00:14:08,570 --> 00:14:11,314 >> Men, ak sa a, di konsa, eristik a, jan ou pral wè nan progranm la, 309 00:14:11,314 --> 00:14:12,980 se ke lè w ap gen kèk pwoblèm. 310 00:14:12,980 --> 00:14:16,470 Ou gen kèk ensèk nan kòd ou a ke ou pa ka rezoud, li rezonab pou ou 311 00:14:16,470 --> 00:14:18,039 yo montre kòd ou a nan yon lòt moun. 312 00:14:18,039 --> 00:14:21,080 Yon zanmi menm nan klas la, yon zanmi chita bò kote ou nan lè biwo louvri, 313 00:14:21,080 --> 00:14:22,680 oswa yon manm nan pèsonèl la. 314 00:14:22,680 --> 00:14:25,810 Men, yo pa ka montre kòd yo ba ou. 315 00:14:25,810 --> 00:14:27,710 >> Nan lòt mo, yon reponn a kesyon ou 316 00:14:27,710 --> 00:14:29,940 Mwen bezwen help-- se pa oh, isit la nan Kòd m 'yo. 317 00:14:29,940 --> 00:14:32,440 Pran yon gade nan sa a ak enferyè soti nan li ki sa ou pral. 318 00:14:32,440 --> 00:14:34,580 Koulye a, nan kou, gen nan yon fason byen klè nan jwèt 319 00:14:34,580 --> 00:14:37,760 sistèm sa a annakò ak sa mwen pral montre w kòd m 'anvan gen yon kesyon. 320 00:14:37,760 --> 00:14:40,150 Ou montre m mwen Kòd ou anvan gen yon kesyon. 321 00:14:40,150 --> 00:14:45,870 Men, wè progranm la ankò pou la detay sibtilite nan kote liy sa a se. 322 00:14:45,870 --> 00:14:50,606 >> Jis kounye a penti foto a ak pataje kòm transparan ke posib 323 00:14:50,606 --> 00:14:53,480 kote nou ye a nan dènye ane yo, sa a se kantite ka Ad Komisyon Konsèy 324 00:14:53,480 --> 00:14:56,260 te ki CS50 te gen plis pase sèt ane ki sot pase yo. 325 00:14:56,260 --> 00:14:58,717 Ak 14 ka sa a tonbe pi resan an. 326 00:14:58,717 --> 00:15:01,300 An tèm de elèv yo ki enplike yo, li te 20 gen kèk elèv enpè 327 00:15:01,300 --> 00:15:02,490 sa a tonbe sot pase yo. 328 00:15:02,490 --> 00:15:05,670 Te gen yon gwo monte nan 33 elèv yo gen kèk ane de sa. 329 00:15:05,670 --> 00:15:08,830 Anpil nan yo se malerezman pa gen okenn ankò isit la sou lakou lekòl la. 330 00:15:08,830 --> 00:15:13,100 >> Elèv ki patisipe kòm yon pousantaj de la gen klas istorikman alan soti nan 0% 331 00:15:13,100 --> 00:15:17,300 5.3%, ki se sèlman yo di sa a se chak ane yon defi. 332 00:15:17,300 --> 00:15:20,390 Ak nan direksyon sa fini, sa ki nou vle fè se transmèt yon 333 00:15:20,390 --> 00:15:24,310 ke nou dd-- jis FYI-- konpare a yon jistis elèv sa yo ki 334 00:15:24,310 --> 00:15:26,520 se sa ki annapre liy lan kòmsadwa. 335 00:15:26,520 --> 00:15:29,620 Nou fè konpare tout aktyèl observation kont tout misyon sot pase 336 00:15:29,620 --> 00:15:30,840 soti nan anpil ane ki sot pase. 337 00:15:30,840 --> 00:15:33,620 >> Nou konnen tou ki jan sou Google alantou epi jwenn zarchiv Kòd 338 00:15:33,620 --> 00:15:36,360 sou entènèt, fowòm diskisyon sou entènèt, sit travay sou entènèt. 339 00:15:36,360 --> 00:15:41,580 Si yon elèv ka jwenn li, nou ka siman jwenn li kòm anpil jan nou regretableman fè. 340 00:15:41,580 --> 00:15:45,330 Se konsa, sa ou pral wè nan progranm la menm si se kloz regrèt sa a. 341 00:15:45,330 --> 00:15:47,500 Mwen kapab sètènman apresye, epi nou tout gen 342 00:15:47,500 --> 00:15:50,870 anplwaye li te gen fè kou a tankou sa a, oswa yon sèl sa a tèt li sou tan, 343 00:15:50,870 --> 00:15:53,997 sètènman konnen sa ki la renmen lè lavi vin nan fason an lè ou gen 344 00:15:53,997 --> 00:15:56,080 kèk swa byen ta deadline-- se pa sèlman nan klas sa a, 345 00:15:56,080 --> 00:15:58,660 men another-- lè w ap konplètman fin itilize, ensiste soti, 346 00:15:58,660 --> 00:16:00,659 gen yon nimewo eksesif nan lòt bagay yo fè. 347 00:16:00,659 --> 00:16:03,660 Ou pral fè nan kèk pwen nan lavi sètènman yon move, petèt an reta 348 00:16:03,660 --> 00:16:04,620 lannwit desizyon. 349 00:16:04,620 --> 00:16:06,520 >> Se konsa, pou chak progranm la, gen kloz sa a, 350 00:16:06,520 --> 00:16:10,629 tankou ke si nan lespas 72 èdtan nan fè kèk desizyon pòv, ou posede jiska li 351 00:16:10,629 --> 00:16:12,670 e rive jwenn soti nan m 'ak youn nan tèt kou a 352 00:16:12,670 --> 00:16:14,300 epi nou pral gen yon konvèsasyon. 353 00:16:14,300 --> 00:16:16,220 Nou pral okipe bagay intern nan espwa 354 00:16:16,220 --> 00:16:18,770 nan li vin pi plis nan yon moman ansèyman oswa leson lavi, 355 00:16:18,770 --> 00:16:22,120 epi yo pa yon bagay ki gen ramifications patikilyèman radikal 356 00:16:22,120 --> 00:16:24,570 jan ou ta ka wè sou tablo sa yo isit la. 357 00:16:24,570 --> 00:16:26,540 >> Se konsa, se yon ton ki grav anpil. 358 00:16:26,540 --> 00:16:29,960 Se pou nou pran yon poz pou jis yon kèk segonn yo kraze tansyon an. 359 00:16:29,960 --> 00:16:34,442 >> [Jwe mizik] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> DAVID J. Malan: Tout dwa, Se konsa, kouman te ke pou yon seg? 362 00:17:20,250 --> 00:17:22,059 Nan sijè prensipal la jodi a. 363 00:17:22,059 --> 00:17:23,859 Premye a nan yo ki se abstraction. 364 00:17:23,859 --> 00:17:26,900 Yon lòt nan ki se ale nan gen nan reprezantasyon nan done, ki franchman 365 00:17:26,900 --> 00:17:31,640 se yon fason vrèman sèk nan di ki jan nou ka ale sou rezoud pwoblèm ak panse 366 00:17:31,640 --> 00:17:33,250 sou rezoud pwoblèm? 367 00:17:33,250 --> 00:17:37,285 Se konsa, ou te wè nan grafouyen, ak ou te wè petèt deja nan pset1 ak C 368 00:17:37,285 --> 00:17:39,930 ke ou pa sèlman ka itilize fonksyon, tankou printf, 369 00:17:39,930 --> 00:17:42,770 ke lòt moun nan ane ki sot pase te ekri pou ou. 370 00:17:42,770 --> 00:17:45,340 Ou kapab tou ekri fonksyon pwòp ou yo. 371 00:17:45,340 --> 00:17:48,440 >> E menm si ou pa ta ka gen fè sa nan C, ak franchman nan pset1 372 00:17:48,440 --> 00:17:51,866 ou pa vrèman bezwen ekri ou pwòp fonksyon paske problem-- la 373 00:17:51,866 --> 00:17:53,990 pandan y ap petèt redoutable nan premye glance-- ou pral wè 374 00:17:53,990 --> 00:17:57,910 ka finalman dwe rezoud ak pa tout sa ki anpil liy nan kòd. 375 00:17:57,910 --> 00:18:01,140 Men, avèk ki te di, an tèm nan ekri fonksyon pwòp ou a, 376 00:18:01,140 --> 00:18:03,570 reyalize ke C bay ou kapasite sa a. 377 00:18:03,570 --> 00:18:06,940 >> Mwen pral ale nan kòd sous jodi a, ki se disponib deja sou entènèt, 378 00:18:06,940 --> 00:18:10,900 ak mwen pral ale pi devan epi yo louvri moute yon pwogram ki rele 0.c fonksyon, 379 00:18:10,900 --> 00:18:14,620 ak nan fonksyon zewo nou pral wè yon bagay kèk. 380 00:18:14,620 --> 00:18:19,160 Nan liy premye 18 a 23 se fonksyon prensipal mwen. 381 00:18:19,160 --> 00:18:22,414 Epi, koulye a ke nou ap kòmanse li Kòd ke nou pa ap ekri sou vole a, 382 00:18:22,414 --> 00:18:25,080 men olye mwen te ekri davans oswa ke ou nan yon seri pwoblèm 383 00:18:25,080 --> 00:18:27,910 kapab resevwa gen te ekri an davans. 384 00:18:27,910 --> 00:18:30,040 Yon bon fason yo kòmanse lekti Kòd yon lòt moun nan 385 00:18:30,040 --> 00:18:31,400 se gade pou fonksyon prensipal la. 386 00:18:31,400 --> 00:18:34,420 Konnen ki kote ki antre pwen se kouri pwogram nan, 387 00:18:34,420 --> 00:18:36,580 ak Lè sa a swiv li lojikman soti nan la. 388 00:18:36,580 --> 00:18:40,190 >> Se konsa, pwogram sa a aparamman simagri non ou te swiv pa yon kolon. 389 00:18:40,190 --> 00:18:42,490 Nou Lè sa a, sèvi ak GetString nan bibliyotèk la CS50 390 00:18:42,490 --> 00:18:46,050 yo ka resevwa yon fisèl, oswa yon mo oubyen yon fraz soti nan itilizatè a nan klavye la. 391 00:18:46,050 --> 00:18:48,390 Lè sa a, gen nan sa a bagay here-- PrintName. 392 00:18:48,390 --> 00:18:51,420 >> Koulye a, PrintName se pa yon fonksyon ki vini ak C. 393 00:18:51,420 --> 00:18:52,970 Li pa nan estanda io.h. 394 00:18:52,970 --> 00:18:55,570 Li pa nan cs50.h. 395 00:18:55,570 --> 00:18:57,880 Li nan olye nan dosye a menm. 396 00:18:57,880 --> 00:19:01,000 Avi si mwen desann yon liy bit-- 25 a 27-- 397 00:19:01,000 --> 00:19:05,330 li nan jis yon fason bèl nan fè kòmantè kòd ou a lè l sèvi avèk zetwal yo ak bar. 398 00:19:05,330 --> 00:19:07,320 Sa a se yon-liy milti kòmantè, ak sa a se jis 399 00:19:07,320 --> 00:19:10,570 deskripsyon m 'ki nan ble nan sa ki fonksyon sa a fè. 400 00:19:10,570 --> 00:19:14,530 >> Paske nan liy 28 jiska 31, Mwen te ekri yon fonksyon super senp 401 00:19:14,530 --> 00:19:16,280 Non ki gen se PrintName. 402 00:19:16,280 --> 00:19:19,560 Li pran konbyen agiman ou ta di? 403 00:19:19,560 --> 00:19:25,120 Se konsa, yon sèl agiman paske gen nan yon sèl agiman ki nan lis andedan parantèz yo. 404 00:19:25,120 --> 00:19:27,000 Kalite a nan ki se chèn. 405 00:19:27,000 --> 00:19:30,240 Sa vle di PrintName se tankou bwat nwa sa a 406 00:19:30,240 --> 00:19:32,910 oswa fonksyon ki pran kòm opinyon yon fisèl. 407 00:19:32,910 --> 00:19:35,730 >> Ak non an nan ki chèn fasilman yo pral Non lekòl la. 408 00:19:35,730 --> 00:19:37,840 Pa S, pa N, men Non lekòl la. 409 00:19:37,840 --> 00:19:41,090 Se konsa, sa PrintName fè? 410 00:19:41,090 --> 00:19:42,210 Li bon ki senp. 411 00:19:42,210 --> 00:19:45,390 Menm jan yon sèl liy nan Kòd pou printf a, men aparamman li 412 00:19:45,390 --> 00:19:47,950 simagri soti "Hello," se konsa ak sa. 413 00:19:47,950 --> 00:19:50,070 Ki kote konsa a ak pou soti nan agiman an. 414 00:19:50,070 --> 00:19:52,300 >> Koulye a, sa a se pa yon inovasyon gwo isit la. 415 00:19:52,300 --> 00:19:56,710 Vrèman, mwen te pran yon pwogram ki te kapab yo te ekri ak yon sèl liy nan Kòd 416 00:19:56,710 --> 00:20:00,190 pa mete sa a moute isit la, ak chanje li nan yon bagay 417 00:20:00,190 --> 00:20:04,920 ki enplike nan kèk sis oubyen sèt oswa konsa liy nan kòd tout wout la desann isit la. 418 00:20:04,920 --> 00:20:08,190 >> Men, li la pratike a nan yon prensip li te ye kòm distraksyon. 419 00:20:08,190 --> 00:20:12,550 Kalite ankapsule andedan nan yon nouvo fonksyon ki gen yon non, ak pi bon 420 00:20:12,550 --> 00:20:14,590 ankò non ki literalman di ki sa li fè. 421 00:20:14,590 --> 00:20:16,880 Mwen vle di printf sa a pa patikilyèman deskriptif. 422 00:20:16,880 --> 00:20:18,932 Si m 'vle yo kreye yon moso devinèt, oswa si mwen 423 00:20:18,932 --> 00:20:21,140 vle kreye yon fonksyon ki simagri Non yon moun, 424 00:20:21,140 --> 00:20:23,230 bote nan fè sa se ke mwen ka aktyèlman 425 00:20:23,230 --> 00:20:27,170 bay ke fonksyon yon non ki dekri ki sa li fè. 426 00:20:27,170 --> 00:20:29,844 >> Koulye a, li pran nan yon D 'ki Mwen te abitrèman rele, 427 00:20:29,844 --> 00:20:32,760 men sa tou se bèl deskriptif olye pou yo te yon pi plis ti kras 428 00:20:32,760 --> 00:20:36,140 jenerik tankou S. Ak anile, pou kounye a, jis vle di 429 00:20:36,140 --> 00:20:38,330 ke fonksyon sa a pa fè sa men m 'tounen anyen. 430 00:20:38,330 --> 00:20:41,127 Li pa tankou GetString ki literalman men m 'tounen yon afè 431 00:20:41,127 --> 00:20:43,960 tankou nou te fè ak moso papye yo ak elèv nan klas ou semèn pase a, 432 00:20:43,960 --> 00:20:45,990 men pito li jis gen yon efè segondè. 433 00:20:45,990 --> 00:20:48,080 Li simagri yon bagay yo ekran an. 434 00:20:48,080 --> 00:20:53,880 >> Se konsa, nan fen an nan jounen an, si mwen fè fonksyon-0, ./function-0, 435 00:20:53,880 --> 00:20:55,450 nou pral wè ke li mande pou non mwen. 436 00:20:55,450 --> 00:20:58,150 Mwen tape David, epi li kalite soti non mwen. 437 00:20:58,150 --> 00:21:01,080 Si m 'fè l' ankò ak Rob, li pral vle di "Alo, Rob." 438 00:21:01,080 --> 00:21:04,280 Se konsa, yon lide ki senp, men petèt èkstrapolasyon sa a soti nan mantalman 439 00:21:04,280 --> 00:21:06,750 ke kòm pwogram ou jwenn yon ti kras pi konplike, 440 00:21:06,750 --> 00:21:10,290 epi ou vle ekri yon ti moso nan Kòd ak apèl ki code-- envoke 441 00:21:10,290 --> 00:21:13,270 ki code-- pa kèk deskriptif non tankou PrintName, 442 00:21:13,270 --> 00:21:15,600 C fè peye nou kapasite sa a. 443 00:21:15,600 --> 00:21:17,660 >> Isit la nan yon lòt egzanp ki senp. 444 00:21:17,660 --> 00:21:22,940 Pou egzanp, si mwen louvri moute yon ranpli soti nan jodi a rele return.c, 445 00:21:22,940 --> 00:21:24,270 remake ki sa mwen te fè isit la. 446 00:21:24,270 --> 00:21:26,330 Pifò nan fonksyon prensipal sa a se printf. 447 00:21:26,330 --> 00:21:30,360 M 'premye abitrèman inisyalize yon varyab rele x nimewo 2 a. 448 00:21:30,360 --> 00:21:34,110 Mwen Lè sa a, enprime soti "x se kounye a % Mwen "pase nan valè a nan x. 449 00:21:34,110 --> 00:21:35,500 Se konsa, mwen jis di sa li ye. 450 00:21:35,500 --> 00:21:37,208 >> Koulye a, mwen jis avèk fòs konviksyon reklame ak printf. 451 00:21:37,208 --> 00:21:42,050 Mwen cubing ke valè x, ak mwen se fè sa lè w rele yon fonksyon 452 00:21:42,050 --> 00:21:45,590 rele kib pase nan x kòm agiman an, 453 00:21:45,590 --> 00:21:49,300 ak Lè sa a ekonomize pwodiksyon an nan varyab la li menm, x. 454 00:21:49,300 --> 00:21:51,340 Se konsa, mwen clobbering valè a nan x. 455 00:21:51,340 --> 00:21:53,380 Mwen prensip la valè x ak tou sa 456 00:21:53,380 --> 00:21:56,510 rezilta a pou rezidan yo rele fonksyon kib sa a se. 457 00:21:56,510 --> 00:21:59,530 Lè sa a, mwen jis enprime soti kèk bagay an gonfle isit la di sa m 'te fè sa. 458 00:21:59,530 --> 00:22:01,600 >> Se konsa, sa Lè sa a, se kib? 459 00:22:01,600 --> 00:22:03,510 Avi sa ki nan fondamantalman diferan isit la. 460 00:22:03,510 --> 00:22:05,540 Mwen te bay fonksyon an yon non tankou anvan. 461 00:22:05,540 --> 00:22:08,270 Mwen te espesifye yon non pou yon diskisyon. 462 00:22:08,270 --> 00:22:11,650 Fwa sa a, sa yo rele n olye pou yo non, men mwen te kapab rele li anyen mwen vle. 463 00:22:11,650 --> 00:22:12,650 Men, sa a se diferan. 464 00:22:12,650 --> 00:22:14,080 Bagay sa a sou bò gòch la. 465 00:22:14,080 --> 00:22:16,290 Précédemment li te sa mo kle? 466 00:22:16,290 --> 00:22:16,870 Ti gason. 467 00:22:16,870 --> 00:22:18,580 Kounye a li nan evidamman Int. 468 00:22:18,580 --> 00:22:20,630 >> Se konsa, sa k ap petèt pran la lwen? 469 00:22:20,630 --> 00:22:24,090 Lè nou konsidere ke signifies anile sòt de enbesilite, ak sa ki te ka a. 470 00:22:24,090 --> 00:22:25,970 PrintName tounen pa gen anyen. 471 00:22:25,970 --> 00:22:27,942 Li te fè yon bagay, men li pa t 'lage m' tounen 472 00:22:27,942 --> 00:22:30,650 yon bagay ke mwen te ka mete yo sou la bò men gòch nan yon siy egal 473 00:22:30,650 --> 00:22:32,460 tankou mwen te fè isit la sou liy 22. 474 00:22:32,460 --> 00:22:36,780 >> Se konsa, si mwen di nan sou liy 30, sa ki nan ke pwobableman qui 475 00:22:36,780 --> 00:22:38,610 sou sa ki kib fè pou mwen? 476 00:22:38,610 --> 00:22:41,110 Yeah? 477 00:22:41,110 --> 00:22:42,310 Li retounen yon nonb antye relatif. 478 00:22:42,310 --> 00:22:44,590 Se konsa, li men m 'tounen, pou egzanp, yon moso papye 479 00:22:44,590 --> 00:22:46,580 ki te sou li te ekri repons la. 480 00:22:46,580 --> 00:22:50,130 2 Gleason, oswa 3 Gleason, oswa 4 cubed-- tou sa mwen te pase nan, 481 00:22:50,130 --> 00:22:51,540 e ki jan mwen aplike sa a? 482 00:22:51,540 --> 00:22:54,810 Oke, jis n fwa n fwa n se ki jan mwen ta ka kib yon valè. 483 00:22:54,810 --> 00:22:57,110 Se konsa, ankò, super senp lide, men démonstration 484 00:22:57,110 --> 00:23:00,100 kounye a ki jan nou ka ekri fonksyon ki aktyèlman te gen nou tounen 485 00:23:00,100 --> 00:23:02,380 valè ke sa ta kapab nan enterè yo. 486 00:23:02,380 --> 00:23:05,740 >> Se pou yo gade nan yon sèl dènye egzanp isit la yo rele fonksyon yon sèl. 487 00:23:05,740 --> 00:23:08,530 Nan egzanp sa a, li kòmanse jwenn plis irezistib. 488 00:23:08,530 --> 00:23:12,400 Se konsa, nan fonksyon yon sèl, sa a avi program-- finalman 489 00:23:12,400 --> 00:23:14,920 rele yon fonksyon rele GetPositiveInt. 490 00:23:14,920 --> 00:23:17,800 GetPositiveInt se pa yon fonksyon nan bibliyotèk la CS50, 491 00:23:17,800 --> 00:23:20,400 men nou deside nou ta renmen li egziste. 492 00:23:20,400 --> 00:23:24,550 >> Se konsa, si nou desann pita nan dosye a, avi ki jan mwen te ale sou mete ann aplikasyon 493 00:23:24,550 --> 00:23:26,560 jwenn pozitif Int, epi mwen di li nan plis irezistib 494 00:23:26,560 --> 00:23:28,992 paske sa a se yon desan kantite liy nan kòd. 495 00:23:28,992 --> 00:23:30,700 Li pa jis yon enbesil pwogram ti kras jwèt. 496 00:23:30,700 --> 00:23:33,870 Li la aktyèlman gen kèk kont kouran erè ak ap fè yon bagay ki pi itil. 497 00:23:33,870 --> 00:23:38,470 >> Se konsa, si ou pa te wè solisyon an videyo ke nou te entegre nan pset1, 498 00:23:38,470 --> 00:23:42,350 konnen ke sa a se yon kalite bouk nan C, menm jan an nan lespri 499 00:23:42,350 --> 00:23:44,270 kalite sa yo de bagay sa yo grafouyen ka fè. 500 00:23:44,270 --> 00:23:46,320 Ak fè di fè sa. 501 00:23:46,320 --> 00:23:47,500 Enprime sa a soti. 502 00:23:47,500 --> 00:23:51,860 Lè sa a, ale pi devan epi pou yo jwenn n-- jwenn yon int ak magazen li nan n, 503 00:23:51,860 --> 00:23:55,760 ak kontinye ap fè sa ankò, li ankò e ankò toutotan n se mwens pase yon. 504 00:23:55,760 --> 00:23:58,720 >> Se konsa, n a pwal mwens pase yon sèlman si moun nan pa nan kolabore. 505 00:23:58,720 --> 00:24:01,980 Si li se sezisman nan 0 oswa -1 oswa -50, 506 00:24:01,980 --> 00:24:04,790 sa a riban ki pral kenbe egzekite ankò e ankò. 507 00:24:04,790 --> 00:24:07,549 Ak finalman remake, mwen tou senpleman tounen valè an. 508 00:24:07,549 --> 00:24:09,590 Se konsa, kounye a nou gen yon fonksyon ki ta ve yo te bèl 509 00:24:09,590 --> 00:24:14,040 si CS50 ta aplike nan CS50.h ak CS50.c pou ou, 510 00:24:14,040 --> 00:24:16,520 men isit la nou kapab kounye a aplike sa a tèt nou. 511 00:24:16,520 --> 00:24:19,230 >> Men, de kòmantè sou kèk detay kle. 512 00:24:19,230 --> 00:24:24,390 One-- poukisa Mwen deklare int n, ou panse, sou liy 29 513 00:24:24,390 --> 00:24:27,139 olye pou yo jis fè sa a isit la, ki se 514 00:24:27,139 --> 00:24:28,930 plis ki konsistan avèk sa nou te fè semèn pase a? 515 00:24:28,930 --> 00:24:29,430 Yeah? 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 Yon bon te panse. 518 00:24:35,110 --> 00:24:37,080 Se konsa, si nou te mete l ' isit la, li la tankou si nou 519 00:24:37,080 --> 00:24:39,110 kenbe deklare li ankò e ankò. 520 00:24:39,110 --> 00:24:42,000 Sa ki nan ak tèt li se pa pwoblèm, se pou chak, 521 00:24:42,000 --> 00:24:43,940 paske nou sèlman bezwen valè a yon fwa ak Lè sa a 522 00:24:43,940 --> 00:24:45,330 nou ap ale nan jwenn yon nouvo de tout fason. 523 00:24:45,330 --> 00:24:45,940 Men, yon bon te panse. 524 00:24:45,940 --> 00:24:46,440 Yeah? 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> Fèmen. 527 00:24:53,330 --> 00:24:59,030 Se konsa, paske mwen te deklare n sou liy 29 deyò nan riban an, 528 00:24:59,030 --> 00:25:01,390 li a aksesib pandan tout fonksyon sa a tout antye. 529 00:25:01,390 --> 00:25:05,400 Pa lòt fonksyon yo paske n se toujou anndan nan sa yo Curly 530 00:25:05,400 --> 00:25:06,470 aparèy òtopedik isit la. 531 00:25:06,470 --> 00:25:07,940 So-- asire w. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> Egzakteman. 534 00:25:12,940 --> 00:25:14,356 Se konsa, sa a se menm plis nan pwen an. 535 00:25:14,356 --> 00:25:18,600 Si nou olye pou deklare n dwa isit la sou liy 32, 536 00:25:18,600 --> 00:25:22,340 li nan pwoblèm paske devine kote lòt bagay mwen bezwen jwenn aksè nan li? 537 00:25:22,340 --> 00:25:25,620 Sou liy ki 34, ak senp règ nan gwo pous se 538 00:25:25,620 --> 00:25:30,060 ke ou ka sèlman sèvi ak yon varyab andedan nan ki pi resan aparèy òtopedik yo Curly 539 00:25:30,060 --> 00:25:31,420 nan ki ou te deklare li. 540 00:25:31,420 --> 00:25:35,230 >> Malerezman, liy 34 se yon sèl liy twò ta, 541 00:25:35,230 --> 00:25:38,560 paske mwen te deja fèmen atèl a Curly sou liy 33 542 00:25:38,560 --> 00:25:41,220 ki koresponn ak nan Curly atèl sou liy 30. 543 00:25:41,220 --> 00:25:44,180 Se konsa, sa a se yon fason pou li di ke sa a se Int varyab scoped, 544 00:25:44,180 --> 00:25:46,970 se konsa pale, nan sèlman andedan nan tout sa yo aparèy òtopedik Curly. 545 00:25:46,970 --> 00:25:48,910 Li jis pa egziste deyò nan yo. 546 00:25:48,910 --> 00:25:51,580 >> Se konsa, tout bon, si mwen fè sa sa ki mal, kite m 'sove kòd la 547 00:25:51,580 --> 00:25:53,530 jan li is-- mal ekri. 548 00:25:53,530 --> 00:25:57,990 Kite m 'ale pi devan epi fè fonksyon-1, ak notice-- erè. 549 00:25:57,990 --> 00:26:03,502 Sèvi ak nan idantifyan sekrè n sou liy 35, ki se dwa isit la. 550 00:26:03,502 --> 00:26:05,210 Men, si nou woulo liv moute pi lwen, yon lòt. 551 00:26:05,210 --> 00:26:08,750 Sèvi ak nan sekrè idantifyan n sou liy 34. 552 00:26:08,750 --> 00:26:11,200 >> Se konsa, du a, rezone, se remarke ke li jis 553 00:26:11,200 --> 00:26:13,720 pa egziste menm si klèman ke li la vizyèlman. 554 00:26:13,720 --> 00:26:16,090 Se konsa, yon ranje senp se deklare li a. 555 00:26:16,090 --> 00:26:18,790 >> Koulye a, kite m 'woulo liv tèt la nan dosye a. 556 00:26:18,790 --> 00:26:21,080 Ki sa ki sote soti nan ou kòm ke yo te yon ti kras diferan 557 00:26:21,080 --> 00:26:23,070 soti nan bagay la nou te gade semèn pase a? 558 00:26:23,070 --> 00:26:26,990 Se pa sèlman mwen gen non, pa sèlman fè Mwen gen kèk byen file an gen ladan moute tèt, 559 00:26:26,990 --> 00:26:29,340 Mwen gen yon bagay mwen se rele yon pwototip. 560 00:26:29,340 --> 00:26:36,100 Koulye a, ki sanble joliman menm jan ak sa nou jis te wè yon ti moman de sa sou liy 27. 561 00:26:36,100 --> 00:26:39,230 >> Se konsa, kite a dégager ki sòti nan yon diferan erè mesaj poutèt sa mwen te fè sa a. 562 00:26:39,230 --> 00:26:42,050 Kite m 'ale pi devan epi efase liy sa yo a. 563 00:26:42,050 --> 00:26:44,240 Se konsa, nou pa konnen anyen sou pwototip. 564 00:26:44,240 --> 00:26:45,430 Renouvèlman sa a dosye. 565 00:26:45,430 --> 00:26:46,890 Fè fonksyon yon sèl. 566 00:26:46,890 --> 00:26:48,090 Epi, koulye a, modi, kat erè. 567 00:26:48,090 --> 00:26:50,220 Se pou nou woulo liv moute nan yon sèl la an premye. 568 00:26:50,220 --> 00:26:55,070 >> Enplisit deklarasyon nan fonksyon jwenn pozitif Int se valab nan C99. 569 00:26:55,070 --> 00:26:57,780 C99 jis vle di 1999 la vèsyon nan lang lan 570 00:26:57,780 --> 00:26:59,710 C, ki se ki sa nou ap tout bon lè l sèvi avèk. 571 00:26:59,710 --> 00:27:01,050 Se konsa, sa sa vle di? 572 00:27:01,050 --> 00:27:05,250 Oke C-- ak plis espesyalman C compilers-- yo se pwogram trè bèbè. 573 00:27:05,250 --> 00:27:07,420 Yo sèlman konnen ki sa ou te te di yo, epi ki nan 574 00:27:07,420 --> 00:27:08,960 aktyèlman tematik soti nan semèn dènye. 575 00:27:08,960 --> 00:27:12,910 >> Pwoblèm lan se ke si mwen ale sou mete ann aplikasyon Non moute isit la, 576 00:27:12,910 --> 00:27:17,640 ak Mwen rele yon fonksyon rele GetPositiveInt isit la sou liy 20, 577 00:27:17,640 --> 00:27:22,520 ki fonksyon teknikman pa fè sa egziste jiskaske du a wè liy 27. 578 00:27:22,520 --> 00:27:25,450 Malerezman, du a se fè bagay tèt, desann, agoch, adwat, 579 00:27:25,450 --> 00:27:29,580 se konsa paske li pa te wè nan aplikasyon nan GetPositiveInt, 580 00:27:29,580 --> 00:27:32,400 men li wè ou ap eseye yo sèvi ak li moute isit la, 581 00:27:32,400 --> 00:27:35,810 li nan jis ale nan bail-- rele nan ou ak yon erè message-- petèt 582 00:27:35,810 --> 00:27:38,440 skre, epi yo pa aktyèlman konpile dosye a. 583 00:27:38,440 --> 00:27:41,940 >> Se konsa, yon sa yo rele pwototip moute isit la se Byensir redondants. 584 00:27:41,940 --> 00:27:47,870 Literalman, mwen te ale desann isit la e mwen kopye ak kopye sa a, epi mwen mete l 'moute isit la. 585 00:27:47,870 --> 00:27:51,020 Anile ta gen plis apwopriye, se konsa nou pral literalman kopye epi kole li tan sa a. 586 00:27:51,020 --> 00:27:52,854 Mwen literalman kopye ak kole li. 587 00:27:52,854 --> 00:27:54,270 Vrèman jis kòm tankou yon krout pen. 588 00:27:54,270 --> 00:27:56,260 >> Yon siy ti kras nan du a. 589 00:27:56,260 --> 00:27:58,860 Mwen pa konnen sa sa a fè ankò, men mwen m 'pwomèt yo ou 590 00:27:58,860 --> 00:28:00,260 ke li pral egziste evantyèlman. 591 00:28:00,260 --> 00:28:04,010 Epi sa a, poukisa sa a line-- nan liy 16-- fini ak yon virgules. 592 00:28:04,010 --> 00:28:05,486 Li se redondants pa konsepsyon. 593 00:28:05,486 --> 00:28:05,986 Wi? 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> Si ou pa t 'lyen bibliyotèk ou the-- oh, bon kesyon. 596 00:28:14,360 --> 00:28:17,350 Sharp an gen ladan enklizyon dosye header. 597 00:28:17,350 --> 00:28:20,040 Bezwen be-- ta dwe prèske toujou gen nan tèt la anpil 598 00:28:20,040 --> 00:28:23,270 nan dosye a pou yon similar-- pou egzakteman menm rezon an, wi. 599 00:28:23,270 --> 00:28:26,430 Paske nan estanda io.h se literalman yon liy 600 00:28:26,430 --> 00:28:30,560 tankou sa a, men ki gen mo printf la, ak ak agiman li yo ak kalite retounen li yo. 601 00:28:30,560 --> 00:28:33,310 Se konsa, pa fè byen file genyen ladan moute isit la, sa w ap literalman fè 602 00:28:33,310 --> 00:28:36,380 se w kopye e kole sa ki nan yon lòt moun te ekri moute tèt. 603 00:28:36,380 --> 00:28:39,660 Kidonk cluing Kòd ou a nan nan reyalite ki moun ki fonksyon egziste. 604 00:28:39,660 --> 00:28:40,160 Yeah? 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> Absoliman. 607 00:28:48,260 --> 00:28:51,690 Se konsa, yon trè entelijan ak kòrèk solisyon ta dwe, ou konnen ki sa? 608 00:28:51,690 --> 00:28:53,760 Mwen pa konnen ki sa yon pwototip se, men mwen konnen 609 00:28:53,760 --> 00:28:56,390 si mwen konprann ke C se jis bèbè ak rethinks anwo jouk anba. 610 00:28:56,390 --> 00:28:57,820 Oke, kite a ba li sa li vle. 611 00:28:57,820 --> 00:29:01,650 Se pou nou koupe ke kòd, kole li moute tèt, e kounye a, pouse prensipal desann anba a. 612 00:29:01,650 --> 00:29:03,470 Sa a tou ta ka rezoud pwoblèm nan. 613 00:29:03,470 --> 00:29:07,409 >> Men, ou te kapab trè fasil vini ak yon senaryo nan ki yon bezwen rele B, 614 00:29:07,409 --> 00:29:10,075 e petèt B rele tounen nan A. Sa a se yon bagay yo rele rkursyon, 615 00:29:10,075 --> 00:29:11,370 epi nou pral tounen vin jwenn sa. 616 00:29:11,370 --> 00:29:13,911 Epi li pouvwa oswa pa pouvwa dwe yon bon bagay, men ou kapab definitivman 617 00:29:13,911 --> 00:29:15,110 kraze sa a solisyon an. 618 00:29:15,110 --> 00:29:17,690 >> Epi ankò, mwen ta reklamasyon estilitikman, 619 00:29:17,690 --> 00:29:20,760 espesyalman lè pwogram ou an vin sa a depi lontan ak sa a depi lontan, 620 00:29:20,760 --> 00:29:23,064 li nan jis super pratik yo mete prensipal nan tèt la 621 00:29:23,064 --> 00:29:25,730 paske li nan bagay ki pi pwogramasyon yo ale nan pran swen sou. 622 00:29:25,730 --> 00:29:28,150 Se konsa, li nan yon ti kras cleaner, joui, yo fè l 'wout la 623 00:29:28,150 --> 00:29:30,380 Mwen orijinal te fè li ak yon pwototip menm 624 00:29:30,380 --> 00:29:33,396 menm si li sanble yon ti kras redondants nan premye gade. 625 00:29:33,396 --> 00:29:33,895 Yeah? 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 Padon, ou ka di li pi fò? 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> Si ou chanje kote yo nan a aplikasyon ak pwototip a? 630 00:29:49,580 --> 00:29:51,270 Se konsa, ki se yon bon kesyon. 631 00:29:51,270 --> 00:29:53,780 Si ou re-deklare sa a desann isit la, se pou yo wè sa ki rive. 632 00:29:53,780 --> 00:29:55,530 Se konsa, si mwen mete sa a desann isit la, ou ap di. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 Oh, regrèt. 635 00:29:58,360 --> 00:29:58,859 Pi fò? 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 Menm pi fò. 638 00:30:04,011 --> 00:30:04,760 Oh, bon kesyon. 639 00:30:04,760 --> 00:30:05,860 Li ta invalid fonksyon an? 640 00:30:05,860 --> 00:30:08,901 Ou konnen, apre tout ane sa yo, mwen gen pa janm mete apre sa yon pwototip. 641 00:30:08,901 --> 00:30:13,810 Se konsa, kite a fè fè fonksyon-1 apre yo fin fè sa. 642 00:30:13,810 --> 00:30:15,279 >> [Zòrèy] 643 00:30:15,279 --> 00:30:16,320 DAVID J. Malan: Oh, rete tann. 644 00:30:16,320 --> 00:30:17,944 Nou toujou gen yo mete tout bagay moute tèt. 645 00:30:17,944 --> 00:30:21,400 Se konsa, kite a fè sa moute isit la, si mwen konprann kesyon ou kòrèkteman. 646 00:30:21,400 --> 00:30:24,700 Mwen mete tout bagay, ki gen ladan pwototip ki pi wo a prensipal yo, 647 00:30:24,700 --> 00:30:28,180 men mwen m 'mete pwototip a anba a aplikasyon an. 648 00:30:28,180 --> 00:30:33,190 >> Se konsa, si mwen fè yon sèl, Mwen ap resevwa tounen yon error-- rès n varyab. 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 Oh, gen. 651 00:30:37,860 --> 00:30:38,360 Mèsi poutèt ou. 652 00:30:38,360 --> 00:30:39,430 Ann wè, nou debarase m de sa a. 653 00:30:39,430 --> 00:30:41,304 Sa a yon ensèk diferan, kidonk kite a inyore sa. 654 00:30:41,304 --> 00:30:43,910 Se pou yo vrèman byen vit renouvèlman sa a. 655 00:30:43,910 --> 00:30:48,100 >> OK, se konsa agiman pa done itilize pa fòma chèn 656 00:30:48,100 --> 00:30:52,310 n-- oh, sa a, se paske Mwen chanje nan sa yo isit la. 657 00:30:52,310 --> 00:30:55,885 Tout dwa, nou konnen ki sa repons lan ki pral to-- tout dwa, isit la nou ale. 658 00:30:55,885 --> 00:31:00,560 Ah, mèsi pou pozitif la. 659 00:31:00,560 --> 00:31:03,430 Tout dwa, mwen pral ranje sa a kòd after-- inyore ensèk sa a an patikilye 660 00:31:03,430 --> 00:31:08,300 depi sa a was-- li ap travay se repons lan. 661 00:31:08,300 --> 00:31:11,560 >> Se konsa, li pa recouvrir sa ou te jis fè. 662 00:31:11,560 --> 00:31:14,800 Mwen sispèk du a ki ekri nan yon fason 663 00:31:14,800 --> 00:31:18,420 ke li se inyore pwototip ou paske kò a, se konsa pale, 664 00:31:18,420 --> 00:31:20,922 nan fonksyon an te deja te aplike pi wo yo. 665 00:31:20,922 --> 00:31:23,380 Mwen ta gen aktyèlman konsilte manyèl la nan du a 666 00:31:23,380 --> 00:31:26,171 yo konprann si gen nan nenpòt lòt enplikasyon, men nan premye gade 667 00:31:26,171 --> 00:31:29,290 jis la ap eseye ak fè eksperyans, gen sanble ap pa gen okenn enpak. 668 00:31:29,290 --> 00:31:30,730 Bon kesyon. 669 00:31:30,730 --> 00:31:33,660 >> Se konsa, kite a fòje pi devan koulye a, k ap deplase lwen efè segondè ki 670 00:31:33,660 --> 00:31:36,660 yo se fonksyon ki fè yon bagay tankou vizyèlman sou ekran an ak printf, 671 00:31:36,660 --> 00:31:38,090 men se pa retounen yon valè. 672 00:31:38,090 --> 00:31:41,550 Ak fonksyon sa yo ki te retounen valè tankou nou jis te wè yon kèk nan. 673 00:31:41,550 --> 00:31:45,350 Nou deja wè sa a nosyon nan sijè ki abòde, epi nou pral wè sa a ankò e ankò. 674 00:31:45,350 --> 00:31:47,210 Men, pou kounye a, ankò, sèvi ak règ la nan gwo pous 675 00:31:47,210 --> 00:31:51,410 ki ka yon varyab dwe itilize sèlman andedan nan pi dènyèman louvri nan 676 00:31:51,410 --> 00:31:54,350 ak fèmen aparèy òtopedik Curly jan nou te wè nan ki egzanp patikilye. 677 00:31:54,350 --> 00:31:56,910 >> Ak jan ou vize deyò, gen yon ability-- 678 00:31:56,910 --> 00:32:00,040 ou ta ka rezoud kèk nan pwoblèm sa yo pa mete yon varyab globalman 679 00:32:00,040 --> 00:32:01,290 nan tèt la anpil nan yon dosye. 680 00:32:01,290 --> 00:32:03,630 Men, nan prèske tout ka yo nou ta gwonde sou sa, 681 00:32:03,630 --> 00:32:06,170 ak tout bon pa menm ale nan ki solisyon pou kounye a. 682 00:32:06,170 --> 00:32:09,890 Se konsa, pou kounye a, Takeaway la se ke varyab gen sa a nosyon nan dimansyon. 683 00:32:09,890 --> 00:32:13,430 >> Men koulye a, kite pou yo gade nan yon lòt fason sèk nan aktyèlman kap 684 00:32:13,430 --> 00:32:15,810 nan kèk trè enteresan aplikasyon detay. 685 00:32:15,810 --> 00:32:17,810 Ki jan nou ta ka reprezante enfòmasyon. 686 00:32:17,810 --> 00:32:20,370 Apre sa, nou deja gade sa a nan premye semèn nan nan klas la. 687 00:32:20,370 --> 00:32:23,320 Gade nan binèr, ak raple tèt nou desimal. 688 00:32:23,320 --> 00:32:28,310 >> Men, sonje soti nan semèn pase a ke C gen kalite done ki diferan ak grap plis, 689 00:32:28,310 --> 00:32:30,600 men yo menm ki pi itil pou kounye a ta ka sa yo. 690 00:32:30,600 --> 00:32:36,030 Yon Char, oswa karaktè, ki k ap pase yo dwe youn multiple, oswa uit Bits total. 691 00:32:36,030 --> 00:32:40,060 Epi sa a, yo di ke gwosè a nan yon Char se jis yon multiple. 692 00:32:40,060 --> 00:32:45,370 Yon multiple se uit Bits, se konsa sa vle di ke nou ka reprezante karaktè ki jan anpil. 693 00:32:45,370 --> 00:32:47,320 Konbyen lèt oswa senbòl sou klavye a 694 00:32:47,320 --> 00:32:49,210 si nou gen yon sèl multiple oswa uit miyèt moso. 695 00:32:49,210 --> 00:32:51,546 Panse tounen nan semèn zewo. 696 00:32:51,546 --> 00:32:53,420 Si ou gen uit Bits, konbyen valè manm 697 00:32:53,420 --> 00:32:55,503 ka ou reprezante ak modèl nan zewo ak moun yo? 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 One-- plis pase sa. 700 00:33:00,260 --> 00:33:03,490 Se konsa, 256 manm si ou kòmanse konte soti nan zewo. 701 00:33:03,490 --> 00:33:07,120 Se konsa, si ou gen uit bits-- konsa, si nou te gen anpoul binè nou moute isit la ankò, 702 00:33:07,120 --> 00:33:12,180 nou te kapab vire moun anpoul limyè sou yo ak sou nan nenpòt nan 256 modèl inik. 703 00:33:12,180 --> 00:33:13,640 >> Koulye a, sa a se yon ti jan Pwoblematik. 704 00:33:13,640 --> 00:33:16,857 Pa tèlman pou angle ak lang romans, men sètènman 705 00:33:16,857 --> 00:33:19,190 lè ou prezante, pou egzanp, lang Azyatik, ki 706 00:33:19,190 --> 00:33:22,580 gen byen lwen plis senbòl pase tankou 26 lèt nan alfabè a. 707 00:33:22,580 --> 00:33:24,390 Nou aktyèlman ta ka bezwen plis pase yon multiple. 708 00:33:24,390 --> 00:33:28,240 Ak Erezman nan dènye ane yo gen sosyete 709 00:33:28,240 --> 00:33:31,040 adopte lòt nòm ki itilize plis pase yon multiple pou chak chaj. 710 00:33:31,040 --> 00:33:34,210 >> Men, pou kounye a nan C, default a se jis yon multiple oswa uit miyèt moso. 711 00:33:34,210 --> 00:33:38,195 Yon nonb antye relatif, pandan se tan, se kat bytes, ki te rekonèt kòm 32 miyèt moso. 712 00:33:38,195 --> 00:33:41,320 Ki vle di sa ki nan pi gwo posib nan Nimewo nou ka reprezante ak yon int 713 00:33:41,320 --> 00:33:41,820 aparamman? 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 Avèk yon milya dola. 716 00:33:45,050 --> 00:33:46,760 Se konsa, li kat milya dola bay oswa pran. 717 00:33:46,760 --> 00:33:49,840 2 a pouvwa a 32th, si nou sipoze pa gen okenn nimewo negatif 718 00:33:49,840 --> 00:33:52,530 ak jis sèvi ak tout pozitif nimewo, li nan kat milya dola 719 00:33:52,530 --> 00:33:53,730 bay oswa pran posiblite yo. 720 00:33:53,730 --> 00:33:57,890 Yon flote, pandan se tan, se yon kalite diferan nan kalite done nan C. Li la toujou yon nimewo, 721 00:33:57,890 --> 00:33:58,990 men li la yon nimewo reyèl. 722 00:33:58,990 --> 00:34:00,660 Yon bagay ki gen yon pwen desimal. 723 00:34:00,660 --> 00:34:03,000 Epi li vire soti ki C itilize tou kat bytes 724 00:34:03,000 --> 00:34:05,340 ki reprezante valè pwen k ap flote. 725 00:34:05,340 --> 00:34:09,420 >> Malerezman konbyen k ap flote valè pwen ki genyen nan mond lan? 726 00:34:09,420 --> 00:34:11,582 Konbyen chif reyèl ki genyen? 727 00:34:11,582 --> 00:34:13,540 Genyen yon enfini nimewo, ak pou ki matyè 728 00:34:13,540 --> 00:34:15,164 gen nan yon nonb infini nan nonm antye relatif. 729 00:34:15,164 --> 00:34:18,070 Se konsa, nou ap deja kalite fouye tèt nou yon twou isit la. 730 00:34:18,070 --> 00:34:21,780 Ak lese pase 'aparamman nan computers-- nan omwen pwogram ekri nan C sou them-- 731 00:34:21,780 --> 00:34:24,110 ka sèlman konte kòm yon wo kat milya dola bay oswa pran, 732 00:34:24,110 --> 00:34:26,260 ak valè pwen k ap flote kapab sèlman aparamman 733 00:34:26,260 --> 00:34:28,330 gen kèk kantite lajan fini nan presizyon. 734 00:34:28,330 --> 00:34:30,810 Se sèlman anpil chif apre pwen desimal yo. 735 00:34:30,810 --> 00:34:32,822 >> Paske, nan kou, si ou gen sèlman 32 Bits, 736 00:34:32,822 --> 00:34:36,030 Mwen pa konnen kijan nou ap ale nan ale sou repwezantan reyèl numéros pwobableman 737 00:34:36,030 --> 00:34:37,409 ak diferan kalite modèl. 738 00:34:37,409 --> 00:34:40,030 Men, gen nan siman yon fini Nimewo nan modèl sa yo, 739 00:34:40,030 --> 00:34:41,830 se konsa isit la, tou, sa a se yon pwoblèm. 740 00:34:41,830 --> 00:34:43,710 >> Koulye a, nou ka evite pwoblèm nan yon ti kras. 741 00:34:43,710 --> 00:34:45,710 Si w pa itilize yon flote, ou ka sèvi ak yon doub 742 00:34:45,710 --> 00:34:50,230 nan C, sa ki ba ou uit bytes, ki se yon fason pi plis modèl posib nan zewo 743 00:34:50,230 --> 00:34:50,730 ak moun yo. 744 00:34:50,730 --> 00:34:55,199 Men, li la toujou fini, ki se ale yo dwe pwoblèm si ou ekri lojisyèl 745 00:34:55,199 --> 00:34:57,670 pou grafik oswa pou anpenpan fòmil matematik. 746 00:34:57,670 --> 00:35:00,410 Se konsa, ou ta ka aktyèlman vle yo konte moute pi gwo pase sa. 747 00:35:00,410 --> 00:35:05,640 Yon long long-- estipid named-- se tou uit bytes, oswa 64 Bits, 748 00:35:05,640 --> 00:35:10,260 ak sa a se de fwa osi lontan ke yon int, ak li a pou yon valè nonb antye relatif long. 749 00:35:10,260 --> 00:35:15,655 >> Fun fact-- si yon int se kat bytes, konbyen tan se yon long nan C tipikman? 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 Epitou kat bytes, men yon lontan lontan se uit bytes, 752 00:35:21,560 --> 00:35:23,050 ak sa a se pou rezon istorik. 753 00:35:23,050 --> 00:35:26,450 >> Men, Takeaway la kounye a se jis ke done gen 754 00:35:26,450 --> 00:35:29,625 yo dwe reprezante nan yon computer-- sa a, se yon aparèy fizik ak elektrisite, 755 00:35:29,625 --> 00:35:32,190 li nan jeneralman kondwi moun zewo ak ones-- 756 00:35:32,190 --> 00:35:34,320 ak kantite limite nan presizyon. 757 00:35:34,320 --> 00:35:35,620 Se konsa, sa ki nan pwoblèm nan lè sa a? 758 00:35:35,620 --> 00:35:37,480 >> Oke, gen nan yon pwoblèm nan nonb antye relatif debòde. 759 00:35:37,480 --> 00:35:39,780 Pa sèlman nan C, men nan òdinatè an jeneral. 760 00:35:39,780 --> 00:35:42,590 Pou egzanp, si sa a se yon multiple vo yon bit-- 761 00:35:42,590 --> 00:35:45,120 Se konsa, si sa a se uit bit-- tout nan yo ki nimewo a yon sèl. 762 00:35:45,120 --> 00:35:47,300 Ki nonb sa a repwezantan si nou sipoze 763 00:35:47,300 --> 00:35:50,730 li nan tout valè pozitif nan binè? 764 00:35:50,730 --> 00:35:54,410 >> 255, epi li pa 256, paske zewo se nimewo ki pi ba. 765 00:35:54,410 --> 00:35:56,760 Se konsa, 255 se pi wo a yon sèl, men pwoblèm nan 766 00:35:56,760 --> 00:36:00,330 se ta kwè ke mwen te vle kantite sa a varyab ki 767 00:36:00,330 --> 00:36:04,030 se lè l sèvi avèk uit Bits totalize si mwen vle kantite li. 768 00:36:04,030 --> 00:36:07,160 >> Byen ke pli vit ke mwen ajoute yon youn nan tout nan yo menm sa yo, 769 00:36:07,160 --> 00:36:10,500 ou ka petèt imajine visually-- jis tankou pote yon sèl la lè l sèvi avèk decimals-- 770 00:36:10,500 --> 00:36:12,300 yon bagay k ap pase yo koule nan bò gòch la. 771 00:36:12,300 --> 00:36:15,590 Ak tout bon, si mwen ajoute nimewo a youn nan sa a, sa k ap pase nan binè 772 00:36:15,590 --> 00:36:17,670 se ke li kontan tounen nan zewo. 773 00:36:17,670 --> 00:36:21,730 >> Se konsa, si ou sèlman use-- pa yon int, men yon multiple sèl yo konte nonm antye relatif 774 00:36:21,730 --> 00:36:27,170 nan yon pwogram, pa default pi vit ke ou jwenn yo 250, 251, 252, 253, 254, 775 00:36:27,170 --> 00:36:32,710 255-- 0 vini apre 255, ki se pwobableman pa sa 776 00:36:32,710 --> 00:36:34,790 yon itilizatè ki pral atann. 777 00:36:34,790 --> 00:36:39,620 >> Koulye a, pandan se tan nan pwen k ap flote nan lemonn, ou gen yon pwoblèm ki sanble tou. 778 00:36:39,620 --> 00:36:42,670 Pa tèlman ak number-- nan pi gwo byenke sa a, se toujou yon pwoblèm. 779 00:36:42,670 --> 00:36:45,360 Men, ak kantite lajan an nan presizyon ke ou ka reprezante. 780 00:36:45,360 --> 00:36:49,490 Se konsa, kite a pran yon gade nan egzanp sa a isit la tou soti nan sous code-- jodi a 781 00:36:49,490 --> 00:36:52,070 flote-0.c. 782 00:36:52,070 --> 00:36:54,280 >> Ak avi li nan yon super pwogram senp ki 783 00:36:54,280 --> 00:36:56,580 ta dwe aparamman enprime soti sa ki valè? 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 Ki sa ou paryaj sa a ki pral ekri ak lèt ​​detache menm si gen nan yon ti jan nan nouvo sentaks 786 00:37:04,110 --> 00:37:05,540 isit la? 787 00:37:05,540 --> 00:37:06,700 Se konsa, èspere ke 0.1. 788 00:37:06,700 --> 00:37:10,000 Se konsa, ekivalan a nan yon sèl-dizyèm paske m ap fè 1 divize pa 10. 789 00:37:10,000 --> 00:37:12,430 Mwen estoke repons lan nan yon varyab rele f. 790 00:37:12,430 --> 00:37:15,850 Varyab ki se nan kalite flote, ki se yon mo kle mwen jis pwopoze egziste. 791 00:37:15,850 --> 00:37:18,910 >> Nou pa te wè sa a anvan, men sa a se kalite yon fason pwòp nan printf 792 00:37:18,910 --> 00:37:22,110 ou presize konbyen chif ou vle wè apre yon pwen desimal. 793 00:37:22,110 --> 00:37:25,020 Se konsa, sa a notasyon jis vle di ki isit la nan yon kontneur. 794 00:37:25,020 --> 00:37:27,900 Li nan pou yon pwen k ap flote valè, ak o, nan chemen an, 795 00:37:27,900 --> 00:37:31,389 montre l 'ak pwen an desimal ak yon sèl nimewo apre pwen desimal la. 796 00:37:31,389 --> 00:37:33,180 Se konsa, se nimewo a nan chif siyifikatif, 797 00:37:33,180 --> 00:37:34,650 se konsa pale, ke ou ta ka vle. 798 00:37:34,650 --> 00:37:40,450 >> Se konsa, kite m 'ale pi devan epi fè fè flote-0, ./float-0, 799 00:37:40,450 --> 00:37:46,660 ak aparamman 1 divize pa 10 se 0.0. 800 00:37:46,660 --> 00:37:47,760 Koulye a, poukisa sa a? 801 00:37:47,760 --> 00:37:51,380 >> Oke, ankò, òdinatè a ap pran m 'literalman, epi mwen te ekri 1 802 00:37:51,380 --> 00:37:56,680 ak mwen ekri 10, ak pran yon devine sa ki se sipoze kalite a done pou sa yo de 803 00:37:56,680 --> 00:37:58,440 Valè? 804 00:37:58,440 --> 00:38:00,970 Yon int, li nan teknikman yon bagay yon ti kras diferan. 805 00:38:00,970 --> 00:38:04,150 Li nan tipikman yon long, men li la finalman yon valè entegral. 806 00:38:04,150 --> 00:38:06,030 Pa yon valè pwen k ap flote. 807 00:38:06,030 --> 00:38:09,456 >> Ki se yo di ke si sa a se yon int ak sa a se yon int, 808 00:38:09,456 --> 00:38:11,830 pwoblèm nan se ke òdinatè a pa gen kapasite pou 809 00:38:11,830 --> 00:38:13,680 nan menm magazen ki pwen desimal. 810 00:38:13,680 --> 00:38:16,430 Se konsa, lè ou fè 1 divize pa 10 lè l sèvi avèk nonb antye relatif 811 00:38:16,430 --> 00:38:20,950 pou tou de nimeratè a la ak denominatè, repons a yo ta dwe 0.1. 812 00:38:20,950 --> 00:38:24,930 Men, computer-- a paske sa yo se nonb antye relatif 813 00:38:24,930 --> 00:38:27,430 pa konnen ki sa fè ak 0.1 la. 814 00:38:27,430 --> 00:38:30,010 >> Se konsa, sa se li byen klè ap fè? 815 00:38:30,010 --> 00:38:33,120 Li nan jis voye l 'ale, ak sa m ap wè finalman 816 00:38:33,120 --> 00:38:38,830 se 0.0 sèlman paske mwen ensiste ke printf montre m yon pwen desimal. 817 00:38:38,830 --> 00:38:41,740 Men, pwoblèm nan se ke si ou divize yon nonb antye relatif pa yon nonb antye relatif, 818 00:38:41,740 --> 00:38:44,347 ou pral get-- pa definisyon nan C-- yon nonb antye relatif. 819 00:38:44,347 --> 00:38:46,680 E li pa nan ale nan fè yon bagay bèl ak fasilman 820 00:38:46,680 --> 00:38:49,040 tankou wonn l 'moute nan a ki pi pre youn monte oswa desann. 821 00:38:49,040 --> 00:38:51,860 Li nan ale nan tronke tout bagay apre desimal a. 822 00:38:51,860 --> 00:38:54,030 >> Se konsa, jis intuitivement, sa a pwobableman yon ranje? 823 00:38:54,030 --> 00:38:55,351 Ki sa ki nan ranje a ki pi senp isit la? 824 00:38:55,351 --> 00:38:55,850 Yeah? 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 Egzakteman. 827 00:39:01,100 --> 00:39:04,200 Poukisa nou pa nou jis trete sa yo kòm valè pwen k ap flote efektivman 828 00:39:04,200 --> 00:39:05,860 vire tèt yo nan cha oswa double. 829 00:39:05,860 --> 00:39:10,500 Epi, koulye a si mwen fè fè flote-0, oswa si mwen konpile flote-1, 830 00:39:10,500 --> 00:39:12,570 ki se ki idantik ak sa ki te jis pwopoze a. 831 00:39:12,570 --> 00:39:16,400 Epi, koulye a mwen fè flote-0, koulye a, mwen jwenn 0.1 mwen. 832 00:39:16,400 --> 00:39:17,234 >> Koulye a, sa a se dwòl. 833 00:39:17,234 --> 00:39:19,441 Men koulye a, mwen pral fè yon bagay yon ti kras diferan. 834 00:39:19,441 --> 00:39:22,280 Mwen kirye yo wè sa ki nan vrèman ale sou anba kapo a, 835 00:39:22,280 --> 00:39:26,050 ak mwen pral ekri ak lèt ​​detache sa a soti nan 28 kote desimal. 836 00:39:26,050 --> 00:39:29,730 Mwen vle reyèlman wè 0.1000-- yon infinite-- 837 00:39:29,730 --> 00:39:32,710 [Fèbl] 27 zewo apre sa 0.1. 838 00:39:32,710 --> 00:39:34,740 >> Oke, kite a wè si sa a sa m 'tout bon jwenn. 839 00:39:34,740 --> 00:39:39,430 Fè flote-0 menm dosye. 840 00:39:39,430 --> 00:39:41,150 ./floats-0. 841 00:39:41,150 --> 00:39:44,380 Se pou nou rale nan sou repons lan dramatik. 842 00:39:44,380 --> 00:39:49,980 Tout tan sa a, ou ve yo te panse 1 divize pa 10 se 10%, oswa 0.1. 843 00:39:49,980 --> 00:39:50,810 Li pa. 844 00:39:50,810 --> 00:39:53,210 Omwen byen lwen tèlman kòm nan òdinatè a konsène. 845 00:39:53,210 --> 00:39:57,060 >> Koulye a, why-- OK, sa a, se konplè manti 1 divize pa 10 se 0.1. 846 00:39:57,060 --> 00:39:59,710 Men, why-- ki pa Takeaway a jodi a. 847 00:39:59,710 --> 00:40:04,010 Se konsa, poukisa òdinatè a panse, kontrèman ak tout moun nan nou nan chanm nan, 848 00:40:04,010 --> 00:40:06,870 ki 1 divize pa 10 se aktyèlman ke valè fou? 849 00:40:06,870 --> 00:40:10,620 Ki sa ki nan òdinatè a ap fè aparamman? 850 00:40:10,620 --> 00:40:12,490 Ki sa ki nan sa? 851 00:40:12,490 --> 00:40:13,785 >> Li pa nan debòde, se pou chak. 852 00:40:13,785 --> 00:40:15,910 Debòde se tipikman lè ou vlope toutotou yon valè. 853 00:40:15,910 --> 00:40:18,970 Li nan pwoblèm sa a nan enpresizyon nan yon valè pwen k ap flote 854 00:40:18,970 --> 00:40:22,220 ki kote ou gen 32 sèlman oswa petèt menm 64 ti jan. 855 00:40:22,220 --> 00:40:25,230 Men, si gen nan yon enfini Nimewo nan byen numéros 856 00:40:25,230 --> 00:40:27,940 nimewo ak pwen desimal ak nimewo thereafter-- siman 857 00:40:27,940 --> 00:40:29,380 ou pa ka reprezante tout nan yo. 858 00:40:29,380 --> 00:40:32,870 Se konsa, te òdinatè a bay nou matche ak la ki pi pre 859 00:40:32,870 --> 00:40:37,090 nan valè a li ka reprezante lè l sèvi avèk ki anpil Bits nan valè a mwen aktyèlman vle, 860 00:40:37,090 --> 00:40:38,690 ki se 0.1. 861 00:40:38,690 --> 00:40:40,685 >> Malerezman, si ou kòmanse fè matematik, oswa ou 862 00:40:40,685 --> 00:40:44,360 kòmanse ki enplike sa yo kalite k ap flote valè pwen nan programs-- enpòtan 863 00:40:44,360 --> 00:40:46,770 lojisyèl finansye, militè anyen software-- 864 00:40:46,770 --> 00:40:49,090 ki kote pèsepsyon se pwobableman trè enpòtan. 865 00:40:49,090 --> 00:40:51,520 Epi ou kòmanse ajoute nimewo tankou sa a, ak nan kòmansman 866 00:40:51,520 --> 00:40:54,050 kouri ke lojisyèl ak entrain reyèlman gwo 867 00:40:54,050 --> 00:40:56,890 oswa pou anpil nan èdtan oswa anpil nan jou oswa anpil nan ane sa yo, 868 00:40:56,890 --> 00:41:01,060 sa yo ti erè ti kras siman ka ajoute moute sou tan. 869 00:41:01,060 --> 00:41:04,252 >> Koulye a, kòm yon sou kote, si ou te janm wè devni selèb 3 oswa Biwo Espas 870 00:41:04,252 --> 00:41:05,960 epi ou ta ka sonje ki jan neg sa yo te vòlè 871 00:41:05,960 --> 00:41:08,668 yon anpil nan lajan ki sòti nan òdinatè yo lè l sèvi avèk valè pwen k ap flote 872 00:41:08,668 --> 00:41:11,290 epi ajoute moute ti kras nan rès, èspere ke ke fim 873 00:41:11,290 --> 00:41:12,390 kounye a fè sans pi plis. 874 00:41:12,390 --> 00:41:14,930 Sa a se sa yo te ou evoke nan ki fim. 875 00:41:14,930 --> 00:41:16,710 Lefèt ke pi fò konpayi yo pa ta gade 876 00:41:16,710 --> 00:41:18,600 apre yon kantite sèten nan kote desimal, 877 00:41:18,600 --> 00:41:20,009 men sa yo se fraksyon nan santim. 878 00:41:20,009 --> 00:41:22,550 Se konsa, ou kòmanse ajoute yo moute, ou kòmanse fè yon anpil lajan 879 00:41:22,550 --> 00:41:23,424 nan kont labank ou. 880 00:41:23,424 --> 00:41:25,160 Se konsa, se Biwo Espas eksplike. 881 00:41:25,160 --> 00:41:28,220 >> Koulye a, malerezman pi lwen pase Biwo Espas, gen 882 00:41:28,220 --> 00:41:31,794 yo se kèk legalman boulvèsan ak enpak siyifikatif 883 00:41:31,794 --> 00:41:33,710 nan sa yo kalite desizyon konsepsyon kache, 884 00:41:33,710 --> 00:41:35,990 ak tout bon youn nan rezon ki nou itilize C nan kou a 885 00:41:35,990 --> 00:41:39,640 se konsa ke ou reyèlman gen sa a tè moute konesans de kòman òdinatè travay, 886 00:41:39,640 --> 00:41:42,440 ki jan lojisyèl ap travay, epi pa fè sa pran anyen pou yo akòde. 887 00:41:42,440 --> 00:41:45,820 >> Ak tout bon malerezman, menm avèk ki konpreyansyon fondamantal, 888 00:41:45,820 --> 00:41:47,370 nou moun fè erè. 889 00:41:47,370 --> 00:41:51,310 Epi ki sa mwen te panse mwen ta pataje se videyo sa a uit minit isit la pran 890 00:41:51,310 --> 00:41:56,980 soti nan yon Episode mervey modèn, ki se yon montre edikasyonèl sou ki jan bagay sa yo travay 891 00:41:56,980 --> 00:42:00,370 ki pentire de foto nan lè yon itilizasyon move 892 00:42:00,370 --> 00:42:02,540 ak konpreyansyon yo genyen sou valè pwen k ap flote 893 00:42:02,540 --> 00:42:05,610 mennen nan kèk enpòtan rezilta malere. 894 00:42:05,610 --> 00:42:06,363 Se pou nou pran yon gade. 895 00:42:06,363 --> 00:42:07,029 [Lèktur VIDEO] 896 00:42:07,029 --> 00:42:11,290 -Nou Kounye a retounen nan "Jeni Dezas "sou mervey modèn. 897 00:42:11,290 --> 00:42:12,940 Odinatè. 898 00:42:12,940 --> 00:42:15,580 Nou te tout vini nan aksepte nan pwoblèm souvan fwistre ki 899 00:42:15,580 --> 00:42:20,960 te resevwa ak them-- pinèz, viris, ak lojisyèl glitches-- pou pri ti 900 00:42:20,960 --> 00:42:23,100 pou peye pou konvenyans la. 901 00:42:23,100 --> 00:42:27,770 Men, nan gwo teknoloji ak gwo vitès pwogram espas militè yo ak aplikasyon pou, 902 00:42:27,770 --> 00:42:32,780 pwoblèm nan pi piti kapab gen gwo pouvwa nan dezas. 903 00:42:32,780 --> 00:42:38,880 >> Sou, 4 jen 1996, syantis prepare yo lanse yon sans aryan 5 fize. 904 00:42:38,880 --> 00:42:41,190 Li te pote syantifik satelit ki fèt 905 00:42:41,190 --> 00:42:44,570 yo etabli jisteman la ki jan Reyaji jaden mayetik Latè a 906 00:42:44,570 --> 00:42:47,380 ak van solè. 907 00:42:47,380 --> 00:42:50,580 Te fize a bati pou Ajans la Espas Ewopeyen an, 908 00:42:50,580 --> 00:42:54,400 ak leve koupe soti nan etablisman li yo sou kòt la nan franse gwiyane. 909 00:42:54,400 --> 00:42:57,520 >> -at Sou 37 segonn nan vòl la, yo te premye 910 00:42:57,520 --> 00:42:59,070 remake yon bagay te ale mal. 911 00:42:59,070 --> 00:43:02,240 Sa ajutaj yo te tournan nan yon fason yo te reyèlman pa ta dwe. 912 00:43:02,240 --> 00:43:06,550 Anviwon 40 segonn nan vòl la, klèman veyikil la te nan tray, 913 00:43:06,550 --> 00:43:08,820 e ke sa a lè yo te fè desizyon an detwi l '. 914 00:43:08,820 --> 00:43:12,370 Ofisye a sekirite ranje, ak entesten fòmidab, bourade bouton an 915 00:43:12,370 --> 00:43:18,030 ak kònen moute fize a anvan li te kapab vin yon danje nan sekirite piblik. 916 00:43:18,030 --> 00:43:21,010 >> -Sa A te jenn fi a vwayaj nan aryan 5 an, 917 00:43:21,010 --> 00:43:23,920 ak destriksyon li yo te pran mete paske nan defo nan 918 00:43:23,920 --> 00:43:25,932 entegre nan lojisyèl fize la. 919 00:43:25,932 --> 00:43:27,640 Anpalan de pwoblèm ki nan la Aryan te ke gen 920 00:43:27,640 --> 00:43:30,500 te yon nimewo ki te mande pou 64 Bits yo eksprime, 921 00:43:30,500 --> 00:43:33,560 epi yo te vle konvèti li nan yon nimewo 16-ti jan. 922 00:43:33,560 --> 00:43:36,820 Yo sipoze ke nimewo a te janm ale nan dwe trè gwo. 923 00:43:36,820 --> 00:43:40,940 Ki pi fò nan tout sa yo chif nan nimewo a 64-ti jan yo te zewo. 924 00:43:40,940 --> 00:43:42,450 Yo te sa ki mal. 925 00:43:42,450 --> 00:43:45,000 >> Anpalan de enkapasite nan yon sèl pwogram lojisyèl yo aksepte 926 00:43:45,000 --> 00:43:49,460 kalite a nan nimewo ki te pwodwi pa yon lòt te nan rasin lan nan fayit la. 927 00:43:49,460 --> 00:43:54,260 Devlopman lojisyèl te vin tounen yon trè koute chè yon pati nan nouvo teknoloji. 928 00:43:54,260 --> 00:43:57,060 Fize a aryan 4 te gen gen anpil siksè. 929 00:43:57,060 --> 00:44:01,600 Se konsa, anpil nan lojisyèl an kreye pou li te tou yo itilize nan aryan a 5. 930 00:44:01,600 --> 00:44:04,790 >> Pwoblèm -La debaz te ke aryan a 5. 931 00:44:04,790 --> 00:44:11,200 Te faster-- akselere pi vit, ak lojisyèl an pa t 'matirite pou sa. 932 00:44:11,200 --> 00:44:14,910 >> Anpalan de destriksyon nan fize a te yon gwo dezas finansye. 933 00:44:14,910 --> 00:44:18,630 Tout akòz yon erè lojisyèl minit. 934 00:44:18,630 --> 00:44:21,160 Men, sa pa te premye a tan pwoblèm konvèsyon done 935 00:44:21,160 --> 00:44:24,770 te gwo malè tonbe sou teknoloji modèn fize. 936 00:44:24,770 --> 00:44:28,020 >> -Nan 1991 ak nan kòmansman an nan lagè nan premye Gòlf la, 937 00:44:28,020 --> 00:44:30,540 misil a Patriot ki gen eksperyans yon kalite ki sanble 938 00:44:30,540 --> 00:44:32,465 nan yon pwoblèm konvèsyon nimewo. 939 00:44:32,465 --> 00:44:36,760 E kòm yon rezilta 28 people-- 28 Soldiers-- Ameriken yo te touye yo, 940 00:44:36,760 --> 00:44:39,010 ak sou yon santèn lòt moun blese. 941 00:44:39,010 --> 00:44:42,830 Lè Patriot la, ki te sipoze nan pwoteje kont Scuds fèk ap rantre, 942 00:44:42,830 --> 00:44:45,780 echwe pou pou tire yon misil. 943 00:44:45,780 --> 00:44:51,610 >> -Lè Irak te anvayi Kowet, ak Amerik te lanse Tanpèt Dezè byen bonè nan mwa 1991, 944 00:44:51,610 --> 00:44:55,720 Patriot pil misil yo te deplwaye pwoteje Arabi Saoudit ak pèp Izrayèl la 945 00:44:55,720 --> 00:44:59,180 soti nan irakyen Scud misil atak. 946 00:44:59,180 --> 00:45:03,080 Patriot la se yon US medyòm-ranje sifas-a-lè sistèm 947 00:45:03,080 --> 00:45:06,530 manifaktire pa konpayi an Raytheon. 948 00:45:06,530 --> 00:45:09,500 >> Gwosè -La nan Patriot la entèrsèpsyon itself-- 949 00:45:09,500 --> 00:45:14,705 li a sou apeprè 20 pye nan longè, epi li peze sou 2,000 liv. 950 00:45:14,705 --> 00:45:19,090 Epi li pote yon tèt degè a sou, Mwen panse ke li nan apeprè 150 liv. 951 00:45:19,090 --> 00:45:23,880 Ak tèt degè a li menm se yon eksplozif segondè, ki 952 00:45:23,880 --> 00:45:26,700 gen fragman bò kote l '. 953 00:45:26,700 --> 00:45:31,630 Se konsa, bwat la nan tèt degè a se ki fèt yo aji tankou yon plon. 954 00:45:31,630 --> 00:45:34,040 >> Misil -La yo te pote kat pou chak veso, 955 00:45:34,040 --> 00:45:37,170 , epi yo transpòte pa yon trelè semi. 956 00:45:37,170 --> 00:45:44,880 >> Sistèm -La Patriot anti-misil ale tounen omwen 20 ane kounye a. 957 00:45:44,880 --> 00:45:48,380 Li te orijinèlman fèt kòm yon misil defans lè 958 00:45:48,380 --> 00:45:50,810 tire desann avyon lènmi. 959 00:45:50,810 --> 00:45:54,410 Nan premye Lagè Gòlf la lè lagè sa a te vin sou li a, 960 00:45:54,410 --> 00:45:59,650 Lame a te vle sèvi ak li nan tire desann Scuds, pa avyon. 961 00:45:59,650 --> 00:46:03,580 Irak Air Force la te pa konsa pou sa anpil nan yon pwoblèm, 962 00:46:03,580 --> 00:46:06,590 men Lame a te enkyete w sou Scuds. 963 00:46:06,590 --> 00:46:10,120 Se konsa, yo te eseye ajou Patriot la. 964 00:46:10,120 --> 00:46:12,740 >> -Intercepting Yon lènmi misil vwayaje nan Mach 5 965 00:46:12,740 --> 00:46:15,670 te ale yo dwe defi ase. 966 00:46:15,670 --> 00:46:18,440 Men, lè Patriot la te pwese kouri nan sèvis, 967 00:46:18,440 --> 00:46:22,580 Lame a pa t 'okouran de yon modifikasyon irakyen ki 968 00:46:22,580 --> 00:46:25,880 te fè yo Scuds prèske enposib nan li. 969 00:46:25,880 --> 00:46:30,690 >> -Ki Te pase se Scuds yo ki yo te vini nan te enstab. 970 00:46:30,690 --> 00:46:32,000 Yo te tranble. 971 00:46:32,000 --> 00:46:37,210 Rezon ki fè la pou sa a te Iraqis-- yo yo nan lòd jwenn 600 kilomèt soti 972 00:46:37,210 --> 00:46:41,680 nan yon 300-kilomèt seri missile-- pran pwa soti nan tèt degè a devan, 973 00:46:41,680 --> 00:46:43,340 yo e te fè tèt degè a pi lejè. 974 00:46:43,340 --> 00:46:48,490 Se konsa, kounye a nan Patriot ap eseye vin nan Scud a, ak pi fò nan time-- la 975 00:46:48,490 --> 00:46:52,880 majorite nan mal nan la time-- li ta jis vole pa Scud la. 976 00:46:52,880 --> 00:46:57,120 >> -Yon Fwa operatè yo sistèm Patriot reyalize Patriot la rate sib li yo, 977 00:46:57,120 --> 00:47:01,630 yo detounen tèt degè Patriot la pou fè pou evite aksidan posib si li 978 00:47:01,630 --> 00:47:04,440 te pèmèt li tonbe atè a. 979 00:47:04,440 --> 00:47:08,700 >> -Sa Se sa ki te pi fò moun te wè kòm fireballs gwo nan syèl la, 980 00:47:08,700 --> 00:47:14,180 ak konpwann kòm segman aks dèz nan Scud tèt de gè. 981 00:47:14,180 --> 00:47:18,020 >> Br-Malgre nan syèl la lannwit, Patriyòt parèt yo dwe avèk siksè detwi 982 00:47:18,020 --> 00:47:23,280 Scuds, nan Dhahran ta kapab gen okenn erè sou pèfòmans li yo. 983 00:47:23,280 --> 00:47:27,930 Gen sistèm rada Patriot la pèdi tras nan yon Scud fèk ap rantre 984 00:47:27,930 --> 00:47:30,260 epi pa janm te lanse akòz yon defo lojisyèl. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> Li te Izrayelyen yo ki moun ki premye dekouvri ki pi long sistèm lan nan te sou li a, 987 00:47:38,880 --> 00:47:41,130 pi gwo a Diferans la tan te vin. 988 00:47:41,130 --> 00:47:44,770 Akòz yon revèy embedded nan òdinatè sistèm nan. 989 00:47:44,770 --> 00:47:48,190 >> -About De semèn anvan trajedi a nan Dhahran, 990 00:47:48,190 --> 00:47:50,720 Izrayelyen yo rapòte bay Depatman Defans lan 991 00:47:50,720 --> 00:47:52,410 ke sistèm la te pèdi tan. 992 00:47:52,410 --> 00:47:54,410 Apre apeprè uit èdtan nan kouri, yo remake 993 00:47:54,410 --> 00:47:57,690 ke sistèm la a vin notables mwens egzat. 994 00:47:57,690 --> 00:48:01,850 Depatman Defans lan reponn pa di tout pil yo Patriot 995 00:48:01,850 --> 00:48:04,800 pa kite sistèm yo sou pou yon tan long. 996 00:48:04,800 --> 00:48:06,980 Yo pa janm di sa ki yon bon bout tan te. 997 00:48:06,980 --> 00:48:09,140 8 èdtan, 10 èdtan, yon mil èdtan. 998 00:48:09,140 --> 00:48:11,300 Okenn moun pa te konnen. 999 00:48:11,300 --> 00:48:13,320 >> Batri -La Patriot estasyone nan kazèn lan 1000 00:48:13,320 --> 00:48:18,310 nan Dhahran ak defekte entèn li yo te revèy te sou pou plis pase 100 èdtan 1001 00:48:18,310 --> 00:48:21,520 sou nwit la la nan 25 mwa fevriye a. 1002 00:48:21,520 --> 00:48:25,792 >> -Li Suivi tan nan yon presizyon a sou yon dizyèm nan yon dezyèm fwa. 1003 00:48:25,792 --> 00:48:27,950 Koulye a, yon dizyèm nan yon dezyèm se yon nimewo enteresan 1004 00:48:27,950 --> 00:48:31,850 paske li pa kapab eksprime nan binè egzakteman, ki 1005 00:48:31,850 --> 00:48:36,500 vle di li pa ka eksprime egzakteman nan nenpòt òdinatè modèn dijital. 1006 00:48:36,500 --> 00:48:41,070 Li difisil yo kwè, men itilize sa a kòm yon egzanp. 1007 00:48:41,070 --> 00:48:43,420 >> Se pou nou pran twazyèm lan nimewo yon sèl. 1008 00:48:43,420 --> 00:48:47,330 Yon tyè pa kapab eksprime an desimal egzakteman. 1009 00:48:47,330 --> 00:48:52,060 Yon tyè se 0,333 ale sou pou Infinity. 1010 00:48:52,060 --> 00:48:56,420 Genyen nan okenn fason yo fè sa ak presizyon absoli nan yon desimal. 1011 00:48:56,420 --> 00:48:59,530 Sa a se egzakteman ki kalite pwoblèm ki te rive nan Patriot la. 1012 00:48:59,530 --> 00:49:04,040 Sistèm nan nan pi long kouri, a vin pi mal erè nan tan te vin. 1013 00:49:04,040 --> 00:49:08,840 >> -Apre 100 èdtan de operasyon, an erè nan tan te sèlman apeprè yon tyè 1014 00:49:08,840 --> 00:49:10,440 nan yon dezyèm fwa. 1015 00:49:10,440 --> 00:49:14,150 Men, an tèm de vize yon misil vwayaje nan Mach 5, 1016 00:49:14,150 --> 00:49:18,560 li a nan yon Suivi erè nan plis pase 600 mèt. 1017 00:49:18,560 --> 00:49:21,870 Li ta yon erè fatal pou sòlda yo nan Dhahran. 1018 00:49:21,870 --> 00:49:28,455 >> -Ki Rive se yon lansman Scud te detekte avèk satelit avètisman bonè, 1019 00:49:28,455 --> 00:49:32,710 epi yo te konnen yon Scud te vini nan yon direksyon jeneral yo. 1020 00:49:32,710 --> 00:49:35,150 Yo pa t 'konnen ki kote li te vini yo. 1021 00:49:35,150 --> 00:49:38,210 Li te kounye a jiska rada a eleman ki nan sistèm lan Patriot 1022 00:49:38,210 --> 00:49:43,150 defann Dhahran jwenn epi kenbe tras nan misil nan lènmi fèk ap rantre. 1023 00:49:43,150 --> 00:49:44,561 >> Anpalan de rada te trè entelijan. 1024 00:49:44,561 --> 00:49:46,560 Li ta aktyèlman swiv pozisyon nan Scud a 1025 00:49:46,560 --> 00:49:48,930 ak Lè sa a predi ki kote li pwobableman ta dwe 1026 00:49:48,930 --> 00:49:51,380 tan an pwochen an rada voye yon batman kè deyò. 1027 00:49:51,380 --> 00:49:53,040 Ki te rele pòtay lavil la pòte. 1028 00:49:53,040 --> 00:49:57,620 >> -Lè Yon fwa Patriot la deside ase tan gen 1029 00:49:57,620 --> 00:50:02,400 te pase yo ale retounen lakay yo epi tcheke pwochen an kote pou sa a objè detekte 1030 00:50:02,400 --> 00:50:03,550 li ale tounen. 1031 00:50:03,550 --> 00:50:07,820 Se konsa, lè li te ale tounen nan sa ki mal la plas, li Lè sa a, wè pa gen okenn objè. 1032 00:50:07,820 --> 00:50:10,360 Epi li deside ke pa te gen okenn objè. 1033 00:50:10,360 --> 00:50:13,630 Ke te gen yon deteksyon fo epi li desann track la. 1034 00:50:13,630 --> 00:50:16,970 >> Anpalan de fèk ap rantre Scud disparèt soti nan ekran an rada, 1035 00:50:16,970 --> 00:50:20,200 ak segonn pita, li te kriye byen fò nan kazèn lan. 1036 00:50:20,200 --> 00:50:22,570 Scud a touye 28. 1037 00:50:22,570 --> 00:50:26,110 Li te youn nan dènye te tire pandan Lagè nan premye Gòlf la. 1038 00:50:26,110 --> 00:50:31,920 Trajik, lojisyèl an mete ajou te rive nan dimanch maten byen bonè nan jou sa a. 1039 00:50:31,920 --> 00:50:34,870 Defo nan lojisyèl te gen te fiks, fèmen 1040 00:50:34,870 --> 00:50:39,150 yon chapit nan boulvèse a istwa nan misil a Patriyòt. 1041 00:50:39,150 --> 00:50:40,030 >> [Lèktur videyo END] 1042 00:50:40,030 --> 00:50:41,488 >> DAVID J. Malan: Sa a li pou CS50. 1043 00:50:41,488 --> 00:50:42,820 Nou pral wè ou nan Mèkredi. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [Jwe mizik] 1046 00:50:50,370 --> 00:54:23,446