1 00:00:00,000 --> 00:00:10,920 >> [CHWARAE CERDDORIAETH] 2 00:00:10,920 --> 00:00:14,680 >> DAVID J Malan: pob hawl, croesawu yn ôl i CS50. 3 00:00:14,680 --> 00:00:16,500 Mae hyn yn dechrau'r wythnos dau. 4 00:00:16,500 --> 00:00:18,940 Gair gan un o'n ffrindiau ar y campws - 5 00:00:18,940 --> 00:00:22,620 os oes gennych ddiddordeb, o bosibl, naill ai yn awr neu yn rhai tymor y dyfodol 6 00:00:22,620 --> 00:00:25,670 hyd yn oed, unwaith yn fwy cyfforddus, addysgu myfyrwyr ysgol ganol ychydig 7 00:00:25,670 --> 00:00:27,680 rhywbeth am wyddoniaeth gyfrifiadurol, gwneud pen i'r URL. 8 00:00:27,680 --> 00:00:32,360 Maent mewn angen arbennig ar hyn o bryd o athrawon, yn enwedig os oes gennych 9 00:00:32,360 --> 00:00:34,700 wedi cael rhywfaint o amlygiad i wyddoniaeth gyfrifiadurol. 10 00:00:34,700 --> 00:00:38,060 >> Felly, dwyn i gof bod y tro diwethaf, cyflwynwyd rhai mathau o ddata yn C, ac 11 00:00:38,060 --> 00:00:40,590 efallai eich bod wedi dechrau cael eich dwylo budr gyda'r rhain hyd yn hyn 12 00:00:40,590 --> 00:00:41,940 yn broblem sefydlu un. 13 00:00:41,940 --> 00:00:43,230 Ac rydym wedi cael torgoch. 14 00:00:43,230 --> 00:00:49,100 Felly, mewn termau braidd yn dechnegol, yr hyn yn torgoch fel y gwyddoch ei fod heddiw? 15 00:00:49,100 --> 00:00:51,050 >> Felly mae'n gymeriad, ond gadewch i ni fod yn fwy manwl yn awr. 16 00:00:51,050 --> 00:00:53,735 Beth ydyn ni'n ei olygu wrth gymeriad neu unigolyn torgoch? 17 00:00:53,735 --> 00:00:56,700 18 00:00:56,700 --> 00:00:59,500 Mae cymeriad nad ydynt yn rhifiadol - 19 00:00:59,500 --> 00:01:00,670 felly nid o reidrwydd. 20 00:01:00,670 --> 00:01:04,580 Mae'n troi allan bod y niferoedd hyd yn oed, hyd yn oed atalnodi a llythyrau yn 21 00:01:04,580 --> 00:01:06,980 cynrychioli Hydred gyda'r data hwn teipio a elwir yn torgoch. 22 00:01:06,980 --> 00:01:09,440 Felly, nid yw o reidrwydd yn nhrefn yr wyddor. 23 00:01:09,440 --> 00:01:11,100 Yeah? 24 00:01:11,100 --> 00:01:12,275 >> Felly mae'n gymeriad ASCII. 25 00:01:12,275 --> 00:01:15,510 Felly, os ydych yn meddwl yn ôl i wythnos sero, pan cawsom ein beit o wirfoddolwyr 26 00:01:15,510 --> 00:01:19,150 dod i fyny a naill ai yn cynnal eu dwylo i fyny neu nid y cyfan, maent yn eu cynrychioli ddarnau. 27 00:01:19,150 --> 00:01:22,450 Ond gyda'i gilydd fel grŵp o wyth, roeddent yn cynrychioli beit. 28 00:01:22,450 --> 00:01:26,030 Ac rydym yn cyflwyno'r syniad o ASCII ar y ddarlith, sydd yn syml yn 29 00:01:26,030 --> 00:01:28,170 mapio rhwng rhifau a llythrennau. 30 00:01:28,170 --> 00:01:32,010 A defnydd ASCII, fel bodau dynol hynny ymhlyg darnau, wyth 31 00:01:32,010 --> 00:01:33,660 i gynrychioli cymeriad. 32 00:01:33,660 --> 00:01:36,890 >> Felly, yn unol â hynny, gall os wyth darnau pob un yn cymryd ar un o ddau werth - 33 00:01:36,890 --> 00:01:38,010 sero neu un - 34 00:01:38,010 --> 00:01:40,280 mae hynny'n golygu dau bosibilrwydd ar gyfer y person hwn - 35 00:01:40,280 --> 00:01:41,230 sero neu un - 36 00:01:41,230 --> 00:01:44,070 dau ar gyfer y person hwn, dau ar gyfer hyn person, dau ar gyfer yr un yma. 37 00:01:44,070 --> 00:01:47,450 Felly gyfanswm o ddwy waith ddwy waith dwy waith dwy waith dau - 38 00:01:47,450 --> 00:01:49,700 felly dau yr wythfed i gyd. 39 00:01:49,700 --> 00:01:54,320 Felly, mae cyfanswm nifer o gymeriadau 256 bosib eich bod yn gallu 40 00:01:54,320 --> 00:01:55,750 cynrychioli gydag wyth darnau. 41 00:01:55,750 --> 00:01:59,210 >> Yn awr, y rhai ohonoch sy'n siarad Asiaidd gallai ieithoedd yn gwybod bod yna fwy 42 00:01:59,210 --> 00:02:02,620 cymeriadau yn y byd na dim ond Fel a brecwast a C a D. 43 00:02:02,620 --> 00:02:06,130 Ac yn wir, nid ASCII yn ddigonol ar gyfer llawer o ieithoedd y byd. 44 00:02:06,130 --> 00:02:07,760 Ond mwy am hynny rywbryd eto. 45 00:02:07,760 --> 00:02:11,240 Am y tro, yn gwybod bod yn C os ydych am i gynrychioli llythyr, darn o 46 00:02:11,240 --> 00:02:15,780 atalnodi, neu dim ond rhywbeth gymeriad o ran eu natur, rydym yn defnyddio torgoch. 47 00:02:15,780 --> 00:02:18,240 Ac mae'n un beit neu wyth ddarnau. 48 00:02:18,240 --> 00:02:19,690 >> Beth am int? 49 00:02:19,690 --> 00:02:20,780 Wel, mae int yn gyfanrif. 50 00:02:20,780 --> 00:02:23,175 Faint o ddarnau, os cofiwch, Roedd yn gyfanrif fel arfer? 51 00:02:23,175 --> 00:02:25,930 52 00:02:25,930 --> 00:02:27,512 Dylai unrhyw un cofio? 53 00:02:27,512 --> 00:02:29,600 Felly mae'n nodweddiadol 32. 54 00:02:29,600 --> 00:02:32,120 Mae'n mewn gwirionedd yn dibynnu ar y cyfrifiadur eich bod yn defnyddio. 55 00:02:32,120 --> 00:02:35,770 Ond yn y peiriant, ac mewn llawer o cyfrifiaduron, mae'n 32 o ddarnau neu bedair 56 00:02:35,770 --> 00:02:37,140 bytes - wyth gwaith pedwar. 57 00:02:37,140 --> 00:02:39,790 Ac ints yn cael eu defnyddio yn unig ar gyfer storio rhifau, naill ai'n negyddol, 58 00:02:39,790 --> 00:02:41,610 gadarnhaol, neu sero. 59 00:02:41,610 --> 00:02:45,250 >> Ac os oes gennych chi 32 o ddarnau a dim ond gofal am rifau cadarnhaol, gall 60 00:02:45,250 --> 00:02:48,960 unrhyw un bras faint o bosibl cyfanrifau gall cyfrifiadur gynrychioli gan 61 00:02:48,960 --> 00:02:51,820 sero ar i fyny? 62 00:02:51,820 --> 00:02:56,130 Felly byddai'n dwy i 32, sy'n yn fras i bedwar biliwn o. 63 00:02:56,130 --> 00:02:59,720 Felly pwerau hyn o ddau yn mynd i fod themâu cylchol mewn gwyddoniaeth gyfrifiadurol. 64 00:02:59,720 --> 00:03:03,930 Fel y byddwn yn gweld, eu bod yn eithaf gyfleus i weithio gyda hyd yn oed os nad yw'n hollol 65 00:03:03,930 --> 00:03:05,790 hawdd i wneud y math o fewn eich pen. 66 00:03:05,790 --> 00:03:07,000 >> Felly, byddwn yn dweud yn fras i bedwar biliwn o. 67 00:03:07,000 --> 00:03:08,620 Yn awr, hir hir - 68 00:03:08,620 --> 00:03:09,770 gallwch math o dyfalu. 69 00:03:09,770 --> 00:03:10,480 Mae'n hirach na int. 70 00:03:10,480 --> 00:03:12,440 Faint o ddarnau? 71 00:03:12,440 --> 00:03:14,250 Felly, 64 ddarnau neu wyth bytes. 72 00:03:14,250 --> 00:03:17,480 Mae hyn yn unig yn golygu y gallwch gynrychioli hyd yn oed rhifau mwy, yn gadarnhaol fwy neu'n 73 00:03:17,480 --> 00:03:19,160 rhifau negyddol mwy. 74 00:03:19,160 --> 00:03:20,060 >> A beth am arnofio? 75 00:03:20,060 --> 00:03:22,260 Dyna pwynt arnawf gwerth o 32 ddarnau. 76 00:03:22,260 --> 00:03:25,180 Nifer real, mae hyn yn unig, rhywbeth gyda phwynt degol. 77 00:03:25,180 --> 00:03:30,100 Ond os ydych yn lle hynny bydd angen mwy o leoedd ar ôl y pwynt degol neu os ydych am 78 00:03:30,100 --> 00:03:33,720 cynrychioli nifer mwy gyda rhai ffracsiwn ôl iddo, gallwch ddefnyddio 79 00:03:33,720 --> 00:03:36,260 dwbl, sydd yn 64 ddarnau. 80 00:03:36,260 --> 00:03:38,240 >> Ond mae 'na diddorol cludfwyd yma. 81 00:03:38,240 --> 00:03:42,890 Felly, os ints yn cael eu cyfyngu gan 32 darnau a hyd yn oed longs hir yn cael eu cyfyngu gan 64 82 00:03:42,890 --> 00:03:46,180 darnau, y math yna o begs y cwestiwn, beth os ydych yn dymuno i gyfrif 83 00:03:46,180 --> 00:03:48,790 uwch na 4 biliwn ar gyfer yr int? 84 00:03:48,790 --> 00:03:50,330 Wel, 'ch jyst yn defnyddio hir hir. 85 00:03:50,330 --> 00:03:54,200 Ond beth os ydych am i gyfrif uwch na dau at y 64ain, yn rhoi neu gymryd? 86 00:03:54,200 --> 00:03:55,810 >> Yn awr, mae hynny'n nifer enfawr. 87 00:03:55,810 --> 00:03:59,250 Ond yn y pen draw, gallech mewn gwirionedd yn gofalu am y mathau hyn o werthoedd, 88 00:03:59,250 --> 00:04:03,070 yn enwedig os ydych yn defnyddio cronfa ddata ac yn dechrau casglu llawer a llawer 89 00:04:03,070 --> 00:04:06,190 a llawer o ddata a aseinio unigryw rhifau i bob darn o'r data. 90 00:04:06,190 --> 00:04:07,430 Felly, rydym yn fath o broblem. 91 00:04:07,430 --> 00:04:10,700 Ac yn yr un modd, gyda pwynt arnawf werthoedd - fflotiau neu dyblau - 92 00:04:10,700 --> 00:04:14,290 os ydych chi wedi cael dim ond nifer cyfyngedig o darnau, faint o gyfanswm niferoedd allech chi 93 00:04:14,290 --> 00:04:16,980 o bosibl gynrychioli? 94 00:04:16,980 --> 00:04:19,540 >> Wel, mae'n llai amlwg pan fyddwch yn cynnwys pwynt degol. 95 00:04:19,540 --> 00:04:20,899 Ond mae'n sicr yn gyfyngedig. 96 00:04:20,899 --> 00:04:24,390 Os oes gennych nifer cyfyngedig o ddarnau, nifer cyfyngedig o bobl, a cyfyngedig 97 00:04:24,390 --> 00:04:27,350 nifer y bylbiau golau, yn sicr y gallwch ond yn cynrychioli nifer gyfyngedig o 98 00:04:27,350 --> 00:04:28,510 fel y bo'r angen gwerthoedd pwynt. 99 00:04:28,510 --> 00:04:33,170 Ond faint o rifau real yw eu yn y byd? 100 00:04:33,170 --> 00:04:33,680 Mae 'an ddiddiwedd. 101 00:04:33,680 --> 00:04:37,280 Felly dyna fath o broblem oherwydd ein bod yn Nid oes rhaid i swm diddiwedd o 102 00:04:37,280 --> 00:04:39,970 cof neu RAM tu mewn ein cyfrifiaduron. 103 00:04:39,970 --> 00:04:41,780 Felly gall rhai pethau anodd yn digwydd. 104 00:04:41,780 --> 00:04:43,900 >> Felly, gadewch i ni fynd yn ei flaen ac yn ceisio i fynegi hyn yma. 105 00:04:43,900 --> 00:04:46,240 Gadewch i mi fynd yn ei flaen ac yn agor i fyny gedit. 106 00:04:46,240 --> 00:04:50,360 Rydw i'n mynd i fynd yn ei flaen ac arbed ffeil o'r enw "floats0.c" dim ond i fod yn 107 00:04:50,360 --> 00:04:54,630 gyson ag enghraifft sy'n gael ar-lein, os hoffech. 108 00:04:54,630 --> 00:04:58,080 Ac yr wyf i'n mynd i fynd yn ei flaen a ei ddiffinio fel a ganlyn - 109 00:04:58,080 --> 00:05:01,540 Rydw i'n mynd i fynd yn ei flaen a dweud, int prif ddi-rym, fel yr ydym yn aml yn gwneud. 110 00:05:01,540 --> 00:05:07,190 >> Ac yna yn y rhaglen hon, yr wyf i'n mynd i ddatgan fy hun yn arnofio, felly mae 32-bit 111 00:05:07,190 --> 00:05:09,700 Gelwir amrywiol f, fympwyol. 112 00:05:09,700 --> 00:05:13,910 Ac yna yr wyf i'n mynd i storio ynddo Nid wyf yn gwybod, un rhan o ddeg, felly 0.1. 113 00:05:13,910 --> 00:05:16,590 Felly, yr wyf i'n mynd i fynegi hynny fel un wedi'i rannu â 10, sy'n gwbl 114 00:05:16,590 --> 00:05:17,790 gyfreithlon yn C. 115 00:05:17,790 --> 00:05:20,460 >> Ac yna ar yr ail linell, yr wyf yn syml eisiau argraffu gwerth hwnnw. 116 00:05:20,460 --> 00:05:22,950 Felly, yn dwyn i gof y gallwn eu defnyddio cyfarwydd printf. 117 00:05:22,950 --> 00:05:25,420 Nid ydym am i ddefnyddio% i ar gyfer int. 118 00:05:25,420 --> 00:05:28,360 Rydym eisiau defnyddio% f ar gyfer fflôt. 119 00:05:28,360 --> 00:05:33,080 Ac yna yr wyf i'n mynd i wneud slaes n, dyfyniad agos, coma, f, hanner colon. 120 00:05:33,080 --> 00:05:34,400 >> Felly dyma fy rhaglen. 121 00:05:34,400 --> 00:05:35,820 Mae eisoes yn un bug. 122 00:05:35,820 --> 00:05:38,640 A yw rhywun y mae hyn glicio eisoes yn awyddus i bwynt o leiaf 123 00:05:38,640 --> 00:05:40,220 un bug Rydw i wedi gwneud? 124 00:05:40,220 --> 00:05:42,470 Yeah? 125 00:05:42,470 --> 00:05:42,800 Yeah. 126 00:05:42,800 --> 00:05:47,860 Anghofiais i "# cynnwys" yn y uchaf, maent yn symptom o'r rhain os byddaf yn ceisio 127 00:05:47,860 --> 00:05:50,490 lunio hyn yn mynd i fod bod y compiler yn mynd i gweiddi arna i, 128 00:05:50,490 --> 00:05:52,770 dweud symbol undefined neu rhywbeth i'r perwyl hwnnw. 129 00:05:52,770 --> 00:05:55,360 Nid yw'n deall rhywbeth hoffi printf. 130 00:05:55,360 --> 00:05:59,380 >> Felly, yr wyf i'n mynd i wneud "# gynnwys ", Arbed y ffeil. 131 00:05:59,380 --> 00:06:00,400 Ac yn awr ei fod mewn cyflwr gwell. 132 00:06:00,400 --> 00:06:02,690 Ond rwyf hefyd yn mynd i dynnu allan un manylion newydd heddiw. 133 00:06:02,690 --> 00:06:08,620 Yn ogystal â nodi lle ddeiliaid fel%% f i% s, gallwch 134 00:06:08,620 --> 00:06:12,320 weithiau ddylanwadu ar ymddygiad o'r dalfan. 135 00:06:12,320 --> 00:06:15,540 Er enghraifft, yn yr achos fel y bo'r angen gwerth pwynt, os mai dim ond am 136 00:06:15,540 --> 00:06:22,200 i arddangos un lle degol ôl y cyfnod, gallaf ei wneud mewn gwirionedd 0.1f. 137 00:06:22,200 --> 00:06:26,830 Felly, mewn geiriau eraill, yr wyf yn gwahanu'r f a yr arwydd y cant gyda 0.1, dim ond 138 00:06:26,830 --> 00:06:30,200 dweud printf, efallai y bydd gennych cyfan criw o rifau ar ôl y degol 139 00:06:30,200 --> 00:06:30,930 pwynt i mi. 140 00:06:30,930 --> 00:06:32,870 Ond dim ond am weld un ohonynt. 141 00:06:32,870 --> 00:06:36,280 >> Felly, yr wyf i'n mynd i fynd yn ei flaen yn awr ac arbed rhaglen hon, yn mynd i mewn i fy terfynell 142 00:06:36,280 --> 00:06:41,870 ffenestr, ac yr wyf i'n mynd i fynd yn ei flaen a math yn gwneud arnofio 0, mynd i mewn. 143 00:06:41,870 --> 00:06:44,930 Gwelaf fod llinell braidd yn cryptig bod yn dechrau gwneud mwy o synnwyr wrth i ni 144 00:06:44,930 --> 00:06:46,900 tynnu coes ar wahân yr wythnos hon a'r flwyddyn nesaf. 145 00:06:46,900 --> 00:06:50,480 Nawr rydw i'n mynd i fynd yn ei flaen a rhedeg sero arnofio. 146 00:06:50,480 --> 00:06:52,020 Ac, damn. 147 00:06:52,020 --> 00:06:54,880 >> Felly mae nam arall yma am ryw reswm. 148 00:06:54,880 --> 00:07:02,490 Rwy'n eithaf siwr bod un rhan o ddeg, neu un wedi'i rannu gan 10, nid yw 0.0. 149 00:07:02,490 --> 00:07:04,590 Efallai wyf nid yn unig i'n edrych yn ddigon digid. 150 00:07:04,590 --> 00:07:08,580 Felly pam nad ydw i'n ddweud dau .2 i weld dau lle degol hytrach na dim ond un. 151 00:07:08,580 --> 00:07:11,810 Gadewch i mi fynd yn ôl at fy ffenestr terfynell yma ac yn taro i fyny ychydig o weithiau i 152 00:07:11,810 --> 00:07:12,840 gweld fy hanes. 153 00:07:12,840 --> 00:07:15,910 Peidiwch gwneud arnofio sero unwaith eto, ac yna i fyny eto. 154 00:07:15,910 --> 00:07:17,730 Ac yn awr fynd i mewn. 155 00:07:17,730 --> 00:07:20,000 >> Ac yn awr rwy'n eithaf siŵr bod hyn yn anghywir. 156 00:07:20,000 --> 00:07:23,030 A gallwn wneud tri a phedwar, ac rwy'n na thebyg yn mynd i gadw weld sero. 157 00:07:23,030 --> 00:07:24,880 Felly, ble mae'r bug? 158 00:07:24,880 --> 00:07:27,910 Dylai un wedi'i rannu gan 10 yn 0.1. 159 00:07:27,910 --> 00:07:30,310 Rhywun am gymryd drywanu ar yr hyn y mater sylfaenol yw? 160 00:07:30,310 --> 00:07:32,400 Yeah? 161 00:07:32,400 --> 00:07:33,420 Maent yn ddau cyfanrifau. 162 00:07:33,420 --> 00:07:33,920 Felly beth? 163 00:07:33,920 --> 00:07:37,820 Felly, gydag un wedi'i rannu â 10, sy'n hyn yr wyf yn ei wneud mewn rhifyddeg. 164 00:07:37,820 --> 00:07:41,185 Ac yr wyf yn cael 0.1. 165 00:07:41,185 --> 00:07:41,660 >> Yeah. 166 00:07:41,660 --> 00:07:43,240 Ac felly mae'n wir y mater hwnnw. 167 00:07:43,240 --> 00:07:46,700 Pan fyddwch yn cymryd yn gyfanrif mewn cyfrifiadur ac rydych yn ei rannu gan cyfanrif arall, 168 00:07:46,700 --> 00:07:50,430 y cyfrifiadur yn ddiofyn yn mynd i cymryd yn ganiataol eich bod eisiau cyfanrif. 169 00:07:50,430 --> 00:07:54,620 Y broblem er, wrth gwrs, yw nad yw 0.1 yn gyfanrif. 170 00:07:54,620 --> 00:07:55,680 Mae'n nifer go iawn. 171 00:07:55,680 --> 00:07:59,610 Ac felly yr hyn y mae'r cyfrifiadur yn ei wneud gan ddiofyn ai dim ond taflu i ffwrdd 172 00:07:59,610 --> 00:08:01,070 popeth ar ôl y pwynt degol. 173 00:08:01,070 --> 00:08:03,380 Nid yw'n dalgrynnu i lawr neu i fyny fel y cyfryw. 174 00:08:03,380 --> 00:08:06,480 'I jyst yn taflu popeth ar ôl y pwynt degol. 175 00:08:06,480 --> 00:08:07,430 Ac yn awr sy'n gwneud synnwyr. 176 00:08:07,430 --> 00:08:09,740 Oherwydd erbyn hyn rydym yn glir gadael gyda sero. 177 00:08:09,740 --> 00:08:10,250 >> Ond arhoswch funud. 178 00:08:10,250 --> 00:08:11,840 Dydw i ddim yn gweld sero int. 179 00:08:11,840 --> 00:08:14,910 Im 'mewn gwirionedd yn gweld 0.00. 180 00:08:14,910 --> 00:08:16,340 Felly, sut ydw i'n cysoni hyn nawr? 181 00:08:16,340 --> 00:08:22,850 Os yw un wedi'i rannu gan 10 yn sero, ond rwy'n gweld 0.00, ble mae'n cael 182 00:08:22,850 --> 00:08:24,250 newid yn ol i nifer go iawn? 183 00:08:24,250 --> 00:08:25,500 Yeah. 184 00:08:25,500 --> 00:08:29,850 185 00:08:29,850 --> 00:08:30,630 Yn union. 186 00:08:30,630 --> 00:08:35,600 >> Felly hyd yma yn unol pump, pan mewn gwirionedd storio'r 0.1, sydd wedyn yn 187 00:08:35,600 --> 00:08:39,549 cwtogi i sero, tu mewn float, sy'n cyfateb yn effeithiol i 188 00:08:39,549 --> 00:08:42,100 Nid yw storio fel int, ond, yn wir, fel fflôt. 189 00:08:42,100 --> 00:08:46,540 Ar ben hynny, rwy'n yna defnyddio printf i argraffu benodol y rhif hwnnw i ddau 190 00:08:46,540 --> 00:08:49,740 lle degol, hyd yn oed er bod Efallai na mewn gwirionedd fod yn unrhyw. 191 00:08:49,740 --> 00:08:51,020 >> Felly, y math hwn o sucks, dde? 192 00:08:51,020 --> 00:08:53,640 Mae'n debyg nad ydych yn gallu gwneud mathemateg, o leiaf ar y lefel hon o 193 00:08:53,640 --> 00:08:55,600 gywirdeb, mewn cyfrifiadur. 194 00:08:55,600 --> 00:08:56,930 Ond yn sicr mae yna ateb. 195 00:08:56,930 --> 00:09:00,410 Beth yw'r ateb symlaf gallem efallai ei wneud, hyd yn oed yn reddfol yma i 196 00:09:00,410 --> 00:09:01,130 ddatrys hyn? 197 00:09:01,130 --> 00:09:02,380 Yeah? 198 00:09:02,380 --> 00:09:04,700 199 00:09:04,700 --> 00:09:06,574 Trowch y cyfanrifau i mewn - 200 00:09:06,574 --> 00:09:06,976 yeah. 201 00:09:06,976 --> 00:09:10,420 Hyd yn oed os nad wyf yn hollol sicr beth digwydd mewn gwirionedd yma, os yw'n 202 00:09:10,420 --> 00:09:13,440 sylfaenol wedi ei wneud gyda hyn yn ints, wel, pam nad ydw i'n 203 00:09:13,440 --> 00:09:18,230 gwneud y 10.0, yn gwneud hyn yn 1.0, resave y ffeil. 204 00:09:18,230 --> 00:09:20,990 Gadewch i mi fynd yn ôl i lawr i'r gwaelod ac ail-grynhoi. 205 00:09:20,990 --> 00:09:23,030 Gadewch i mi yn awr ailgynnal. 206 00:09:23,030 --> 00:09:23,420 Ac yno - 207 00:09:23,420 --> 00:09:27,690 nawr, mae gen i fy un rhan o ddeg cynrychioli Hydred fel 0.10. 208 00:09:27,690 --> 00:09:28,420 >> Mae pob hawl. 209 00:09:28,420 --> 00:09:29,220 Felly, nid yw hynny'n ddrwg. 210 00:09:29,220 --> 00:09:31,730 A gadewch i mi nodi un ffordd arall gallem fod wedi datrys hyn. 211 00:09:31,730 --> 00:09:35,580 Gadewch i mi mewn gwirionedd yn rholio yn ôl mewn amser i pan gawsom hyn fel un 212 00:09:35,580 --> 00:09:36,680 degfed funud yn ôl. 213 00:09:36,680 --> 00:09:40,800 A gadewch i mi fynd yn ei flaen ac yn resave y ffeil fel enw ffeil gwahanol, dim ond i 214 00:09:40,800 --> 00:09:41,750 gael ychydig o checkpoint. 215 00:09:41,750 --> 00:09:43,450 Felly dyna oedd yn fersiwn un. 216 00:09:43,450 --> 00:09:45,520 Ac yn awr gadewch i mi fynd yn ei flaen a wneud un fersiwn mwy. 217 00:09:45,520 --> 00:09:48,540 Byddwn yn galw hyn yn fersiwn dwy sero mynegeio. 218 00:09:48,540 --> 00:09:51,280 >> Ac yr wyf i'n mynd i wneud yn lle hynny hyn - eich bod yn gwybod beth? 219 00:09:51,280 --> 00:09:54,400 Ychwanegu dot sero gweithio yn yr achos hwn. 220 00:09:54,400 --> 00:09:56,060 Ond mae'n debyg un oedd amrywiol. 221 00:09:56,060 --> 00:09:57,680 Fod 10 oedd amrywiol. 222 00:09:57,680 --> 00:10:00,680 Mewn geiriau eraill, mae'n debyg na allai i dim ond galed-god .0 ar ddiwedd y 223 00:10:00,680 --> 00:10:02,340 y mynegiant rhifyddeg. 224 00:10:02,340 --> 00:10:05,820 Wel, gallaf mewn gwirionedd wneud rhywbeth mewn cromfachau o'r enw castio. 225 00:10:05,820 --> 00:10:11,920 Gallaf fwrw y cyfanrif 10 i arnofio, a gallaf bwrw bod un cyfanrif i 226 00:10:11,920 --> 00:10:12,800 arnofio, yn ogystal. 227 00:10:12,800 --> 00:10:17,190 Yna y math sy'n mynd i gael ei wneud yn 1.0 yn effeithiol wedi'i rannu gan 10.0, 228 00:10:17,190 --> 00:10:19,250 y canlyniad sy'n mynd yn f fel o'r blaen. 229 00:10:19,250 --> 00:10:26,130 Felly os wyf yn ail-grynhoi hyn fel gwneud fflotiau 2, ac yn awr arnofio 2, yr wyf yn cael yr un 230 00:10:26,130 --> 00:10:27,020 ateb, yn ogystal. 231 00:10:27,020 --> 00:10:29,640 >> Felly, mae hyn yn enghraifft eithaf contrived, i ddatrys y broblem 232 00:10:29,640 --> 00:10:31,400 drwy gyflwyno castio. 233 00:10:31,400 --> 00:10:34,410 Ond yn gyffredinol, castio yn mynd i fod yn beth pwerus, yn enwedig ar gyfer 234 00:10:34,410 --> 00:10:38,180 problem a dau ymhen wythnos, pan fydd ydych am i drosi un math data i 235 00:10:38,180 --> 00:10:41,800 arall, ar ddiwedd y dydd yn cael eu cynrychioli yn yr un modd. 236 00:10:41,800 --> 00:10:44,970 Ar ddiwedd y dydd, pob un beth rydym wedi trafod hyd yn hyn yn 237 00:10:44,970 --> 00:10:46,710 dim ond ints o dan y cwfl. 238 00:10:46,710 --> 00:10:48,950 Neu os yw hynny'n rhy lefel-isel ar gyfer chi, maen nhw jyst rhifau 239 00:10:48,950 --> 00:10:49,750 o dan y cwfl. 240 00:10:49,750 --> 00:10:52,850 Hyd yn oed cymeriadau, unwaith eto, yn cofio o wythnos sero, niferoedd 241 00:10:52,850 --> 00:10:53,990 o dan y cwfl. 242 00:10:53,990 --> 00:10:57,240 >> Pa un yw dweud, gallwn newid rhwng gwahanol fathau o rifau os 243 00:10:57,240 --> 00:10:58,060 maen nhw jyst darnau. 244 00:10:58,060 --> 00:11:01,020 Gallwn newid rhwng rhifau a llythyrau os ydynt yn unig 245 00:11:01,020 --> 00:11:02,580 darnau, ac i'r gwrthwyneb. 246 00:11:02,580 --> 00:11:07,170 A bwrw yn y modd hwn yn ddull mewn rhaglenni sy'n eich galluogi i rymus 247 00:11:07,170 --> 00:11:10,970 newid un fath ddata i un arall. 248 00:11:10,970 --> 00:11:14,570 Yn anffodus, nid fel hyn yn syml ag y byddwn wedi hoffi. 249 00:11:14,570 --> 00:11:19,220 >> Rydw i'n mynd i fynd yn ôl i mewn i fflotiau 1, sef y symlach, yn fwy 250 00:11:19,220 --> 00:11:22,830 un syml gyda Ychwanegodd .0 ar i bob un. 251 00:11:22,830 --> 00:11:25,260 Ac yn union fel gloywi cyflym, gadewch i mi fynd yn ei flaen ac yn ail-grynhoi 252 00:11:25,260 --> 00:11:27,670 hyn, yn gwneud fflotiau 2 - 253 00:11:27,670 --> 00:11:30,300 ddrwg gennym, mae hyn yn gwneud fflotiau 1. 254 00:11:30,300 --> 00:11:32,050 Ac yn awr gadewch i ni redeg fflotiau 1. 255 00:11:32,050 --> 00:11:34,810 Ac yn y gwaelod, sylwch fy mod yn wir yn cael 0.1. 256 00:11:34,810 --> 00:11:36,165 Felly, problem ei datrys. 257 00:11:36,165 --> 00:11:37,280 >> Ond nid yw eto. 258 00:11:37,280 --> 00:11:40,000 Rwyf nawr yn mynd i gael ychydig yn rhyfedd, ac yr wyf i'n mynd i fynd yn ôl i mewn i fy 259 00:11:40,000 --> 00:11:41,620 datganiad ac printf ddweud, eich bod yn gwybod beth? 260 00:11:41,620 --> 00:11:44,090 Hoffwn i gadarnhau bod hyn yn wir yn un rhan o ddeg. 261 00:11:44,090 --> 00:11:47,890 Ac yr wyf i'n mynd i eisiau gweld hyn i, dyweder, bum lle degol. 262 00:11:47,890 --> 00:11:48,570 Dyw hi ddim yn broblem. 263 00:11:48,570 --> 00:11:52,020 Byddaf yn newid y ddau i bump, I ail-grynhoi â gwneud. 264 00:11:52,020 --> 00:11:53,770 I ailgynnal fel arnofio 1. 265 00:11:53,770 --> 00:11:54,990 Edrych 'n bert da. 266 00:11:54,990 --> 00:11:58,570 Gallai fy gwiriadau bwyll ben yno, ond Im 'yn cael ychydig yn fwy anturus. 267 00:11:58,570 --> 00:12:00,330 Rydw i'n mynd i newid 0.5-0.10. 268 00:12:00,330 --> 00:12:03,440 Yr wyf am weld 10 digid ar ôl y lle degol. 269 00:12:03,440 --> 00:12:09,060 >> Ac yr wyf i'n mynd i fynd yn ei flaen ac yn ail-grynhoi hwn ac ailgynnal arnofio 1. 270 00:12:09,060 --> 00:12:13,060 Yr wyf yn fath o ofid wedi profi hyn ymhellach oherwydd nad yw fy mathemateg yn hynny 271 00:12:13,060 --> 00:12:14,320 gywiro bellach, mae'n ymddangos. 272 00:12:14,320 --> 00:12:15,630 Ond arhoswch funud, efallai mai dim ond hap a damwain. 273 00:12:15,630 --> 00:12:17,810 Efallai y cyfrifiadur yn gweithredu ychydig yn rhyfedd. 274 00:12:17,810 --> 00:12:21,810 Gadewch i mi fynd yn ei flaen ac yn gwneud 20 pwynt degol a thawelu meddwl fy hun fy mod yn gwybod 275 00:12:21,810 --> 00:12:22,540 sut i wneud mathemateg. 276 00:12:22,540 --> 00:12:23,460 Rwy'n gwybod sut i raglennu. 277 00:12:23,460 --> 00:12:26,960 Gwneud fflotiau 1, ail-grynhoi, a damn iddo. 278 00:12:26,960 --> 00:12:31,110 Mae hynny'n wir, wir yn mynd bell oddi wrth y marc. 279 00:12:31,110 --> 00:12:32,490 >> Felly beth sy'n mynd ymlaen fan hyn? 280 00:12:32,490 --> 00:12:36,050 Reddfol, yn seiliedig ar ein tybiaethau gynharach am faint o fathau data, 281 00:12:36,050 --> 00:12:38,040 hyn y mae'n rhaid fod yn digwydd yma o dan y cwfl? 282 00:12:38,040 --> 00:12:39,290 Yeah? 283 00:12:39,290 --> 00:12:43,000 284 00:12:43,000 --> 00:12:43,590 Yn union. 285 00:12:43,590 --> 00:12:46,480 Os ydych eisiau cymaint â hyn manwl gywirdeb, a mae hynny'n andros o lot o gywirdeb - 286 00:12:46,480 --> 00:12:48,770 20 rhifau ar ôl y pwynt degol. 287 00:12:48,770 --> 00:12:51,990 Nid oes modd ichi cynrychioli nifer mympwyol oni bai eich bod yn cael 288 00:12:51,990 --> 00:12:52,930 nifer mympwyol o ddarnau. 289 00:12:52,930 --> 00:12:54,190 Ond nid ydym yn ei wneud. 290 00:12:54,190 --> 00:12:57,200 Am arnofio, rydym dim ond 32 o ddarnau. 291 00:12:57,200 --> 00:13:02,260 >> Felly, os gall 32 darnau yn unig yn cael ei permuted mewn ffordd - yn union fel ein pobl ar y, llwyfan 292 00:13:02,260 --> 00:13:05,780 dwylo i fyny neu i lawr - mewn nifer cyfyngedig o ffyrdd, dim ond nifer cyfyngedig yn unig 293 00:13:05,780 --> 00:13:08,640 o rifau real y gall ydych yn ei gynrychioli gyda darnau hynny. 294 00:13:08,640 --> 00:13:10,500 Ac felly y cyfrifiadur yn y pen draw yn mynd i gael i 295 00:13:10,500 --> 00:13:11,730 dechrau torri corneli. 296 00:13:11,730 --> 00:13:15,500 Gall y cyfrifiadur guddio manylion hynny gennym ni am ychydig o amser. 297 00:13:15,500 --> 00:13:18,880 Ond os ydym yn dechrau procio ar y niferoedd ac edrych ymhellach ac ymhellach yn y 298 00:13:18,880 --> 00:13:23,220 llusgo rhifau yn rhif cyfan, yna rydym yn dechrau gweld ei fod yn 299 00:13:23,220 --> 00:13:26,480 mewn gwirionedd yn brasamcanu y syniad o un rhan o ddeg. 300 00:13:26,480 --> 00:13:29,860 >> Ac felly mae'n troi allan, yn drasig, mae nifer anfeidrol o rifau 301 00:13:29,860 --> 00:13:35,060 ni allwn gynrychioli union mewn cyfrifiadur, o leiaf gyda cyfyngedig 302 00:13:35,060 --> 00:13:38,030 nifer o ddarnau, a cyfyngedig faint o RAM. 303 00:13:38,030 --> 00:13:41,210 Yn awr yn anffodus, mae hyn weithiau'n Mae canlyniadau yn y byd go iawn. 304 00:13:41,210 --> 00:13:45,980 Os nad yw pobl yn eithaf gwerthfawrogi hyn neu fath o gymryd yn ganiataol y ffaith 305 00:13:45,980 --> 00:13:48,310 y bydd eu cyfrifiadur dim ond gwneud yr hyn y maent yn dweud iddo wneud ac nid ydynt yn 306 00:13:48,310 --> 00:13:51,430 deall y rhain sylfaenol Manylion cynrychiolaeth - 307 00:13:51,430 --> 00:13:55,290 sydd, a dweud y gwir, mewn rhai ieithoedd yn cuddio oddi wrth y defnyddiwr, yn wahanol i C - 308 00:13:55,290 --> 00:13:56,500 gall rhai pethau drwg yn digwydd. 309 00:13:56,500 --> 00:13:58,650 >> A hyn yr wyf yn meddwl y byddem yn ei wneud yn cymryd cam yn ôl. 310 00:13:58,650 --> 00:14:00,420 Ac mae hyn yn ymwneud yn fideo wyth munud. 311 00:14:00,420 --> 00:14:04,200 Mae'n darlledu ychydig flynyddoedd yn ôl, ac mae'n rhoi cipolwg mewn gwirionedd beth all fynd 312 00:14:04,200 --> 00:14:09,290 o'i le pan fyddwch o dan-gwerthfawrogi hyn math o fanylion yn yr union gyd-rhy 313 00:14:09,290 --> 00:14:10,080 byd go iawn. 314 00:14:10,080 --> 00:14:12,965 Os gallem dim y goleuadau am ychydig funudau. 315 00:14:12,965 --> 00:14:14,360 >> SIARADWR 1: Rydym yn awr yn dychwelyd i beirianneg 316 00:14:14,360 --> 00:14:17,160 trychinebau ar Marvels Modern. 317 00:14:17,160 --> 00:14:18,680 >> Cyfrifiaduron - 318 00:14:18,680 --> 00:14:21,340 yr ydym i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig 319 00:14:21,340 --> 00:14:23,170 sy'n mynd gyda nhw. 320 00:14:23,170 --> 00:14:27,570 Pryfed, firysau, a glitches meddalwedd yw prisiau bach i dalu am y 321 00:14:27,570 --> 00:14:28,960 hwylustod. 322 00:14:28,960 --> 00:14:32,040 Ond yn uwch-dechnoleg ac uchel-cyflymder milwrol a rhaglen gofod 323 00:14:32,040 --> 00:14:38,650 ceisiadau, y broblem lleiaf y gellir ei chwyddo i mewn i drychineb. 324 00:14:38,650 --> 00:14:44,480 >> Ar 4 Mehefin, 1996, gwyddonwyr yn barod i lansio di-griw Ariane 5 roced. 325 00:14:44,480 --> 00:14:48,700 Roedd yn cario lloerennau gwyddonol cynllunio i sefydlu sut yn union 326 00:14:48,700 --> 00:14:53,250 maes magnetig y Ddaear yn rhyngweithio gyda gwyntoedd solar. 327 00:14:53,250 --> 00:14:57,540 Roedd y roced ei adeiladu ar gyfer y Ewropeaidd Asiantaeth Gofod a codi oddi wrth ei 328 00:14:57,540 --> 00:14:59,906 gyfleuster ar yr arfordir o Giana Ffrengig. 329 00:14:59,906 --> 00:15:03,660 >> JACK GANSSLE: Tua 37 eiliad i mewn i y daith, maent yn sylwi gyntaf 330 00:15:03,660 --> 00:15:04,910 rhywbeth yn mynd o'i le. 331 00:15:04,910 --> 00:15:08,130 Mae'r nozzles yn swiveling yn ffordd y maent ddim wir dylent. 332 00:15:08,130 --> 00:15:12,380 Mae tua 40 eiliad i mewn i'r hedfan, glir y cerbyd oedd mewn trafferth. 333 00:15:12,380 --> 00:15:14,400 A dyna pan fyddant yn gwneud penderfyniad i ddinistrio. 334 00:15:14,400 --> 00:15:18,520 Mae'r swyddog diogelwch amrediad, gyda perfedd aruthrol, pwyso ar y botwm, 335 00:15:18,520 --> 00:15:23,900 chwythu i fyny y roced cyn y gallai fod yn beryglus i ddiogelwch y cyhoedd. 336 00:15:23,900 --> 00:15:27,810 >> SIARADWR 1: Dyma oedd y fordaith gyntaf y Ariane 5, ac mae ei dinistrio 337 00:15:27,810 --> 00:15:32,020 ddigwyddodd oherwydd nam ymgorffori mewn meddalwedd y roced. 338 00:15:32,020 --> 00:15:33,980 >> JACK GANSSLE: Y broblem ar y Ariane oedd bod nifer 339 00:15:33,980 --> 00:15:36,390 oedd angen 64 darnau i fynegi. 340 00:15:36,390 --> 00:15:39,420 Ac roedden nhw am i drosi i rhif 16-bit. 341 00:15:39,420 --> 00:15:43,130 Maent yn cymryd yn ganiataol bod y nifer oedd byth yn yn mynd i fod yn fawr iawn, bod y rhan fwyaf o 342 00:15:43,130 --> 00:15:46,810 digid rhai yn y 64-bit nifer yn sero. 343 00:15:46,810 --> 00:15:48,270 Eu bod yn anghywir. 344 00:15:48,270 --> 00:15:51,380 >> SIARADWR 1: Mae anallu un meddalwedd rhaglen i dderbyn y math o 345 00:15:51,380 --> 00:15:55,350 nifer a gynhyrchir gan un arall oedd wrth wraidd y methiant. 346 00:15:55,350 --> 00:15:59,970 Datblygu meddalwedd wedi dod yn iawn rhan gostus o dechnoleg newydd. 347 00:15:59,970 --> 00:16:03,980 Mae'r Ariane 4 roced wedi bod yn iawn llwyddiannus, mae cymaint o'r meddalwedd 348 00:16:03,980 --> 00:16:07,480 creu ar gyfer yr oedd hefyd yn defnyddio yn y Ariane 5. 349 00:16:07,480 --> 00:16:11,980 >> PHILIP COYLE: Y broblem sylfaenol oedd bod y Ariane 5 yn gyflymach, 350 00:16:11,980 --> 00:16:13,720 cyflymu gyflymach. 351 00:16:13,720 --> 00:16:17,250 Ac nid yw'r meddalwedd wedi cyfrif am hynny. 352 00:16:17,250 --> 00:16:20,770 >> SIARADWR 1: Mae dinistrio y roced oedd yn drychineb ariannol enfawr, 353 00:16:20,770 --> 00:16:24,200 i gyd oherwydd gwall meddalwedd munud. 354 00:16:24,200 --> 00:16:27,820 Ond nid hwn oedd y data am y tro cyntaf problemau trosi wedi plagued modern 355 00:16:27,820 --> 00:16:30,620 technoleg roced. 356 00:16:30,620 --> 00:16:34,480 >> JACK GANSSLE: Yn 1991, gyda dechrau y Rhyfel y Gwlff cyntaf, y Gwladgarwr 357 00:16:34,480 --> 00:16:38,610 profi taflegryn fath tebyg o broblem trosi rhif. 358 00:16:38,610 --> 00:16:44,910 O ganlyniad, 28 milwyr Americanaidd yn lladd a thua 100 o bobl eraill eu hanafu 359 00:16:44,910 --> 00:16:48,600 pan fydd y Gwladgarwr, a oedd i fod i ddiogelu yn erbyn Scuds dod i mewn, 360 00:16:48,600 --> 00:16:51,630 wedi methu i danio taflegryn. 361 00:16:51,630 --> 00:16:55,110 >> SIARADWR 1: Pan ymosododd Iraq a Kuwait Lansiodd America Storm Anialwch yn 362 00:16:55,110 --> 00:17:00,570 dechrau 1991, batris taflegryn Gwladgarwr eu defnyddio i amddiffyn Saudi Arabia 363 00:17:00,570 --> 00:17:04,760 ac Israel o Scud Irac ymosodiadau taflegryn. 364 00:17:04,760 --> 00:17:09,720 Y Gwladgarwr yn canolig ystod Unol Daleithiau system wyneb-i-awyr a weithgynhyrchir gan 365 00:17:09,720 --> 00:17:11,569 y cwmni Raytheon. 366 00:17:11,569 --> 00:17:16,410 >> THEODORE POSTOL: Mae maint y Patriot ataliwr ei hun yn fras 367 00:17:16,410 --> 00:17:17,710 20-troedfedd o hyd. 368 00:17:17,710 --> 00:17:20,800 Ac mae'n pwyso tua £ 2,000. 369 00:17:20,800 --> 00:17:22,940 Ac mae'n cario warhead o tua - 370 00:17:22,940 --> 00:17:24,905 Rwy'n credu ei fod tua £ 150. 371 00:17:24,905 --> 00:17:31,030 Ac mae'r warhead ei hun yn ffrwydrol uchel sydd wedi 372 00:17:31,030 --> 00:17:33,270 darnau o'i gwmpas. 373 00:17:33,270 --> 00:17:37,490 Mae'r casin y warhead ei gynllunio i weithredu fel fwled. 374 00:17:37,490 --> 00:17:40,720 >> SIARADWR 1: Y taflegrau yn cael eu cynnal pedwar y cynhwysydd ac yn cael eu cludo 375 00:17:40,720 --> 00:17:43,050 gan ôl-gerbyd lled. 376 00:17:43,050 --> 00:17:47,490 >> PHILIP COYLE: Y Gwladgarwr gwrth-taflegryn system yn mynd yn ôl ar 377 00:17:47,490 --> 00:17:50,710 leiaf 20 mlynedd bellach. 378 00:17:50,710 --> 00:17:54,350 Fe'i cynlluniwyd yn wreiddiol fel yn taflegryn amddiffyniad awyr i 379 00:17:54,350 --> 00:17:56,190 saethu i lawr awyrennau gelyn. 380 00:17:56,190 --> 00:18:02,490 Yn y Rhyfel y Gwlff cyntaf, pan fydd y rhyfel Daeth draw, y Fyddin am ei ddefnyddio 381 00:18:02,490 --> 00:18:05,535 i saethu i lawr Scuds, nid awyrennau. 382 00:18:05,535 --> 00:18:09,310 Nid yw'r heddlu awyr Irac oedd gymaint o broblem. 383 00:18:09,310 --> 00:18:12,450 Ond mae'r Fyddin yn poeni am Scuds. 384 00:18:12,450 --> 00:18:15,950 Ac felly maent yn ceisio uwchraddio y Gwladgarwr. 385 00:18:15,950 --> 00:18:18,750 >> SIARADWR 1: rhyng-gipio yn taflegryn gelyn teithio ar Mach pump oedd 386 00:18:18,750 --> 00:18:20,890 mynd i fod yn ddigon heriol. 387 00:18:20,890 --> 00:18:25,590 Ond pan fydd y Gwladgarwr ei rhuthro i mewn i gwasanaeth, nid y Fyddin yn ymwybodol o 388 00:18:25,590 --> 00:18:31,710 Addasiad Irac a gwneud eu Scuds bron yn amhosibl i daro. 389 00:18:31,710 --> 00:18:35,240 >> THEODORE POSTOL: Beth ddigwyddodd yw'r Scuds a oedd yn 390 00:18:35,240 --> 00:18:36,570 yn dod i mewn yn ansefydlog. 391 00:18:36,570 --> 00:18:37,532 Roeddent yn wobbling. 392 00:18:37,532 --> 00:18:43,220 Y rheswm am hyn oedd y Irac, yn er mwyn cael 600 cilomedr allan o 393 00:18:43,220 --> 00:18:47,530 Taflegryn 300-cilometr-range, cymerodd pwysau allan o'r warhead blaen. 394 00:18:47,530 --> 00:18:49,290 Maent yn gwneud y warhead ysgafnach. 395 00:18:49,290 --> 00:18:53,110 Felly, yn awr y Gwladgarwr sy'n ceisio i ddod yn y Scud. 396 00:18:53,110 --> 00:18:56,470 Ac yn y rhan fwyaf o'r amser, roedd y mwyafrif llethol rhan fwyaf o'r amser, byddai dim ond 397 00:18:56,470 --> 00:18:58,730 hedfan gan y Scud. 398 00:18:58,730 --> 00:19:01,760 >> SIARADWR 1: Unwaith y bydd y system Gwladgarwr gweithredwyr yn sylweddoli y Gwladgarwr colli 399 00:19:01,760 --> 00:19:06,690 ei darged, maent yn tanio y wladgarwyr warhead i osgoi posibl 400 00:19:06,690 --> 00:19:10,300 anafiadau pe bai'n cael ei ganiatáu i syrthio i'r llawr. 401 00:19:10,300 --> 00:19:14,540 >> THEODORE POSTOL: Dyna oedd yr hyn y rhan fwyaf o gweld pobl fel fireballs mawr yn yr awyr 402 00:19:14,540 --> 00:19:20,350 a'i gamddeall yn rhyng-gipio o arfbennau Scud. 403 00:19:20,350 --> 00:19:23,320 >> SIARADWR 1: Er bod yn yr awyr nos Wladgarwyr yn ymddangos i fod yn llwyddiannus 404 00:19:23,320 --> 00:19:27,530 dinistrio Scuds, yn Dhahran mae Gallai fod yn unrhyw gamgymeriad am ei 405 00:19:27,530 --> 00:19:29,140 perfformiad. 406 00:19:29,140 --> 00:19:34,180 Yno, system radar y Gwladgarwr yn colli olrhain o Scud sy'n dod i mewn a byth 407 00:19:34,180 --> 00:19:36,380 lansio oherwydd nam meddalwedd. 408 00:19:36,380 --> 00:19:39,890 409 00:19:39,890 --> 00:19:42,700 >> Hwn oedd y Israeliaid a ddarganfuwyd gyntaf po hiraf y system 410 00:19:42,700 --> 00:19:48,020 roedd ar, y mwyaf yw'r anghysondeb amser ddaeth yn ddyledus i gloc 411 00:19:48,020 --> 00:19:50,470 rhan annatod o gyfrifiadur y system. 412 00:19:50,470 --> 00:19:54,640 >> JACK GANSSLE: Tua dwy wythnos cyn y drychineb yn Dhahran, yr Israeliaid 413 00:19:54,640 --> 00:19:58,440 Adroddwyd i'r Adran Amddiffyn bod y system yn colli amser. 414 00:19:58,440 --> 00:20:01,280 Ar ôl tua wyth awr o redeg, maent yn sylwi bod y system yn 415 00:20:01,280 --> 00:20:03,530 dod yn amlwg yn llai cywir. 416 00:20:03,530 --> 00:20:07,710 Ymatebodd yr Adran Defense gan dweud wrth yr holl fatris Patriot 417 00:20:07,710 --> 00:20:10,500 i beidio â gadael y systemau ymlaen am amser hir. 418 00:20:10,500 --> 00:20:12,430 Maent byth yn dweud beth amser hir oedd. 419 00:20:12,430 --> 00:20:13,330 Wyth awr? 420 00:20:13,330 --> 00:20:13,810 10 awr? 421 00:20:13,810 --> 00:20:14,990 1,000 awr? 422 00:20:14,990 --> 00:20:17,150 Does neb yn gwybod. 423 00:20:17,150 --> 00:20:20,220 >> SIARADWR 1: Y batri Patriot lleoli yn y barics yn Dhahran 424 00:20:20,220 --> 00:20:24,660 ac mae ei gloc mewnol wedi bod yn ddiffygiol ar fwy na 100 awr ar y noson o 425 00:20:24,660 --> 00:20:27,470 25 Chwefror. 426 00:20:27,470 --> 00:20:31,770 >> JACK GANSSLE: Mae'n olrhain amser i cywirdeb o tua un rhan o ddeg o eiliad. 427 00:20:31,770 --> 00:20:34,480 Yn awr, un rhan o ddeg o ail yn Rhif ddiddorol oherwydd na all fod yn 428 00:20:34,480 --> 00:20:39,940 mynegi mewn deuaidd yn union, sy'n golygu Ni ellir ei fynegi yn union yn 429 00:20:39,940 --> 00:20:42,500 unrhyw gyfrifiadur digidol modern. 430 00:20:42,500 --> 00:20:46,920 Mae'n anodd credu, ond defnyddio hyn fel enghraifft. 431 00:20:46,920 --> 00:20:49,000 Gadewch i ni gymryd y rhif un traean. 432 00:20:49,000 --> 00:20:53,150 Ni ellir ei fynegi traean yn y degol yn union. 433 00:20:53,150 --> 00:20:57,500 Un rhan o dair yn mynd 0.333 ar gyfer anfeidredd. 434 00:20:57,500 --> 00:21:02,270 Does dim ffordd o wneud hynny gyda cywirdeb absoliwt yn y degol. 435 00:21:02,270 --> 00:21:05,370 Dyna'n union yr un fath o broblem a ddigwyddodd yn y Gwladgarwr. 436 00:21:05,370 --> 00:21:09,880 Yr hiraf yn rhedeg y system, y gwaethaf daeth y gwall amser. 437 00:21:09,880 --> 00:21:13,840 >> SIARADWR 1: Ar ôl 100 awr o weithredu, y gwall mewn amser yn unig oedd 438 00:21:13,840 --> 00:21:16,140 tua un rhan o dair o eiliad. 439 00:21:16,140 --> 00:21:20,800 Ond o ran targedu taflegryn teithio ar mach pump, arweiniodd at 440 00:21:20,800 --> 00:21:24,410 gwall olrhain o dros 600 metr. 441 00:21:24,410 --> 00:21:27,670 Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran. 442 00:21:27,670 --> 00:21:33,450 >> THEODORE POSTOL: Beth ddigwyddodd yn Roedd Scud lansio ganfod yn gynnar 443 00:21:33,450 --> 00:21:34,280 lloerennau rybudd. 444 00:21:34,280 --> 00:21:38,550 Ac maent yn gwybod bod y Scud yn dod yn eu cyfeiriad cyffredinol. 445 00:21:38,550 --> 00:21:41,000 Nad oeddent yn gwybod lle cafodd ei dod. 446 00:21:41,000 --> 00:21:43,900 >> SIARADWR 1: Yr oedd yn awr i fyny at y radar elfen o'r system Patriot 447 00:21:43,900 --> 00:21:48,910 amddiffyn Dhahran i leoli a chadw golwg ar y taflegryn gelyn dod i mewn. 448 00:21:48,910 --> 00:21:50,580 >> JACK GANSSLE: Y radar yn smart iawn. 449 00:21:50,580 --> 00:21:53,770 Byddai'n mewn gwirionedd yn olrhain y sefyllfa y Scud ac yna rhagweld lle mae'n 450 00:21:53,770 --> 00:21:57,160 yn ôl pob tebyg y tro nesaf anfonodd y radar curiad allan. 451 00:21:57,160 --> 00:21:58,870 A oedd yn galw yn y giât range. 452 00:21:58,870 --> 00:22:04,020 >> THEODORE POSTOL: Yna, unwaith y bydd y Gwladgarwr penderfynu digon o amser wedi mynd heibio i fynd 453 00:22:04,020 --> 00:22:09,420 gefn a gwirio y lleoliad nesaf ar gyfer y gwrthrych ganfod, mae'n mynd yn ôl. 454 00:22:09,420 --> 00:22:14,450 Felly, pan fydd yn mynd yn ôl at y anghywir lle, wedyn yn gweld unrhyw wrthrych. 455 00:22:14,450 --> 00:22:18,200 Ac mae'n penderfynu nad oedd unrhyw wrthrych, ei fod yn canfod ffug, a 456 00:22:18,200 --> 00:22:19,680 gollwng y trac. 457 00:22:19,680 --> 00:22:22,970 >> SIARADWR 1: diflannodd y Scud sy'n dod i mewn o'r sgrin radar, a 458 00:22:22,970 --> 00:22:26,050 eiliadau yn ddiweddarach Condemniwyd i mewn i'r barics. 459 00:22:26,050 --> 00:22:31,950 Lladd y Scud 28 a oedd yr un diwethaf tanio yn ystod y Rhyfel y Gwlff cyntaf. 460 00:22:31,950 --> 00:22:37,700 Yn drasig, cyrhaeddodd y meddalwedd diweddaraf yn Dhahran y diwrnod canlynol. 461 00:22:37,700 --> 00:22:41,800 Roedd y diffyg meddalwedd wedi cael ei bennu, cau un pennod yn y gythryblus 462 00:22:41,800 --> 00:22:43,690 hanes y taflegryn Gwladgarwr. 463 00:22:43,690 --> 00:22:46,780 464 00:22:46,780 --> 00:22:50,710 >> Patriot mewn gwirionedd yn acronym ar gyfer olrhain Array fesul cam 465 00:22:50,710 --> 00:22:51,960 Rhyng-gipio Of targed. 466 00:22:51,960 --> 00:22:54,650 467 00:22:54,650 --> 00:23:00,840 >> DAVID J Malan: pob hawl, felly mae sobri enghraifft, i fod yn sicr. 468 00:23:00,840 --> 00:23:03,430 Ac yn ffodus, mae'r rhain lefel is Nid yw pryfed yn rhywbeth y byddwn yn 469 00:23:03,430 --> 00:23:06,220 rhaid fel arfer i werthfawrogi, yn sicr nid gyda rhai o'n 470 00:23:06,220 --> 00:23:07,360 cynharaf o raglenni. 471 00:23:07,360 --> 00:23:10,450 Yn hytrach, mae'r rhan fwyaf o'r chwilod wnewch chi helpu Bydd cyfarfod yn rhesymegol o ran natur, 472 00:23:10,450 --> 00:23:12,900 cystrawennol yn natur lle mae'r cod nid yn unig yn gweithio iawn. 473 00:23:12,900 --> 00:23:14,140 A ydych yn gwybod ei fod yn eithaf cyflym. 474 00:23:14,140 --> 00:23:16,850 >> Ond yn enwedig pan fyddwn yn cyrraedd y ddiwedd y semester, mae'n mynd i 475 00:23:16,850 --> 00:23:20,620 dod yn fwy ac yn fwy o bosibilrwydd i wir yn meddwl yn galed am y cynllun 476 00:23:20,620 --> 00:23:22,960 o'ch rhaglenni a sylfaenol cynrychiolaeth 477 00:23:22,960 --> 00:23:24,520 yno, hefyd, o'r data. 478 00:23:24,520 --> 00:23:28,010 Er enghraifft, byddwn yn cyflwyno MySQL, sy'n injan gronfa ddata poblogaidd 479 00:23:28,010 --> 00:23:30,850 y gallwch eu defnyddio gyda gwefannau i storio data ar y pen-ôl. 480 00:23:30,850 --> 00:23:34,630 A bydd rhaid i chi ddechrau i benderfynu ar ddiwedd y semester nid yn unig beth 481 00:23:34,630 --> 00:23:38,790 mathau o ddata ar hyd y llinellau hyn i ddefnyddio ond yn union faint o ddarnau i'w defnyddio, 482 00:23:38,790 --> 00:23:42,740 p'un a ydych am i storio dyddiadau â dyddiadau ac amseroedd fel adegau, a hefyd 483 00:23:42,740 --> 00:23:46,890 pethau fel pa mor fawr ydych chi am i'r IDs unigryw i fod ar gyfer, dyweder, defnyddwyr 484 00:23:46,890 --> 00:23:47,680 yn eich cronfa ddata. 485 00:23:47,680 --> 00:23:51,210 >> Yn wir, os bydd rhai ohonoch wedi cael Facebook yn cyfrif am gryn amser, 486 00:23:51,210 --> 00:23:53,680 a ydych yn gwybod sut i gael mynediad at eich ID Defnyddiwr - 487 00:23:53,680 --> 00:23:57,930 sydd weithiau'n dangos i fyny yn eich URL proffil oni bai eich bod wedi dewis 488 00:23:57,930 --> 00:24:02,070 ffugenw ar gyfer y URL, neu os oes gennych ddefnyddir Facebook Graff API, y 489 00:24:02,070 --> 00:24:05,510 API ar gael i'r cyhoedd erbyn pryd rydych ofyn Facebook am ddata crai - 490 00:24:05,510 --> 00:24:07,580 gallwch weld beth yw eich ID rhifol yn. 491 00:24:07,580 --> 00:24:10,880 Ac mae rhai blynyddoedd yn ôl, Facebook hanfod gorfod newid o ddefnyddio 492 00:24:10,880 --> 00:24:15,980 sy'n cyfateb i ints i ddefnyddio hir hir oherwydd dros amser wrth i ddefnyddwyr ddod 493 00:24:15,980 --> 00:24:19,780 ac yn mynd ac yn creu nifer o gyfrifon a cyfrifon ffug, hyd yn oed yn hawdd iawn 494 00:24:19,780 --> 00:24:24,630 yn gallu ddihysbyddu'r rhywbeth fel 4 biliwn gwerth posibl fel int. 495 00:24:24,630 --> 00:24:28,340 >> Felly mae mwy ar y mathau hynny o faterion i lawr y ffordd, yn ogystal. 496 00:24:28,340 --> 00:24:30,750 Mae pob hawl, fel a oedd yn castio. 497 00:24:30,750 --> 00:24:31,670 Dyna oedd anfanyldeb. 498 00:24:31,670 --> 00:24:32,730 Mae cwpl o gyhoeddiadau cyflym. 499 00:24:32,730 --> 00:24:35,710 Felly adrannau gychwyn yn ffurfiol hyn yn dod Dydd Sul, Dydd Llun, dydd Mawrth. 500 00:24:35,710 --> 00:24:39,080 Byddwch yn clywed drwy e-bost yn ddiweddarach yr wythnos hon fel eich adran aseiniad. 501 00:24:39,080 --> 00:24:42,570 A wnewch chi helpu hefyd yma yn y pwynt sut i newid eich adran hon os yw eich 502 00:24:42,570 --> 00:24:45,660 amserlen wedi newid neu wedi nawr eich lefel cysur bellach wedi newid. 503 00:24:45,660 --> 00:24:49,380 Yn y cyfamser P-set un ac un haciwr yn oherwydd ddydd Iau gyda'r opsiwn i 504 00:24:49,380 --> 00:24:52,450 ymestyn y dyddiad cau ar ôl y manylebau i ddydd Gwener 505 00:24:52,450 --> 00:24:53,830 mewn ffordd nodweddiadol. 506 00:24:53,830 --> 00:24:57,500 >> Sylweddoli bod chynnwys gyda'r broblem manylebau set cyfarwyddiadau ar 507 00:24:57,500 --> 00:25:02,770 sut i ddefnyddio'r offer CS50, gwneud, yn ogystal â rhai CS50 offer penodol 508 00:25:02,770 --> 00:25:06,540 fel arddull 50, a all ddarparu i chi gydag adborth ddynamig ar y 509 00:25:06,540 --> 00:25:10,230 ansawdd eich steil cod a hefyd gwirio 50, a all eich rhoi 510 00:25:10,230 --> 00:25:13,160 adborth deinamig o ran eich cywirdeb cod ar. 511 00:25:13,160 --> 00:25:16,850 Maddau ein bod yn dal i smwddio allan ychydig kinks gyda siec 50. 512 00:25:16,850 --> 00:25:21,490 Mae rhai o'ch cyd-ddisgyblion a oedd yn dechrau oddeutu 04:00 ar nos Wener pan 513 00:25:21,490 --> 00:25:25,130 y fanyleb aeth i fyny wedi sylwi ers hynny ychydig o bugs yr ydym yn gweithio 514 00:25:25,130 --> 00:25:29,010 drwy, ac ymddiheuriadau i unrhyw un sy'n wedi profi rhwystredigaeth gormodol. 515 00:25:29,010 --> 00:25:30,340 Yw'r diffyg yn mwynglawdd. 516 00:25:30,340 --> 00:25:34,080 Ond byddwn yn dilyn i fyny ar y CS50 trafod pan fydd yn cael ei ddatrys. 517 00:25:34,080 --> 00:25:35,700 >> Felly gair ar y sgoriau eu hunain. 518 00:25:35,700 --> 00:25:38,990 Felly, bydd yn cael wythnos neu ddwy cyn i chi dechrau i gael adborth ar setiau problem 519 00:25:38,990 --> 00:25:40,640 oherwydd nad ydych eto cymrawd addysgu. 520 00:25:40,640 --> 00:25:44,510 Ac hyd yn oed wedyn, byddwn yn dechrau i werthuso y broblem C yn gosod cyn i ni 521 00:25:44,510 --> 00:25:46,970 fynd yn ôl a gwerthuso dechrau felly eich bod yn cael mwy perthnasol 522 00:25:46,970 --> 00:25:48,150 adborth yn gyflymach. 523 00:25:48,150 --> 00:25:51,870 Ond yn gyffredinol unol â'r maes llafur, CS50 setiau problem yn cael eu gwerthuso ar hyd y 524 00:25:51,870 --> 00:25:53,580 yn dilyn pedair echel - 525 00:25:53,580 --> 00:25:55,760 cwmpas, cywirdeb, dylunio, ac arddull. 526 00:25:55,760 --> 00:25:59,210 >> Scope yn mynd i fod yn rhif nodweddiadol rhwng sero a phump y 527 00:25:59,210 --> 00:26:01,830 cyfleu faint o'r eich darn a brathu i ffwrdd. 528 00:26:01,830 --> 00:26:03,750 Fel arfer, yr ydych am i hyn fod yn bump oed. 529 00:26:03,750 --> 00:26:05,300 Chi o leiaf wedi ceisio popeth. 530 00:26:05,300 --> 00:26:09,330 Ac yn sylwi ei fod yn ffactor lluosol er mwyn i wneud dim ond rhan o'r 531 00:26:09,330 --> 00:26:12,520 Nid problem a osodir yn y strategaeth orau. 532 00:26:12,520 --> 00:26:15,610 >> Yn y cyfamser, yn fwy amlwg yn y pwysigrwydd cywirdeb - 533 00:26:15,610 --> 00:26:18,620 yn unig yw eich rhaglen gywir gyda parchu at y fanyleb? 534 00:26:18,620 --> 00:26:21,510 Mae hyn yn cael ei bwysoli yn fwriadol yn fwy drwm na'r ddwy echel arall gan 535 00:26:21,510 --> 00:26:24,450 ffactor o dri oherwydd ein bod yn cydnabod sydd fel arfer eich bod yn mynd i dreulio 536 00:26:24,450 --> 00:26:28,600 llawer mwy o amser yn rhedeg ar ôl i lawr rhai bugs, cael eich cod i'r gwaith, yna rydych 537 00:26:28,600 --> 00:26:31,540 yn tolcio ac dewis enwau amrywiol priodol a 538 00:26:31,540 --> 00:26:33,800 hoffi, sydd ar y pen arall o'r sbectrwm o arddull. 539 00:26:33,800 --> 00:26:36,160 >> Nid yw hyn i ddweud nad arddull yn bwysig, a byddwn yn pregethu drosodd 540 00:26:36,160 --> 00:26:37,920 amser mewn darlithoedd ac mewn adrannau. 541 00:26:37,920 --> 00:26:40,520 Style yn cyfeirio at y estheteg eich cod. 542 00:26:40,520 --> 00:26:43,980 Ydych chi wedi dewis yn dda-enw newidynnau bod yn fyr, ond braidd yn 543 00:26:43,980 --> 00:26:44,680 disgrifiadol? 544 00:26:44,680 --> 00:26:47,840 A yw eich cod cilfachog ag y byddwch wedi gweld yn darlith ac mewn modd cyson 545 00:26:47,840 --> 00:26:49,070 gyda steil 50? 546 00:26:49,070 --> 00:26:51,220 >> Yn olaf yn dylunio iawn yno yn y canol. 547 00:26:51,220 --> 00:26:54,090 Dylunio yw'r un anoddach i roi bys ar oherwydd ei fod yn llawer mwy 548 00:26:54,090 --> 00:26:55,000 oddrychol. 549 00:26:55,000 --> 00:26:58,610 Ond efallai y mwyaf pwysig o y tair echel o ran addysgeg 550 00:26:58,610 --> 00:27:02,050 gwerth dros amser ac y bydd hyn yn y cyd-addysgu yn gyfle i 551 00:27:02,050 --> 00:27:04,110 rhoi adborth ansoddol. 552 00:27:04,110 --> 00:27:08,100 Yn wir, yn CS50 hyd yn oed er bod gennym y fformiwlâu a'r sgoriau, ar ddiwedd 553 00:27:08,100 --> 00:27:11,350 y dydd mae'r rhain yn fwriadol iawn bwcedi bach iawn - werthoedd pwynt 554 00:27:11,350 --> 00:27:13,460 rhwng sero a thri a sero a phump. 555 00:27:13,460 --> 00:27:17,800 Nid ydym yn ceisio tynnu llinellau bras iawn rhwng setiau problem neu rhwng 556 00:27:17,800 --> 00:27:21,490 fyfyrwyr, ond yn hytrach canolbwyntio cymaint ag gallwn ar ansoddol, longhand 557 00:27:21,490 --> 00:27:25,490 adborth, naill ai wedi'i deipio neu ar lafar gan eich cyd addysgu penodol, 558 00:27:25,490 --> 00:27:27,050 byddwch yn dod i adnabod yn eithaf da. 559 00:27:27,050 --> 00:27:32,340 >> Ond yn gyffredinol, y rhai yw'r pwysau y bydd yr amrywiol echelinau gael. 560 00:27:32,340 --> 00:27:35,480 Yn y cyfamser, hefyd, mae'n werth cadw mewn meddwl na ddylech gymryd yn ganiataol bod 561 00:27:35,480 --> 00:27:38,870 tri o bob pump yn 60% a felly'n methu fras. 562 00:27:38,870 --> 00:27:41,410 Tri a olygir yn fwriadol i fod yn math o ganol y ffordd da. 563 00:27:41,410 --> 00:27:43,480 Os ydych yn cael trioedd yn y ddechrau'r semester, mae hynny'n 564 00:27:43,480 --> 00:27:46,340 yn wir olygu i fod yn dda lle i ddechrau. 565 00:27:46,340 --> 00:27:50,510 Os ydych yn cael dau, ffeiriau, mae bendant rhywfaint o waith i dalu ychydig 566 00:27:50,510 --> 00:27:53,250 mwy o sylw, er mwyn manteisio adrannau ac oriau swyddfa. 567 00:27:53,250 --> 00:27:54,590 >> Os ydych yn cael pedwar a phump, mawr. 568 00:27:54,590 --> 00:27:57,430 Ond mewn gwirionedd, rydym yn gobeithio gweld taflwybrau ymhlith myfyrwyr - iawn 569 00:27:57,430 --> 00:28:00,575 personoli bob myfyriwr, ond yn dechrau y semester yma yn y math o 570 00:28:00,575 --> 00:28:04,100 y ddau i'r tri amrediad ond yn dod i ben hyd yma yn y 4-5 range. 571 00:28:04,100 --> 00:28:05,440 Dyna beth rydym yn chwilio amdano mewn gwirionedd. 572 00:28:05,440 --> 00:28:09,590 Ac rydym yn cadw mewn cof y delta sy'n chi arddangos rhwng wythnos sero ac wythnos 573 00:28:09,590 --> 00:28:12,170 12 pan oeddwn i'n gwneud graddau. 574 00:28:12,170 --> 00:28:16,380 Nid yw o bwys i ni yn gwbl sut y ydych yn deg ar y dechrau os yw eich 575 00:28:16,380 --> 00:28:19,330 llwybr yn wir i fyny ac yn gryf. 576 00:28:19,330 --> 00:28:24,000 >> Gonestrwydd academaidd - felly gadewch i mi ei roi ar fy llais mwy difrifol am ychydig funud. 577 00:28:24,000 --> 00:28:28,510 Felly y cwrs hwn y fraint o anfon mwy o fyfyrwyr nag unrhyw un arall 578 00:28:28,510 --> 00:28:30,950 yn hanes y bwrdd ad, yr wyf yn credu. 579 00:28:30,950 --> 00:28:34,220 Rydym wedi math o gyfrif a gollwyd ar hyn o pwynt o ba mor aml mae hyn yn digwydd. 580 00:28:34,220 --> 00:28:37,090 Ac nid dyna'r fod myfyrwyr mewn 50 yn ddim mwy anonest na'u 581 00:28:37,090 --> 00:28:38,690 cyd-ddisgyblion mewn mannau eraill. 582 00:28:38,690 --> 00:28:42,800 Ond yn sylweddoli, hefyd, ein bod yn dda iawn wrth ganfod y math hwn o beth. 583 00:28:42,800 --> 00:28:45,920 >> A dyna yw mantais y byddai dosbarth gwyddoniaeth gyfrifiadurol wedi yn ein bod yn 584 00:28:45,920 --> 00:28:49,110 yn gallu ac rydym yn cymharu holl fyfyrwyr problem yn gosod pâr-ddoeth yn erbyn pob 585 00:28:49,110 --> 00:28:51,470 eraill, nid yn unig yn y flwyddyn hon ond yr holl flynyddoedd blaenorol. 586 00:28:51,470 --> 00:28:55,080 Mae gennym y gallu, fel myfyrwyr mewn y dosbarth, i Google a dod o hyd cod 587 00:28:55,080 --> 00:28:57,440 ar safleoedd fel GitHub a fforymau trafod. 588 00:28:57,440 --> 00:29:00,840 Mae yn gwbl atebion i CS50 yn p-yn gosod fel y bo'r angen o gwmpas yno. 589 00:29:00,840 --> 00:29:02,710 Ond os gallwch ddod o hyd iddynt, gallwn i ddod o hyd. 590 00:29:02,710 --> 00:29:07,130 Ac mae hyn i gyd yn awtomatig yn fawr iawn ac yn hawdd ac yn drist i ni ddod o hyd. 591 00:29:07,130 --> 00:29:10,990 >> Ond yr wyf am bwysleisio, hefyd, fod y polisi gonestrwydd academaidd cwrs yn 592 00:29:10,990 --> 00:29:13,960 golygu iawn lawer i fod yn fawr iawn y gwrthwyneb i yr ysbryd hwnnw. 593 00:29:13,960 --> 00:29:17,506 Yn wir, eleni rydym wedi aralleirio pethau yn y maes llafur i fod yn hyn, dot 594 00:29:17,506 --> 00:29:19,790 dot dot, gyda mwy o fanylion yn y maes llafur. 595 00:29:19,790 --> 00:29:22,860 Ond y thema gyffredinol yn y cwrs mewn gwirionedd yw bod yn rhesymol. 596 00:29:22,860 --> 00:29:26,160 Rydym yn cydnabod bod yna nifer sylweddol o faint o addysgeg 597 00:29:26,160 --> 00:29:30,550 gwerth gydweithio, i ryw raddau, gyda chyd-ddisgyblion, lle rydych 598 00:29:30,550 --> 00:29:33,700 dau neu dri i chi neu os ydych mwy o bobl yn sefyll ar fwrdd gwyn 599 00:29:33,700 --> 00:29:35,670 whiteboarding, felly i siarad, eich syniadau - 600 00:29:35,670 --> 00:29:39,480 ysgrifennu allan pseudocode mewn lluniau, diagramau hyn y dylai Mario fod os 601 00:29:39,480 --> 00:29:41,350 byddech yn ysgrifennu yn gyntaf yn pseudocode. 602 00:29:41,350 --> 00:29:43,240 Beth ddylai'r algorithm barus - 603 00:29:43,240 --> 00:29:46,100 sut y dylai ymddwyn fesul broblem hon yn un? 604 00:29:46,100 --> 00:29:50,440 >> Ac felly yn sylweddoli bod ymddygiad ein bod yn annog yn dda iawn 605 00:29:50,440 --> 00:29:51,470 llawer ar hyd y llinellau hynny. 606 00:29:51,470 --> 00:29:53,890 Ac yn y maes llafur, fe welwch criw cyfan o fwledi o dan 607 00:29:53,890 --> 00:29:57,740 gategori rhesymol a yw'n rhesymol gategori sy'n helpu ein helpu 608 00:29:57,740 --> 00:30:00,740 chi lapio eich meddwl o gwmpas lle rydym yn tynnu y llinell. 609 00:30:00,740 --> 00:30:04,340 Ac yn gyffredinol, rheol gweddus o bawd yw os ydych yn cael trafferth i ddatrys 610 00:30:04,340 --> 00:30:07,990 rhai bug a bod eich ffrind neu classmate yn eistedd nesaf i chi, mae'n cael ei 611 00:30:07,990 --> 00:30:11,530 rhesymol i chi i ddangos iddo ef neu hi eich cod a dweud, hey, gallwch helpu 612 00:30:11,530 --> 00:30:13,700 mi chyfrif i maes beth sy'n mynd o'i le yma? 613 00:30:13,700 --> 00:30:17,110 >> Nid ydym yn arfer cofleidio yr ochr arall. 614 00:30:17,110 --> 00:30:20,730 Nid yw'n ateb cywir ar gyfer eich ffrind neu classmate yma i ddweud, oh, 615 00:30:20,730 --> 00:30:22,510 dim ond yn edrych ar fy ffigur a allan o hynny. 616 00:30:22,510 --> 00:30:24,400 Mae hynny'n fath o afresymol. 617 00:30:24,400 --> 00:30:27,750 Ond mae cael rhywun arall, yr ymennydd arall, pâr arall o lygaid yn edrych ar 618 00:30:27,750 --> 00:30:31,620 eich sgrîn neu edrych ar eich cod a dweud, a ydych yn sicr eich bod am 619 00:30:31,620 --> 00:30:32,760 i gael dolen yma? 620 00:30:32,760 --> 00:30:34,800 Neu a ydych yn sicr eich bod am y colon yma? 621 00:30:34,800 --> 00:30:37,090 Neu oh, y neges gwall yn golygu hyn. 622 00:30:37,090 --> 00:30:39,580 Mae'r rhai yn rhesymol iawn ac annog ymddygiad. 623 00:30:39,580 --> 00:30:44,010 >> Yr achosion yr oeddwn yn cyfeirio ato gynharach berwi i lawr i pan fydd y myfyrwyr yn 624 00:30:44,010 --> 00:30:47,350 yn hwyr yn y nos yn gwneud barn gwael penderfyniadau a e-bostio eu cod i 625 00:30:47,350 --> 00:30:50,130 rywun arall neu dim ond dweud, yma, mae yn Dropbox neu 626 00:30:50,130 --> 00:30:51,610 Googling yn hwyr yn y nos. 627 00:30:51,610 --> 00:30:54,880 Ac felly byddwn yn annog ac yn erfyn i chi, os oes rhai sy'n anochel i chi 628 00:30:54,880 --> 00:30:58,450 adegau o straen, rydych yn taro i fyny erbyn y dyddiad cau, nid oes gennych hwyr 629 00:30:58,450 --> 00:31:01,490 dydd gan ei fod eisoes ar y Dydd Gwener pwynt, e-bostiwch pennau y cwrs neu 630 00:31:01,490 --> 00:31:02,330 fy hun yn uniongyrchol. 631 00:31:02,330 --> 00:31:04,790 Dweud, gwrando, dwi yn fy torri pwynt yma. 632 00:31:04,790 --> 00:31:06,660 Gadewch i ni gael sgwrs a chyfrif 'ii maes. 633 00:31:06,660 --> 00:31:10,400 Droi at y we, neu nid yw rhai eraill ymddygiad rhesymol byth y 634 00:31:10,400 --> 00:31:13,070 ateb, ac yn rhy llawer o'ch cyd-ddisgyblion bellach yma ar 635 00:31:13,070 --> 00:31:15,150 campws oherwydd hynny benderfyniadau gwael. 636 00:31:15,150 --> 00:31:17,840 Ond mae'n hawdd iawn i fynd heibio y llinell. 637 00:31:17,840 --> 00:31:22,950 >> A dyma ychydig o llun i godi ei galon chi o'r Reddit fel bod nawr 638 00:31:22,950 --> 00:31:25,720 bydd popeth yn iawn. 639 00:31:25,720 --> 00:31:30,210 >> Felly ailadrodd cyflym, yna, o ble rydym yn gadael i ffwrdd. 640 00:31:30,210 --> 00:31:33,690 Felly, yr wythnos diwethaf, yn cofio ein bod yn cyflwyno amodau, nad ydynt mewn Scratch 641 00:31:33,690 --> 00:31:34,880 ond yn C y tro hwn. 642 00:31:34,880 --> 00:31:38,300 Ac yr oedd rhywfaint o gystrawen newydd, ond n sylweddol na syniadau newydd fel y cyfryw. 643 00:31:38,300 --> 00:31:42,630 Cawsom mynegiadau Boole y gallem neu ynghyd â dau fertigol 644 00:31:42,630 --> 00:31:46,490 bariau neu a ynghyd â dau ampersands, gan ddweud bod y chwith 645 00:31:46,490 --> 00:31:49,990 a rhaid i'r hawl fod yn wir ar gyfer hyn i weithredu. 646 00:31:49,990 --> 00:31:53,150 Yna cawsom switsys, yr ydym yn edrych yn fyr, ond yr wyf yn cynnig yn wirioneddol 647 00:31:53,150 --> 00:31:56,830 dim ond cystrawen gwahanol ar gyfer cyflawni'r un math o nod os ydych yn gwybod yn 648 00:31:56,830 --> 00:31:59,270 ymlaen llaw beth yw eich achosion yn mynd i fod. 649 00:31:59,270 --> 00:32:00,160 >> Rydym yn edrych ar dolenni. 650 00:32:00,160 --> 00:32:03,340 A ar gyfer dolen yw'r efallai y mwyaf cyffredin, neu o leiaf yr un y mae pobl yn 651 00:32:03,340 --> 00:32:05,330 fel arfer yn cyrraedd ar gyfer reddfol. 652 00:32:05,330 --> 00:32:08,240 Hyd yn oed er ei fod yn edrych ychydig yn cryptig, byddwch yn gweld llawer, llawer o enghreifftiau o hyn 653 00:32:08,240 --> 00:32:11,590 cyn bo hir, gan fod gennych eisoes yn hwyr yr wythnos diwethaf. 654 00:32:11,590 --> 00:32:14,280 Er y gall dolenni yn yr un modd cyflawni'r un peth. 655 00:32:14,280 --> 00:32:17,550 Ond os ydych am wneud unrhyw incrementation neu ddiweddaru 656 00:32:17,550 --> 00:32:20,230 werthoedd newidyn, rhaid i chi gwneud yn fwy â llaw na'r 657 00:32:20,230 --> 00:32:22,440 ar gyfer ddolen cyn caniatáu. 658 00:32:22,440 --> 00:32:25,310 Ac yna mae y ddolen do-tra, sy'n caniatáu i ni wneud rhywbeth yn 659 00:32:25,310 --> 00:32:28,460 leiaf unwaith tra bod rhywbeth arall yn wir. 660 00:32:28,460 --> 00:32:31,550 Ac mae hyn yn arbennig o dda ar gyfer rhaglenni neu ar gyfer gemau lle rydych am 661 00:32:31,550 --> 00:32:33,810 i annog y defnyddiwr am rywbeth o leiaf unwaith. 662 00:32:33,810 --> 00:32:37,110 Ac yna os nad yw ef neu hi yn cydweithredu, efallai y byddwch am ei wneud 663 00:32:37,110 --> 00:32:38,420 dro ar ôl tro. 664 00:32:38,420 --> 00:32:41,270 >> Gyda newidynnau, yn y cyfamser, rydym wedi llinellau cod fel hyn, a allai 665 00:32:41,270 --> 00:32:41,950 fod dwy linell. 666 00:32:41,950 --> 00:32:44,830 Gallech datgan int a elwir yn cownter, hanner colon. 667 00:32:44,830 --> 00:32:47,660 Neu gallwch ddatgan a ei ddiffinio, fel petai. 668 00:32:47,660 --> 00:32:49,950 Rhowch gynnig gwerth ar yr un pryd. 669 00:32:49,950 --> 00:32:51,890 >> Ac yna yn olaf, buom yn siarad am swyddogaethau. 670 00:32:51,890 --> 00:32:54,270 Ac mae hyn yn enghraifft braf yn yr ystyr ei fod yn dangos 671 00:32:54,270 --> 00:32:55,840 dau fath o swyddogaethau. 672 00:32:55,840 --> 00:32:59,030 Mae un yn GetString (), sydd, unwaith eto, cael llinyn gan y defnyddiwr. 673 00:32:59,030 --> 00:33:02,040 Ond GetString () yn fath o ddiddorol, cyn belled ag yr ydym wedi ei ddefnyddio, 674 00:33:02,040 --> 00:33:05,620 oherwydd ein bod wedi defnyddio bob amser gyda rhywbeth ar yr ochr chwith o 675 00:33:05,620 --> 00:33:06,600 arwydd cyfartal. 676 00:33:06,600 --> 00:33:09,830 Hynny yw dweud bod GetString () yn dychwelyd gwerth. 677 00:33:09,830 --> 00:33:11,970 Mae'n dychwelyd, wrth gwrs, yn llinyn. 678 00:33:11,970 --> 00:33:15,130 Ac yna ar yr ochr chwith, rydym yn yn syml arbed y llinyn tu mewn i 679 00:33:15,130 --> 00:33:16,580 amrywiol alwodd ei enw. 680 00:33:16,580 --> 00:33:21,100 >> Mae hyn yn wahanol, mewn ffordd, gan printf oherwydd printf, o leiaf yn ein 681 00:33:21,100 --> 00:33:23,540 defnydd yma, nid yw'n dychwelyd unrhyw beth. 682 00:33:23,540 --> 00:33:24,960 Fel o'r neilltu, mae'n dychwelyd rhywbeth. 683 00:33:24,960 --> 00:33:26,380 Rydym nid yn unig yn poeni beth ydyw. 684 00:33:26,380 --> 00:33:29,090 Ond mae'n rhaid i beth a elwir yn sgîl-effaith. 685 00:33:29,090 --> 00:33:31,840 A beth yw bod sgîl-effaith ym mhob ofn y byddwn wedi gweld hyd yn hyn? 686 00:33:31,840 --> 00:33:34,720 Beth mae printf ei wneud? 687 00:33:34,720 --> 00:33:37,780 Y bydd yn argraffu rhywbeth at y sgrin, arddangosfeydd testun neu rifau neu rywbeth 688 00:33:37,780 --> 00:33:38,380 ar y sgrin. 689 00:33:38,380 --> 00:33:41,170 Ac mae hynny'n eu hystyried dim ond yn sgîl-effaith oherwydd nad yw'n wir yn trosglwyddo 690 00:33:41,170 --> 00:33:41,900 ei fod yn ôl i mi. 691 00:33:41,900 --> 00:33:44,770 Nid yw'n ateb tu mewn blwch du y gallaf wedyn 692 00:33:44,770 --> 00:33:46,130 cyrraedd i mewn ac yn mynnu. 693 00:33:46,130 --> 00:33:49,160 Dim ond yn ei wneud ar ei ben ei hun, mae llawer fel Colton ei blygio i mewn i hyn 694 00:33:49,160 --> 00:33:52,560 blwch du yr wythnos diwethaf, a rhywsut hudol yn tynnu ar y bwrdd 695 00:33:52,560 --> 00:33:54,500 heb i mi cymryd rhan mewn gwirionedd. 696 00:33:54,500 --> 00:33:55,560 Byddai hynny'n fod yn sgil effaith. 697 00:33:55,560 --> 00:33:59,100 Ond os wyf mewn gwirionedd wedi cyrraedd yn ôl yn yma a dweud, oh, dyma y llinyn 698 00:33:59,100 --> 00:34:02,040 gan y defnyddiwr, a fyddai'n fod yn werth dychwelyd. 699 00:34:02,040 --> 00:34:05,650 >> A hyd yn hyn rydym wedi swyddogaethau a ddefnyddir yn unig y mae pobl eraill wedi ysgrifennu. 700 00:34:05,650 --> 00:34:09,219 Ond gallwn ei wneud mewn gwirionedd hyn math o bethau ein hunain. 701 00:34:09,219 --> 00:34:12,730 Felly, yr wyf i'n mynd i fynd i mewn i'r CS50 peiriant eto. 702 00:34:12,730 --> 00:34:16,020 Gadewch i mi gau'r tab ein bod yn wedi agor funud yn ôl. 703 00:34:16,020 --> 00:34:18,530 A gadewch i mi fynd yn ei flaen a creu ffeil newydd. 704 00:34:18,530 --> 00:34:22,400 Ac yr wyf i'n mynd i fynd yn ei flaen a galw hyn yn un positive.c. 705 00:34:22,400 --> 00:34:24,770 Felly, yr wyf am wneud rhywbeth gyda rhifau positif yma. 706 00:34:24,770 --> 00:34:27,219 Felly, yr wyf i'n mynd i fynd yn ei flaen a gwneud int - 707 00:34:27,219 --> 00:34:28,000 sori - 708 00:34:28,000 --> 00:34:31,840 # Gynnwys. 709 00:34:31,840 --> 00:34:34,280 Gadewch i ni beidio â gwneud yr un camgymeriad fel o'r blaen. 710 00:34:34,280 --> 00:34:40,020 Int mhrif (gwag), ar agor cyrliog brês, ar gau cyrliog Brace. 711 00:34:40,020 --> 00:34:41,639 >> Ac yn awr yr wyf yn awyddus i wneud y canlynol. 712 00:34:41,639 --> 00:34:44,600 Rwyf am i ysgrifennu rhaglen sy'n yn mynnu bod y defnyddiwr yn rhoi 713 00:34:44,600 --> 00:34:46,770 mi gyfanrif positif. 714 00:34:46,770 --> 00:34:50,969 Felly, nid oes unrhyw swyddogaeth GetPositiveInt yn y llyfrgell CS50. 715 00:34:50,969 --> 00:34:52,610 Dim ond GetInt (). 716 00:34:52,610 --> 00:34:55,790 Ond mae hynny'n iawn oherwydd fy mod yn cael y lluniadau gallaf osod gyda y mae 717 00:34:55,790 --> 00:34:59,360 ychydig mwy o gyfyngiad ar y gwerth. 718 00:34:59,360 --> 00:35:00,990 Gallwn i wneud rhywbeth fel hyn. 719 00:35:00,990 --> 00:35:02,780 >> Felly n int - 720 00:35:02,780 --> 00:35:04,920 ac os ydych yn teipio hyd, dim ond yn sylweddoli Rydw i'n mynd i fynd yn ôl a 721 00:35:04,920 --> 00:35:06,430 newid rhai pethau yn y man - 722 00:35:06,430 --> 00:35:09,960 felly n int hafal GetInt (). 723 00:35:09,960 --> 00:35:11,780 Ac mae hynny'n mynd i roi y tu mewn int o n. 724 00:35:11,780 --> 00:35:13,830 A gadewch i mi fod yn fwy disgrifiadol. 725 00:35:13,830 --> 00:35:23,270 Gadewch i mi ddweud rhywbeth fel yr wyf yn mynnu bod chi roi cyfanrif positif mi. 726 00:35:23,270 --> 00:35:23,550 >> Mae pob hawl. 727 00:35:23,550 --> 00:35:25,250 Felly dim ond ychydig o gyfarwyddiadau. 728 00:35:25,250 --> 00:35:26,270 Ac yn awr beth allaf ei wneud? 729 00:35:26,270 --> 00:35:29,840 Wel, yr wyf eisoes yn gwybod o fy syml amodau neu ganghennau, yn union fel yr wyf 730 00:35:29,840 --> 00:35:36,100 cael yn Scratch, gallwn ddweud rhywbeth os ydych chi'n n yn llai na neu'n hafal i 731 00:35:36,100 --> 00:35:44,460 sero, yna yr wyf yn awyddus i wneud rhywbeth hoffi, nid yw hynny'n gadarnhaol. 732 00:35:44,460 --> 00:35:45,560 Ac yna y gallwn ei wneud - 733 00:35:45,560 --> 00:35:47,310 Iawn, ond Fi 'n sylweddol am gael y int. 734 00:35:47,310 --> 00:35:52,020 Er mwyn i mi fynd i fyny yma ac y gallwn i fath y copi hwn ac indent hyn. 735 00:35:52,020 --> 00:35:52,570 Ac yna, OK. 736 00:35:52,570 --> 00:35:56,990 Felly, os n yn llai na neu'n gyfartal i sero gwneud hyn. 737 00:35:56,990 --> 00:35:58,900 >> Nawr, beth os bydd y defnyddiwr nid yw'n cydweithredu? 738 00:35:58,900 --> 00:36:01,560 Wel, yna dwi'n mynd i benthyg hyn yma. 739 00:36:01,560 --> 00:36:03,130 Ac yna yr wyf yn mynd i mewn yma ac yma ac yma. 740 00:36:03,130 --> 00:36:06,420 Felly mae hyn yn amlwg nad yr ateb, dde? 741 00:36:06,420 --> 00:36:07,810 Oherwydd does dim diwedd yn y golwg. 742 00:36:07,810 --> 00:36:13,100 Os ydw i eisiau i fynnu bod y defnyddiwr yn rhoi mi cyfanrif positif, gallaf 743 00:36:13,100 --> 00:36:14,150 mewn gwirionedd yn cael y int. 744 00:36:14,150 --> 00:36:15,620 Yna gallaf wirio am y int. 745 00:36:15,620 --> 00:36:18,570 Ond yna yr wyf am edrych arno eto ac gwirio eto ac yn gwirio eto. 746 00:36:18,570 --> 00:36:21,680 Felly, yn amlwg, beth yw'r well adeiladu i gael ei ddefnyddio yma? 747 00:36:21,680 --> 00:36:22,840 Mae pob hawl, felly rhyw fath o ddolen. 748 00:36:22,840 --> 00:36:25,430 >> Felly, yr wyf i'n mynd i gael gwared o bron i gyd. 749 00:36:25,430 --> 00:36:27,320 Ac yr wyf yn awyddus i gael y int o leiaf unwaith. 750 00:36:27,320 --> 00:36:28,890 Felly, yr wyf i'n mynd i ddweud wneud - 751 00:36:28,890 --> 00:36:32,110 a byddaf yn dod yn ôl at y tra mewn dim ond hyn o bryd - 752 00:36:32,110 --> 00:36:33,050 nawr, gwneud beth? 753 00:36:33,050 --> 00:36:35,860 Rydw i'n mynd i wneud GetInt int n cael (). 754 00:36:35,860 --> 00:36:36,080 OK. 755 00:36:36,080 --> 00:36:37,250 Felly dyna 'n bert da. 756 00:36:37,250 --> 00:36:39,750 Ac yn awr pa mor aml y Yr wyf am wneud hyn? 757 00:36:39,750 --> 00:36:45,770 >> Gadewch i mi roi y tu mewn printf y ddolen felly rwy'n galw dro ar ôl tro, 758 00:36:45,770 --> 00:36:46,740 os oes angen fod. 759 00:36:46,740 --> 00:36:49,720 A beth ydw i eisiau hyn tra bod cyflwr ei wneud? 760 00:36:49,720 --> 00:36:53,870 Yr wyf am barhau i wneud hyn tra bod hyn yn wir? 761 00:36:53,870 --> 00:36:54,125 Yeah. 762 00:36:54,125 --> 00:36:55,390 N yn llai na neu'n hafal i sero. 763 00:36:55,390 --> 00:36:58,180 Hynny eisoes, rydym wedi sylweddol glanhau y cod hwn i fyny. 764 00:36:58,180 --> 00:37:00,700 Rydym wedi benthyg adeiladu syml iawn - y ddolen do-tra. 765 00:37:00,700 --> 00:37:04,690 Rwyf wedi dwyn dim ond y llinellau pwysig o god yr wyf yn dechrau copïo a 766 00:37:04,690 --> 00:37:05,960 gludo, nad oedd yn ddoeth. 767 00:37:05,960 --> 00:37:09,790 Ac felly yn awr yr wyf i'n mynd i gludo mewn gwirionedd yn fan hyn a dim ond gwneud hyn unwaith. 768 00:37:09,790 --> 00:37:12,990 >> Ac yn awr beth ydw i am ei wneud ar y diwedd y rhaglen? 769 00:37:12,990 --> 00:37:16,810 'N annhymerus' jyst yn dweud rhywbeth syml hoffi, diolch am y - ac 770 00:37:16,810 --> 00:37:18,980 'N annhymerus' wneud% i ar gyfer int - 771 00:37:18,980 --> 00:37:23,270 slaes n, coma, ac yna plwg yn n, hanner colon. 772 00:37:23,270 --> 00:37:23,910 >> Mae pob hawl. 773 00:37:23,910 --> 00:37:27,290 Felly, gadewch i ni weld beth sy'n digwydd nawr pan fyddaf yn rhedeg y rhaglen hon. 774 00:37:27,290 --> 00:37:30,600 Rydw i'n mynd i fynd yn ei flaen a yn gwneud yn gadarnhaol. 775 00:37:30,600 --> 00:37:30,880 Damn. 776 00:37:30,880 --> 00:37:31,600 Mae ychydig o wallau. 777 00:37:31,600 --> 00:37:32,960 Felly, gadewch i mi sgrolio yn ôl i fyny i'r cyntaf. 778 00:37:32,960 --> 00:37:34,020 Peidiwch â gweithio drwyddynt yn ôl. 779 00:37:34,020 --> 00:37:37,000 Gweithio trwyddynt o'r brig i lawr rhag iddynt rhaeadru a dim ond 780 00:37:37,000 --> 00:37:38,630 un peth fod yn anghywir. 781 00:37:38,630 --> 00:37:42,532 Ymhlyg datganiad o GetInt swyddogaeth (). 782 00:37:42,532 --> 00:37:43,020 Yeah. 783 00:37:43,020 --> 00:37:44,420 Felly nid oedd yn ddigon. 784 00:37:44,420 --> 00:37:46,760 Yr wyf yn fath o wneud yr un camgymeriad, ond ychydig yn wahanol y tro hwn. 785 00:37:46,760 --> 00:37:51,940 Angen i mi nid yn unig yn cynnwys stdio.h ond hefyd cs50.h, sy'n cynnwys y 786 00:37:51,940 --> 00:37:56,770 datganiadau hyn a elwir o gael int, a addysgu'r offer, neu yn dysgu 787 00:37:56,770 --> 00:37:58,760 C pa GetInt () yn. 788 00:37:58,760 --> 00:37:59,550 >> Felly, gadewch i mi resave. 789 00:37:59,550 --> 00:38:02,040 Rydw i'n mynd i anwybyddu'r gwallau eraill oherwydd fy mod i'n mynd i obeithio eu bod yn 790 00:38:02,040 --> 00:38:05,210 rhywsut yn gysylltiedig at y gwall Wyf yn sefydlog yn barod. 791 00:38:05,210 --> 00:38:08,710 Felly, gadewch i mi fynd yn ei flaen ac yn ail-grynhoi â gwneud cadarnhaol, Enter. 792 00:38:08,710 --> 00:38:09,020 Damn. 793 00:38:09,020 --> 00:38:09,985 Tri gwallau, yn dal. 794 00:38:09,985 --> 00:38:12,650 Gadewch i mi sgrolio i fyny i'r cyntaf. 795 00:38:12,650 --> 00:38:14,320 N newidyn heb ei ddefnyddio. 796 00:38:14,320 --> 00:38:15,850 Nid ydym wedi gweld hyn o'r blaen. 797 00:38:15,850 --> 00:38:17,200 Ac mae hyn, hefyd, yn ychydig yn cryptig. 798 00:38:17,200 --> 00:38:18,850 Mae hwn yn allbwn y compiler. 799 00:38:18,850 --> 00:38:23,610 A beth y llinell tynnu sylw at yno - positive.c :9:13 - 800 00:38:23,610 --> 00:38:28,960 yn ei ddweud, ei fod yn dweud ar-lein naw o positive.c, yn gymeriad 13eg, 801 00:38:28,960 --> 00:38:31,510 13 colofn, rydych yn gwneud camgymeriad hwn. 802 00:38:31,510 --> 00:38:34,230 >> Ac yn benodol, mae'n dweud n amrywiol nas defnyddiwyd mi. 803 00:38:34,230 --> 00:38:35,790 Felly, gadewch i ni weld - 804 00:38:35,790 --> 00:38:37,150 llinell naw. 805 00:38:37,150 --> 00:38:40,430 Im 'yn arfer n yn yr ystyr y Rwy'n rhoi ei fod yn werth. 806 00:38:40,430 --> 00:38:44,200 Ond yr hyn nad yw'r compiler ddim yn hoffi ei nad wyf ddim yn ymddangos yn ei ddefnyddio. 807 00:38:44,200 --> 00:38:45,560 Ond arhoswch funud, yr wyf yn ei ddefnyddio. 808 00:38:45,560 --> 00:38:48,170 Yn llinell 11, rwy'n ei ddefnyddio yma. 809 00:38:48,170 --> 00:38:52,430 Ond os wyf yn sgroliwch i lawr ymhellach yn positive.c :11 - 810 00:38:52,430 --> 00:38:56,230 hynny ar llinell 11, cymeriad 12, y compiler sy'n dweud wrthyf, defnyddio 811 00:38:56,230 --> 00:38:58,670 heb ei ddatgan dynodwr n. 812 00:38:58,670 --> 00:39:02,760 >> Golygu Felly heb ei ddatgan gennyf heb ei nodi fel 813 00:39:02,760 --> 00:39:04,970 amrywiol gyda math data. 814 00:39:04,970 --> 00:39:05,500 Ond arhoswch funud. 815 00:39:05,500 --> 00:39:09,150 Fe wnes yn union, yn unol naw. 816 00:39:09,150 --> 00:39:11,100 Felly rhywun yn ddryslyd iawn yma. 817 00:39:11,100 --> 00:39:14,900 Mae'n naill ai fi neu compiler oherwydd yn unol naw, unwaith eto, rwy'n datgan 818 00:39:14,900 --> 00:39:18,650 n int, ac rwy'n ei aseinio y dychwelyd gwerth GetInt (). 819 00:39:18,650 --> 00:39:22,930 Yna, Im 'yn arfer bod n amrywio yn unol 11 a gwirio os yw ei gwerth yn llai 820 00:39:22,930 --> 00:39:24,050 na neu'n hafal i sero. 821 00:39:24,050 --> 00:39:27,430 Ond mae hyn yn ôl pob golwg yn wael ac wedi torri pham? 822 00:39:27,430 --> 00:39:30,630 823 00:39:30,630 --> 00:39:32,490 Ddweud eto? 824 00:39:32,490 --> 00:39:35,690 >> Ah, rhaid i mi ddatgan n cyn mynd i mewn i'r ddolen. 825 00:39:35,690 --> 00:39:36,370 Ond pam? 826 00:39:36,370 --> 00:39:39,830 Yr wyf yn golygu, rydym yn unig yn cynnig ychydig yn ôl bod mae'n iawn i ddatgan newidynnau 827 00:39:39,830 --> 00:39:43,600 i gyd ar un llinell, ac yna neilltuo rhywfaint o werth iddynt. 828 00:39:43,600 --> 00:39:46,790 Mae amrywiol byd-eang - gadewch i ni ddod yn ôl i'r syniad mewn dim ond hyn o bryd. 829 00:39:46,790 --> 00:39:48,690 Pam ydych chi eisiau i mi i roi y tu allan i'r ddolen? 830 00:39:48,690 --> 00:40:03,170 831 00:40:03,170 --> 00:40:03,830 Mae'n. 832 00:40:03,830 --> 00:40:06,780 Yn union. 833 00:40:06,780 --> 00:40:09,610 >> Felly, er, braidd yn groes i reddf, gadewch i mi crynhoi. 834 00:40:09,610 --> 00:40:13,510 Pan fyddwch yn datgan n y tu mewn y bloc wneud yno - 835 00:40:13,510 --> 00:40:16,320 yn benodol y tu mewn o braces cyrliog hynny - 836 00:40:16,320 --> 00:40:19,210 bod n newidiol wedi hyn sydd a elwir yn gwmpas - 837 00:40:19,210 --> 00:40:23,210 nad ydynt yn gysylltiedig â'n system sgorio yn y gwrs - ond mae ganddo gwmpas sy'n 838 00:40:23,210 --> 00:40:25,190 gyfyngu i'r rhai braces cyrliog. 839 00:40:25,190 --> 00:40:28,460 Mewn geiriau eraill, fel arfer os ydych yn datgan newidyn y tu mewn i set o 840 00:40:28,460 --> 00:40:33,370 braces cyrliog, hynny amrywiol ond yn bodoli tu mewn rhai braces cyrliog. 841 00:40:33,370 --> 00:40:37,320 Felly, gan y rhesymeg yn unig, er bod Rwyf wedi datgan n yn unol naw, mae'n 842 00:40:37,320 --> 00:40:41,910 yn y bôn yn diflannu o gwmpas, yn diflannu o'r cof, fel petai, 843 00:40:41,910 --> 00:40:43,370 erbyn i mi gyrraedd llinell 11. 844 00:40:43,370 --> 00:40:47,370 Oherwydd bod llinell 11, yn anffodus, yn y tu allan i hynny braces cyrliog. 845 00:40:47,370 --> 00:40:51,540 >> Felly, yr wyf yn anffodus ni all atgyweiria hon drwy fynd yn ôl at yr hyn yr wyf yn gwneud hynny o'r blaen. 846 00:40:51,540 --> 00:40:53,370 Efallai y byddwch ar y dechrau gwneud hyn. 847 00:40:53,370 --> 00:40:56,370 Ond beth ydych chi nawr ni gwneud gylchol? 848 00:40:56,370 --> 00:40:58,260 Mae'n amlwg nad ydych yn ei gael y int gylchol. 849 00:40:58,260 --> 00:41:01,320 Felly, gallwn adael y GetInt (), ac rydym yn Dylid gadael y GetInt () y tu mewn i'r 850 00:41:01,320 --> 00:41:04,420 dolen oherwydd dyna beth yr ydym am ei plagio y defnyddiwr am dro ar ôl tro. 851 00:41:04,420 --> 00:41:08,660 Ond mae'n ddigon i fynd hyd at linell, dyweder, chwech. 852 00:41:08,660 --> 00:41:10,150 Int n, hanner colon. 853 00:41:10,150 --> 00:41:12,990 Peidiwch â rhoi ei fod yn werth eto oherwydd Nid oes angen i chi eto. 854 00:41:12,990 --> 00:41:16,220 >> Ond yn awr i lawr yma, hysbysiad - mae hyn yn Byddai yn gamgymeriad hawdd iawn. 855 00:41:16,220 --> 00:41:19,440 Nid wyf am i gysgodi fy blaenorol datganiad o n. 856 00:41:19,440 --> 00:41:22,830 Yr wyf am ddefnyddio'r n a mewn gwirionedd yn bodoli. 857 00:41:22,830 --> 00:41:25,780 Ac felly yn awr yn llinell 10, I neilltuo n gwerth. 858 00:41:25,780 --> 00:41:28,580 Ond yn unol chwech, yr wyf yn datgan n. 859 00:41:28,580 --> 00:41:32,940 Ac felly allaf neu na alla i ddefnyddio yn llinell 12 awr? 860 00:41:32,940 --> 00:41:37,120 Gallaf oherwydd rhwng pa cyrliog bresys yn n ddatgan nawr? 861 00:41:37,120 --> 00:41:38,770 Yr un yma ar-lein pump. 862 00:41:38,770 --> 00:41:40,330 I un yma ar-lein 14. 863 00:41:40,330 --> 00:41:49,770 Felly os wyf yn awr yn chwyddo allan, arbed y ffeil hon, ewch yn ôl i mewn i ac yn rhedeg yn gadarnhaol, mae'n 864 00:41:49,770 --> 00:41:50,820 llunio hyn o bryd. 865 00:41:50,820 --> 00:41:51,940 Felly, mae hynny'n gynnydd eisoes. 866 00:41:51,940 --> 00:41:53,640 Slaes. . / Chadarnhaol, Enter. 867 00:41:53,640 --> 00:41:56,060 >> Yr wyf yn mynnu eich bod yn rhoi i mi yn gyfanrif positif. 868 00:41:56,060 --> 00:41:57,750 Negyddol 1. 869 00:41:57,750 --> 00:41:59,020 Negyddol 2. 870 00:41:59,020 --> 00:42:00,680 Negyddol 3. 871 00:42:00,680 --> 00:42:01,760 Zero. 872 00:42:01,760 --> 00:42:03,000 Un. 873 00:42:03,000 --> 00:42:05,130 A diolch am yr un beth nawr ei argraffu. 874 00:42:05,130 --> 00:42:07,400 >> Gadewch i mi roi cynnig ar rywbeth arall, allan o chwilfrydedd. 875 00:42:07,400 --> 00:42:09,600 Rwy'n cael gwybod i mewnbwn yn gyfanrif. 876 00:42:09,600 --> 00:42:12,870 Ond beth os wyf yn hytrach deipio i mewn cig oen? 877 00:42:12,870 --> 00:42:14,460 Felly, byddwch yn awr yn gweld gwahanol brydlon - 878 00:42:14,460 --> 00:42:15,350 retry. 879 00:42:15,350 --> 00:42:17,670 Ond unman yn fy cod wnes i ysgrifennu retry. 880 00:42:17,670 --> 00:42:22,320 Felly, lle, yn ôl pob tebyg, mae hyn yn ceisio eto annog yn dod o, a fyddech chi'n ei ddweud? 881 00:42:22,320 --> 00:42:23,540 Yeah, o GetInt () ei hun. 882 00:42:23,540 --> 00:42:26,650 Felly, un o'r pethau staff CS50 yn ei wneud i chi, o leiaf yn yr ychydig cyntaf 883 00:42:26,650 --> 00:42:30,400 wythnos, yn cael ei rydym wedi ysgrifennu rhai swm o gamgymeriadau gwirio er mwyn sicrhau, os 884 00:42:30,400 --> 00:42:34,260 byddwch yn ffonio GetInt (), byddwch o leiaf yn fynd yn ôl yn int gan y defnyddiwr. 885 00:42:34,260 --> 00:42:35,460 Ni fyddwch yn cael llinyn. 886 00:42:35,460 --> 00:42:36,440 Ni fyddwch yn cael torgoch. 887 00:42:36,440 --> 00:42:39,660 Ni fyddwch yn cael rhywbeth arall yn gyfan gwbl. 888 00:42:39,660 --> 00:42:40,510 Byddwch yn cael int. 889 00:42:40,510 --> 00:42:41,890 >> Yn awr, ni allai fod yn gadarnhaol. 890 00:42:41,890 --> 00:42:42,770 Efallai na fydd yn negyddol. 891 00:42:42,770 --> 00:42:44,550 Rydym yn gwneud unrhyw warant o gwmpas hynny. 892 00:42:44,550 --> 00:42:48,960 Ond byddwn yn plagio y defnyddiwr i ailgeisio, ailgeisio, ailgeisio hyd nes ei fod mewn gwirionedd yn 893 00:42:48,960 --> 00:42:49,810 cydweithio. 894 00:42:49,810 --> 00:42:53,085 Yn yr un modd, os wyf yn gwneud 1.23, nad yw'n int. 895 00:42:53,085 --> 00:42:58,400 Ond os wyf yn deipio i mewn, dyweder, 50, sy'n yn rhoi gwerth yr wyf am i mi. 896 00:42:58,400 --> 00:42:59,050 >> Mae pob hawl. 897 00:42:59,050 --> 00:43:01,380 Felly, nid drwg. 898 00:43:01,380 --> 00:43:04,780 Unrhyw gwestiynau am yr hyn yr ydym wedi ei wneud yn unig? 899 00:43:04,780 --> 00:43:07,930 Mae'r cludfwyd allweddol yw, i fod yn glir, nid gymaint y ddolen, yr ydym wedi gweld 900 00:43:07,930 --> 00:43:10,880 cyn er bod gennym ddim wir ei ddefnyddio, ond y mater o gwmpas, lle 901 00:43:10,880 --> 00:43:17,045 newidynnau yn unig y gellir dim ond yn cael ei ddefnyddio mewn rhywfaint o le penodol. 902 00:43:17,045 --> 00:43:19,830 >> Mae pob hawl, gadewch i mi fynd i'r afael â'r awgrym a wnaethoch yn gynharach, sef y 903 00:43:19,830 --> 00:43:20,860 newidyn byd-eang. 904 00:43:20,860 --> 00:43:24,880 Fel o'r neilltu, mae'n troi allan bod un arall ateb i'r broblem hon, ond 905 00:43:24,880 --> 00:43:28,880 fel arfer yn ateb anghywir neu ateb dylunio'n wael, yw 906 00:43:28,880 --> 00:43:31,670 datgan eich newidyn fel yr hyn sy'n a elwir yn newidyn byd-eang. 907 00:43:31,670 --> 00:43:34,610 Nawr Rwy'n fath o darfu ar fy diffiniad o gwmpas oherwydd bod 908 00:43:34,610 --> 00:43:37,680 dim braces cyrliog ar frig a'r union waelod y ffeil. 909 00:43:37,680 --> 00:43:40,190 Ond mae'r hyn y mae hynny'n yw bod bellach yn unol pedwar, 910 00:43:40,190 --> 00:43:41,710 n yn newidyn byd-eang. 911 00:43:41,710 --> 00:43:44,460 Ac fel yr awgryma'r enw, mae'n dim ond ar gael ym mhob man. 912 00:43:44,460 --> 00:43:45,790 >> Mewn gwirionedd wedi Scratch hyn. 913 00:43:45,790 --> 00:43:48,650 Os ydych wedi defnyddio amrywiol, efallai y byddwch yn cofio rhaid i chi ddewis os ydyw i 914 00:43:48,650 --> 00:43:50,780 corlun hwn neu ar gyfer yr holl sprites. 915 00:43:50,780 --> 00:43:54,270 Wel, yr holl sprites dim ond y gliriach ffordd o ddweud byd-eang. 916 00:43:54,270 --> 00:43:55,520 Yeah? 917 00:43:55,520 --> 00:44:09,690 918 00:44:09,690 --> 00:44:10,990 Ah, cwestiwn da iawn. 919 00:44:10,990 --> 00:44:14,310 >> Felly, dwyn i gof bod yn y fersiwn cyntaf o fy cod, pan oeddwn yn anghywir 920 00:44:14,310 --> 00:44:17,700 n datgan ac a ddiffinnir yn llinell naw - 921 00:44:17,700 --> 00:44:19,980 Rwy'n datgan ei fod fel newidyn a rhoddais ei fod yn werth gyda 922 00:44:19,980 --> 00:44:21,160 y gweithredwr aseiniad - 923 00:44:21,160 --> 00:44:22,520 roedd hyn yn ddau gwallau mi. 924 00:44:22,520 --> 00:44:26,560 Un, y ffaith nad yw n cael ei ddefnyddio, a dau, hynny yn unol 11 925 00:44:26,560 --> 00:44:27,770 nid yn unig ei ddatgan. 926 00:44:27,770 --> 00:44:31,120 Felly, yr un cyntaf doeddwn i ddim gyfeiriad ar y pryd. 927 00:44:31,120 --> 00:44:35,130 Nid yw'n gwbl camgymeriad i ddatgan yn amrywiol, ond nid yn ei ddefnyddio. 928 00:44:35,130 --> 00:44:38,540 Ond un o'r pethau yr ydym wedi ei wneud yn y y CS50 peiriant, yn fwriadol, 929 00:44:38,540 --> 00:44:43,340 addysgiadol, yn cael ei rydym wedi cranked i fyny 'r disgwyliadau'r compiler i wneud 930 00:44:43,340 --> 00:44:46,970 yn siwr eich bod yn gwneud pethau nid yn unig yn gywir ond mewn gwirionedd yn gywir. 931 00:44:46,970 --> 00:44:51,520 >> Oherwydd os ydych yn datgan newidyn fel n a byth yn ei ddefnyddio, neu ei ddefnyddio 932 00:44:51,520 --> 00:44:53,700 yn gywir, yna beth y mae'n ei wneud yno? 933 00:44:53,700 --> 00:44:55,650 Mae'n wir yn gwasanaethu unrhyw ddiben. 934 00:44:55,650 --> 00:44:58,980 Ac mae'n hawdd iawn dros gyfnod o amser, os ydych yn peidiwch â ffurfweddu eich cyfrifiadur eich hun yn 935 00:44:58,980 --> 00:45:01,960 y ffordd hon, i ychydig gael cod sy'n olion bach yma, olion yno. 936 00:45:01,960 --> 00:45:04,390 Ac yna fisoedd yn ddiweddarach i chi edrych yn ôl a ydych chi fel, pam fod y llinell hon o 937 00:45:04,390 --> 00:45:05,060 cod yno? 938 00:45:05,060 --> 00:45:07,940 Ac os nad oes rheswm da, mae'n nid yw o fudd i chi neu eich cydweithwyr 939 00:45:07,940 --> 00:45:10,650 i lawr y ffordd i gael i baglu drosto hynny. 940 00:45:10,650 --> 00:45:12,540 >> Fel o'r neilltu, lle mae bod yn dod o? 941 00:45:12,540 --> 00:45:16,410 Wel, dwyn i gof bod pob tro y byddwn yn llunio rhaglen, mae hyn oll yn bethau 942 00:45:16,410 --> 00:45:17,380 cael ei argraffu. 943 00:45:17,380 --> 00:45:18,350 Felly, byddwn yn dod yn ôl i hyn. 944 00:45:18,350 --> 00:45:22,230 Ond unwaith eto, yn gwneud yn cyfleustodau sy'n awtomeiddio'r broses o lunio gan 945 00:45:22,230 --> 00:45:24,830 rhedeg y casglwr gwirioneddol Gelwir clang. 946 00:45:24,830 --> 00:45:27,650 Mae hyn yn beth, byddwn yn gweld yn y pen draw, mae gan ymwneud â debugging gyda arbennig 947 00:45:27,650 --> 00:45:29,060 raglen o'r enw y dadfygiwr. 948 00:45:29,060 --> 00:45:32,150 Mae hyn wedi ei wneud gyda wneud y gorau o'r cod - mwy am hynny yn y dyfodol. 949 00:45:32,150 --> 00:45:33,620 Std = C99 - 950 00:45:33,620 --> 00:45:37,870 mae hyn yn unig yn golygu defnyddio fersiwn 1999 C. C wedi bod o gwmpas hyd yn oed yn fwy na 951 00:45:37,870 --> 00:45:40,830 hynny, ond maent yn gwneud rhai 'n glws newidiadau 10 mlynedd a mwy yn ôl. 952 00:45:40,830 --> 00:45:42,690 >> A dyma y rhai perthnasol. 953 00:45:42,690 --> 00:45:45,880 Yr ydym yn ei ddweud yn gwneud unrhyw beth sy'n fyddai o'r blaen wedi bod yn rhybudd 954 00:45:45,880 --> 00:45:48,560 gwall atal y myfyriwr o lunio. 955 00:45:48,560 --> 00:45:51,400 Ac mae'n golygu mur wneud hynny ar gyfer criw cyfan o bethau, nid 956 00:45:51,400 --> 00:45:53,060 yn unig yn ymwneud â newidynnau. 957 00:45:53,060 --> 00:45:54,700 Ac yna gadewch i mi sgrolio i diwedd y llinell. 958 00:45:54,700 --> 00:45:56,430 Ac mae hyn, hefyd, byddwn ni yn y pen draw dod yn ôl i. 959 00:45:56,430 --> 00:45:59,040 Mae hyn yn amlwg enw'r y ffeil rwy'n casglu. 960 00:45:59,040 --> 00:46:02,160 Mae hyn yn cofio enw'r ffeil Rwy'n outputting fel enw 961 00:46:02,160 --> 00:46:04,070 fy rhaglen runnable. 962 00:46:04,070 --> 00:46:08,970 Mae hyn yn-lcs50 yn unig yn golygu defnyddio'r CS50 llyfrgell, ac unrhyw seroau a rhai sy'n 963 00:46:08,970 --> 00:46:12,390 ysgrifennodd y staff a luniwyd yn gynharach eleni, integreiddio 964 00:46:12,390 --> 00:46:13,490 i mewn i fy rhaglen. 965 00:46:13,490 --> 00:46:16,130 >> Ac unrhyw un yn gwybod beth-lm yw? 966 00:46:16,130 --> 00:46:18,150 Mae'n y llyfrgell mathemateg, sydd yn unig yno, hyd yn oed os ydych yn 967 00:46:18,150 --> 00:46:19,320 beidio â gwneud unrhyw mathemateg. 968 00:46:19,320 --> 00:46:22,620 'I' jyst yn awtomatig i ni gan eu gwneud. 969 00:46:22,620 --> 00:46:26,540 >> Wel, gadewch i mi wneud un enghraifft arall yma drwy agor ffeil newydd. 970 00:46:26,540 --> 00:46:30,560 A gadewch i mi arbed yr un yma fel string.c. 971 00:46:30,560 --> 00:46:37,980 Mae'n ymddangos bod wrth i ni siarad am ddata mathau heddiw, mae hyd yn oed yn fwy 972 00:46:37,980 --> 00:46:40,630 mynd ymlaen o dan y cwfl nag yr ydym wedi ei weld hyd yn hyn. 973 00:46:40,630 --> 00:46:42,290 Felly, gadewch i mi yn gyflym yn gwneud rhaglen gyflym. 974 00:46:42,290 --> 00:46:44,510 Cynnwys stdio.h. 975 00:46:44,510 --> 00:46:45,730 A byddaf yn arbed hynny. 976 00:46:45,730 --> 00:46:48,110 A ydych yn gwybod, gadewch i mi beidio â gwneud y un camgymeriad eto ac eto. 977 00:46:48,110 --> 00:46:50,540 Cynnwys cs50.h. 978 00:46:50,540 --> 00:46:54,870 A gadewch i mi fynd yn ei flaen yn awr ac yn gwneud y prif int (gwag). 979 00:46:54,870 --> 00:46:58,790 >> Ac yn awr yr wyf yn syml eisiau gwneud rhaglen sy'n gwneud hyn - ddatgan llinyn 980 00:46:58,790 --> 00:47:03,610 Gelwir s a chael llinyn gan y defnyddiwr. 981 00:47:03,610 --> 00:47:05,820 A gadewch i mi wneud ychydig cyfarwyddiadau yma - 982 00:47:05,820 --> 00:47:09,960 os gwelwch yn dda roi llinyn i mi - felly y defnyddiwr yn gwybod beth i'w wneud. 983 00:47:09,960 --> 00:47:13,190 Ac yna i lawr yma is na hyn, Rwyf am wneud y canlynol - 984 00:47:13,190 --> 00:47:16,060 ar gyfer int i yn cael sero. 985 00:47:16,060 --> 00:47:18,580 Unwaith eto, gwyddonwyr cyfrifiadurol fel arfer dechrau cyfrif ar sero, ond gallem 986 00:47:18,580 --> 00:47:20,340 gwneud y un os ydym yn wir eisiau. 987 00:47:20,340 --> 00:47:27,240 Nawr rydw i'n mynd i wneud i yn llai na hyd cyfres o s. 988 00:47:27,240 --> 00:47:28,430 Felly strlen - 989 00:47:28,430 --> 00:47:29,510 S-T-R-L-E-N - 990 00:47:29,510 --> 00:47:31,650 unwaith eto, mae'n gryno am ei fod yn haws i deipio, hyd yn oed er ei fod yn 991 00:47:31,650 --> 00:47:32,590 ychydig yn cryptig. 992 00:47:32,590 --> 00:47:35,290 >> Mae hynny'n yn swyddogaeth nad ydym wedi defnyddio o'r blaen, ond yn llythrennol yn gwneud hynny - 993 00:47:35,290 --> 00:47:37,810 dychwelyd i mi nifer sy'n cynrychioli hyd y llinyn 994 00:47:37,810 --> 00:47:38,690 bod y defnyddiwr deipio. 995 00:47:38,690 --> 00:47:41,740 Os byddant yn teipio mewn helo, byddai'n dychwelyd pump oherwydd bod pum 996 00:47:41,740 --> 00:47:42,890 llythyrau yn helo. 997 00:47:42,890 --> 00:47:45,390 Yna, ar bob fersiwn o dolen hwn, fi a mwy. 998 00:47:45,390 --> 00:47:49,170 Felly, unwaith eto, safon adeiladu hyd yn oed os nad ydych yn hollol rhy gyfforddus neu 999 00:47:49,170 --> 00:47:50,420 gyfarwydd ag ef eto. 1000 00:47:50,420 --> 00:47:53,220 >> Ond yn awr ar bob fersiwn o'r ddolen hon, sylwi ar yr hyn yr wyf i'n mynd i wneud. 1001 00:47:53,220 --> 00:47:56,690 Dw i eisiau mynd ymlaen ac argraffu allan o gymeriad unigol - 1002 00:47:56,690 --> 00:47:59,940 felly% c slaes n ar linell newydd. 1003 00:47:59,940 --> 00:48:00,990 Ac yna, eich bod yn gwybod yr hyn yr wyf am ei wneud? 1004 00:48:00,990 --> 00:48:05,090 Beth bynnag yw'r gair yw bod mathau y defnyddiwr i mewn, fel helo, rwyf eisiau argraffu 1005 00:48:05,090 --> 00:48:09,530 H-E-L-L-O, un cymeriad bob llinell. 1006 00:48:09,530 --> 00:48:13,080 Mewn geiriau eraill, yr wyf am i gyrraedd y cymeriadau unigol mewn llinyn, 1007 00:48:13,080 --> 00:48:16,770 lle hyd yn hyn yn llinyn newydd ei bod dilyniant o gymeriadau. 1008 00:48:16,770 --> 00:48:21,690 >> Ac mae'n troi allan y gallaf ei wneud s, braced, i, braced agos, yn agos 1009 00:48:21,690 --> 00:48:23,580 parenthesis, hanner colon. 1010 00:48:23,580 --> 00:48:25,640 Ac yr wyf yn rhaid i ni wneud un peth arall. 1011 00:48:25,640 --> 00:48:30,570 Mae'n mewn ffeil o'r enw string.h bod strlen ei ddatgan. 1012 00:48:30,570 --> 00:48:33,190 Felly, os ydw i am ddefnyddio swyddogaeth honno, Angen i mi ddweud wrth y compiler, 1013 00:48:33,190 --> 00:48:34,450 disgwyl ei ddefnyddio. 1014 00:48:34,450 --> 00:48:37,040 Yn awr gad i mi fynd yn ei flaen ac yn gwneud y rhaglen o'r enw llinyn. 1015 00:48:37,040 --> 00:48:39,150 Dot, slaes, llinyn. 1016 00:48:39,150 --> 00:48:40,130 >> Rhowch linyn mi. 1017 00:48:40,130 --> 00:48:40,900 'N annhymerus' mynd yn ei flaen ac yn ei deipio. 1018 00:48:40,900 --> 00:48:43,040 Helo, yn yr holl gapiau, Enter. 1019 00:48:43,040 --> 00:48:47,390 Ac yn awr yr wyf wedi sylwi argraffu hwn un cymeriad ar ôl y llall. 1020 00:48:47,390 --> 00:48:51,450 Felly, y manylion newydd yma yw bod llinyn, ar ddiwedd y dydd, gall fod yn 1021 00:48:51,450 --> 00:48:54,810 mynediad trwy gyfrwng ei unigol gymeriadau drwy gyflwyno y sgwâr 1022 00:48:54,810 --> 00:48:55,840 nodiant braced. 1023 00:48:55,840 --> 00:48:59,090 A dyna oherwydd bod llinyn o dan y cwfl yn wir dilyniant o 1024 00:48:59,090 --> 00:48:59,810 cymeriadau. 1025 00:48:59,810 --> 00:49:02,010 Ond yr hyn sy'n daclus yn eu cylch yn mewn RAM eich cyfrifiadur - 1026 00:49:02,010 --> 00:49:05,300 Mac, PC, beth bynnag ydyw - maen nhw'n llythrennol gefn wrth gefn wrth gefn - 1027 00:49:05,300 --> 00:49:06,225 H-E-L-L-O - 1028 00:49:06,225 --> 00:49:09,920 ar lefel unigol, cyfagos bytes yn y cof. 1029 00:49:09,920 --> 00:49:13,210 >> Felly, os ydych am i gyrraedd y fath wythfed beit, sydd yn ddolen hon fyddai 1030 00:49:13,210 --> 00:49:16,900 braced sero, braced un, braced dau, braced tri, pedwar braced - 1031 00:49:16,900 --> 00:49:18,890 sy'n cael ei fynegeio sero hyd at bump - 1032 00:49:18,890 --> 00:49:23,330 a fydd yn argraffu H-E-L-L-O ar ei linell ei hun. 1033 00:49:23,330 --> 00:49:26,320 >> Yn awr, fel teaser, gadewch i mi yn dangos i chi y math o bethau y byddwch yn y pen draw yn 1034 00:49:26,320 --> 00:49:31,950 gallu deall, o leiaf gyda rhai yn edrych yn agos. 1035 00:49:31,950 --> 00:49:35,610 Ar gyfer un, yr hyn yr ydym gynnwys yn heddiw enghreifftiau, os hoffech, mewn gwirionedd 1036 00:49:35,610 --> 00:49:38,300 un o'r jailbreaks cyntaf ar gyfer y iPhone. 1037 00:49:38,300 --> 00:49:40,800 Jailbreaking yn golygu cracio y ffôn er mwyn i chi mewn gwirionedd yn ei ddefnyddio ar 1038 00:49:40,800 --> 00:49:43,380 cludydd neu gosod gwahanol eich meddalwedd eich hun. 1039 00:49:43,380 --> 00:49:45,660 A byddwch yn sylwi ar hyn yn edrych yn gwbl cryptig, yn fwyaf tebygol. 1040 00:49:45,660 --> 00:49:46,520 Ond yn edrych ar hyn. 1041 00:49:46,520 --> 00:49:50,420 Mae'r iPhone yn ôl pob golwg wedi cracio gyda a i ddolen, yn os bydd cyflwr, mae arall 1042 00:49:50,420 --> 00:49:52,580 cyflwr, criw o swyddogaethau nid ydym wedi gweld. 1043 00:49:52,580 --> 00:49:54,230 >> Ac eto, ni fyddwch yn ar olwg gyntaf yn ôl pob tebyg 1044 00:49:54,230 --> 00:49:55,620 deall sut mae hyn yn gweithio. 1045 00:49:55,620 --> 00:49:58,940 Ond mae popeth yr ydym yn fath o gymryd yn ganiataol yn ein bywydau modern 1046 00:49:58,940 --> 00:50:02,040 mewn gwirionedd yn tueddu i leihau hyd yn oed i rai o hanfodion hyn, rydym wedi bod yn 1047 00:50:02,040 --> 00:50:02,820 edrych arno. 1048 00:50:02,820 --> 00:50:06,680 Gadewch i mi fynd yn ei flaen ac yn agor un rhaglenni eraill, holloway.c. 1049 00:50:06,680 --> 00:50:08,970 Felly, mae hyn, hefyd, yn rhywbeth yr ydych Ni ddylai wir yn gwybod. 1050 00:50:08,970 --> 00:50:12,440 Hyd yn oed oes yr un o'r staff, neu gallwn yn ôl pob tebyg ffigur hyn allan drwy edrych ar 1051 00:50:12,440 --> 00:50:15,450 oherwydd hyn roedd côd rhywun a gyflwynwyd i'r hyn sydd 1052 00:50:15,450 --> 00:50:19,630 a elwir yn hanesyddol yn obfuscated C gystadleuaeth, lle rydych yn ysgrifennu rhaglen 1053 00:50:19,630 --> 00:50:24,670 sy'n crynhoi ac yn rhedeg, ond mor damn Gall cryptig unrhyw dynol yn deall yr hyn 1054 00:50:24,670 --> 00:50:27,530 mae'n mynd i wneud hyd nes y maent mewn gwirionedd yn rhedeg. 1055 00:50:27,530 --> 00:50:29,940 >> Felly, yn wir, os ydych yn edrych ar hyn cod, yr wyf yn gweld newid. 1056 00:50:29,940 --> 00:50:30,870 Rwy'n gweld prif. 1057 00:50:30,870 --> 00:50:33,800 Rwy'n gweld y cromfachau sgwâr awgrymu rhyw fath o arae. 1058 00:50:33,800 --> 00:50:35,970 A oes unrhyw un eisiau i ddyfalu beth y rhaglen hon mewn gwirionedd 1059 00:50:35,970 --> 00:50:37,220 wneud os byddaf yn rhedeg Holloway? 1060 00:50:37,220 --> 00:50:39,940 1061 00:50:39,940 --> 00:50:40,750 Ydw. 1062 00:50:40,750 --> 00:50:43,050 OK. 1063 00:50:43,050 --> 00:50:44,690 Da iawn. 1064 00:50:44,690 --> 00:50:48,090 Felly, nid dim ond y staff ac yr wyf yn ffigur pa bethau hyn yn ei wneud. 1065 00:50:48,090 --> 00:50:51,670 >> Ac yn awr yn olaf, gadewch i mi fynd yn ei flaen ac yn agor i fyny un rhaglen arall. 1066 00:50:51,670 --> 00:50:53,440 Mae hyn yn un - 1067 00:50:53,440 --> 00:50:55,550 unwaith eto, byddwn yn gwneud y cod ffynhonnell gael ar-lein - mae hyn yn un yn unig 1068 00:50:55,550 --> 00:50:57,480 math o 'n bert i edrych ar. 1069 00:50:57,480 --> 00:50:59,750 Mae pob maent yn gwneud yn cyrraedd y bar gofod gryn dipyn. 1070 00:50:59,750 --> 00:51:01,320 Ond mae hyn yn cod go iawn. 1071 00:51:01,320 --> 00:51:04,790 Felly, os ydych yn credu bod 'n bert, os ydym mewn gwirionedd yn rhedeg y wrth yr anogwr, 1072 00:51:04,790 --> 00:51:08,970 yn y pen draw byddwch yn gweld sut yr ydym yn Gallai gwneud pethau fel hyn. 1073 00:51:08,970 --> 00:51:14,008 >> Felly, byddwn yn gadael i chi ar y nodyn hwnnw ac yn gweld ar ddydd Mercher. 1074 00:51:14,008 --> 00:51:18,440 >> [CHWARAE CERDDORIAETH] 1075 00:51:18,440 --> 00:51:23,380 >> SIARADWR 2: Yn y CS50 nesaf, y TFS llwyfannu mutiny. 1076 00:51:23,380 --> 00:51:24,112 >> SIARADWR 3: Nid y mae. 1077 00:51:24,112 --> 00:51:25,362 Gael iddo! 1078 00:51:25,362 --> 00:51:29,912 1079 00:51:29,912 --> 00:51:32,074 >> [CHWARAE CERDDORIAETH]