1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] DAVID J. Malan: pob hawl, mae hyn yn CS50, a dyma'r 2 00:00:09,920 --> 00:00:15,250 diwedd Wythnos 1, cardiau astudiaeth felly yn a chyfanswm y 3 00:00:15,250 --> 00:00:18,640 cyd-ddisgyblion bod gennych eleni yw 745. 4 00:00:18,640 --> 00:00:20,920 Ac rydym wrth ein bodd felly i gael cymaint ohonoch yn y cwrs 5 00:00:20,920 --> 00:00:23,680 y semester, ond hyd yn oed er bod y cwrs hwn mor fawr, 6 00:00:23,680 --> 00:00:26,090 sylweddoli ei bod yn y pethau hyn fel cinio ddydd Gwener, fel 7 00:00:26,090 --> 00:00:29,020 oriau swyddfa, 15-person adrannau, ac yn y blaen y 8 00:00:29,020 --> 00:00:30,590 yn cael eu olygu mewn gwirionedd i greu'r hyn yn fwy agos 9 00:00:30,590 --> 00:00:31,140 amgylchedd. 10 00:00:31,140 --> 00:00:34,070 Felly hyd yn oed er efallai y byddwn yn casglu unwaith neu ddwywaith yr wythnos, yma yng 11 00:00:34,070 --> 00:00:36,420 Sanders, yn gwybod bod cryn dipyn o'ch profiad yn y cwrs hwn 12 00:00:36,420 --> 00:00:39,330 Bydd yn fawr iawn fod yn ymarferol ar ar ochr eich ffrindiau yn y dosbarth 13 00:00:39,330 --> 00:00:40,730 a'r staff addysgu. 14 00:00:40,730 --> 00:00:43,960 >> Felly, yma rydym yn mynd, Fall 2012. 15 00:00:43,960 --> 00:00:47,530 Felly, yn cofio bod tro diwethaf i ni ddod i ben ar nodyn o 16 00:00:47,530 --> 00:00:50,460 anfanyldeb, siarad am y gynrychiolaeth o rifau. 17 00:00:50,460 --> 00:00:52,950 Ac rydym yn edrych ar un o'r methiannau a ddigwyddodd, yn y 18 00:00:52,950 --> 00:00:54,920 byd go iawn, pan ddaeth i gamddealltwriaeth 19 00:00:54,920 --> 00:00:55,890 sut mae cyfrifiaduron yn gweithio. 20 00:00:55,890 --> 00:00:58,590 Wel, heddiw byddwn yn edrych eto ar un arall o'r syniadau hynny fel 21 00:00:58,590 --> 00:01:01,410 ogystal â pharhau ein trafodaeth ar y cleient CS50 22 00:01:01,410 --> 00:01:04,090 a C a'r hyn y mae'n ei olygu mewn gwirionedd i raglen. 23 00:01:04,090 --> 00:01:06,430 Ond yn gyntaf, dim ond cwpl o gyhoeddiadau corwynt. 24 00:01:06,430 --> 00:01:08,930 >> Adrannau yn dechrau ar ddydd Sul, ac wythnos gyntaf bob amser yn 25 00:01:08,930 --> 00:01:11,030 dipyn o gychwyn gyflym, oherwydd ein bod jyst got yn 26 00:01:11,030 --> 00:01:12,620 eich ffurflenni adran. 27 00:01:12,620 --> 00:01:14,450 Rydym yn gwneud yr un peth, yn awr, gyda'r cymrodyr addysgu, yn awr 28 00:01:14,450 --> 00:01:16,410 eu bod yn gwybod eu hamserlenni, felly rydym yn anelu, gan 29 00:01:16,410 --> 00:01:19,380 Fore Sadwrn, i ddilyn i fyny gyda chi gyda'ch adran 30 00:01:19,380 --> 00:01:20,760 aseiniad a TF. 31 00:01:20,760 --> 00:01:22,770 Sylweddoli bod byddant yn dechrau y diwrnod nesaf, Dydd Sul 32 00:01:22,770 --> 00:01:24,510 neu ddydd Llun neu ddydd Mawrth. 33 00:01:24,510 --> 00:01:27,730 Ac yna byddwn yn darparu ar gyfer newidiadau adran wrth iddynt godi 34 00:01:27,730 --> 00:01:28,690 yn y dyddiau i ddod. 35 00:01:28,690 --> 00:01:31,590 Oriau swyddfa, yn y cyfamser,, unwaith eto, heno, 8 PM 11, yn 36 00:01:31,590 --> 00:01:33,740 Annenberg, yn ogystal â nos yfory. 37 00:01:33,740 --> 00:01:36,150 Er bod y setiau problem yn gyffredinol oherwydd ar ddydd Iau 38 00:01:36,150 --> 00:01:39,020 am hanner dydd, yn sylweddoli bod gennych hyd at bum niwrnod yn hwyr i'w wario, 39 00:01:39,020 --> 00:01:42,430 felly ar gael i oriau swyddfa ar ddydd Iau os 40 00:01:42,430 --> 00:01:45,930 arian i chi yn un o'r dyddiau hynny yn hwyr a, thrwy hynny, cyflwyno 41 00:01:45,930 --> 00:01:47,070 rhywbeth ar ddydd Gwener. 42 00:01:47,070 --> 00:01:50,850 Gadewch i mi yn awgrymu bod Scratch ymhlith yr hwyl yn fwy, ymhlith y 43 00:01:50,850 --> 00:01:52,390 setiau problem fwy isel allweddol. 44 00:01:52,390 --> 00:01:55,160 A byddwn yn hongian ar y dyddiau hynny yn hwyr, yn strategol, dim ond 45 00:01:55,160 --> 00:01:57,380 ar gyfer yn ddiweddarach yn y semester pan fydd bywyd yn dechrau cael yn y ffordd 46 00:01:57,380 --> 00:01:59,470 gyda midterms a dosbarthiadau eraill. 47 00:01:59,470 --> 00:02:01,580 1 Set Problem, yn y cyfamser, yn cael eu postio ar y cwrs 48 00:02:01,580 --> 00:02:06,080 wefan y dydd Gwener hwn, fel y bydd yn daith ar gyfer y cwrs 49 00:02:06,080 --> 00:02:08,789 drwy fideo, a fydd yn cael ei ffilmio am 2:30 pm ar ddydd Gwener 50 00:02:08,789 --> 00:02:11,890 ac yna ei phostio ar-lein erbyn y diwrnod nesaf. 51 00:02:11,890 --> 00:02:13,880 >> Felly, rydym yn dod i ben ar ddydd Llun. 52 00:02:13,880 --> 00:02:15,450 Rwyf am i - mewn gwirionedd, un nodi yma. 53 00:02:15,450 --> 00:02:18,870 Oherwydd bod y dosbarthiadau - gan nad Sanders yn union benthyg 54 00:02:18,870 --> 00:02:22,220 ei hun i Q & A achlysurol yn ôl ac ymlaen yn hollol iawn, rydym yn 55 00:02:22,220 --> 00:02:24,030 yn mynd i roi cynnig ar rywbeth ychydig yn newydd eleni, lle 56 00:02:24,030 --> 00:02:26,160 os nad ydych yn gyfforddus codi eich llaw neu 'ch jyst 57 00:02:26,160 --> 00:02:28,800 Ni fyddai yn hytrach codwch eich llaw mewn ystafell fel hyn, 58 00:02:28,800 --> 00:02:30,710 rydym yn mynd i gael rhai o'r cymrodyr addysgu a CAs 59 00:02:30,710 --> 00:02:33,260 staffio cs50.net/discuss yn ystod darlith. 60 00:02:33,260 --> 00:02:35,440 Felly, os oes gennych gwestiwn am fy mod yn gwbl 61 00:02:35,440 --> 00:02:37,510 aneglur am rywbeth neu os ydych yn chwilfrydig am rai 62 00:02:37,510 --> 00:02:39,640 pwnc, ceisiwch ei bostio yno. 63 00:02:39,640 --> 00:02:42,670 Dagio gyda label o Ddarlith, ac fe wnawn ein gorau 64 00:02:42,670 --> 00:02:45,430 heddiw a'r wythnos nesaf - we'll roi cynnig ar hyn - i maes ei 65 00:02:45,430 --> 00:02:47,990 naill ai'n electronig, ar-lein, neu os yw'n teimlo fel y dylem 66 00:02:47,990 --> 00:02:50,430 wir yn mynd i'r afael yn en masse, un o'r cymrodyr addysgu neu 67 00:02:50,430 --> 00:02:52,080 Bydd CAs godi eu dwylo ac yn gofyn 68 00:02:52,080 --> 00:02:53,480 ddienw ar eich rhan. 69 00:02:53,480 --> 00:02:55,650 Felly, byddwn yn rhoi hyn yn ceisio gweld pa mor dda y mae hyn yn gweithio. 70 00:02:55,650 --> 00:02:58,540 Ond, ar bob cyfrif, yn parhau i godi dwylo fel y byddech yn ei hoffi. 71 00:02:58,540 --> 00:03:11,420 >> Felly, y tro diwethaf rydym yn dangos bod Nid yw 10% neu un rhan o ddeg yw, yn 72 00:03:11,420 --> 00:03:13,840 gwirionedd, 0.1, fel chi yn dysgu nifer o flynyddoedd yn ôl. 73 00:03:13,840 --> 00:03:15,390 Mae'n mewn gwirionedd, mae gwerth fel hyn. 74 00:03:15,390 --> 00:03:16,970 Ond nid yw hynny'n gwbl wir, dde? 75 00:03:16,970 --> 00:03:19,585 Rydym yn unig wedi cyfyngiad hwn mewn cyfrifiaduron sy'n golygu, os ydych yn 76 00:03:19,585 --> 00:03:22,450 Dim ond swm penodol o cof, RAM, neu fwy 77 00:03:22,450 --> 00:03:25,220 yn benodol darnau, wel, dim ond nifer cyfyngedig 78 00:03:25,220 --> 00:03:26,980 o bethau y gallwch ei gynrychioli. 79 00:03:26,980 --> 00:03:29,780 Er enghraifft, os oes gennym y nifer sero, ac rydym am 80 00:03:29,780 --> 00:03:32,790 cynrychioli yn deuaidd, gan ddefnyddio wyth did, lle mae ychydig, 81 00:03:32,790 --> 00:03:34,710 eto, yn sero neu'n un, gallem 82 00:03:34,710 --> 00:03:39,240 cynrychioli fel 00,000,000. 83 00:03:39,240 --> 00:03:41,160 A dyna ychydig yn ddiangen amleiriog. 84 00:03:41,160 --> 00:03:43,700 Yn union fel yn y system degol yn y byd go iawn, 85 00:03:43,700 --> 00:03:47,040 yn gyffredinol, os ydych chi eisiau ysgrifennu rhif 123, rydym yn 86 00:03:47,040 --> 00:03:52,240 pobl na thebyg yn ysgrifennu 00000123 er, 87 00:03:52,240 --> 00:03:53,940 swyddogaethol, dyna yr un nifer yn union. 88 00:03:53,940 --> 00:03:56,580 Rydym yn unig yn galw heibio zeros blaenllaw, fel petai. 89 00:03:56,580 --> 00:03:58,270 >> Yn deuaidd, gallwn wneud yr un peth. 90 00:03:58,270 --> 00:04:01,440 Binary a sero, sero ac deuaidd yn unig yw sero. 91 00:04:01,440 --> 00:04:02,870 Dim ond angen ychydig sengl. 92 00:04:02,870 --> 00:04:05,020 Ond unwaith eto, mae'r uned mwyaf cyffredin o fesur yn y byd 93 00:04:05,020 --> 00:04:07,820 cyfrifiadura yw bytes, wyth did. 94 00:04:07,820 --> 00:04:09,720 Dim ond oherwydd bod un bit, 'n bert' n annefnyddiol. 95 00:04:09,720 --> 00:04:12,020 Wyth darnau, nid ofnadwy o ddefnyddiol, ond o leiaf mae'n fwy 96 00:04:12,020 --> 00:04:14,280 defnyddiol nag un uned o fesur. 97 00:04:14,280 --> 00:04:17,100 Felly, gyda wyth did, byddwn fel arfer yn cynrychioli deuaidd. 98 00:04:17,100 --> 00:04:20,459 Felly dyma ni yn cael y rhifau sero, un, dau, ac yna, fel 99 00:04:20,459 --> 00:04:24,200 Nate wnaeth yn ein fideo ddydd Mercher diwethaf, gallwn barhau i 100 00:04:24,200 --> 00:04:25,940 cyfrif hyd at saith, i wyth. 101 00:04:25,940 --> 00:04:27,860 Ac yna, os ydym yn defnyddio darnau mwy a mwy, rydym yn 102 00:04:27,860 --> 00:04:29,880 Gall gyfrif hyd i anfeidredd. 103 00:04:29,880 --> 00:04:32,800 Ond os mai dim ond nifer cyfyngedig o'r darnau, fel y mae 104 00:04:32,800 --> 00:04:35,030 yr achos mewn unrhyw system gyfrifiadurol, neu hyd yn oed taflegryn 105 00:04:35,030 --> 00:04:36,670 system, wel, yn wir dim ond yn cael 106 00:04:36,670 --> 00:04:37,900 swm cyfyngedig o drachywiredd. 107 00:04:37,900 --> 00:04:41,290 Felly, os ydych am i gynrychioli'r nifer fel 0.1, yn dda, mae'r 108 00:04:41,290 --> 00:04:43,410 gyfrifiadur i ddewis a dethol. 109 00:04:43,410 --> 00:04:45,970 Ac os mai dim ond nifer cyfyngedig o rifau gall 110 00:04:45,970 --> 00:04:50,490 cynrychioli, gall ddod yn agos at 0.1 i chi, ond ni all 111 00:04:50,490 --> 00:04:53,730 reidrwydd yn rhoi i chi yn union y gwerth yr ydych ei eisiau. 112 00:04:53,730 --> 00:04:55,660 Ac mae hyn yn un o'r heriau o gyfrifiaduron, 113 00:04:55,660 --> 00:04:57,090 o dan y cwfl, diolch byth. 114 00:04:57,090 --> 00:04:59,110 >> Wrth i ni symud ymhellach yn y semester, mae'r rhain yn lefel is 115 00:04:59,110 --> 00:05:02,310 manylion dod yn llawer llai diddorol, ond yn sicr mae'r 116 00:05:02,310 --> 00:05:05,700 Gellir cymhwyso'r syniadau hyn gael rhywfaint o byd go iawn 117 00:05:05,700 --> 00:05:06,760 oblygiadau. 118 00:05:06,760 --> 00:05:08,190 Mae un yn hwyl ychydig. 119 00:05:08,190 --> 00:05:12,150 Faint ohonoch chi wedi gweld y ffilm Gofod Swyddfa anhygoel? 120 00:05:12,150 --> 00:05:13,620 Os nad ydych, dyna eich answyddogol 121 00:05:13,620 --> 00:05:14,370 gwaith cartref ar gyfer yr wythnos. 122 00:05:14,370 --> 00:05:16,730 Ond yn y Gofod Swyddfa, y cymrodyr yn y ffilm yn cymryd 123 00:05:16,730 --> 00:05:19,900 manteisio ar union syniad hwn, ond maent mewn gwirionedd yn dwyn 124 00:05:19,900 --> 00:05:21,270 oddi arall movie a allai fod gennych 125 00:05:21,270 --> 00:05:22,760 gweld, hyd yn oed flynyddoedd blaenorol. 126 00:05:22,760 --> 00:05:24,920 Felly, gadewch i mi roi ychydig eiliadau y trelar gan 127 00:05:24,920 --> 00:05:27,470 y ffilm hon anhygoel ac mae hyn yn fawr iawn 128 00:05:27,470 --> 00:05:28,340 academaidd berthnasol. 129 00:05:28,340 --> 00:05:30,310 >> [CHWARAE FFILMIAU] 130 00:05:30,310 --> 00:05:32,240 A dweud y gwir dwi'n cael eu hyrwyddo. 131 00:05:32,240 --> 00:05:33,360 Gallaf raglennu firws a fydd yn RIP bod 132 00:05:33,360 --> 00:05:34,460 gosod oddi ar amser mawr. 133 00:05:34,460 --> 00:05:35,770 Wel, sut mae'n gweithio? 134 00:05:35,770 --> 00:05:37,836 Bob tro y mae trafodiad banc lle mae llog yn 135 00:05:37,836 --> 00:05:40,154 cyfrifiadurol, mae miloedd y dydd, y cyfrifiadur yn dod i ben i fyny 136 00:05:40,154 --> 00:05:41,040 gyda'r ffracsiynau o cant. 137 00:05:41,040 --> 00:05:43,050 Ond nid wyf i'n mynd i wneud unrhyw beth anghyfreithlon. 138 00:05:43,050 --> 00:05:46,730 Anghyfreithlon? Samir, mae hyn yn America. 139 00:05:46,730 --> 00:05:48,010 Mae'n rhaid i chi dyngu i Dduw. 140 00:05:48,010 --> 00:05:51,870 Os nad oes neb yn gwybod am hyn, ond ni, popeth yn iawn? Dim aelodau o'r teulu, dim 141 00:05:51,870 --> 00:05:52,490 cariadon, does neb. 142 00:05:52,490 --> 00:05:53,882 [Anghlywadwy]. 143 00:05:53,882 --> 00:05:57,594 Peidiwch â phoeni, dyn, ni fyddaf yn dweud wrth unrhyw un chwaith. 144 00:05:57,594 --> 00:05:59,680 [FFILMIAU DIWEDD] 145 00:05:59,680 --> 00:06:01,900 >> Mae pob hawl, felly efallai fy mod dod o hyd y ffilm hon yn well na'r rhan fwyaf o 146 00:06:01,900 --> 00:06:05,530 pobl yma, ond mewn unrhyw achos, y firws sy'n eu bod yn 147 00:06:05,530 --> 00:06:06,400 ceisio creu - 148 00:06:06,400 --> 00:06:08,410 ac yn y ffilmiau, unrhyw bryd y byddent yn galw rhywbeth firws, 149 00:06:08,410 --> 00:06:09,770 ei fod nid yn gyffredinol, mewn gwirionedd firws. 150 00:06:09,770 --> 00:06:11,600 Dim ond rhaglen sy'n ysgrifennodd rhywun i wneud rhywbeth. 151 00:06:11,600 --> 00:06:13,800 Ac yn yr achos hwn, y guys yn ceisio ysgrifennu rhaglen 152 00:06:13,800 --> 00:06:16,610 a gymerodd manteisio ar eu cwmni o'r enw Innotech yn 153 00:06:16,610 --> 00:06:19,740 , system gyfrifiadurol lle cyfrifiaduron, hefyd, hyd yn oed pan 154 00:06:19,740 --> 00:06:21,350 yn dod ag arian, all o reidrwydd 155 00:06:21,350 --> 00:06:23,490 cynrychioli arian yn fanwl. 156 00:06:23,490 --> 00:06:27,630 Felly hyd yn oed er y gallai fod gennych $ 0.10 yn eich cyfrif banc, 157 00:06:27,630 --> 00:06:31,060 0.10, wel, efallai y cyfrifiadur mewn gwirionedd yn meddwl bod gennych 158 00:06:31,060 --> 00:06:33,560 hyn cents llawer yn eich cyfrif banc. 159 00:06:33,560 --> 00:06:35,750 Ac felly beth yw'r guys yn anelu at ei wneud - ac maent yn 160 00:06:35,750 --> 00:06:38,240 dwyn y syniad, mae'n troi allan o Superman III, lle 161 00:06:38,240 --> 00:06:41,210 Wnaeth Richard Pryor yr un peth - nhw oedd yn eu hanfod 162 00:06:41,210 --> 00:06:44,880 rhaglenni ysgrifennu sy'n anelu at gymryd pob un o'r llusgo 163 00:06:44,880 --> 00:06:46,930 rhifau, pob un o'r bach, bach, ffracsiynau bach o 164 00:06:46,930 --> 00:06:50,160 ceiniogau, ac yn seiffno rhai nad ydynt fel bod y bobl yn unig 165 00:06:50,160 --> 00:06:52,620 meddwl, oh, dim ond $ 0.10 yno, ond mae pob un o'r rhai 166 00:06:52,620 --> 00:06:54,410 niferoedd llusgo yn y pen draw adio i fyny. 167 00:06:54,410 --> 00:06:57,490 Felly, syniad gwych ac mae'n backfired chwerthin llond eu boliau yn y 168 00:06:57,490 --> 00:06:58,250 ffilm arbennig. 169 00:06:58,250 --> 00:07:01,800 >> Ond yn y byd go iawn, hefyd, mae yna lawer mwy o bryder 170 00:07:01,800 --> 00:07:03,190 goblygiadau y mathau hyn o bethau. 171 00:07:03,190 --> 00:07:05,450 Ac un o'r rhesymau i ddeifio i mewn i'r maes cyfrifiadurol 172 00:07:05,450 --> 00:07:07,620 gwyddoniaeth, unwaith eto, ei berthnasedd nid i'r 173 00:07:07,620 --> 00:07:09,740 gwyddorau peirianneg ei hun, ond dim ond i 174 00:07:09,740 --> 00:07:10,650 meysydd eraill yn ogystal. 175 00:07:10,650 --> 00:07:14,760 Felly, mae hyn yn edrych yn llai ysgafn ar hyn a all fynd o'i le, ond 176 00:07:14,760 --> 00:07:17,630 mae hefyd yn agoriad llygad eithaf, yr wyf yn meddwl, pan ddaw i 177 00:07:17,630 --> 00:07:20,760 deall yn union sut hollbresennol dechnolegau fel 178 00:07:20,760 --> 00:07:22,870 cyfrifiaduron a rhaglennu neu y dyddiau hyn, 179 00:07:22,870 --> 00:07:23,930 ar ffurf meddalwedd. 180 00:07:23,930 --> 00:07:26,500 Felly, mae hyn clip nesaf yn golygu mwy na chwe munud, yn parhau 181 00:07:26,500 --> 00:07:30,320 lle rydym yn gadael i ffwrdd tro diwethaf, ond yn caniatáu i ni edrych ychydig yn 182 00:07:30,320 --> 00:07:33,370 mwy yn fanwl ar ba un bynnag o'r materion hyn. 183 00:07:33,370 --> 00:07:35,270 Gadewch i mi neidio ymlaen i ble rydym yn gadael i ffwrdd, 184 00:07:35,270 --> 00:07:37,780 a oedd yn iawn yma. 185 00:07:37,780 --> 00:07:41,580 Ac mae gennym rhan dau o ddau, am tua chwe munud yma. 186 00:07:41,580 --> 00:07:41,980 >> [CHWARAE FFILMIAU] 187 00:07:41,980 --> 00:07:45,430 Plagued dechnoleg fodern roced. 188 00:07:45,430 --> 00:07:49,280 Yn 1991, gyda dechrau cyntaf Rhyfel y Gwlff, y Gwladgarwr 189 00:07:49,280 --> 00:07:51,350 taflegryn profi fath tebyg o 190 00:07:51,350 --> 00:07:52,645 problem trosi rhif. 191 00:07:52,645 --> 00:07:57,460 Ac o ganlyniad, 20 o bobl, 20 o filwyr Americanaidd, eu lladd 192 00:07:57,460 --> 00:08:01,130 a tua 100 o bobl eraill eu hanafu, pan fydd y Gwladgarwr, a oedd i fod 193 00:08:01,130 --> 00:08:03,400 i ddiogelu yn erbyn Scuds dod i mewn, 194 00:08:03,400 --> 00:08:06,020 wedi methu i danio taflegryn. 195 00:08:06,020 --> 00:08:09,350 >> Pan ymosododd Iraq lansio Kuwait ac America yn Anialwch 196 00:08:09,350 --> 00:08:13,530 Storm yn gynnar ym 1991, batris taflegryn Gwladgarwr oedd 197 00:08:13,530 --> 00:08:16,970 defnyddio i amddiffyn Saudi Arabia ac Israel o Irac 198 00:08:16,970 --> 00:08:19,810 Ymosodiadau taflegrau Scud. 199 00:08:19,810 --> 00:08:23,740 Mae'r Gwladgarwr yn gyfrwng-range yr Unol Daleithiau wyneb-i-awyr system, 200 00:08:23,740 --> 00:08:26,370 gynhyrchwyd gan y cwmni Raytheon. 201 00:08:26,370 --> 00:08:30,860 Mae maint y ataliwr Gwladgarwr ei hun, mae'n ymwneud â 202 00:08:30,860 --> 00:08:35,650 tua 20 troedfedd o hyd ac mae'n pwyso tua 2,000 o bunnoedd. 203 00:08:35,650 --> 00:08:38,809 Ac mae'n cario warhead o tua - Rwy'n credu ei fod yn fras 204 00:08:38,809 --> 00:08:40,169 £ 150. 205 00:08:40,169 --> 00:08:45,820 Ac mae'r warhead ei hun yn ffrwydrol uchel sy'n 206 00:08:45,820 --> 00:08:48,120 darnau o'i gwmpas. 207 00:08:48,120 --> 00:08:51,870 Mae'r casin y warhead wedi'i gynllunio i weithredu fel fwled. 208 00:08:51,870 --> 00:08:54,920 Mae'r taflegrau yn cael eu cynnal pedwar y cynhwysydd ac maent yn 209 00:08:54,920 --> 00:08:57,850 gludo gan ôl-gerbyd lled. 210 00:08:57,850 --> 00:09:02,940 >> Mae'r Gwladgarwr gwrth-taflegryn system yn mynd yn ôl o leiaf i 211 00:09:02,940 --> 00:09:05,530 20 mlynedd yn awr. 212 00:09:05,530 --> 00:09:09,150 Fe'i cynlluniwyd yn wreiddiol fel amddiffyn taflegryn aer i 213 00:09:09,150 --> 00:09:12,920 saethu i lawr awyrennau gelyn, yn y Rhyfel cyntaf y Gwlff. 214 00:09:12,920 --> 00:09:17,700 Pan fydd y rhyfel ddaeth draw, y Fyddin eisiau ei ddefnyddio i saethu 215 00:09:17,700 --> 00:09:19,880 i lawr nid Scuds, awyrennau. 216 00:09:19,880 --> 00:09:24,860 Nid yw'r Llu Awyr Irac oedd cymaint o broblem, ond y Fyddin 217 00:09:24,860 --> 00:09:27,260 yn poeni am Scuds. 218 00:09:27,260 --> 00:09:30,810 Ac felly maent yn ceisio uwchraddio'r Gwladgarwr. 219 00:09:30,810 --> 00:09:33,770 Rhyng-gipio taflegryn gelyn yn teithio ar Mach 5 yn mynd 220 00:09:33,770 --> 00:09:35,790 i fod yn heriol yn ddigon. 221 00:09:35,790 --> 00:09:39,460 Ond pan fydd y Gwladgarwr ei rhuthro i mewn i wasanaeth, y Fyddin 222 00:09:39,460 --> 00:09:43,730 nid oedd yn ymwybodol o addasiad Irac a gwneud eu 223 00:09:43,730 --> 00:09:46,510 Scuds bron yn amhosibl i daro. 224 00:09:46,510 --> 00:09:50,040 >> Beth ddigwyddodd yn y Scuds a oedd yn 225 00:09:50,040 --> 00:09:51,360 yn dod i mewn yn ansefydlog. 226 00:09:51,360 --> 00:09:52,266 Roeddent yn wobbling. 227 00:09:52,266 --> 00:09:56,300 Y rheswm am hyn oedd y Iraciaid, er mwyn cael 600 228 00:09:56,300 --> 00:10:00,650 cilomedr allan o taflegryn ystod cilomedr 300, cymerodd 229 00:10:00,650 --> 00:10:02,423 pwysau allan o'r warhead blaen a 230 00:10:02,423 --> 00:10:03,990 gwneud y warhead ysgafnach. 231 00:10:03,990 --> 00:10:08,700 Felly, yn awr y Gwladgarwr sy'n ceisio dod ar y Scud, a'r rhan fwyaf o'r 232 00:10:08,700 --> 00:10:11,192 yr amser, y mwyafrif llethol o'r amser, byddai'n 233 00:10:11,192 --> 00:10:13,450 dim ond hedfan gan y Scud. 234 00:10:13,450 --> 00:10:16,300 Unwaith y bydd y gweithredwyr Gwladgarwr system sylweddoli y Gwladgarwr 235 00:10:16,300 --> 00:10:20,160 methu â chyrraedd ei tharged, maent yn tanio y warhead Gwladgarwr. 236 00:10:20,160 --> 00:10:22,760 Er mwyn osgoi anafiadau posibl, caniatawyd 237 00:10:22,760 --> 00:10:25,100 i syrthio i'r llawr. 238 00:10:25,100 --> 00:10:29,400 Dyna oedd yr hyn a welodd rhan fwyaf o bobl, fel y fireballs mawr yn yr awyr, 239 00:10:29,400 --> 00:10:34,930 a'i gamddeall fel rhyng-gipio o arfbennau Scud. 240 00:10:34,930 --> 00:10:37,490 >> Er bod, yn awyr y nos, gwladgarwyr yn ymddangos i fod yn 241 00:10:37,490 --> 00:10:41,570 Scuds dinistrio yn llwyddiannus, yn Dhahran, gallai fod dim 242 00:10:41,570 --> 00:10:43,730 camgymeriad am ei pherfformiad. 243 00:10:43,730 --> 00:10:46,370 Yno, system radar y Gwladgarwr yn colli trac o 244 00:10:46,370 --> 00:10:50,090 sy'n dod i mewn Scud a pheidiwch byth â lansio oherwydd 245 00:10:50,090 --> 00:10:51,340 i nam meddalwedd. 246 00:10:54,030 --> 00:10:57,050 Roedd yr Israeliaid oedd y cyntaf i ddarganfod bod y tymor 247 00:10:57,050 --> 00:11:02,000 y system oedd ar, y mwyaf yw'r anghysondeb amser daeth, 248 00:11:02,000 --> 00:11:05,530 oherwydd cloc yn rhan annatod o gyfrifiadur y system. 249 00:11:05,530 --> 00:11:09,060 Mae tua dwy wythnos cyn y drychineb yn Dhahran, y 250 00:11:09,060 --> 00:11:11,730 Israeliaid adroddwyd i'r Adran Amddiffyn y 251 00:11:11,730 --> 00:11:13,250 system yn colli amser. 252 00:11:13,250 --> 00:11:15,610 Ar ôl tua wyth awr o redeg, maent yn sylwi bod y 253 00:11:15,610 --> 00:11:18,330 system yn dod yn amlwg yn llai cywir. 254 00:11:18,330 --> 00:11:20,910 Ymatebodd yr Adran Defense drwy ddweud wrth bawb o 255 00:11:20,910 --> 00:11:23,710 Nid y batris Gwladgarwr i adael y systemau 256 00:11:23,710 --> 00:11:25,450 ymlaen am amser hir. 257 00:11:25,450 --> 00:11:28,010 Maent byth yn dweud beth amser hir oedd - 8 awr, 10 258 00:11:28,010 --> 00:11:29,690 oriau, 1,000 o oriau. 259 00:11:29,690 --> 00:11:31,940 Does neb yn gwybod. 260 00:11:31,940 --> 00:11:35,020 >> Mae'r batri Gwladgarwr lleoli yn y barics yn Dhahran 261 00:11:35,020 --> 00:11:39,030 ac mae ei gloc yn ddiffygiol mewnol wedi bod ar fwy na 100 o oriau ar 262 00:11:39,030 --> 00:11:42,240 noson 25 Chwefror. 263 00:11:42,240 --> 00:11:46,580 Mae'n olrhain amser i gywirdeb o tua un rhan o ddeg eiliad. 264 00:11:46,580 --> 00:11:48,830 Erbyn hyn, mae rhan o ddeg o'r ail yw nifer ddiddorol oherwydd 265 00:11:48,830 --> 00:11:52,660 Ni ellir ei fynegi mewn binary, yn union, sy'n golygu 266 00:11:52,660 --> 00:11:54,940 ni ellir ei mynegi yn union mewn unrhyw 267 00:11:54,940 --> 00:11:57,330 cyfrifiadur modern digidol. 268 00:11:57,330 --> 00:11:59,130 Mae'n anodd credu. 269 00:11:59,130 --> 00:12:01,720 Ond yn defnyddio hwn fel enghraifft. 270 00:12:01,720 --> 00:12:04,090 >> Gadewch i ni gymryd y rhif un trydydd. 271 00:12:04,090 --> 00:12:07,950 Ni all un o bob tri yn cael ei fynegi mewn degol, yn union. 272 00:12:07,950 --> 00:12:12,710 Traean yn cael ei 0.333 mynd ymlaen am anfeidredd. 273 00:12:12,710 --> 00:12:17,050 Does dim ffordd i wneud hynny gyda chywirdeb absoliwt yn degol. 274 00:12:17,050 --> 00:12:19,340 Dyna'n union yr un fath o broblem a ddigwyddodd yn 275 00:12:19,340 --> 00:12:20,190 y Gwladgarwr. 276 00:12:20,190 --> 00:12:24,680 Po hiraf yn rhedeg y system, y gwaethaf y gwall amser daeth. 277 00:12:24,680 --> 00:12:28,640 Ar ôl 100 awr o weithredu, mae'r gwall mewn amser yn unig oedd 278 00:12:28,640 --> 00:12:29,870 tua thraean o eiliad. 279 00:12:29,870 --> 00:12:34,790 Ond o ran targedu taflegryn sy'n teithio ar Mach 5, 280 00:12:34,790 --> 00:12:39,140 mae'n arwain at gwall olrhain dros 600 metr. 281 00:12:39,140 --> 00:12:42,510 Byddai'n gamgymeriad angheuol ar gyfer y milwyr yn Dhahran. 282 00:12:42,510 --> 00:12:48,680 >> Beth ddigwyddodd yn lansio Scud ei ganfod gan y rhybudd cynnar 283 00:12:48,680 --> 00:12:52,440 lloerennau ac maent yn gwybod bod y Scud yn dod yn eu 284 00:12:52,440 --> 00:12:53,350 cyfeiriad cyffredinol. 285 00:12:53,350 --> 00:12:55,470 Doedden nhw ddim yn gwybod lle cafodd ei dod. 286 00:12:55,470 --> 00:12:58,210 Roedd yn awr i fyny at y gydran radar y Gwladgarwr 287 00:12:58,210 --> 00:13:01,920 system, amddiffyn Dhahran, i leoli a chadw golwg ar y 288 00:13:01,920 --> 00:13:03,700 taflegryn gelyn dod i mewn. 289 00:13:03,700 --> 00:13:05,390 Roedd y radar yn smart iawn. 290 00:13:05,390 --> 00:13:07,570 Byddech yn mewn gwirionedd yn olrhain lleoliad y Scud ac yna 291 00:13:07,570 --> 00:13:10,340 ragfynegi lle byddai'n debygol o fod y tro nesaf y 292 00:13:10,340 --> 00:13:12,040 radar anfon curiad allan. 293 00:13:12,040 --> 00:13:13,730 Dyna oedd enw y giât ystod. 294 00:13:13,730 --> 00:13:18,820 Yna, unwaith y bydd y Gwladgarwr yn penderfynu digon o amser wedi mynd heibio i fynd 295 00:13:18,820 --> 00:13:22,600 gefn a gwirio lleoliad nesaf ar gyfer y canfyddir 296 00:13:22,600 --> 00:13:24,190 gwrthrych, mae'n mynd yn ôl. 297 00:13:24,190 --> 00:13:27,940 Felly pan aeth yn ôl i'r lle anghywir, yna yn gweld unrhyw 298 00:13:27,940 --> 00:13:31,000 wrthwynebu, ac mae'n penderfynu nad oedd gwrthrych. 299 00:13:31,000 --> 00:13:34,370 Roedd yn canfod ffug ac yn disgyn y trac. 300 00:13:34,370 --> 00:13:37,630 >> Diflannodd y Scud sy'n dod i mewn oddi wrth y sgrin radar. 301 00:13:37,630 --> 00:13:41,300 Ac eiliadau yn ddiweddarach, mae'n Condemniwyd hi i mewn i'r barics. Mae'r Scud 302 00:13:41,300 --> 00:13:44,730 lladd 28 a oedd yr un olaf ei tanio yn ystod 303 00:13:44,730 --> 00:13:46,450 y Rhyfel cyntaf y Gwlff. 304 00:13:46,450 --> 00:13:50,570 Yn drasig, y meddalwedd diweddaru cyrraedd Dhahran 305 00:13:50,570 --> 00:13:52,060 y diwrnod canlynol. 306 00:13:52,060 --> 00:13:56,210 Ac mae'r diffyg meddalwedd wedi ei osod, cau un bennod yn 307 00:13:56,210 --> 00:13:58,370 hanes cythryblus y taflegryn Gwladgarwr. 308 00:14:01,790 --> 00:14:04,990 Gwladgarwr mewn gwirionedd yn acronym ar gyfer "Olrhain Array raddol 309 00:14:04,990 --> 00:14:08,516 Rhyng-gipio Targed. " 310 00:14:08,516 --> 00:14:13,390 >> Mae pob hawl, felly mae llawer mwy ar ganlyniadau drist pryd nad oedd yn 311 00:14:13,390 --> 00:14:14,430 ddeall y byd. 312 00:14:14,430 --> 00:14:18,180 A'r tecawê, mewn gwirionedd, gan y ffilm yw fod yr ateb 313 00:14:18,180 --> 00:14:20,790 roedd yna ailgychwyn eich system amddiffyn taflegryn 314 00:14:20,790 --> 00:14:21,770 pob siwrnai mewn blwc. 315 00:14:21,770 --> 00:14:24,280 Ac felly eto, un o amcanion y cwrs, yn sicr 316 00:14:24,280 --> 00:14:26,900 ar raddfa fwy gostyngedig na'r ceisiadau hyn, yw 317 00:14:26,900 --> 00:14:30,710 llygaid pawb mewn gwirionedd yn agored i union sut yr ydych yn mynd ati i 318 00:14:30,710 --> 00:14:34,380 peiriannau yn gwneud gwneud yr hyn rydych eisiau iddynt ei wneud a sut rydych yn mynd 319 00:14:34,380 --> 00:14:37,180 am wneud hynny yn gywir, tra ar hyd y ffordd wneud hynny 320 00:14:37,180 --> 00:14:38,810 yn dda, cain, ac yn y blaen. 321 00:14:38,810 --> 00:14:41,680 Ac felly heddiw, gadewch i blymio i mewn i ychydig yn fwy o hyn, ond 322 00:14:41,680 --> 00:14:44,210 fel nad ydym yn mynd yn rhy gyflym, yn enwedig ar gyfer rhai sy'n llai 323 00:14:44,210 --> 00:14:46,590 gyfforddus, ond hefyd fel y gallwn gadw diddordeb y 324 00:14:46,590 --> 00:14:49,390 rhai sy'n fwy cyfforddus, gadewch i ni dim ond yn gyflym yn dechrau gydag ychydig 325 00:14:49,390 --> 00:14:50,970 o ailadrodd rhai o'r syniadau hyn. 326 00:14:50,970 --> 00:14:53,710 Ac eto, gofynnwch i ffwrdd, yn bersonol neu ar-lein, os oes gennych 327 00:14:53,710 --> 00:14:56,320 cwestiynau fel y gallwn gadw pawb ar yr un dudalen. 328 00:14:56,320 --> 00:14:58,820 >> Felly, y Appliance CS50, quick step yn ôl, yn 329 00:14:58,820 --> 00:15:02,360 beth, yn eich geiriau eich hun? 330 00:15:02,360 --> 00:15:06,454 Mae'n iawn os nad oes gennych syniad beth gall y geiriau fod eto. 331 00:15:06,454 --> 00:15:07,830 [Anghlywadwy] 332 00:15:07,830 --> 00:15:10,950 Iawn, felly mae rhyngwyneb cyffredinol ar gyfer - 333 00:15:10,950 --> 00:15:11,900 y gallwn i gyd rannu. 334 00:15:11,900 --> 00:15:12,470 Yn hollol. 335 00:15:12,470 --> 00:15:14,840 Felly, gallem, er enghraifft, dweud wrthych i fynd i rai 336 00:15:14,840 --> 00:15:16,910 gwefan, lawrlwythwch y meddalwedd ar gyfer Mac OS. 337 00:15:16,910 --> 00:15:19,140 Lawrlwythwch y meddalwedd ar gyfer Windows, ffurfweddu yn 338 00:15:19,140 --> 00:15:20,100 hyn ac y. 339 00:15:20,100 --> 00:15:22,370 Ond y gwir amdani yw, yna rydym yn rhedeg i mewn technegol di-rif 340 00:15:22,370 --> 00:15:23,200 gefnogi materion. 341 00:15:23,200 --> 00:15:26,630 A hefyd y dyddiau hyn, mae llawer o'r hyn sy'n cael ei wneud ochr y gweinydd, 342 00:15:26,630 --> 00:15:28,490 ym myd cyfrifiadureg, yn enwedig pan ddaw i 343 00:15:28,490 --> 00:15:31,460 ar y we datblygu a cheisiadau ar y we, mewn gwirionedd 344 00:15:31,460 --> 00:15:35,110 yn aml wneud ar gyfrifiaduron Linux neu Unix, yn hytrach na 345 00:15:35,110 --> 00:15:36,800 Macs neu gyfrifiaduron Windows. 346 00:15:36,800 --> 00:15:39,240 >> Felly, ymysg y upsides, yna, o ddefnyddio peth hyn a elwir y 347 00:15:39,240 --> 00:15:41,500 CS50 Offer yw y bydd gan bob un ohonom yr un amgylchedd. 348 00:15:41,500 --> 00:15:43,670 Felly, mae pawb sydd ar y dudalen un fath ni waeth pa galedwedd chi 349 00:15:43,670 --> 00:15:46,650 Daeth i'r campws gyda nhw, ond bydd hefyd yn dabbling yn union 350 00:15:46,650 --> 00:15:48,230 yr un amgylchedd y byddwch yn ei ddefnyddio tuag at 351 00:15:48,230 --> 00:15:51,080 diwedd semester yn ogystal ar gyfer datblygu ar y we, yn ogystal ag yn y 352 00:15:51,080 --> 00:15:53,580 dyfodol ar gyfer ceisiadau byd go iawn ohono. 353 00:15:53,580 --> 00:15:56,350 Felly yn fwy concretely, mae'r Offer CS50 yn ddarn rhad ac am ddim o 354 00:15:56,350 --> 00:15:59,400 meddalwedd sy'n caniatáu i chi redeg system weithredu arall, 355 00:15:59,400 --> 00:16:02,670 Linux, yn yr achos hwn, ar eich cyfrifiadur eich hun, mewn ffenestr. 356 00:16:02,670 --> 00:16:04,750 Nawr nid ydych yn gallu lawrlwytho'r offer. 357 00:16:04,750 --> 00:16:08,170 Byddwch angen rhaglen i'w ddefnyddio i chwarae neu redeg y ddyfais. 358 00:16:08,170 --> 00:16:11,220 A bod darn o feddalwedd yn cael ei adnabod yn gyffredinol fel 359 00:16:11,220 --> 00:16:11,520 hypervisor. 360 00:16:11,520 --> 00:16:14,050 Hypervisors ddod yn y ffurf o gynhyrchion fel VMware, 361 00:16:14,050 --> 00:16:15,820 Blwch Rhithwir, Parallels. 362 00:16:15,820 --> 00:16:18,390 Mae pob math o gwmnïau yn gwneud meddalwedd, yn rhydd ac 363 00:16:18,390 --> 00:16:19,310 masnachol, fel ei gilydd. 364 00:16:19,310 --> 00:16:21,480 Beth fyddwch chi'n ei weld yn Problem Set 1 cyfarwyddiadau ar sut i 365 00:16:21,480 --> 00:16:23,440 gael meddalwedd am ddim i'w ddefnyddio i 366 00:16:23,440 --> 00:16:25,000 rhedeg y Appliance CS50. 367 00:16:25,000 --> 00:16:28,060 Ac unwaith y byddwch yn ei wneud, bydd gennych, mewn ffenestr ar eich Mac neu PC, 368 00:16:28,060 --> 00:16:30,710 amgylchedd penbwrdd sy'n edrych yn debyg i hyn, lle 369 00:16:30,710 --> 00:16:33,100 mae ganddo Cychwyn dewislen tebyg i beth yn y 370 00:16:33,100 --> 00:16:34,510 gwaelod gornel chwith. 371 00:16:34,510 --> 00:16:38,030 Mae ganddo, ffolder Cartref neu cyfeiriadur cartref, yn yr ochr chwith uchaf 372 00:16:38,030 --> 00:16:40,280 yno, a sbwriel yn gallu, ac yn y blaen. 373 00:16:40,280 --> 00:16:43,450 Felly, byddwn yn canfod ar wahân y manylion angenrheidiol wrth i ni fynd. 374 00:16:43,450 --> 00:16:46,430 >> Ond yn awr, gadewch i ni ddechrau i ddeifio i mewn i C. 375 00:16:46,430 --> 00:16:49,200 Felly C yn yr iaith hon raglennu, yn debyg o ran ysbryd i'r 376 00:16:49,200 --> 00:16:52,390 Scratch, ond yn llawer llai graffigol, ond yn eironig, ymhell 377 00:16:52,390 --> 00:16:54,730 yn fwy pwerus ar ôl i chi gael savvy ag ef. 378 00:16:54,730 --> 00:16:58,970 Felly, yn C, byddwn yn ysgrifennu rhaglenni drwy ysgrifennu cod ffynhonnell, sydd yn 379 00:16:58,970 --> 00:17:01,640 y gystrawen Saesneg-fel, yn debyg i'r sanau 380 00:17:01,640 --> 00:17:05,609 arddangos ein bod yn gwneud y tro diwethaf sy'n eich galluogi i 381 00:17:05,609 --> 00:17:07,910 mynegi eich hun yn weddol fanwl gywir, os 382 00:17:07,910 --> 00:17:09,760 arcanely, i'r cyfrifiadur. 383 00:17:09,760 --> 00:17:11,960 >> Felly, pa fath o feddalwedd gynnyrch ydych chi'n ei angen mewn gwirionedd 384 00:17:11,960 --> 00:17:15,520 i ysgrifennu rhaglenni mewn iaith fel C, yn seiliedig ar ein 385 00:17:15,520 --> 00:17:17,492 sgwrs ar ddydd Llun? 386 00:17:17,492 --> 00:17:19,650 [Anghlywadwy] 387 00:17:19,650 --> 00:17:21,079 OK, 'ch jyst angen golygydd testun. 388 00:17:21,079 --> 00:17:22,890 Nid oes angen unrhyw feddalwedd arbennig 389 00:17:22,890 --> 00:17:24,460 fel y cyfryw i ysgrifennu rhaglenni. 390 00:17:24,460 --> 00:17:27,220 'Ch jyst angen golygydd testun fel Notepad, ar Windows, 391 00:17:27,220 --> 00:17:30,450 TextEdit ar Mac, neu rywbeth a elwir yn gedit, yn y byd o 392 00:17:30,450 --> 00:17:32,020 Linux, y byddwn yn ei ddefnyddio yma. 393 00:17:32,020 --> 00:17:33,750 A dyna ni, i ysgrifennu rhaglenni. 394 00:17:33,750 --> 00:17:35,480 >> Ond ysgrifennu dim ond hanner yr hafaliad. 395 00:17:35,480 --> 00:17:36,630 Yna bydd angen i'w rhedeg. 396 00:17:36,630 --> 00:17:38,320 Ond er mwyn rhedeg rhaglenni - 397 00:17:38,320 --> 00:17:39,600 Ni allwch chi redeg cod ffynhonnell. 398 00:17:39,600 --> 00:17:41,500 Chi yn lle hynny rhaid i chi wneud beth i yn gyntaf? 399 00:17:41,500 --> 00:17:41,900 Yeah. 400 00:17:41,900 --> 00:17:43,200 DAVID J. Malan: Mae angen i chi 401 00:17:43,200 --> 00:17:44,130 llunio ei. 402 00:17:44,130 --> 00:17:49,010 Ac, rhywun arall, llunio'r cod ffynhonnell yn golygu - 403 00:17:49,010 --> 00:17:50,260 [Anghlywadwy] 404 00:17:52,300 --> 00:17:52,700 DAVID J. Malan: Yn union. 405 00:17:52,700 --> 00:17:54,430 Cyfieithu i sero a rhai. 406 00:17:54,430 --> 00:17:57,150 Gan fod pob un ohonom, y dyddiau hyn, gyfrifiaduron sydd wedi CPUs, 407 00:17:57,150 --> 00:18:00,350 bron pob un ohonynt yn cael eu gwneud gan gwmni o'r enw Intel, ac 408 00:18:00,350 --> 00:18:03,320 Intel Y tu mewn, yn golygu fod y tu mewn i'r ymennydd eich 409 00:18:03,320 --> 00:18:04,990 gyfrifiadur, a elwir yn y CPU. 410 00:18:04,990 --> 00:18:07,570 Ac un o'r pethau y bod ymennydd yn ei wneud yn, mae'n gwybod 411 00:18:07,570 --> 00:18:10,390 sut i ddeall patrymau o sero a rhai. 412 00:18:10,390 --> 00:18:13,240 Mae'n gwybod beth patrwm o ddarnau yn cynrychioli ogystal, pa 413 00:18:13,240 --> 00:18:15,500 patrwm yn cynrychioli Tynnu gyda, pa batrwm o 414 00:18:15,500 --> 00:18:18,890 darnau cynrychioli argraffu, ac yn creu sain clywadwy. 415 00:18:18,890 --> 00:18:22,450 >> Felly, yn fyr, y CPU, ynghyd â'r system weithredu, 416 00:18:22,450 --> 00:18:25,230 sydd yn ddarn o feddalwedd sy'n rhedeg ar ben y CPU, 417 00:18:25,230 --> 00:18:26,050 felly, i siarad. 418 00:18:26,050 --> 00:18:29,850 Gyda'i gilydd, y ddau ddarn yn gwybod sut i redeg rhaglenni sy'n 419 00:18:29,850 --> 00:18:31,070 rydym yn bodau dynol ysgrifennu. 420 00:18:31,070 --> 00:18:34,040 >> Felly, os byddaf yn mynd i mewn i'r Appliance CS50 yma, mae angen i mi agor 421 00:18:34,040 --> 00:18:35,660 i fyny golygydd testun a gallaf gael gafael ar y 422 00:18:35,660 --> 00:18:36,560 mewn dwy ffordd. 423 00:18:36,560 --> 00:18:39,060 Gallaf naill ai fynd i Fynegai'r, Rhaglennu, 424 00:18:39,060 --> 00:18:40,230 ac yna gallaf ddewis - 425 00:18:40,230 --> 00:18:40,810 Na, nid y fwydlen. 426 00:18:40,810 --> 00:18:43,860 Gallaf fynd i Ategolion / gedit yma i agor 427 00:18:43,860 --> 00:18:45,090 fy golygydd testun bach. 428 00:18:45,090 --> 00:18:48,030 Neu yn fwy syml, gallaf glicio ar yr eicon hwn bach yn y gwaelod 429 00:18:48,030 --> 00:18:48,970 gornel chwith. 430 00:18:48,970 --> 00:18:50,430 Ac yn awr yr wyf yn cael yr amgylchedd yma. 431 00:18:50,430 --> 00:18:52,590 Mae'n eithaf atgoffa rhywun o golygydd testun syml, gyda dim ond 432 00:18:52,590 --> 00:18:53,820 un neu ddau o wahaniaethau. 433 00:18:53,820 --> 00:18:56,420 Yn y top, lle mae'r cyrchwr yn amrantu yn awr, dyma lle 434 00:18:56,420 --> 00:18:57,900 Gallaf ddechrau ysgrifennu fy cod. 435 00:18:57,900 --> 00:19:00,415 Yn y gwaelod mae hyn yn beth a elwir yn y ffenestr terfynell. 436 00:19:00,415 --> 00:19:03,400 A gall pa fathau o bethau yr wyf yn ei wneud yn hyn o 437 00:19:03,400 --> 00:19:04,960 hyn a elwir yn ffenestr terfynell? 438 00:19:04,960 --> 00:19:06,680 [Anghlywadwy] 439 00:19:06,680 --> 00:19:07,890 >> Iawn, felly byddaf yn rhedeg gorchmynion. 440 00:19:07,890 --> 00:19:10,300 Ac mae rhai o'r gorchmynion ydym yn rhedeg ar ddydd Llun ychydig yn 441 00:19:10,300 --> 00:19:15,070 cryptig i ddechrau, ond ls am restr, cd gyfer cyfeiriadur newid, 442 00:19:15,070 --> 00:19:16,540 rm, ar gyfer cael gwared. 443 00:19:16,540 --> 00:19:19,680 Felly, mae'n fath o ffordd hen-ysgol o lywio eich 444 00:19:19,680 --> 00:19:22,310 cyfrifiadur, gan ddefnyddio dim ond eich bysellfwrdd a gorchmynion testunol, 445 00:19:22,310 --> 00:19:24,130 ac nid, yn gyffredinol, gan ddefnyddio llygoden. 446 00:19:24,130 --> 00:19:25,960 Ond byddwn yn gweld, cyn hir, mae hyn mewn gwirionedd yn rhoi i ni 447 00:19:25,960 --> 00:19:28,520 pŵer ychydig yn fwy a thrachywiredd ychydig mwy i 448 00:19:28,520 --> 00:19:29,600 mynegi ein hunain. 449 00:19:29,600 --> 00:19:31,330 Ac yna dros yma ar y chwith, rydym yn jyst yn mynd i weld, 450 00:19:31,330 --> 00:19:34,360 wrth i ni ddechrau, meddalwedd ysgrifennu crynodeb ychydig o 451 00:19:34,360 --> 00:19:36,350 rhaglen yr ydym wedi ysgrifennu ar y chwith uchaf. 452 00:19:36,350 --> 00:19:38,360 Ond byddwn yn gweld hynny eto cyn bo hir. 453 00:19:38,360 --> 00:19:40,050 >> Felly, gadewch i ni wneud rhywbeth eithaf syml yma. 454 00:19:40,050 --> 00:19:43,440 Gadewch i mi yn gyntaf fynd yn ei flaen ac yn mynd i Ffeil, Achub, ac rwy'n dim ond 455 00:19:43,440 --> 00:19:45,970 mynd i glicio ar jharvard yma, drosodd ar y chwith, a 456 00:19:45,970 --> 00:19:48,930 jharvard yw, unwaith eto, yr enw ar gyfer fy blygell gartref, fy 457 00:19:48,930 --> 00:19:52,110 ffeiliau personol, i mi, bellach yn cael eu John Harvard, gan fod pob un ohonoch 458 00:19:52,110 --> 00:19:54,230 Cyn bo hir bydd John Harvard yn yr amgylchedd hwn. 459 00:19:54,230 --> 00:19:57,360 Mae ganddo y cyfeiriadur cartref, Fy Dogfennau ac yn y blaen, 460 00:19:57,360 --> 00:19:58,900 yr wyf am ei gynilo, yn awr, y ffeil hon i mewn 461 00:19:58,900 --> 00:20:01,520 Felly, yr wyf i'n mynd i alw hello.c. Wedyn dw i'n mynd i fynd 462 00:20:01,520 --> 00:20:05,770 ymlaen cliciwch ac Achub, ac yn awr yr hyn sydd gennyf yma yw tab 463 00:20:05,770 --> 00:20:09,440 a elwir yn hello.c, cymaint fel math arall o golygydd. 464 00:20:09,440 --> 00:20:11,760 >> Felly nawr gadewch i mi fynd yn ei flaen ac yn dechrau ysgrifennu rhaglen. 465 00:20:11,760 --> 00:20:14,440 int brif (gwag). 466 00:20:14,440 --> 00:20:18,150 Ac yna Fi jyst yn gwneud y tro diwethaf, printf, ar gyfer print fformatio, 467 00:20:18,150 --> 00:20:22,120 ("Helo, byd!" 468 00:20:22,120 --> 00:20:24,500 );. 469 00:20:24,500 --> 00:20:25,630 Mae bron gwblhau. 470 00:20:25,630 --> 00:20:27,130 Ond dw i'n colli ychydig o fanylion. 471 00:20:27,130 --> 00:20:30,210 Beth sydd ar goll o'r rhaglen hon y Fi 'n sylweddol angen am 472 00:20:30,210 --> 00:20:31,890 i lunio mewn gwirionedd? 473 00:20:31,890 --> 00:20:32,130 Yeah. 474 00:20:32,130 --> 00:20:33,980 [Anghlywadwy]? 475 00:20:33,980 --> 00:20:35,770 >> DAVID J. Malan: Yeah, felly mae angen i mi gynnwys y safon 476 00:20:35,770 --> 00:20:36,700 I / O llyfrgell. 477 00:20:36,700 --> 00:20:39,470 Felly, mae angen i fynd uchod bennaf, hyd Im 'jyst yn mynd i 478 00:20:39,470 --> 00:20:40,790 gwneud rhywfaint o le ar ei gyfer yno. 479 00:20:40,790 --> 00:20:44,420 Ac yr wyf i'n mynd i wneud # cynnwys . 480 00:20:44,420 --> 00:20:46,570 Ac yn sylwi ar y cromfachau onglog yno. 481 00:20:46,570 --> 00:20:49,410 Ac fel o'r neilltu, gedit yn defnyddio ychydig yn gyfeillgar, os 482 00:20:49,410 --> 00:20:52,420 weithiau ychydig yn gymhleth, gan ei fod yn ceisio helpu eich 483 00:20:52,420 --> 00:20:54,770 llygaid sylwi ar yr hyn llinellau i fyny gyda'r hyn. 484 00:20:54,770 --> 00:20:57,760 Felly, mae'r ffaith bod fy cyrchwr yn iawn nesaf at y onglog 485 00:20:57,760 --> 00:21:00,600 braced, sylwch sut mae'n tynnu sylw at y ongl eraill 486 00:21:00,600 --> 00:21:01,920 braced ynghyd â hyn un. 487 00:21:01,920 --> 00:21:03,770 A dim ond i dynnu fy sylw at y ffaith fy mod 488 00:21:03,770 --> 00:21:04,460 gael cymesuredd. 489 00:21:04,460 --> 00:21:07,010 Ac cymesuredd mewn rhaglenni yn gyffredinol yn beth da. 490 00:21:07,010 --> 00:21:10,270 Yn yr un modd, os wyf yn symud fy cyrchwr i'r diwedd, sylwch sut y mae'r 491 00:21:10,270 --> 00:21:13,630 braces cyrliog llinell i fyny i ddangos, ie, mae gennyf un agored 492 00:21:13,630 --> 00:21:15,160 ac yn un gaeedig, felly, i siarad. 493 00:21:15,160 --> 00:21:16,640 >> Gall pob hawl, ac yr wyf yn gwneud un peth arall. 494 00:21:16,640 --> 00:21:20,090 Dyw hi ddim yn hollol angenrheidiol, ond mae arferion da, i ddweud 495 00:21:20,090 --> 00:21:21,250 dychwelyd 0. 496 00:21:21,250 --> 00:21:24,140 A 0 dychwelyd yn gwneud yr hyn i ni yma? 497 00:21:24,140 --> 00:21:25,584 Neu arwydd beth? 498 00:21:25,584 --> 00:21:27,480 [Anghlywadwy] 499 00:21:27,480 --> 00:21:28,300 DAVID J. Malan: Ond dim byd o'i le. 500 00:21:28,300 --> 00:21:30,280 A dweud y gwir mae'n anodd i lawer fynd o'i le mewn 501 00:21:30,280 --> 00:21:31,250 rhaglennu byr hwn. 502 00:21:31,250 --> 00:21:33,930 Felly, Im 'jyst yn bod yn super eglur bod popeth yn iawn. 503 00:21:33,930 --> 00:21:36,740 Yr wyf fi, y dynol, pan fyddaf yn rhedeg y rhaglen, mae'n debygol y bydd byth yn 504 00:21:36,740 --> 00:21:38,150 gweld bod 0. 505 00:21:38,150 --> 00:21:41,070 Yn gyffredinol, mae'r niferoedd sy'n cael eu dychwelyd o brif 506 00:21:41,070 --> 00:21:43,540 Dim ond fagu eu pennau i bobl pan 507 00:21:43,540 --> 00:21:44,360 rhywbeth yn mynd o'i le. 508 00:21:44,360 --> 00:21:46,640 A ydych yn cael pop bach i fyny gwall system yn dweud, un, 509 00:21:46,640 --> 00:21:48,760 dau, tri, neu beth bynnag y nifer oedd bod 510 00:21:48,760 --> 00:21:50,100 ei ddychwelyd mewn gwirionedd. 511 00:21:50,100 --> 00:21:52,870 Felly unrhyw beth arall o'i le ar hyn? 512 00:21:52,870 --> 00:21:55,300 [Anghlywadwy] 513 00:21:55,300 --> 00:21:58,100 >> DAVID J. Malan: Felly, nid yw hyn yn gymaint o gamgymeriad swyddogaethol 514 00:21:58,100 --> 00:21:59,240 ond yn un esthetig. 515 00:21:59,240 --> 00:22:02,340 Mae'n debyg y dylwn roi mewn cymeriad Newline yno ar y 516 00:22:02,340 --> 00:22:05,240 ddiwedd y llinyn fel ein bod mewn gwirionedd yn symud y cyrchwr i 517 00:22:05,240 --> 00:22:08,340 y llinell nesaf, a bydd y rhaglen yn unig yn edrych ychydig yn prettier. 518 00:22:08,340 --> 00:22:10,340 >> Felly nawr gadewch i mi fynd i lawr at fy ffenestr terfynell 519 00:22:10,340 --> 00:22:11,490 a chwyddo yn ôl i mewn 520 00:22:11,490 --> 00:22:13,390 Ac mae hyn yn beth yma, fe'i elwir yn brydlon. 521 00:22:13,390 --> 00:22:16,760 Mae'n dim ond fy atgoffa pwy ydw i, jharvard @ offer, lle 522 00:22:16,760 --> 00:22:18,850 offer yn enw'r cyfrifiadur dwi ar. 523 00:22:18,850 --> 00:22:22,380 Yn y cromfachau yw hyn tilde, y symbol squiggle, sy'n 524 00:22:22,380 --> 00:22:24,160 cynrychioli'r hyn? 525 00:22:24,160 --> 00:22:25,590 GYNULLEIDFA: cyfeiriadur cartref. 526 00:22:25,590 --> 00:22:26,350 DAVID J. Malan: cyfeiriadur cartref. 527 00:22:26,350 --> 00:22:29,350 Felly dyna dim ond nodiant llaw-fer am ddweud eich bod yn 528 00:22:29,350 --> 00:22:32,780 eich ffolder personol lle mae pob un o'ch ffeiliau yn mynd yn ddiofyn. 529 00:22:32,780 --> 00:22:36,080 Felly nawr, yma, gallaf deipio ls ar gyfer rhestr. 530 00:22:36,080 --> 00:22:40,020 A'r unig beth yr wyf yn gweld yma ar hyn o bryd yn hello.c. 531 00:22:40,020 --> 00:22:41,770 Ac mae hynny'n beth da oherwydd fy mod newydd ei ysgrifennu hyn. 532 00:22:41,770 --> 00:22:44,380 >> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud helo. 533 00:22:44,380 --> 00:22:46,830 Ac yn sylwi nad wyf i'n teipio yn gwneud hello.c. 534 00:22:46,830 --> 00:22:50,300 Yn hytrach, Im 'yn unig teipio enw'r waelod y ffeil, helo. 535 00:22:50,300 --> 00:22:53,690 A gwnewch, fel y gwelsom ddydd Llun bydd, dim ond casglu fy mod am 536 00:22:53,690 --> 00:22:54,920 y. ffeil c. 537 00:22:54,920 --> 00:22:56,820 Felly, yn awr yr wyf wedi ei deipio i wneud helo. 538 00:22:56,820 --> 00:22:59,280 Nawr rwy'n gweld y gorchymyn yn weddol hir a bydd yn parhau 539 00:22:59,280 --> 00:23:00,480 gweld hyn dro ar ôl tro. 540 00:23:00,480 --> 00:23:03,620 Ond i fod yn glir, clang, y gair mai dim ond yn ymddangos, 541 00:23:03,620 --> 00:23:05,340 bod yn y compiler gwirioneddol. 542 00:23:05,340 --> 00:23:08,200 Gwnewch yn unig yw cyfleustodau adeiladu. 543 00:23:08,200 --> 00:23:11,900 Mae'n dim ond rhaglen mwy cyfeillgar sy'n arbed i mi, yn y 544 00:23:11,900 --> 00:23:15,310 tymor hir, rhag gorfod teipio allan anhygoel o ddiflas hir 545 00:23:15,310 --> 00:23:17,020 gorchmynion fel 'na un. 546 00:23:17,020 --> 00:23:18,950 Felly gallech redeg Clang llaw. 547 00:23:18,950 --> 00:23:20,530 Gallech math hynny i gyd â llaw. 548 00:23:20,530 --> 00:23:21,580 Dim ond yn mynd yn ddiflas. 549 00:23:21,580 --> 00:23:24,720 Ac felly gwnewch yn unig yw rhaglen sy'n symleiddio ein bywydau a 550 00:23:24,720 --> 00:23:27,120 redeg gorchmynion mwy cymhleth i ni. 551 00:23:27,120 --> 00:23:29,410 >> Mae pob hawl, felly, yn awr yr hyn y ffeil dylwn gael 552 00:23:29,410 --> 00:23:31,540 yn fy cyfeiriadur ar hyn o bryd? 553 00:23:31,540 --> 00:23:36,310 Nid dim ond hello.c, ond hefyd helo. 554 00:23:36,310 --> 00:23:39,710 Felly os wyf eisiau rhedeg helo, cofio fy mod yn dweud dot slaes, 555 00:23:39,710 --> 00:23:42,220 lle y defnyddir dulliau dot mynd i mewn i'r ffolder ar hyn o bryd, ble bynnag yr ydych 556 00:23:42,220 --> 00:23:46,060 , ac yna rhedeg y rhaglen o'r enw hello, ac yn wir, yn awr, 557 00:23:46,060 --> 00:23:48,080 Mae gen i fyd helo. 558 00:23:48,080 --> 00:23:51,640 Mae pob hawl, unrhyw gwestiynau ar y llif gwaith neu y gystrawen o 559 00:23:51,640 --> 00:23:52,890 hyn yr ydym yn unig oedd? 560 00:23:55,380 --> 00:23:57,040 >> Mae pob hawl, felly gadewch i ni gymryd pethau i fyny hollt eto. 561 00:23:57,040 --> 00:24:00,430 Felly, roedd hyn yn anfoddhaol i ddim ond ysgrifennu rhaglen mai dim ond 562 00:24:00,430 --> 00:24:01,790 byth yn dweud helo, byd. 563 00:24:01,790 --> 00:24:03,920 Felly, rydym yn newid, ar ddydd Llun, i ddweud, helo, David. 564 00:24:03,920 --> 00:24:06,560 Mae'n ychydig yn fwy personol, ond yr un mor galed codio fel y 565 00:24:06,560 --> 00:24:07,410 fersiwn gyntaf. 566 00:24:07,410 --> 00:24:08,780 Felly nid yw pob bod gymhellol. 567 00:24:08,780 --> 00:24:13,120 Ond mae yn bodoli, yn C, swyddogaethau ar wahân yn sicr 568 00:24:13,120 --> 00:24:15,700 print, swyddogaethau sy'n gadael i chi gael mewnbwn defnyddwyr. 569 00:24:15,700 --> 00:24:17,990 Ac mae'r ffordd yr ydym yn gwneud hyn, y diwrnod o'r blaen, fel a ganlyn. 570 00:24:17,990 --> 00:24:21,440 Cyn i mi argraffu rhywbeth, tro cyntaf i mi 571 00:24:21,440 --> 00:24:22,410 rhywbeth gan y defnyddiwr. 572 00:24:22,410 --> 00:24:23,370 Felly, gadewch i mi wneud hyn eto. 573 00:24:23,370 --> 00:24:26,580 >> Llinynnol, lle mae yn unig yw enw mympwyol, yma, ar gyfer 574 00:24:26,580 --> 00:24:30,600 llinyn, yn hafal i GetString. 575 00:24:30,600 --> 00:24:32,070 Felly, beth oedd yn GetString? 576 00:24:32,070 --> 00:24:34,630 Mae'n amlwg yn cael llinyn, yn seiliedig ar ei enw. 577 00:24:34,630 --> 00:24:37,560 Ond beth ydyw, yn fwy technegol? 578 00:24:37,560 --> 00:24:38,440 Mae'n swyddogaeth. 579 00:24:38,440 --> 00:24:41,790 Felly, mae'n swyddogaeth nad yw'n dod gyda C fel y cyfryw. 580 00:24:41,790 --> 00:24:43,660 CS50 staff ysgrifennodd y. 581 00:24:43,660 --> 00:24:46,940 Ac felly i ddefnyddio'r hyn, nid ydych yn gallu cynnwys stdio.h, 582 00:24:46,940 --> 00:24:49,630 Angen i chi hefyd gynnwys yr hyn? 583 00:24:49,630 --> 00:24:50,060 Yeah. 584 00:24:50,060 --> 00:24:54,210 Felly cs50.h, sydd ychydig ffeil wnaethom ysgrifennu rai blynyddoedd yn ôl. 585 00:24:54,210 --> 00:24:57,130 Rydym yn ei osod ar y peiriant i chi ochr yn ochr â 586 00:24:57,130 --> 00:24:58,490 holl ffeiliau safonol. 587 00:24:58,490 --> 00:25:00,500 Ac felly yn yr ychydig wythnosau cyntaf y dosbarth, byddwn yn defnyddio 588 00:25:00,500 --> 00:25:02,820 hyn dim ond er mwyn symleiddio'r broses o wneud sylfaenol iawn 589 00:25:02,820 --> 00:25:04,600 pethau fel mewnbwn defnyddiwr gael. 590 00:25:04,600 --> 00:25:07,370 Oherwydd fel y byddwn yn gweld mewn ychydig wythnosau, mewnbwn defnyddiwr gael mewn 591 00:25:07,370 --> 00:25:10,180 iaith fel C mewn gwirionedd yn syndod o gymhleth, 592 00:25:10,180 --> 00:25:14,360 yn enwedig oherwydd nad ydych yn gwybod ymlaen llaw, fel arfer, sut y 593 00:25:14,360 --> 00:25:17,030 pethau lawer y defnyddiwr yn mynd i deipio i mewn 594 00:25:17,030 --> 00:25:20,340 A phan nad ydych yn gwybod faint o ddata i'w disgwyl, nad ydych yn 595 00:25:20,340 --> 00:25:22,380 gwybod faint o gof i ddyrannu. 596 00:25:22,380 --> 00:25:25,480 Ac os ydych mewn gwirionedd yn cael ddefnyddiwr gwrthwynebus pwy sy'n ceisio 597 00:25:25,480 --> 00:25:28,180 i hacio i mewn i'ch system, damwain eich cyfrifiadur, yn dda, 598 00:25:28,180 --> 00:25:31,600 gyffredinol y dull cyntaf o ymosodiad yw, yn union fel y gwneuthum ar 599 00:25:31,600 --> 00:25:34,950 Dydd Llun, teipiwch dilyniant hir cyfan o gymeriadau ar hap, 600 00:25:34,950 --> 00:25:37,020 daro Enter, a gweld beth yn torri. 601 00:25:37,020 --> 00:25:40,800 Oherwydd yn gyffredinol, os bydd yn torri rhaglen, sy'n Awgrymiadau ar 602 00:25:40,800 --> 00:25:42,650 nam diogelwch, o bosibl. 603 00:25:42,650 --> 00:25:45,250 Mae'n sicr yn Awgrymiadau ar chi, y rhaglennydd, ar ôl gwneud 604 00:25:45,250 --> 00:25:49,050 camgymeriad, ond yn fwy peryglus, efallai y byddwch wedi gwneud 605 00:25:49,050 --> 00:25:52,430 gysylltiedig â diogelwch camgymeriad, ac yn gyffredinol byddwn yn gweld bod 606 00:25:52,430 --> 00:25:54,840 dyna sut y peiriannau yn cael eu peryglu hyd y dydd hwn, yn 607 00:25:54,840 --> 00:25:56,620 yn y byd y we a rhaglenni ar y 608 00:25:56,620 --> 00:25:58,070 , llinell orchymyn fel hyn. 609 00:25:58,070 --> 00:25:58,350 >> Mae pob hawl. 610 00:25:58,350 --> 00:26:00,460 Felly llinyn s yn dychwelyd GetString. 611 00:26:00,460 --> 00:26:03,380 Felly, yn fwy concretely yn awr, beth yw llinell 6 wneud yma? 612 00:26:03,380 --> 00:26:05,640 Felly, mae'r swyddogaeth ar y dde yn cael llinyn, 613 00:26:05,640 --> 00:26:06,890 cymryd sawl dadleuon? 614 00:26:09,458 --> 00:26:09,900 Iawn. 615 00:26:09,900 --> 00:26:10,400 Felly, dim. 616 00:26:10,400 --> 00:26:11,360 Mae ychydig o bwyll gwirio. 617 00:26:11,360 --> 00:26:15,380 Mae dadl, unwaith eto, yn unig yw mewnbwn i swyddogaeth i newid 618 00:26:15,380 --> 00:26:17,250 ei ymddygiad diofyn mewn rhyw ffordd. 619 00:26:17,250 --> 00:26:19,540 Ond yn yr achos hwn, nid wyf am newid 620 00:26:19,540 --> 00:26:20,650 ymddygiad GetString. 621 00:26:20,650 --> 00:26:22,430 Fi jyst eisiau i gael llinyn. 622 00:26:22,430 --> 00:26:25,190 Felly, yr wyf yn rhoi unrhyw beth yn y cromfachau, ac yna yr wyf yn rhoi i 623 00:26:25,190 --> 00:26:27,550 hanner colon demarking diwedd y llinell o god. 624 00:26:27,550 --> 00:26:29,840 Yn awr, y symbol hafal yn golygu gyfartal, fel y cyfryw. 625 00:26:29,840 --> 00:26:32,690 Mae'n golygu aseiniad, sy'n golygu rhoi beth bynnag yn cael 626 00:26:32,690 --> 00:26:36,060 outputted ar y tu mewn cywir o beth bynnag sydd ar y chwith. 627 00:26:36,060 --> 00:26:39,400 >> Felly, ar y chwith, rydym yn dweud ein bod wedi datgan 628 00:26:39,400 --> 00:26:41,630 llinyn o'r enw s. 629 00:26:41,630 --> 00:26:44,240 Ac yn fwy penodol, rydym wedi dyrannu cof tu mewn 630 00:26:44,240 --> 00:26:46,340 y byddwn yn rhoi'r darnau sy'n cynrychioli cyfres o 631 00:26:46,340 --> 00:26:46,850 cymeriadau. 632 00:26:46,850 --> 00:26:49,400 Ond ar gyfer heddiw, rydym wedi dyrannu 633 00:26:49,400 --> 00:26:51,450 neu ddatgan llinyn. 634 00:26:51,450 --> 00:26:51,790 Mae pob hawl. 635 00:26:51,790 --> 00:26:54,760 Felly, yn awr unwaith y byddaf wedi gwneud hyn, rwyf am i lenwi'r yng ngwerth y 636 00:26:54,760 --> 00:26:56,535 s, gwerth David. 637 00:26:56,535 --> 00:27:00,200 Felly, mae hyn yn anghywir pam? 638 00:27:03,060 --> 00:27:04,870 Felly, mae hyn yn unig yw llythrennol s hard-coded. 639 00:27:04,870 --> 00:27:06,870 Mae'n dweud "helo, s," nad yw hyn rwyf eisiau. 640 00:27:06,870 --> 00:27:07,790 Felly gallaf wneud hyn. 641 00:27:07,790 --> 00:27:10,330 Mae'r arwydd y cant yn placeholder, ond erbyn hyn mae angen i mi 642 00:27:10,330 --> 00:27:12,520 fynd i mewn argraffu ail ddadl. 643 00:27:12,520 --> 00:27:15,160 Dwyn i gof bod dadleuon i swyddogaethau yn cael eu gwahanu gan 644 00:27:15,160 --> 00:27:20,300 atalnodau, felly mae'r coma nesaf yma yr wyf yn rhoi ar ôl hyn yn y llythyr. 645 00:27:20,300 --> 00:27:23,740 Ac yn y cyd-destun yn awr, s yn y newidyn, ac printf, 646 00:27:23,740 --> 00:27:25,550 ar dderbyn y ddau fewnbwn - 647 00:27:25,550 --> 00:27:29,440 y llinyn ar y chwith a'r enw amrywiol ar y dde - 648 00:27:29,440 --> 00:27:32,750 bydd yn llenwi'r olaf i mewn i'r hen i ni, ac 649 00:27:32,750 --> 00:27:34,600 dim ond argraffu llinyn hardd 'n glws cynnwys 650 00:27:34,600 --> 00:27:36,770 beth bynnag yw ein bod yn teipio i mewn 651 00:27:36,770 --> 00:27:37,560 >> Felly, gadewch i ni geisio hyn. 652 00:27:37,560 --> 00:27:38,860 Mynd i fynd yn ei flaen ac yn chwyddo allan, yn ôl 653 00:27:38,860 --> 00:27:40,250 i fy ffenestr terfynell. 654 00:27:40,250 --> 00:27:41,840 Chwyddo i mewn ar waelod yma. 655 00:27:41,840 --> 00:27:44,070 Ail-deipiwch gwneud helo. 656 00:27:44,070 --> 00:27:45,870 Clang fel pe bai wedi cael ei ailgynnal. 657 00:27:45,870 --> 00:27:49,280 Rydw i'n mynd i deipio. / Helo, Enter. 658 00:27:49,280 --> 00:27:52,145 Nid oes dim yn ymddangos i fod yn digwydd eto, ond mae'n ar hyn brydlon 659 00:27:52,145 --> 00:27:55,700 y gallaf deipio rhywbeth fel Nate, Mewnbynnu, ac erbyn hyn mae gennym 660 00:27:55,700 --> 00:27:56,380 Helo, Nate. 661 00:27:56,380 --> 00:27:59,600 A allaf wneud hynny eto gyda Rob, ac yn y blaen. 662 00:27:59,600 --> 00:28:03,410 Felly, gobeithio nawr y rhaglen hon yn ymddwyn fel yr wyf yn bwriadu. 663 00:28:03,410 --> 00:28:05,720 >> Nid yn awr, y cyfan sydd gyfeillgar i'r defnyddiwr. 664 00:28:05,720 --> 00:28:07,930 Does gen i ddim syniad beth sy'n cael ei ddisgwyl i mi. 665 00:28:07,930 --> 00:28:09,620 Felly, gallwn yn sicr lanhau hyn i fyny ychydig bach. 666 00:28:09,620 --> 00:28:13,270 Gadewch i mi fynd yn ôl i fyny yma, ac yn hytrach na dim ond saethu i mewn ac 667 00:28:13,270 --> 00:28:16,480 gofyn i'r defnyddiwr ar gyfer llinyn, gadewch i mi yn benodol yn dweud wrth y 668 00:28:16,480 --> 00:28:17,750 defnyddiwr yr hyn rwy'n ei ddisgwyl. 669 00:28:17,750 --> 00:28:21,610 Felly printf ("Rhowch llinyn:" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 Felly, dim newidynnau yma. 672 00:28:25,510 --> 00:28:26,750 Dim arwyddion y cant. 673 00:28:26,750 --> 00:28:28,550 Dim ond yr ymadrodd Saesneg syml. 674 00:28:28,550 --> 00:28:34,030 Gadewch i mi fyned yn awr i'r gwaelod yma ac ailgynnal fy rhaglen. 675 00:28:34,030 --> 00:28:35,380 Ond dim ymddangos i wedi newid. 676 00:28:35,380 --> 00:28:37,350 Pam? 677 00:28:37,350 --> 00:28:38,380 Rhaid i mi ail-grynhoi iddo. 678 00:28:38,380 --> 00:28:39,570 Felly, camgymeriad hawdd i'w wneud. 679 00:28:39,570 --> 00:28:41,700 Ond mae'n rhaid i chi nid yn unig yn arbed y ffeil ond 680 00:28:41,700 --> 00:28:43,260 ail-grynhoi y rhaglen. 681 00:28:43,260 --> 00:28:46,640 Ac felly os wyf yn ail-redeg gwneud helo, sydd bellach yn rhedeg Clang. 682 00:28:46,640 --> 00:28:51,800 Nawr gallaf redeg. / Helo. Ac yn awr yr wyf yn gweld "Rhowch llinyn:". 683 00:28:51,800 --> 00:28:52,050 Iawn. 684 00:28:52,050 --> 00:28:53,440 Nawr mae'n ychydig yn fwy defnyddiwr-gyfeillgar. 685 00:28:53,440 --> 00:28:55,850 Nate, Mewnbynnu, helo, Nate. 686 00:28:55,850 --> 00:28:57,310 >> Wel, gadewch i ni geisio hyn eto ac yn dechrau meddwl 687 00:28:57,310 --> 00:28:58,080 am achosion cornel. 688 00:28:58,080 --> 00:29:00,520 Felly, yn union fel yn Scratch, rydych yn annog neu'n cael eu 689 00:29:00,520 --> 00:29:03,180 annog yn y fanyleb i fath o feddwl am beth allai fynd 690 00:29:03,180 --> 00:29:06,610 anghywir os nad ydych yn rhagweld popeth y gallai'r defnyddiwr ei wneud. 691 00:29:06,610 --> 00:29:08,050 Pryfed, felly gallai, dilyn. 692 00:29:08,050 --> 00:29:09,710 Felly, mynd i mewn i linyn - 693 00:29:09,710 --> 00:29:11,130 beth achos cornel yma? 694 00:29:11,130 --> 00:29:13,320 Beth yw sefyllfa yr wyf fi, y rhaglennydd efallai na fydd, yn cael 695 00:29:13,320 --> 00:29:16,070 eu rhagweld? 696 00:29:16,070 --> 00:29:17,600 Yeah. 697 00:29:17,600 --> 00:29:17,920 Iawn. 698 00:29:17,920 --> 00:29:22,060 Felly beth os ydw i'n teipio mewn nifer fel hyn? 699 00:29:22,060 --> 00:29:22,500 Mae pob hawl. 700 00:29:22,500 --> 00:29:24,490 Felly, mae'n dal i weithio. 701 00:29:24,490 --> 00:29:25,880 Gramatically yn gwneud unrhyw synnwyr. 702 00:29:25,880 --> 00:29:27,180 Ond o leiaf mae'r rhaglen yn gweithio. 703 00:29:27,180 --> 00:29:28,650 >> Beth yw achos arall cornel? 704 00:29:28,650 --> 00:29:29,610 Rhywbeth Nid oeddwn yn disgwyl. 705 00:29:29,610 --> 00:29:31,590 Yeah? 706 00:29:31,590 --> 00:29:31,940 Iawn. 707 00:29:31,940 --> 00:29:34,950 Felly, gallem wneud rhywbeth fel nifer iawn, iawn fawr. 708 00:29:34,950 --> 00:29:37,270 Felly, gadewch i ni wneud hyn yma. 709 00:29:37,270 --> 00:29:40,880 Gadewch i mi chwyddo allan am eiliad, gadewch i mi dynnu sylw. 710 00:29:40,880 --> 00:29:42,250 Methu copïo a gludo i lawr yma. 711 00:29:42,250 --> 00:29:42,470 Mae pob hawl. 712 00:29:42,470 --> 00:29:44,440 Felly, ni allaf gopïo a gludo yn y ffenestr hon terfynell, felly gallwn eich 713 00:29:44,440 --> 00:29:46,950 dim ond efelychu ei. 714 00:29:46,950 --> 00:29:51,340 Gadewch i mi chwyddo allan, mynd i lapio. 715 00:29:51,340 --> 00:29:52,700 Dydw i ddim yn mynd i wneud hyn yn rhy hir, oherwydd ni fydd yn 716 00:29:52,700 --> 00:29:54,440 mewn gwirionedd yn doriad yn y rhaglen hon. 717 00:29:54,440 --> 00:29:55,260 Ond y gallai. 718 00:29:55,260 --> 00:29:55,830 Enter. 719 00:29:55,830 --> 00:29:56,580 Ond ni wnaeth. 720 00:29:56,580 --> 00:29:57,050 Mae pob hawl. 721 00:29:57,050 --> 00:29:58,440 Ond mae'n achos cornel go iawn. 722 00:29:58,440 --> 00:30:01,610 A'r unig reswm y ymddwyn yn gywir, felly i 723 00:30:01,610 --> 00:30:05,820 siarad, oherwydd bod y CS50 GetString swyddogaeth mewn gwirionedd 724 00:30:05,820 --> 00:30:08,040 cynllunio o dan y cwfl, fel y byddwn yn gweld ymhen ychydig wythnosau, 725 00:30:08,040 --> 00:30:11,570 yn awtomatig dyrannu RAM mwy a mwy, yn fwy a mwy o 726 00:30:11,570 --> 00:30:14,330 cof gan y system weithredu, pan fydd yn sylweddoli, wow, 727 00:30:14,330 --> 00:30:16,670 rydych wedi teipio mewn gwirionedd yn rhywbeth eithaf hir. 728 00:30:16,670 --> 00:30:18,500 Yn awr, mae hyn yn dipyn o gelwydd gwyn. 729 00:30:18,500 --> 00:30:22,020 Os ydym mewn gwirionedd yn seibio am gryn amser, ac rwy'n deipio mewn 730 00:30:22,020 --> 00:30:24,640 rhywbeth fel 5000000000 cymeriadau ar y bysellfwrdd 731 00:30:24,640 --> 00:30:28,060 yma, neu daro mewn gwirionedd gopi-gludo gryn dipyn, rydym o bosib 732 00:30:28,060 --> 00:30:29,730 Gallai achosi i'r rhaglen i ddamwain. 733 00:30:29,730 --> 00:30:32,130 Dim ond ychydig yn galetach i efelychu hynny gyda cyfyngedig 734 00:30:32,130 --> 00:30:33,740 faint o amser. 735 00:30:33,740 --> 00:30:37,320 >> Beth yw achos arall gornel gallem geisio? 736 00:30:37,320 --> 00:30:38,730 Yeah? 737 00:30:38,730 --> 00:30:39,020 Yeah. 738 00:30:39,020 --> 00:30:40,360 Felly pam nad ydym yn ateb dim byd? 739 00:30:40,360 --> 00:30:43,130 Felly, rydym mewn gwirionedd yn rhaid i ni gymryd rhai camau, oherwydd fel arall 740 00:30:43,130 --> 00:30:45,060 y rhaglen yn mynd i eistedd yno trwy'r dydd amrantu. 741 00:30:45,060 --> 00:30:46,860 Ond os Fi jyst daro Enter - 742 00:30:46,860 --> 00:30:48,780 OK, yn awr, yn dal i edrych yn anghywir. 743 00:30:48,780 --> 00:30:51,670 Heb chwalu, ond efallai mae bellach yn gyfle i 744 00:30:51,670 --> 00:30:54,190 dechrau gweithredu rhaglen fwy trylwyr 745 00:30:54,190 --> 00:30:55,290 sydd mewn gwirionedd yn gwirio. 746 00:30:55,290 --> 00:30:57,640 Ac os y llinyn, y ddedfryd, y gair yr wyf 747 00:30:57,640 --> 00:31:00,890 teipio mewn wedi hyd 0, yn dda, efallai y dylwn gweiddi ar y 748 00:31:00,890 --> 00:31:03,770 defnyddiwr, neu ddweud ef neu hi i fynd i mewn i linyn eto, fel y 749 00:31:03,770 --> 00:31:06,560 ydym mewn gwirionedd yn cael yr hyn edrych fel ymddygiad cywir ac nid 750 00:31:06,560 --> 00:31:08,570 dim ond amryfusedd llwyr ar fy rhan. 751 00:31:08,570 --> 00:31:11,130 >> Cwestiwn yn y cefn? 752 00:31:11,130 --> 00:31:11,970 Rhif degol. 753 00:31:11,970 --> 00:31:13,120 Felly, gallem geisio hynny, hefyd. 754 00:31:13,120 --> 00:31:16,840 1.10000005. 755 00:31:16,840 --> 00:31:19,470 Seems fel 'na sy'n mynd i jyst yn gweithio mewn gwirionedd iawn. 756 00:31:19,470 --> 00:31:21,160 A bod mewn gwirionedd yn cael ei ddisgwyl. 757 00:31:21,160 --> 00:31:24,550 Hyd yn oed er efallai y byddwn wedi ei deipio y nifer hwnnw yno, neu 758 00:31:24,550 --> 00:31:28,200 nifer mwy yn gynharach, yn sylweddoli bod pan fyddwn yn teipio defnyddiwr 759 00:31:28,200 --> 00:31:31,070 Nid yw mewnbwn ac rydym yn defnyddio'r swyddogaeth GetString, yn 760 00:31:31,070 --> 00:31:34,380 mater os bydd yr hyn yr wyf i'n teipio yn edrych fel rhif. 761 00:31:34,380 --> 00:31:36,720 Dwyn i gof bod yn ôl ASCII, popeth ar eich 762 00:31:36,720 --> 00:31:39,920 bysellfwrdd werth rhifiadol y gellir eu mapio i 763 00:31:39,920 --> 00:31:41,480 cymeriad, golosg. 764 00:31:41,480 --> 00:31:44,490 Felly, yn yr achos hwn, hyd yn oed er efallai y byddwn yn deipio rhif, 765 00:31:44,490 --> 00:31:48,190 cyfrifiadur yn mynd i feddwl am y peth, fel petai, fel llinyn - 766 00:31:48,190 --> 00:31:49,870 rhywbeth sy'n edrych yn debyg i nifer, ond mae'n 767 00:31:49,870 --> 00:31:51,090 nad ydynt mewn gwirionedd yn rhif. 768 00:31:51,090 --> 00:31:53,450 Ond mewn gwirionedd segue berffaith, oherwydd yn awr gallwn 769 00:31:53,450 --> 00:31:55,450 mewn gwirionedd yn trosglwyddo i raglenni ysgrifenedig 770 00:31:55,450 --> 00:31:56,730 ddefnyddio mathau data eraill. 771 00:31:56,730 --> 00:32:01,840 >> Felly, ar wahân gan ddefnyddio chars, neu yn hytrach, ar wahân i ddefnyddio llinynnau, 772 00:32:01,840 --> 00:32:04,510 sylweddoli ein bod wedi fathau o ddata eraill yn C yn ogystal ag yn 773 00:32:04,510 --> 00:32:05,230 ieithoedd eraill. 774 00:32:05,230 --> 00:32:08,480 Mae torgoch, fel yr awgryma'r enw, yn unig yw cymeriad unigol. 775 00:32:08,480 --> 00:32:12,150 Mae arnofio yn werth pwynt arnawf, a bod yn unig ffansi 776 00:32:12,150 --> 00:32:14,470 ffordd o ddweud nifer go iawn - rhywbeth sydd â degol 777 00:32:14,470 --> 00:32:17,410 pwynt ynddo gyda rhai rhifau i'r chwith a / neu i'r dde. 778 00:32:17,410 --> 00:32:21,370 Mae int yw cyfanrif, sydd ychydig rhif, er enghraifft 123. 779 00:32:21,370 --> 00:32:24,170 Ac yn awr yn fwy diddorol yw pethau fel dwbl. 780 00:32:24,170 --> 00:32:28,540 Beth wnaethon ni ddweud dwbl oedd y tro diwethaf? 781 00:32:28,540 --> 00:32:30,050 Mae'n 64, i'r dde. 782 00:32:30,050 --> 00:32:33,560 Felly, tra nodweddiadol fflôt yn 32-bit - 783 00:32:33,560 --> 00:32:37,340 felly mae'n hyn yn hir yn y cof, mae'n defnyddio 32 zeros a rhai i 784 00:32:37,340 --> 00:32:40,530 cynrychioli gwerthoedd - dwbl yn llythrennol ddwywaith hynny, a 785 00:32:40,530 --> 00:32:43,810 yn golygu y gallwch naill ai gynrychioli rhifau mwy, neu 786 00:32:43,810 --> 00:32:45,810 gallwch gynrychioli rhifau mwy manwl gywir. 787 00:32:45,810 --> 00:32:48,690 Felly, gallwch gael mwy o rifau ar ôl y pwynt degol, ond 788 00:32:48,690 --> 00:32:51,520 fel y cyd-dweud yn y fideo, hyd yn oed rhywbeth syml 789 00:32:51,520 --> 00:32:55,360 gysyniadol ni all er enghraifft 1/3 yn cael ei cynrychioli yn union gan 790 00:32:55,360 --> 00:32:58,330 cyfrifiadur, oherwydd yn y pen draw byddwch yn rhedeg allan o ddarnau, ac 791 00:32:58,330 --> 00:33:02,510 felly gallwch ond gwneud .33333333 gymaint o weithiau, yn 792 00:33:02,510 --> 00:33:05,050 y pwynt os oes gen ti i ddweud fy mod allan o gynrychiolaeth 793 00:33:05,050 --> 00:33:08,120 gofod, rhaid i mi ei alw'n ddim y dydd a'i gynrychioli 794 00:33:08,120 --> 00:33:10,200 braidd yn imprecisely yn hoffi hynny. 795 00:33:10,200 --> 00:33:11,110 A hir hir - 796 00:33:11,110 --> 00:33:13,880 enw dwp, ond mae'n oherwydd mae 'na math data a elwir yn 797 00:33:13,880 --> 00:33:19,350 hir yn C a chyda llaw yn aml yn 32 catiau, yn union fel 798 00:33:19,350 --> 00:33:21,670 int yw 32 darnau, ond hir hir yn 799 00:33:21,670 --> 00:33:23,560 yn gyffredinol 64 did. 800 00:33:23,560 --> 00:33:25,740 Felly, 'i jyst yn golygu y gallwch gynrychioli mwy 801 00:33:25,740 --> 00:33:26,990 rhifau na hyn. 802 00:33:26,990 --> 00:33:27,410 >> Mae pob hawl. 803 00:33:27,410 --> 00:33:29,390 Felly, os ydym mewn gwirionedd yn awyddus i ddechrau yn cynrychioli pethau, rydym yn 804 00:33:29,390 --> 00:33:31,030 efallai y bydd angen mwy o fathau soffistigedig, ac 805 00:33:31,030 --> 00:33:32,340 dyna pam yr ydym wedi llinyn. 806 00:33:32,340 --> 00:33:36,450 Felly, yn y llyfrgell CS50, y ffeil o'r enw cs50.h, rydym wedi 807 00:33:36,450 --> 00:33:41,110 mewn gwirionedd datgan, math ddata fel petai, a elwir yn llinyn, 808 00:33:41,110 --> 00:33:42,710 ond nid yw llinyn yn bodoli mewn gwirionedd. 809 00:33:42,710 --> 00:33:44,780 Mae hyn, unwaith eto, un o'r haenau hyn rydyn ni'n mynd i croen 810 00:33:44,780 --> 00:33:47,490 yn ôl mewn wythnos neu ddwy a'i daflu i ffwrdd, ac mewn gwirionedd yn 811 00:33:47,490 --> 00:33:49,640 edrych o dan y cwfl ar yr hyn llinyn mewn gwirionedd yw, a 812 00:33:49,640 --> 00:33:50,840 sut mae'n cael ei chynrychioli. 813 00:33:50,840 --> 00:33:53,520 Rydym hefyd yn mynd i edrych ar werthoedd Boole. 814 00:33:53,520 --> 00:33:56,040 >> Felly beth oedd yn bool yng nghyd-destun Scratch? 815 00:33:59,154 --> 00:34:00,300 Mae'n wir neu'n anwir. 816 00:34:00,300 --> 00:34:03,900 Felly, mae'n werth dim ond mae hynny'n wir neu'n anwir, ar neu oddi ar, 1 neu 817 00:34:03,900 --> 00:34:06,140 0, fodd bynnag ydych am weld y byd. 818 00:34:06,140 --> 00:34:09,739 Felly, yn C, diolch i lyfrgell CS50, sydd yn ei dro 819 00:34:09,739 --> 00:34:12,179 yn cynnwys lyfrgell arall o dan y cwfl, mae gennym 820 00:34:12,179 --> 00:34:14,909 mynediad i fath data sy'n cael ei alw bool, a fydd yn 821 00:34:14,909 --> 00:34:18,730 llythrennol yn ein galluogi i aseinio y gwerthoedd gwir neu anwir i 822 00:34:18,730 --> 00:34:20,219 pethau mewn rhaglen. 823 00:34:20,219 --> 00:34:23,880 >> Felly, gadewch i ni fynd yn ei flaen yma ac ysgrifennu rhaglen bach sy'n 824 00:34:23,880 --> 00:34:26,330 yn gwneud rhywbeth sy'n cynnwys rhifau yn lle hynny. 825 00:34:26,330 --> 00:34:29,840 Felly, gadewch i mi fynd yn ôl at y Appliance CS50, gadewch i mi fynd yn ei flaen a 826 00:34:29,840 --> 00:34:32,770 creu ffeil newydd o'r enw yma - 827 00:34:32,770 --> 00:34:35,460 gadewch i 'jyst dweud rhywbeth syml, fel math.c. 828 00:34:38,270 --> 00:34:38,710 Mae pob hawl. 829 00:34:38,710 --> 00:34:41,600 Ac yn awr yn mynd i fyny i ben fy rhaglen, rwy'n 830 00:34:41,600 --> 00:34:42,510 mynd i wneud y arferol - 831 00:34:42,510 --> 00:34:44,780 # Cynnwys , fel y gallaf ddefnyddio 832 00:34:44,780 --> 00:34:46,860 printf, int brif (gwag) - 833 00:34:46,860 --> 00:34:49,270 byddwn yn dod yn ôl i, yn y pen draw, pa int olygu 834 00:34:49,270 --> 00:34:52,389 yma, pa ddi-rym yn golygu yma, ond ar hyn o bryd, dim ond yn gwybod bod 835 00:34:52,389 --> 00:34:54,270 rhaid i chi ddechrau raglenni fel hyn. 836 00:34:54,270 --> 00:34:56,280 Nawr rwy'n mynd i fynd yn ei flaen a dweud rhywbeth ychydig yn 837 00:34:56,280 --> 00:35:02,110 wahanol - printf ("Rhowch i mi rhif:" 838 00:35:02,110 --> 00:35:03,570 );. 839 00:35:03,570 --> 00:35:09,220 Wedyn dw i'n mynd i wneud int n = GetInt, gan ei fod yn 840 00:35:09,220 --> 00:35:12,770 tro allan GetInt yn swyddogaeth arall yn y llyfrgell CS50 841 00:35:12,770 --> 00:35:14,060 ar wahân GetString. 842 00:35:14,060 --> 00:35:17,340 Ac yn awr yr wyf i'n mynd i wneud rhywbeth twp, fel "diolch 843 00:35:17,340 --> 00:35:25,760 ar gyfer y d%, "ar gyfer cyfanrif degol, ac yna n coma, a 844 00:35:25,760 --> 00:35:26,620 wedyn yn dychwelyd 0. 845 00:35:26,620 --> 00:35:28,940 Felly, unwaith eto, yn dychwelyd 0 ddim byd i wneud gyda'r nifer rwy'n 846 00:35:28,940 --> 00:35:30,080 gofyn i'r defnyddiwr ar gyfer. 847 00:35:30,080 --> 00:35:33,620 Dim ond arwydd ar y diwedd y cyfan, yn ôl pob tebyg, yn dda. 848 00:35:33,620 --> 00:35:36,290 >> Felly, gadewch i mi fynd i lawr at fy ffenestr terfynell yma. 849 00:35:36,290 --> 00:35:39,590 Gadewch i mi deipio yn gwneud mathemateg, rhowch. 850 00:35:39,590 --> 00:35:41,360 A rhywbeth o'i le. 851 00:35:41,360 --> 00:35:44,620 Sicrhewch nad mathemateg oedd yn gweithio. 852 00:35:44,620 --> 00:35:46,170 Dyma'r cyntaf o'n negeseuon gwall. 853 00:35:46,170 --> 00:35:46,570 Pam? 854 00:35:46,570 --> 00:35:49,720 Mae cryptic ychydig, ond - 855 00:35:49,720 --> 00:35:50,060 Yeah. 856 00:35:50,060 --> 00:35:51,240 Felly cs50.h. 857 00:35:51,240 --> 00:35:53,900 Felly, unwaith eto, yn enwedig yn gynnar, byddwch yn ysgrifennu eich dewis cyntaf 858 00:35:53,900 --> 00:35:56,590 rhaglen ar gyfer pset 1 mewn adrannau, yn ystod oriau swyddfa, a 859 00:35:56,590 --> 00:35:59,050 dweud y gwir, bydd yn cael ei llethol weithiau beth yw'r pethau 860 00:35:59,050 --> 00:36:00,000 yn ei ddweud mewn gwirionedd. 861 00:36:00,000 --> 00:36:01,890 Ond byddwch yn sylweddoli yn gyflym iawn y byddant yn dechrau disgyn 862 00:36:01,890 --> 00:36:06,120 i mewn i bwcedi lle hwn yn golygu eich bod wedi gadael oddi ar un 863 00:36:06,120 --> 00:36:08,290 o # gynnwys ar ben y ffeil. 864 00:36:08,290 --> 00:36:10,960 Ac Clang, y compiler, yn eich hysbysu o hyn drwy 865 00:36:10,960 --> 00:36:14,090 ddweud, yn hytrach fancifully, datganiad ymhlyg o 866 00:36:14,090 --> 00:36:15,990 GetInt swyddogaeth yn annilys. 867 00:36:15,990 --> 00:36:16,310 >> Mae pob hawl. 868 00:36:16,310 --> 00:36:17,520 Felly beth mae hynny'n ei olygu? 869 00:36:17,520 --> 00:36:22,080 'I jyst yn golygu eich bod wedi datgan llwyr GetInt yn 870 00:36:22,080 --> 00:36:24,850 yr ystyr nad ydych wedi datgan yn glir arno. 871 00:36:24,850 --> 00:36:27,300 I ddatgan yn benodol int, rhaid i chi ddysgu 872 00:36:27,300 --> 00:36:28,740 Clang ei fod yn bodoli. 873 00:36:28,740 --> 00:36:32,020 Ac mae'r ateb yn syml iawn am hynny yw ei ddysgu gan 874 00:36:32,020 --> 00:36:34,780 gan gynnwys y ffeil arall, cs50.h, yn 875 00:36:34,780 --> 00:36:35,850 frig eich ffeil. 876 00:36:35,850 --> 00:36:40,380 Oherwydd llythrennol, yr hyn # gynnwys yn ei wneud yw ei fod yn dweud Clang 877 00:36:40,380 --> 00:36:44,030 'n bert lawer i fynd ddod o hyd i'r ffeil o'r enw cs50.h, copi, 878 00:36:44,030 --> 00:36:48,150 bastio 'n awtomatig i mewn i ben fy rhaglen i mi, 879 00:36:48,150 --> 00:36:50,850 ac yna drosi'r cod ffynhonnell i sero a rhai. 880 00:36:50,850 --> 00:36:52,850 Ond byddai hynny yn amlwg yn iawn 'n faith os ydym bodau dynol wedi 881 00:36:52,850 --> 00:36:55,370 i fynd gopïo a gludo y ffeiliau mawr drwy'r amser, 882 00:36:55,370 --> 00:36:58,540 felly dim ond # cynnwys gwneud popeth yn awtomatig heb 883 00:36:58,540 --> 00:37:01,550 muddying fy cod gyda rhywun arall llyfrgell. 884 00:37:01,550 --> 00:37:06,370 A llyfrgell arall yn unig ffeil yn cynnwys swyddogaethau a 885 00:37:06,370 --> 00:37:08,340 pethau eraill y mae rhywun arall wedi ysgrifennu, ein bod yn 886 00:37:08,340 --> 00:37:10,270 leveraging ar gyfer ein fwyn ei hun. 887 00:37:10,270 --> 00:37:10,580 >> Mae pob hawl. 888 00:37:10,580 --> 00:37:11,200 Gadewch i ni geisio eto. 889 00:37:11,200 --> 00:37:12,250 Gwnewch mathemateg. 890 00:37:12,250 --> 00:37:13,120 Enter. 891 00:37:13,120 --> 00:37:13,530 Da. 892 00:37:13,530 --> 00:37:14,880 Felly, mae'n ymddangos ei fod yn gweithio. 893 00:37:14,880 --> 00:37:18,330 Felly, gadewch i mi redeg yn awr mathemateg;. / Mathemateg. 894 00:37:18,330 --> 00:37:21,100 Rhowch rhoi i mi nifer, 123. 895 00:37:21,100 --> 00:37:22,620 Diolch am y 123. 896 00:37:22,620 --> 00:37:24,490 Nawr gadewch i ni geisio achos arall gornel. 897 00:37:24,490 --> 00:37:26,530 Mae llinyn yn eithaf hael, oherwydd bod 898 00:37:26,530 --> 00:37:27,620 Gall llinyn fod yn unrhyw beth. 899 00:37:27,620 --> 00:37:28,910 Gallu edrych fel rhifau, yn edrych fel 900 00:37:28,910 --> 00:37:30,600 cymeriadau, yn edrych fel geiriau. 901 00:37:30,600 --> 00:37:31,900 Ond mae int yn int. 902 00:37:31,900 --> 00:37:34,370 Felly, yn awr os ydw i'n ddefnyddiwr anodd, ac mae'n dweud "Rhowch i mi 903 00:37:34,370 --> 00:37:38,730 nifer, "beth os byddaf yn ceisio gwneud rhywbeth fel 0.1? 904 00:37:38,730 --> 00:37:41,510 Wel, mae hynny'n nifer, ac mae'n gyson â'r 905 00:37:41,510 --> 00:37:44,180 gramadeg wyf yn ei ddefnyddio yma, ond o dan y cwfl, Im 'yn 906 00:37:44,180 --> 00:37:45,610 cwrs gan ddefnyddio'r GetInt swyddogaeth. 907 00:37:45,610 --> 00:37:46,610 >> Felly, gadewch i ni weld beth sy'n digwydd. 908 00:37:46,610 --> 00:37:48,250 Mewnbynnu, retry. 909 00:37:48,250 --> 00:37:48,560 Mae pob hawl. 910 00:37:48,560 --> 00:37:50,570 Gadewch i mi fod yn anodd ac yn jyst daro Enter eto. 911 00:37:50,570 --> 00:37:51,700 Mewnbynnu, Enter. 912 00:37:51,700 --> 00:37:53,890 Felly nawr mae'n ymddangos bod GetInt ychydig yn fwy 913 00:37:53,890 --> 00:37:55,240 pwerus na GetString. 914 00:37:55,240 --> 00:37:58,540 Rydym ni, y staff, eu gweithredu yn y fath fodd, os ydym yn sylwi 915 00:37:58,540 --> 00:38:02,100 nad ydych wedi rhoi i ni yn int - a int yn rhif degol 916 00:38:02,100 --> 00:38:04,785 zeros sy'n cynnwys, rhai, fesul dau, tri, pedwar, pump, chwech, 917 00:38:04,785 --> 00:38:05,540 saith, wyth oed, neu nines. 918 00:38:05,540 --> 00:38:06,310 A dyna ni. 919 00:38:06,310 --> 00:38:08,810 Dim pwyntiau degol, dim cymeriadau, dim atalnodi. 920 00:38:08,810 --> 00:38:10,390 Mae'n ymddangos bod yn rhaid inni gydweithredu. 921 00:38:10,390 --> 00:38:13,680 Felly, gadewch i mi roi cynnig pedwar, pump, chwech, ac sy'n cael mi drwy. 922 00:38:13,680 --> 00:38:16,760 Felly mewn gwirionedd, i fod yn rhefrol yma, mae'n debyg y dylwn ddweud "Rhowch i mi 923 00:38:16,760 --> 00:38:20,310 cyfanrif "er mwyn cyfleu i'r defnyddiwr 924 00:38:20,310 --> 00:38:22,620 yn union yr hyn yr wyf yn bwriadu. 925 00:38:22,620 --> 00:38:24,090 >> Nawr gadewch i ni feddwl am dan y cwfl. 926 00:38:24,090 --> 00:38:27,930 Nid ydym yn mynd i edrych ar sut cs50.h cael ei weithredu heddiw, 927 00:38:27,930 --> 00:38:29,080 y llyfrgell. 928 00:38:29,080 --> 00:38:33,600 Ond os yw'n cadw dweud retry, retry, retry, pa rhaglennu 929 00:38:33,600 --> 00:38:36,970 adeiladu ydw i'n ôl pob tebyg gan ddefnyddio o dan y cwfl i 930 00:38:36,970 --> 00:38:39,000 weithredu hynny? 931 00:38:39,000 --> 00:38:39,980 Felly, dim ond dolen, dde? 932 00:38:39,980 --> 00:38:41,930 Un o'r syniadau symlaf a welsom ar Scratch. 933 00:38:41,930 --> 00:38:45,050 Mae'r Forever adeiladu, y Ailadrodd adeiladu. 934 00:38:45,050 --> 00:38:47,320 Yn ôl pob tebyg, yn y rhaglen hon, o dan y cwfl, hyd yn oed 935 00:38:47,320 --> 00:38:49,470 er ei fod yn ysgrifennu yn C ac nid dechrau, mae'n gwneud 936 00:38:49,470 --> 00:38:54,300 rywbeth a elwir yn cyfateb i am byth os nad yw'r defnyddiwr 937 00:38:54,300 --> 00:38:58,710 teipio mewn cyfanrif, yn dweud retry, retry, retry, retry, felly 938 00:38:58,710 --> 00:39:01,220 yna yn olaf pan fyddwn yn cael cyfanrif, yna rydych 939 00:39:01,220 --> 00:39:02,970 dorri allan o'r cylch. 940 00:39:02,970 --> 00:39:05,610 >> Felly, beth swyddogaethau eraill yr ydym yn defnyddio yma yn CS50 llyfrgell? 941 00:39:05,610 --> 00:39:07,880 Wel, math o'r rhai amlwg, o leiaf yn seiliedig ar y 942 00:39:07,880 --> 00:39:09,570 mathau o ddata ein bod bellach yn gwybod yn bodoli. 943 00:39:09,570 --> 00:39:12,900 Rydym yn gweithredu GetString, GetInt, ond drwy gydol y 944 00:39:12,900 --> 00:39:15,680 wythnosau cyntaf y tymor, gallwch hefyd ddefnyddio GetFloat a 945 00:39:15,680 --> 00:39:18,870 GetDouble a GetLongLong er mwyn cael yr union 946 00:39:18,870 --> 00:39:20,030 mathau o ddata yr ydych ei eisiau. 947 00:39:20,030 --> 00:39:24,030 Oherwydd bod y manylion allweddol yma yw bod yn wahanol i rai ieithoedd, 948 00:39:24,030 --> 00:39:26,630 fel Python a Ruby, lle nad oes rhaid i 949 00:39:26,630 --> 00:39:29,730 datgan y math data o amrywiol - 950 00:39:29,730 --> 00:39:32,390 Nid oes rhaid i chi ddweud wrth y cyfrifiadur pa fath o bethau 951 00:39:32,390 --> 00:39:34,000 rydych chi'n mynd i'w roi yn y newidyn - 952 00:39:34,000 --> 00:39:36,640 yn C, rhaid i chi fod byth mor fanwl gywir. 953 00:39:36,640 --> 00:39:40,060 Felly os ydych am newidyn a elwir yn n, darn o storio 954 00:39:40,060 --> 00:39:42,900 yn yr achos hwn yn digwydd bod yn 32 catiau gan gonfensiwn, byddwch yn 955 00:39:42,900 --> 00:39:45,660 yn rhaid i ddweud wrth y cyfrifiadur bod y darnau yn 956 00:39:45,660 --> 00:39:47,840 mynd i storio nifer - 957 00:39:47,840 --> 00:39:50,630 nid Nid yw cymeriad, llinyn, nid arnofio. 958 00:39:50,630 --> 00:39:52,620 Ac mae hyn yn mynd i'r afael â'r mater yn effeithiol rydym yn 959 00:39:52,620 --> 00:39:53,760 yn rhedeg i mewn yr wythnos diwethaf. 960 00:39:53,760 --> 00:39:57,050 Os ydym yn defnyddio sero a rhifau rhai i gynrychioli nid yn unig 961 00:39:57,050 --> 00:40:00,770 niferoedd ond Fel a brecwast a Cs, sut yn y byd yn 962 00:40:00,770 --> 00:40:03,460 cyfrifiadur yn mynd i wybod bod y patrwm hwn o ddarnau mewn gwirionedd 963 00:40:03,460 --> 00:40:07,650 yn cynrychioli nifer 65, yn hytrach na chynrychioli 964 00:40:07,650 --> 00:40:09,860 llythyren A, sy'n gyd-ddigwyddiad, yn ôl 965 00:40:09,860 --> 00:40:13,440 ASCII, galw i gof, yn cyfateb i 65? 966 00:40:13,440 --> 00:40:16,550 >> Felly, y mathau hyn data darparu cyd-destun i'r cyfrifiadur, felly 967 00:40:16,550 --> 00:40:18,810 ei bod yn gwybod os y darnau ei ddehongli fel 968 00:40:18,810 --> 00:40:23,660 int neu fel llinyn. 969 00:40:23,660 --> 00:40:26,500 Unrhyw gwestiynau, yna, ar hyn? 970 00:40:26,500 --> 00:40:28,149 Yeah? 971 00:40:34,780 --> 00:40:35,270 DAVID J. Malan: Cwestiwn da. 972 00:40:35,270 --> 00:40:39,140 Os byddwn yn cymryd stdio.h, rydym yn arbed y ffeil - 973 00:40:39,140 --> 00:40:44,360 gadewch i mi fynd i lawr at y ffenestr derfynell ac yn rhedeg yn gwneud mathemateg, zoom 974 00:40:44,360 --> 00:40:45,530 mewn a rhowch - 975 00:40:45,530 --> 00:40:47,700 awr yr wyf yn cael gwall gwahanol, oherwydd fy mod yn ymhlyg 976 00:40:47,700 --> 00:40:49,650 datgan beth yw swyddogaeth nawr? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 Felly nawr dwi wedi creu problem newydd, y mae ei ateb yw 979 00:40:52,970 --> 00:40:53,890 yn y bôn yr un fath. 980 00:40:53,890 --> 00:40:55,365 Angen i mi roi hynny'n ôl. 981 00:40:55,365 --> 00:40:56,615 GYNULLEIDFA: [Anghlywadwy] 982 00:41:03,534 --> 00:41:04,030 DAVID J. Malan: Oh. 983 00:41:04,030 --> 00:41:04,850 Felly, os wyf yn cymryd allan - 984 00:41:04,850 --> 00:41:05,360 Iawn, yeah. 985 00:41:05,360 --> 00:41:08,960 Felly, os wyf yn cael gwared ar y safon I / O llyfrgell cynnwys i fyny 986 00:41:08,960 --> 00:41:12,020 yma, ac yna rydych chi'n ei ddweud os wyf yn cael gwared ar printf, yn cael 987 00:41:12,020 --> 00:41:13,450 gwared o printf? 988 00:41:13,450 --> 00:41:13,810 Ydw. 989 00:41:13,810 --> 00:41:18,450 Dylai hyn weithio, oherwydd dydw i ddim bellach yn defnyddio unrhyw - Wps. 990 00:41:18,450 --> 00:41:20,110 A wnes i jyst yn gorwedd? 991 00:41:20,110 --> 00:41:21,650 O, iawn. 992 00:41:21,650 --> 00:41:25,640 Ni fydd hyn yn gweithio oherwydd gwall newydd yr ydym yn unig gyflwyno. 993 00:41:25,640 --> 00:41:28,390 Ac mae hyn yn un ychydig yn fwy hunan-esboniadol. 994 00:41:28,390 --> 00:41:29,440 >> Beth yw'r broblem? 995 00:41:29,440 --> 00:41:30,680 N amrywiol nas defnyddiwyd. 996 00:41:30,680 --> 00:41:34,040 Felly, mae hyn gwall yn sgîl y ffaith ffurfweddu y 997 00:41:34,040 --> 00:41:36,640 offer i fod yn arbennig o bedantig, i wir gweiddi ar 998 00:41:36,640 --> 00:41:39,060 i chi am bob camgymeriad posibl, hyd yn oed os yw'n fath o 999 00:41:39,060 --> 00:41:41,950 camgymeriad heb fod yn angheuol fel hyn - a yw'n wir mor fawr 1000 00:41:41,950 --> 00:41:44,820 delio fy mod yn dyrannu int, rhowch nifer ynddo, ac yna 1001 00:41:44,820 --> 00:41:46,030 dim ond yn gwneud dim byd ag ef? 1002 00:41:46,030 --> 00:41:47,020 Felly, swyddogaethol, dim. 1003 00:41:47,020 --> 00:41:50,410 Nid yw hynny'n mynd i dorri'r rhaglen. 1004 00:41:50,410 --> 00:41:51,490 'I' jyst fath o dwp, dde? 1005 00:41:51,490 --> 00:41:54,220 Nid oes unrhyw werth i wedi gofyn am y nifer hwnnw, storio 1006 00:41:54,220 --> 00:41:56,370 mewn newidyn, os nad ydych chi'n mynd i wneud unrhyw beth 1007 00:41:56,370 --> 00:41:58,000 ag ef, boed hargraffu neu ei chadw. 1008 00:41:58,000 --> 00:42:00,270 Felly, yn yr achos hwn, Clang yn cydnabod cymaint, a 1009 00:42:00,270 --> 00:42:02,010 mae'n dweud n amrywiol heb ei ddefnyddio. 1010 00:42:02,010 --> 00:42:05,380 >> Felly gallwn atgyweiria hon os ydym wir eisiau. 1011 00:42:05,380 --> 00:42:07,250 Ond unwaith eto, nid yw hyn yn rhaglennu da yn awr. 1012 00:42:07,250 --> 00:42:09,310 Felly, dim ond gallwn i wneud hyn - 1013 00:42:09,310 --> 00:42:12,060 mynd i lawr yma, gadewch i mi glirio'r sgrin, yn gwneud mathemateg. 1014 00:42:12,060 --> 00:42:13,090 Sy'n gweithio. 1015 00:42:13,090 --> 00:42:18,110 Nawr gallaf rhedeg fy rhaglen mathemateg, yn cymryd mewnbwn - 1016 00:42:18,110 --> 00:42:18,700 yn dda, a oedd yn wael. 1017 00:42:18,700 --> 00:42:23,450 Cymryd mewnbwn, a dyna'r cyfan mae'n ei wneud, yn yr achos hwn. 1018 00:42:23,450 --> 00:42:25,220 >> Felly, mewn gwirionedd, gadewch i ni geisio un achos gornel eraill yr ydym yn 1019 00:42:25,220 --> 00:42:26,300 nid oedd yn meddwl yn gynharach. 1020 00:42:26,300 --> 00:42:28,220 Yn yr achos hwn - yma, gadewch i ni fynd yn ôl i'r un mae hynny'n 1021 00:42:28,220 --> 00:42:29,500 ychydig yn fwy defnyddiwr-gyfeillgar. 1022 00:42:29,500 --> 00:42:32,580 Gadewch i mi fynd yn ôl yma ac yn rhedeg yn gwneud mathemateg eto. 1023 00:42:32,580 --> 00:42:34,190 Wps, beth wnes i ei wneud o'i le? 1024 00:42:34,190 --> 00:42:35,400 Got i rolio yn ôl ymhellach. 1025 00:42:35,400 --> 00:42:36,390 Iawn. 1026 00:42:36,390 --> 00:42:38,490 Nawr rydym yn ôl yn y cyflwr gwreiddiol, lle mae pob 1027 00:42:38,490 --> 00:42:39,990 yn gobeithio dda. 1028 00:42:39,990 --> 00:42:43,360 Ac yn awr os byddaf yn rhedeg mathemateg, 123 ymddangos i weithio. 1029 00:42:43,360 --> 00:42:46,010 Ond nid yw hyn yn wir yn brawf effeithiol, i ddweud 1030 00:42:46,010 --> 00:42:47,930 iawn, sy'n gweithio. 1031 00:42:47,930 --> 00:42:49,120 789, sy'n gweithio. 1032 00:42:49,120 --> 00:42:50,100 Amser i gyflwyno. 1033 00:42:50,100 --> 00:42:51,870 Oherwydd mae achosion cornel arall yma. 1034 00:42:51,870 --> 00:42:55,040 Nid yw llinyn ddim yn rhoi i ni lawer o drafferth trwy deipio mewn 1035 00:42:55,040 --> 00:42:56,510 llawer gyfan o gymeriadau. 1036 00:42:56,510 --> 00:42:59,580 Ond beth os ydw i'n teipio yn hyn? 1037 00:42:59,580 --> 00:43:04,850 Taro y rhif 1 a lot, lot cyfan yma - 1038 00:43:04,850 --> 00:43:06,300 popeth yn iawn, mae'n mynd braidd yn ddiflas, felly dwi'n mynd i 1039 00:43:06,300 --> 00:43:10,040 aros yma, ac yr wyf i'n mynd i daro Chofnoda. 1040 00:43:10,040 --> 00:43:11,290 >> Beth mae'r uffern newydd ddigwydd? 1041 00:43:14,110 --> 00:43:17,680 Felly, gall hyn mewn gwirionedd yn cael eu hesbonio. 1042 00:43:17,680 --> 00:43:18,920 Felly oedd yn mynd ag ef fel deuaidd? 1043 00:43:18,920 --> 00:43:21,130 Mae meddwl da, ond na, nid y ffaith ei fod yn cymryd yn 1044 00:43:21,130 --> 00:43:22,815 fel deuaidd, oherwydd yn wir, a oedd yn union fath o 1045 00:43:22,815 --> 00:43:23,080 cyd-ddigwyddiad. 1046 00:43:23,080 --> 00:43:23,930 Gallwn wneud hyn eto. 1047 00:43:23,930 --> 00:43:26,530 Felly, does dim 2 yn y system ddeuaidd, dyna 1048 00:43:26,530 --> 00:43:27,420 yn ôl pob tebyg yn ddigon beth bynnag. 1049 00:43:27,420 --> 00:43:28,780 Enter. 1050 00:43:28,780 --> 00:43:30,140 Felly nid oedd y broblem. 1051 00:43:30,140 --> 00:43:31,390 Beth arall? 1052 00:43:34,650 --> 00:43:35,400 Yn union. 1053 00:43:35,400 --> 00:43:37,830 >> Felly meddyliwch yn ôl at yr hyn mae int mewn gwirionedd. 1054 00:43:37,830 --> 00:43:40,970 Mae'n 32 catiau sydd gyda'i gilydd yn cael eu dehongli 1055 00:43:40,970 --> 00:43:42,090 fel rhif. 1056 00:43:42,090 --> 00:43:44,730 Os oes gennych 32 catiau, sy'n golygu y gall pob un o'r darnau fod yn 1057 00:43:44,730 --> 00:43:46,690 o 0 neu a. 1, 0 neu 1 1058 00:43:46,690 --> 00:43:49,090 Felly mae hynny'n golygu mae yna ddau posibiliadau ar gyfer y darn, 1059 00:43:49,090 --> 00:43:51,140 dau bosibilrwydd ar gyfer hyn, dau bosibilrwydd ar gyfer y 1060 00:43:51,140 --> 00:43:52,570 bit - felly dyna 2 waith 2 waith - 1061 00:43:52,570 --> 00:43:55,480 felly dyna 2 i rym 32 yw cyfanswm nifer y 1062 00:43:55,480 --> 00:43:58,960 amnewidiadau o sero a rhai os oes gennych 32 1063 00:43:58,960 --> 00:44:01,400 bachau, zeros neu rai, o flaen chi. 1064 00:44:01,400 --> 00:44:04,250 Felly os oes gen i 2 i 32, fathemategol, dyna beth? 1065 00:44:07,080 --> 00:44:07,840 Felly, mae'n llawer. 1066 00:44:07,840 --> 00:44:09,910 Mae'n 4 biliwn, rhoi neu gymryd. 1067 00:44:09,910 --> 00:44:13,510 Ac nid 4000000000 yw'n ymddangos i fod yr hyn oedd yn hargraffu yma. 1068 00:44:13,510 --> 00:44:16,290 Mewn gwirionedd, mae hyn yn edrych yn agosach at 2 biliwn. 1069 00:44:16,290 --> 00:44:17,970 Ond nid yw hyn yn cyd-daro. 1070 00:44:17,970 --> 00:44:21,590 Mae'r ffaith bod y cyfrifiadur wedi camddehongli fy rhif enfawr, 1071 00:44:21,590 --> 00:44:24,260 fy dilyniant enfawr o rai ac yna fy dilyniant enfawr o deuoedd, 1072 00:44:24,260 --> 00:44:26,880 fel tua 2 biliwn, yn esbonio sut? 1073 00:44:30,250 --> 00:44:32,180 Mae terfyn ar int. 1074 00:44:32,180 --> 00:44:34,970 Mae yna yn sicr yn werth mwyaf y gallwch ei gynrychioli. 1075 00:44:34,970 --> 00:44:36,370 Ond mae fel arfer yn 4 biliwn, dde? 1076 00:44:36,370 --> 00:44:39,100 Os bydd 2 i 32 yw tua 4 biliwn, sy'n ymddangos fel 1077 00:44:39,100 --> 00:44:40,350 dyna'r rhif mwyaf. 1078 00:44:42,420 --> 00:44:45,240 Felly, nid gweddill, ond mae meddwl da. 1079 00:44:45,240 --> 00:44:46,340 Rhifau negatif. 1080 00:44:46,340 --> 00:44:49,570 Felly, os oes gennych 4000000000 bethau posibl y gallwch 1081 00:44:49,570 --> 00:44:52,970 cynrychioli â'r gwahanol batrymau o 32 0au ac 1082 00:44:52,970 --> 00:44:55,600 1s, yn dda, mae'n sefyll i reswm y gallwn pobl eisiau 1083 00:44:55,600 --> 00:44:57,110 cynrychioli nid yn unig gyfanrifau positif 1084 00:44:57,110 --> 00:44:58,240 ond gyfanrifau negatif. 1085 00:44:58,240 --> 00:45:00,410 Ac yn wir, dyna'r rhagdybiaeth bod C yn ei wneud. 1086 00:45:00,410 --> 00:45:03,550 Felly, gyda 32 darnau, gallwch gynrychioli yn fras negyddol 2 1087 00:45:03,550 --> 00:45:06,630 biliwn yr holl ffordd i fyny i bositif 2 biliwn. 1088 00:45:06,630 --> 00:45:08,750 Ac felly yn yr achos hwn, yr hyn rydym ni'n wirioneddol gweld yn unig 1089 00:45:08,750 --> 00:45:13,600 ymylon y gallu ein cyfanrif, ac mae gennym, felly 1090 00:45:13,600 --> 00:45:15,860 i siarad, gorlifo yn gyfanrif. 1091 00:45:15,860 --> 00:45:19,180 Rydym wedi ceisio gwasgu darnau mwy i mewn iddo nag y gellir mewn gwirionedd yn addas. 1092 00:45:19,180 --> 00:45:22,960 Felly, y canlyniad terfynol yw ein hanfod yr holl ddarnau 1. 1093 00:45:22,960 --> 00:45:25,280 Rydym wedi troi ein holl ddarnau yn ddiweddarach, rydym wedi ceisio i gynrychioli 1094 00:45:25,280 --> 00:45:27,630 y nifer fwyaf posibl, ond nid yw'n glir bron 1095 00:45:27,630 --> 00:45:30,960 ddigon mawr i gynrychioli'r ddau beth rwyf wedi ei deipio i mewn yn unig 1096 00:45:30,960 --> 00:45:31,730 Yeah? 1097 00:45:31,730 --> 00:45:32,980 GYNULLEIDFA: [Anghlywadwy] 1098 00:45:37,230 --> 00:45:37,830 >> DAVID J. Malan: Cwestiwn da. 1099 00:45:37,830 --> 00:45:40,080 Pam na allwn ni jyst cynrychioli'r negyddol 1100 00:45:40,080 --> 00:45:41,500 llofnodi fel dim ond cymeriad? 1101 00:45:41,500 --> 00:45:44,200 Felly, rydym yn hollol gallai, a gallem wedyn arbed 1102 00:45:44,200 --> 00:45:45,470 yn ychydig yn ychwanegol. 1103 00:45:45,470 --> 00:45:49,100 Ond rydych chi'n dal yn mynd i gael i gynrychioli'r dash, a 1104 00:45:49,100 --> 00:45:50,700 mae hynny'n mynd i gostio i chi o leiaf rhywbeth, 1105 00:45:50,700 --> 00:45:52,220 yn ôl pob tebyg ychydig. 1106 00:45:52,220 --> 00:45:55,610 Felly ie, gallai gennym 32 ddarnau a ddefnyddir ar gyfer ein rhif, ond erbyn hyn 1107 00:45:55,610 --> 00:45:57,610 mae arnom angen ychydig arall a ddefnyddir ar gyfer ein llinell doriad 1108 00:45:57,610 --> 00:45:58,810 symbol, arwydd minws. 1109 00:45:58,810 --> 00:46:01,470 Felly, nawr rydym gennym 33 o werthoedd bit, y gallem ei wneud, ond mae'n 1110 00:46:01,470 --> 00:46:02,570 dim ond nid y ffordd y mae'n ei wneud. 1111 00:46:02,570 --> 00:46:05,140 Rydym yn llunio barn years galwad yn ôl, 32 darnau yn fath o 1112 00:46:05,140 --> 00:46:06,170 uned o fesur yma. 1113 00:46:06,170 --> 00:46:08,120 Felly, rydym yn mynd i ddefnyddio un o'r rhai darnau yn effeithiol i 1114 00:46:08,120 --> 00:46:12,950 cynrychioli negyddol, a 31 darnau i gynrychioli'r rhif. 1115 00:46:12,950 --> 00:46:15,550 Cwestiynau eraill? 1116 00:46:15,550 --> 00:46:15,670 Mae pob hawl. 1117 00:46:15,670 --> 00:46:16,030 Mae hynny'n llawer. 1118 00:46:16,030 --> 00:46:17,930 Pam nad ydym yn mynd yn ei flaen ac yn cymryd ein pum-munud egwyl yma? 1119 00:46:23,580 --> 00:46:24,270 >> Mae pob hawl. 1120 00:46:24,270 --> 00:46:31,250 Felly eto, er mwyn gorbwysleisio ceisiadau mathemategol 1121 00:46:31,250 --> 00:46:33,840 o raglennu, gadewch i ni dim ond tyn oddi ar un enghraifft hon yn 1122 00:46:33,840 --> 00:46:36,590 cyn i ni symud i mewn lluniadau eraill, dim ond oherwydd ei fod yn 1123 00:46:36,590 --> 00:46:39,430 Bydd dangos ambell bwynt tramgwydd cyffredin ar rai o'r 1124 00:46:39,430 --> 00:46:41,520 y pethau sylfaenol pan ddaw i raglenni ysgrifennu. 1125 00:46:41,520 --> 00:46:44,360 Yn yr achos hwn, yn gwneud rhifyddeg ymadroddion sydd â rhai 1126 00:46:44,360 --> 00:46:48,010 berthnasol diddorol i'r gystrawen. 1127 00:46:48,010 --> 00:46:50,430 >> Felly, mae hyn yn unig yw fformiwla gyda y gallwn drosi 1128 00:46:50,430 --> 00:46:52,690 tymheredd o Fahrenheit i Celsius. 1129 00:46:52,690 --> 00:46:54,600 Os nad ydych yn cofio, nid yw hyn ond y fformiwla. 1130 00:46:54,600 --> 00:46:58,870 Felly, os gallwn gau yn Fahrenheit gwerth o 32 gradd, sydd yn 1131 00:46:58,870 --> 00:47:02,850 rhewi, mae hynny'n mynd i fod yn 32 llai 32 yw 0, ac yn wir, 1132 00:47:02,850 --> 00:47:05,130 0 mewn Celsius hefyd yn rhewi. 1133 00:47:05,130 --> 00:47:08,210 Felly pwyll cyflym gwirio yno - dyna y fformiwla cyfarwydd. 1134 00:47:08,210 --> 00:47:10,880 Gadewch i mi fynd draw at y peiriant, fodd bynnag, a dechrau 1135 00:47:10,880 --> 00:47:13,920 ysgrifennu rhaglen o'r enw, fel, f2c; "Fahrenheit i 1136 00:47:13,920 --> 00:47:15,920 Celsius dot c ". 1137 00:47:15,920 --> 00:47:18,930 Ac ar y top yma, dw i'n mynd dechrau i ffwrdd gyda # yn cynnwys 1138 00:47:18,930 --> 00:47:22,190 stdio.h, ac yr wyf i'n mynd i wneud brif int (gwag), a 1139 00:47:22,190 --> 00:47:24,680 eto, byddwn yn dod yn ôl yn y dyfodol ynghylch pa int olygu 1140 00:47:24,680 --> 00:47:26,820 yno a beth ddi-rym yn golygu bod. 1141 00:47:26,820 --> 00:47:28,770 Ac yn awr gad i mi fynd yn ei flaen a gweithredu rhaglen sy'n 1142 00:47:28,770 --> 00:47:31,170 yn y bôn mae hyn yn trosi i ni. 1143 00:47:31,170 --> 00:47:36,830 >> Felly printf, gadewch i ni ddweud, tymheredd yn Fahrenheit. 1144 00:47:36,830 --> 00:47:40,140 Ac yna gadewch i mi fynd yn ei flaen a chael y gwerth gan y defnyddiwr. 1145 00:47:40,140 --> 00:47:43,120 Pa fath o werth a gaf gan y defnyddiwr os ydw i eisiau 1146 00:47:43,120 --> 00:47:45,620 iddynt roi i mi tymheredd yn Fahrenheit? 1147 00:47:45,620 --> 00:47:48,090 Yeah? 1148 00:47:48,090 --> 00:47:50,090 Beth fyddech chi'n ei gynnig? 1149 00:47:50,090 --> 00:47:50,410 Yeah. 1150 00:47:50,410 --> 00:47:51,960 Felly, arnofio yn teimlo eithaf rhesymol. 1151 00:47:51,960 --> 00:47:53,950 Mae gennym, unwaith eto, dim ond ychydig o ddewisiadau sy'n 1152 00:47:53,950 --> 00:47:55,310 rydym wedi gweld hyd yn hyn. 1153 00:47:55,310 --> 00:48:00,100 Mae gennym pethau fel torgoch, dwbl, arnofio, int, hir hir, 1154 00:48:00,100 --> 00:48:01,150 bool, llinyn. 1155 00:48:01,150 --> 00:48:03,510 Felly, o'r rhain, arnofio yn teimlo eithaf rhesymol. 1156 00:48:03,510 --> 00:48:06,340 Gallem ddefnyddio dwbl, iawn, oherwydd os ydym wir eisiau 1157 00:48:06,340 --> 00:48:07,580 cynrychioli tymheredd a dynol - 1158 00:48:07,580 --> 00:48:10,730 98.60000 - 1159 00:48:10,730 --> 00:48:12,990 gallem ddefnyddio 64 did i wneud hynny, ond mae'n teimlo fel 1160 00:48:12,990 --> 00:48:14,200 overkill ar gyfer y tymheredd. 1161 00:48:14,200 --> 00:48:16,380 Felly, gadewch i 'jyst yn mynd gyda fflôt. 1162 00:48:16,380 --> 00:48:18,100 Nawr mae angen newidyn. 1163 00:48:18,100 --> 00:48:20,500 Dim ond i gadw pethau'n syml, dw i'n mynd i alw ei f, ond yr wyf 1164 00:48:20,500 --> 00:48:23,370 Gallai un mor gywir ei alw tymheredd, 1165 00:48:23,370 --> 00:48:24,600 ond naill ai yn iawn. 1166 00:48:24,600 --> 00:48:27,610 Felly, arnofio f = GetFloat. 1167 00:48:27,610 --> 00:48:30,220 Cyn gynted ag yr wyf yn awr wedi penderfynu defnyddio GetFloat, fodd bynnag, yr wyf 1168 00:48:30,220 --> 00:48:33,340 angen i wneud un cywiriad. 1169 00:48:33,340 --> 00:48:33,720 Yeah. 1170 00:48:33,720 --> 00:48:37,460 Felly mae angen i # cynnwys , fel arall, y casglwr yn 1171 00:48:37,460 --> 00:48:39,000 mynd i gweiddi arnon ni. 1172 00:48:39,000 --> 00:48:41,720 Nawr bod gen i arnofio, gadewch i mi fynd yn ei flaen a gwneud y 1173 00:48:41,720 --> 00:48:42,460 trosi. 1174 00:48:42,460 --> 00:48:44,980 >> Felly, yn gyntaf, gadewch i mi fynd i mewn i'r arferiad yma o 1175 00:48:44,980 --> 00:48:46,310 sylwadau fy cod. 1176 00:48:46,310 --> 00:48:49,820 Felly eto, sylw yn unig yw nodiant i'r dynol sy'n 1177 00:48:49,820 --> 00:48:52,600 nad ydynt yn rhan o'r rhaglen fel y cyfryw, ond ei fod yn un, yn eich helpu i 1178 00:48:52,600 --> 00:48:55,010 deall beth wnaethoch chi y bore nesaf, neu y nesaf 1179 00:48:55,010 --> 00:48:57,570 mis, mae'n helpu eich cyd-addysgu yn deall yr hyn a wnaethoch chi 1180 00:48:57,570 --> 00:48:59,230 neu beth yr ydych yn bwriadu ei wneud, felly mae'n 1181 00:48:59,230 --> 00:49:00,950 ymarfer yn gyffredinol yn dda iawn. 1182 00:49:00,950 --> 00:49:02,940 Mae pob ychydig linellau o god, ysgrifennu sylw at y 1183 00:49:02,940 --> 00:49:04,490 eich hun neu eich cydweithiwr. 1184 00:49:04,490 --> 00:49:08,460 Felly yma, dw i'n mynd i ddweud, "Gofyn defnyddiwr ar gyfer tymheredd." 1185 00:49:08,460 --> 00:49:10,890 Nid yw'n rhaid i chi fod brawddeg gyflawn, dim ond ymadrodd byr. 1186 00:49:10,890 --> 00:49:14,270 Ond mae'r syniad y tu ôl i sylwadau yn C yw bod pob un o'ch 1187 00:49:14,270 --> 00:49:17,980 Dylai sylwadau grym i chi - neu, dyweder, TF neu gydweithiwr - 1188 00:49:17,980 --> 00:49:21,290 i sgimio eich rhaglen a gwybod yn union beth mae'n ei wneud, drwy beidio â 1189 00:49:21,290 --> 00:49:24,650 cymaint darllen y cod, ond trwy ddarllen y sylwadau, a 1190 00:49:24,650 --> 00:49:26,220 Dylai fod yn gryno ac yn glir. 1191 00:49:26,220 --> 00:49:29,030 Mae pob hawl, felly, yn awr gad i mi fynd yn ei flaen a dweud, "Trosi 1192 00:49:29,030 --> 00:49:32,660 Fahrenheit i Celsius. "Felly rwy'n mynd i fynd yn ei flaen ac yn ei wneud, 1193 00:49:32,660 --> 00:49:34,340 gadewch i ni ddweud, arnofio c. 1194 00:49:34,340 --> 00:49:36,610 Byddwn yn cadw Celsius fel Gwerth pwynt arnawf. 1195 00:49:36,610 --> 00:49:37,630 >> A gadewch i mi gymryd drywanu ar hyn. 1196 00:49:37,630 --> 00:49:40,350 Y fformiwla yw, unwaith eto, i fyny yma. 1197 00:49:40,350 --> 00:49:45,510 Fel 5/9 gwaith F minws 32. 1198 00:49:45,510 --> 00:49:46,360 Felly, gadewch i ni wneud hyn. 1199 00:49:46,360 --> 00:49:50,450 Hynny 5 wedi'i rannu gan 9, minws - 1200 00:49:50,450 --> 00:49:52,330 Wps, yr wyf cyboledig i fyny yn barod. 1201 00:49:52,330 --> 00:49:53,070 Times. 1202 00:49:53,070 --> 00:49:56,550 Felly, 5/9 gwaith F minws 32. 1203 00:49:56,550 --> 00:49:59,650 Felly F minws 32, hanner colon. 1204 00:49:59,650 --> 00:50:02,000 Ac yn awr, i lawr yma, yr wyf i'n mynd i fynd yn ei flaen 1205 00:50:02,000 --> 00:50:03,220 a dweud, argraffu canlyniad. 1206 00:50:03,220 --> 00:50:05,160 Ac mae hyn yn rhan hawdd. Printf. 1207 00:50:05,160 --> 00:50:07,980 Sut ydw i'n mynd ati i argraffu hyn? 1208 00:50:07,980 --> 00:50:16,890 Wel, gallwn ddweud "Dyna rhif yn Celsius yw% f \ n", 1209 00:50:16,890 --> 00:50:18,060 yn unig ar gyfer rhai estheteg. 1210 00:50:18,060 --> 00:50:20,450 Ac yna beth werth ydw i'n awyddus i gau'r yma fel y printf 1211 00:50:20,450 --> 00:50:21,360 ail ddadl? 1212 00:50:21,360 --> 00:50:21,650 Iawn. 1213 00:50:21,650 --> 00:50:22,540 Felly, dim ond c. 1214 00:50:22,540 --> 00:50:24,760 Felly, byddwn yn dechrau gyda hyn ac yna dim ond dychwelyd 0. 1215 00:50:24,760 --> 00:50:25,960 Unwaith eto, mae wedi ddim i'w wneud â'r math. 1216 00:50:25,960 --> 00:50:27,610 Mae'n jyst yn golygu popeth yn iawn. 1217 00:50:27,610 --> 00:50:31,210 >> Yn awr, mae hyn yn gywir, y rhaglen hon? 1218 00:50:31,210 --> 00:50:31,520 Mae pob hawl. 1219 00:50:31,520 --> 00:50:33,630 Felly, yr wyf wedi gwneud rhai camgymeriadau. 1220 00:50:33,630 --> 00:50:35,980 Hyd yn oed os nad oes gennych syniad beth yw rhaglennu, gallwch ddatrys 1221 00:50:35,980 --> 00:50:37,120 o casglu yn ôl i'r ysgol radd hyn y mae'r 1222 00:50:37,120 --> 00:50:38,740 Gallai camgymeriadau yma fod. 1223 00:50:38,740 --> 00:50:40,050 Beth yw un o'r cyntaf? 1224 00:50:40,050 --> 00:50:41,256 GYNULLEIDFA: [Anghlywadwy] 1225 00:50:41,256 --> 00:50:41,660 DAVID J. Malan: Yeah. 1226 00:50:41,660 --> 00:50:42,940 Felly, rydym yn colli cromfachau. 1227 00:50:42,940 --> 00:50:45,420 Roedd yn fwriadol a wneuthum cromfachau yn y prif 1228 00:50:45,420 --> 00:50:48,130 llithro yma, oherwydd mae mewn gwirionedd syniad hwn o drefn 1229 00:50:48,130 --> 00:50:51,590 o weithrediadau, neu blaenoriaeth, lle gweithrediadau penodol - 1230 00:50:51,590 --> 00:50:52,890 lluosi - 1231 00:50:52,890 --> 00:50:56,000 fod yn uwch rhwymo, yn cael blaenoriaeth uwch, na phethau 1232 00:50:56,000 --> 00:50:58,050 fel adio neu dynnu. 1233 00:50:58,050 --> 00:51:00,550 Felly, rydym wedi gwneud hyn ers blynyddoedd dim ond er mwyn gwneud yn glir yn union 1234 00:51:00,550 --> 00:51:02,840 pa weithrediad mathemategol sydd yn cael ei wneud yn gyntaf. 1235 00:51:02,840 --> 00:51:05,010 Felly mae'n debyg y dylwn dynwared yn union hynny. 1236 00:51:05,010 --> 00:51:08,990 Fel arall, mae'r cyfrifiadur yn ôl pob tebyg yn mynd i geisio gwneud 1237 00:51:08,990 --> 00:51:13,090 rhywbeth fel rhaniad 5 erbyn 9, yna lluosi F, yna tynnu 1238 00:51:13,090 --> 00:51:14,850 32 o holl beth. 1239 00:51:14,850 --> 00:51:16,480 Nad yw, mewn gwirionedd, yr hyn rydym am ei wneud. 1240 00:51:16,480 --> 00:51:17,340 Felly, gadewch i ni parenthesize. 1241 00:51:17,340 --> 00:51:20,860 Gadewch i ni ychwanegu fy cromfachau yma, cromfachau yma. 1242 00:51:20,860 --> 00:51:22,670 Gadewch i ni roi hyn dros yma. 1243 00:51:22,670 --> 00:51:25,130 Yma, Fi jyst sylwi ar gamgymeriad arall yr wyf ar hyd y ffordd. 1244 00:51:25,130 --> 00:51:25,680 Yeah? 1245 00:51:25,680 --> 00:51:26,930 GYNULLEIDFA: [Anghlywadwy] 1246 00:51:29,632 --> 00:51:30,130 >> DAVID J. Malan: Ah. 1247 00:51:30,130 --> 00:51:30,470 Da. 1248 00:51:30,470 --> 00:51:32,400 Felly, rydym mewn gwirionedd yn cael yr un cyfanrif 1249 00:51:32,400 --> 00:51:34,020 mater adran o'r blaen. 1250 00:51:34,020 --> 00:51:35,800 I gywiro hynny, gadewch i ni weld beth yw'r symptomau yn. 1251 00:51:35,800 --> 00:51:36,990 Ond rydym ni'n mynd i gael i gywiro un 1252 00:51:36,990 --> 00:51:37,680 camgymeriad arall yma. 1253 00:51:37,680 --> 00:51:38,015 Yeah? 1254 00:51:38,015 --> 00:51:39,540 GYNULLEIDFA: [Anghlywadwy] 1255 00:51:39,540 --> 00:51:40,070 DAVID J. Malan: Ydw. 1256 00:51:40,070 --> 00:51:43,130 Felly, camgymeriad dwp a wneuthum, ond yn hynod o bwysig. 1257 00:51:43,130 --> 00:51:45,870 Nid yw'r cyfrifiadur yn mynd i jyst troi llygad dall a gadael 1258 00:51:45,870 --> 00:51:48,770 i mi ddefnyddio F cyfalaf, pan oeddwn mewn gwirionedd yn datgan y newidyn 1259 00:51:48,770 --> 00:51:51,360 fel f llythrennau bach yma, yn llinell 8. 1260 00:51:51,360 --> 00:51:54,470 Felly, mae angen i mi gywiro yn llinell 11 fy cyfalafu, y mae 1261 00:51:54,470 --> 00:51:56,820 hyn o bryd yn ôl roedd yn F cyfalaf mewn camgymeriad. 1262 00:51:56,820 --> 00:51:57,610 Beth am fan hyn? 1263 00:51:57,610 --> 00:51:59,980 Pe bai hyn yn llythrennau bach yn ogystal? 1264 00:51:59,980 --> 00:52:02,260 Dylai fod yn, ond mae hynny'n cyd-ddigwyddiad. 1265 00:52:02,260 --> 00:52:05,070 Bod f% wedi ddim i'w wneud â'r amrywiol. 1266 00:52:05,070 --> 00:52:07,980 Felly, dim ond i fod super glir yma, gadewch i mi fynd yn ei flaen a 1267 00:52:07,980 --> 00:52:10,710 ail-enwi hyn, yn fyr, "tymheredd." Gadewch i mi ail-enwi 1268 00:52:10,710 --> 00:52:15,050 y "tymheredd." Gadewch i mi Methu ail-enwi hyn. 1269 00:52:15,050 --> 00:52:18,180 Oherwydd, unwaith eto, f% yn fyd-eang yn golygu, "fel y bo'r angen gwerth pwynt." 1270 00:52:18,180 --> 00:52:19,950 Wedi ddim i'w wneud gyda fy amrywiol. 1271 00:52:19,950 --> 00:52:23,080 Ond "tymheredd" i gyd dros y lle yn unig yw ychydig yn amleiriog, 1272 00:52:23,080 --> 00:52:25,370 felly dwi'n mynd i fynd yn ôl at fy llythrennau bach "f" s. 1273 00:52:25,370 --> 00:52:27,890 >> Yn awr, gadewch i mi fynd yn ei flaen i lawr at fy ffenestr yma. 1274 00:52:27,890 --> 00:52:29,190 Gwnewch f2c - 1275 00:52:29,190 --> 00:52:31,200 a oedd, unwaith eto, yr enw mympwyol I 1276 00:52:31,200 --> 00:52:32,590 roddodd i'r ffeil hon. 1277 00:52:32,590 --> 00:52:33,690 Ymddangos i wedi ei lunio. 1278 00:52:33,690 --> 00:52:35,080 Gadewch i mi redeg f2c. 1279 00:52:35,080 --> 00:52:35,780 Enter. 1280 00:52:35,780 --> 00:52:37,786 Tymheredd yn Fahrenheit - gadewch i ni wneud yn un hawdd. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, cywiro. 1283 00:52:40,910 --> 00:52:45,910 Ond, os wyf yn ei wneud yn awr 212 i gael berwi - 1284 00:52:45,910 --> 00:52:46,630 damn. 1285 00:52:46,630 --> 00:52:47,030 Mae pob hawl. 1286 00:52:47,030 --> 00:52:50,780 Felly, nid, yn amlwg yn gywir, os yw eich TF ceisio 1287 00:52:50,780 --> 00:52:51,800 o leiaf dau werth. 1288 00:52:51,800 --> 00:52:53,340 Felly beth yw'r broblem yma? 1289 00:52:53,340 --> 00:52:55,970 Wel, ydych chi eisoes yn rhoi eich bys ar yr hyn y mater. 1290 00:52:55,970 --> 00:52:57,600 Ond pam bod yr achos? 1291 00:52:57,600 --> 00:53:00,630 Up yma, pan oeddwn i'n gwneud y math o 5 wedi'i rannu gan 9. 1292 00:53:00,630 --> 00:53:02,190 Felly gysyniadol, mae hynny'n berffaith gywir. 1293 00:53:02,190 --> 00:53:03,690 Gwbl gyson â'r fformiwla. 1294 00:53:03,690 --> 00:53:05,940 Ond gyfrifiaduron ond yn gwneud yn union yr hyn yr ydych 1295 00:53:05,940 --> 00:53:06,760 dweud wrthyn nhw am wneud. 1296 00:53:06,760 --> 00:53:08,940 A beth ydym ni'n effeithiol dweud wrth y cyfrifiadur yma 1297 00:53:08,940 --> 00:53:12,320 rhannwch y 5 gyfanrif gan y 9 gyfanrif 1298 00:53:12,320 --> 00:53:13,670 ac yn rhoi 'm' r canlyniad. 1299 00:53:13,670 --> 00:53:16,230 Y broblem yw, fodd bynnag, pan fyddwch yn is-adran gan ddefnyddio data 1300 00:53:16,230 --> 00:53:20,220 mathau, mae'r allbwn yw'r math ddata un fath â'r mewnbynnau. 1301 00:53:20,220 --> 00:53:23,670 Ac felly os yw'r ddau fewnbwn yn y ddau ints, mae'r allbwn yn mynd 1302 00:53:23,670 --> 00:53:25,110 i fod yn int. 1303 00:53:25,110 --> 00:53:28,770 Ac hynny 5 wedi'i rannu gan 9 yn rhywbeth pwynt. 1304 00:53:28,770 --> 00:53:32,320 Ond beth yw'r cyfanrif agosaf i bwynt rhywbeth? 1305 00:53:32,320 --> 00:53:33,630 Felly, mae'n mewn gwirionedd 0. 1306 00:53:33,630 --> 00:53:36,620 Felly, wrth i ni drafod ddydd Llun, popeth ar ôl y degol 1307 00:53:36,620 --> 00:53:37,940 pwynt yn cael ei fyrhau. 1308 00:53:37,940 --> 00:53:39,495 'I jyst yn cael eu taflu i ffwrdd. 1309 00:53:39,495 --> 00:53:42,760 Felly, mae hyn yn gamgymeriad gyflawn, oherwydd efallai y byddaf yn ogystal dim ond 1310 00:53:42,760 --> 00:53:44,700 lluosi popeth erbyn 0 yma. 1311 00:53:44,700 --> 00:53:46,550 >> Yn awr, gallaf atgyweiria hon mewn dwy ffordd. 1312 00:53:46,550 --> 00:53:48,080 Gallwn wneud hyn. 1313 00:53:48,080 --> 00:53:50,490 5.0 rhannu gan 9.0. 1314 00:53:50,490 --> 00:53:52,110 Yn dechnegol, nid wyf yn hyd yn oed angen i wneud hynny. 1315 00:53:52,110 --> 00:53:55,780 Mae'n gwneud yn ddigon i ddim ond gwneud un o'r rhifau fflôt - 1316 00:53:55,780 --> 00:53:58,290 neu ddwbl - drwy roi'r pwynt degol yma. 1317 00:53:58,290 --> 00:54:01,740 Oherwydd yr hyn sy'n digwydd yn awr yw pan fyddwch yn rhannu'r yn gyfanrif gan 1318 00:54:01,740 --> 00:54:04,670 fflôt, neu ddwbl, y cyfrifiadur yn mynd i wireddu 1319 00:54:04,670 --> 00:54:06,830 oh, un o'r rhai yn fwy manwl gywir. 1320 00:54:06,830 --> 00:54:09,420 Gadewch i mi gyfeiliorni ar ochr o roi mwy o fanylder nag 1321 00:54:09,420 --> 00:54:10,310 oeddech yn bwriadu. 1322 00:54:10,310 --> 00:54:12,700 Felly, bydd yn newid y canlyniad - 1323 00:54:12,700 --> 00:54:16,240 bydd yn dychwelyd y canlyniad fel Gwerth pwynt arnawf yn ogystal. 1324 00:54:16,240 --> 00:54:17,330 Felly, a fyddai'n gweithio. 1325 00:54:17,330 --> 00:54:18,060 Byddai hyn yn gweithio. 1326 00:54:18,060 --> 00:54:20,010 Ac mae un dull arall y byddwn yn gweld yn y 1327 00:54:20,010 --> 00:54:21,390 mwy o fanylion yr wythnos nesaf. 1328 00:54:21,390 --> 00:54:24,690 Gallwch mewn gwirionedd, fel y rhaglennydd, ddweud wrth y cyfrifiadur 1329 00:54:24,690 --> 00:54:27,930 mewn gwirionedd drin un math data fel 1330 00:54:27,930 --> 00:54:29,260 er ei fod yn un arall. 1331 00:54:29,260 --> 00:54:30,990 >> Felly, gallai Fi 'n weithredol wneud hyn. 1332 00:54:30,990 --> 00:54:35,280 Mewn cromfachau, gallaf ddweud rhywbeth fel (arnofio), agored 1333 00:54:35,280 --> 00:54:36,350 paren, paren agos. 1334 00:54:36,350 --> 00:54:39,050 Ac mae hyn yn hyn a elwir "castio." Unwaith eto, yn fwy 1335 00:54:39,050 --> 00:54:39,940 hyn yr wythnos nesaf. 1336 00:54:39,940 --> 00:54:42,280 Ond dim ond y ffordd rhaglennol o ddweud 1337 00:54:42,280 --> 00:54:45,910 y cyfrifiadur, yeah Rwy'n gwybod 9 yn gyfanrif neu hir. 1338 00:54:45,910 --> 00:54:47,700 Rwy'n gwybod nad ei fod yn werth pwynt arnawf. 1339 00:54:47,700 --> 00:54:49,420 Ond ei drin yn briodol beth bynnag. 1340 00:54:49,420 --> 00:54:52,000 Felly, er mwyn bwrw math data yn golygu i drosi 1341 00:54:52,000 --> 00:54:53,310 o un i'r llall. 1342 00:54:53,310 --> 00:54:55,790 A dweud y gwir, mae hyn yn unig yw ychydig yn hyll, felly byddwn yn cynnig byddwn yn mynd 1343 00:54:55,790 --> 00:54:58,830 gefn i'r awgrym gwreiddiol o ddim ond trosi 1344 00:54:58,830 --> 00:55:00,770 y pethau hyn i arnofio werthoedd pwynt llaw. 1345 00:55:00,770 --> 00:55:02,890 Oherwydd awron 'i' jyst super glir beth sy'n mynd ymlaen, ac 1346 00:55:02,890 --> 00:55:04,280 nid yw'n bob un sy'n tynnu sylw. 1347 00:55:04,280 --> 00:55:06,710 >> Felly, gadewch i ni bellach yn mynd yn ôl i mewn i fy ffenest terfynell. 1348 00:55:06,710 --> 00:55:07,990 Gwnewch f2c. 1349 00:55:07,990 --> 00:55:09,430 Gadewch i mi fynd yn ei flaen ac yn rhedeg y. 1350 00:55:09,430 --> 00:55:12,340 Ac, wrth fynd heibio, byddwch yn cael diflasu teipio gorchmynion hyn 1351 00:55:12,340 --> 00:55:14,910 dro ar ôl tro, yn sylweddoli bod cyfrifiaduron, fel Linux yma, 1352 00:55:14,910 --> 00:55:16,010 yn tueddu i fod yn eithaf smart. 1353 00:55:16,010 --> 00:55:18,890 Ac os wyf yn taro Up, gallwn fynd trwy fy hanes gyfan o 1354 00:55:18,890 --> 00:55:20,380 gorchmynion, Up and Down. 1355 00:55:20,380 --> 00:55:23,840 Felly, yn yr achos hwn yma, gallaf jyst yn mynd Hyd at redeg gwneud f2c. 1356 00:55:23,840 --> 00:55:25,830 Rwy'n cael yelled, oherwydd Fi jyst yn gwneud hynny eiliad yn ôl. 1357 00:55:25,830 --> 00:55:27,030 Mae eisoes yn gyfoes. 1358 00:55:27,030 --> 00:55:30,720 Felly nawr gallaf redeg f2c eto. 1359 00:55:30,720 --> 00:55:33,260 Gadewch i ni geisio 32 Fahrenheit. 1360 00:55:33,260 --> 00:55:36,720 Nawr gadewch i ni geisio 212 Fahrenheit. 1361 00:55:36,720 --> 00:55:37,250 >> PHEW. 1362 00:55:37,250 --> 00:55:38,250 Ymddangos i weithio. 1363 00:55:38,250 --> 00:55:41,760 Yn awr, mae hyn yn dda, ond mae'n teimlo ychydig yn mympwyol a fyddai'n 1364 00:55:41,760 --> 00:55:44,890 Rwy'n dangos chwe rhif ar ôl y pwynt degol. 1365 00:55:44,890 --> 00:55:45,070 Hawl? 1366 00:55:45,070 --> 00:55:47,830 Os mai chi yw'r person y tywydd ar y teledu, rydych yn fath o doofus 1367 00:55:47,830 --> 00:55:49,150 os ydych chi'n darllen y tymheredd i 1368 00:55:49,150 --> 00:55:50,070 y radd o gywirdeb. 1369 00:55:50,070 --> 00:55:51,270 Felly, gadewch i ni symleiddio hyn. 1370 00:55:51,270 --> 00:55:53,880 Felly, gadewch i ni mewn gwirionedd yn mynd i fyny yma, i fy printf. 1371 00:55:53,880 --> 00:55:55,490 Ac ie, yr wyf am i arnofio. 1372 00:55:55,490 --> 00:55:57,570 Ond yr wyf am i hyn nodi y manylder. 1373 00:55:57,570 --> 00:55:59,070 Ac yr wyf i'n mynd i fod yn gryno bach. 1374 00:55:59,070 --> 00:56:03,090 Rydw i'n mynd i ddweud, yn rhoi i mi un pwynt ar ôl y lle degol. 1375 00:56:03,090 --> 00:56:07,590 Felly, yn hytrach na dweud f%, dw i'n mynd i ddweud% .1 f. 1376 00:56:07,590 --> 00:56:09,760 Ac mae hyn yn unig yn golygu rhoi i mi un swydd 1377 00:56:09,760 --> 00:56:11,410 ar ôl y pwynt degol. 1378 00:56:11,410 --> 00:56:11,700 Mae pob hawl. 1379 00:56:11,700 --> 00:56:12,570 Gadewch i ni geisio hyn eto. 1380 00:56:12,570 --> 00:56:15,590 Gadewch i mi ail-redeg ar ôl llunio. 1381 00:56:15,590 --> 00:56:18,160 Ac yn awr yr wyf yn teipio mewn 32, ac yr wyf yn mynd yn ôl i 1382 00:56:18,160 --> 00:56:19,310 werth yn fwy cryno. 1383 00:56:19,310 --> 00:56:22,480 A allaf deipio i mewn, yn awr, 212, a mynd yn ôl fwy cryno 1384 00:56:22,480 --> 00:56:23,260 gwerth yn ogystal. 1385 00:56:23,260 --> 00:56:25,190 Ac mae pethau eraill y gallwch chi ei wneud gyda printf. 1386 00:56:25,190 --> 00:56:27,950 Gallwch mewn gwirionedd yn nodi pa mor eang y dylai'r nifer fod. 1387 00:56:27,950 --> 00:56:30,900 Os ydych chi am gael padin arno, fel y gallwch dde-alinio neu 1388 00:56:30,900 --> 00:56:32,360 chwith-alinio eich holl rhifau neu 1389 00:56:32,360 --> 00:56:33,400 ceisio bethau ganolfan. 1390 00:56:33,400 --> 00:56:35,340 Felly, yn sylweddoli bod driciau bach y gallwch eu gwneud yno. 1391 00:56:35,340 --> 00:56:38,420 Ond maent dim ond berwi i lawr i godau fformat, 1392 00:56:38,420 --> 00:56:39,600 fel y mae gennym yno. 1393 00:56:39,600 --> 00:56:41,090 >> Felly, o ran y mater o flaenoriaeth. 1394 00:56:41,090 --> 00:56:43,820 Mae hwn yn tabl diflas iawn i fynd drwy'r drefnus. 1395 00:56:43,820 --> 00:56:46,780 Ond yn sylweddoli bod awduron C wedi dod o hyd i'r 1396 00:56:46,780 --> 00:56:50,190 rheolau sy'n pennu pa weithredwyr uwch 1397 00:56:50,190 --> 00:56:53,680 blaenoriaeth, mwy o bŵer rhwymo, nag eraill. 1398 00:56:53,680 --> 00:56:55,890 Felly, tra yn yr ysgol radd, rydym yn gyffredinol yn gwybod ei bod yn 1399 00:56:55,890 --> 00:56:58,930 lluosi a rhannu, yna adio a thynnu, 1400 00:56:58,930 --> 00:56:59,950 yna rhai pethau eraill. 1401 00:56:59,950 --> 00:57:01,720 Mewn byd o raglenni, mae llawer 1402 00:57:01,720 --> 00:57:03,360 rhestr hwy o bethau. 1403 00:57:03,360 --> 00:57:05,150 Ac nid yw hyn yn rhywbeth gwerth cofio nawr. 1404 00:57:05,150 --> 00:57:07,310 Byddwch yn cael acclimated iddo cyn hir. 1405 00:57:07,310 --> 00:57:10,690 Ond yn union fel yn yr ysgol radd, cromfachau yn gyffredinol datrys 1406 00:57:10,690 --> 00:57:12,990 y materion blaenoriaeth, drwy wneud super glir i'r 1407 00:57:12,990 --> 00:57:15,620 cyfrifiadur a dynol fel ei gilydd yr hyn a fwriedir. 1408 00:57:15,620 --> 00:57:17,770 Felly, yn ystyried hyn yn unig taflen twyllo ychydig yno. 1409 00:57:17,770 --> 00:57:21,690 Ond mae'r rhan fwyaf o'r manylion hynny ni fyddwn yn cael i ers peth amser. 1410 00:57:21,690 --> 00:57:21,900 >> Mae pob hawl. 1411 00:57:21,900 --> 00:57:24,120 Nawr, gadewch i ni adeiladu i fyny ac i symud i ffwrdd o'r ychydig gwirion 1412 00:57:24,120 --> 00:57:25,460 enghreifftiau mathemategol. 1413 00:57:25,460 --> 00:57:27,500 Yn dal i ddefnyddio yr hanfodion yr un, ond yn dechrau 1414 00:57:27,500 --> 00:57:29,960 mynegi ein hunain ychydig yn fwy fel Scratch. 1415 00:57:29,960 --> 00:57:31,660 Felly, yn Scratch, cawsom y mynegiadau Boole. 1416 00:57:31,660 --> 00:57:34,890 Ac yn Saesneg, mynegiad Boole yw beth? 1417 00:57:34,890 --> 00:57:35,580 Gwir neu ffug. 1418 00:57:35,580 --> 00:57:38,300 Mae'n rhywbeth sy'n gwerthuso yn wir neu'n anwir. 1419 00:57:38,300 --> 00:57:39,060 1 neu 0. 1420 00:57:39,060 --> 00:57:39,870 Ar neu i ffwrdd. 1421 00:57:39,870 --> 00:57:41,000 Beth bynnag yr ydych am ei alw. 1422 00:57:41,000 --> 00:57:43,210 Nawr yn Scratch, y darnau pos yn edrych fel hyn. 1423 00:57:43,210 --> 00:57:45,850 A dyna y cyfuniad, ar y gwaelod yno, o dri 1424 00:57:45,850 --> 00:57:47,980 darnau pos. 1425 00:57:47,980 --> 00:57:48,980 Un ar y cyd - 1426 00:57:48,980 --> 00:57:51,710 rhywbeth sydd yn wag ac yn wag. 1427 00:57:51,710 --> 00:57:53,970 Ac yna ddau mynegiadau Boole tu mewn iddo. 1428 00:57:53,970 --> 00:57:56,460 Felly, gallwch mynegiadau Boole nythu i gael rhagor o 1429 00:57:56,460 --> 00:57:59,360 cymhleth mynegiadau Boole. 1430 00:57:59,360 --> 00:58:03,930 Er enghraifft, os yw dydd Sadwrn, ac mae'n braf 1431 00:58:03,930 --> 00:58:06,180 tywydd, ac yna mynd allan. 1432 00:58:06,180 --> 00:58:07,500 Neu rywbeth fel 'na mympwyol. 1433 00:58:07,500 --> 00:58:10,090 Felly, gallwch ymuno â mynegiadau Boole i ddod o hyd i 1434 00:58:10,090 --> 00:58:12,780 gwerth gwir mwy o faint, y mae ei ateb yn seiliedig 1435 00:58:12,780 --> 00:58:13,800 ar y rhai llai. 1436 00:58:13,800 --> 00:58:15,770 >> Yn awr, yn C, diolch byth, y mapiau hyn yn 1437 00:58:15,770 --> 00:58:16,720 mewn gwirionedd yn eithaf syml. 1438 00:58:16,720 --> 00:58:18,820 Cromfachau helpu i wneud pethau yn glir yma. 1439 00:58:18,820 --> 00:58:21,700 && Hyn yn golygu "a." Felly dyna sut y 1440 00:58:21,700 --> 00:58:24,700 rydym yn mynd i newid y blociau o Scratch i C. 1441 00:58:24,700 --> 00:58:27,590 Ac ar gyfer yr amodau a welsom yn Scratch, ar y llaw chwith 1442 00:58:27,590 --> 00:58:31,150 ochr yno, gallaf pentyrru nhw yr un modd yn C. Os yw x yn llai 1443 00:58:31,150 --> 00:58:32,970 nag y, yna gwnewch hyn. 1444 00:58:32,970 --> 00:58:35,100 Arall os x yn fwy na y, yna gwnewch hyn. 1445 00:58:35,100 --> 00:58:38,030 Arall yn rhesymegol rhaid iddynt fod yn gyfartal, felly dweud 1446 00:58:38,030 --> 00:58:39,140 eu bod yn gyfartal. 1447 00:58:39,140 --> 00:58:41,210 Felly, gallwn yn awr ddechrau adeiladu y pethau hyn i fyny. 1448 00:58:41,210 --> 00:58:42,170 >> Felly, gadewch i ni wneud yn enghraifft. 1449 00:58:42,170 --> 00:58:45,550 Gadewch i mi agor i fyny ffeil sydd ar wefan y cwrs y 1450 00:58:45,550 --> 00:58:47,270 Ysgrifennais o flaen llaw. 1451 00:58:47,270 --> 00:58:50,540 Sy'n cael ei alw'n nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 A byddwn yn gweld pam fod mewn dim ond hyn o bryd. 1453 00:58:52,270 --> 00:58:54,770 Felly, yn y ffeil - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 1 yn sylweddoli bod yna criw cyfan o 1455 00:58:56,830 --> 00:58:58,460 sylwadau ar y brig. 1456 00:58:58,460 --> 00:59:00,110 Dyna dim ond egluro enw'r ffeil, beth mae'n ei 1457 00:59:00,110 --> 00:59:01,260 ei wneud, ac yn y blaen. 1458 00:59:01,260 --> 00:59:04,390 Ac mae'n debyg yn dangos y defnydd o Boole A-ing - 1459 00:59:04,390 --> 00:59:06,220 conjoining ddau fynegiad. 1460 00:59:06,220 --> 00:59:07,670 >> Felly, gadewch i ni weld sut y mae'r rhaglen hon yn gweithio. 1461 00:59:07,670 --> 00:59:10,840 Wyf yn cynnwys fy dwy ffeil, cs50.h a stdio.h. 1462 00:59:10,840 --> 00:59:13,180 Os byddaf yn sgroliwch i lawr, yn awr, at y rhaglen, mae'n ychydig yn hwy 1463 00:59:13,180 --> 00:59:15,730 nag yr ydym wedi ysgrifennu o'r blaen, ond 'n bert ddarllenadwy. 1464 00:59:15,730 --> 00:59:18,360 Felly, Tro cyntaf i mi argraffu i'r defnyddiwr, ar-lein 18, 1465 00:59:18,360 --> 00:59:20,460 "Rhowch i mi cyfanrif rhwng 1 a 10." Felly 1466 00:59:20,460 --> 00:59:21,530 sy'n iawn yno. 1467 00:59:21,530 --> 00:59:23,410 Nawr rwy'n cael y cyfanrif. 1468 00:59:23,410 --> 00:59:25,380 Ond sylweddoli bod GetInt - 'n bert syml. 1469 00:59:25,380 --> 00:59:26,510 Mae'n dim ond yn mynd i gael int. 1470 00:59:26,510 --> 00:59:28,830 Mae'n mynd i beidio â sicrhau ei fod yn cael int a 1471 00:59:28,830 --> 00:59:30,060 llinyn neu fflôt. 1472 00:59:30,060 --> 00:59:32,390 Ond nid yw'n mynd i wneud unrhyw fath o wirio ffin. 1473 00:59:32,390 --> 00:59:34,750 Nid yw'n mynd i hidlo'r niferoedd i fod rhwng 1474 00:59:34,750 --> 00:59:35,630 ystod benodol. 1475 00:59:35,630 --> 00:59:37,730 Felly, mae'n rhaid i ni weithredu ein hunain. 1476 00:59:37,730 --> 00:59:40,680 Felly, yn union fel yn Scratch, lle y gallwn wneud ar y cyd o 1477 00:59:40,680 --> 00:59:43,560 dau fynegiad, gallaf wneud hynny yn C fel a ganlyn. 1478 00:59:43,560 --> 00:59:48,660 Os n yn fwy na neu'n hafal i 1, ac n yn llai na ac yn 1479 00:59:48,660 --> 00:59:52,220 neu'n hafal i 3, yr wyf yn mynd i iawn fympwyol gorchymyn a 1480 00:59:52,220 --> 00:59:53,830 plith i fod yn nifer fechan. 1481 00:59:53,830 --> 00:59:56,730 Dim ond er mwyn datganiad. 1482 00:59:56,730 --> 01:00:00,210 Arall os yw n rhwng 4 a 6, print "Rydych yn dewis gyfrwng 1483 01:00:00,210 --> 01:00:03,440 rhif. "Else os n yw rhwng 7 a 10, print" Rydych yn dewis a 1484 01:00:03,440 --> 01:00:06,390 nifer mawr. "Else argraffu" chi ddewis rhif annilys. " 1485 01:00:06,390 --> 01:00:07,900 Oherwydd rhesymegol, sy'n dilyn os ydym wedi 1486 01:00:07,900 --> 01:00:09,230 wedi blino'n lân ein hystod. 1487 01:00:09,230 --> 01:00:12,400 >> Felly, yn sylweddoli nad yw hyn yn hollol sut y byddwn yn ysgrifennu yn fwy na neu'n 1488 01:00:12,400 --> 01:00:15,000 cyfartal i mewn dosbarth mathemateg. 1489 01:00:15,000 --> 01:00:15,160 Hawl? 1490 01:00:15,160 --> 01:00:17,430 Byddwch fel arfer yn tynnu fel hyn, gyda'r llinell yn ei sgil. 1491 01:00:17,430 --> 01:00:19,250 Ond nid oes allwedd o'r fath ar fy bysellfwrdd. 1492 01:00:19,250 --> 01:00:22,390 Felly mae'r symbol yn C ar gyfer mynegi fwy na neu'n 1493 01:00:22,390 --> 01:00:25,770 cyfartal i yw dau gymeriad, a'r symbol am lai na 1494 01:00:25,770 --> 01:00:29,100 neu'n hafal i yw dau gymeriad yn ogystal. 1495 01:00:29,100 --> 01:00:29,330 Mae pob hawl. 1496 01:00:29,330 --> 01:00:31,910 Felly, os wyf yn rhedeg y rhaglen, mae'n debyg y gallwch ddyfalu beth yw 1497 01:00:31,910 --> 01:00:32,650 mynd i'w wneud. 1498 01:00:32,650 --> 01:00:36,180 Os byddaf yn mynd yn ei flaen ac yn gwneud nonswitch, Enter. 1499 01:00:36,180 --> 01:00:38,130 Ac yna yn rhedeg nonswitch. 1500 01:00:38,130 --> 01:00:39,530 Rhowch i mi rif rhwng 1 a 10. 1501 01:00:39,530 --> 01:00:40,870 Rydw i'n mynd i roi 11. 1502 01:00:40,870 --> 01:00:42,280 Yr wyf yn codi nifer annilys. 1503 01:00:42,280 --> 01:00:44,090 Gadewch i mi roi cynnig ar y rhif 3. 1504 01:00:44,090 --> 01:00:45,990 Yr wyf yn codi nifer bach. 1505 01:00:45,990 --> 01:00:48,360 Felly, yn weddol syml yno. 1506 01:00:48,360 --> 01:00:52,230 >> Beth os wyf am newid ymddygiad y rhaglen hon ac 1507 01:00:52,230 --> 01:00:54,250 wneud rhywbeth ychydig yn wahanol yn lle hynny? 1508 01:00:54,250 --> 01:00:57,620 Gadewch i mi fynd yn ei flaen a dweud hyn. 1509 01:00:57,620 --> 01:00:59,480 Gadewch i mi gael gwared ar yr holl hyn. 1510 01:00:59,480 --> 01:01:03,780 A gadewch i mi ddweud os (n == 42). 1511 01:01:03,780 --> 01:01:08,730 Ac yna dwi'n mynd i fynd yn ei flaen a dweud print "Rydych dewis y 1512 01:01:08,730 --> 01:01:16,340 ateb cywir. "Else rydym yn mynd i fynd yn ei flaen a dweud, 1513 01:01:16,340 --> 01:01:18,460 printf ("Rydych dewis y 1514 01:01:18,460 --> 01:01:21,170 ateb anghywir ");. Iawn. 1515 01:01:21,170 --> 01:01:22,040 Dim ond oherwydd. 1516 01:01:22,040 --> 01:01:23,890 >> Nawr, ychydig o bwyntiau gallwn wneud yma. 1517 01:01:23,890 --> 01:01:26,570 Un, doeddwn i ddim yn teipiwch y symbol y byddech yn meddwl yn y 1518 01:01:26,570 --> 01:01:27,390 mwyaf rhesymol. 1519 01:01:27,390 --> 01:01:30,110 Pan fyddaf am wirio cydraddoldeb, troi allan nad ydych yn defnyddio'r 1520 01:01:30,110 --> 01:01:30,910 arwydd cyfartal. 1521 01:01:30,910 --> 01:01:34,000 Chi yn hytrach na defnyddio'r arwydd cyfartal cyfartal. 1522 01:01:34,000 --> 01:01:36,440 Ac efallai pam fod, dim ond reddfol? 1523 01:01:36,440 --> 01:01:37,030 Yeah. 1524 01:01:37,030 --> 01:01:39,330 GYNULLEIDFA: [Anghlywadwy] 1525 01:01:39,330 --> 01:01:39,615 DAVID J. Malan: Cywir. 1526 01:01:39,615 --> 01:01:41,630 Mae'r arwydd cyfartal yn cael ei ddefnyddio eisoes ar gyfer aseiniad. 1527 01:01:41,630 --> 01:01:43,020 Nid yw rhywun oedd yn wir yn feddwl hyn trwyddo. 1528 01:01:43,020 --> 01:01:45,820 Ac felly yn awr, pan ddaw i brofi cydraddoldeb, mae'n rhaid i ni 1529 01:01:45,820 --> 01:01:48,850 fod yn fwy eglur, a dweud hafal gyfartal. 1530 01:01:48,850 --> 01:01:52,110 Camgymeriad cyffredin iawn yw i wneud hyn. 1531 01:01:52,110 --> 01:01:54,800 Ac, os yn ystod oriau swyddfa neu rywbryd yr wythnos nesaf neu yn y 1532 01:01:54,800 --> 01:01:58,340 y pythefnos nesaf byddwch yn gwneud rhywbeth fel hyn ac yna 1533 01:01:58,340 --> 01:02:00,920 cael trafferth â nhw am 10, 20 munud yn ceisio at chyfrif i maes 1534 01:02:00,920 --> 01:02:03,330 yr hyn y byg damn yw, yn sylweddoli eich bod yn un o'r rhai 1535 01:02:03,330 --> 01:02:04,470 bobl a wnaeth y camgymeriad. 1536 01:02:04,470 --> 01:02:06,030 Felly, super hawdd i'w wneud. 1537 01:02:06,030 --> 01:02:08,240 Ond y nod yn awr yw i ward oddi ar y camgymeriad. 1538 01:02:08,240 --> 01:02:11,840 Gallai hyn gwerthuso, gan fod yr hyn mae hyn yn ei ddweud mewn gwirionedd? 1539 01:02:11,840 --> 01:02:15,010 Os n cael 42. 1540 01:02:15,010 --> 01:02:18,250 Felly y bobl a ferf defnyddio, ar lafar, i fynegi 1541 01:02:18,250 --> 01:02:21,800 syniad o aseiniad yw "ei gael." Felly, os n cael 42. 1542 01:02:21,800 --> 01:02:24,060 Felly mae hynny'n golygu neilltuo 42 i n. 1543 01:02:24,060 --> 01:02:26,250 Nawr mae gennyf mynegiad Boole mewn cromfachau, 1544 01:02:26,250 --> 01:02:30,230 y tu mewn y cyflwr hwn, y gwerth sydd yn 42. 1545 01:02:30,230 --> 01:02:30,390 Hawl? 1546 01:02:30,390 --> 01:02:32,690 Oherwydd os ydych yn ei werthuso gan y, y tu mewn i'r cyfanswm 1547 01:02:32,690 --> 01:02:34,100 ateb, yn awr, yw 42. 1548 01:02:34,100 --> 01:02:37,360 >> Felly, os wyf yn gofyn y cwestiwn, "os (42)," yr hyn sy'n 1549 01:02:37,360 --> 01:02:38,410 bod ei ddweud mewn gwirionedd? 1550 01:02:38,410 --> 01:02:40,990 Wel, gall mynegiadau Boole yn unig fod yn wir neu ffug. 1551 01:02:40,990 --> 01:02:42,010 1 neu 0. 1552 01:02:42,010 --> 01:02:43,010 Ar neu i ffwrdd. 1553 01:02:43,010 --> 01:02:45,240 Felly, rydym yn ymddangos i gael achos cornel yma, lle mae'r holl o 1554 01:02:45,240 --> 01:02:50,060 sydyn, i ddim yn dweud "os (42)". Nid yw hynny'n werth Boole. 1555 01:02:50,060 --> 01:02:54,500 Felly, yr hyn y cyfrifiaduron yn ei wneud, fodd bynnag, yw ei hanfod yn cyfateb 1556 01:02:54,500 --> 01:02:58,620 unrhyw beth nad yw hynny'n cael ei ddehongli 0 i fod yn wir. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 Ar. 1559 01:02:59,690 --> 01:03:01,510 Maen nhw i gyd cyfatebol swyddogaethol. 1560 01:03:01,510 --> 01:03:05,070 Dim ond y gwerth 0, neu yr allweddair ffug, fel y gallwn eich 1561 01:03:05,070 --> 01:03:07,860 yn y pen draw yn gweld, mewn gwirionedd ffug. 1562 01:03:07,860 --> 01:03:15,040 Felly, "os (42)" fyddai mewn gwirionedd yn wir, oherwydd ei fod yn di-sero. 1563 01:03:15,040 --> 01:03:18,620 Felly, i fod yn fwy manwl gywir yma, mae gwerth Boole nid yn wirioneddol felly 1564 01:03:18,620 --> 01:03:20,680 llawer yn wir neu'n anwir, ond ar gyfer yr 1565 01:03:20,680 --> 01:03:24,650 achos, os yw 0 neu heb fod yn sero. 1566 01:03:24,650 --> 01:03:26,330 Felly, ffug neu nad ffug. 1567 01:03:26,330 --> 01:03:28,640 Ac mae hynny'n ein galluogi i gynnwys yn fwy 1568 01:03:28,640 --> 01:03:30,980 posibiliadau yn y mynegiant cromfachau. 1569 01:03:30,980 --> 01:03:33,840 Felly mae angen i, byth mor ofalus, yn dweud hyn - 1570 01:03:33,840 --> 01:03:35,620 os (n == 42). 1571 01:03:35,620 --> 01:03:39,100 Yn syml, oherwydd mae angen i ni nodi prawf o gydraddoldeb, 1572 01:03:39,100 --> 01:03:40,930 Nid yw aseiniad o werth. 1573 01:03:40,930 --> 01:03:42,830 >> Beth arall sydd werth eu nodi yma? 1574 01:03:42,830 --> 01:03:46,030 Mae'r rhain yn braces cyrliog nad ydynt mewn gwirionedd yn angenrheidiol. 1575 01:03:46,030 --> 01:03:48,650 Rydw i wedi bod yn ei wneud ohonynt yn unig i fod yn nit-picky yma. 1576 01:03:48,650 --> 01:03:51,350 Ond pan fydd gennych gyflwr mai dim ond un llinell o 1577 01:03:51,350 --> 01:03:55,100 cod, fel hwylustod, nid rhaglenwyr oes angen i ddefnyddio 1578 01:03:55,100 --> 01:03:56,030 y braces cyrliog. 1579 01:03:56,030 --> 01:03:59,370 Mae'n ddigonol i ddim ond indent, am resymau esthetig, a 1580 01:03:59,370 --> 01:04:01,050 yna ysgrifennwch eich llinell o god. 1581 01:04:01,050 --> 01:04:04,160 Dim ond pan fyddwch am i ysgrifennu dwy linell o god - ar gyfer 1582 01:04:04,160 --> 01:04:08,230 enghraifft, arall printf ("Hwyl!"). Os ydych chi am ei wneud 1583 01:04:08,230 --> 01:04:09,540 hynny, mae hyn yn cael ei dorri. 1584 01:04:09,540 --> 01:04:11,700 Gallwch indent yr holl ydych am, ond y ffaith eich bod wedi 1585 01:04:11,700 --> 01:04:14,600 teipio dwy linell o god heb ddefnyddio braces cyrliog 1586 01:04:14,600 --> 01:04:16,860 yn golygu na fyddai hyn yn rhaglen yn rhedeg yn gywir neu a allai 1587 01:04:16,860 --> 01:04:18,530 Nid yw hyd yn oed yn llunio yn gywir. 1588 01:04:18,530 --> 01:04:21,040 Felly, ar hyn o bryd, i fod yn onest, yr wyf yn meddwl yr arfer gorau yn unig 1589 01:04:21,040 --> 01:04:24,460 defnyddio'r braces cyrliog, a byddwch yn dod o hyd eu bod yn gwneud 1590 01:04:24,460 --> 01:04:25,750 super glir beth sy'n mynd ymlaen. 1591 01:04:25,750 --> 01:04:29,410 >> Hefyd, wrth fynd heibio - yn enwedig os ydych chi ymhlith y rhai sy'n defnyddio 1592 01:04:29,410 --> 01:04:31,700 y llyfrau a argymhellir neu adnoddau ar-lein - 1593 01:04:31,700 --> 01:04:33,480 sylweddoli fod yna syniad hwn o arddull yn 1594 01:04:33,480 --> 01:04:34,130 rhaglennu. 1595 01:04:34,130 --> 01:04:37,280 Ac mae rhai pobl yn well i roi'r Brace cyrliog 1596 01:04:37,280 --> 01:04:38,720 dros yma ar linell. 1597 01:04:38,720 --> 01:04:41,520 Well gan rai pobl i wneud pethau gwirion, 1598 01:04:41,520 --> 01:04:43,830 hoffi eu rhoi yma. 1599 01:04:43,830 --> 01:04:45,140 Does dim ateb anghywir pan ddaw i 1600 01:04:45,140 --> 01:04:46,710 arddull, ond mae hyn yn anghywir. 1601 01:04:46,710 --> 01:04:47,700 Ond mae rhai pobl yn ei wneud. 1602 01:04:47,700 --> 01:04:49,160 [Chwerthin] 1603 01:04:49,160 --> 01:04:51,760 DAVID J. Malan: Felly, yr wyf yn sôn am hyn yn awr, yn syml oherwydd fel 1604 01:04:51,760 --> 01:04:54,400 eich bod yn darllen i fyny ar bethau mewn llyfrau neu ar-lein, rydych yn mynd i gael 1605 01:04:54,400 --> 01:04:55,990 negeseuon gwahanol gan wahanol athrawon a 1606 01:04:55,990 --> 01:04:56,730 gwahanol awduron. 1607 01:04:56,730 --> 01:04:58,640 A dim ond yn sylweddoli hynny, swyddogaethol, maen nhw'n 1608 01:04:58,640 --> 01:05:00,740 cyffredinol cyfwerth, ond byddwch yn gyson. 1609 01:05:00,740 --> 01:05:02,850 Felly, yn yr achos hwn, byddwn yn safoni ar y cyrliog 1610 01:05:02,850 --> 01:05:04,650 braces leinin i fyny yma ar y chwith. 1611 01:05:04,650 --> 01:05:04,910 >> Mae pob hawl. 1612 01:05:04,910 --> 01:05:07,040 Felly, gadewch i ni fynd yn ei flaen yn awr ac yn rhedeg hyn, a gweld beth sy'n digwydd 1613 01:05:07,040 --> 01:05:07,780 gyda'r rhaglen hon. 1614 01:05:07,780 --> 01:05:09,970 Gwnewch nonswitch. 1615 01:05:09,970 --> 01:05:11,040 Yna rhedeg nonswitch. 1616 01:05:11,040 --> 01:05:13,900 Rhowch i mi cyfanrif rhwng 0 a - felly nid yw hynny'n berthnasol 1617 01:05:13,900 --> 01:05:16,480 anymore, ond Im 'jyst yn mynd i ddweud fympwyol 42. 1618 01:05:16,480 --> 01:05:17,850 Ac yr wyf yn dewis yr ateb cywir. 1619 01:05:17,850 --> 01:05:20,430 Wel yn awr, gadewch i ni mewn gwirionedd yn cymryd hyn i gyfeiriad gwahanol. 1620 01:05:20,430 --> 01:05:22,070 Mae'n troi allan mae rhywfaint o gystrawen eraill yr ydym yn 1621 01:05:22,070 --> 01:05:23,480 Gall eu defnyddio mewn rhaglen. 1622 01:05:23,480 --> 01:05:27,310 Dyma ddarn newydd o gystrawen sy'n swyddogaethol yr un fath, 1623 01:05:27,310 --> 01:05:30,680 ond dim ond yn cyflwyno ffordd arall o fynegi ein hunain. 1624 01:05:30,680 --> 01:05:32,830 Felly, mae hyn yn beth a elwir yn "ddatganiad switsh." A 1625 01:05:32,830 --> 01:05:34,820 datganiad switsh yn gweithredu fel a ganlyn. 1626 01:05:34,820 --> 01:05:37,580 Mae'n cymryd, mewn cromfachau, mae gwerth yr ydych am ei 1627 01:05:37,580 --> 01:05:38,860 "Newid" ar. 1628 01:05:38,860 --> 01:05:41,490 Rydych am i ymddwyn yn wahanol yn seiliedig ar ei werth. 1629 01:05:41,490 --> 01:05:44,360 Felly, mae hyn yn golygu newid ar werth n. 1630 01:05:44,360 --> 01:05:45,480 A beth mae hynny'n ei olygu? 1631 01:05:45,480 --> 01:05:50,530 Wel, os n yn 1 neu 2 neu 3, mynd yn ei flaen ac argraffu "Rydych 1632 01:05:50,530 --> 01:05:52,680 dewis nifer fawr "ac yna torri. 1633 01:05:52,680 --> 01:05:55,720 Y rheswm dros y toriad yw bod y ffordd C yn gweithio mor 1634 01:05:55,720 --> 01:05:59,790 gynted ag y bydd yn canfod achos sy'n cyd-fynd, yn dechrau gweithredu 1635 01:05:59,790 --> 01:06:01,610 pob un o'r cod isod hynny. 1636 01:06:01,610 --> 01:06:04,580 Felly os oes gen i un llinell o god, fel yr wyf fi yma ar llinell 27, mae'n 1637 01:06:04,580 --> 01:06:05,360 yn cael ei ddienyddio. 1638 01:06:05,360 --> 01:06:07,520 Os byddaf yn ychwanegu llinell arall yma, mae'n cael ei weithredu. 1639 01:06:07,520 --> 01:06:09,350 Arall llinell yma, mae'n cael ei weithredu. 1640 01:06:09,350 --> 01:06:12,460 Mae'r rhaglen yn unig yn stopio gweithredu beth sydd o dan y 1641 01:06:12,460 --> 01:06:14,680 datganiad achos perthnasol pan fyddaf yn benodol 1642 01:06:14,680 --> 01:06:17,210 dweud "dorri." Felly anghywir. 1643 01:06:17,210 --> 01:06:19,220 Iawn, yn yr achos hwn, o ganlyniad. 1644 01:06:19,220 --> 01:06:22,130 Achos 4 neu 5 neu 6, yn yr un modd, yn mynd 1645 01:06:22,130 --> 01:06:23,160 i argraffu neges. 1646 01:06:23,160 --> 01:06:24,410 Yn yr achos hwn, rhif canolig. 1647 01:06:24,410 --> 01:06:25,200 Egwyl. 1648 01:06:25,200 --> 01:06:28,160 Achos 7, 8, 9, 10, mae'n mynd i argraffu "Rydych dewis mawr 1649 01:06:28,160 --> 01:06:28,950 rhif. "Break. 1650 01:06:28,950 --> 01:06:31,290 Ac yna mae llythrennol air allweddol o'r enw "diofyn" 1651 01:06:31,290 --> 01:06:34,090 sy'n effeithiol fel y "arall" adeiladu. 1652 01:06:34,090 --> 01:06:36,010 Felly cystrawen newydd, ond yn ddeallusol, 1653 01:06:36,010 --> 01:06:37,060 dim byd o gwbl yma newydd. 1654 01:06:37,060 --> 01:06:38,280 Mae'n union fel y Scratch. 1655 01:06:38,280 --> 01:06:41,040 Os, arall os, arall os, math o bloc. 1656 01:06:41,040 --> 01:06:44,560 >> Felly dyna y fersiwn newid y rhaglen hon. 1657 01:06:44,560 --> 01:06:46,280 Ond sylwi ein bod yn gwneud hynny gyda rhifau yma. 1658 01:06:46,280 --> 01:06:49,040 Gadewch i mi agor ail fersiwn, dim ond i ddangos 1659 01:06:49,040 --> 01:06:50,670 rywbeth ychydig yn fwy cadarn. 1660 01:06:50,670 --> 01:06:52,840 Felly dyma ni yn cael graddau yn lle hynny. 1661 01:06:52,840 --> 01:06:55,540 Troi allan gallwch ddefnyddio switshis nid yn unig ar cyfanrifau, ond ar 1662 01:06:55,540 --> 01:06:56,340 cymeriadau. 1663 01:06:56,340 --> 01:06:58,930 Nid ym mhob math data, ond o leiaf ar gymeriadau. 1664 01:06:58,930 --> 01:07:02,670 Felly yma, gallem wneud rhywbeth fel os yw gwerth y C y 1665 01:07:02,670 --> 01:07:06,230 y defnyddiwr deipio i mewn, yn unol 19, drwy ddefnyddio'r swyddogaeth GetChar, 1666 01:07:06,230 --> 01:07:09,410 yw prifddinas A neu lythrennau bach a, gadewch i ni ei ddehongli fel gradd, 1667 01:07:09,410 --> 01:07:11,340 ac yn dweud eu bod yn dewis cael gradd 'rhagorol. 1668 01:07:11,340 --> 01:07:14,690 Ac i lawr ar hyd y datganiad newid, y mae gennym eraill 1669 01:07:14,690 --> 01:07:17,950 achosion ar gyfer "B" s a "C" s, ac yn y blaen. 1670 01:07:17,950 --> 01:07:19,780 Ond gadewch i ni yn awr yn cloi allan un peth arall. 1671 01:07:19,780 --> 01:07:21,130 Ac eto, math o hedfan drwy 1672 01:07:21,130 --> 01:07:22,200 rhai o'r enghreifftiau hyn. 1673 01:07:22,200 --> 01:07:26,990 Ond mae'n wirioneddol fel y gallwn eu cymhwyso, yn awr - 1674 01:07:26,990 --> 01:07:28,880 neu mewn gwirionedd, dim ond eu cyfieithu nawr - 1675 01:07:28,880 --> 01:07:32,220 i C. 1676 01:07:32,220 --> 01:07:33,310 >> Felly, gadewch i mi fynd ymlaen a gwneud hyn. 1677 01:07:33,310 --> 01:07:34,830 Rydw i'n mynd i agor ffeil newydd. 1678 01:07:34,830 --> 01:07:39,430 Ac yr wyf i'n mynd i'w gwneud yn cynnwys . 1679 01:07:39,430 --> 01:07:42,770 Ac yna dwi'n mynd i wneud int brif (gwag). 1680 01:07:42,770 --> 01:07:46,390 Gadewch i mi arbed y ffeil fel loop.c. 1681 01:07:46,390 --> 01:07:48,280 Yn union fel enghraifft. 1682 01:07:48,280 --> 01:07:49,910 Ac yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud y canlynol. 1683 01:07:49,910 --> 01:07:54,180 Rwyf am i ysgrifennu rhaglen iawn 'n faith. 1684 01:07:54,180 --> 01:07:56,170 Felly 10. 1685 01:07:56,170 --> 01:07:58,862 Gadewch i ni wneud hyn. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 Mae pob hawl. 1688 01:08:00,360 --> 01:08:02,120 Cyn gynted ag y byddwch yn dechrau gwneud hyn mewn rhaglennu, rydych yn 1689 01:08:02,120 --> 01:08:03,490 yn ôl pob tebyg yn gwneud rhywbeth o'i le. 1690 01:08:03,490 --> 01:08:04,950 Ond byddwn yn dechrau yno beth bynnag. 1691 01:08:04,950 --> 01:08:05,430 Wps. 1692 01:08:05,430 --> 01:08:06,950 Sydd mewn gwirionedd yn anghywir. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 Nid oes dim yn mynd i ddigwydd pan fyddwn yn mynd i 0. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 Iawn. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 Dileu. 1704 01:08:18,689 --> 01:08:19,029 >> Mae pob hawl. 1705 01:08:19,029 --> 01:08:20,029 Felly, yn dychwelyd 0. 1706 01:08:20,029 --> 01:08:22,010 Felly, mae'r rhaglen hon sy'n amlwg yn mynd i wneud yr hyn yn 1707 01:08:22,010 --> 01:08:23,310 tediously dweud ei fod yn mynd i'w wneud. 1708 01:08:23,310 --> 01:08:24,060 Mae'n mynd i argraffu pob un o'r rheiny 1709 01:08:24,060 --> 01:08:25,290 gwerthoedd, o'r top i'r gwaelod. 1710 01:08:25,290 --> 01:08:27,140 Felly, gadewch i mi yn gwneud ddolen. 1711 01:08:27,140 --> 01:08:28,640 Ac yna - Wps. 1712 01:08:28,640 --> 01:08:29,700 Gwnewch ddolen. 1713 01:08:29,700 --> 01:08:31,479 Roeddwn i yn y cyfeiriadur anghywir. 1714 01:08:31,479 --> 01:08:33,300 Ac yn awr gad i mi redeg ddolen. 1715 01:08:33,300 --> 01:08:34,140 Enter. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 Iawn 'n glws. 1718 01:08:35,270 --> 01:08:36,279 Nice, rhaglen hir. 1719 01:08:36,279 --> 01:08:38,109 >> Mae pob hawl, ond yn awr gadewch i ni wneud hyn yn well. 1720 01:08:38,109 --> 01:08:40,810 Yn union fel yn Scratch, pan fyddwch yn dechrau defnyddio dolennu 1721 01:08:40,810 --> 01:08:43,149 adeiladu, yn hytrach na dim ond copïo a gludo yr holl 1722 01:08:43,149 --> 01:08:45,580 darnau pos, gadewch i mi gyflwyno y peth hyn. 1723 01:08:45,580 --> 01:08:48,609 Felly, yn C, mae yn adeiladu dolennu amrywiol, 1724 01:08:48,609 --> 01:08:50,540 un sy'n edrych fel hyn. 1725 01:08:50,540 --> 01:08:55,069 A "i" ddolen Mae tri pheth, wedi'u gwahanu gan ddau hanner colon. 1726 01:08:55,069 --> 01:08:57,770 Ac yna, y tu mewn i'r corff y ddolen, fel petai - y 1727 01:08:57,770 --> 01:08:59,390 y tu mewn pethau o'r braces cyrliog - 1728 01:08:59,390 --> 01:09:01,010 gallwn wneud rhywbeth eto ac eto. 1729 01:09:01,010 --> 01:09:02,310 Felly, yr hyn sydd gennyf yma ar y sgrîn, mae hyn yn 1730 01:09:02,310 --> 01:09:03,300 llythrennol yn unig sylw. 1731 01:09:03,300 --> 01:09:05,380 Y / / golygu yma daw sylw. 1732 01:09:05,380 --> 01:09:06,180 Nid yw hyn yn cod. 1733 01:09:06,180 --> 01:09:08,890 Mae hyn yn unig disgrifiad Saesneg, i mi, y dynol. 1734 01:09:08,890 --> 01:09:11,300 >> Initializations Felly, amodau, a diweddariadau. 1735 01:09:11,300 --> 01:09:12,770 Wel, gadewch i ni weld sut mae hyn yn gweithio. 1736 01:09:12,770 --> 01:09:15,520 Mae hyn yn caniatáu i mi i ailysgrifennu y rhaglen hon fel a ganlyn. 1737 01:09:15,520 --> 01:09:16,399 I - 1738 01:09:16,399 --> 01:09:18,029 felly dyma daw fy dolen - 1739 01:09:18,029 --> 01:09:19,439 int i - 1740 01:09:19,439 --> 01:09:21,330 yma hon newidyn o'r enw "i" - 1741 01:09:21,330 --> 01:09:23,140 yn cael ymgychwyn i 10. 1742 01:09:23,140 --> 01:09:25,260 Felly mae fy initialization. 1743 01:09:25,260 --> 01:09:29,450 Rwyf am wneud hyn dolen cyhyd â "i" yn fwy na neu'n 1744 01:09:29,450 --> 01:09:30,899 gyfartal i 0. 1745 01:09:30,899 --> 01:09:32,880 Ac ar bob fersiwn o'r ddolen, yr wyf eisiau 1746 01:09:32,880 --> 01:09:34,979 i wneud i -. 1747 01:09:34,979 --> 01:09:36,310 Felly, gwelsom + + ar ddydd Llun. 1748 01:09:36,310 --> 01:09:37,660 - Yn y gwrthwyneb. 1749 01:09:37,660 --> 01:09:39,410 Mae'n decrements gwerth erbyn 1. 1750 01:09:39,410 --> 01:09:43,319 Y tu mewn y ddolen, yr wyf am ei wneud mewn gwirionedd rhywbeth. 1751 01:09:43,319 --> 01:09:46,390 Felly dw i'n mynd i ddweud rhywbeth fel printf. 1752 01:09:46,390 --> 01:09:48,939 Nid wyf am i dyweder 10 awr, oherwydd mae'n amlwg bod hyn yn unig yw 1753 01:09:48,939 --> 01:09:50,000 mynd i argraffu'r un gwerth. 1754 01:09:50,000 --> 01:09:52,246 Beth ydw i eisiau argraffu yn lle hynny, yn ôl pob tebyg? 1755 01:09:52,246 --> 01:09:52,590 Yeah. 1756 01:09:52,590 --> 01:09:55,270 Felly, "i." D% Felly, i. 1757 01:09:55,270 --> 01:09:57,340 >> Felly, yr wyf i'n mynd i ddwyn un o'r syniadau hynny o gyfnod cynharach - 1758 01:09:57,340 --> 01:09:59,640 hyn fel dewis amgen ar gyfer codau fformat - 1759 01:09:59,640 --> 01:10:01,620 ac yna i lawr yma, yn y gwaelod, 'n annhymerus' yn dychwelyd 0, dim ond 1760 01:10:01,620 --> 01:10:02,710 ar gyfer mesur da. 1761 01:10:02,710 --> 01:10:04,740 Ond nawr, mae gen i raglen yn fwy cryno. 1762 01:10:04,740 --> 01:10:07,490 Dim ond ychydig o linellau, ac nid yw rhai 10 neu 11 o linellau. 1763 01:10:07,490 --> 01:10:09,440 Gadewch i mi fynd i fy brydlon i lawr yma. 1764 01:10:09,440 --> 01:10:10,630 Dolen ail-wneud. 1765 01:10:10,630 --> 01:10:12,140 Ailgynnal ddolen. 1766 01:10:12,140 --> 01:10:13,570 Ac mae'n ymddangos i fod yr un fath. 1767 01:10:13,570 --> 01:10:15,550 Nawr, mae'r rhaglen yn ddim mwy diddorol. 1768 01:10:15,550 --> 01:10:17,180 Ond yn awr y gallaf deipio rhywbeth fel hyn. 1769 01:10:17,180 --> 01:10:18,970 Gallaf newid hyn i 100. 1770 01:10:18,970 --> 01:10:21,400 Yna gallaf ail-grynhoi fy rhaglen. 1771 01:10:21,400 --> 01:10:23,360 Ac yna gall yr wyf yn ail-redeg fy rhaglen. 1772 01:10:23,360 --> 01:10:26,390 Ac yn awr mae'n mynd super-gyflym ar gyfrifiaduron heddiw. 1773 01:10:26,390 --> 01:10:27,820 Ond mae gen i - 1774 01:10:27,820 --> 01:10:29,620 ac mewn gwirionedd, nid yw fy byffer teflir yn 1775 01:10:29,620 --> 01:10:30,890 hyd yn oed yn mynd mor bell. 1776 01:10:30,890 --> 01:10:31,680 Dyna ni. 1777 01:10:31,680 --> 01:10:34,090 Felly, mae gennym yr holl 100. 1778 01:10:34,090 --> 01:10:35,880 Ond mae'n hawdd i wneud camgymeriadau yma. 1779 01:10:35,880 --> 01:10:37,920 Beth sy'n mynd i fod yr ymddygiad a ddisgwylir os byddaf yn 1780 01:10:37,920 --> 01:10:41,150 ddamweiniol gwneud hynny? 1781 01:10:41,150 --> 01:10:42,550 Felly, mae'n teimlo fel ddiddiwedd. 1782 01:10:42,550 --> 01:10:44,670 Felly, gadewch i ni weld os bydd y cyfrifiadur yn ymddwyn. 1783 01:10:44,670 --> 01:10:47,020 >> Felly, gadewch i mi fynd yn ei flaen ac yn gwneud ddolen. 1784 01:10:47,020 --> 01:10:48,355 A gadewch i mi redeg ddolen. 1785 01:10:53,590 --> 01:10:55,210 Felly, gadewch i ni ddod yn ôl at hynny mewn dim ond hyn o bryd. 1786 01:10:55,210 --> 01:10:56,720 Byddwn yn gadael i hynny rhedeg. 1787 01:10:56,720 --> 01:10:59,520 Oherwydd dylai hyn yr ydym yn cyfrif hyd at, cyn lleied â phosibl? 1788 01:10:59,520 --> 01:11:02,200 Yn ôl pob tebyg o leiaf 2 biliwn, os byddwn yn cael y darnau lawer, ac 1789 01:11:02,200 --> 01:11:03,660 ein bod yn defnyddio gwerthoedd cadarnhaol. 1790 01:11:03,660 --> 01:11:04,890 Felly, gadewch i ni neidio yn ôl yma. 1791 01:11:04,890 --> 01:11:07,810 Heblaw am y math o dolenni, mae gennym yr hyn a elwir tra 1792 01:11:07,810 --> 01:11:09,430 dolenni. Felly, yn union fel yn Scratch, oedd gennych Forever 1793 01:11:09,430 --> 01:11:11,240 blociau, a oedd gennych blociau Ailadrodd. 1794 01:11:11,240 --> 01:11:13,270 Yn yr un modd, yn C, os oes gen ti ffyrdd eraill 1795 01:11:13,270 --> 01:11:14,260 o fynegi eich hunan. 1796 01:11:14,260 --> 01:11:17,110 Felly, mae gennych syniad hwn o dolen tra bod eich galluogi i 1797 01:11:17,110 --> 01:11:18,860 mynegi eich hun ychydig yn wahanol. 1798 01:11:18,860 --> 01:11:21,490 Ac yna mae gennych rywbeth a elwir yn ddolen do-tra, 1799 01:11:21,490 --> 01:11:24,200 sy'n gweithredu ychydig yn wahanol yn ogystal. 1800 01:11:24,200 --> 01:11:25,320 A byddwn yn canfod y rhain ar wahân dros gyfnod o amser. 1801 01:11:25,320 --> 01:11:28,630 >> Ond gadewch i ni edrych ar y yr un olaf ei yma. 1802 01:11:28,630 --> 01:11:30,160 Os ydym yn mynd i mewn i - 1803 01:11:30,160 --> 01:11:31,466 dal i redeg. 1804 01:11:31,466 --> 01:11:32,770 Mae'n eithaf ddiddiwedd. 1805 01:11:32,770 --> 01:11:36,870 Felly, gadewch i mi fynd i mewn i cadarnhaol, ac yn dangos sut y gallwn mewn gwirionedd 1806 01:11:36,870 --> 01:11:39,410 rheoli mewnbwn defnyddwyr ychydig yn fwy effeithiol. 1807 01:11:39,410 --> 01:11:40,910 Mae'n rhaglen eithaf byr. 1808 01:11:40,910 --> 01:11:43,730 Ac yma mae gennym, yn bennaf, yn int n datganiad. 1809 01:11:43,730 --> 01:11:46,570 Felly, yn rhoi i mi newidyn a elwir yn n. Yn awr, yr wyf yn llythrennol yn dweud 1810 01:11:46,570 --> 01:11:48,340 "Wneud." Ac yna mae gen i agor cyrliog 1811 01:11:48,340 --> 01:11:49,630 Brace, brês agos cyrliog. 1812 01:11:49,630 --> 01:11:52,000 Ac yna sylwi, ar y dde ar ôl hynny, mae'n dweud tra n 1813 01:11:52,000 --> 01:11:53,790 yn llai nag 1. 1814 01:11:53,790 --> 01:11:55,300 Felly, yn sylwi bod y llinellau hyn - 1815 01:11:55,300 --> 01:11:56,740 19-24 - 1816 01:11:56,740 --> 01:11:59,450 cyfansoddi ar y cyd dolen do-gyfnod. 1817 01:11:59,450 --> 01:12:01,280 Ac eto, cystrawen yn newydd, yn syniad newydd. 1818 01:12:01,280 --> 01:12:03,740 Dim ond ffordd arall o dolennu, syntactically. 1819 01:12:03,740 --> 01:12:04,890 Felly beth mae hyn yn ei wneud? 1820 01:12:04,890 --> 01:12:08,000 Gwneud y canlynol tra n yn llai nag 1. 1821 01:12:08,000 --> 01:12:09,080 Felly, beth ydw i eisiau ei wneud? 1822 01:12:09,080 --> 01:12:11,390 I fynnu eich bod yn rhoi i mi gyfanrif positif. 1823 01:12:11,390 --> 01:12:14,110 Yna mi mewn gwirionedd yn ceisio cael cyfanrif gan y defnyddiwr. 1824 01:12:14,110 --> 01:12:16,740 Ond o ran y drefn gweithrediadau yma, oherwydd y 1825 01:12:16,740 --> 01:12:21,850 tra bod cyflwr sydd i lawr yma, rwy'n wedyn yn mynd i wirio, yw n 1826 01:12:21,850 --> 01:12:23,100 llai nag 1? 1827 01:12:23,100 --> 01:12:24,600 Felly, mae'n debyg bod y defnyddiwr - 1828 01:12:24,600 --> 01:12:26,450 ar ôl cael ei galw yn y ffordd hon - 1829 01:12:26,450 --> 01:12:29,190 math yn y 0 gwerth. 1830 01:12:29,190 --> 01:12:34,510 Mae'r amod hwn yn mynd i fod yn wir neu'n anwir? 1831 01:12:34,510 --> 01:12:35,820 Wel, mae'n wir yn mynd i fod yn wir. 1832 01:12:35,820 --> 01:12:38,700 Gan fod n yn 0, a 0 yn llai nag 1. 1833 01:12:38,700 --> 01:12:40,140 Felly beth mae hynny'n ei awgrymu? 1834 01:12:40,140 --> 01:12:41,160 Yn ei wneud eto. 1835 01:12:41,160 --> 01:12:41,990 Yn ei wneud eto. 1836 01:12:41,990 --> 01:12:42,640 Yn ei wneud eto. 1837 01:12:42,640 --> 01:12:46,080 Dim ond unwaith y cyflwr yn enrhifo i FFUG. 1838 01:12:46,080 --> 01:12:47,510 Os byddaf yn teipio 42. 1839 01:12:47,510 --> 01:12:49,690 Wel na, nid 42 yn llai nag 1. 1840 01:12:49,690 --> 01:12:52,320 Felly mae'r ddolen yn cael ei wneud gweithredu. 1841 01:12:52,320 --> 01:12:54,650 Ac felly ar y pwynt hwnnw, bydd y rhaglen yn ei ddweud, diolch am 1842 01:12:54,650 --> 01:12:57,530 42, yn yr achos hwn. 1843 01:12:57,530 --> 01:13:00,320 Nawr eich bod yn cael y ffordd o fynegi eich hun - 1844 01:13:00,320 --> 01:13:02,360 Ni ddylem ddisgwyl i hyn orffen. 1845 01:13:02,360 --> 01:13:03,620 Mae'n mynd i gymryd peth amser. 1846 01:13:03,620 --> 01:13:04,990 I'w barhau tro nesaf, efallai. 1847 01:13:04,990 --> 01:13:08,050 >> Ond yn awr, mae gennych y gallu i, gobeithio, i ddeall 1848 01:13:08,050 --> 01:13:09,060 ychydig o hiwmor geek. 1849 01:13:09,060 --> 01:13:11,560 Ymddiheuriadau. 1850 01:13:11,560 --> 01:13:13,620 Nid yw hyn yn gynrychioliadol o hiwmor yn y wyddoniaeth gyfrifiadurol 1851 01:13:13,620 --> 01:13:14,870 byd, ond mae'n 'n giwt. 1852 01:13:21,020 --> 01:13:23,890 [Chwerthin] Dewch i ben ar y nodyn hwnnw. 1853 01:13:23,890 --> 01:13:25,750 A byddwn yn eich gweld ar ddydd Llun. 1854 01:13:25,750 --> 01:13:31,629 [Cymeradwyaeth]