1 00:00:00,000 --> 00:00:00,000 2 00:00:00,000 --> 00:00:00,000 [CHWARAE CERDDORIAETH] 3 00:00:00,000 --> 00:00:13,950 4 00:00:13,950 --> 00:00:16,240 >> DAVID J. Malan: pob hawl, mae hyn yn CS50. 5 00:00:16,240 --> 00:00:18,010 Ac mae hyn yn wythnos un. 6 00:00:18,010 --> 00:00:22,050 Felly dwyn i gof bod tro diwethaf mewn wythnos sero, buom yn canolbwyntio ar feddwl cyfrifiannol. 7 00:00:22,050 --> 00:00:25,440 Ac rydym yn transitioned o hynny i Scratch, mae rhaglenni graffigol 8 00:00:25,440 --> 00:00:27,360 iaith gan ein ffrindiau yn Lab Cyfryngau MIT. 9 00:00:27,360 --> 00:00:31,730 >> A gyda Scratch, wnaethon ni archwilio syniadau fel swyddogaethau, ac amodau, 10 00:00:31,730 --> 00:00:35,210 a dolenni, a newidynnau, a hyd yn oed digwyddiadau, ac edafedd, a mwy. 11 00:00:35,210 --> 00:00:37,880 A heddiw, rydym yn mynd i barhau i ddefnyddio syniadau hynny, 12 00:00:37,880 --> 00:00:40,630 ac yn wir yn eu cymryd am ganiataol, ond yn eu cyfieithu 13 00:00:40,630 --> 00:00:44,220 i iaith arall a elwir yn C. Yn awr, C yn iaith mwy traddodiadol. 14 00:00:44,220 --> 00:00:46,020 Mae'n lefel is iaith, os mynnwch. 15 00:00:46,020 --> 00:00:47,300 >> Mae'n testunol yn unig. 16 00:00:47,300 --> 00:00:49,910 Ac felly ar yr olwg gyntaf, mae'n i gyd yn mynd i edrych braidd cryptig 17 00:00:49,910 --> 00:00:51,430 os nad ydych erioed wedi ei raglennu o'r blaen. 18 00:00:51,430 --> 00:00:53,530 Rydym yn mynd i gael hanner colon, a chromfachau, 19 00:00:53,530 --> 00:00:55,150 a bresys cyrliog, a mwy. 20 00:00:55,150 --> 00:00:57,240 Ond yn sylweddoli bod hyd yn oed er bod y gystrawen yn 21 00:00:57,240 --> 00:01:00,600 ar fin edrych ychydig yn anghyfarwydd i'r rhan fwyaf ohonoch, gweler gorffennol. 22 00:01:00,600 --> 00:01:03,220 Ac yn ceisio i weld y syniadau sydd, yn wir, yn gyfarwydd, 23 00:01:03,220 --> 00:01:06,750 gan fod yma yn wythnos un beth byddwn yn dechrau ei wneud yw cymharu, 24 00:01:06,750 --> 00:01:08,980 i ddechrau, Scratch yn erbyn C. 25 00:01:08,980 --> 00:01:12,350 >> Felly, er enghraifft, dwyn i gof bod pan fyddwn yn rhoi ar waith y cyntaf o'n rhaglenni 26 00:01:12,350 --> 00:01:16,220 tro diwethaf, cawsom bloc a oedd yn edrych rhywbeth bach fel this-- pan 27 00:01:16,220 --> 00:01:19,990 glicio baner werdd, ac yna rydym yn cael un neu fwy o ddarnau pos islaw iddo, 28 00:01:19,990 --> 00:01:22,150 yn yr achos hwn, yn dweud, helo byd. 29 00:01:22,150 --> 00:01:24,870 Felly, yn wir, yn Scratch, pan fyddaf yn clicio y faner werdd 30 00:01:24,870 --> 00:01:27,390 i redeg fy rhaglen, felly i siarad, mae'r rhain yn 31 00:01:27,390 --> 00:01:29,520 y blociau sy'n cael eu gweithredu, neu i redeg. 32 00:01:29,520 --> 00:01:32,230 Ac, yn benodol, Scratch Meddai, helo, byd. 33 00:01:32,230 --> 00:01:35,377 >> Yn awr, gallwn fod wedi penodedig geiriau gwahanol yma. 34 00:01:35,377 --> 00:01:37,960 Ond byddwn yn gweld bod, yn wir, mae llawer o o blocks-- hyn ac yn wir, 35 00:01:37,960 --> 00:01:41,880 yn C Gall llawer o functions-- fod parametrized neu addasu 36 00:01:41,880 --> 00:01:43,150 i wneud pethau gwahanol. 37 00:01:43,150 --> 00:01:45,520 Yn wir, yn C os ydym am newid, yn awr, 38 00:01:45,520 --> 00:01:47,567 y rhaglen Scratch i'r hwn iaith arall, 39 00:01:47,567 --> 00:01:49,650 rydym yn mynd i ysgrifennu ychydig iawn o rhywbeth fel hyn. 40 00:01:49,650 --> 00:01:52,540 >> Roddwyd, mae rhywfaint o anghyfarwydd cystrawen yno fwyaf tebygol, int, 41 00:01:52,540 --> 00:01:54,380 a cromfachau, ac yn ddi-rym. 42 00:01:54,380 --> 00:01:57,740 Ond printf-- hyd yn oed er y byddech yn meddwl y byddai'n unig fod print. 43 00:01:57,740 --> 00:02:00,120 Ond brint golygu print fformatio, gan y byddwn yn fuan yn gweld. 44 00:02:00,120 --> 00:02:02,140 Bydd hyn yn llythrennol argraffu i'r sgrin beth bynnag 45 00:02:02,140 --> 00:02:05,990 yw tu mewn cromfachau hynny, sydd wrth gwrs, yn yr achos hwn, helo byd. 46 00:02:05,990 --> 00:02:09,290 >> Ond byddwch yn sylwi ar rai eraill cystrawen, mae rhai dyfynodau dwbl, 47 00:02:09,290 --> 00:02:11,890 bod y cromfachau ar y diwedd, yr hanner colon ac yn y blaen. 48 00:02:11,890 --> 00:02:15,027 Felly mae 'na ychydig o uwchben, fel petai, yn wybyddol 49 00:02:15,027 --> 00:02:17,860 ac syntactically, bod rydym yn mynd i gael i gofio cyn hir. 50 00:02:17,860 --> 00:02:20,720 Ond yn sylweddoli bod ag arfer, bydd hyn yn dechrau i neidio allan ar chi. 51 00:02:20,720 --> 00:02:24,920 >> Yn wir, gadewch i ni ganolbwyntio ar hynny un swyddogaeth specifically-- yn yr achos hwn, 52 00:02:24,920 --> 00:02:26,290 ddweud helo byd. 53 00:02:26,290 --> 00:02:27,560 Felly, yn dweud yw swyddogaeth. 54 00:02:27,560 --> 00:02:31,320 Helo byd yn ei paramedr, neu ddadl, ei customization. 55 00:02:31,320 --> 00:02:34,320 >> Ac cywerthedd yn C yn unig mynd i fod yr un yma llinell yma, 56 00:02:34,320 --> 00:02:38,710 lle mae printf yn gyfwerth â, dyweder, y llinyn a ddyfynnir dwbl, helo 57 00:02:38,710 --> 00:02:41,470 byd yn cyfateb, wrth gwrs, i'r hyn sydd yn y blwch gwyn yno. 58 00:02:41,470 --> 00:02:45,680 A'r n slaes, er bod ychydig rhyfedd ac yn absennol o'r Scratch, 59 00:02:45,680 --> 00:02:49,380 yn syml yn mynd i gael yr effaith yr ydym annhymerus ' gweld mewn cyfrifiadur, fel fy Mac neu PC, 60 00:02:49,380 --> 00:02:51,660 o ddim ond symud y cyrchwr at y llinell nesaf. 61 00:02:51,660 --> 00:02:53,970 Mae fel taro Nodwch ar eich bysellfwrdd. 62 00:02:53,970 --> 00:02:55,580 >> Felly byddwn yn gweld hynny eto cyn hir. 63 00:02:55,580 --> 00:02:58,640 Ond yn gyntaf, gadewch i ni edrych ar hyn Enghraifft arall yn achos y dolenni. 64 00:02:58,640 --> 00:03:02,830 Cawsom hyn am byth dolen tro diwethaf, a oedd cyfres o ddarnau pos 65 00:03:02,830 --> 00:03:05,490 a wnaeth rhywbeth llythrennol forever-- yn yr achos hwn, 66 00:03:05,490 --> 00:03:08,360 yn dweud, helo byd, helo byd, helo byd, helo byd. 67 00:03:08,360 --> 00:03:10,350 Felly mae'n dolen ddiddiwedd drwy ddylunio. 68 00:03:10,350 --> 00:03:14,580 >> Yn C, os ydym am roi hyn ar waith un syniad, efallai y byddwn yn syml yn gwneud hyn. 69 00:03:14,580 --> 00:03:19,570 Er bod yn wir, printf helo world-- awr tra, yn union semantig, math o 70 00:03:19,570 --> 00:03:23,090 conjures i fyny y syniad o wneud rhywbeth eto, ac eto, ac unwaith eto, 71 00:03:23,090 --> 00:03:23,980 ac am ba hyd? 72 00:03:23,980 --> 00:03:27,990 Wel, galw i gof true-- sy'n yn wir yn unig ar neu un. 73 00:03:27,990 --> 00:03:30,660 >> A gwir yw, wrth gwrs, bob amser yn wir. 74 00:03:30,660 --> 00:03:33,060 Felly mae'n fath o ddiystyr datganiad dim ond i ddweud yn wir. 75 00:03:33,060 --> 00:03:36,890 Ond yn wir, mae hyn yn fwriadol, oherwydd os yn wir yn unig bob amser yn wir, 76 00:03:36,890 --> 00:03:40,850 na tra yn wir yn unig yn awgrymu, os ychydig yn anuniongyrchol, 77 00:03:40,850 --> 00:03:44,070 bod y llinellau canlynol o god rhwng y braces cyrliog rheini 78 00:03:44,070 --> 00:03:48,320 Dylai jyst weithredu eto, ac eto, ac unwaith eto, a byth yn stopio mewn gwirionedd. 79 00:03:48,320 --> 00:03:50,230 >> Ond os ydych yn dymuno i'ch dolen i stopio, wrth i ni 80 00:03:50,230 --> 00:03:54,500 gwnaeth y tro diwethaf gyda rhywbeth fel hwn, ailadrodd y 50 gwaith canlynol, 81 00:03:54,500 --> 00:03:57,700 yn C gallwn wneud yr un peth â'r hyn sydd a elwir yn ar gyfer loop-- y gair allweddol 82 00:03:57,700 --> 00:03:59,330 heb fod yn ychydig, ond ar gyfer. 83 00:03:59,330 --> 00:04:03,290 Ac yna rydym yn cael rhywfaint o gystrawen newydd yma, gyda int ff yn dychwelyd 0, fi yn llai na 50, 84 00:04:03,290 --> 00:04:03,880 ff ++. 85 00:04:03,880 --> 00:04:05,430 A byddwn yn dod yn ôl at hynny. 86 00:04:05,430 --> 00:04:09,660 Ond mae hyn yn syml sut y byddem cyfieithu y set o flociau Scratch 87 00:04:09,660 --> 00:04:13,079 i set o linellau o god C. 88 00:04:13,079 --> 00:04:14,450 >> Yn y cyfamser, yn ystyried newidynnau. 89 00:04:14,450 --> 00:04:16,540 Ac, yn wir, rydym yn unig Gwelodd un funud yn ôl. 90 00:04:16,540 --> 00:04:21,220 Ac yn achos Scratch, os ydym yn awyddus i ddatgan newidyn enw i 91 00:04:21,220 --> 00:04:24,590 ar gyfer i fod yn cyfanrif, dim ond rhif, ac rydym yn awyddus i osod i ryw werth, 92 00:04:24,590 --> 00:04:28,410 byddem yn defnyddio oren hwn bloc gosod i Yma-- i 0. 93 00:04:28,410 --> 00:04:30,800 >> A byddwn yn gweld heddiw ac tu hwnt, yn union fel yr wythnos diwethaf, 94 00:04:30,800 --> 00:04:33,850 rhaglenwyr gwneud bron bob amser yn dechrau cyfrif o sero, mewn gwirionedd 95 00:04:33,850 --> 00:04:34,950 drwy gonfensiwn. 96 00:04:34,950 --> 00:04:37,250 Ond hefyd oherwydd bod galw yn ôl o ein trafodaeth o deuaidd, 97 00:04:37,250 --> 00:04:39,990 y nifer lleiaf y gallwch cynrychioli gydag unrhyw nifer o ddarnau 98 00:04:39,990 --> 00:04:41,640 yn unig yn mynd i fod yn 0 hun. 99 00:04:41,640 --> 00:04:45,190 Ac felly byddwn yn gyffredinol yn dechrau ymgychwyn hyd yn oed ein newidynnau i 0. 100 00:04:45,190 --> 00:04:47,710 >> Ac yn C i wneud yr un fath, rydym yn mynd i ddweud int 101 00:04:47,710 --> 00:04:50,110 ar gyfer cyfanrif, fi jyst drwy gonfensiwn. 102 00:04:50,110 --> 00:04:53,390 Gallwn i wedi galw newidyn hwn unrhyw beth yr wyf am ei gael, yn union fel yn Scratch. 103 00:04:53,390 --> 00:04:57,770 Ac yna yn dychwelyd 0 jyst aseineion werth 0 o'r dde 104 00:04:57,770 --> 00:05:01,319 ac yn ei roi i mewn y newidyn, neu'r storio cynhwysydd yno, ar y chwith. 105 00:05:01,319 --> 00:05:04,360 Ac mae'r hanner colon gan y byddwn see-- a rydym wedi gweld rhai o'r already-- hyn 106 00:05:04,360 --> 00:05:06,530 yn unig yn golygu diwedd y meddwl. 107 00:05:06,530 --> 00:05:09,430 Ewch yn eich blaen i wneud rhywbeth arall ar y llinellau sy'n dilyn. 108 00:05:09,430 --> 00:05:11,330 >> Nawr, beth am ymadroddion Boole? 109 00:05:11,330 --> 00:05:14,320 Dwyn i gof bod yn Scratch, roedd y rhain yn ymadroddion 110 00:05:14,320 --> 00:05:16,740 sydd naill ai'n wir neu gwestiynau false--, 111 00:05:16,740 --> 00:05:18,910 mewn gwirionedd, sydd naill ai'n gywir neu'n anghywir. 112 00:05:18,910 --> 00:05:21,960 Felly, yn achos Scratch, gallem gofyn cwestiwn syml fel hyn, 113 00:05:21,960 --> 00:05:24,586 yn ff llai na 50? 114 00:05:24,586 --> 00:05:25,710 Felly fi, unwaith eto, yn gyfanrif. 115 00:05:25,710 --> 00:05:27,210 Efallai rydym yn ei ddefnyddio mewn rhaglen Scratch 116 00:05:27,210 --> 00:05:29,310 i gadw golwg ar sgôr neu rywbeth fel 'na. 117 00:05:29,310 --> 00:05:33,810 Felly cystrawen hwn yma yn Scratch jyst yn golygu, yn ff llai na 50? 118 00:05:33,810 --> 00:05:37,330 Wel, diolch byth, rhywbeth yn syml yn C. Ac i gyfieithu, 119 00:05:37,330 --> 00:05:41,780 hwn byddem yn dweud yn syml i lai na 50, gan ddefnyddio'r allwedd cyfarwydd 120 00:05:41,780 --> 00:05:42,850 ar eich bysellfwrdd. 121 00:05:42,850 --> 00:05:45,141 >> Yn y cyfamser, os ydych chi eisiau dweud rhywbeth mwy cyffredinol, 122 00:05:45,141 --> 00:05:49,890 fel, yn dda, yn x yn llai na y lle mae pob x ac y eu hunain newidynnau? 123 00:05:49,890 --> 00:05:52,280 Gallwn wneud yr un peth yn C, cyn belled ag y mae gennym 124 00:05:52,280 --> 00:05:53,942 creu newidynnau hyn eisoes. 125 00:05:53,942 --> 00:05:55,650 A byddwn yn gweld sut i gwneud hynny cyn bo hir. 126 00:05:55,650 --> 00:05:58,590 Byddem yn dweud yn syml x yn llai na y. 127 00:05:58,590 --> 00:06:00,530 >> Felly, rydych yn dechrau gweld rhai nodweddion tebyg. 128 00:06:00,530 --> 00:06:03,490 A Folks rhai a wnaeth Scratch yn sicr 129 00:06:03,490 --> 00:06:05,250 a ysbrydolwyd gan rai o syniadau sylfaenol hyn. 130 00:06:05,250 --> 00:06:10,350 A byddwch yn gweld y math hwn o cystrawen mewn llawer languages-- 131 00:06:10,350 --> 00:06:12,160 nid dim ond Scratch, nid dim ond C, ond Python, 132 00:06:12,160 --> 00:06:14,790 a JavaScript, a ieithoedd eraill yn llonydd. 133 00:06:14,790 --> 00:06:18,270 >> Gadewch i ni ystyried lluniad arall o C, y syniad o amod, 134 00:06:18,270 --> 00:06:20,370 gwneud rhywbeth yn amodol. 135 00:06:20,370 --> 00:06:22,720 Os yw rhywbeth yn wir, yn gwneud hyn. 136 00:06:22,720 --> 00:06:24,457 Os rhywbeth arall yn wir, yn gwneud hynny. 137 00:06:24,457 --> 00:06:27,040 Mae'n fath y rhaglennu sy'n cyfateb i fforch yn y ffordd. 138 00:06:27,040 --> 00:06:29,730 Efallai ei fod yn ddwy-ffordd fforch, tair-ffordd fforc, neu fwy. 139 00:06:29,730 --> 00:06:32,800 Ac yn Scratch, gallai fod yn rhaid gweld rhywbeth fel hyn. 140 00:06:32,800 --> 00:06:34,010 >> Felly, mae hyn yn un 'a un mawr. 141 00:06:34,010 --> 00:06:36,750 Ond yn ystyried y perthynas symlrwydd y rhesymeg. 142 00:06:36,750 --> 00:06:44,010 Os x yn llai na y, yna dywedwch x yn llai nag y, arall os x yn fwy na y, 143 00:06:44,010 --> 00:06:46,230 yna dywedwch x yn fwy na y. 144 00:06:46,230 --> 00:06:48,300 Ac yna, yn rhesymegol, os yn eich barn chi yn ôl i Scratch 145 00:06:48,300 --> 00:06:52,610 neu dim ond eich greddf dynol ei hun, yn dda, os x nad yw'n fwy na y, a x 146 00:06:52,610 --> 00:06:57,000 yn llai na y, yna, wrth gwrs x yn mynd i fod yn hafal i y. 147 00:06:57,000 --> 00:06:59,690 Felly, yn yr achos hwn, gan nythu blociau Scratch hynny, 148 00:06:59,690 --> 00:07:02,580 gallwn gyflawni tri fforch ffordd yn y ffordd? 149 00:07:02,580 --> 00:07:04,980 >> Yn y cyfamser, os ydym am wneud hynny yn C, mae'n gellid dadlau 150 00:07:04,980 --> 00:07:08,420 edrych ychydig simpler-- o leiaf unwaith y byddwch yn cael gyfarwydd â'r gystrawen. 151 00:07:08,420 --> 00:07:12,050 Os x yn llai na y, printf x yn llai na y. 152 00:07:12,050 --> 00:07:16,140 Arall os x yn fwy na y, printf x yn fwy na y. 153 00:07:16,140 --> 00:07:21,210 printf Arall x yn hafal i y-- ac, unwaith eto, gyda'r rhai slaes yn dod i ben yn union 154 00:07:21,210 --> 00:07:24,160 ar gyfer llinellau newydd hynny, felly os ydych yn mewn gwirionedd yn rhedeg y math hwn o raglen 155 00:07:24,160 --> 00:07:25,940 byddai'n jyst yn symud eich cyrchwr yn y pen draw 156 00:07:25,940 --> 00:07:28,100 i'r llinell nesaf y sgrin. 157 00:07:28,100 --> 00:07:31,270 >> Yn awr, roedd gan y cyfamser Scratch arall nodweddion mwy soffistigedig, yn unig 158 00:07:31,270 --> 00:07:34,320 rhai ohonynt rydym yn mynd i yn y lle cyntaf yn symud drosodd i fyd C. 159 00:07:34,320 --> 00:07:37,010 Ac mae un ohonynt oedd Gelwir rhestr yn Scratch. 160 00:07:37,010 --> 00:07:39,100 Ac roedd hyn yn arbennig math o newidyn sy'n 161 00:07:39,100 --> 00:07:42,840 ganiateir i chi storio pethau lluosog yn yn ôl, wrth gefn, i gefnogi, i gefnogi. 162 00:07:42,840 --> 00:07:45,540 >> Yn C, nid oes ganddo rhestrau, fel y cyfryw, ond rhywbeth 163 00:07:45,540 --> 00:07:48,090 sydd yn fwy cyffredinol Gelwir araeau, er ein fe 164 00:07:48,090 --> 00:07:50,590 yn dod yn ôl yn ddiweddarach semester hwn i edrych ar rywbeth 165 00:07:50,590 --> 00:07:52,780 a elwir yn rhestr, neu mewn gwirionedd yn rhestr gysylltiedig. 166 00:07:52,780 --> 00:07:55,510 Ond am y tro, yr agosaf cyfatebol yn C i ni 167 00:07:55,510 --> 00:07:57,345 yn mynd i fod yn rhywbeth Gelwir arae. 168 00:07:57,345 --> 00:07:59,740 Ac amrywiaeth yn unig yw math arbennig o amrywiol 169 00:07:59,740 --> 00:08:03,160 sy'n eich galluogi i storio data yn ôl, wrth gefn, i gefnogi, i gefn. 170 00:08:03,160 --> 00:08:05,840 >> Ac, yn wir, yn Scratch, os ydym yn awyddus i gael mynediad 171 00:08:05,840 --> 00:08:09,030 elfen gyntaf arae neu yn list-- ac rwy'n mynd i alw, 172 00:08:09,030 --> 00:08:13,600 drwy gonfensiwn, argv, dadl fector, ond yn fwy ar hynny cyn bo hir. 173 00:08:13,600 --> 00:08:17,090 Os ydw i eisiau mynd yn yr elfen gyntaf o argv, ym myd Scratch 174 00:08:17,090 --> 00:08:20,930 chi ei wneud mewn gwirionedd yn nodweddiadol yn dechrau cyfrif o 1. 175 00:08:20,930 --> 00:08:22,850 >> Ac felly efallai y byddwn yn cael eitem 1 o argv. 176 00:08:22,850 --> 00:08:26,310 Dyna sut MIT rhoi ar waith y syniad o restrau. 177 00:08:26,310 --> 00:08:29,860 Ond yn C, dw i'n mynd i yn symlach dim ond dweud, argv, 178 00:08:29,860 --> 00:08:32,758 sydd eto yn enw fy list-- neu i fod yn glir, amrywiaeth. 179 00:08:32,758 --> 00:08:34,549 Ac os ydw i am y tro cyntaf elfennau, dwi'n mynd 180 00:08:34,549 --> 00:08:37,890 i ddefnyddio cromfachau sgwâr, yr ydych yn Efallai na chaiff ei ddefnyddio yn aml dan bysellfwrdd. 181 00:08:37,890 --> 00:08:40,150 >> Ond 0 jyst yn golygu, mynd i mi y cyntaf. 182 00:08:40,150 --> 00:08:42,160 Felly, ar adegau ac fel amser fynd heibio, rydym yn mynd 183 00:08:42,160 --> 00:08:44,570 i ddechrau i weld dichotomies hyn rhwng Scratch a C, 184 00:08:44,570 --> 00:08:46,070 lle Scratch yn defnyddio un. 185 00:08:46,070 --> 00:08:47,670 Rydym yn C yn defnyddio 0 yma. 186 00:08:47,670 --> 00:08:49,420 Ond byddwch yn gweld yn gyflym unwaith y byddwch yn deall 187 00:08:49,420 --> 00:08:52,920 sylfeini pob iaith, bod y pethau hyn yn dechrau i gael yr holl mwy 188 00:08:52,920 --> 00:08:56,860 cyfarwydd trwy ymarfer ac ymarfer. 189 00:08:56,860 --> 00:08:59,700 >> Felly gadewch i ni mewn gwirionedd yn edrych yn awr ar raglen. 190 00:08:59,700 --> 00:09:04,031 Yma, fydd y cyntaf o'n C cod ffynhonnell ar gyfer rhaglenni cyflawn. 191 00:09:04,031 --> 00:09:06,280 A'r rhaglen rydym yn mynd i'w gynnig i'w ystyried 192 00:09:06,280 --> 00:09:09,340 yw'r un sy'n gyfwerth at y darn Scratch gynharach. 193 00:09:09,340 --> 00:09:13,210 >> Felly, yn fan hyn, mae gennym yr hyn sydd gellir dadlau y rhaglen C symlaf 194 00:09:13,210 --> 00:09:15,410 gallwch ysgrifennu hynny mewn gwirionedd yn gwneud rhywbeth. 195 00:09:15,410 --> 00:09:18,250 Yn awr, byddwn yn edrych yn y gorffennol, am y tro, wedi cynnwys, 196 00:09:18,250 --> 00:09:21,190 io.h safonol, ac mae'r rhain ongl cromfachau, ac int, ac yn ddi-rym, 197 00:09:21,190 --> 00:09:22,840 a'r braces cyrliog, ac yn y blaen. 198 00:09:22,840 --> 00:09:25,390 >> A gadewch i ni dim ond yn canolbwyntio ar beth, o leiaf yn reddfol, 199 00:09:25,390 --> 00:09:26,860 Gallai neidio allan ar chi eisoes. 200 00:09:26,860 --> 00:09:30,300 Yn wir, prif, nid wyf yn ei wneud o reidrwydd yn gwybod beth yw hyn, 201 00:09:30,300 --> 00:09:34,580 ond llawer fel Scratch oedd pan baner werdd glicio darn pos, 202 00:09:34,580 --> 00:09:39,070 felly hefyd C fel iaith raglennu cael prif ddarn o cod sy'n 203 00:09:39,070 --> 00:09:43,380 yn cael ei gyflawni yn ddiofyn. Ac, yn wir, yn llythrennol yn mynd i gael ei alw prif. 204 00:09:43,380 --> 00:09:44,720 >> Felly prif yn swyddogaeth. 205 00:09:44,720 --> 00:09:48,720 Ac mae'n swyddogaeth arbennig sy'n bodoli yn C fod pan fyddwch yn rhedeg rhaglen, 206 00:09:48,720 --> 00:09:52,720 mae'n brif sy'n cael ei redeg gan diofyn. Ym myd Scratch, 207 00:09:52,720 --> 00:09:56,970 fel arfer oedd pan baner werdd clicio a gafodd ei redeg gan ddiofyn. 208 00:09:56,970 --> 00:10:01,130 >> Yn y cyfamser, rydym wedi gweld hyn o'r blaen, printf neu brint fformatio, dyna 209 00:10:01,130 --> 00:10:05,620 mynd i fod yn swyddogaeth sy'n dod gyda C, ynghyd â criw cyfan o bobl eraill, 210 00:10:05,620 --> 00:10:10,140 hynny ewyllys o amser ac amser eto, er mwyn gwneud yn union 211 00:10:10,140 --> 00:10:12,450 fel yr awgryma'r enw, argraffu rhywbeth. 212 00:10:12,450 --> 00:10:13,500 Beth ydym ni eisiau argraffu? 213 00:10:13,500 --> 00:10:15,770 Wel, byddwn yn gweld bod gan gymeriadau amgáu 214 00:10:15,770 --> 00:10:18,680 fel these-- byd helo, n slaes mewn dyfynodau dwbl, 215 00:10:18,680 --> 00:10:23,040 gallwn ddweud printf yn union beth i argraffu ar y sgrin. 216 00:10:23,040 --> 00:10:26,430 >> Ond er mwyn gwneud hynny, yr ydym yn anffodus 217 00:10:26,430 --> 00:10:30,010 Mae angen i gymryd rhywbeth sy'n eisoes yn cryptig i ni bodau dynol, 218 00:10:30,010 --> 00:10:34,510 ond o leiaf mae'n braidd readable-- miniog yn cynnwys, io.h safonol, int, 219 00:10:34,510 --> 00:10:39,340 prif, yn ddi-rym, printf, pob un o'r hudol incantations rydym yn unig yn gweld ar y sgrin. 220 00:10:39,340 --> 00:10:42,470 Ond rydym mewn gwirionedd yn rhaid i ni mynd yn fwy arcane o hyd. 221 00:10:42,470 --> 00:10:47,140 yn gyntaf mae angen i ni gyfieithu'r cod ein bod yn ysgrifennu i mewn i cod peiriant. 222 00:10:47,140 --> 00:10:51,370 A galw i gof o wythnos diwethaf fod peiriannau, o leiaf y rhai yr ydym yn gwybod yma, 223 00:10:51,370 --> 00:10:54,450 ar ddiwedd y dydd yn unig deall seroau a rhai. 224 00:10:54,450 --> 00:10:58,100 >> Ac mae fy Nuw, os byddwn yn gorfod ysgrifennu'r rhain zeros a rhai i mewn gwirionedd rhaglen, 225 00:10:58,100 --> 00:11:01,260 byddai'n iawn, yn gyflym iawn cymryd yr hwyl allan o unrhyw beth. 226 00:11:01,260 --> 00:11:05,150 Ond mae'n troi allan, yr wythnos diwethaf, bod y patrymau hyn o zeros a rhai 227 00:11:05,150 --> 00:11:06,400 yn unig wedi ystyr arbennig. 228 00:11:06,400 --> 00:11:08,500 Mewn rhai cyd-destunau, Efallai y maent yn ei olygu rhifau. 229 00:11:08,500 --> 00:11:11,840 >> Mewn rhai cyd-destunau, efallai y maent yn ei olygu llythyrau, neu liwiau, neu unrhyw rif 230 00:11:11,840 --> 00:11:14,710 tyniadau eraill yno arno. 231 00:11:14,710 --> 00:11:18,450 Ond yn union fel eich cyfrifiadur wedi CPU, Uned Brosesu Ganolog, 232 00:11:18,450 --> 00:11:20,390 neu yr ymennydd tu mewn eich cyfrifiadur. 233 00:11:20,390 --> 00:11:22,240 Mae fel arfer yn Intel tu mewn, oherwydd dyna 234 00:11:22,240 --> 00:11:24,900 un o'r cwmnïau mwyaf sy'n gwneud CPUs ar gyfer cyfrifiaduron. 235 00:11:24,900 --> 00:11:28,910 >> Wel, CPUs Intel ac eraill yn syml wedi penderfynu o flaen llaw 236 00:11:28,910 --> 00:11:33,970 bod patrymau penodol o zeros a Bydd rhai yn golygu pethau penodol. 237 00:11:33,970 --> 00:11:37,040 patrymau penodol o zeros a rhai Bydd yn golygu, argraffu hwn i'r sgrin, 238 00:11:37,040 --> 00:11:39,710 neu ychwanegu y ddau rif, neu tynnu y ddau rif, 239 00:11:39,710 --> 00:11:43,310 neu symud y darn hwn o ddata o cof fy cyfrifiadur dros yma, 240 00:11:43,310 --> 00:11:47,870 neu unrhyw nifer o lefel isel iawn eraill, ond yn ddefnyddiol yn y pen draw, gweithrediadau. 241 00:11:47,870 --> 00:11:53,022 Ond, diolch i'r drefn, rydym pobl yn ddim yn mynd i angen gwybod y lefel hon o fanylder. 242 00:11:53,022 --> 00:11:56,230 Yn wir, yn union fel y tro diwethaf, lle'r ydym yn ei dynnu eto, ac eto, ac unwaith eto, 243 00:11:56,230 --> 00:11:58,930 adeilad o lefel isel iawn primitives fel zeros a rhai 244 00:11:58,930 --> 00:12:01,160 i gysyniadau lefel uwch fel rhifau, a llythyrau, 245 00:12:01,160 --> 00:12:04,330 a lliwiau, ac yn fwy, felly allwn ni fel rhaglenwyr 246 00:12:04,330 --> 00:12:07,080 sefyll ar ysgwyddau eraill sydd wedi dod ger ein bron 247 00:12:07,080 --> 00:12:11,260 ac yn defnyddio meddalwedd sy'n arall pobl wedi ysgrifennu cyn us-- 248 00:12:11,260 --> 00:12:14,340 sef rhaglenni a elwir yn crynoadyddion. 249 00:12:14,340 --> 00:12:17,770 >> C yn iaith sy'n Fel arfer, ei llunio, 250 00:12:17,770 --> 00:12:22,130 sy'n golygu trosi o cod ffynhonnell i god peiriant. 251 00:12:22,130 --> 00:12:25,230 Yn benodol, beth mae hyn yn golygu yw, os ydych wedi cael eich ffynhonnell 252 00:12:25,230 --> 00:12:29,530 cod ydych chi eich hun yn ysgrifennu, gan ein bod yn fuan bydd mewn dim ond eiliad ar y sgrin, 253 00:12:29,530 --> 00:12:33,140 ac rydych am ei drosi yn y pen draw i beiriant code-- 254 00:12:33,140 --> 00:12:37,100 zeros a rhai hynny sy'n dim ond eich Mac neu eich cyfrifiadur 255 00:12:37,100 --> 00:12:41,230 understands-- gennych cyntaf bwydo y cod ffynhonnell i mewn fel 256 00:12:41,230 --> 00:12:46,340 mewnbwn i arbennig rhaglen o'r enw casglwr, 257 00:12:46,340 --> 00:12:48,974 cynnyrch yr ydym yn Rhaid weld yw cod peiriant. 258 00:12:48,974 --> 00:12:51,890 Ac, yn wir, y tro diwethaf buom yn siarad am, mewn gwirionedd, ar ddiwedd y dydd, 259 00:12:51,890 --> 00:12:52,610 datrys Problemau. 260 00:12:52,610 --> 00:12:53,360 Rydych chi wedi got mewnbynnau. 261 00:12:53,360 --> 00:12:54,318 A bod gennych allbynnau. 262 00:12:54,318 --> 00:12:56,560 A bod gennych ryw fath o algorithm yn y canol. 263 00:12:56,560 --> 00:12:59,830 >> Gall algorithmau siwr o fod rhoi ar waith mewn meddalwedd, 264 00:12:59,830 --> 00:13:02,900 fel y gwelsom gyda wythnos diwethaf pseudocode ac fel y byddwn yn gweld gyda cod gwirioneddol 265 00:13:02,900 --> 00:13:03,490 wythnos yma. 266 00:13:03,490 --> 00:13:06,430 Ac felly casglwr mewn gwirionedd dim ond Mae set o algorithmau y tu mewn 267 00:13:06,430 --> 00:13:10,060 ohoni sy'n gwybod sut i trosi y geiriau allweddol arbennig, 268 00:13:10,060 --> 00:13:12,180 fel prif, a printf, ac eraill yr ydym newydd 269 00:13:12,180 --> 00:13:17,620 Gwelodd i mewn i batrymau o sero ac rhai sy'n Intel tu mewn a arall CPUs 270 00:13:17,620 --> 00:13:20,020 mewn gwirionedd yn deall. 271 00:13:20,020 --> 00:13:22,460 Felly sut rydym yn gwneud hyn? 272 00:13:22,460 --> 00:13:24,470 Ble rydym yn cael compiler? 273 00:13:24,470 --> 00:13:26,400 >> Mae'r rhan fwyaf ohonom yma yn cael Mac neu PC. 274 00:13:26,400 --> 00:13:29,152 Ac rydych yn rhedeg Mac OS, neu Windows, neu Linux, Solaris neu, 275 00:13:29,152 --> 00:13:30,860 neu unrhyw nifer o eraill systemau gweithredu. 276 00:13:30,860 --> 00:13:32,568 Ac, yn wir, gallem mynd allan ar y we 277 00:13:32,568 --> 00:13:35,710 a lawrlwytho compiler ar gyfer eich Mac neu eich cyfrifiadur 278 00:13:35,710 --> 00:13:37,360 ar gyfer eich system weithredu penodol. 279 00:13:37,360 --> 00:13:39,617 Ond byddai pob un ohonom fod ar gwahanol dudalennau, fel petai. 280 00:13:39,617 --> 00:13:41,450 byddem wedi ychydig ffurfweddau gwahanol. 281 00:13:41,450 --> 00:13:43,210 Ac ni fyddai pethau'n gweithio gyd yr un fath. 282 00:13:43,210 --> 00:13:45,280 Ac, yn wir, y dyddiau hyn llawer ohonom peidiwch â defnyddio 283 00:13:45,280 --> 00:13:47,516 meddalwedd sy'n rhedeg yn unig ar ein gliniaduron. 284 00:13:47,516 --> 00:13:49,390 Yn lle hynny, rydym yn defnyddio rhywbeth fel porwr sy'n 285 00:13:49,390 --> 00:13:52,930 yn ein galluogi i gael mynediad at y we-seiliedig ceisiadau yn y cwmwl. 286 00:13:52,930 --> 00:13:55,630 Ac yn ddiweddarach y semester hwn, byddwn yn gwneud yn union hynny. 287 00:13:55,630 --> 00:13:59,660 Byddwn yn ysgrifennu ceisiadau neu Nid yw meddalwedd defnyddio code-- C, 288 00:13:59,660 --> 00:14:02,860 ond ieithoedd eraill fel Python a JavaScript-- sy'n rhedeg yn y cwmwl. 289 00:14:02,860 --> 00:14:05,860 >> Ac i wneud hynny, rydym ni ein hunain yn ystod y semester 290 00:14:05,860 --> 00:14:11,890 Bydd yn ei ddefnyddio cwmwl-seiliedig amgylchedd a elwir yn CS50 IDE. 291 00:14:11,890 --> 00:14:16,030 Mae hwn yn rhaglennu ar y we amgylchedd, neu ddatblygu integredig 292 00:14:16,030 --> 00:14:20,610 amgylchedd, Ide, sy'n adeiladu ar ben rhai meddalwedd cod agored o'r enw Cloud 9. 293 00:14:20,610 --> 00:14:22,966 Ac rydym wedi gwneud rhai pedagogaidd symleiddio iddo 294 00:14:22,966 --> 00:14:25,840 fel ag i guddio nodweddion penodol mewn yr wythnosau cyntaf nad oes angen i ni, 295 00:14:25,840 --> 00:14:27,770 ac ar ôl hynny gallwch datgelu iddyn nhw ac yn gwneud y rhan fwyaf o 296 00:14:27,770 --> 00:14:29,400 unrhyw beth yr hoffech gyda'r amgylchedd. 297 00:14:29,400 --> 00:14:32,470 >> Ac mae'n caniatáu i ni, hefyd, i cyn-gosod meddalwedd penodol. 298 00:14:32,470 --> 00:14:35,330 Pethau fel CS50 hyn a elwir yn llyfrgell, y byddwn yn fuan yn gweld 299 00:14:35,330 --> 00:14:39,210 rhoi i ni yn C gyda rhai swyddogaethau ychwanegol. 300 00:14:39,210 --> 00:14:44,392 Felly, os byddwch yn mynd i, yn y pen draw, CS50.io, byddwch yn cael eich annog i fewngofnodi, 301 00:14:44,392 --> 00:14:46,350 ac unwaith y byddwch yn ei wneud a chreu cyfrif am ddim, 302 00:14:46,350 --> 00:14:52,150 byddwch yn gallu cael mynediad at amgylchedd sy'n edrych yn eithaf fel hyn. 303 00:14:52,150 --> 00:14:53,760 >> Yn awr, mae hyn yn yn y modd diofyn. 304 00:14:53,760 --> 00:14:55,650 Mae popeth yn braf ac yn llachar ar y sgrin. 305 00:14:55,650 --> 00:14:57,941 Mae llawer ohonom wedi arfer o yn gweithio ar ddarn CS50 dyna 306 00:14:57,941 --> 00:14:59,150 yn eithaf hwyr yn y nos. 307 00:14:59,150 --> 00:15:02,400 Ac felly efallai y byddai'n well rhai ohonoch i droi i fodd nos, fel petai. 308 00:15:02,400 --> 00:15:05,550 >> Ond, yn y pen draw, yr hyn yr ydych chi'n mynd i weld o fewn CS50 IDE 309 00:15:05,550 --> 00:15:08,340 yw tri areas-- wahanol ardal ar y lle y chwith 310 00:15:08,340 --> 00:15:12,604 eich ffeiliau yn mynd i fod yn y cwmwl, ardal ar y dde uchaf 311 00:15:12,604 --> 00:15:14,270 lle mae eich cod yn mynd i fod eu golygu. 312 00:15:14,270 --> 00:15:16,650 Byddwch yn gallu agor tabs unigol ar gyfer unrhyw raglen 313 00:15:16,650 --> 00:15:19,670 eich bod yn ysgrifennu semester hwn y tu mewn o'r gornel dde uchaf. 314 00:15:19,670 --> 00:15:23,070 Ac yna y rhan fwyaf arcanely, ac eto rymus, 315 00:15:23,070 --> 00:15:26,610 yn mynd i fod y peth hyn yn y gwaelod a elwir derfynnell ffenest. 316 00:15:26,610 --> 00:15:29,450 >> Mae hon yn hen ysgol Rhyngwyneb Archa Bannod, 317 00:15:29,450 --> 00:15:32,240 neu CLI, sy'n caniatáu chi i redeg gorchmynion 318 00:15:32,240 --> 00:15:35,260 ar y computer-- yn yr achos hwn, y cyfrifiadur yn y cloud-- 319 00:15:35,260 --> 00:15:39,090 i wneud pethau fel lunio eich cod o cod ffynhonnell i'r cod peiriant, 320 00:15:39,090 --> 00:15:43,600 i redeg eich rhaglenni, neu i ddechrau eich gweinydd gwe, neu i gael mynediad at eich cronfa ddata, 321 00:15:43,600 --> 00:15:47,454 ac unrhyw nifer o dechnegau eraill y byddwn yn dechrau ei ddefnyddio cyn hir. 322 00:15:47,454 --> 00:15:49,370 Ond i gyrraedd yno, rydym yn mynd i mewn gwirionedd yn cael 323 00:15:49,370 --> 00:15:51,240 i fynd ar-lein a dechrau chwarae. 324 00:15:51,240 --> 00:15:54,399 Ac i wneud hynny, gadewch i ni yn gyntaf dechrau tinkering gyda phrif, 325 00:15:54,399 --> 00:15:55,940 ac ysgrifennu'r prif rhan o raglen. 326 00:15:55,940 --> 00:15:59,170 A gadewch i ni ddefnyddio'r swyddogaeth honno printf, yr ydym yn eu defnyddio yn gynharach, 327 00:15:59,170 --> 00:16:01,050 yn syml i ddweud rhywbeth. 328 00:16:01,050 --> 00:16:04,910 >> Felly dyma fi eisoes y tu mewn o IDE CS50. 329 00:16:04,910 --> 00:16:05,930 Rwyf wedi mewngofnodi ymlaen llaw. 330 00:16:05,930 --> 00:16:07,360 Ac yr wyf yn llawn sgrinio y ffenestr. 331 00:16:07,360 --> 00:16:09,670 Ac felly, yn y pen draw, byddwch yn hefyd mewn problemau i ddod 332 00:16:09,670 --> 00:16:12,960 yn dilyn camau tebyg sy'n Bydd darparu dogfennau ar-lein. 333 00:16:12,960 --> 00:16:16,360 Felly nid oes angen i chi boeni am amsugno pob cam bach technegol 334 00:16:16,360 --> 00:16:17,730 fy mod yn ei wneud yma heddiw. 335 00:16:17,730 --> 00:16:19,222 >> Ond byddwch yn cael screen fel hyn. 336 00:16:19,222 --> 00:16:20,430 Yr wyf yn digwydd i fod yn y modd y nos. 337 00:16:20,430 --> 00:16:22,944 A gallwch fywiogi popeth sefydlwyd gan anablu modd nos. 338 00:16:22,944 --> 00:16:24,860 Ac ar ddiwedd y dydd, rydych chi'n mynd i weld 339 00:16:24,860 --> 00:16:30,090 y tri phrif areas-- y ffeil porwr yn chwith, y tabiau cod fyny top, 340 00:16:30,090 --> 00:16:32,430 ac y ffenestr derfynell ar y gwaelod. 341 00:16:32,430 --> 00:16:34,890 >> Gadewch i mi fynd yn ei flaen ac ysgrifennu fy rhaglen gyntaf. 342 00:16:34,890 --> 00:16:42,300 Rydw i'n mynd i fynd preemptively i File, Save, ac yn arbed fy ffeil fel hello.c. 343 00:16:42,300 --> 00:16:46,850 Yn wir, erbyn confensiwn, unrhyw ydym rhaglen ysgrifennu sy'n ysgrifennu yn yr iaith C 344 00:16:46,850 --> 00:16:49,739 Dylid enwi rhywbeth dot c, drwy gonfensiwn. 345 00:16:49,739 --> 00:16:53,030 Felly, yr wyf i'n mynd i enwi ei hello.c, oherwydd Fi jyst eisiau dweud helo wrth y byd. 346 00:16:53,030 --> 00:16:54,820 Nawr rwy'n mynd i chwyddo allan a chliciwch Save. 347 00:16:54,820 --> 00:16:58,180 A'r holl gennyf yma yn awr yw tab lle y gallaf ddechrau cod ysgrifennu. 348 00:16:58,180 --> 00:16:59,490 >> Nid yw hyn yn mynd i lunio. 349 00:16:59,490 --> 00:17:00,300 Mae hyn yn golygu dim byd. 350 00:17:00,300 --> 00:17:02,750 Ac felly hyd yn oed os wyf yn trosi hwn i zeros a rhai, 351 00:17:02,750 --> 00:17:05,390 CPU yn mynd i gael unrhyw syniad beth sy'n digwydd o gwmpas. 352 00:17:05,390 --> 00:17:14,170 Ond os wyf yn ysgrifennu llinellau ydynt yn cyfateb i fyny gyda C C lles conventions--, 353 00:17:14,170 --> 00:17:20,150 unwaith eto, mae hyn yn language-- gyda chystrawen hoffi hwn, printf helo world-- ac rwyf wedi 354 00:17:20,150 --> 00:17:22,210 gotten gyfforddus gyda gwneud hyn dros gyfnod o amser. 355 00:17:22,210 --> 00:17:24,510 Felly, nid wyf yn meddwl fy mod gwneud unrhyw wallau teipio. 356 00:17:24,510 --> 00:17:27,910 >> Ond, yn ddieithriad, y cyntaf iawn tro y byddwch yn gwneud hyn, byddwch yn. 357 00:17:27,910 --> 00:17:31,090 A beth wyf ar fin ei wneud efallai iawn yn dda, nid yn gweithio i chi y tro cyntaf. 358 00:17:31,090 --> 00:17:33,610 A dyna berffaith iawn, oherwydd ar hyn o bryd i chi 359 00:17:33,610 --> 00:17:37,662 bosibl y bydd yn gweld llawer gyfan o newydd-deb, ond dros gyfnod o amser ar ôl i chi ddod yn gyfarwydd 360 00:17:37,662 --> 00:17:39,870 gyda'r amgylchedd hwn, ac yr iaith, ac eraill, 361 00:17:39,870 --> 00:17:42,370 byddwch yn dechrau gweld pethau sy'n naill ai'n gywir neu'n anghywir. 362 00:17:42,370 --> 00:17:44,369 >> A dyma beth mae'r cymrodyr addysgu a chwrs 363 00:17:44,369 --> 00:17:48,780 cynorthwywyr cael mor dda yn dros amser, yn cael ei sbotio camgymeriadau neu chwilod yn eich cod. 364 00:17:48,780 --> 00:17:52,110 Ond yr wyf yn honni bod yna oes unrhyw bugs yn y cod hwn. 365 00:17:52,110 --> 00:17:53,990 Felly, yr wyf yn awr am redeg y rhaglen hon. 366 00:17:53,990 --> 00:17:57,440 >> Nawr ar fy Mac neu PC eich hun, Im 'i mewn yr arfer o eiconau glicio ddwywaith 367 00:17:57,440 --> 00:17:59,350 pan wyf yn awyddus i gynnal rhai rhaglen. 368 00:17:59,350 --> 00:18:01,080 Ond nid dyna'r y model yma. 369 00:18:01,080 --> 00:18:04,570 Yn yr amgylchedd hwn, sef CS50 IDE. 370 00:18:04,570 --> 00:18:07,192 Rydym yn defnyddio gweithredu system o'r enw Linux. 371 00:18:07,192 --> 00:18:09,900 Linux yn ein hatgoffa o un arall system weithredu, a elwir yn gyffredinol 372 00:18:09,900 --> 00:18:10,850 fel Unix. 373 00:18:10,850 --> 00:18:16,340 A Linux yn adnabyddus yn arbennig ar gyfer cael Archa Bannod Amgylchedd, CLI. 374 00:18:16,340 --> 00:18:20,070 Nawr, rydym yn defnyddio benodol blas o Linux enw Ubuntu. 375 00:18:20,070 --> 00:18:22,770 Ac Ubuntu yn unig yw Fersiwn penodol o Linux. 376 00:18:22,770 --> 00:18:27,900 >> Ond Linux rhain yn y dyddiau hyn yn ei wneud mewn gwirionedd dod gyda rhyngwynebau defnyddwyr graffigol. 377 00:18:27,900 --> 00:18:30,360 Ac yr un yr ydym yn digwydd i fod yn defnyddio yma yw ar y we. 378 00:18:30,360 --> 00:18:32,735 Felly, gallai hyn edrych yn hyd yn oed ychydig yn wahanol o rywbeth 379 00:18:32,735 --> 00:18:35,310 efallai y byddwch chi eich hun gael gweld neu eu cynnal yn y gorffennol. 380 00:18:35,310 --> 00:18:37,910 >> Felly, yr wyf i'n mynd i fynd yn ei flaen yn awr ac yn gwneud y canlynol. 381 00:18:37,910 --> 00:18:40,950 Rwyf wedi arbed y ffeil hwn fel hello.c. 382 00:18:40,950 --> 00:18:47,350 Rydw i'n mynd i fynd yn ei flaen a Math o clanghello.c Felly chlang 383 00:18:47,350 --> 00:18:49,850 ar gyfer yr iaith C yn compiler. 384 00:18:49,850 --> 00:18:51,952 Mae'n cyn-osod yn CS50 IDE. 385 00:18:51,952 --> 00:18:54,910 A gallwch hollol lawrlwytho a gosod hyn ar eich Mac neu PC eich hun. 386 00:18:54,910 --> 00:18:57,910 >> Ond, unwaith eto, ni fyddai'n rhaid i chi i gyd o y cyn-gyflunio wneud i chi. 387 00:18:57,910 --> 00:19:00,940 Felly am y tro, Im 'jyst mynd i redeg clanghello.c. 388 00:19:00,940 --> 00:19:03,240 Ac yn awr sylwi ar gystrawen hon yma bydd yn y pen draw 389 00:19:03,240 --> 00:19:06,930 sylweddoli golygu fy mod mewn ffolder neu gyfeirlyfr o'r enw Workspace. 390 00:19:06,930 --> 00:19:11,030 Mae'r arwydd doler yn unig yw confensiwn am ystyr, teipiwch eich gorchmynion yma. 391 00:19:11,030 --> 00:19:14,560 >> Mae'n hyn a elwir yn brydlon, dim ond drwy gonfensiwn yn arwydd ddoler. 392 00:19:14,560 --> 00:19:19,130 Ac os wyf yn mynd yn ei flaen yn awr a chliciwch Mewnbynnu, nid oes dim yn ymddangos i fod wedi digwydd. 393 00:19:19,130 --> 00:19:20,930 Ond mae hynny'n mewn gwirionedd yn beth da. 394 00:19:20,930 --> 00:19:23,650 Mae'r llai sy'n digwydd ar eich sgrîn, y mwyaf tebygol 395 00:19:23,650 --> 00:19:26,710 eich cod yw i fod yn gywir, o leiaf syntactically. 396 00:19:26,710 --> 00:19:29,120 >> Felly os wyf eisiau rhedeg hwn rhaglen, beth ddylwn i ei wneud? 397 00:19:29,120 --> 00:19:33,770 Wel, mae'n ymddangos bod y enw diofyn drwy gonfensiwn 398 00:19:33,770 --> 00:19:38,854 ar gyfer rhaglenni pan na fyddwch yn pennu enw ar gyfer eich rhaglen yn unig a.out. 399 00:19:38,854 --> 00:19:41,270 A chystrawen hyn hefyd, wnewch chi helpu cael gyfarwydd â hwy cyn hir. 400 00:19:41,270 --> 00:19:47,500 >> Dot slaes yn unig yn golygu, hey, CS50 IDE, yn rhedeg rhaglen o'r enw a.out 401 00:19:47,500 --> 00:19:49,400 dyna y tu mewn fy cyfeiriadur cyfredol. 402 00:19:49,400 --> 00:19:51,520 Mae hynny'n golygu bod y dot cyfeiriadur cyfredol. 403 00:19:51,520 --> 00:19:55,040 A gawn ni weld beth dilyniannau eraill o gymeriadau golygu cyn bo hir. 404 00:19:55,040 --> 00:19:58,430 >> Felly dyma ni, Mewnbynnu, helo byd. 405 00:19:58,430 --> 00:20:00,080 A byddwch yn sylwi, bod yr hyn a ddigwyddodd? 406 00:20:00,080 --> 00:20:01,580 Nid yn unig ei fod yn argraffu helo byd. 407 00:20:01,580 --> 00:20:05,990 Mae hefyd yn symud y cyrchwr at y llinell nesaf. 408 00:20:05,990 --> 00:20:07,160 >> A pham oedd hynny? 409 00:20:07,160 --> 00:20:12,400 Beth oedd y cod sy'n ysgrifennom cyn a oedd yn sicrhau y byddai'r cyrchwr 410 00:20:12,400 --> 00:20:14,882 mynd ar y llinell nesaf? 411 00:20:14,882 --> 00:20:16,840 peth rhyfedd am cyfrifiadur yn dim ond yn mynd 412 00:20:16,840 --> 00:20:18,570 i wneud yn llythrennol yr hyn yr ydych yn dweud iddo ei wneud. 413 00:20:18,570 --> 00:20:26,050 >> Felly, os ydych yn dweud ei fod i printf helo, coma, gofod, byd, dyfynnwch agos, 414 00:20:26,050 --> 00:20:29,090 mae'n llythrennol ond yn mynd i argraffu cymeriadau hynny. 415 00:20:29,090 --> 00:20:31,980 Ond roedd gen hwn cymeriad arbennig ar y diwedd, galw i gof, slaes n. 416 00:20:31,980 --> 00:20:34,230 A dyna beth sicrhau a aeth cymeriad 417 00:20:34,230 --> 00:20:36,570 i'r llinell nesaf y sgrin. 418 00:20:36,570 --> 00:20:38,097 >> Yn wir, gadewch i mi fynd a gwneud hyn. 419 00:20:38,097 --> 00:20:39,430 Gadewch i mi fynd yn ei flaen a dilëwch hyn. 420 00:20:39,430 --> 00:20:41,180 Yn awr, yn sylwi bod y ben fy sgrin mae 421 00:20:41,180 --> 00:20:42,890 ychydig o olau coch yn y tab sy'n dangos, 422 00:20:42,890 --> 00:20:45,047 hey, nad ydych wedi arbed eich ffeil. 423 00:20:45,047 --> 00:20:47,880 Felly, yr wyf i'n mynd i fynd yn ei flaen gyda rheolaeth S neu orchymyn S, arbed y ffeil. 424 00:20:47,880 --> 00:20:51,130 Nawr mae'n goes-- aeth am gwyrdd moment--. 425 00:20:51,130 --> 00:20:53,760 Ac yn awr mae'n ôl i dim ond bod yn eicon agos. 426 00:20:53,760 --> 00:21:01,860 >> Os wyf yn awr yn rhedeg clanghello.c eto, Rhowch, dot slaes, a.out, Mewnbynnu, 427 00:21:01,860 --> 00:21:04,110 byddwch yn gweld ei bod yn dal i weithio. 428 00:21:04,110 --> 00:21:06,020 Ond mae'n gellid dadlau ychydig bygi. 429 00:21:06,020 --> 00:21:08,714 Ar hyn o bryd, mae fy lle gwaith prompt--, ac yna y arwydd doler, 430 00:21:08,714 --> 00:21:10,880 ac yna fy prompt-- gwirioneddol i gyd ar yr un llinell. 431 00:21:10,880 --> 00:21:14,540 Felly, mae hyn yn sicr yn bug esthetig, hyd yn oed os nad yw'n wir yn bug rhesymegol. 432 00:21:14,540 --> 00:21:16,250 >> Felly, yr wyf i'n mynd i ddadwneud hyn yr wyf newydd ei wneud. 433 00:21:16,250 --> 00:21:18,560 Rydw i'n mynd i ailgynnal a.out. 434 00:21:18,560 --> 00:21:22,710 Rhybudd Rwyf wedi ychwanegu y newline cymeriad cefn. 435 00:21:22,710 --> 00:21:24,280 Rwyf wedi arbed y ffeil. 436 00:21:24,280 --> 00:21:31,630 >> Felly, yr wyf i'n mynd i ailgynnal a.out, ac-- dammit, nam, a bug sy'n golygu camgymeriad. 437 00:21:31,630 --> 00:21:35,020 Felly y nam yw bod hyd yn oed er Ychwanegais y slaes n yno, 438 00:21:35,020 --> 00:21:41,180 ail-arbed, ail-redeg y rhaglen, yr ymddygiad yn yr un fath. 439 00:21:41,180 --> 00:21:42,640 Pam fyddai hynny? 440 00:21:42,640 --> 00:21:43,910 >> Im 'yn colli cam, dde? 441 00:21:43,910 --> 00:21:47,620 Mae hynny'n gam allweddol cynharach oedd eich bod wedi canlynol-- pan fyddwch yn newid eich cod ffynhonnell, 442 00:21:47,620 --> 00:21:49,610 mae'n troi allan hefyd yn rhedeg drwy'r compiler 443 00:21:49,610 --> 00:21:51,102 eto er mwyn i chi gael cod peiriant newydd. 444 00:21:51,102 --> 00:21:52,810 A'r cod peiriant, y zeros a rhai, 445 00:21:52,810 --> 00:21:56,260 yn mynd i fod bron yn union, ond nad yn berffaith felly, oherwydd mae angen, 446 00:21:56,260 --> 00:21:57,510 wrth gwrs, bod llinell newydd. 447 00:21:57,510 --> 00:22:02,640 >> Felly, i atgyweiria hon, dwi'n mynd i angen i ailgynnal clanghello.c, rhowch, dot 448 00:22:02,640 --> 00:22:03,800 slaes, a.out. 449 00:22:03,800 --> 00:22:08,402 Ac yn awr, helo byd yn ôl i ble yr wyf yn disgwyl iddo fod. 450 00:22:08,402 --> 00:22:09,610 Felly, mae hyn i gyd yn gain ac yn dda. 451 00:22:09,610 --> 00:22:13,150 Ond a.out yn enw eithaf dwp am rhaglen, er ei fod yn digwydd bod, 452 00:22:13,150 --> 00:22:16,530 am resymau hanesyddol, mae'r default-- ystyr allbynnau cynulliad. 453 00:22:16,530 --> 00:22:20,780 >> Ond gadewch i mi fynd yn ei flaen yma ac yn gwneud hyn yn wahanol. 454 00:22:20,780 --> 00:22:24,760 Rwyf am i fy rhaglen helo byd i mewn gwirionedd yn cael eu galw helo. 455 00:22:24,760 --> 00:22:28,320 Felly pe bai'n eicon ar fy n ben-desg, ni fyddai'n cael ei a.out. 456 00:22:28,320 --> 00:22:29,730 Byddai'n cael ei alw helo. 457 00:22:29,730 --> 00:22:33,660 >> Felly, er mwyn gwneud hyn, mae'n troi allan bod chlang, fel llawer o raglenni, 458 00:22:33,660 --> 00:22:37,980 cefnogi dadleuon llinell gorchymyn, neu faneri, neu switsys, 459 00:22:37,980 --> 00:22:39,600 sydd yn syml yn dylanwadu ar ei ymddygiad. 460 00:22:39,600 --> 00:22:45,160 Yn benodol, chlang yn cefnogi llinell doriad o baner, sydd wedyn yn cymryd ail air. 461 00:22:45,160 --> 00:22:48,190 Yn yr achos hwn, fympwyol 'n annhymerus', ond yn rhesymol, ei alw'n helo. 462 00:22:48,190 --> 00:22:50,710 Ond gallai wyf yn ei alw unrhyw beth Rwyf am, ac eithrio a.out, a oedd yn 463 00:22:50,710 --> 00:22:52,390 fyddai yn hytrach ar wahân i'r pwynt. 464 00:22:52,390 --> 00:22:55,640 >> Ac yna dim ond nodi enw'r o'r ffeil wyf am lunio. 465 00:22:55,640 --> 00:22:59,190 Felly nawr er bod ar y dechrau o'r gorchymyn yr wyf yn dal i gael chlang, 466 00:22:59,190 --> 00:23:01,410 ar ddiwedd y gorchymyn Rwy'n dal i gael y enw'r ffeil, 467 00:23:01,410 --> 00:23:05,520 Yr wyf yn awr yn cael y rhain archa bannod dadleuon, baneri hyn sydd yn ei ddweud, 468 00:23:05,520 --> 00:23:11,180 oh, gyda llaw, allbwn-o, ffeil Gelwir helo, nid yw'r a.out rhagosodedig. 469 00:23:11,180 --> 00:23:13,810 >> Felly os wyf yn taro Rhowch nawr, dim byd ymddengys ei fod wedi digwydd. 470 00:23:13,810 --> 00:23:17,900 Ac, eto, yn awr y gallaf ei wneud slaes dot helo. 471 00:23:17,900 --> 00:23:19,089 Felly mae'n yr un rhaglen. 472 00:23:19,089 --> 00:23:21,380 Mae'r zeros a rhai yn union yr un fath ar ddiwedd y dydd. 473 00:23:21,380 --> 00:23:24,210 >> Ond maen nhw mewn dau gwahanol a.out files--, 474 00:23:24,210 --> 00:23:26,490 sef y fersiwn cyntaf a dim ond enwir ffôl, 475 00:23:26,490 --> 00:23:30,250 ac yn awr helo, sydd yn llawer mwy enw cymhellol ar gyfer rhaglen. 476 00:23:30,250 --> 00:23:33,195 Ond, yn onest, yr wyf byth mod mynd i gofio hyn eto, 477 00:23:33,195 --> 00:23:34,070 ac unwaith eto, ac unwaith eto. 478 00:23:34,070 --> 00:23:36,411 Ac, mewn gwirionedd, fel yr ydym yn ysgrifennu rhaglenni mwy cymhleth, 479 00:23:36,411 --> 00:23:38,160 y gorchmynion rydych yn mynd i gael i ysgrifennu 480 00:23:38,160 --> 00:23:40,920 yn mynd i gael hyd yn oed mwy cymhleth o hyd. 481 00:23:40,920 --> 00:23:41,940 >> Ac felly beidio â phoeni. 482 00:23:41,940 --> 00:23:46,220 Mae'n ymddangos bod bodau dynol cyn ni wedi sylweddoli eu bod yn rhy 483 00:23:46,220 --> 00:23:47,530 Roedd gan un broblem union hon. 484 00:23:47,530 --> 00:23:50,900 Maent yn rhy nid oedd yn mwynhau gorfod teipio gorchmynion cymharol hir, dirgel, 485 00:23:50,900 --> 00:23:52,200 heb sôn am eu cofio. 486 00:23:52,200 --> 00:23:56,070 Ac felly bodau dynol ger ein bron wedi gwneud rhaglenni eraill sy'n ei gwneud yn haws 487 00:23:56,070 --> 00:23:57,670 i lunio eich meddalwedd. 488 00:23:57,670 --> 00:24:01,609 >> Ac, yn wir, un fath Gelwir rhaglen Gwneud. 489 00:24:01,609 --> 00:24:03,150 Felly, yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hyn. 490 00:24:03,150 --> 00:24:05,691 Rydw i'n mynd i dadwneud popeth rwy'n yn unig oedd yn y ffordd ganlynol. 491 00:24:05,691 --> 00:24:07,690 Gadewch i mi deipio LS. 492 00:24:07,690 --> 00:24:10,980 A byddwch yn sylwi tri things-- a.out, ac yn seren, helo 493 00:24:10,980 --> 00:24:12,810 a seren, a hello.c. 494 00:24:12,810 --> 00:24:14,730 Gobeithio, dylai hyn fod ychydig yn haws, 495 00:24:14,730 --> 00:24:18,220 i'r graddau gynharach roedd nid oes dim yn lle gwaith hwn. 496 00:24:18,220 --> 00:24:21,240 Nid oedd unrhyw beth fy mod wedi greu nes ni ddechrau dosbarth. 497 00:24:21,240 --> 00:24:22,840 >> Ac yr wyf yn creu hello.c. 498 00:24:22,840 --> 00:24:24,544 yna mi a luniwyd ef, a'i alw'n a.out. 499 00:24:24,544 --> 00:24:27,460 Ac yna yr wyf luniwyd eto ychydig yn yn wahanol a'i alw'n helo. 500 00:24:27,460 --> 00:24:32,830 Felly, yr wyf wedi tair ffeil yn y cyfeiriadur hwn, yn y ffolder hwn a elwir Workspace. 501 00:24:32,830 --> 00:24:35,005 Yn awr, gallaf weld hynny hefyd os wyf yn chwyddo allan mewn gwirionedd. 502 00:24:35,005 --> 00:24:37,530 >> Os byddaf yn chwyddo allan yma ac edrych ar y llaw dde uchaf 503 00:24:37,530 --> 00:24:39,940 cornel, fel yr addawyd y chwith ochr eich sgrîn 504 00:24:39,940 --> 00:24:42,990 mae bob amser yn mynd i ddangos i chi beth sydd yn eich cyfrif, beth 505 00:24:42,990 --> 00:24:44,790 tu mewn IDE CS50. 506 00:24:44,790 --> 00:24:46,680 Ac mae tair ffeil yno. 507 00:24:46,680 --> 00:24:49,070 >> Felly, yr wyf yn awyddus i gael gwared o a.out a helo. 508 00:24:49,070 --> 00:24:51,275 Ac wrth i chi efallai dychmygwch reddfol, yr ydych 509 00:24:51,275 --> 00:24:53,400 Gallai didoli o reolaeth cliciwch neu cliciwch i'r dde ar hyn. 510 00:24:53,400 --> 00:24:54,590 Ac mae bwydlen bach yma pops i fyny. 511 00:24:54,590 --> 00:24:57,170 Gallwch lawrlwytho y ffeil, rhedeg iddo, rhagolwg ohono, adnewyddu, ail-enwi, 512 00:24:57,170 --> 00:24:57,700 neu beth i beidio. 513 00:24:57,700 --> 00:25:00,260 >> A gallai Fi jyst ddilea, ac y byddai'n mynd i ffwrdd. 514 00:25:00,260 --> 00:25:05,260 Ond gadewch i ni wneud pethau gyda meistrolaeth lein am y tro, er mwyn cael gyfforddus 515 00:25:05,260 --> 00:25:07,010 gyda hyn, ac yn gwneud y canlynol. 516 00:25:07,010 --> 00:25:12,345 Rydw i'n mynd i fynd yn ei flaen a chael gwared a.out drwy deipio llythrennol rma.out. 517 00:25:12,345 --> 00:25:14,890 Mae'n troi allan, mae'r gorchymyn i cael gwared neu ddileu rhywbeth, 518 00:25:14,890 --> 00:25:16,280 Nid yw cael gwared ar neu ddileu. 519 00:25:16,280 --> 00:25:21,260 >> Mae'n fwy cryno RM, dim ond i arbed chi rai keystrokes, a daro Chofnoda. 520 00:25:21,260 --> 00:25:24,707 Nawr rydym yn mynd i fod braidd yn gryptig gwared a.out ffeil rheolaidd. 521 00:25:24,707 --> 00:25:27,040 Dydw i ddim yn gwybod beth yw Byddai ffeil afreolaidd yn eto. 522 00:25:27,040 --> 00:25:28,660 Ond yr wyf yn dymuno symud oddi yno. 523 00:25:28,660 --> 00:25:30,150 >> Felly, yr wyf i'n mynd i deipio y am ie. 524 00:25:30,150 --> 00:25:31,940 Neu gallwn i ei deipio allan, a tharo Enter. 525 00:25:31,940 --> 00:25:33,440 Ac, unwaith eto, nid oes dim yn ymddangos i ddigwydd. 526 00:25:33,440 --> 00:25:35,840 Ond dyna, yn gyffredinol, yn beth da. 527 00:25:35,840 --> 00:25:40,490 >> Os byddaf yn teipio LS y tro hwn, beth ddylwn i ei weld? 528 00:25:40,490 --> 00:25:44,930 Gobeithio, dim ond helo a hello.c. 529 00:25:44,930 --> 00:25:47,286 Yn awr, wrth fynd heibio, wnewch chi helpu sylwi ar seren hon, seren, 530 00:25:47,286 --> 00:25:48,660 dyna ar ddiwedd fy rhaglenni. 531 00:25:48,660 --> 00:25:50,201 Ac maent hefyd yn dangos i fyny mewn gwyrdd. 532 00:25:50,201 --> 00:25:53,970 Mae hynny yn unig yw ffordd CS50 IDE yn ohonoch cluing i mewn i'r ffaith 533 00:25:53,970 --> 00:25:55,280 nad yw hynny'n cod ffynhonnell. 534 00:25:55,280 --> 00:25:58,880 Dyna weithredadwy, mae runnable rhaglen y gallwch redeg mewn gwirionedd 535 00:25:58,880 --> 00:26:01,020 drwy wneud slaes dot, ac yna mae'n enw. 536 00:26:01,020 --> 00:26:05,860 >> Yn awr, gadewch i mi fynd yn ei flaen a chael gwared hwn, rm helo, Mewnbynnu, cael gwared rheolaidd 537 00:26:05,860 --> 00:26:08,010 ffeil helo, ie. 538 00:26:08,010 --> 00:26:11,180 Ac yn awr os wyf yn teipio LS, rydym yn ôl i hello.c. 539 00:26:11,180 --> 00:26:13,917 Ceisiwch beidio â dileu eich cod ffynhonnell gwirioneddol. 540 00:26:13,917 --> 00:26:16,250 Hyd yn oed er bod nodweddion hadeiladu i mewn IDE CS50 lle 541 00:26:16,250 --> 00:26:19,870 gallwch fynd drwy eich hanes adolygu ac ailddirwyn mewn amser os ydych yn ddamweiniol 542 00:26:19,870 --> 00:26:23,660 dileu rhywbeth, yn gwneud yn ymwybodol yn unol ysgogiadau hyn ydw neu nac ydw, 543 00:26:23,660 --> 00:26:25,381 o'r hyn yr ydych mewn gwirionedd am ei wneud. 544 00:26:25,381 --> 00:26:27,380 Ac os af i fyny i ben chwith gornel yma, 545 00:26:27,380 --> 00:26:30,696 cyfan sydd ar ôl yw hello.c. 546 00:26:30,696 --> 00:26:32,570 Felly mae tusw o gorchmynion eraill sy'n eich 547 00:26:32,570 --> 00:26:37,550 Gall gweithredu yn y byd o Linux, un ohonynt yw, unwaith eto, Gwneud. 548 00:26:37,550 --> 00:26:40,180 Ac rydym yn mynd i Wneud fy rhaglen yn awr fel a ganlyn. 549 00:26:40,180 --> 00:26:43,270 >> Yn hytrach na gwneud chlang, yn hytrach na gwneud chlang-o, 550 00:26:43,270 --> 00:26:45,860 Rydw i'n mynd i wneud dim ond teipio yn llythrennol, yn gwneud helo. 551 00:26:45,860 --> 00:26:49,630 Ac yn awr yn sylwi, yr wyf yn Nid yw teipio yn gwneud hello.c. 552 00:26:49,630 --> 00:26:50,910 Yr wyf yn teipio gwneud helo. 553 00:26:50,910 --> 00:26:54,840 >> Ac mae'r rhaglen hon Gwnewch hynny dod gyda IDE CS50, ac yn fwy 554 00:26:54,840 --> 00:26:57,090 yn gyffredinol gyda Linux, yn rhaglen sy'n 555 00:26:57,090 --> 00:26:59,120 mynd i wneud rhaglen o'r enw Helo. 556 00:26:59,120 --> 00:27:03,680 Ac mae'n mynd i gymryd yn ganiataol, gan gonfensiwn, os gall y rhaglen hon yn cael ei wneud, 557 00:27:03,680 --> 00:27:09,030 mae'n mynd i gael eu gwneud o ffynhonnell file cod yn dod i ben mewn dot c, hello.c. 558 00:27:09,030 --> 00:27:12,210 >> Felly os wyf daro Chofnoda awr, yr hysbysiad hwnnw y gorchymyn sy'n cael ei gyflawni 559 00:27:12,210 --> 00:27:14,340 mewn gwirionedd hyd yn oed mwy o amser cyn nag o'r blaen. 560 00:27:14,340 --> 00:27:16,670 A dyna oherwydd ein bod i wedi IDE CS50 ragosodedig i gael 561 00:27:16,670 --> 00:27:19,878 rhai nodweddion ychwanegol a adeiladwyd yn y Nid oes angen dim ond eto rydym, ond yn fuan fydd. 562 00:27:19,878 --> 00:27:23,470 Ond y peth allweddol i wireddu bellach mae gen i raglen Helo. 563 00:27:23,470 --> 00:27:27,080 >> Os byddaf yn teipio LS eto, yr wyf yn cael rhaglen helo. 564 00:27:27,080 --> 00:27:32,070 A gallaf rhedeg gyda dot slaes a.out, na, 565 00:27:32,070 --> 00:27:35,590 oherwydd bod y pwynt cyfan o hwn ymarfer yn dot helo slaes. 566 00:27:35,590 --> 00:27:38,089 Ac yn awr yr wyf wedi fy rhaglen helo byd. 567 00:27:38,089 --> 00:27:39,880 Felly symud ymlaen, rydym yn unig bron bob amser 568 00:27:39,880 --> 00:27:42,088 mynd i lunio ein rhaglenni gan ddefnyddio'r Gwneud gorchymyn. 569 00:27:42,088 --> 00:27:45,300 Ac yna rydym yn mynd i redeg iddynt gan dot slaes, ac enw'r rhaglen. 570 00:27:45,300 --> 00:27:49,610 Ond yn sylweddoli beth Gwnewch yn ei wneud ar gyfer chi, yw nad yw'n ei hun yn compiler. 571 00:27:49,610 --> 00:27:53,310 Mae'n dim ond rhaglen cyfleustra sy'n gwybod sut i sbarduno casglwr 572 00:27:53,310 --> 00:27:56,470 i redeg fel y gallwch chi eich hun yn ei ddefnyddio. 573 00:27:56,470 --> 00:28:00,220 >> Pa gorchmynion eraill yn bodoli yn Linux, ac yn ei dro y CS50 DRhA? 574 00:28:00,220 --> 00:28:03,107 Byddwn yn fuan yn gweld bod yna gorchymyn CD, Cyfeiriadur Newid. 575 00:28:03,107 --> 00:28:05,190 Mae hyn yn caniatáu i chi o fewn eich rhyngwyneb llinell orchymyn 576 00:28:05,190 --> 00:28:07,610 i symud ymlaen, ac yn ôl, ac agor ffolderi gwahanol 577 00:28:07,610 --> 00:28:08,860 heb ddefnyddio'ch llygoden. 578 00:28:08,860 --> 00:28:12,470 >> LS gwelsom, sy'n sefyll am y rhestr y ffeiliau yn y cyfeiriadur cyfredol. 579 00:28:12,470 --> 00:28:14,650 Gwnewch Dir, gallwch yn ôl pob tebyg yn dechrau casglu 580 00:28:14,650 --> 00:28:18,150 beth mae'r rhain yn ei olygu now-- gwneud cyfeiriadur, os ydych am i greu ffolder. 581 00:28:18,150 --> 00:28:21,270 RM i dynnu, RM Dir gyfer cael gwared directory-- ac mae'r rhain, 582 00:28:21,270 --> 00:28:24,160 unwaith eto, yw'r llinell orchymyn cyfwerth o'r hyn yr ydych 583 00:28:24,160 --> 00:28:26,945 Gallai wneud yn CS50 IDE gyda'ch llygoden. 584 00:28:26,945 --> 00:28:28,820 Ond byddwch yn dod o hyd yn fuan hynny weithiau dim ond 585 00:28:28,820 --> 00:28:30,610 yn llawer cyflymach i'w wneud pethau gyda bysellfwrdd, 586 00:28:30,610 --> 00:28:33,690 ac yn y pen draw yn llawer mwy pwerus. 587 00:28:33,690 --> 00:28:36,440 >> Ond mae'n anodd dadlau bod unrhyw beth yr ydym wedi bod yn gwneud hyd yn hyn 588 00:28:36,440 --> 00:28:39,990 yw'r cyfan sydd pwerus, pan fydd yr holl rydym wedi bod yn ei ddweud yw, helo byd. 589 00:28:39,990 --> 00:28:43,740 Ac, yn wir, yr wyf yn hardcoded y geiriau helo byd i mewn i fy rhaglen. 590 00:28:43,740 --> 00:28:45,530 Nid oes ddynamiaeth eto. 591 00:28:45,530 --> 00:28:49,320 Scratch yn gorchymyn o faint yn fwy diddorol yr wythnos diwethaf. 592 00:28:49,320 --> 00:28:51,220 >> Ac felly gadewch i ni fynd yno. 593 00:28:51,220 --> 00:28:55,310 Gadewch i ni gymryd cam tuag at hynny trwy ffordd o rai o'r swyddogaethau hyn. 594 00:28:55,310 --> 00:28:59,470 Felly, nid yn unig y mae C yn dod gyda printf, a sypiau o swyddogaethau eraill 595 00:28:59,470 --> 00:29:01,850 rhai ohonynt byddwn yn gweld dros gyfnod o amser, nid yw'n 596 00:29:01,850 --> 00:29:05,760 gwneud y cyfan yn hawdd y dde allan y porth o ran cael mewnbwn defnyddwyr. 597 00:29:05,760 --> 00:29:08,140 >> Yn wir, un o'r gwendidau ieithoedd fel C, 598 00:29:08,140 --> 00:29:10,140 a hyd yn oed Java ac eto eraill, yw nad yw'n gwneud 599 00:29:10,140 --> 00:29:15,860 ei gwneud yn hawdd i ychydig gael pethau fel cyfanrifau gan ddefnyddwyr, neu llinynnau, geiriau, 600 00:29:15,860 --> 00:29:19,970 ac ymadroddion, gadael i bethau ei ben ei hun fel Gwerthoedd pwynt, neu rhifau real fel y bo'r angen 601 00:29:19,970 --> 00:29:23,240 gyda phwyntiau degol, ac yn wir rhif o hyd, gan y byddwn yn fuan yn gweld. 602 00:29:23,240 --> 00:29:27,000 Felly rhestr hon o swyddogaethau yma, mae'r rhain yn debyg darnau pos Scratch arall 603 00:29:27,000 --> 00:29:31,090 ein bod wedi rhag-osod yn CS50 IDE y byddwn yn defnyddio am ychydig wythnosau 604 00:29:31,090 --> 00:29:34,010 fel olwynion hyfforddiant o ryw fath, a yn y pen draw yn mynd â nhw i ffwrdd, ac yn edrych 605 00:29:34,010 --> 00:29:37,210 o dan y cwfl, efallai, yn sut y pethau hyn yn cael eu gweithredu. 606 00:29:37,210 --> 00:29:40,460 >> Ond i wneud hyn, gadewch i ni mewn gwirionedd yn ysgrifennu rhaglen. 607 00:29:40,460 --> 00:29:41,770 Gadewch i mi fynd yn ei flaen yn awr. 608 00:29:41,770 --> 00:29:44,750 Ac yr wyf i'n mynd i greu newydd ffeilio drwy glicio bach hwn a mwy, 609 00:29:44,750 --> 00:29:45,970 a chlicio Ffeil Newydd. 610 00:29:45,970 --> 00:29:49,250 >> Rydw i'n mynd i achub y nesaf un fel, gadewch i ni ddweud, string.c, 611 00:29:49,250 --> 00:29:50,750 oherwydd yr wyf am i chwarae gyda llinynnau. 612 00:29:50,750 --> 00:29:53,990 A llinyn yn C yn unig dilyniant o gymeriadau. 613 00:29:53,990 --> 00:29:56,090 Felly nawr gadewch i ni fynd yn ei flaen a gwneud y canlynol. 614 00:29:56,090 --> 00:30:01,204 >> Cynhwyswch safonol IO.h-- a mae'n troi allan IO safonol, 615 00:30:01,204 --> 00:30:03,360 IO yn unig yn golygu mewnbwn ac allbwn. 616 00:30:03,360 --> 00:30:05,920 Felly, mae'n ymddangos bod y llinell hon dyma beth 617 00:30:05,920 --> 00:30:08,140 yn y ni cyfagos i ddefnyddio printf. 618 00:30:08,140 --> 00:30:10,410 Printf, wrth gwrs, yn cynhyrchu allbwn. 619 00:30:10,410 --> 00:30:15,000 Felly, er mwyn defnyddio printf, mae'n troi allan mae'n rhaid i chi gael y llinell hon o god 620 00:30:15,000 --> 00:30:16,040 ar frig eich ffeil. 621 00:30:16,040 --> 00:30:18,456 >> A byddwn yn dod yn ôl at yr hyn sydd wir yn ei olygu cyn hir. 622 00:30:18,456 --> 00:30:20,400 Mae'n ymddangos bod yn unrhyw raglen C i mi ysgrifennu, 623 00:30:20,400 --> 00:30:23,640 Mae gen i ddechrau gyda cod sy'n edrych fel hyn. 624 00:30:23,640 --> 00:30:26,860 A byddwch yn sylwi CS50 IDE, a datblygiad integredig eraill 625 00:30:26,860 --> 00:30:30,050 amgylcheddau ei hoffi, yn mynd i roi cynnig ar orau 626 00:30:30,050 --> 00:30:31,780 gallant i orffen eich meddwl. 627 00:30:31,780 --> 00:30:35,930 Yn wir, funud yn ôl os byddaf yn dadwneud yr hyn yr wyf yn unig oedd, yr wyf yn daro Chofnoda. 628 00:30:35,930 --> 00:30:39,160 >> yna yr wyf yn taro cyrliog agored Brace, daro Chofnoda eto. 629 00:30:39,160 --> 00:30:40,430 Ac mae'n orffen fy meddwl. 630 00:30:40,430 --> 00:30:45,140 Mae'n rhoi i mi llinell newydd, mewnoli dim llai am resymau arddull neis byddwn yn gweld. 631 00:30:45,140 --> 00:30:48,559 Ac yna rhoddodd i mi yn awtomatig bod Brace cyrliog i orffen fy meddwl. 632 00:30:48,559 --> 00:30:50,600 Yn awr, y mae'n ei wneud yw bob amser yn ddyfalu beth rydych am ei wneud. 633 00:30:50,600 --> 00:30:53,620 Ond i raddau helaeth, mae'n ei wneud arbed keystrokes chi. 634 00:30:53,620 --> 00:30:59,560 Felly funud yn ôl, cynhaliwyd program-- hwn helo, byd, ac yna llunio iddo, 635 00:30:59,560 --> 00:31:00,460 ac yna rhedodd hi. 636 00:31:00,460 --> 00:31:01,867 Ond does dim ddynamiaeth yma. 637 00:31:01,867 --> 00:31:03,700 Beth os ydym yn awyddus i wneud rhywbeth gwahanol? 638 00:31:03,700 --> 00:31:07,630 Wel, beth os oeddwn i eisiau mewn gwirionedd cael llinyn gan y defnyddiwr? 639 00:31:07,630 --> 00:31:11,250 Rydw i'n mynd i ddefnyddio darn pos Gelwir union that-- cael llinyn. 640 00:31:11,250 --> 00:31:15,860 >> Troi allan yn C pan nad ydych chi eisiau i roi mewnbwn i ddarn pos, 641 00:31:15,860 --> 00:31:19,360 neu yn fwy priodol i swyddogaeth, rydych yn llythrennol dim ond gwneud parenthesis agored, 642 00:31:19,360 --> 00:31:20,430 parenthesis cau. 643 00:31:20,430 --> 00:31:25,540 Felly mae'n fel pe yna dim blwch gwyn i deipio i mewn. 644 00:31:25,540 --> 00:31:27,720 Mae'r bloc dweud eu dweud cyn Roedd gan blwch bach gwyn. 645 00:31:27,720 --> 00:31:29,660 Nid oes gennym y blwch gwyn yn awr. 646 00:31:29,660 --> 00:31:33,310 >> Ond pan alwaf get llinyn, yr wyf yn eisiau rhoi canlyniad yn rhywle. 647 00:31:33,310 --> 00:31:37,680 Felly patrwm cyffredin iawn yn C yw yn galw swyddogaeth, fel get llinyn yma, 648 00:31:37,680 --> 00:31:41,070 ac yna'i storio ei werth dychwelyd. 649 00:31:41,070 --> 00:31:44,450 Mae'n y canlyniad ei ymdrech yn rhywbeth. 650 00:31:44,450 --> 00:31:47,630 >> A beth yw'r adeiladu mewn rhaglenni, 651 00:31:47,630 --> 00:31:53,450 boed yn Scratch neu awr C, ein bod yn yn gallu defnyddio i mewn gwirionedd storio rhywbeth? 652 00:31:53,450 --> 00:31:55,990 Alw yn newidiol, dde? 653 00:31:55,990 --> 00:32:00,320 Ac yn Scratch, nid ydym yn ei wneud mewn gwirionedd gofal yr hyn oedd yn mynd mewn newidynnau. 654 00:32:00,320 --> 00:32:02,170 >> Ond yn yr achos hwn, rydym yn ei wneud mewn gwirionedd. 655 00:32:02,170 --> 00:32:03,719 Rydw i'n mynd i ddweud llinyn. 656 00:32:03,719 --> 00:32:05,510 Ac yna gallwn i alw unrhyw beth hwn rwyf eisiau. 657 00:32:05,510 --> 00:32:08,340 Rydw i'n mynd i alw enw, yn cael cael llinyn. 658 00:32:08,340 --> 00:32:10,250 >> Ac yn awr hyd yn oed os ydych chi'n ychydig o newydd i hyn, 659 00:32:10,250 --> 00:32:11,984 yn sylwi fy mod yn ddiffygiol rhai manylion. 660 00:32:11,984 --> 00:32:13,150 Im 'anghofio hanner colon. 661 00:32:13,150 --> 00:32:14,400 Mae angen i mi orffen meddwl hwn. 662 00:32:14,400 --> 00:32:17,480 Felly, yr wyf i'n mynd i symud fy cyrchwr, a tharo hanner colon yno. 663 00:32:17,480 --> 00:32:19,130 A beth ydw i jyst wneud? 664 00:32:19,130 --> 00:32:21,440 Yn y llinell hon o god, rhif 5 ar hyn o bryd, 665 00:32:21,440 --> 00:32:23,799 Rwy'n galw get llinyn heb unrhyw fewnbynnau. 666 00:32:23,799 --> 00:32:26,090 Felly does dim gwyn bach blwch fel y bloc Save wedi. 667 00:32:26,090 --> 00:32:28,590 >> Im 'jyst yn dweud, hey, cyfrifiadur, mynd i mi llinyn. 668 00:32:28,590 --> 00:32:31,390 Nid yw'r hafalnod yw 'n sylweddol arwydd gyfartal, fel y cyfryw. 669 00:32:31,390 --> 00:32:33,790 Mae'n y aseiniad gweithredydd, sy'n golygu, 670 00:32:33,790 --> 00:32:37,860 hey, cyfrifiadur, symud y gwerth o'r dde dros y chwith. 671 00:32:37,860 --> 00:32:40,480 Ac yn y chwith, mae gennyf y canlynol. 672 00:32:40,480 --> 00:32:43,580 >> Hey, cyfrifiadur, yn rhoi i mi string-- dilyniant o gymeriadau. 673 00:32:43,580 --> 00:32:45,637 A galw y llinyn Enw. 674 00:32:45,637 --> 00:32:47,220 A pheidiwch hyd yn oed yn rhaid i mi ei alw'n Enw. 675 00:32:47,220 --> 00:32:49,970 >> gallai wyf yn ei alw, yn gonfensiynol, rhywbeth fel S, 676 00:32:49,970 --> 00:32:52,900 yn debyg iawn i ni ei ddefnyddio i fi ffoniwch y newidyn i. 677 00:32:52,900 --> 00:32:54,829 Ond yn awr mae angen i mi wneud rhywbeth ag ef. 678 00:32:54,829 --> 00:32:57,370 Byddai'n eithaf gwirion i'w ceisiwch gasglu'r cod hwn, yn rhedeg 679 00:32:57,370 --> 00:32:59,410 rhaglen hon, er bod Im 'yn cael llinyn, 680 00:32:59,410 --> 00:33:01,580 am ei fod yn dal i fod yn unig mynd i ddweud helo byd. 681 00:33:01,580 --> 00:33:06,140 >> Ond beth os wyf am newid hyn. 682 00:33:06,140 --> 00:33:07,940 Pam nad ydw i'n gwneud hyn? 683 00:33:07,940 --> 00:33:11,632 Canran s, atalnod s. 684 00:33:11,632 --> 00:33:13,090 Ac mae hyn yn ychydig yn cryptig o hyd. 685 00:33:13,090 --> 00:33:15,560 >> Felly gadewch i mi wneud fy newidynnau yn fwy clir. 686 00:33:15,560 --> 00:33:17,510 Gadewch i mi enwi'r hwn Enw amrywiol. 687 00:33:17,510 --> 00:33:20,230 A gadewch i ni weld os na allwn tynnu coes ar wahân beth sy'n digwydd yma. 688 00:33:20,230 --> 00:33:22,770 >> Felly, ar linell bump, Im 'yn cael llinyn. 689 00:33:22,770 --> 00:33:25,620 A dwi'n storio y llinyn, beth bynnag yw'r defnyddiwr wedi teipio mewn 690 00:33:25,620 --> 00:33:28,430 yn ôl ei bysellfwrdd, mewn newidyn a elwir Enw. 691 00:33:28,430 --> 00:33:30,590 Ac mae'n troi allan y printf yn nid dim ond 692 00:33:30,590 --> 00:33:34,220 cymryd un ddadl yn ddwbl dyfyniadau, un mewnbwn mewn dyfynodau dwbl. 693 00:33:34,220 --> 00:33:39,100 >> Gall gymryd dau, neu dri, neu fwy, megis bod yr ail, neu'r trydydd, neu'r pedwerydd, 694 00:33:39,100 --> 00:33:42,320 i gyd yn enwau newidynnau, neu werthoedd yn benodol, 695 00:33:42,320 --> 00:33:48,610 eich bod am dopio i mewn, ddeinamig, y llinyn mewn dyfynodau. 696 00:33:48,610 --> 00:33:52,110 Mewn geiriau eraill, yr hyn byddai'n o'i le ar hyn? 697 00:33:52,110 --> 00:33:57,920 Os wyf newydd ei ddweud helo enw, slaes n, arbed fy ffeil, a luniwyd fy cod, 698 00:33:57,920 --> 00:34:01,660 ac yn rhedeg hyn, beth fyddai'n digwydd? 699 00:34:01,660 --> 00:34:05,139 >> 'I' jyst yn mynd i ddweud, helo enw, yn llythrennol N-A-M-E, 700 00:34:05,139 --> 00:34:07,900 sydd yn fath o dwp oherwydd mae'n wahanol i byd. 701 00:34:07,900 --> 00:34:10,400 Felly unrhyw beth mewn dyfynodau yn beth llythrennol yn cael ei argraffu. 702 00:34:10,400 --> 00:34:12,520 Felly os wyf am gael yn placeholder yno, 703 00:34:12,520 --> 00:34:14,422 Fi 'n weithredol angen i chi ddefnyddio rhywfaint o gystrawen arbennig. 704 00:34:14,422 --> 00:34:17,380 Ac mae'n troi allan os ydych yn darllen y dogfennau ar gyfer y swyddogaeth printf, 705 00:34:17,380 --> 00:34:21,320 bydd yn dweud eich bod yn os ydych yn defnyddio y cant s, 706 00:34:21,320 --> 00:34:23,920 gallwch amnewid gwerth fel a ganlyn. 707 00:34:23,920 --> 00:34:27,190 >> Ar ôl coma ar ôl hynny dyfynnwch dwbl, byddwch yn syml 708 00:34:27,190 --> 00:34:29,179 ysgrifennwch enw'r newidyn yr ydych am 709 00:34:29,179 --> 00:34:33,790 i blygio mewn i fformat sy'n cod, neu fformat rhagnodwr, 710 00:34:33,790 --> 00:34:35,469 y cant ar gyfer llinynnau. 711 00:34:35,469 --> 00:34:39,190 Ac yn awr os ydw i wedi achub fy ffeil, Yr wyf yn mynd yn ôl i lawr at fy terfynol. 712 00:34:39,190 --> 00:34:42,870 Ac yr wyf yn teipio Gwneud Llinynnol, oherwydd, unwaith eto, enw'r hwn 713 00:34:42,870 --> 00:34:45,510 ffeil sy'n Dewisais blaen yn string.c. 714 00:34:45,510 --> 00:34:48,510 >> Felly, yr wyf i'n mynd i ddweud Wneud Llinynnol, rhowch. 715 00:34:48,510 --> 00:34:51,550 O fy daioni, edrych ar yr holl camgymeriadau a rydym wedi ei wneud yn barod. 716 00:34:51,550 --> 00:34:55,540 Ac mae hyn yw-- beth, mae hyn yn wir fel, saith rhaglen chwe llinell? 717 00:34:55,540 --> 00:34:57,790 Felly, dyma lle iawn o fewn ei allu yn gyflym cael llethol. 718 00:34:57,790 --> 00:35:00,890 >> Mae'r ffenestr terfynell yn awr yn unig regurgitated 719 00:35:00,890 --> 00:35:03,230 nifer fawr o negeseuon gwall. 720 00:35:03,230 --> 00:35:07,560 Siawns, nid wyf yn cael mwy gwall negeseuon na mi linellau o god. 721 00:35:07,560 --> 00:35:08,680 Felly beth sy'n mynd ymlaen? 722 00:35:08,680 --> 00:35:10,920 >> Wel, mae'r strategaeth orau i wneud unrhyw adeg rydych 723 00:35:10,920 --> 00:35:13,710 yn dod ar draws yn llethol rhestr o wallau fel 'na, 724 00:35:13,710 --> 00:35:16,690 yn sgrolio yn ôl, yn edrych am y gorchymyn 'ch jyst yn rhedeg, a oedd yn fy achos 725 00:35:16,690 --> 00:35:18,020 yw gwneud llinyn. 726 00:35:18,020 --> 00:35:21,630 Edrychwch ar yr hyn yn gwneud y gwnaeth, a dyna sy'n hir chlang gorchymyn, dim llawer mawr yno. 727 00:35:21,630 --> 00:35:22,950 >> Ond mae'r coch yn ddrwg. 728 00:35:22,950 --> 00:35:24,750 Gwyrdd yn ceisio bod yn addfwyn ac yn ddefnyddiol. 729 00:35:24,750 --> 00:35:26,140 Ond mae'n dal i fod yn ddrwg, yn yr achos hwn. 730 00:35:26,140 --> 00:35:27,510 Ond ble mae'n ddrwg? 731 00:35:27,510 --> 00:35:31,450 >> String.c, llinell pump, cymeriad pump. 732 00:35:31,450 --> 00:35:32,930 Felly, mae hyn yn unig yw confensiwn cyffredin. 733 00:35:32,930 --> 00:35:36,060 rhywbeth colon Rhywbeth yn golygu rhif llinell a rhif chymeriad. 734 00:35:36,060 --> 00:35:41,080 Gwall, defnyddio heb eu datgan llinyn dynodwr. 735 00:35:41,080 --> 00:35:42,900 A oeddech yn meddwl safonol mewn? 736 00:35:42,900 --> 00:35:45,530 >> Felly, yn anffodus, chlang yn ceisio bod o gymorth. 737 00:35:45,530 --> 00:35:46,850 Ond ei fod yn anghywir, yn yr achos hwn. 738 00:35:46,850 --> 00:35:49,350 Na, chlang, doeddwn i ddim yn ei olygu IO safonol. 739 00:35:49,350 --> 00:35:51,070 Yr wyf yn golygu bod ar-lein un, ie. 740 00:35:51,070 --> 00:35:53,420 >> Ond mae llinell bump yn yr un yma fan hyn. 741 00:35:53,420 --> 00:35:57,040 Ac nid chlang yn deall S-T-R-I-N-G. 742 00:35:57,040 --> 00:36:01,490 Mae'n dynodwr heb ei ddatgan, a gair 'i jyst erioed wedi ei weld o'r blaen. 743 00:36:01,490 --> 00:36:05,730 A dyna oherwydd bod C, yr iaith rydym yn ysgrifennu cod yn iawn yn awr, 744 00:36:05,730 --> 00:36:08,070 Nid oes newidynnau a elwir llinynnau. 745 00:36:08,070 --> 00:36:11,380 >> Nid yw, yn ddiofyn, cefnogaeth rywbeth o'r enw llinyn. 746 00:36:11,380 --> 00:36:16,750 Dyna ddarn CS50 o jargon, ond gonfensiynol iawn. 747 00:36:16,750 --> 00:36:18,600 Ond gallaf atgyweiria hon fel a ganlyn. 748 00:36:18,600 --> 00:36:22,090 >> Os byddaf yn ychwanegu un llinell o god i ben y rhaglen hon, 749 00:36:22,090 --> 00:36:27,890 cynnwys CS50.h, sef ffeil arall rhywle y tu mewn o CS50 IDE, rhywle 750 00:36:27,890 --> 00:36:30,820 ar y disg caled, fel petai, y system weithredu Ubuntu 751 00:36:30,820 --> 00:36:33,590 fy mod yn rhedeg, bod yw'r ffeil sy'n 752 00:36:33,590 --> 00:36:38,740 mynd i ddysgu'r gweithredu system beth llinyn yw, dim ond 753 00:36:38,740 --> 00:36:41,930 fel io.h safonol yw y ffeil yn y system weithredu sy'n 754 00:36:41,930 --> 00:36:44,430 mynd i ddysgu ei beth printf yw. 755 00:36:44,430 --> 00:36:46,810 >> Yn wir, byddem wedi gotten neges debyg iawn 756 00:36:46,810 --> 00:36:50,600 os IO wedi cyfaddef safonol IO.h a ceisio defnyddio printf. 757 00:36:50,600 --> 00:36:53,632 Felly, yr wyf i'n mynd i fynd yn ei flaen a dim ond cymryd Rheoli L i glirio fy sgrin. 758 00:36:53,632 --> 00:36:56,340 Neu gallwch deipio glir ac y bydd yn dim ond clirio'r ffenestr terfynell. 759 00:36:56,340 --> 00:36:58,020 Ond gallwch dal i sgrolio yn ôl mewn amser. 760 00:36:58,020 --> 00:37:01,100 >> Ac yr wyf i'n mynd i ailgynnal Gwneud Llinynnol. 761 00:37:01,100 --> 00:37:03,660 Croeswch fy mysedd y tro hwn, Enter. 762 00:37:03,660 --> 00:37:05,380 O fy Nuw, roedd yn gweithio. 763 00:37:05,380 --> 00:37:09,280 ei fod yn dangos i mi gorchymyn cryptig hir dyna beth Gwnewch gynhyrchir drwy chlang, 764 00:37:09,280 --> 00:37:10,460 ond dim negeseuon gwall. 765 00:37:10,460 --> 00:37:12,460 Felly sylweddoli, er bod efallai y byddwch yn ei gael yn gyfan gwbl 766 00:37:12,460 --> 00:37:14,480 llethu gyda nifer o negeseuon gwall, 767 00:37:14,480 --> 00:37:17,540 mae'n bosibl y bydd yn fod hwn rhaeadru blino effaith, lle nad chlang ddim yn deall 768 00:37:17,540 --> 00:37:19,620 un peth, sy'n golygu ei fod wedyn ddim yn deall y gair nesaf, 769 00:37:19,620 --> 00:37:20,560 neu y llinell nesaf. 770 00:37:20,560 --> 00:37:22,850 Ac felly 'i jyst yn tagu ar eich cod. 771 00:37:22,850 --> 00:37:24,440 Ond efallai y atgyweiria fod yn syml. 772 00:37:24,440 --> 00:37:27,822 Ac felly bob amser yn canolbwyntio ar y llinell gyntaf iawn o allbwn. 773 00:37:27,822 --> 00:37:29,530 Ac os nad ydych yn ei wneud ei ddeall, dim ond yn edrych 774 00:37:29,530 --> 00:37:32,480 am eiriau allweddol a allai fod yn cliwiau, a rhif y llinell, 775 00:37:32,480 --> 00:37:34,650 a chymeriad, lle a allai fod camgymeriad fod. 776 00:37:34,650 --> 00:37:40,328 >> Nawr, gadewch i mi fynd yn ei flaen a theipiwch dot slaes, llinyn, rhowch. 777 00:37:40,328 --> 00:37:44,340 Hm, nid yw'n dweud helo unrhyw beth. 778 00:37:44,340 --> 00:37:46,210 Pam? 779 00:37:46,210 --> 00:37:48,170 Wel, galw i gof, ble mae'n rhedeg? 780 00:37:48,170 --> 00:37:53,730 >> Mae'n debyg ei sownd ar hyn o bryd mewn cylch, os mynnwch, ar-lein chwech, 781 00:37:53,730 --> 00:37:56,950 oherwydd Get Llinynnol trwy ddylunio, ysgrifennwyd gan staff y CS50, 782 00:37:56,950 --> 00:38:00,350 a olygir yn llythrennol i ddim ond eistedd yna aros, ac yn aros, 783 00:38:00,350 --> 00:38:01,850 ac yn aros am linyn. 784 00:38:01,850 --> 00:38:03,792 Yr unig beth rydym yn ei olygu wrth linyn yw mewnbwn dynol. 785 00:38:03,792 --> 00:38:04,500 Felly, rydych yn gwybod beth? 786 00:38:04,500 --> 00:38:05,166 Gadewch i mi fynd yn ei flaen. 787 00:38:05,166 --> 00:38:08,704 A dim ond ar fympwy, gadewch i mi teipio fy enw, David, nodwch. 788 00:38:08,704 --> 00:38:10,120 Nawr mae gen i raglen fwy deinamig. 789 00:38:10,120 --> 00:38:11,240 Dywedodd, helo David. 790 00:38:11,240 --> 00:38:16,280 >> Os byddaf yn mynd yn ei flaen ac yn rhedeg hyn eto, gadewch i mi roi cynnig dweud enw Zamila, rhowch. 791 00:38:16,280 --> 00:38:17,940 Ac yn awr mae gennym raglen ddeinamig. 792 00:38:17,940 --> 00:38:19,380 Nid wyf wedi codio byd caled. 793 00:38:19,380 --> 00:38:21,760 Nid wyf wedi codio galed enw, neu David, neu Zamila. 794 00:38:21,760 --> 00:38:25,350 >> Nawr mae'n llawer fwy fel y rhaglenni rydym yn gwybod, ble os yw'n cymryd mewnbwn, 795 00:38:25,350 --> 00:38:27,870 mae'n cynhyrchu allbwn ychydig yn wahanol. 796 00:38:27,870 --> 00:38:31,020 Yn awr, nid yw hyn yn y gorau profiad y defnyddiwr, neu UX. 797 00:38:31,020 --> 00:38:33,000 Rwy'n rhedeg y rhaglen. 798 00:38:33,000 --> 00:38:35,830 >> Nid wyf yn gwybod beth rwy'n fod i'w wneud, oni bai fy mod mewn gwirionedd yn edrych ar 799 00:38:35,830 --> 00:38:37,290 neu cofiwch y cod ffynhonnell. 800 00:38:37,290 --> 00:38:39,640 Felly gadewch i ni wneud y defnyddiwr profi ychydig yn well 801 00:38:39,640 --> 00:38:41,240 gyda'r symlaf o bethau. 802 00:38:41,240 --> 00:38:44,782 Gadewch i mi fynd yn ôl i mewn i hyn rhaglen, ac yn syml yn dweud printf. 803 00:38:44,782 --> 00:38:48,870 >> A gadewch i mi fynd yn ei flaen ac yn dweud enw, colon, a gofod, ac yna hanner colon. 804 00:38:48,870 --> 00:38:51,170 A dim ond ar gyfer cychwyn, dim adlach n. 805 00:38:51,170 --> 00:38:52,980 Ac mae hynny'n fwriadol, oherwydd nid wyf am 806 00:38:52,980 --> 00:38:54,590 yr prydlon i symud at y llinell nesaf. 807 00:38:54,590 --> 00:38:58,800 >> Rwyf am, yn lle hynny, yn gwneud hyn, yn gwneud llinyn i ail-grynhoi fy cod i mewn i beiriant newydd 808 00:38:58,800 --> 00:39:00,980 Cod dot slaes llinyn. 809 00:39:00,980 --> 00:39:02,460 Ah, mae hyn yn llawer prettier. 810 00:39:02,460 --> 00:39:05,780 Nawr rwy'n mewn gwirionedd yn gwybod beth y cyfrifiadur am i mi ei wneud, rhoi enw iddo. 811 00:39:05,780 --> 00:39:10,020 >> Felly, yr wyf i'n mynd i fynd yn ei flaen a theipiwch yn Rob, fynd i mewn, a helo, Rob. 812 00:39:10,020 --> 00:39:13,640 Felly, yn sylweddoli, mae hyn yn dal i fod, ar y diwedd y dydd, dim ond rhaglen naw llinell. 813 00:39:13,640 --> 00:39:15,090 Ond rydym wedi cymryd camau bach hyn. 814 00:39:15,090 --> 00:39:18,380 >> Ysgrifennom un llinell ag ef ni yn gyfarwydd, printf, helo byd. 815 00:39:18,380 --> 00:39:19,980 Yna rydym wedi dad ychydig o hynny. 816 00:39:19,980 --> 00:39:21,560 Ac rydym yn defnyddio mewn gwirionedd yn cael llinyn. 817 00:39:21,560 --> 00:39:23,362 Ac rydym yn taflu gwerth hwnnw mewn newidyn. 818 00:39:23,362 --> 00:39:26,070 Ac yna rydym yn mynd yn ei flaen a gwell ymhellach gyda thrydydd llinell. 819 00:39:26,070 --> 00:39:29,220 Ac mae proses ailadroddol hon o ysgrifennu meddalwedd yn wirioneddol allweddol. 820 00:39:29,220 --> 00:39:33,420 Yn CS50, ac mewn bywyd yn gyffredinol, Yn gyffredinol, ni ddylech eistedd i lawr, 821 00:39:33,420 --> 00:39:36,800 cael rhaglen mewn golwg, a rhoi cynnig ar ysgrifennu y peth damn cyfan i gyd ar unwaith. 822 00:39:36,800 --> 00:39:40,810 >> Bydd yn, yn anochel, yn arwain at ffordd mwy gamgymeriadau nag yr ydym ni ein hunain yn gweld yma. 823 00:39:40,810 --> 00:39:44,070 Hyd yn oed i mi, hyd y dydd hwn, yn gyson gwneud camgymeriadau dwp eraill, 824 00:39:44,070 --> 00:39:47,480 camgymeriadau mewn gwirionedd yn fwy anodd sy'n anos eu chyfrif i maes. 825 00:39:47,480 --> 00:39:52,095 Ond byddwch yn gwneud mwy o gamgymeriadau y mwyaf linellau o god byddwch yn ysgrifennu i gyd ar unwaith. 826 00:39:52,095 --> 00:39:54,220 Ac felly yr arfer hwn o, ysgrifennu ychydig o god 827 00:39:54,220 --> 00:39:57,930 eich bod yn gyfforddus gyda, llunio ei, rhedeg, ei brofi yn fwy cyffredinol, 828 00:39:57,930 --> 00:40:01,370 yna symud on-- felly yn union fel rydym yn cadw haenu a haenu yr wythnos diwethaf, 829 00:40:01,370 --> 00:40:04,190 adeiladu o rywbeth iawn syml i rywbeth mwy cymhleth, 830 00:40:04,190 --> 00:40:05,200 wneud yr un peth yma. 831 00:40:05,200 --> 00:40:08,500 Peidiwch ag eistedd i lawr, ac yn ceisio ysgrifennu broblem gyfan. 832 00:40:08,500 --> 00:40:10,780 Mewn gwirionedd yn cymryd camau bach hyn. 833 00:40:10,780 --> 00:40:15,100 >> Nawr, nid llinynnau i gyd hynny ddefnyddiol iddynt eu hunain. 834 00:40:15,100 --> 00:40:18,210 Byddem mewn gwirionedd, yn ddelfrydol, fel i cael rhywbeth arall yn ein pecyn cymorth. 835 00:40:18,210 --> 00:40:20,990 Felly gadewch i ni mewn gwirionedd yn gwneud yn union hynny. 836 00:40:20,990 --> 00:40:24,900 >> Gadewch i mi fynd yn ei flaen yn awr a chwip i fyny rhaglen ychydig yn wahanol. 837 00:40:24,900 --> 00:40:28,320 A byddwn yn galw int.c hwn, er cyfanrif. 838 00:40:28,320 --> 00:40:30,870 Rydw i'n mynd i, yn yr un modd, cynnwys CS550.h. 839 00:40:30,870 --> 00:40:33,060 Rydw i'n mynd i gynnwys IO safonol. 840 00:40:33,060 --> 00:40:36,630 Ac mae hynny'n mynd i fod yn eithaf cyffredin yn yr ychydig ddyddiau cyntaf y dosbarth. 841 00:40:36,630 --> 00:40:39,050 >> Ac yr wyf i'n mynd i yn barod fy hun gyda phrif swyddogaeth. 842 00:40:39,050 --> 00:40:43,370 Ac yn awr yn hytrach na chael llinyn, gadewch i ni fynd yn ei flaen a chael int. 843 00:40:43,370 --> 00:40:49,285 Gadewch i ni alw i, a galw yn cael int, parens agos, hanner colon. 844 00:40:49,285 --> 00:40:51,410 Ac yn awr gadewch i ni wneud rhywbeth ag ef, printf. 845 00:40:51,410 --> 00:40:56,190 >> Gadewch i ni ddweud rhywbeth fel helo, slaes n, coma i. 846 00:40:56,190 --> 00:41:00,010 Felly rwy'n ddynwared 'n bert lawer beth wnes ychydig funudau'n ôl. 847 00:41:00,010 --> 00:41:01,660 Mae gen i dalfan yma. 848 00:41:01,660 --> 00:41:05,150 Rwyf wedi coma fi yma, oherwydd yr wyf am i dopio i mewn i'r dalfan. 849 00:41:05,150 --> 00:41:07,250 >> Felly gadewch i ni fynd yn ei flaen a rhoi cynnig llunio rhaglen hon. 850 00:41:07,250 --> 00:41:10,060 gelwir y ffeil int.c. 851 00:41:10,060 --> 00:41:12,920 Felly, yr wyf i'n mynd i ddweud, yn gwneud int, rhowch. 852 00:41:12,920 --> 00:41:16,420 O fy Nuw, ond dim llawer mawr, dde? 853 00:41:16,420 --> 00:41:17,230 Mae 'na gamgymeriad. 854 00:41:17,230 --> 00:41:19,810 >> Mae 'na gamgymeriad cystrawennol yma y fath nad oedd y rhaglen yn gallu 855 00:41:19,810 --> 00:41:25,460 yn cael ei llunio y tu mewn int.c, llinell saith, cymeriad 27, fformat gwall 856 00:41:25,460 --> 00:41:28,400 yn pennu torgoch math seren, beth bynnag yw hynny. 857 00:41:28,400 --> 00:41:30,020 Ond mae'r math ddadl yw int. 858 00:41:30,020 --> 00:41:33,110 >> Felly yma, hefyd, rydym yn ddim yn mynd i'r canlynol-- er bod heddiw yn llawer o ddeunydd, 859 00:41:33,110 --> 00:41:35,710 rydym yn mynd i gorlethu chi gyda hollol pob nodwedd o C, 860 00:41:35,710 --> 00:41:38,070 a rhaglennu yn fwy cyffredinol, mewn dim ond yr ychydig wythnosau cyntaf. 861 00:41:38,070 --> 00:41:40,400 Felly mae 'aml yn mynd i fod jargon nad ydych yn gyfarwydd ag ef. 862 00:41:40,400 --> 00:41:43,350 Ac, mewn gwirionedd, seren torgoch yn rhywbeth rydym yn mynd i ddod yn ôl i 863 00:41:43,350 --> 00:41:44,830 mewn wythnos neu ddwy amser yn. 864 00:41:44,830 --> 00:41:47,530 >> Ond am nawr, gadewch i ni weld os gallwn gramadegu geiriau sy'n gyfarwydd. 865 00:41:47,530 --> 00:41:50,750 Formats-- felly clywsom fformat rhagnodwr, fformat cod blaen. 866 00:41:50,750 --> 00:41:51,840 Dyna cyfarwydd. 867 00:41:51,840 --> 00:41:53,840 Type-- ond mae gan y ddadl int math. 868 00:41:53,840 --> 00:41:55,980 Arhoswch funud, fi yn int. 869 00:41:55,980 --> 00:41:59,230 >> Efallai y cant s mewn gwirionedd Mae rhywfaint o ystyr a ddiffiniwyd. 870 00:41:59,230 --> 00:42:00,230 Ac, yn wir, y mae'n ei wneud. 871 00:42:00,230 --> 00:42:03,101 Yn gyfanrif, os ydych am printf yn lle hynny, 872 00:42:03,101 --> 00:42:05,350 mewn gwirionedd yn rhaid i chi ddefnyddio fformat gwahanol rhagnodwr. 873 00:42:05,350 --> 00:42:06,890 A fyddech chi ddim yn gwybod hyn oni bai fod rhywun yn dweud wrthych chi, 874 00:42:06,890 --> 00:42:07,973 neu os ydych wedi gwneud hyn o'r blaen. 875 00:42:07,973 --> 00:42:10,490 Ond y cant i yw'r hyn gellir ei ddefnyddio yn gyffredin 876 00:42:10,490 --> 00:42:12,240 yn printf am plygio mewn cyfanrif. 877 00:42:12,240 --> 00:42:14,920 Gallwch hefyd ddefnyddio cant d ar gyfer cyfanrif degol. 878 00:42:14,920 --> 00:42:16,490 Ond fi yn neis ac yn syml yma. 879 00:42:16,490 --> 00:42:17,590 Felly, byddwn yn mynd â hynny. 880 00:42:17,590 --> 00:42:21,160 >> Nawr, gadewch i mi fynd yn ei flaen ac ailgynnal gwneud int, Enter. 881 00:42:21,160 --> 00:42:23,328 Mae hynny'n dda, dim camgymeriadau. 882 00:42:23,328 --> 00:42:27,260 Dot slaes OK int--, profiad y defnyddiwr gwael, oherwydd nid wyf wedi dweud fy hun 883 00:42:27,260 --> 00:42:27,760 beth i'w wneud. 884 00:42:27,760 --> 00:42:28,426 Ond mae hynny'n iawn. 885 00:42:28,426 --> 00:42:29,480 Im 'yn dal ymlaen yn gyflym. 886 00:42:29,480 --> 00:42:36,260 >> Ac yn awr gad i mi fynd yn ei flaen a deipio David, OK, Zamila, Rob. 887 00:42:36,260 --> 00:42:37,820 Iawn, felly mae hyn yn beth da. 888 00:42:37,820 --> 00:42:41,710 Y tro hwn, Im 'yn arfer swyddogaeth, darn pos, a elwir yn get int. 889 00:42:41,710 --> 00:42:44,230 Ac mae'n troi out-- ac rydym annhymerus ' gweler yn ddiweddarach hwn yn y term-- 890 00:42:44,230 --> 00:42:47,730 mae'r staff CS50 wedi gweithredu cael llinyn yn y fath fodd 891 00:42:47,730 --> 00:42:50,350 ei fod yn unig yn gorfforol bydd cael llinyn i chi. 892 00:42:50,350 --> 00:42:54,340 >> Mae wedi gweithredu get int mewn y fath fodd fel mai dim ond bydd yn 893 00:42:54,340 --> 00:42:55,590 cael yn gyfanrif i chi. 894 00:42:55,590 --> 00:42:57,830 Ac os ydych chi, y dynol, peidiwch cydweithredu, mae'n 895 00:42:57,830 --> 00:43:00,590 llythrennol jyst yn mynd i dweud ailgeisio, ailgeisio, ailgeisio, 896 00:43:00,590 --> 00:43:05,200 llythrennol eistedd yno dolennu, nes yr ydych yn gorfodi gyda rhywfaint rhif hudol, 897 00:43:05,200 --> 00:43:07,670 fel 50, a helo 50. 898 00:43:07,670 --> 00:43:11,440 >> Neu os rydym yn rhedeg hyn eto a math mewn 42, helo 42. 899 00:43:11,440 --> 00:43:15,750 Ac felly y swyddogaeth get int tu mewn y darn pos 900 00:43:15,750 --> 00:43:19,050 yn ddigon rhesymeg, digon o feddwl, at chyfrif i maes, beth yn air? 901 00:43:19,050 --> 00:43:20,330 A beth yw rhif? 902 00:43:20,330 --> 00:43:23,165 Dim ond yn derbyn, yn y pen draw, rhifau. 903 00:43:23,165 --> 00:43:25,690 904 00:43:25,690 --> 00:43:30,230 >> Felly, mae'n troi allan bod hyn Nid yw'r cyfan sydd mynegiannol. 905 00:43:30,230 --> 00:43:30,910 hyd yn hyn. 906 00:43:30,910 --> 00:43:33,690 Felly, yay, tro diwethaf i ni Aeth yn weddol gyflym 907 00:43:33,690 --> 00:43:38,320 i mewn i weithredu gemau, ac animeiddio, a gweithiau artistig yn Scratch. 908 00:43:38,320 --> 00:43:42,260 Ac yma, rydym yn cael eu cynnwys gyda byd helo, ac helo 50. 909 00:43:42,260 --> 00:43:43,696 >> Nid yw popeth ysbrydoledig hynny. 910 00:43:43,696 --> 00:43:46,070 Ac, yn wir, y rhain yn gyntaf ychydig Bydd enghreifftiau yn cymryd peth amser 911 00:43:46,070 --> 00:43:47,510 i ramp i fyny yn y cyffro. 912 00:43:47,510 --> 00:43:49,854 Ond mae gennym gymaint mwy rheoli erbyn hyn, mewn gwirionedd. 913 00:43:49,854 --> 00:43:51,770 Ac rydym yn mynd i iawn yn gyflym yn dechrau haenu 914 00:43:51,770 --> 00:43:53,870 ar ben y primitives sylfaenol hyn. 915 00:43:53,870 --> 00:43:56,370 >> Ond yn gyntaf, gadewch i ni ddeall yr hyn y mae'r cyfyngiadau yn cael eu. 916 00:43:56,370 --> 00:43:58,620 Yn wir, un o'r pethau Nid yw Scratch yn hawdd 917 00:43:58,620 --> 00:44:00,990 gadewch i ni wneud yn wirioneddol edrych o dan y cwfl, 918 00:44:00,990 --> 00:44:03,740 ac yn deall beth yw cyfrifiadur yn, yr hyn y gall ei wneud, 919 00:44:03,740 --> 00:44:05,250 a beth yw ei gyfyngiadau yn cael eu. 920 00:44:05,250 --> 00:44:08,580 Ac, yn wir, fod diffyg dealltwriaeth, o bosibl, yn y tymor hir 921 00:44:08,580 --> 00:44:12,520 Gall arwain at ein ysgrifennu mistakes-- hunain bugs, ysgrifennu meddalwedd ansicr sy'n 922 00:44:12,520 --> 00:44:13,880 cael hacio mewn rhyw ffordd. 923 00:44:13,880 --> 00:44:17,130 >> Felly, gadewch i gymryd rhai camau tuag at deall ychydig yn well hyn drwy 924 00:44:17,130 --> 00:44:19,710 ffordd o, dyweder, yr enghraifft ganlynol. 925 00:44:19,710 --> 00:44:23,550 Rydw i'n mynd i fynd yn ei flaen a gweithredu go gyflym rhaglen o'r enw Gwiber. 926 00:44:23,550 --> 00:44:25,134 Fel, gadewch i ni ychwanegu rhai rhifau at ei gilydd. 927 00:44:25,134 --> 00:44:27,800 Ac yr wyf i'n mynd i cod rhai corneli yma, a dim ond copïo a gludo 928 00:44:27,800 --> 00:44:30,270 lle'r oeddwn o'r blaen, dim ond er mwyn i ni gael mynd yn gynt. 929 00:44:30,270 --> 00:44:33,090 Felly nawr mae gen y dechreuadau sylfaenol o raglen o'r enw Gwiber. 930 00:44:33,090 --> 00:44:34,670 >> A gadewch i ni fynd yn ei flaen ac yn gwneud hyn. 931 00:44:34,670 --> 00:44:38,680 Rydw i'n mynd i fynd yn ei flaen a dyweder, intx cael cael int. 932 00:44:38,680 --> 00:44:39,430 A ydych yn gwybod beth? 933 00:44:39,430 --> 00:44:40,990 Gadewch i ni wneud gwell profiad i'r defnyddiwr. 934 00:44:40,990 --> 00:44:45,740 >> Felly, gadewch i 'jyst dweud x yw, ac yn effeithiol annog y defnyddiwr i roi x inni. 935 00:44:45,740 --> 00:44:50,600 Ac yna gadewch i mi fynd yn ei flaen a dweud, printf beth am y yn, y tro hwn gan ddisgwyl 936 00:44:50,600 --> 00:44:53,140 dau werth gan y defnyddiwr. 937 00:44:53,140 --> 00:44:59,759 Ac yna gadewch i jyst mynd yn ei flaen a dyweder, printf, mae'r swm o x ac y mae. 938 00:44:59,759 --> 00:45:01,300 Ac yn awr nid wyf ddim eisiau gwneud y cant s. 939 00:45:01,300 --> 00:45:09,080 Rwyf am wneud y cant i, slaes n, ac yna plwg yn werth swm. 940 00:45:09,080 --> 00:45:10,620 >> Felly sut y gallaf fynd ati i wneud hyn? 941 00:45:10,620 --> 00:45:11,270 Ti'n gwybod beth? 942 00:45:11,270 --> 00:45:12,840 Yr wyf yn gwybod sut i ddefnyddio newidynnau. 943 00:45:12,840 --> 00:45:15,140 Gadewch i mi ddatgan un newydd, int z. 944 00:45:15,140 --> 00:45:16,770 >> Ac yr wyf i'n mynd i gymryd dyfalu yma. 945 00:45:16,770 --> 00:45:21,470 Os oes arwyddion cyfartal yn hyn iaith, efallai y gallaf jyst gwneud x plws y, 946 00:45:21,470 --> 00:45:23,660 cyn belled gan fy mod yn dod i ben fy meddwl gyda hanner colon? 947 00:45:23,660 --> 00:45:28,170 Nawr gallaf fynd yn ôl i lawr yma, plwg yn z, gorffen meddwl hwn gyda hanner colon. 948 00:45:28,170 --> 00:45:33,160 A gadewch i ni weld nawr, os yw'r rhain dilyniannau o x lines-- yw cael int. 949 00:45:33,160 --> 00:45:34,770 Y yn cael int. 950 00:45:34,770 --> 00:45:37,980 >> Ychwanegwch x ac y, storio gwerth yn z-- felly, unwaith eto, cofiwch y hafalnod 951 00:45:37,980 --> 00:45:38,560 Nid yn gyfartal. 952 00:45:38,560 --> 00:45:41,100 Mae'n aseiniad o'r dde i'r chwith. 953 00:45:41,100 --> 00:45:45,180 A gadewch i ni argraffu'r bod y swm x ac y nid yn llythrennol z, 954 00:45:45,180 --> 00:45:46,830 ond yr hyn sydd y tu mewn o z. 955 00:45:46,830 --> 00:45:50,090 Felly gadewch i ni wneud Gwiber - 'n glws, unrhyw gamgymeriadau y tro hwn. 956 00:45:50,090 --> 00:45:53,030 Dot slaes Gwiber, rhowch, x yn mynd i fod 1. 957 00:45:53,030 --> 00:45:55,380 >> Y yn mynd i fod 2. 958 00:45:55,380 --> 00:45:58,964 A'r swm x ac y yn 3. 959 00:45:58,964 --> 00:46:00,130 Felly dyna i gyd iawn ac yn dda. 960 00:46:00,130 --> 00:46:03,260 >> Felly byddech yn dychmygu y cwestiwn Dylai weithio mewn rhaglen fel hon. 961 00:46:03,260 --> 00:46:04,040 Ond eich bod yn gwybod beth? 962 00:46:04,040 --> 00:46:06,904 Yn amrywio hon, llinell 12, hyd yn oed yn angenrheidiol? 963 00:46:06,904 --> 00:46:09,820 Nid oes angen i chi fynd i mewn i'r arfer o ychydig storio pethau mewn newidynnau 964 00:46:09,820 --> 00:46:10,980 dim ond oherwydd gallwch. 965 00:46:10,980 --> 00:46:13,550 Ac, yn wir, mae'n gyffredinol dylunio gwael ystyriol 966 00:46:13,550 --> 00:46:18,100 os ydych yn creu newidyn, a elwir yn z yn yr achos hwn, storio rhywbeth ynddo, 967 00:46:18,100 --> 00:46:21,390 ac yna yn syth ei ddefnyddio, ond byth eto. 968 00:46:21,390 --> 00:46:24,700 Pam rhoi enw rywbeth fel z os ydych yn llythrennol 969 00:46:24,700 --> 00:46:26,770 mynd i ddefnyddio'r beth unwaith yn unig, ac yn y blaen 970 00:46:26,770 --> 00:46:29,380 procsimol i ble rydych yn ei greu yn y lle cyntaf, 971 00:46:29,380 --> 00:46:31,052 mor agos o ran linellau o god? 972 00:46:31,052 --> 00:46:31,760 Felly, rydych yn gwybod beth? 973 00:46:31,760 --> 00:46:34,480 Mae'n ymddangos bod C yn eithaf hyblyg. 974 00:46:34,480 --> 00:46:36,586 Os ydw i mewn gwirionedd yn eisiau plug-in gwerthoedd yma, 975 00:46:36,586 --> 00:46:38,210 Nid oes angen imi ddatgan newidyn newydd. 976 00:46:38,210 --> 00:46:41,680 Gallai Fi jyst plug-in x plws y, gan fod C yn deall 977 00:46:41,680 --> 00:46:43,390 rhifyddeg, a gweithredwyr mathemategol. 978 00:46:43,390 --> 00:46:47,140 >> Felly gallaf ddweud yn syml, yn gwneud mathemateg hwn, x ynghyd y, beth bynnag gwerthoedd hynny yw, 979 00:46:47,140 --> 00:46:50,780 plwg y deillio cyfanrif i mewn i'r llinyn. 980 00:46:50,780 --> 00:46:53,730 Felly, gallai hyn fod, er dim ond un llinell byrrach, 981 00:46:53,730 --> 00:46:58,480 dyluniad gwell, rhaglen yn well, oherwydd mae llai o cod, felly 982 00:46:58,480 --> 00:46:59,921 llai i mi ddeall. 983 00:46:59,921 --> 00:47:01,920 Ac mae hefyd dim ond glanach, i'r graddau nad ydym yn 984 00:47:01,920 --> 00:47:04,620 cyflwyno geiriau newydd, symbolau newydd, fel z, 985 00:47:04,620 --> 00:47:07,510 er nad ydynt yn ei wneud mewn gwirionedd gwasanaethu llawer o bwrpas. 986 00:47:07,510 --> 00:47:12,890 >> Yn anffodus, nid yw mathemateg yn cyfan sydd weithiau'n dibynadwy. 987 00:47:12,890 --> 00:47:15,270 Gadewch i ni fynd yn ei flaen ac yn gwneud hyn. 988 00:47:15,270 --> 00:47:18,200 Rydw i'n mynd i fynd yn ei flaen yn awr ac yn gwneud y canlynol. 989 00:47:18,200 --> 00:47:27,650 >> Gadewch i ni wneud printf, cant i, ynghyd cant i, fydd cant i, slaes n. 990 00:47:27,650 --> 00:47:32,240 Ac yr wyf i'n mynd i wneud this-- xyx plws y. 991 00:47:32,240 --> 00:47:34,821 Felly Im 'jyst yn mynd i ailysgrifennu mae hyn ychydig yn wahanol yma. 992 00:47:34,821 --> 00:47:36,320 Gadewch i mi wneud gwiriad pwyll gyflym. 993 00:47:36,320 --> 00:47:37,986 Unwaith eto, gadewch i ni fynd o flaen ein hunain. 994 00:47:37,986 --> 00:47:41,420 Gwneud wiber, dot wiber slaes. 995 00:47:41,420 --> 00:47:44,950 x yw 1, y yn 2, 1 a 2 yw 3. 996 00:47:44,950 --> 00:47:45,870 Felly dyna dda. 997 00:47:45,870 --> 00:47:49,060 Ond gadewch i gymhlethu hyn nawr ychydig, ac yn creu ffeil newydd. 998 00:47:49,060 --> 00:47:53,350 >> Rydw i'n mynd i alw yr un yma, dweud, ints, lluosog i gyfanrifau. 999 00:47:53,350 --> 00:47:55,980 Gadewch i mi ddechrau lle'r oeddwn yn eiliad yn ôl. 1000 00:47:55,980 --> 00:47:57,770 Ond yn awr gadewch i ni wneud ychydig o linellau eraill. 1001 00:47:57,770 --> 00:48:03,430 Gadewch i mi fynd yn ei flaen ac yn gwneud y canlynol, printf, cant i, minws y cant i, 1002 00:48:03,430 --> 00:48:08,959 yw y cant i, coma x, coma yx minws y. 1003 00:48:08,959 --> 00:48:10,750 Felly, yr wyf i'n gwneud ychydig mathemateg gwahanol yno. 1004 00:48:10,750 --> 00:48:11,624 Gadewch i ni wneud un arall. 1005 00:48:11,624 --> 00:48:16,610 Felly y cant i amseroedd y cant ff yn y cant i, slaes n. 1006 00:48:16,610 --> 00:48:21,430 Gadewch i ni plug-in x, ac y, ac amseroedd x y. 1007 00:48:21,430 --> 00:48:24,530 Byddwn yn defnyddio'r seren ar eich cyfrifiadur ar gyfer amseroedd. 1008 00:48:24,530 --> 00:48:26,390 >> nad ydych yn defnyddio x. x yn enw newidyn yma. 1009 00:48:26,390 --> 00:48:28,270 Byddwch yn defnyddio'r seren ar gyfer lluosi. 1010 00:48:28,270 --> 00:48:29,020 Gadewch i ni wneud un yn fwy. 1011 00:48:29,020 --> 00:48:34,580 cant Rwyf printf, wedi'i rannu trwy y cant i, yw y cant i, 1012 00:48:34,580 --> 00:48:40,460 n slaes. xy wedi'i rannu gan y-- felly byddwch yn defnyddio'r slaes yn C 1013 00:48:40,460 --> 00:48:41,502 i wneud is-adran. 1014 00:48:41,502 --> 00:48:42,460 A gadewch i ni wneud un arall. 1015 00:48:42,460 --> 00:48:47,920 1016 00:48:47,920 --> 00:48:55,240 Gweddill y cant i, wedi'i rannu trwy y cant i, yw y cant i. 1017 00:48:55,240 --> 00:48:59,550 xy-- ac yn awr gweddill yn fwy na beth sydd ar ôl. 1018 00:48:59,550 --> 00:49:02,980 Pan fyddwch yn ceisio rhannu yn Enwadur i mewn i rhifiadur, 1019 00:49:02,980 --> 00:49:05,570 faint dros ei adael bod nad oeddech yn gallu rhannu'r allan? 1020 00:49:05,570 --> 00:49:07,910 >> Felly nid oes mewn gwirionedd, o reidrwydd, yn symbol 1021 00:49:07,910 --> 00:49:09,470 rydym wedi defnyddio yn yr ysgol radd ar gyfer hyn. 1022 00:49:09,470 --> 00:49:13,830 Ond mae yn C. Gallwch dweud x modwlo y, lle 1023 00:49:13,830 --> 00:49:18,000 yr arwydd y cant yn context-- hwn ddryslyd pan fyddwch yn y tu mewn 1024 00:49:18,000 --> 00:49:20,170 o'r dyfynodau dwbl, tu mewn printf, y cant 1025 00:49:20,170 --> 00:49:21,830 yn cael ei ddefnyddio fel y fformat rhagnodwr. 1026 00:49:21,830 --> 00:49:25,420 >> Pan fyddwch yn defnyddio y cant y tu allan hynny mewn mynegiant mathemategol, 1027 00:49:25,420 --> 00:49:29,910 'i' y gweithredwr modwlo gyfer modiwlaidd arithmetic-- at ein dibenion 1028 00:49:29,910 --> 00:49:33,650 yma, dim ond yn golygu, beth yw'r gweddill y x rannu gan y? 1029 00:49:33,650 --> 00:49:36,130 Felly x rannu gan y yn x slaes y. 1030 00:49:36,130 --> 00:49:38,220 Beth yw gweddill x rannu gan y? 1031 00:49:38,220 --> 00:49:41,780 Mae'n x y mod, gan y byddai rhaglennydd ddweud. 1032 00:49:41,780 --> 00:49:48,300 >> Felly os wyf yn gwneud unrhyw gamgymeriadau yma, gadewch i mi mynd yn ei flaen ac yn gwneud ints, lluosog, neis, 1033 00:49:48,300 --> 00:49:50,010 a ints slaes dot. 1034 00:49:50,010 --> 00:49:55,270 A gadewch i ni fynd yn ei flaen a ei wneud, gadewch i ni ddweud, 1, 10. 1035 00:49:55,270 --> 00:49:58,390 Mae pob hawl, 1 a 10 yw 11, siec. 1036 00:49:58,390 --> 00:50:01,240 1 minws 10 yn negyddol 9, gwirio. 1037 00:50:01,240 --> 00:50:03,420 >> 1 o weithiau 10 yw 10, siec. 1038 00:50:03,420 --> 00:50:07,090 1 rannu gan 10 yw-- OK, byddwn yn hepgor y un. 1039 00:50:07,090 --> 00:50:09,480 Gweddill y 1 rannu gan 10 yw 1. 1040 00:50:09,480 --> 00:50:10,680 Mae hynny'n gywir. 1041 00:50:10,680 --> 00:50:12,630 Ond mae nam yn fan hyn. 1042 00:50:12,630 --> 00:50:15,390 >> Felly mae'r un yr wyf yn rhoi fy law dros, nid gywir. 1043 00:50:15,390 --> 00:50:16,670 Yr wyf yn golygu, mae'n agos i 0. 1044 00:50:16,670 --> 00:50:20,670 1 rannu gan 10, chi'n gwybod, os ydym yn dorri rhai corneli, yn sicr, mae'n sero. 1045 00:50:20,670 --> 00:50:28,050 Ond dylai fod mewn gwirionedd fod yn 1/10, 0.1, neu 0.10, 0.1000, neu yn y blaen. 1046 00:50:28,050 --> 00:50:30,600 >> Ni ddylai fod mewn gwirionedd fod yn sero. 1047 00:50:30,600 --> 00:50:35,990 Wel, mae'n ymddangos bod y cyfrifiadur yn gwneud yn llythrennol yr hyn yr ydym yn dweud iddo ei wneud. 1048 00:50:35,990 --> 00:50:39,460 Yr ydym yn gwneud mathemateg fel x rannu gan y. 1049 00:50:39,460 --> 00:50:44,680 Ac mae'r ddau x ac y, fesul y llinellau o cod yn gynharach, yn gyfanrifau. 1050 00:50:44,680 --> 00:50:50,440 >> Ar ben hynny, ar linell 15, yr ydym yn dweud printf, hey, printf plug-in 1051 00:50:50,440 --> 00:50:54,230 yn gyfanrif, plug-in cyfanrif, plug-mewn integer-- penodol 1052 00:50:54,230 --> 00:50:57,580 x, ac yna y, ac yna x wedi'i rannu gan y. x ac y yn ints. 1053 00:50:57,580 --> 00:50:59,060 Rydym yn dda yno. 1054 00:50:59,060 --> 00:51:01,250 >> Ond beth yw x rannu â x? 1055 00:51:01,250 --> 00:51:06,790 x wedi'i rannu â dylai y fod, fathemategol, 1/10, neu 0.1, 1056 00:51:06,790 --> 00:51:11,600 sydd yn nifer go iawn, mae nifer go iawn gael, o bosibl, mae pwynt degol. 1057 00:51:11,600 --> 00:51:13,230 Nid yw'n yn gyfanrif. 1058 00:51:13,230 --> 00:51:18,290 >> Ond beth yw'r agosaf cyfanrif i 1/10, neu 0.1? 1059 00:51:18,290 --> 00:51:21,114 Yeah, mae'n fath o yn sero. 1060 00:51:21,114 --> 00:51:22,030 0.1 Mae fel cymaint â hyn. 1061 00:51:22,030 --> 00:51:22,890 Ac mae 1 yn hyn yn llawer. 1062 00:51:22,890 --> 00:51:25,870 Felly 1/10 yn agosach at 0 nag yw hi i un. 1063 00:51:25,870 --> 00:51:30,800 >> Ac felly yr hyn y C yn ei wneud i us-- math o oherwydd ein bod yn dweud ei fod yn canlynol-- 1064 00:51:30,800 --> 00:51:32,600 yn truncating y cyfanrif. 1065 00:51:32,600 --> 00:51:40,540 Mae'n cymryd y gwerth, sydd eto'n dybiedig i fod rhywbeth fel 0.1000, 1066 00:51:40,540 --> 00:51:41,800 0 ac yn y blaen. 1067 00:51:41,800 --> 00:51:45,320 Ac mae'n truncating popeth ar ôl y pwynt degol 1068 00:51:45,320 --> 00:51:47,510 fel bod yr holl o hyn pethau, oherwydd nid yw'n gwneud 1069 00:51:47,510 --> 00:51:51,910 ffitio yn y syniad o cyfanrif, a oedd yn yn unig yw nifer fel negatif 1, 0, 1, 1070 00:51:51,910 --> 00:51:55,830 i fyny ac i lawr, mae'n taflu popeth ar ôl y pwynt degol oherwydd eich 1071 00:51:55,830 --> 00:51:59,020 Ni all ffitio pwynt degol mewn cyfanrif trwy ddiffiniad. 1072 00:51:59,020 --> 00:52:01,290 >> Felly yr ateb yma yw sero. 1073 00:52:01,290 --> 00:52:02,600 Felly sut rydym yn atgyweiria hon? 1074 00:52:02,600 --> 00:52:04,400 Mae arnom angen ateb arall i gyd gyda'i gilydd. 1075 00:52:04,400 --> 00:52:06,880 A gallwn wneud hyn, fel a ganlyn. 1076 00:52:06,880 --> 00:52:12,820 >> Gadewch i mi fynd yn ei flaen a chreu newydd ffeil, mae hyn yn un o'r enw floats.c. 1077 00:52:12,820 --> 00:52:16,500 A'i gadw yma yn y un cyfeiriadur, float.c. 1078 00:52:16,500 --> 00:52:19,360 1079 00:52:19,360 --> 00:52:23,260 A gadewch i mi fynd yn ei flaen a chopïo rhai o'r cod hwnnw o gynharach. 1080 00:52:23,260 --> 00:52:27,690 >> Ond yn hytrach na chael yn int, gadewch i ni wneud hyn. 1081 00:52:27,690 --> 00:52:31,037 Rhowch gwerth pwynt arnawf mi Gelwir x. lle mae pwynt arnawf 1082 00:52:31,037 --> 00:52:33,370 gwerth yn unig yn llythrennol rhywbeth gyda pwynt arnawf. 1083 00:52:33,370 --> 00:52:34,410 Gall symud i'r chwith, i'r dde. 1084 00:52:34,410 --> 00:52:35,530 Mae'n rhif real. 1085 00:52:35,530 --> 00:52:38,050 >> A gadewch nid fy ffonio cael int, ond yn cael arnofio, 1086 00:52:38,050 --> 00:52:41,420 sydd hefyd ymhlith y ddewislen o opsiynau yn y llyfrgell C250. 1087 00:52:41,420 --> 00:52:43,220 Gadewch i ni newid y i fflôt. 1088 00:52:43,220 --> 00:52:45,000 Felly, mae hyn yn dod yn cael arnofio. 1089 00:52:45,000 --> 00:52:47,620 >> Ac yn awr, nid ydym am i plwg yn ints. 1090 00:52:47,620 --> 00:52:53,130 Mae'n troi allan rhaid i ni ddefnyddio y cant f ar gyfer arnofio, cant f i arnofio, 1091 00:52:53,130 --> 00:52:54,560 ac yn awr gadw. 1092 00:52:54,560 --> 00:53:01,220 Ac yn awr, croesi bysedd, yn gwneud fflotiau, neis, fflotiau slaes dot. 1093 00:53:01,220 --> 00:53:04,280 x yn mynd i fod yn un 1. y Yn mynd i fod yn 10 eto. 1094 00:53:04,280 --> 00:53:08,240 >> Ac, neis, OK fy ychwanegiad yn gywir. 1095 00:53:08,240 --> 00:53:10,240 Yr oeddwn yn gobeithio am fwy, ond anghofiais i ysgrifennu iddo. 1096 00:53:10,240 --> 00:53:13,250 Felly, gadewch i ni fynd a atgyweiria hon gwall rhesymegol. 1097 00:53:13,250 --> 00:53:16,280 >> Gadewch i ni fynd yn ei flaen ac yn mynnu y canlynol. 1098 00:53:16,280 --> 00:53:18,080 Byddwn yn jyst yn gwneud ychydig copi a gludo. 1099 00:53:18,080 --> 00:53:20,080 Ac yr wyf i'n mynd i ddweud minws. 1100 00:53:20,080 --> 00:53:21,890 >> Ac yr wyf i'n mynd i amserau ddweud. 1101 00:53:21,890 --> 00:53:24,060 Ac yr wyf i'n mynd i ddweud eu rhannu. 1102 00:53:24,060 --> 00:53:28,240 Ac nid wyf i'n mynd i wneud modwlo, nad yw mor germane yma, 1103 00:53:28,240 --> 00:53:33,690 rhannu gan f, ac amseroedd plus-- OK, gadewch i ni wneud hyn eto. 1104 00:53:33,690 --> 00:53:44,210 >> Gwneud fflotiau, fflotiau slaes dot, a 1, 10, ac-- 'n glws, na, OK. 1105 00:53:44,210 --> 00:53:45,250 Felly rwy'n idiot. 1106 00:53:45,250 --> 00:53:47,000 Felly, mae hyn yn gyffredin iawn mewn gwyddoniaeth gyfrifiadurol 1107 00:53:47,000 --> 00:53:49,780 i wneud camgymeriadau dwp fel hyn. 1108 00:53:49,780 --> 00:53:53,100 >> At ddibenion addysgol, beth Fi 'n sylweddol eisiau ei wneud 1109 00:53:53,100 --> 00:53:57,410 Roedd newid y wyddoniaeth yma i plws, i minws, i amserau, 1110 00:53:57,410 --> 00:54:01,140 ac i rannu, wrth i chi, gobeithio, sylwi ystod yr ymarfer hwn. 1111 00:54:01,140 --> 00:54:04,700 Felly nawr gadewch i ail-lunio hwn rhaglen, yn gwneud fflotiau slaes dot. 1112 00:54:04,700 --> 00:54:07,950 >> Ac am y trydydd tro, gadewch i ni weld a yw'n cwrdd fy nisgwyliadau. 1113 00:54:07,950 --> 00:54:21,480 1, 10, fynd i mewn, ie, OK, 1.000, wedi'i rannu gan 10.000, yw 0.100000. 1114 00:54:21,480 --> 00:54:24,952 Ac mae'n troi allan, gallwn reoli faint o niferoedd yn ôl pwyntiau degol hynny. 1115 00:54:24,952 --> 00:54:25,660 Rydym mewn gwirionedd yn. 1116 00:54:25,660 --> 00:54:26,790 Byddwn yn dod yn ôl at hynny. 1117 00:54:26,790 --> 00:54:28,440 >> Ond yn awr, mewn gwirionedd, y math yn gywir. 1118 00:54:28,440 --> 00:54:30,090 Felly, unwaith eto, beth yw'r prydau parod yma? 1119 00:54:30,090 --> 00:54:33,050 Mae'n troi allan bod yn C, mae yna nid yn unig yn unig strings-- ac, mewn gwirionedd, 1120 00:54:33,050 --> 00:54:36,120 nid oes mewn gwirionedd, oherwydd ein ychwanegwch y rhai sydd â'r llyfrgell CS50. 1121 00:54:36,120 --> 00:54:37,710 Ond nid oes dim ond ints. 1122 00:54:37,710 --> 00:54:38,990 >> Mae yna hefyd arnofio. 1123 00:54:38,990 --> 00:54:42,810 Ac mae'n troi allan criw o ddata arall mathau hefyd, y byddwn yn eu defnyddio cyn hir. 1124 00:54:42,810 --> 00:54:46,270 Troi allan os ydych am un cymeriad, nid cyfres o gymeriadau, 1125 00:54:46,270 --> 00:54:47,610 gallwch ddefnyddio dim ond torgoch. 1126 00:54:47,610 --> 00:54:52,350 >> Troi allan, os ydych am i bool, gwerth Boole, gwir neu gau yn unig, 1127 00:54:52,350 --> 00:54:56,840 diolch i'r llyfrgell CS50, mae gennym ychwanegu at C y math data bool yn ogystal. 1128 00:54:56,840 --> 00:54:59,180 Ond mae hefyd yn cyflwyno mewn llawer o ieithoedd eraill yn ogystal. 1129 00:54:59,180 --> 00:55:04,130 Ac mae'n ymddangos bod weithiau i chi Mae angen rhifau mwy, yna dewch yn ddiofyn 1130 00:55:04,130 --> 00:55:05,210 gyda ints a fflotiau. 1131 00:55:05,210 --> 00:55:10,590 >> Ac, mewn gwirionedd, yn ddwbl yn rhif sy'n defnyddio Nid yw 32 darnau, ond 64 ddarnau. 1132 00:55:10,590 --> 00:55:14,990 A hir hir yn nifer y defnyddio Nid yw 32, darnau ond 64 darnau, 1133 00:55:14,990 --> 00:55:19,190 yn y drefn honno, ar gyfer pwynt arnawf gwerthoedd a cyfanrifau, yn y drefn honno. 1134 00:55:19,190 --> 00:55:22,780 Felly gadewch i ni mewn gwirionedd yn awr gweld hyn ar waith. 1135 00:55:22,780 --> 00:55:26,150 >> Rydw i'n mynd i fynd yn ei flaen yma a chwip i fyny un rhaglen arall. 1136 00:55:26,150 --> 00:55:32,020 Yma, yr wyf i'n mynd i fynd yn ei flaen ac yn cynnwys CS50.h. 1137 00:55:32,020 --> 00:55:34,910 A gadewch i mi fynd, yn cynnwys IO.h. safonol 1138 00:55:34,910 --> 00:55:37,320 >> A byddwch yn sylwi rhywbeth ffynci sy'n digwydd yma. 1139 00:55:37,320 --> 00:55:40,592 Dyw hi ddim yn lliwio codio pethau mewn yr un ffordd ag y gwnaeth o'r blaen. 1140 00:55:40,592 --> 00:55:43,550 Ac mae'n troi allan, mae hynny oherwydd fy mod Nid wedi rhoi'r enw ffeil y peth. 1141 00:55:43,550 --> 00:55:47,270 >> Rydw i'n mynd i alw yr un yma sizeof.c, a tharo Save. 1142 00:55:47,270 --> 00:55:51,039 A sylwi ar yr hyn sy'n digwydd i fy iawn cod gwyn yn erbyn y cefndir du. 1143 00:55:51,039 --> 00:55:52,830 Yn awr, o leiaf mae 'na rhai porffor i mewn 'na. 1144 00:55:52,830 --> 00:55:54,490 Ac mae'n tynnu sylw at cystrawen. 1145 00:55:54,490 --> 00:55:57,700 >> Mae hyn oherwydd, yn syml iawn, dwi wedi dweud wrth y DRhA pa fath o ffeil 1146 00:55:57,700 --> 00:56:01,060 mae'n drwy roi ei enw, ac yn benodol estyniad ffeil. 1147 00:56:01,060 --> 00:56:03,620 Nawr, gadewch i ni fynd yn ei flaen ac yn gwneud hyn. 1148 00:56:03,620 --> 00:56:08,910 Rydw i'n mynd i fynd yn ei flaen ac yn iawn yn syml argraffwch y bool canlynol-- 1149 00:56:08,910 --> 00:56:11,080 yw y cant LU. 1150 00:56:11,080 --> 00:56:12,950 >> Byddwn yn dod yn ôl at bod mewn dim ond hyn o bryd. 1151 00:56:12,950 --> 00:56:15,840 Ac yna dwi'n mynd i Maint y print o bool. 1152 00:56:15,840 --> 00:56:18,170 Ac yn awr, dim ond i arbed fy hun beth amser, rwy'n 1153 00:56:18,170 --> 00:56:20,280 mynd i wneud yn ei gyfanrwydd criw o hyn ar unwaith. 1154 00:56:20,280 --> 00:56:24,620 Ac, yn benodol, yr wyf i'n mynd i newid hyn i torgoch a torgoch. 1155 00:56:24,620 --> 00:56:27,760 Mae hyn yn un, dw i'n mynd i newid i dwbl a dwbl. 1156 00:56:27,760 --> 00:56:31,440 >> Mae hyn yn un, dw i'n mynd i newid i fflôt a fflôt. 1157 00:56:31,440 --> 00:56:35,670 Mae hyn yn un, yr wyf i'n mynd i newid i int ac int. 1158 00:56:35,670 --> 00:56:38,660 Ac mae hyn yn un, dwi'n mynd i newid i hir hir. 1159 00:56:38,660 --> 00:56:40,840 Ac mae'n dal i gymryd amser hir, hir o amser. 1160 00:56:40,840 --> 00:56:44,572 >> Ac yna, yn olaf, rhoddais fy hun un yn ormod, llinyn. 1161 00:56:44,572 --> 00:56:47,030 Mae'n troi allan bod yn C, does y gweithredydd arbennig o'r enw 1162 00:56:47,030 --> 00:56:50,260 maint dyna llythrennol mynd i, pan rhedeg, 1163 00:56:50,260 --> 00:56:52,099 yn dweud wrthym faint o pob un o'r newidynnau hyn. 1164 00:56:52,099 --> 00:56:53,890 Ac mae hyn yn ffordd, yn awr, gallwn gysylltu ôl 1165 00:56:53,890 --> 00:56:57,140 i drafod yr wythnos ddiwethaf o ddata a chynrychiolaeth. 1166 00:56:57,140 --> 00:57:00,330 >> Gadewch i mi fynd yn ei flaen ac yn llunio maint y maint slaes dot o. 1167 00:57:00,330 --> 00:57:01,210 A gadewch i ni weld. 1168 00:57:01,210 --> 00:57:05,210 Mae'n troi allan bod yn C, benodol ar CS50 IDE, 1169 00:57:05,210 --> 00:57:08,170 benodol ar y system weithredu Ubuntu, 1170 00:57:08,170 --> 00:57:11,100 sydd yn gweithredu 64-bit system yn yr achos hwn, 1171 00:57:11,100 --> 00:57:14,189 mae bool yn mynd i defnyddio un beit o ofod. 1172 00:57:14,189 --> 00:57:16,480 Dyna sut maint yn cael ei fesur, nid mewn darnau, ond mewn bytes. 1173 00:57:16,480 --> 00:57:18,690 A dwyn i gof bod un beit yw wyth did. 1174 00:57:18,690 --> 00:57:22,030 Felly mae bool, er eich bod yn dechnegol ond angen 0 neu 1, 1175 00:57:22,030 --> 00:57:24,092 mae'n ychydig yn wastraffus sut rydym wedi rhoi ar waith iddo. 1176 00:57:24,092 --> 00:57:26,800 Mae'n mewn gwirionedd yn mynd i ddefnyddio ei gyfanrwydd byte-- felly pob seroau, yn efallai 1177 00:57:26,800 --> 00:57:31,050 holl rai, neu rywbeth fel 'na, neu dim ond un 1 ymhlith wyth did. 1178 00:57:31,050 --> 00:57:34,962 >> Mae torgoch, yn y cyfamser, a ddefnyddir ar gyfer cymeriad fel cymeriad ASCII yr wythnos diwethaf, 1179 00:57:34,962 --> 00:57:36,170 yn mynd i fod yn un cymeriad. 1180 00:57:36,170 --> 00:57:42,340 A bod synchs i fyny gyda ein syniad o ei fod yn ddim mwy na 256 bits-- yn hytrach, 1181 00:57:42,340 --> 00:57:45,360 synchs i fyny ag ef oedd dim hwy nag 8 did, a oedd yn 1182 00:57:45,360 --> 00:57:47,450 yn rhoi cymaint â 256 werthoedd ni. 1183 00:57:47,450 --> 00:57:49,680 Mae ddwbl yn mynd i fod yn 8 bytes neu 64 ddarnau. 1184 00:57:49,680 --> 00:57:50,510 >> Mae fflôt yw 4. 1185 00:57:50,510 --> 00:57:51,690 Mae int yw 4. 1186 00:57:51,690 --> 00:57:52,980 A hir, hir yw 8. 1187 00:57:52,980 --> 00:57:54,716 Ac linyn yw 8. 1188 00:57:54,716 --> 00:57:55,840 Ond peidiwch â phoeni am hynny. 1189 00:57:55,840 --> 00:57:57,340 Rydym yn mynd i plicio yn ôl y haen. 1190 00:57:57,340 --> 00:57:59,940 Mae'n troi allan, gall llinynnau fod yn hwy nag 8 bytes. 1191 00:57:59,940 --> 00:58:02,310 >> Ac, yn wir, rydym wedi ysgrifennu llinynnau eisoes, helo byd, 1192 00:58:02,310 --> 00:58:03,700 hwy nag 8 bytes. 1193 00:58:03,700 --> 00:58:06,270 Ond byddwn yn dod yn ôl at bod mewn dim ond hyn o bryd. 1194 00:58:06,270 --> 00:58:09,690 Ond mae'r cymryd i ffwrdd dyma yw'r canlynol. 1195 00:58:09,690 --> 00:58:15,320 >> Dim ond Mae gan unrhyw gyfrifiadur yn gyfyngedig faint o gof a gofod. 1196 00:58:15,320 --> 00:58:17,860 Gallwch ond storio cymaint o ffeiliau ar eich Mac neu PC. 1197 00:58:17,860 --> 00:58:23,030 Gallwch ond storio cymaint o raglenni mewn RAM yn rhedeg ar unwaith, o angenrheidrwydd, hyd yn oed 1198 00:58:23,030 --> 00:58:26,360 gyda'r cof rhith, oherwydd mae gennych swm cyfyngedig o RAM. 1199 00:58:26,360 --> 00:58:28,990 >> A dim ond i picture-- os nad ydych erioed wedi agor gliniadur 1200 00:58:28,990 --> 00:58:31,300 neu archebu gof ychwanegol ar gyfer cyfrifiadur, rydych yn 1201 00:58:31,300 --> 00:58:33,670 Efallai na yn gwybod bod tu mewn eich cyfrifiadur 1202 00:58:33,670 --> 00:58:36,590 yn rhywbeth sy'n edrych ychydig fel hyn. 1203 00:58:36,590 --> 00:58:40,540 Felly, mae hyn yn unig yw gwmni cyffredin a enwir Croch sy'n gwneud RAM ar gyfer cyfrifiaduron. 1204 00:58:40,540 --> 00:58:43,620 A RAM yw lle mae rhaglenni byw tra byddant yn rhedeg. 1205 00:58:43,620 --> 00:58:46,630 >> Felly, ar bob Mac neu PC, pan fyddwch yn dyblu cliciwch ar un o'r rhaglen, a fydd yn agor i fyny, 1206 00:58:46,630 --> 00:58:48,921 ac mae'n agor ryw ddogfen Word neu rywbeth fel 'na, 1207 00:58:48,921 --> 00:58:51,764 mae'n storio dros dro mewn iddo RAM, oherwydd RAM yn gyflymach 1208 00:58:51,764 --> 00:58:53,680 na eich disg galed, neu eich disg cyflwr solet. 1209 00:58:53,680 --> 00:58:56,600 Felly dim ond lle mae rhaglenni yn mynd i fyw pan fyddant yn rhedeg, 1210 00:58:56,600 --> 00:58:58,060 neu pan fydd y ffeiliau yn cael eu defnyddio. 1211 00:58:58,060 --> 00:59:00,890 >> Felly, mae gennych bethau sy'n edrych yn fel tu hon o'ch gliniadur, 1212 00:59:00,890 --> 00:59:03,320 neu bethau ychydig yn fwy tu mewn eich bwrdd gwaith. 1213 00:59:03,320 --> 00:59:07,440 Ond dim ond yn cael y allweddol yr ydych yn nifer cyfyngedig o'r pethau hyn. 1214 00:59:07,440 --> 00:59:11,230 Ac mae yna dim ond swm cyfyngedig o caledwedd yn eistedd ar ddesg hawl hon 1215 00:59:11,230 --> 00:59:11,730 fan hyn. 1216 00:59:11,730 --> 00:59:15,920 >> Felly, yn sicr, ni allwn storio rhifau anfeidrol hir. 1217 00:59:15,920 --> 00:59:19,030 Ac, eto, os ydych yn meddwl yn ôl i ysgol radd, sawl digidau gall 1218 00:59:19,030 --> 00:59:21,400 gennych ar y dde o'r pwynt degol? 1219 00:59:21,400 --> 00:59:24,680 O ran hynny, faint o digidau gall gennych i'r chwith pwynt degol? 1220 00:59:24,680 --> 00:59:26,300 Really, anfeidrol lawer. 1221 00:59:26,300 --> 00:59:30,840 >> Yn awr, dim ond efallai ni bodau dynol yn gwybod sut i ynganu miliwn, 1222 00:59:30,840 --> 00:59:34,990 a biliwn, triliwn, a quadrillion, a quintillion. 1223 00:59:34,990 --> 00:59:39,370 A dwi'n gwthio terfynau fy understanding-- neu my-- Deallaf 1224 00:59:39,370 --> 00:59:41,110 rhifau, ond mae fy ynganiad o rifau. 1225 00:59:41,110 --> 00:59:44,720 Ond gallant gael anfeidrol fawr gyda ganmil llawer digidau ar y chwith 1226 00:59:44,720 --> 00:59:47,050 neu ar y dde o'r pwynt degol. 1227 00:59:47,050 --> 00:59:50,040 >> Ond dim ond gyfrifiaduron yn swm cyfyngedig o gof, 1228 00:59:50,040 --> 00:59:53,510 nifer cyfyngedig o transistors, mae nifer cyfyngedig o fylbiau golau y tu mewn. 1229 00:59:53,510 --> 00:59:57,350 Felly beth sy'n digwydd pan byddwch yn rhedeg allan o le? 1230 00:59:57,350 --> 00:59:59,620 Mewn geiriau eraill, os ydych yn meddwl yn ôl at yr wythnos diwethaf 1231 00:59:59,620 --> 01:00:03,160 pan buom yn siarad am rifau eu hunain yn cael eu cynrychioli mewn deuaidd, 1232 01:00:03,160 --> 01:00:05,480 Mae'n debyg bod gennym 8-bit hwn werth yma. 1233 01:00:05,480 --> 01:00:08,290 >> Ac mae gennym saith 1 ac un 0. 1234 01:00:08,290 --> 01:00:10,827 Ac mae'n debyg ein bod am i ychwanegu 1 i'r gwerth hwn. 1235 01:00:10,827 --> 01:00:12,410 Mae hwn yn rhif mawr iawn ar hyn o bryd. 1236 01:00:12,410 --> 01:00:16,610 >> Mae hwn yn 254, os cofiaf y math o wythnos dde diwethaf. 1237 01:00:16,610 --> 01:00:19,480 Ond beth os byddaf yn newid bod rightmost 0 i 1? 1238 01:00:19,480 --> 01:00:22,800 Mae'r rhif cyfan, o gwrs, yn dod wyth 1 yn. 1239 01:00:22,800 --> 01:00:24,050 Felly, rydym yn dal i fod yn dda. 1240 01:00:24,050 --> 01:00:27,204 >> Ac mae hynny yn ôl pob tebyg yn cynrychioli 255, er bod yn dibynnu ar gyd-destun 1241 01:00:27,204 --> 01:00:29,120 gallai fod mewn gwirionedd yn cynrychioli rhif negatif. 1242 01:00:29,120 --> 01:00:31,240 Ond mwy am hynny rywbryd arall. 1243 01:00:31,240 --> 01:00:34,220 Mae hyn yn teimlo fel ei fod yn ymwneud mor uchel ag y gallaf gyfrif. 1244 01:00:34,220 --> 01:00:35,290 >> Nawr, dim ond 8 did. 1245 01:00:35,290 --> 01:00:38,170 A fy Mac, yn sicr, mae gan ffordd mwy nag 8 darnau o gof. 1246 01:00:38,170 --> 01:00:39,170 Ond oes ganddo gyfyngedig. 1247 01:00:39,170 --> 01:00:43,230 Felly mae'r un ddadl yn berthnasol, hyd yn oed os ydym yn cael mwy o rai hyn ar y sgrin. 1248 01:00:43,230 --> 01:00:47,020 >> Ond beth sy'n digwydd os ydych chi'n storio rhif hwn, 255, 1249 01:00:47,020 --> 01:00:49,290 ac rydych am i gyfrif 1 ychydig yn uwch? 1250 01:00:49,290 --> 01:00:51,600 Rydych chi eisiau mynd 255-256. 1251 01:00:51,600 --> 01:00:55,800 Y broblem, wrth gwrs, yw os ydych yn yn dechrau cyfrif ar sero fel yr wythnos diwethaf, 1252 01:00:55,800 --> 01:00:59,670 nad ydych yn gallu cyfrif fel uchel fel 256, heb sôn am 257, 1253 01:00:59,670 --> 01:01:02,584 heb sôn am 258, m oherwydd yr hyn sy'n digwydd pan fyddwch yn ychwanegu 1? 1254 01:01:02,584 --> 01:01:05,000 Os byddwch yn gwneud yr hen ysgol radd dull, byddwch yn rhoi o 1 yma, 1255 01:01:05,000 --> 01:01:08,150 ac yna 1 ac 1 yw 2, ond mae hynny'n mewn gwirionedd yn sero, byddwch yn cario'r 1, 1256 01:01:08,150 --> 01:01:09,695 gario'r 1, cario'r 1. 1257 01:01:09,695 --> 01:01:12,620 Mae pob un o'r pethau hyn, 1 hyn, ewch i sero. 1258 01:01:12,620 --> 01:01:17,820 A chi ddirwyn i ben, ie, fel rhywun sylw at y ffaith, mae 1 ar yr ochr chwith. 1259 01:01:17,820 --> 01:01:22,540 Ond popeth y gallwch mewn gwirionedd yn gweld ac yn addas yn y cof 1260 01:01:22,540 --> 01:01:27,960 yn unig yw wyth 0, sef dweud ar ryw bwynt os ydych chi, cyfrifiadur, 1261 01:01:27,960 --> 01:01:32,490 rhoi cynnig ar gyfrif yn ddigon uchel i fyny, rydych yn mynd i lapio o gwmpas, mae'n ymddangos, 1262 01:01:32,490 --> 01:01:35,850 i sero, neu efallai hyd yn oed yn negyddol rhifau, sydd hyd yn oed yn is na sero. 1263 01:01:35,850 --> 01:01:37,260 >> A gallwn fath o weld hyn. 1264 01:01:37,260 --> 01:01:39,900 Gadewch i mi fynd yn ei flaen ac ysgrifennu rhaglen gyflym go iawn yma. 1265 01:01:39,900 --> 01:01:43,690 Gadewch i mi fynd yn ei flaen ac ysgrifennu rhaglen o'r enw Gorlifo. 1266 01:01:43,690 --> 01:01:49,980 Dylech gynnwys CS50.h, yn cynnwys safon IO.h-- oh, 1267 01:01:49,980 --> 01:01:51,730 Fi 'n sylweddol colli fy amlygu cystrawen. 1268 01:01:51,730 --> 01:01:54,440 Felly gadewch i arbed hyn fel overflow.c. 1269 01:01:54,440 --> 01:01:57,084 >> Ac yn brif void-- awr int a chyn hir, rydym annhymerus ' 1270 01:01:57,084 --> 01:01:59,500 dod yn ôl i egluro pam byddwn yn cadw ysgrifennu prif ddi-rym int. 1271 01:01:59,500 --> 01:02:02,080 Ond am nawr, gadewch i ni dim ond gwneud iddo, gan gymryd yn ganiataol. 1272 01:02:02,080 --> 01:02:06,200 Gadewch i ni roi int fy hun, ac ymgychwyn i 0. 1273 01:02:06,200 --> 01:02:11,716 >> Gadewch i ni wedyn yn ei wneud ar gyfer int i gael zero-- mewn gwirionedd, gadewch i ni wneud yn dolen ddiddiwedd 1274 01:02:11,716 --> 01:02:12,590 a gweld beth sy'n digwydd. 1275 01:02:12,590 --> 01:02:22,440 Er bod wir, yna gadewch i ni argraffu n yw y cant i, slaes n, plug-in n. 1276 01:02:22,440 --> 01:02:27,200 Ond, yn awr, gadewch i ni wneud n cael n plws 1. 1277 01:02:27,200 --> 01:02:29,660 >> Felly, mewn geiriau eraill, ar bob un ailadrodd y dolen ddiddiwedd, 1278 01:02:29,660 --> 01:02:32,550 gadewch i ni gymryd gwerth n, yn ac ychwanegu 1 iddo, ac yna 1279 01:02:32,550 --> 01:02:34,350 storio y canlyniad yn ôl yn n ar y chwith. 1280 01:02:34,350 --> 01:02:37,150 Ac, mewn gwirionedd, yr ydym wedi gweld chystrawen ychydig fel hyn, yn fyr. 1281 01:02:37,150 --> 01:02:39,730 Mae tric oer yw yn lle hynny o ysgrifennu hyn i gyd allan, 1282 01:02:39,730 --> 01:02:42,770 alli 'n weithredol ddweud yn n plws yn dychwelyd 1. 1283 01:02:42,770 --> 01:02:47,480 >> Neu os ydych wir eisiau bod yn ffansi, allwch ddweud n plws plws hanner colon. 1284 01:02:47,480 --> 01:02:50,130 Ond mae'r rhain ddau olaf yn unig beth byddem yn galw siwgr cystrawennol 1285 01:02:50,130 --> 01:02:50,790 am y peth cyntaf. 1286 01:02:50,790 --> 01:02:53,456 >> Y peth cyntaf yn fwy eglur, hollol iawn, yn hollol gywir. 1287 01:02:53,456 --> 01:02:55,470 Ond mae hyn yn fwy cyffredin, byddaf yn dweud. 1288 01:02:55,470 --> 01:02:57,210 Felly byddwn yn gwneud hyn am ychydig funudau'n. 1289 01:02:57,210 --> 01:03:01,685 >> Gadewch i ni yn awr yn gwneud gorlif, sy'n swnio yn hytrach ominous, gorlif slaes dot. 1290 01:03:01,685 --> 01:03:04,380 1291 01:03:04,380 --> 01:03:09,852 Gadewch i ni weld, n mynd yn eithaf mawr. 1292 01:03:09,852 --> 01:03:11,310 Ond gadewch i ni feddwl, pa mor fawr y gall n ei gael? 1293 01:03:11,310 --> 01:03:12,870 >> n yn int. 1294 01:03:12,870 --> 01:03:16,400 Gwelsom funud yn ôl gyda maint enghraifft bod int yw pedwar bytes. 1295 01:03:16,400 --> 01:03:22,070 Rydym yn gwybod o wythnos diwethaf, pedwar bytes yn 32 darnau, gan fod 8 gwaith 4, dyna 32. 1296 01:03:22,070 --> 01:03:23,460 Mae hynny'n mynd i fod yn 4 biliwn a. 1297 01:03:23,460 --> 01:03:25,802 >> Ac rydym yn hyd at 800,000. 1298 01:03:25,802 --> 01:03:28,510 Mae hyn yn mynd i gymryd am byth i cyfrif fel uchel ag y gallaf. 1299 01:03:28,510 --> 01:03:30,635 Felly, yr wyf i'n mynd i fynd yn ei flaen, wrth i chi efallai cyn bo hir, 1300 01:03:30,635 --> 01:03:34,910 a tharo Rheoli C-- dweud y gwir, Rheoli C, llawer, lle Rheoli C gyffredinol 1301 01:03:34,910 --> 01:03:36,034 fodd canslo. 1302 01:03:36,034 --> 01:03:38,200 Yn anffodus, gan fod hyn yn rhedeg yn y cwmwl, 1303 01:03:38,200 --> 01:03:41,190 weithiau y cwmwl yn poeri allan cymaint stwff, 1304 01:03:41,190 --> 01:03:44,180 cymaint o allbwn, mae'n mynd i cymryd ychydig o amser ar gyfer fy mewnbwn 1305 01:03:44,180 --> 01:03:45,630 i gyrraedd y cwmwl. 1306 01:03:45,630 --> 01:03:49,240 Felly hyd yn oed er fy mod yn taro Rheoli C ychydig eiliadau yn ôl, 1307 01:03:49,240 --> 01:03:53,110 mae hyn yn bendant yr ochr effaith dolen ddiddiwedd. 1308 01:03:53,110 --> 01:03:56,070 >> Ac felly mewn achosion o'r fath, rydym yn mynd i adael hynny fod. 1309 01:03:56,070 --> 01:03:59,050 Ac rydym yn mynd i ychwanegu un arall ffenestr terfynell dros yma 1310 01:03:59,050 --> 01:04:03,186 gyda'r plws, nad wrth gwrs yn gwneud fel 'na, gan ei fod yn dal i feddwl. 1311 01:04:03,186 --> 01:04:05,310 A gadewch i ni fynd yn ei flaen a bod yn ychydig yn fwy rhesymol. 1312 01:04:05,310 --> 01:04:07,768 >> Rydw i'n mynd i fynd yn ei flaen ac yn gwneud hyn ond finitely lawer gwaith. 1313 01:04:07,768 --> 01:04:10,047 Gadewch i ni yn defnyddio ar gyfer dolen, yr wyf yn cyfeirio at gynharach. 1314 01:04:10,047 --> 01:04:10,630 Gadewch i ni wneud hyn. 1315 01:04:10,630 --> 01:04:13,430 Rhowch int newidyn arall i cael 0 mi. 1316 01:04:13,430 --> 01:04:17,430 ff yn llai na, gadewch i ni ddweud, 64 ff ++. 1317 01:04:17,430 --> 01:04:24,010 Ac yn awr gad i mi fynd yn ei flaen ac argraffu allan n yn y cant i, coma n. 1318 01:04:24,010 --> 01:04:27,547 Ac yna n-- hyn yn dal mynd i gymryd am byth. 1319 01:04:27,547 --> 01:04:28,130 Gadewch i ni wneud hyn. 1320 01:04:28,130 --> 01:04:30,620 >> n cael n amserau 2. 1321 01:04:30,620 --> 01:04:34,140 Neu gallem fod yn ffansi ac yn gwneud amseroedd yn dychwelyd 2. 1322 01:04:34,140 --> 01:04:37,120 Ond gadewch i 'jyst dweud n hafal hun, amseroedd 2. 1323 01:04:37,120 --> 01:04:39,321 Mewn geiriau eraill, yn hyn fersiwn newydd o'r rhaglen, 1324 01:04:39,321 --> 01:04:41,820 Nid wyf am i chi aros am byth o hoffi 800,000 i 4 biliwn. 1325 01:04:41,820 --> 01:04:43,070 Gadewch i ni ei gael dros hwn gyda. 1326 01:04:43,070 --> 01:04:44,920 >> Gadewch i ni mewn gwirionedd yn dyblu n bob tro. 1327 01:04:44,920 --> 01:04:47,660 Pa rai, galw i gof, dyblu yw'r gyferbyn gael, wrth gwrs. 1328 01:04:47,660 --> 01:04:50,035 A chan fod yr wythnos ddiwethaf rydym wedi rhywbeth eto, ac eto, 1329 01:04:50,035 --> 01:04:52,200 ac unwaith eto, gyflym super, dyblu fydd yn sicr 1330 01:04:52,200 --> 01:04:58,080 cael ni o 1 i'r mwyaf posibl gwerth y gallwn ddibynnu i gyda int. 1331 01:04:58,080 --> 01:04:59,750 >> Felly gadewch i ni wneud yn union hynny. 1332 01:04:59,750 --> 01:05:01,720 A byddwn yn dod yn ôl at hyn cyn hir. 1333 01:05:01,720 --> 01:05:04,180 Ond mae hyn, unwaith eto, yn union fel y bloc ailadrodd yn Scratch. 1334 01:05:04,180 --> 01:05:05,600 A byddwch yn defnyddio hyn cyn hir. 1335 01:05:05,600 --> 01:05:10,170 >> Mae hyn yn unig yn golygu cyfrif o sero hyd at, ond nid yn gyfartal, i 64. 1336 01:05:10,170 --> 01:05:14,285 Ac ar bob fersiwn o hyn dolen, jyst cadw incrementing i. 1337 01:05:14,285 --> 01:05:18,990 Felly, fi ++ - a lluniad cyffredinol hwn ar-lein 7 yn unig yw ffordd super gyffredin 1338 01:05:18,990 --> 01:05:22,290 o ailadrodd rhai llinellau cod, mae rhai nifer o weithiau. 1339 01:05:22,290 --> 01:05:23,362 Pa linellau o god? 1340 01:05:23,362 --> 01:05:25,570 Mae'r rhain braces cyrliog, fel y fod wedi lloffa o hyn, 1341 01:05:25,570 --> 01:05:26,780 golygu, yn gwneud y canlynol. 1342 01:05:26,780 --> 01:05:29,510 >> Mae yn Scratch fel, pan mae wedi y blociau melyn 1343 01:05:29,510 --> 01:05:32,680 a lliwiau eraill y math hwnnw o cofleidio neu hug flociau eraill. 1344 01:05:32,680 --> 01:05:34,750 Dyna beth cyrliog rhai bresys yn ei wneud yma. 1345 01:05:34,750 --> 01:05:40,200 Felly, os cefais fy cystrawen right-- chi Gellir gweld y symbol moron yn fodd C 1346 01:05:40,200 --> 01:05:42,706 dyna faint o weithiau roeddwn yn geisio datrys y broblem hon. 1347 01:05:42,706 --> 01:05:45,330 Felly gadewch i ni gael gwared ar y un yn gyfan gwbl, a chau y ffenestr. 1348 01:05:45,330 --> 01:05:46,520 A byddwn yn defnyddio'r un newydd. 1349 01:05:46,520 --> 01:05:51,980 Gwneud gorlif, slaes dot gorlif, Mewnbynnu, iawn, 1350 01:05:51,980 --> 01:05:53,090 mae'n edrych yn wael ar y dechrau. 1351 01:05:53,090 --> 01:05:56,200 Ond gadewch i sgrolio yn ôl mewn amser, oherwydd yr wyf yn gwneud hyn 64 o weithiau. 1352 01:05:56,200 --> 01:05:58,700 >> Ac yn sylwi ar y tro cyntaf, n yw 1. 1353 01:05:58,700 --> 01:06:03,110 Ail waith, n yw 2, Yna 4, yna 8, yna 16. 1354 01:06:03,110 --> 01:06:09,450 Ac mae'n ymddangos bod cyn gynted ag y Rwy'n cael i tua 1 biliwn, 1355 01:06:09,450 --> 01:06:12,800 os byddaf yn dyblu eto, mae hynny'n Dylai roi i mi 2 biliwn. 1356 01:06:12,800 --> 01:06:14,980 Ond mae'n troi allan, mae'n i'r dde ar y ffin. 1357 01:06:14,980 --> 01:06:18,930 >> Ac felly y mae mewn gwirionedd gorlifo mae int o 1 biliwn o 1358 01:06:18,930 --> 01:06:23,514 i fras negyddol 2 biliwn, gan fod cyfanrif, 1359 01:06:23,514 --> 01:06:25,430 yn wahanol i niferoedd yr ydym yn yn tybio yr wythnos diwethaf, 1360 01:06:25,430 --> 01:06:28,397 Gall fod yn gadarnhaol ac yn negyddol mewn gwirionedd ac mewn cyfrifiadur. 1361 01:06:28,397 --> 01:06:30,730 Ac felly o leiaf un o'r rheini darnau ei ddwyn yn effeithiol. 1362 01:06:30,730 --> 01:06:34,190 Felly, rydym mewn gwirionedd dim ond 31 o ddarnau, neu 2 biliwn o werthoedd posibl. 1363 01:06:34,190 --> 01:06:38,220 >> Ond am y tro, mae'r prydau parod yn eithaf yn syml, beth bynnag y niferoedd hyn yn 1364 01:06:38,220 --> 01:06:42,280 a beth bynnag yw'r math yw, rhywbeth drwg yn digwydd yn y pen draw, 1365 01:06:42,280 --> 01:06:46,980 oherwydd yn y pen draw yr ydych yn ceisio permute y darnau un gormod o weithiau. 1366 01:06:46,980 --> 01:06:51,060 A ydych yn effeithiol yn mynd o bob 1 i efallai pob un 0, neu'n efallai 1367 01:06:51,060 --> 01:06:54,260 dim ond rhai batrwm arall ei fod yn yn amlwg, yn dibynnu ar y cyd-destun, 1368 01:06:54,260 --> 01:06:56,342 gellir eu dehongli fel rhif negyddol. 1369 01:06:56,342 --> 01:06:59,300 Ac felly byddai'n ymddangos y wyf uchaf gallu cyfrif yn y rhaglen benodol hon 1370 01:06:59,300 --> 01:07:01,210 Dim ond fras 1 biliwn. 1371 01:07:01,210 --> 01:07:02,760 Ond mae 'na ateb rhannol yma. 1372 01:07:02,760 --> 01:07:03,480 Ti'n gwybod beth? 1373 01:07:03,480 --> 01:07:07,600 >> Gadewch i mi newid o int i hir hir. 1374 01:07:07,600 --> 01:07:10,633 A gadewch i mi fynd yn ei flaen yma ac say-- Rydw i'n mynd i gael 1375 01:07:10,633 --> 01:07:12,290 i newid hyn i heb eu llofnodi hir. 1376 01:07:12,290 --> 01:07:16,860 Neu, gadewch i ni weld erioed, yr wyf yn cofio fy hun. 1377 01:07:16,860 --> 01:07:19,920 >> Gadewch i ni fynd yn ei flaen ac yn gwneud gorlifo. 1378 01:07:19,920 --> 01:07:21,860 Na, nid dyna'r peth, LLD, diolch i chi. 1379 01:07:21,860 --> 01:07:23,430 Felly weithiau gall chlang fod yn ddefnyddiol. 1380 01:07:23,430 --> 01:07:27,550 Doeddwn i ddim yn cofio beth y fformat rhagnodwr oedd am hir hir. 1381 01:07:27,550 --> 01:07:28,950 >> Ond, yn wir, dywedodd chlang mi. 1382 01:07:28,950 --> 01:07:31,570 Green yw rhyw fath o dda, yn dal i olygu eich bod wedi gwneud camgymeriad. 1383 01:07:31,570 --> 01:07:33,190 Mae'n dyfalu fy mod yn golygu LLD. 1384 01:07:33,190 --> 01:07:38,750 >> Felly, gadewch i mi gymryd ei fod yn gyngor, yn hir rhif degol hir, ac eithrio bod. 1385 01:07:38,750 --> 01:07:43,190 A gadewch i mi ailgynnal iddo, dot slaes gorlif, Enter. 1386 01:07:43,190 --> 01:07:45,020 Ac yn awr beth cŵl yw hwn. 1387 01:07:45,020 --> 01:07:49,140 >> Os byddaf yn sgrolio yn ôl mewn amser, rydym yn dal yn dechrau cyfrif ar yr un place-- 1, 2, 4, 1388 01:07:49,140 --> 01:07:50,220 8, 16. 1389 01:07:50,220 --> 01:07:54,860 Rhybudd, rydym yn cael yr holl ffordd i fyny at 1 biliwn. 1390 01:07:54,860 --> 01:07:57,070 Ond yna rydym yn ddiogel mynd at 2 biliwn. 1391 01:07:57,070 --> 01:08:01,300 >> Yna rydym yn cael i 4 biliwn, Yna 8 biliwn, 17 o biliwn. 1392 01:08:01,300 --> 01:08:03,340 Ac rydym yn mynd yn uwch, ac uwch, ac yn uwch. 1393 01:08:03,340 --> 01:08:05,740 Yn y pen draw, mae hyn, hefyd, egwyliau. 1394 01:08:05,740 --> 01:08:09,350 >> Yn y pen draw, gyda hir hir, sef y gwerth 64-bit, nid 1395 01:08:09,350 --> 01:08:13,660 gwerth 32-bit, os ydych yn cyfrif rhy uchel, byddwch yn cofleidiol 0. 1396 01:08:13,660 --> 01:08:16,410 Ac yn yr achos hwn, rydym yn digwydd i yn y pen draw gyda nifer negyddol. 1397 01:08:16,410 --> 01:08:17,550 >> Felly, mae hyn yn broblem. 1398 01:08:17,550 --> 01:08:20,439 Ac mae'n troi allan bod hyn Nid problem yw pob arcane hynny. 1399 01:08:20,439 --> 01:08:23,060 Hyd yn oed er fy mod i wedi fwriadol achosir i ag camgymeriadau hyn, 1400 01:08:23,060 --> 01:08:26,149 mae'n troi allan rydym yn gweld ei fod yn fath o gyd ni, neu o leiaf rai ohonom o gwmpas yn ei wneud. 1401 01:08:26,149 --> 01:08:28,939 >> Felly, yn Star Wars Lego, os chi erioed wedi chwarae y gêm, 1402 01:08:28,939 --> 01:08:33,830 mae'n troi allan y gallwch chi fynd o gwmpas torri pethau i fyny yn y byd LEGO, 1403 01:08:33,830 --> 01:08:36,640 a chasglu darnau arian, yn y bôn. 1404 01:08:36,640 --> 01:08:39,200 Ac os ydych chi wedi chwarae erioed y gêm hon ffordd gormod o amser, 1405 01:08:39,200 --> 01:08:42,630 gan fod hyn yn unigolyn di-enw yma wnaeth, cyfanswm nifer 1406 01:08:42,630 --> 01:08:46,700 o ddarnau arian y gallwch ei gasglu yw, byddai'n ymddangos, 4 biliwn. 1407 01:08:46,700 --> 01:08:48,240 >> Yn awr, gyda 'i' talgrynnu mewn gwirionedd. 1408 01:08:48,240 --> 01:08:50,239 Felly LEGO yn ceisio cadw defnyddiwr pethau'n gyfeillgar. 1409 01:08:50,239 --> 01:08:53,779 Doedden nhw ddim yn gwneud hynny yn union 2 i 32 pŵer, yr wythnos diwethaf. 1410 01:08:53,779 --> 01:08:55,310 Ond 4 biliwn a yn rheswm. 1411 01:08:55,310 --> 01:08:58,979 Mae'n ymddangos, yn seiliedig ar y wybodaeth hon, hynny LEGO, a'r cwmni sy'n 1412 01:08:58,979 --> 01:09:02,624 gwneud meddalwedd gwirioneddol hyn, penderfynodd bod y nifer mwyaf o ddarnau arian 1413 01:09:02,624 --> 01:09:04,540 gall y defnyddiwr gronni yw, yn wir, 4 biliwn, 1414 01:09:04,540 --> 01:09:12,069 oherwydd eu bod wedi dewis yn eu cod i ddefnyddio nid yn hir hir, mae'n debyg, 1415 01:09:12,069 --> 01:09:16,140 ond dim ond yn gyfanrif, mae heb eu llofnodi cyfanrif, dim ond cyfanrif positif, y mae ei 1416 01:09:16,140 --> 01:09:18,089 fras max gwerth yn hynny. 1417 01:09:18,089 --> 01:09:19,380 Wel, dyma un ddoniol arall. 1418 01:09:19,380 --> 01:09:23,500 Felly, yn y gêm Civilization, a oedd yn efallai y bydd rhai ohonoch yn gyfarwydd, gyda 1419 01:09:23,500 --> 01:09:26,660 mae'n troi allan bod flynyddoedd yn ôl yno Roedd nam yn y gêm hon, lle 1420 01:09:26,660 --> 01:09:28,750 os ydych yn chwarae rôl o Gandhi yn y gêm, 1421 01:09:28,750 --> 01:09:34,020 yn ei le yn heddychwr iawn, yn lle hynny yn hynod, hynod 1422 01:09:34,020 --> 01:09:36,399 ymosodol, mewn rhai amgylchiadau. 1423 01:09:36,399 --> 01:09:40,529 Yn benodol, y ffordd y Civilization gweithfeydd yw os ydych yn, y chwaraewr, 1424 01:09:40,529 --> 01:09:44,680 fabwysiadu democratiaeth, eich sgôr ymosodol yn cael 1425 01:09:44,680 --> 01:09:48,130 ostwng o ddau, felly minws minws, ac yna minws minws. 1426 01:09:48,130 --> 01:09:50,569 >> Felly rydych tynnu 2 o eich ailadrodd gwirioneddol. 1427 01:09:50,569 --> 01:09:56,650 Yn anffodus, os yw eich ailadrodd yn i ddechrau 1, ac yn eich tynnu 2 ohono 1428 01:09:56,650 --> 01:09:59,050 ar ôl mabwysiadu'r democratiaeth fel Gandhi yma gallai 1429 01:09:59,050 --> 01:10:02,200 wedi ei wneud, oherwydd ei fod yn passive-- iawn 1 ar y raddfa o aggressiveness. 1430 01:10:02,200 --> 01:10:04,830 Ond os bydd yn mabwysiadu democratiaeth, yna mae'n mynd o 1 i negyddol 1. 1431 01:10:04,830 --> 01:10:11,470 >> Yn anffodus, roeddent yn ddefnyddio rhifau heb eu harwyddo, 1432 01:10:11,470 --> 01:10:15,400 sy'n golygu eu trin yn hyd yn oed yn negyddol rhifau fel pe baent yn gadarnhaol. 1433 01:10:15,400 --> 01:10:19,780 Ac mae'n ymddangos bod y sy'n cyfateb cadarnhaol o negyddol 1, 1434 01:10:19,780 --> 01:10:23,480 mewn rhaglenni cyfrifiadurol nodweddiadol, yw 255. 1435 01:10:23,480 --> 01:10:27,250 Felly os Gandhi yn mabwysiadu democratiaeth, ac felly mae 1436 01:10:27,250 --> 01:10:32,470 gostwng ei sgôr ymosodol, mewn gwirionedd mae'n rholiau o gwmpas i 255 1437 01:10:32,470 --> 01:10:35,470 ac yn ei wneud yn y rhan fwyaf o cymeriad ymosodol yn y gêm. 1438 01:10:35,470 --> 01:10:36,930 Felly gallwch Google i fyny ar hyn. 1439 01:10:36,930 --> 01:10:39,380 Ac yr oedd, yn wir, mae bug rhaglennu damweiniol, 1440 01:10:39,380 --> 01:10:43,010 ond mae hynny wedi mynd yn eithaf y llên byth ers hynny. 1441 01:10:43,010 --> 01:10:44,360 >> Dyna i gyd yn hwyl ac yn cute. 1442 01:10:44,360 --> 01:10:47,760 Yn fwy brawychus yw pan gwirioneddol dyfeisiau byd go iawn, ac nid gemau, 1443 01:10:47,760 --> 01:10:48,820 cael yr un bugs hyn. 1444 01:10:48,820 --> 01:10:54,500 Yn wir, dim ond blwyddyn yn ôl daeth erthygl gwybod am y Boeing 787 Dreamliner. 1445 01:10:54,500 --> 01:10:56,850 >> Ac mae'r erthygl ar y dechrau Cipolwg yn darllen ychydig o arcane. 1446 01:10:56,850 --> 01:11:01,480 Ond mae'n dweud hyn, mae meddalwedd yn agored i niwed yn Boeing 1447 01:11:01,480 --> 01:11:04,790 newydd 787 Dreamliner jet wedi â'r potensial i achosi cynlluniau peilot 1448 01:11:04,790 --> 01:11:07,220 i golli rheolaeth yr awyren, o bosibl 1449 01:11:07,220 --> 01:11:11,750 yng nghanol hedfan, mae'r swyddogion FAA cwmnïau hedfan rhybuddio ddiweddar. 1450 01:11:11,750 --> 01:11:14,520 Hwn oedd y penderfyniad bod model 787 1451 01:11:14,520 --> 01:11:19,770 awyren sydd wedi ei bweru barhaus am 248 o ddiwrnodau 1452 01:11:19,770 --> 01:11:24,880 Gall colli pob eiledol cyfredol, AC, pŵer trydanol oherwydd y generadur 1453 01:11:24,880 --> 01:11:28,892 unedau rheoli, GCUs, ar yr un pryd mynd i fethu modd diogel. 1454 01:11:28,892 --> 01:11:29,850 Mae'n fath o golli mi. 1455 01:11:29,850 --> 01:11:35,390 Ond dywedodd y memo, OK, yn awr yr wyf got hynny, y cyflwr ei achosi gan feddalwedd 1456 01:11:35,390 --> 01:11:38,590 wrthweithio mewnol i rheoli generadur 1457 01:11:38,590 --> 01:11:44,860 unedau a fydd yn gorlifo ar ôl 248 diwrnod o bŵer parhaus. 1458 01:11:44,860 --> 01:11:47,070 Rydym yn cyhoeddi'r hyn sylwi i atal colli 1459 01:11:47,070 --> 01:11:49,300 o'r holl AC trydanol pŵer, a allai arwain 1460 01:11:49,300 --> 01:11:50,980 yn colli rheolaeth ar yr awyren. 1461 01:11:50,980 --> 01:11:55,380 >> Felly, yn llythrennol, mae rhywfaint o gyfanrif, neu ryw fath o ddata cyfatebol, 1462 01:11:55,380 --> 01:11:57,960 cael eu defnyddio mewn meddalwedd mewn awyren go iawn 1463 01:11:57,960 --> 01:12:00,756 os byddwch yn cadw eich awyren ar ddigon hir, a oedd yn ôl pob golwg 1464 01:12:00,756 --> 01:12:03,880 Gall fod yn wir os ydych ond yn rhedeg hwy yn gyson a byth thynnu plygiau 1465 01:12:03,880 --> 01:12:06,810 eich awyren, mae'n ymddangos, neu osod ei batris yn marw, 1466 01:12:06,810 --> 01:12:09,840 yn y pen draw yn cyfrif i fyny, ac i fyny, ac i fyny, ac i fyny, ac i fyny, ac i fyny. 1467 01:12:09,840 --> 01:12:12,150 >> Ac, wrth natur, yn swm cyfyngedig o gof 1468 01:12:12,150 --> 01:12:15,880 Bydd gorlifo, rholio yn ôl i sero neu ryw werth negyddol, 1469 01:12:15,880 --> 01:12:19,920 sgîl-effaith o sef y realiti ddychrynllyd go iawn 1470 01:12:19,920 --> 01:12:23,970 y gallai fod angen yr awyren i gael eu hailgychwyn, yn effeithiol, 1471 01:12:23,970 --> 01:12:27,290 neu a allai ddisgyn, yn waeth, wrth iddo hedfan. 1472 01:12:27,290 --> 01:12:29,230 Felly mathau hyn o faterion yn dal i fod gyda ni, 1473 01:12:29,230 --> 01:12:33,130 even-- roedd hon yn erthygl 2015, oed yn fwy brawychus 1474 01:12:33,130 --> 01:12:36,100 pan nad ydych yn ei wneud o reidrwydd deall, gwerthfawrogi, neu ragweld 1475 01:12:36,100 --> 01:12:38,640 mathau hynny o wallau. 1476 01:12:38,640 --> 01:12:42,030 >> Felly, mae'n troi allan yna un arall beth drwg am gynrychiolaeth data. 1477 01:12:42,030 --> 01:12:47,080 Mae'n ymddangos bod hyd yn oed yn arnofion yn fath o ddiffygiol, oherwydd fflotiau, hefyd, 1478 01:12:47,080 --> 01:12:51,440 Gynigiais yn 32 ddarnau, neu efallai 64 os ydych yn defnyddio dwbl. 1479 01:12:51,440 --> 01:12:53,070 Ond mae hynny'n dal i fod cyfyngedig. 1480 01:12:53,070 --> 01:12:57,070 >> Ac mae'r dal yw bod os gallwch rhoi nifer anfeidrol o rifau 1481 01:12:57,070 --> 01:12:59,460 ar ôl y pwynt degol, nid oes unrhyw ffordd i chi 1482 01:12:59,460 --> 01:13:02,690 Gall gynrychioli'r holl posibl rhifau ein bod yn dysgu 1483 01:13:02,690 --> 01:13:04,990 yn radd gall ysgol bodoli yn y byd. 1484 01:13:04,990 --> 01:13:08,870 Mae cyfrifiadur, yn y bôn, yn gorfod dewis is-set o'r niferoedd hynny 1485 01:13:08,870 --> 01:13:10,200 i gynrychioli gywir. 1486 01:13:10,200 --> 01:13:12,450 >> Yn awr, gall y cyfrifiadur crwn efallai ychydig bach, 1487 01:13:12,450 --> 01:13:17,900 a gallwch ganiatáu i fras siop unrhyw rif efallai y byddwch o bosibl yn dymuno. 1488 01:13:17,900 --> 01:13:20,940 Ond dim ond yn reddfol, os ydych yn gennym nifer cyfyngedig o ddarnau, 1489 01:13:20,940 --> 01:13:24,560 gallwch ond eu permute mewn cymaint o ffyrdd cyfyngedig. 1490 01:13:24,560 --> 01:13:26,570 Felly, ni allwch o bosibl defnyddio nifer gyfyngedig 1491 01:13:26,570 --> 01:13:29,880 o permutation o ddarnau, patrymau zeros a rhai, 1492 01:13:29,880 --> 01:13:32,940 i gynrychioli anfeidrol nifer o rifau, 1493 01:13:32,940 --> 01:13:37,370 sy'n awgrymu bod gallai cyfrifiaduron yn dda iawn yn gorwedd i ni weithiau. 1494 01:13:37,370 --> 01:13:38,770 >> Yn wir, gadewch i ni wneud hyn. 1495 01:13:38,770 --> 01:13:41,239 Gadewch i mi fynd yn ôl i mewn i IDE CS50. 1496 01:13:41,239 --> 01:13:43,030 Gadewch i mi fynd yn ei flaen ac creu ychydig o raglen 1497 01:13:43,030 --> 01:13:47,940 Gelwir Imprecision, i ddangos bod cyfrifiaduron yn, yn wir, yn amhenodol. 1498 01:13:47,940 --> 01:13:51,910 >> A gadewch i mi fynd yn ei flaen ac yn dechrau gyda rhai o'r cod hwnnw o o'r blaen, 1499 01:13:51,910 --> 01:13:53,830 ac yn awr yn unig yn gwneud y canlynol. 1500 01:13:53,830 --> 01:14:03,640 Gadewch i mi fynd yn ei flaen ac yn gwneud printf, y cant f, n slaes, 1 rannu gan 10. 1501 01:14:03,640 --> 01:14:07,430 Mewn geiriau eraill, gadewch i ni plymio yn ddyfnach i 1/10, fel 1 a rannu gan 10. 1502 01:14:07,430 --> 01:14:09,760 Yn sicr, gall cyfrifiadur gynrychioli 1/10. 1503 01:14:09,760 --> 01:14:13,620 >> Felly gadewch i ni fynd yn ei flaen ac yn gwneud imprecision. 1504 01:14:13,620 --> 01:14:14,390 Gawn ni weld. 1505 01:14:14,390 --> 01:14:16,210 Fformat nodi deipio dwbl. 1506 01:14:16,210 --> 01:14:18,160 Ond mae'r ddadl wedi int fath. 1507 01:14:18,160 --> 01:14:19,040 Beth sy'n Digwydd? 1508 01:14:19,040 --> 01:14:21,970 >> O, diddorol, felly mae'n Dysgodd wers oddi blaen. 1509 01:14:21,970 --> 01:14:26,050 I ddim yn dweud, hey, sioe cyfrifiadur mi fflôt gyda cant f. 1510 01:14:26,050 --> 01:14:28,200 Ond dw i'n rhoi 2 ints. 1511 01:14:28,200 --> 01:14:31,120 Felly, mae'n troi allan, gallaf atgyweiria hwn mewn cwpl o ffyrdd. 1512 01:14:31,120 --> 01:14:38,430 >> Gallai Fi jyst troi un yn 1.0, a 10 i 10.0, a fyddai, yn wir, 1513 01:14:38,430 --> 01:14:42,390 cael yr effaith o drosi nhw i floats-- dal gobeithio 1514 01:14:42,390 --> 01:14:43,180 yr un nifer. 1515 01:14:43,180 --> 01:14:45,880 Neu mae'n troi allan bod rhywbeth byddwn yn gweld eto cyn hir. 1516 01:14:45,880 --> 01:14:47,170 Gallech fwrw y rhifau. 1517 01:14:47,170 --> 01:14:49,880 >> Gallwch, gan ddefnyddio cromfachau hwn mynegiant, gallwch ddweud, 1518 01:14:49,880 --> 01:14:52,560 hey, cyfrifiadur, yn cymryd hyn 10, a gwn yn int. 1519 01:14:52,560 --> 01:14:54,660 Ond yn ei drin, os gwelwch yn dda, fel pe ei fod yn arnofio. 1520 01:14:54,660 --> 01:14:56,680 Ond mae hyn yn teimlo'n ddiangen o gymhleth. 1521 01:14:56,680 --> 01:14:59,040 >> At ein dibenion heddiw, gadewch i ni dim ond yn llythrennol 1522 01:14:59,040 --> 01:15:02,700 gwneud iddynt fel y bo'r angen gwerthoedd pwynt gyda phwynt degol, fel hyn. 1523 01:15:02,700 --> 01:15:07,060 Gadewch i mi fynd yn ei flaen ac ailgynnal, yn gwneud imprecision, da, slaes dot 1524 01:15:07,060 --> 01:15:08,870 imprecision, rhowch. 1525 01:15:08,870 --> 01:15:10,990 OK, rydym yn edrych yn dda. 1526 01:15:10,990 --> 01:15:18,194 >> 1 rannu gan 10, yn ôl fy Mac yma, yw, yn wir, 0.100000. 1527 01:15:18,194 --> 01:15:21,360 Yn awr, yr wyf yn ei dysgu yn yr ysgol radd yno Dylai fod nifer anfeidrol o 0 yn. 1528 01:15:21,360 --> 01:15:23,151 Felly gadewch i ni o leiaf yn ceisio i weld rhai o'r rheini. 1529 01:15:23,151 --> 01:15:26,770 Mae'n ymddangos bod printf yn ychydig dal i fod yn ffansi nag yr ydym wedi bod yn defnyddio. 1530 01:15:26,770 --> 01:15:30,890 Mae'n troi allan nid oes rhaid i chi nodi jyst cant f, neu dim ond y cant i. 1531 01:15:30,890 --> 01:15:33,830 alli 'n weithredol bennu rhai opsiynau rheoli yma. 1532 01:15:33,830 --> 01:15:36,470 >> Yn benodol, yr wyf i'n mynd i ddweud, hey, printf, 1533 01:15:36,470 --> 01:15:39,660 mewn gwirionedd yn dangos i mi 10 pwynt degol. 1534 01:15:39,660 --> 01:15:40,820 Felly mae'n edrych ychydig yn od. 1535 01:15:40,820 --> 01:15:42,845 Ond rydych yn ei ddweud y cant, dot, faint o rifau 1536 01:15:42,845 --> 01:15:44,970 ydych chi eisiau gweld ar ôl y pwynt degol, ac yna f 1537 01:15:44,970 --> 01:15:48,340 ar gyfer fflat, dim ond oherwydd dyna yr hyn y mae'r ddogfennaeth yn ei ddweud. 1538 01:15:48,340 --> 01:15:50,080 Gadewch i mi fynd yn ei flaen ac arbed hynny. 1539 01:15:50,080 --> 01:15:52,460 >> Ac yn sylwi hefyd, Im 'yn cael wedi blino o aildeipio pethau. 1540 01:15:52,460 --> 01:15:55,900 Felly Im 'jyst yn gosod y fyny ac i saeth i lawr ar fy allweddi yma. 1541 01:15:55,900 --> 01:15:58,710 Ac os wyf yn cadw taro i fyny, i chi Gellir gweld pob un o'r gorchmynion 1542 01:15:58,710 --> 01:16:01,090 a wneuthum, neu eu gwneud yn anghywir. 1543 01:16:01,090 --> 01:16:04,630 >> Ac yr wyf i'n mynd i fynd yn ei flaen yn awr ac Nid yw defnyddio mewn gwirionedd hynny, mae'n debyg. 1544 01:16:04,630 --> 01:16:11,416 Gwneud imprecision, dot slaes imprecision-- felly 1545 01:16:11,416 --> 01:16:13,290 hyn yr oeddwn yn dysgu yn ysgol radd gwiriadau allan. 1546 01:16:13,290 --> 01:16:19,010 Hyd yn oed os ydw i'n argraffu i 10 degol yn ei osod, yn wir, yw 0.10000. 1547 01:16:19,010 --> 01:16:19,840 Ond eich bod yn gwybod beth? 1548 01:16:19,840 --> 01:16:21,150 >> Gadewch i ni gael ychydig farus. 1549 01:16:21,150 --> 01:16:23,990 Dewch i ddweud, fel, yn dangos i mi 55 pwyntiau ar ôl y pwynt degol. 1550 01:16:23,990 --> 01:16:26,160 Gadewch i 'n sylweddol yn cymryd hyn rhaglennu allan am sbin. 1551 01:16:26,160 --> 01:16:31,170 Gadewch i mi ail-wneud gyda gwneud imprecision, dot slaes, imprecision. 1552 01:16:31,170 --> 01:16:32,390 >> A dyma ni yn mynd. 1553 01:16:32,390 --> 01:16:34,420 Eich plentyndod oedd yn gelwydd. 1554 01:16:34,420 --> 01:16:48,410 Mae'n debyg, 1 rannu gan 10 yn wir 0.100000000000000005551115123-- 1555 01:16:48,410 --> 01:16:49,740 >> Beth sy'n mynd ymlaen? 1556 01:16:49,740 --> 01:16:53,360 Wel, mae'n troi allan, os ydych yn fath o edrych yn ddigon pell yn yr gwaelodol 1557 01:16:53,360 --> 01:16:55,950 cynrychiolaeth o hyn Rhif, mae'n mewn gwirionedd 1558 01:16:55,950 --> 01:17:00,400 Nid yw union 1/10, neu 0.1 a nifer anfeidrol o sero. 1559 01:17:00,400 --> 01:17:01,630 Yn awr, pam hynny? 1560 01:17:01,630 --> 01:17:06,250 >> Wel, er bod hyn yn syml rhif i ni bodau dynol, 1 rannu gan 10, 1561 01:17:06,250 --> 01:17:10,910 mae'n dal i fod yn un o ganmil llawer niferoedd y gallem feddwl i fyny. 1562 01:17:10,910 --> 01:17:14,490 Ond gall cyfrifiadur yn unig yn cynrychioli finitely llawer o rifau hynny. 1563 01:17:14,490 --> 01:17:18,710 Ac felly, yn effeithiol, yr hyn y mae'r cyfrifiadur yn dangos i ni yw ei agosaf 1564 01:17:18,710 --> 01:17:22,940 brasamcan i'r rhif rydym am i gredu yn 1/10, 1565 01:17:22,940 --> 01:17:27,760 neu yn wir 0.10000 ad infinitum. 1566 01:17:27,760 --> 01:17:30,425 >> Yn hytrach, fodd bynnag, mae hyn yn mor agos ag y gall wneud. 1567 01:17:30,425 --> 01:17:32,300 Ac, yn wir, os edrychwch o dan y cwfl, 1568 01:17:32,300 --> 01:17:37,050 gan ein bod yma drwy edrych 55 digid ar ôl y degol, 1569 01:17:37,050 --> 01:17:39,990 rydym mewn gwirionedd yn gweld y realiti hwnnw. 1570 01:17:39,990 --> 01:17:42,610 Nawr wrth fynd heibio, os ydych chi wedi gweld erioed yr movie-- 1571 01:17:42,610 --> 01:17:45,780 y rhan fwyaf ohonoch yn ôl pob tebyg haven't-- ond Superman 3 rai blynyddoedd yn ôl, 1572 01:17:45,780 --> 01:17:49,500 Richard Pryor leveraged hwn yn ei hanfod realiti yn ei gwmni i ddwyn llawer 1573 01:17:49,500 --> 01:17:53,500 o ffracsiynau a ffracsiynau o geiniogau, oherwydd bod y company-- fel yr wyf yn cofio, 1574 01:17:53,500 --> 01:17:57,210 mae wedi bod yn while-- yn ei hanfod taflu i ffwrdd unrhyw beth nad oedd yn cyd-fynd 1575 01:17:57,210 --> 01:17:58,790 i mewn i'r syniad o cents. 1576 01:17:58,790 --> 01:18:01,480 >> Ond os ydych yn ychwanegu at hyn i gyd bach, bach, rhifau bach eto, 1577 01:18:01,480 --> 01:18:04,960 ac unwaith eto, ac unwaith eto, gallwch, fel yn ei achos, yn gwneud swm da o arian. 1578 01:18:04,960 --> 01:18:08,010 >> Yr un syniad yn twyllo gan yn fwy diweddar, ond yn dal yn awr yn hŷn 1579 01:18:08,010 --> 01:18:10,500 ffilm, o'r enw Space Office, lle mae'r guys yn y ffilm, 1580 01:18:10,500 --> 01:18:13,501 gwneud yr un peth, gwyneb i fyny yn gyfan gwbl, a ddaeth i ben i fyny gyda ffordd gormod 1581 01:18:13,501 --> 01:18:14,666 arian yn eu cyfrif banc. 1582 01:18:14,666 --> 01:18:15,800 Roedd y cyfan yn amheus iawn. 1583 01:18:15,800 --> 01:18:19,290 Ond ar ddiwedd y dydd, imprecision o'n cwmpas. 1584 01:18:19,290 --> 01:18:22,240 >> A dyna, hefyd, yn gallu bod yn ddychrynllyd yr achos. 1585 01:18:22,240 --> 01:18:25,590 Mae'n ymddangos bod Superman 3 a Gofod Swyddfa neilltu, yna 1586 01:18:25,590 --> 01:18:28,460 Gall fod rhywfaint go iawn oblygiadau byd 1587 01:18:28,460 --> 01:18:32,290 o realiti amhenodol cynrychiolaeth o ddata 1588 01:18:32,290 --> 01:18:34,770 bod hyd yn oed i ni bodau dynol i y diwrnod hwn yn ei wneud nid o reidrwydd 1589 01:18:34,770 --> 01:18:38,230 deall yn ogystal ag y dylem, neu gofio mor aml ag y dylem. 1590 01:18:38,230 --> 01:18:42,950 Ac, yn wir, mae'r clip canlynol o edrych ar rai byd real iawn 1591 01:18:42,950 --> 01:18:47,730 goblygiadau beth sy'n digwydd os ydych yn peidiwch â gwerthfawrogi'r imprecision sy'n 1592 01:18:47,730 --> 01:18:50,065 Gall ddigwydd mewn cynrychiolaeth rhifau. 1593 01:18:50,065 --> 01:18:51,300 >> [VIDEO Playback] 1594 01:18:51,300 --> 01:18:55,620 >> -Computers, Rydym ni i gyd wedi dod i dderbyn y problemau yn aml yn rhwystredig 1595 01:18:55,620 --> 01:19:00,310 fynd gyda them-- bugs, firysau, a glitches meddalwedd, 1596 01:19:00,310 --> 01:19:03,130 am brisiau bach i'w dalu er hwylustod. 1597 01:19:03,130 --> 01:19:07,800 Ond mewn uwch-dechnoleg a cyflymder uchel ceisiadau milwrol a rhaglen ofod, 1598 01:19:07,800 --> 01:19:12,800 gall y broblem lleiaf yn cael ei chwyddo i mewn i drychineb. 1599 01:19:12,800 --> 01:19:18,900 >> Ar Fehefin y 4ydd o, 1996, gwyddonwyr a baratowyd i lansio di-griw Ariane 5 roced. 1600 01:19:18,900 --> 01:19:21,220 Roedd yn cario gwyddonol lloerennau a gynlluniwyd 1601 01:19:21,220 --> 01:19:24,600 i sefydlu union sut mae'r rhyngweithio maes magnetig y ddaear yn 1602 01:19:24,600 --> 01:19:27,410 gyda gwyntoedd solar. 1603 01:19:27,410 --> 01:19:30,800 Roedd y roced ei adeiladu ar gyfer Asiantaeth Gofod Ewrop, 1604 01:19:30,800 --> 01:19:34,370 ac codi oddi ar ei gyfleuster ar arfordir Giana Ffrengig. 1605 01:19:34,370 --> 01:19:37,540 >> -ar Tua 37 eiliad i mewn yr awyren, yn gyntaf 1606 01:19:37,540 --> 01:19:39,270 rhywbeth a sylwi yn mynd o'i le. 1607 01:19:39,270 --> 01:19:42,250 Mae'r nozzles yn swiveling mewn ffordd y maent yn ddim wir dylai. 1608 01:19:42,250 --> 01:19:46,580 Mae tua 40 eiliad i mewn i'r awyren, yn amlwg, y cerbyd oedd mewn trafferth. 1609 01:19:46,580 --> 01:19:48,850 >> A dyna pan fyddant yn gwneud penderfyniad i ddinistrio. 1610 01:19:48,850 --> 01:19:52,780 Mae'r swyddog diogelwch amrediad, gyda perfedd aruthrol, gwasgu y botwm, 1611 01:19:52,780 --> 01:19:58,150 chwythu i fyny y roced, cyn y gallai yn dod yn berygl i ddiogelwch y cyhoedd. 1612 01:19:58,150 --> 01:20:01,060 >> -Mae Hyn oedd y forwyn mordaith y Ariane 5. 1613 01:20:01,060 --> 01:20:03,960 Ac yn ei dinistrio gymerodd gosod oherwydd nam 1614 01:20:03,960 --> 01:20:05,822 gwreiddio mewn meddalwedd y roced yn. 1615 01:20:05,822 --> 01:20:08,280 -Y Broblem ar y Ariane oedd fod yna nifer sy'n 1616 01:20:08,280 --> 01:20:10,600 ofynnol i 64 ddarnau i fynegi. 1617 01:20:10,600 --> 01:20:13,590 Ac roedden nhw am i drosi ag ef i rhif 16-bit. 1618 01:20:13,590 --> 01:20:15,610 Maent yn cymryd yn ganiataol bod y byth rhif yn mynd 1619 01:20:15,610 --> 01:20:20,980 i fod yn fawr iawn, bod y rhan fwyaf o'r rhai a digidau mewn rhif 64-bit yn sero. 1620 01:20:20,980 --> 01:20:22,440 Eu bod yn anghywir. 1621 01:20:22,440 --> 01:20:25,060 >> -y Anallu un rhaglen feddalwedd i dderbyn 1622 01:20:25,060 --> 01:20:29,510 y math o rif a gynhyrchir gan Roedd un arall wrth wraidd y methiant. 1623 01:20:29,510 --> 01:20:34,350 Datblygu meddalwedd wedi dod yn rhan gostus iawn o dechnoleg newydd. 1624 01:20:34,350 --> 01:20:38,140 Mae'r roced Ariane wedi bod yn iawn llwyddiannus, felly mae llawer o'r meddalwedd 1625 01:20:38,140 --> 01:20:41,550 creu ar gyfer yr oedd hefyd a ddefnyddir yn y Ariane 5. 1626 01:20:41,550 --> 01:20:47,940 >> -Y Broblem sylfaenol oedd bod y Ariane 5 oedd yn gyflymach, cyflymu gyflymach. 1627 01:20:47,940 --> 01:20:51,450 Ac nid y feddalwedd oedd yn cyfrif am hynny. 1628 01:20:51,450 --> 01:20:55,060 >> -y Dinistr y roced oedd yn drychineb ariannol enfawr, 1629 01:20:55,060 --> 01:20:58,790 pob oherwydd gwall meddalwedd munud. 1630 01:20:58,790 --> 01:21:01,210 Ond nid hwn oedd y cyntaf problemau trosi data amser 1631 01:21:01,210 --> 01:21:04,820 wedi plagued dechnoleg roced fodern. 1632 01:21:04,820 --> 01:21:08,050 >> -Yn 1991, â dechrau y Rhyfel y Gwlff cyntaf, 1633 01:21:08,050 --> 01:21:10,570 y Patriot Taflegrau profi rhyw fath tebyg 1634 01:21:10,570 --> 01:21:12,800 o broblem trosi rhif. 1635 01:21:12,800 --> 01:21:16,090 Ac o ganlyniad, mae 28 o bobl, 28 o filwyr Americanaidd, 1636 01:21:16,090 --> 01:21:19,080 eu lladd, ac am 100 arall hanafu, 1637 01:21:19,080 --> 01:21:22,780 pan fydd y Gwladgarwr, a oedd i fod i amddiffyn yn erbyn scuds sy'n dod i mewn, 1638 01:21:22,780 --> 01:21:25,830 Methodd i danio taflegryn. 1639 01:21:25,830 --> 01:21:31,670 >> -Pan Irac ymosododd Kuwait, ac America Lansiwyd Desert Storm yn gynnar yn 1991, 1640 01:21:31,670 --> 01:21:35,780 batris Patriot Taflegrau Lleolwyd i amddiffyn Saudi Arabia ac Israel 1641 01:21:35,780 --> 01:21:39,230 rhag ymosodiadau taflegryn Scud Irac. 1642 01:21:39,230 --> 01:21:43,810 Mae'r Gwladgarwr yn gyfrwng-range Unol Daleithiau wyneb i system aer, a weithgynhyrchir 1643 01:21:43,810 --> 01:21:45,770 gan y cwmni Raytheon. 1644 01:21:45,770 --> 01:21:52,340 >> -y Maint y ataliwr Patriot ei hun yn ymwneud tua 20 troedfedd o hyd. 1645 01:21:52,340 --> 01:21:55,230 Ac mae'n pwyso tua 2,000 o bunnoedd. 1646 01:21:55,230 --> 01:21:59,320 Ac mae'n cario warhead o tua, Rwy'n credu ei fod yn fras 150 o bunnoedd. 1647 01:21:59,320 --> 01:22:03,930 Ac mae'r warhead ei hun yn yn ffrwydrol uchel, sy'n 1648 01:22:03,930 --> 01:22:07,330 Mae darnau o'i gwmpas. 1649 01:22:07,330 --> 01:22:11,680 Mae'r casin y warhead yw cynllunio i weithredu fel fwled. 1650 01:22:11,680 --> 01:22:14,110 >> -Y Taflegrau yn cael eu cynnal pedwar y cynhwysydd, 1651 01:22:14,110 --> 01:22:17,130 ac yn cael eu cludo gan lled ôl-gerbyd. 1652 01:22:17,130 --> 01:22:24,930 >> -Y System Gwladgarwr gwrth-taflegryn mynd yn ôl o leiaf 20 mlynedd bellach. 1653 01:22:24,930 --> 01:22:28,420 Fe'i cynlluniwyd yn wreiddiol fel taflegryn amddiffyn awyr 1654 01:22:28,420 --> 01:22:30,720 i saethu i lawr awyrennau gelyn. 1655 01:22:30,720 --> 01:22:34,500 Yn y Rhyfel y Gwlff cyntaf, pan ddaeth y rhyfel draw, 1656 01:22:34,500 --> 01:22:39,745 y Fyddin am ei ddefnyddio i saethu i lawr scuds, nid awyrennau. 1657 01:22:39,745 --> 01:22:43,620 >> Roedd y Llu Awyr Irac nid yn gymaint o broblem. 1658 01:22:43,620 --> 01:22:46,670 Ond mae'r Fyddin yn poeni am scuds. 1659 01:22:46,670 --> 01:22:50,170 Ac felly maent yn ceisio uwchraddio'r Gwladgarwr. 1660 01:22:50,170 --> 01:22:52,800 >> -Intercepting Gelyn taflegryn teithio ar mach 5 1661 01:22:52,800 --> 01:22:55,830 yn mynd i fod yn ddigon heriol. 1662 01:22:55,830 --> 01:22:58,490 Ond pan fydd y Gwladgarwr ei rhuthro i mewn i wasanaeth, 1663 01:22:58,490 --> 01:23:02,860 Nid oedd y Fyddin yn ymwybodol o addasiad Irac a wnaeth 1664 01:23:02,860 --> 01:23:05,930 eu scuds bron yn amhosibl i daro. 1665 01:23:05,930 --> 01:23:10,740 >> -Beth Ddigwyddodd yw'r scuds sy'n yn dod i mewn yn ansefydlog. 1666 01:23:10,740 --> 01:23:11,692 Roeddent yn wobbling. 1667 01:23:11,692 --> 01:23:14,910 Y rheswm am hyn oedd y Irac, er mwyn 1668 01:23:14,910 --> 01:23:18,280 i gael 600 cilomedr allan o 300 cilometr 1669 01:23:18,280 --> 01:23:21,700 ystod taflegryn, cymerodd pwysau allan o'r warhead flaen. 1670 01:23:21,700 --> 01:23:23,390 Gwnaethant y warhead ysgafnach. 1671 01:23:23,390 --> 01:23:27,330 >> Felly, yn awr y Gwladgarwr yn ceisio dod yn y Scud. 1672 01:23:27,330 --> 01:23:30,230 Ac yn y rhan fwyaf o'r amser, mae'r mwyafrif llethol o'r amser, 1673 01:23:30,230 --> 01:23:32,940 byddai'n jyst yn hedfan gan y Scud. 1674 01:23:32,940 --> 01:23:37,260 Unwaith y bydd y gweithredwyr system Gwladgarwr sylweddolodd y Gwladgarwr colli ei darged, 1675 01:23:37,260 --> 01:23:41,690 maent yn tanio warhead y Gwladgarwr yn er mwyn osgoi anafiadau posibl os bydd yn 1676 01:23:41,690 --> 01:23:44,570 caniatawyd i ddisgyn i'r llawr. 1677 01:23:44,570 --> 01:23:48,790 >> -bod Oedd yr hyn a welodd y rhan fwyaf o bobl, fireballs mawr hynny yn yr awyr, 1678 01:23:48,790 --> 01:23:54,550 ac camddeall fel intercepts o arfbennau Scud. 1679 01:23:54,550 --> 01:23:56,630 >> -Although Yn y nos awyr, ymddangosodd wladgarwyr 1680 01:23:56,630 --> 01:24:00,370 i fod yn llwyddiannus dinistrio Scuds, yn Dhahran, 1681 01:24:00,370 --> 01:24:03,360 Gallai fod unrhyw gamgymeriad am ei berfformiad. 1682 01:24:03,360 --> 01:24:07,970 Yno, system radar y Gwladgarwr yn colli trac o Scud sy'n dod i mewn, 1683 01:24:07,970 --> 01:24:10,721 a byth ei lansio sy'n ddyledus i nam meddalwedd. 1684 01:24:10,721 --> 01:24:14,090 1685 01:24:14,090 --> 01:24:18,940 Hwn oedd y Israeliaid sydd ddarganfuwyd gyntaf bod y system yn hwy oedd ar, 1686 01:24:18,940 --> 01:24:22,690 y mwyaf yw'r amser anghysondeb Daeth, o ganlyniad i cloc hymgorffori 1687 01:24:22,690 --> 01:24:24,810 yn cyfrifiadurol y system. 1688 01:24:24,810 --> 01:24:28,210 >> -About Bythefnos cyn y drychineb yn Dhahran, 1689 01:24:28,210 --> 01:24:30,770 adroddodd y Israeliaid i yr Adran Defense 1690 01:24:30,770 --> 01:24:32,590 bod y system yn colli amser. 1691 01:24:32,590 --> 01:24:35,360 Ar ôl tua wyth awr neu redeg, maent yn sylwi bod y system 1692 01:24:35,360 --> 01:24:37,720 yn dod yn amlwg yn llai cywir. 1693 01:24:37,720 --> 01:24:41,900 Ymatebodd yr Adran Defense gan dweud wrth yr holl fatris Patriot 1694 01:24:41,900 --> 01:24:44,950 i beidio gadael y systemau ymlaen am amser hir. 1695 01:24:44,950 --> 01:24:49,160 Maent byth yn dweud beth amser hir was-- wyth awr, 10 awr, 1,000 o oriau. 1696 01:24:49,160 --> 01:24:51,360 Does neb yn gwybod. 1697 01:24:51,360 --> 01:24:53,380 >> -y Batri Patriot lleoli yn y barics 1698 01:24:53,380 --> 01:24:58,350 yn Dhahran a'i ddiffygiol mewnol cloc wedi bod ar dros 100 awr 1699 01:24:58,350 --> 01:25:01,670 ar y noson Chwefror yn 25 oed. 1700 01:25:01,670 --> 01:25:05,917 >> -Mae'n Olrhain amser i gywirdeb o tua un rhan o ddeg o eiliad. 1701 01:25:05,917 --> 01:25:08,000 Yn awr, un rhan o ddeg o eiliad yn rif diddorol, 1702 01:25:08,000 --> 01:25:11,920 oherwydd na ellir ei mynegi mewn deuaidd yn union, a oedd yn 1703 01:25:11,920 --> 01:25:16,820 golygu ni ellir ei mynegi yn union mewn unrhyw gyfrifiadur digidol modern. 1704 01:25:16,820 --> 01:25:18,540 Mae'n anodd credu. 1705 01:25:18,540 --> 01:25:21,210 >> Ond defnyddio hyn fel enghraifft. 1706 01:25:21,210 --> 01:25:23,540 Gadewch i ni gymryd y rhif un traean. 1707 01:25:23,540 --> 01:25:27,350 Ni all un traean fod mynegi mewn degol yn union. 1708 01:25:27,350 --> 01:25:32,080 Traean yn 0.333 mynd ymlaen am anfeidredd. 1709 01:25:32,080 --> 01:25:36,480 >> Nid oes unrhyw ffordd i wneud hynny gyda cywirdeb absoliwt mewn degol. 1710 01:25:36,480 --> 01:25:39,560 Dyna'n union y math o broblem a ddigwyddodd yn y Gwladgarwr. 1711 01:25:39,560 --> 01:25:44,100 Rhedodd yr hiraf y system, mae'r waeth daeth y gwall amser. 1712 01:25:44,100 --> 01:25:48,890 >> -Ar Ôl 100 awr o weithredu, mae'r gwall mewn amser oedd dim ond tua un rhan o dair 1713 01:25:48,890 --> 01:25:50,600 o eiliad. 1714 01:25:50,600 --> 01:25:54,210 Ond o ran targedu taflegryn teithio ar mach 5, 1715 01:25:54,210 --> 01:25:58,710 mae'n arwain at olrhain gwallau o dros 600 metr. 1716 01:25:58,710 --> 01:26:02,120 Byddai'n gwall angheuol ar gyfer y milwyr ar yr hyn 1717 01:26:02,120 --> 01:26:08,940 Digwyddodd yn lansiad Scud oedd canfod gan loerennau Rhybudd cynnar 1718 01:26:08,940 --> 01:26:12,860 ac maent yn gwybod bod y Scud oedd yn dod yn eu cyfeiriad cyffredinol. 1719 01:26:12,860 --> 01:26:15,320 nad oeddent yn gwybod lle cafodd ei dod. 1720 01:26:15,320 --> 01:26:18,250 >> -Mae'n Bellach i fyny at y radar elfen o'r system Gwladgarwr 1721 01:26:18,250 --> 01:26:23,190 amddiffyn Dhahran i leoli a chadw golwg ar y taflegryn gelyn dod i mewn. 1722 01:26:23,190 --> 01:26:24,609 >> -Y Radar yn smart iawn. 1723 01:26:24,609 --> 01:26:26,650 Byddai'n mewn gwirionedd yn olrhain lleoliad y Scud, 1724 01:26:26,650 --> 01:26:30,350 ac yna rhagweld ble y mae'n fwy na thebyg fyddai'r tro nesaf anfonodd y radar 1725 01:26:30,350 --> 01:26:31,420 a pwls allan. 1726 01:26:31,420 --> 01:26:33,110 Cafodd hynny ei alw'n giât ystod. 1727 01:26:33,110 --> 01:26:37,660 >> -Then, Unwaith y bydd y Gwladgarwr penderfynu digon o amser wedi 1728 01:26:37,660 --> 01:26:42,450 drosglwyddo i fynd yn ôl a gwirio'r nesaf lleoliad ar gyfer y gwrthrych ganfod, 1729 01:26:42,450 --> 01:26:43,600 mae'n mynd yn ôl. 1730 01:26:43,600 --> 01:26:48,650 Felly pan aeth yn ôl at y anghywir lle, wedyn yn gweld unrhyw wrthrych. 1731 01:26:48,650 --> 01:26:52,160 Ac mae'n penderfynu nad oedd unrhyw gwrthrych, yr oedd yn canfod ffug, 1732 01:26:52,160 --> 01:26:53,930 ac yn disgyn y trac. 1733 01:26:53,930 --> 01:26:57,030 >> Diflannodd -y Scud sy'n dod i mewn o'r sgrin radar. 1734 01:26:57,030 --> 01:27:00,260 Ac eiliadau yn ddiweddarach, mae'n Condemniwyd i mewn i'r barics. 1735 01:27:00,260 --> 01:27:06,150 Mae'r Scud lladd 28, a oedd yr olaf un tanio yn ystod y Rhyfel y Gwlff cyntaf. 1736 01:27:06,150 --> 01:27:11,960 >> Yn drasig, y feddalwedd ei diweddaru cyrraedd Dhahran y diwrnod canlynol. 1737 01:27:11,960 --> 01:27:14,930 Roedd gan y nam meddalwedd bod yn sefydlog, cau 1738 01:27:14,930 --> 01:27:19,806 un pennod yn y cythryblus hanes y taflegryn Gwladgarwr. 1739 01:27:19,806 --> 01:27:20,729 >> [VIDEO Playback] 1740 01:27:20,729 --> 01:27:23,520 DAVID J. Malan: Felly mae hyn yn gyd i yn dweud bod y materion hyn o gorlif 1741 01:27:23,520 --> 01:27:25,860 a imprecision i gyd yn rhy real. 1742 01:27:25,860 --> 01:27:26,920 Felly sut daethom i'r fan hon? 1743 01:27:26,920 --> 01:27:28,895 Rydym yn dechrau gyda dim ond siarad am printf. 1744 01:27:28,895 --> 01:27:31,270 Unwaith eto, y swyddogaeth hon sy'n printiau rhywbeth at y sgrîn, 1745 01:27:31,270 --> 01:27:33,450 ac rydym yn cyflwyno ar ôl hynny ychydig o swyddogaethau eraill 1746 01:27:33,450 --> 01:27:34,945 oddi wrth yr hyn a elwir llyfrgell CS50 yn. 1747 01:27:34,945 --> 01:27:36,910 A byddwn yn parhau i gweld y rhain mewn da bryd. 1748 01:27:36,910 --> 01:27:40,760 Ac yr ydym, yn arbennig, a ddefnyddir get llinyn, a chael int, ac yn awr hefyd yn cael arnofio, 1749 01:27:40,760 --> 01:27:44,410 ac eto mae eraill yn dal y byddwn yn dod ar eu traws ac yn defnyddio ein hunain cyn hir. 1750 01:27:44,410 --> 01:27:47,220 >> Ond ar adegau, wedi rydym eisoes wedi gweld bod angen 1751 01:27:47,220 --> 01:27:50,520 i storio pa swyddogaethau hynny llaw yn ôl? 1752 01:27:50,520 --> 01:27:52,920 Maent yn llaw â ni yn ôl llinyn, neu int, neu fflôt. 1753 01:27:52,920 --> 01:27:56,070 Ac weithiau mae angen i ni roi hynny llinyn, neu int, neu arnofio, yn rhywle. 1754 01:27:56,070 --> 01:28:00,100 >> Ac i storio pethau hynny, yn dwyn i gof yn unig fel yn Scratch, mae gennym newidynnau. 1755 01:28:00,100 --> 01:28:03,260 Ond yn wahanol yn Scratch, yn C rydym wedi mathau gwirioneddol 1756 01:28:03,260 --> 01:28:05,530 o ddata variables-- math, mwy generally-- 1757 01:28:05,530 --> 01:28:08,640 yn eu plith, llinyn, mae int, mae arnofio, ac eraill hyn yn dal i. 1758 01:28:08,640 --> 01:28:12,321 >> Ac felly pan fyddwn yn datgan newidynnau yn C, bydd yn rhaid i ddatgan ein fathau o ddata. 1759 01:28:12,321 --> 01:28:14,820 Nid yw hyn yn rhywbeth yr ydym annhymerus ' rhaid iddynt ei wneud yn ddiweddarach yn y semester 1760 01:28:14,820 --> 01:28:16,810 wrth i ni newid i ieithoedd eraill. 1761 01:28:16,810 --> 01:28:19,610 Ond am nawr, mae angen i ni at a priori o flaen llaw, 1762 01:28:19,610 --> 01:28:24,370 esbonio i'r cyfrifiadur pa fath o amrywiol yr ydym am iddo roi i ni. 1763 01:28:24,370 --> 01:28:27,290 >> Yn awr, yn y cyfamser, i argraffu mathau hynny o mathau data, 1764 01:28:27,290 --> 01:28:29,570 mae'n rhaid i ni ddweud printf beth i'w ddisgwyl. 1765 01:28:29,570 --> 01:28:32,450 A gwelsom y cant ar gyfer llinynnau, ac y cant ff i gyfanrifau, 1766 01:28:32,450 --> 01:28:33,790 a rhai eraill yn barod. 1767 01:28:33,790 --> 01:28:37,237 A'r rhai yn syml gofynion am y cyflwyniad gweledol 1768 01:28:37,237 --> 01:28:38,070 o'r wybodaeth honno. 1769 01:28:38,070 --> 01:28:42,080 >> A gall pob un o'r rhain mewn gwirionedd fod yn parametrized neu tweaked mewn rhyw ffordd, 1770 01:28:42,080 --> 01:28:45,370 os ydych am i reoli ymhellach y math o allbwn yr ydych yn ei gael. 1771 01:28:45,370 --> 01:28:49,604 Ac, yn wir, mae'n troi allan sydd nid yn unig a oes n slaes am linell newydd. 1772 01:28:49,604 --> 01:28:52,520 Mae rhywbeth o'r enw arall slaes r i ddychwelyd cerbyd, a oedd yn 1773 01:28:52,520 --> 01:28:54,360 yn debycach i hen deipiadur ysgol, 1774 01:28:54,360 --> 01:28:57,690 a hefyd Windows ddefnyddio ers blynyddoedd lawer. 1775 01:28:57,690 --> 01:28:59,690 >> Mae t slaes ar gyfer tabiau. 1776 01:28:59,690 --> 01:29:03,170 Troi allan, os ydych chi eisiau dyfyniad dwbl tu mewn llinyn, 1777 01:29:03,170 --> 01:29:05,000 dwyn i gof yr ydym wedi defnyddio dyfyniad ddwbl dwbl 1778 01:29:05,000 --> 01:29:07,900 dyfyniad ar y chwith a'r hawl yn dod i ben o'n llinynnau hyd yma. 1779 01:29:07,900 --> 01:29:09,420 Byddai hynny'n ymddangos i ddrysu pethau. 1780 01:29:09,420 --> 01:29:12,503 >> Os ydych chi am roi dyfynbris dwbl mewn nghanol string-- ac, yn wir, 1781 01:29:12,503 --> 01:29:13,670 mae'n ddryslyd i weld. 1782 01:29:13,670 --> 01:29:17,120 Ac felly mae'n rhaid i chi ddianc, felly i siarad, dyfyniad ddwbl gyda rhywbeth 1783 01:29:17,120 --> 01:29:18,860 fel, yn llythrennol, slaes dyfyniad dwbl. 1784 01:29:18,860 --> 01:29:20,230 Ac mae rhai eraill yn dal. 1785 01:29:20,230 --> 01:29:24,540 A byddwn yn gweld mwy o'r rheiny defnyddio go iawn cyn hir. 1786 01:29:24,540 --> 01:29:27,930 >> Felly gadewch i ni yn awr yn trosglwyddo o data, a chynrychiolaeth, 1787 01:29:27,930 --> 01:29:30,820 a gweithredwyr rhifyddeg, pob ohonynt yn rhoi i ni rhywfaint o adeiladu 1788 01:29:30,820 --> 01:29:32,070 blociau gyda lle i chwarae. 1789 01:29:32,070 --> 01:29:34,481 Ond yn awr gadewch i ni mewn gwirionedd yn rhoi i ni y gweddill o'r eirfa 1790 01:29:34,481 --> 01:29:36,230 ein bod eisoes wedi cael yr wythnos diwethaf gyda Scratch 1791 01:29:36,230 --> 01:29:39,350 drwy edrych ar rai eraill cysyniadau ym C-- nid yw pob un ohonynt. 1792 01:29:39,350 --> 01:29:41,680 Ond mae'r syniadau rydym yn am ei weld mewn gwirionedd dim ond 1793 01:29:41,680 --> 01:29:45,610 i bwysleisio y cyfieithiad o un iaith, Scratch, i un arall, C. 1794 01:29:45,610 --> 01:29:48,470 >> A thros amser, byddwn yn codi mwy o offer ar gyfer ein pecyn cymorth, 1795 01:29:48,470 --> 01:29:49,820 fel petai, syntactically. 1796 01:29:49,820 --> 01:29:54,190 Ac, yn wir, byddwch yn gweld bod y syniadau yn awr yn hytrach cyfarwydd o'r wythnos diwethaf. 1797 01:29:54,190 --> 01:29:55,200 Felly gadewch i ni wneud hyn. 1798 01:29:55,200 --> 01:29:58,870 >> Gadewch i ni fynd yn ei flaen ac yn chwip i fyny rhaglen sydd mewn gwirionedd yn defnyddio rhai ymadroddion, 1799 01:29:58,870 --> 01:30:00,720 mynegiant Boole. 1800 01:30:00,720 --> 01:30:02,810 Gadewch i mi fynd yn ei flaen yma ac yn creu ffeil newydd. 1801 01:30:02,810 --> 01:30:06,090 'N annhymerus' yn galw condition.c hwn. 1802 01:30:06,090 --> 01:30:09,350 >> Gadewch i mi fynd yn ei flaen ac yn cynnwys y llyfrgell CS50. 1803 01:30:09,350 --> 01:30:12,640 A gadewch i mi fynd yn ei flaen ac yn cynnwys safon IO.h ar gyfer ein swyddogaethau, 1804 01:30:12,640 --> 01:30:14,690 a printf, ac yn fwy yn y drefn honno. 1805 01:30:14,690 --> 01:30:18,900 Gadewch i mi roi y boilerplate ohonof fy hun prif ddi-rym int, y mae ei esboniad ni chi helpu 1806 01:30:18,900 --> 01:30:20,360 dod yn ôl ato yn y dyfodol. 1807 01:30:20,360 --> 01:30:23,820 >> Nawr, gadewch i mi fynd yn ei flaen ac yn rhoi fy hun yn int trwy get int. 1808 01:30:23,820 --> 01:30:25,970 Yna gadewch i mi fynd yn ei flaen ac yn gwneud hyn. 1809 01:30:25,970 --> 01:30:30,150 Rwyf am ei ddweud os i yw less-- gadewch i ni gwahaniaethu rhwng cadarnhaol, negyddol, 1810 01:30:30,150 --> 01:30:31,260 neu sero gwerthoedd. 1811 01:30:31,260 --> 01:30:36,630 >> Felly os i yn llai na sero, gadewch i mi dim ond cael y rhaglen hon yn syml yn dweud, 1812 01:30:36,630 --> 01:30:42,370 negyddol, slaes n, arall ai fi yn fwy na sero. 1813 01:30:42,370 --> 01:30:47,030 Nawr rwy'n, wrth gwrs, yn mynd i ddweud printf bositif, slaes n. 1814 01:30:47,030 --> 01:30:50,690 Ac yna arall Os-- gallwn i wneud hyn. 1815 01:30:50,690 --> 01:30:53,410 >> Gallwn i wneud os i dychwelyd 0. 1816 01:30:53,410 --> 01:30:55,840 Ond byddwn i'n fod yn gwneud yn o leiaf un camgymeriad yn barod. 1817 01:30:55,840 --> 01:30:59,480 Dwyn i gof bod y hafalnod yw ' Nid gyfartal, fel yr ydym yn gwybod ei fod bodau dynol. 1818 01:30:59,480 --> 01:31:01,010 >> Ond mae'n y gweithredwr aseiniad. 1819 01:31:01,010 --> 01:31:05,640 Ac nid ydym am gymryd 0 ar y gywir a'i roi yn fi ar y chwith. 1820 01:31:05,640 --> 01:31:11,810 Felly, er mwyn osgoi dryswch hwn, neu camddefnyddio hafal efallai llofnodi, 1821 01:31:11,810 --> 01:31:14,740 Penderfynodd bodau dynol rai blynyddoedd yn ôl bod mewn llawer o ieithoedd rhaglennu 1822 01:31:14,740 --> 01:31:18,000 pan fyddwch eisiau i wirio am gydraddoldeb rhwng y chwith a'r dde, 1823 01:31:18,000 --> 01:31:19,635 chi mewn gwirionedd yn defnyddio hafal hafal. 1824 01:31:19,635 --> 01:31:21,010 Felly, rydych yn cyrraedd y arwydd hafal ddwywaith. 1825 01:31:21,010 --> 01:31:25,600 Pan fyddwch am i neilltuo o'r dde i'r chwith, byddwch yn defnyddio hafalnod sengl. 1826 01:31:25,600 --> 01:31:29,360 Felly gallem ei wneud this-- arall ai fi hafal hafal sero. 1827 01:31:29,360 --> 01:31:31,710 >> Gallwn wedyn yn mynd a agor fy braces cyrliog, 1828 01:31:31,710 --> 01:31:36,087 ac yn dweud, printf 0, slaes n, wneud. 1829 01:31:36,087 --> 01:31:38,170 Ond cofiwch sut mae'r rhain Gall ffyrc yn y ffordd yn gweithio. 1830 01:31:38,170 --> 01:31:39,836 Ac, mewn gwirionedd, dim ond meddwl am y rhesymeg. 1831 01:31:39,836 --> 01:31:41,510 ff yn rhif. 1832 01:31:41,510 --> 01:31:43,320 Mae'n yn gyfanrif, yn benodol. 1833 01:31:43,320 --> 01:31:48,600 Ac mae hynny'n golygu ei fod yn mynd i fod yn llai na 0, neu'n fwy na 0, neu 0. 1834 01:31:48,600 --> 01:31:51,600 Felly mae math o hyn achos diofyn ymhlyg. 1835 01:31:51,600 --> 01:31:54,920 >> Ac felly y gallem, yn union fel Scratch, hepgor y arall os, 1836 01:31:54,920 --> 01:31:55,747 a dim ond dweud arall. 1837 01:31:55,747 --> 01:31:57,830 Yn rhesymegol, os ydych yn y rhaglennydd yn gwybod bod yn unig 1838 01:31:57,830 --> 01:32:01,635 tri bwcedi i mewn i lle mae Gall senario fall-- y cyntaf, 1839 01:32:01,635 --> 01:32:03,510 yr ail, neu'r trydydd yn achos-- hyn beidio gwneud 1840 01:32:03,510 --> 01:32:07,100 trafferthu ychwanegu'r manylder ychwanegol ac mae'r rhesymeg ychwanegol yno. 1841 01:32:07,100 --> 01:32:09,690 Dim ond yn bwrw ymlaen â'r achos diofyn yma o arall. 1842 01:32:09,690 --> 01:32:11,950 >> Nawr, gadewch i ni fynd yn ei flaen ar ôl arbed hyn, yn gwneud 1843 01:32:11,950 --> 01:32:15,760 amodau dot slaes conditions-- Nid yw rhyngwyneb defnyddiwr mawr, 1844 01:32:15,760 --> 01:32:18,914 oherwydd nid i ddim yn annog y defnyddiwr, fel y soniais yn gynharach. 1845 01:32:18,914 --> 01:32:19,580 Ond mae hynny'n iawn. 1846 01:32:19,580 --> 01:32:20,454 Byddwn yn cadw pethau'n syml. 1847 01:32:20,454 --> 01:32:21,890 Gadewch i ni roi cynnig ar y rhif 42. 1848 01:32:21,890 --> 01:32:23,240 Ac mae hynny'n gadarnhaol. 1849 01:32:23,240 --> 01:32:26,120 Gadewch i ni roi cynnig ar y rhif negyddol 42, negyddol. 1850 01:32:26,120 --> 01:32:28,244 >> Gadewch i ni geisio werth 0. 1851 01:32:28,244 --> 01:32:29,160 Ac, yn wir, y mae'n gweithio. 1852 01:32:29,160 --> 01:32:33,900 Yn awr, byddwch yn gweld gyda phroblemau cyn hir, profi pethau dair gwaith, 1853 01:32:33,900 --> 01:32:34,980 yn ôl pob tebyg nid yn ddigonol. 1854 01:32:34,980 --> 01:32:37,438 Mae'n debyg y byddwch am brofi rhai rhifau mwy, mae rhai llai o faint 1855 01:32:37,438 --> 01:32:40,520 rhifau, rhai achosion cornel, fel y byddwn yn dod i'w disgrifio. 1856 01:32:40,520 --> 01:32:42,500 >> Ond am nawr, mae hwn yn rhaglen eithaf syml. 1857 01:32:42,500 --> 01:32:45,160 A dwi'n eithaf siwr, yn rhesymegol, ei fod yn dod i mewn tri achos. 1858 01:32:45,160 --> 01:32:49,360 Ac, yn wir, er ein bod yn unig canolbwyntio ar y anfanteision posibl 1859 01:32:49,360 --> 01:32:53,480 o imprecision a gorlif, yn realiti lle mae llawer o broblemau CS50, a 1860 01:32:53,480 --> 01:32:56,000 Nid ydym yn mynd i boeni am, drwy'r amser, 1861 01:32:56,000 --> 01:32:59,050 materion hynny o gorlif a imprecision, oherwydd, mewn gwirionedd, yn C, 1862 01:32:59,050 --> 01:33:01,889 nid yw'n mewn gwirionedd bob un sy'n hawdd i osgoi pethau hynny. 1863 01:33:01,889 --> 01:33:04,180 Os ydych am i gyfrif hyd yn fwy, ac yn fwy, ac yn fwy, 1864 01:33:04,180 --> 01:33:07,510 mae'n troi allan mae yna dechnegau chi gallu defnyddio, yn aml yn cynnwys pethau a elwir yn 1865 01:33:07,510 --> 01:33:11,240 llyfrgelloedd, casgliadau o god, bod Ysgrifennodd bobl eraill y gallwch ei ddefnyddio, 1866 01:33:11,240 --> 01:33:13,910 ac ieithoedd eraill fel Java ac eraill, mewn gwirionedd 1867 01:33:13,910 --> 01:33:15,800 gwneud yn llawer haws i gyfrif hyd yn oed yn uwch. 1868 01:33:15,800 --> 01:33:19,810 Felly y mae mewn gwirionedd rhai o'r peryglon hyn swyddogaeth yr iaith a ddefnyddiwch. 1869 01:33:19,810 --> 01:33:22,710 Ac yn yr wythnosau nesaf, rydym annhymerus ' gweler C pa mor beryglus mewn gwirionedd 1870 01:33:22,710 --> 01:33:24,950 gall fod os nad ydych yn ei ddefnyddio'n gywir. 1871 01:33:24,950 --> 01:33:27,610 Ond oddi yno, a chyda Python, a JavaScript, bydd 1872 01:33:27,610 --> 01:33:32,620 rydym yn haen ar rai amddiffyniadau ychwanegol, ac yn rhedeg llai o risgiau hynny. 1873 01:33:32,620 --> 01:33:35,820 >> Felly gadewch i ni wneud ychydig yn fwy rhesymeg diddorol yn ein rhaglen. 1874 01:33:35,820 --> 01:33:39,110 Felly, gadewch i mi fynd yn ei flaen ac yn creu rhaglen o'r enw Rhesymegol 1875 01:33:39,110 --> 01:33:43,804 dim ond er mwyn i mi chwarae gyda rhai rhesymeg gwirioneddol, logical.c. 1876 01:33:43,804 --> 01:33:46,870 'n annhymerus' jyst adysgrifia a bastio rhai Cod oddi gynharach felly rwy'n mynd yn ôl 1877 01:33:46,870 --> 01:33:49,950 at y pwynt hwn cychwyn 'n glws. 1878 01:33:49,950 --> 01:33:53,980 >> Gadewch i mi y tro hwn yn gwneud C. char rwy'n mynd i roi ei enw o C 1879 01:33:53,980 --> 01:33:58,510 dim ond oherwydd ei fod yn gonfensiynol, cael cymeriad o'r defnyddiwr. 1880 01:33:58,510 --> 01:34:00,730 A gadewch i esgus fel Im 'yn gweithredu rhan 1881 01:34:00,730 --> 01:34:04,130 y rhaglen Yst, mae'r dynnu rhaglen cyn a ysgogodd y defnyddiwr 1882 01:34:04,130 --> 01:34:05,400 i gael gwared ar ffeil. 1883 01:34:05,400 --> 01:34:06,750 Sut allem ni wneud hyn? 1884 01:34:06,750 --> 01:34:11,090 >> Rwyf am ei ddweud, os C hafal yn hafal i, dyfynnwch unquote, 1885 01:34:11,090 --> 01:34:16,304 y, yna dwi'n mynd i gymryd yn ganiataol bod y defnyddiwr wedi dewis ie. 1886 01:34:16,304 --> 01:34:17,470 Im 'jyst yn mynd i argraffu ie. 1887 01:34:17,470 --> 01:34:19,440 Pe bai'n ysgrifennu mewn gwirionedd y rhaglen symud, 1888 01:34:19,440 --> 01:34:21,420 gallem gael gwared ar y ffeil gyda mwy o linellau o god. 1889 01:34:21,420 --> 01:34:22,461 Ond byddwn yn cadw pethau'n syml. 1890 01:34:22,461 --> 01:34:25,950 1891 01:34:25,950 --> 01:34:31,250 >> Arall os c hafal hafal n-- ac yn awr fan hyn, dw i'n mynd i ddweud, 1892 01:34:31,250 --> 01:34:32,980 Mae'n rhaid i'r defnyddiwr wedi golygu dim. 1893 01:34:32,980 --> 01:34:34,360 Ac yna arall, eich bod yn gwybod beth? 1894 01:34:34,360 --> 01:34:36,200 Nid wyf yn gwybod beth arall y defnyddiwr yn mynd i deipio. 1895 01:34:36,200 --> 01:34:38,533 Felly Im 'jyst yn mynd i ddweud bod hynny yw gwall, beth bynnag 1896 01:34:38,533 --> 01:34:40,070 ef neu hi wedi'i deipio mewn gwirionedd. 1897 01:34:40,070 --> 01:34:41,180 >> Felly beth sy'n mynd ymlaen fan hyn? 1898 01:34:41,180 --> 01:34:44,530 Mae gwahaniaeth sylfaenol erbyn hyn yr wyf wedi ei wneud yn y gorffennol. 1899 01:34:44,530 --> 01:34:49,300 dyfynodau dwbl, dyfynodau dwbl, dwbl dyfyniadau, ac, eto, dyfynodau sengl, 1900 01:34:49,300 --> 01:34:50,170 dyfynodau sengl. 1901 01:34:50,170 --> 01:34:52,860 Mae'n troi allan yn C, pan ydych am ysgrifennu llinyn, 1902 01:34:52,860 --> 01:34:56,680 byddwch yn defnyddio dyfynodau dwbl, yn union fel rydym wedi bod yn defnyddio'r holl amser hwn gyda printf. 1903 01:34:56,680 --> 01:35:02,030 >> Ond os ydych am i ddelio gyda dim ond cymeriad unigol, mae torgoch fel y'i gelwir, 1904 01:35:02,030 --> 01:35:03,780 yna rydych yn ei ddefnyddio dyfynodau sengl. 1905 01:35:03,780 --> 01:35:05,450 Mae'r rhai ohonoch sydd wedi rhaglennu o'r blaen, ni allai fod gennych 1906 01:35:05,450 --> 01:35:07,850 roedd yn rhaid i chi boeni am hyn rhagoriaeth mewn rhai ieithoedd. 1907 01:35:07,850 --> 01:35:09,450 Yn C, mae'n ei wneud mater. 1908 01:35:09,450 --> 01:35:12,560 Ac felly pan fyddaf yn cael torgoch ac rwyf am i gymharu y torgoch defnyddio hafal 1909 01:35:12,560 --> 01:35:18,350 yn hafal i ryw llythyr fel y neu n, yr wyf yn ei wneud, yn wir, mae angen i gael y dyfynodau sengl. 1910 01:35:18,350 --> 01:35:19,770 >> Nawr, gadewch i ni fynd yn ei flaen ac yn gwneud hyn. 1911 01:35:19,770 --> 01:35:26,180 Gadewch i ni fynd yn ei flaen ac yn gwneud dot rhesymegol slaes rhesymegol. 1912 01:35:26,180 --> 01:35:27,305 Ac yn awr yr wyf i'n cael fy ysgogi. 1913 01:35:27,305 --> 01:35:30,638 Felly, yn ôl pob tebyg, yn brofiad gwell defnyddiwr Byddai mewn gwirionedd yn dweud wrthyf beth i'w wneud yma. 1914 01:35:30,638 --> 01:35:33,030 Ond dw i'n mynd i jyst 'n ddall dweud y am oes, OK, 'n glws. 1915 01:35:33,030 --> 01:35:35,780 >> Gadewch i ni redeg eto, n am ddim, 'n glws. 1916 01:35:35,780 --> 01:35:39,610 Gadewch i ni dybio fel pobl penodol yr wyf yn gwybod, fy caps lock allweddol yw ar yn rhy aml. 1917 01:35:39,610 --> 01:35:43,740 Felly, yr wyf yn gwneud cyfalaf Y, fynd i mewn, gwall. 1918 01:35:43,740 --> 01:35:46,130 OK, nid yw'n union beth dwi'n ei ddisgwyl. 1919 01:35:46,130 --> 01:35:48,170 Yn wir, y cyfrifiadur yn ei wneud yn llythrennol beth 1920 01:35:48,170 --> 01:35:51,794 Yr wyf yn dweud hi i do-- wirio am llythrennau bach y a llythrennau bach n. 1921 01:35:51,794 --> 01:35:53,960 Nid yw hyn yn teimlo fel da profiad y defnyddiwr, er. 1922 01:35:53,960 --> 01:35:59,010 Gadewch i mi ofyn am a derbyn naill achos neu'r llall is neu priflythrennau. 1923 01:35:59,010 --> 01:36:02,090 Felly, mae'n troi allan, efallai y byddwch am i ddweud rhywbeth fel yn Scratch, 1924 01:36:02,090 --> 01:36:08,150 fel llythrennol neu C yn hafal yn hafal cyfalaf unigol y ddyfynnir. 1925 01:36:08,150 --> 01:36:11,400 Troi allan, nid oes gan C hwn allweddair llythrennol neu. 1926 01:36:11,400 --> 01:36:12,880 >> Ond mae ganddo dau far fertigol. 1927 01:36:12,880 --> 01:36:15,463 Mae'n rhaid i chi ddal Shift fel arfer, os ydych yn defnyddio bysellfwrdd Unol Daleithiau, 1928 01:36:15,463 --> 01:36:18,910 a tharo y bar fertigol allweddol uchod eich allwedd dychwelyd. 1929 01:36:18,910 --> 01:36:22,410 Ond mae hyn yn bar fertigol bar fertigol yn golygu neu. 1930 01:36:22,410 --> 01:36:26,220 >> Os, ar y llaw, roeddem eisiau i'w ddweud a, fel yn Scratch, 1931 01:36:26,220 --> 01:36:28,180 gallem ei wneud ampersand ampersand. 1932 01:36:28,180 --> 01:36:31,330 Mae hynny'n gwneud synnwyr rhesymegol yma, oherwydd nad yw pobl allai o bosibl 1933 01:36:31,330 --> 01:36:37,110 wedi teipio ddau llythrennau bach y y a a chyfalaf Y gan fod yr un cymeriad. 1934 01:36:37,110 --> 01:36:39,470 Felly neu'n hyn y bwriadwn yma. 1935 01:36:39,470 --> 01:36:46,280 >> Felly os wyf yn gwneud hyn yn y ddau le, neu c hafal Equals cyfalaf N, ailgynnal yn awr, 1936 01:36:46,280 --> 01:36:49,390 gwneud rhesymegol, ailgynnal rhesymegol. 1937 01:36:49,390 --> 01:36:51,200 Yn awr, gallaf deipio y. 1938 01:36:51,200 --> 01:36:53,920 A gallaf ei wneud eto gyda prifddinas Y, neu N. cyfalaf 1939 01:36:53,920 --> 01:36:56,630 A gallwn ychwanegu yn ychwanegol cyfuniadau o hyd. 1940 01:36:56,630 --> 01:36:58,810 >> Felly mae hwn yn rhesymegol rhaglen i'r graddau fel yn awr 1941 01:36:58,810 --> 01:37:01,940 Im 'yn gwirio rhesymegol ar gyfer gwerth hwn neu'r gwerth hwn. 1942 01:37:01,940 --> 01:37:06,420 Ac nid oes gennyf i, o reidrwydd, dod o hyd i ddau IFS fwy neu arall petai. 1943 01:37:06,420 --> 01:37:09,960 Gall Fi 'n weithredol cyfuno rhai o'r rhesymeg gysylltiedig at ei gilydd yn y ffordd hon. 1944 01:37:09,960 --> 01:37:11,950 Felly byddai hyn yn well Cynlluniwyd na dim ond 1945 01:37:11,950 --> 01:37:17,490 gan ddywedyd, os C hafal is achos y, argraffu ie, arall os c hafal cyfalaf Y, 1946 01:37:17,490 --> 01:37:20,074 argraffu ie, arall os c hafal lower-- mewn geiriau eraill, 1947 01:37:20,074 --> 01:37:21,990 Nid oes rhaid i chi gael mwy a mwy o ganghennau. 1948 01:37:21,990 --> 01:37:28,840 gallwch gyfuno rhai o'r gyfwerth canghennau yn rhesymegol, gan fod yn y modd hwn. 1949 01:37:28,840 --> 01:37:34,150 >> Felly, gadewch i ni edrych ar ddim ond un cynhwysyn terfynol, un lluniad terfynol, 1950 01:37:34,150 --> 01:37:34,847 hynny C yn caniatáu. 1951 01:37:34,847 --> 01:37:36,930 A byddwn yn dod yn ôl yn y dyfodol i bobl eraill yn dal. 1952 01:37:36,930 --> 01:37:41,400 Ac yna byddwn yn dod i'r casgliad drwy edrych yn peidio cywirdeb code-- 1953 01:37:41,400 --> 01:37:46,070 cael cod i work-- ond y dyluniad o god, a phlannu hadau rhai yn gynnar. 1954 01:37:46,070 --> 01:37:51,337 >> Felly, gadewch i mi fynd yn ei flaen ac agor ffeil newydd yma. 1955 01:37:51,337 --> 01:37:51,920 Ti'n gwybod beth? 1956 01:37:51,920 --> 01:37:54,450 Rydw i'n mynd i ail-weithredu yr un rhaglen, 1957 01:37:54,450 --> 01:37:55,940 ond gan ddefnyddio lluniad gwahanol. 1958 01:37:55,940 --> 01:38:00,110 >> Felly, gadewch i mi yn gyflym yn rhoi fy hun mynediad i gynnwys CS50.h 1959 01:38:00,110 --> 01:38:04,150 ar gyfer y llyfrgell CS50, Io.h safonol ar gyfer printf. 1960 01:38:04,150 --> 01:38:06,510 Rhowch fy mhrif ddi-rym int mi. 1961 01:38:06,510 --> 01:38:09,310 Ac yna dros yma, gadewch mi fynd yn ei flaen ac yn gwneud hyn. 1962 01:38:09,310 --> 01:38:12,010 >> Torgoch c yn cael cael torgoch, yn union fel o'r blaen. 1963 01:38:12,010 --> 01:38:16,770 Ac yr wyf i'n mynd i ddefnyddio lluniad newydd now-- newid, ar ba gymeriad? 1964 01:38:16,770 --> 01:38:19,820 Felly switsh yn fath o fel newid yn traciau trên. 1965 01:38:19,820 --> 01:38:22,070 Neu, mewn gwirionedd, mae'n fath o bydd os arall, os arall os, 1966 01:38:22,070 --> 01:38:23,980 ond ysgrifennu braidd yn wahanol. 1967 01:38:23,980 --> 01:38:25,490 >> Mae switsh yn edrych fel hyn. 1968 01:38:25,490 --> 01:38:29,060 Mae gennych switsh, ac yna beth cymeriad neu rif yr ydych am edrych ar, 1969 01:38:29,060 --> 01:38:32,000 yna mae rhai braces cyrliog yn hoffi mewn Scratch, dywedwch gwneud pethau hyn. 1970 01:38:32,000 --> 01:38:33,480 Ac yna mae gennych achosion gwahanol. 1971 01:38:33,480 --> 01:38:34,830 >> nad ydych yn defnyddio os a arall. 1972 01:38:34,830 --> 01:38:37,050 Rydych yn llythrennol yn defnyddio'r achos geiriau. 1973 01:38:37,050 --> 01:38:38,790 A fyddech yn dweud rhywbeth fel hyn. 1974 01:38:38,790 --> 01:38:43,820 >> Felly, yn achos llythrennau bach y, neu yn achos cyfalaf Y, 1975 01:38:43,820 --> 01:38:47,350 mynd yn ei flaen ac argraffu ie. 1976 01:38:47,350 --> 01:38:49,020 Ac yna dorri allan o'r switsh. 1977 01:38:49,020 --> 01:38:49,580 Dyna ni. 1978 01:38:49,580 --> 01:38:50,880 Rydym yn ei wneud. 1979 01:38:50,880 --> 01:38:57,270 >> Else os, fel petai, n llythrennau bychain, neu gyfalaf N, 1980 01:38:57,270 --> 01:39:02,560 Yna mynd yn ei flaen ac argraffu allan dim, ac yna torri. 1981 01:39:02,560 --> 01:39:08,022 Else-- ac y math hwn o yw'r achos diofyn indeed-- printf error-- 1982 01:39:08,022 --> 01:39:10,980 a dim ond ar gyfer mesur da, er rhesymegol nid yw toriad hwn yn angenrheidiol 1983 01:39:10,980 --> 01:39:12,896 oherwydd ein bod ar y diwedd y switsh beth bynnag, 1984 01:39:12,896 --> 01:39:14,520 Rwyf nawr yn torri allan o'r switsh. 1985 01:39:14,520 --> 01:39:16,280 Felly, mae hyn yn edrych ychydig yn wahanol. 1986 01:39:16,280 --> 01:39:18,272 >> Ond, yn rhesymegol, mae'n cyfwerth mewn gwirionedd. 1987 01:39:18,272 --> 01:39:19,980 A pham byddech yn eu defnyddio un dros y llall? 1988 01:39:19,980 --> 01:39:23,220 Weithiau, hoffter personol yn unig, weithiau estheteg, 1989 01:39:23,220 --> 01:39:25,420 os wyf cipolwg ar hyn Erbyn hyn, mae rhywbeth 1990 01:39:25,420 --> 01:39:27,510 i'w ddweud dros y darllenadwyedd y cod hwn. 1991 01:39:27,510 --> 01:39:30,690 Yr wyf yn golygu, heb sôn am y ffaith bod y cod yn newydd i lawer ohonom yn yr ystafell. 1992 01:39:30,690 --> 01:39:33,515 >> Ond mae'n unig fath o yn eithaf. 1993 01:39:33,515 --> 01:39:37,760 Byddwch yn gweld llythrennau bach y, cyfalaf Y, n llythrennau bychain, cyfalaf N diofyn, 1994 01:39:37,760 --> 01:39:40,150 'i jyst fath o neidiau allan ar chi mewn ffordd 1995 01:39:40,150 --> 01:39:42,200 hynny, gellid dadlau, efallai yr enghraifft flaenorol 1996 01:39:42,200 --> 01:39:45,780 gyda'r IFS, a'r bariau fertigol, a'r arall IFS, efallai na fydd yn rhaid. 1997 01:39:45,780 --> 01:39:51,600 Felly, mae hyn yn wir yn fater o personol dewis, mewn gwirionedd, neu ddarllen, 1998 01:39:51,600 --> 01:39:52,360 o'r cod. 1999 01:39:52,360 --> 01:39:58,230 >> Ond o ran ymarferoldeb, gadewch i mi mynd yn ei flaen ac yn gwneud swits, slaes dot 2000 01:39:58,230 --> 01:40:05,830 newid, ac yn awr deipio i mewn y llythrennau bach, prifddinas Y, n llythrennau bach, cyfalaf N, 2001 01:40:05,830 --> 01:40:09,250 Dafydd, ailgeisio oherwydd dyna Nid yw un cymeriad. 2002 01:40:09,250 --> 01:40:12,050 Gadewch i ni wneud x, gwall, yn ôl y disgwyl. 2003 01:40:12,050 --> 01:40:15,640 Ac, logically-- ac mae hyn yn rhywbeth Byddwn yn annog yn general-- hyd yn oed 2004 01:40:15,640 --> 01:40:17,790 er ein bod ni'n unig yn crafu'r wyneb o rai o'r nodweddion hyn. 2005 01:40:17,790 --> 01:40:20,560 >> Ac efallai na fydd yn amlwg pan fyddwch yn eich hun yn eistedd i lawr ar y bysellfwrdd, 2006 01:40:20,560 --> 01:40:21,370 sut mae hyn yn gweithio? 2007 01:40:21,370 --> 01:40:22,240 Beth fyddai hyn yn ei wneud? 2008 01:40:22,240 --> 01:40:25,630 Y peth hyfryd am gael gliniadur, neu n ben-desg, neu fynediad 2009 01:40:25,630 --> 01:40:29,290 i gyfrifiadur gyda crynhoydd, ac gyda golygydd cod fel hyn, 2010 01:40:29,290 --> 01:40:32,990 yn gallwch chi bron bob amser yn ateb y rhain cwestiynau i chi eich hun yn unig drwy roi cynnig. 2011 01:40:32,990 --> 01:40:36,570 >> Er enghraifft, os yw'r rhethregol cwestiwn wrth law oedd, 2012 01:40:36,570 --> 01:40:39,540 beth sy'n digwydd os byddwch yn anghofio eich datganiadau egwyl? 2013 01:40:39,540 --> 01:40:41,400 Sydd mewn gwirionedd yn beth cyffredin iawn i'w wneud, 2014 01:40:41,400 --> 01:40:43,540 oherwydd nad yw'n edrych fel chi wir eu hangen. 2015 01:40:43,540 --> 01:40:46,790 Nid ydynt yn wir yn cwblhau eich yn meddwl fel cromfachau neu cyrliog 2016 01:40:46,790 --> 01:40:47,714 Brace yn ei wneud. 2017 01:40:47,714 --> 01:40:49,630 Gadewch i ni fynd yn ei flaen ac ail-grynhoi y cod a gweld. 2018 01:40:49,630 --> 01:40:53,690 Felly gwnewch yn newid, dot switsh slaes. 2019 01:40:53,690 --> 01:40:56,435 Gadewch i deipio mewn llythrennau bach y, yr achos uchaf, Enter. 2020 01:40:56,435 --> 01:40:59,390 2021 01:40:59,390 --> 01:41:00,700 Felly, yr wyf teipio y. 2022 01:41:00,700 --> 01:41:04,420 >> Dywedodd y rhaglen ie, na, gwall, fel petai wedi'i newid ei meddwl. 2023 01:41:04,420 --> 01:41:09,280 Ond mae'n fath o oedd, oherwydd mae'r hyn sy'n digwydd gyda switsh yn yr achos cyntaf y 2024 01:41:09,280 --> 01:41:13,899 gêm yn ei hanfod yn golygu, hey cyfrifiadur, gweithredu pob un o'r Cod oddi tano. 2025 01:41:13,899 --> 01:41:16,690 Ac os nad ydych yn dweud egwyl, neu peidiwch â dweud egwyl, neu nad ydynt yn dweud egwyl, 2026 01:41:16,690 --> 01:41:19,540 y cyfrifiadur yn mynd i chwythu drwy bob un o'r llinellau hynny 2027 01:41:19,540 --> 01:41:22,779 a gweithredu pob un ohonynt nes mae'n mynd i fod Brace cyrliog. 2028 01:41:22,779 --> 01:41:24,320 Felly, y brêcs yn cael eu, yn wir, yn angenrheidiol. 2029 01:41:24,320 --> 01:41:27,120 Ond tecawê yma yw, pan amheuaeth, rhowch gynnig ar rywbeth. 2030 01:41:27,120 --> 01:41:29,510 Efallai arbed eich cod yn gyntaf, neu ei gadw mewn ffeil ychwanegol 2031 01:41:29,510 --> 01:41:32,930 os ydych yn wir yn poeni am chwarae o hyd a gorfod adennill 2032 01:41:32,930 --> 01:41:34,430 y gwaith yr ydych yn gwybod yn gweithio. 2033 01:41:34,430 --> 01:41:35,410 >> Ond rhoi cynnig ar bethau. 2034 01:41:35,410 --> 01:41:38,074 Ac peidiwch â bod mor ofnus, efallai, o'r hyn y gallai'r cyfrifiadur yn ei wneud, 2035 01:41:38,074 --> 01:41:39,490 neu y gallech dorri rhywbeth. 2036 01:41:39,490 --> 01:41:42,790 Gallwch chi bob amser yn newid yn ôl i ryw fersiwn cynharach. 2037 01:41:42,790 --> 01:41:45,640 >> Felly gadewch i ben drwy edrych yn y dyluniad o god. 2038 01:41:45,640 --> 01:41:49,020 Yr ydym wedi gallu hwn yn awr i ysgrifennu amodau, a dolenni ysgrifennu, 2039 01:41:49,020 --> 01:41:50,850 a newidynnau, a swyddogaethau alwad. 2040 01:41:50,850 --> 01:41:54,590 Felly, dweud y gwir, rydym yn fath o yn ôl yn lle'r oeddem wythnos yn ôl gyda Scratch, 2041 01:41:54,590 --> 01:42:00,120 er gyda testunol llai grymus amgylchedd na Scratch yn caniatáu. 2042 01:42:00,120 --> 01:42:03,990 >> Ond yn sylwi pa mor gyflym rydym wedi caffael hynny geirfa, hyd yn oed os yw'n 2043 01:42:03,990 --> 01:42:07,570 mynd i gymryd ychydig o amser i suddo i mewn, fel y gallwn yn awr yn defnyddio geirfa hwn 2044 01:42:07,570 --> 01:42:10,320 i ysgrifennu rhaglenni yn fwy diddorol. 2045 01:42:10,320 --> 01:42:12,940 A gadewch i ni gymryd cam baban tuag at hynny, fel a ganlyn. 2046 01:42:12,940 --> 01:42:14,890 Gadewch i mi fynd yn ei flaen ac creu ffeil newydd yma. 2047 01:42:14,890 --> 01:42:17,750 >> Rydw i'n mynd i alw hyn prototype.c, a chyflwyno 2048 01:42:17,750 --> 01:42:20,954 am y tro cyntaf, y gallu i wneud eich swyddogaethau ei hun. 2049 01:42:20,954 --> 01:42:22,870 Efallai y bydd rhai ohonoch gwneud hyn gyda Scratch, 2050 01:42:22,870 --> 01:42:25,430 lle gallwch greu eich blociau hun arfer yn Scratch, 2051 01:42:25,430 --> 01:42:27,892 ac yna eu llusgo i'w lle lle bynnag yr hoffech yn C. 2052 01:42:27,892 --> 01:42:30,100 Ac yn y rhan fwyaf rhaglennu ieithoedd, gallwch chi ei wneud yn union 2053 01:42:30,100 --> 01:42:33,580 that-- wneud eich swyddogaethau ei hun, os nad ydynt yn bodoli yn barod. 2054 01:42:33,580 --> 01:42:38,660 >> Felly, er enghraifft, gadewch i mi fynd yn ei flaen ac maent yn cynnwys CS50.h, ac maent yn cynnwys 2055 01:42:38,660 --> 01:42:43,110 safon IO.h, prif ddi-rym int. 2056 01:42:43,110 --> 01:42:46,020 Ac yn awr mae gennym placeholder barod i fynd. 2057 01:42:46,020 --> 01:42:48,550 Rwy'n cadw pethau'n argraffu fel enwau pobl heddiw. 2058 01:42:48,550 --> 01:42:51,910 A bod yn teimlo like-- Ni fyddai'n braf pe bai 2059 01:42:51,910 --> 01:42:53,936 Roedd swyddogaeth o'r enw enw argraffu? 2060 01:42:53,936 --> 01:42:55,060 Nid oes rhaid i mi ddefnyddio printf. 2061 01:42:55,060 --> 01:42:56,976 Nid oes rhaid i mi gofio yr holl godau fformat. 2062 01:42:56,976 --> 01:43:00,050 Pam nad wyf, neu pam Nid oedd rhywun ger fy mron, 2063 01:43:00,050 --> 01:43:02,980 creu print swyddogaeth o'r enw enw, bod rhoi rhywfaint o enw, 2064 01:43:02,980 --> 01:43:03,980 yn syml yn argraffu allan? 2065 01:43:03,980 --> 01:43:08,700 >> Mewn geiriau eraill, os wyf yn dweud, hey, cyfrifiadur, yn rhoi i mi llinyn 2066 01:43:08,700 --> 01:43:11,870 drwy ofyn i'r defnyddiwr ar gyfer y cyfryw, drwy swyddogaeth get llinyn CS50 yn. 2067 01:43:11,870 --> 01:43:15,090 Hey, cyfrifiaduron, rhoi hynny llinyn yn y newidyn yn yr ochr chwith, 2068 01:43:15,090 --> 01:43:16,150 a galw mae'n s. 2069 01:43:16,150 --> 01:43:22,150 Ac yna, hey cyfrifiadur, mynd yn ei flaen ac print that enw person, wneud. 2070 01:43:22,150 --> 01:43:26,240 >> Yn awr, byddai'n braf, oherwydd rhaglen hon, enw addas, 2071 01:43:26,240 --> 01:43:29,170 yn dweud wrthyf beth mae'n fod i'w wneud drwy gyfrwng enwau hynny swyddogaeth yn. 2072 01:43:29,170 --> 01:43:32,930 Gadewch i mi fynd a gwneud prototeip, Enter. 2073 01:43:32,930 --> 01:43:34,930 Ac, yn anffodus, Nid yw hyn yn mynd i hedfan. 2074 01:43:34,930 --> 01:43:39,430 >> Prototype.c, llinell 7, cymeriad 5, gwall, datganiad ymhlyg 2075 01:43:39,430 --> 01:43:42,960 enw print swyddogaeth yn annilys yn C99, C99 2076 01:43:42,960 --> 01:43:45,130 sy'n golygu fersiwn o C a ddaeth allan yn 1999. 2077 01:43:45,130 --> 01:43:45,730 Dyna i gyd. 2078 01:43:45,730 --> 01:43:48,780 >> Felly, nid wyf yn gwybod beth i gyd mae hyn yn golygu hyd yn hyn. 2079 01:43:48,780 --> 01:43:50,810 Ond yr wyf yn cydnabod camgymeriadau mewn coch. 2080 01:43:50,810 --> 01:43:51,770 Mae hynny'n eithaf amlwg. 2081 01:43:51,770 --> 01:43:53,769 >> Ac mae'n ymddangos bod â cymeriad gwyrdd yma, 2082 01:43:53,769 --> 01:43:57,520 y broblem yw gyda enw print, ar agor paren s, paren agos, hanner colon. 2083 01:43:57,520 --> 01:44:01,800 Ond datganiad ymhlyg o swyddogaeth a wnaethom yn gweld yn fyr yn gynharach. 2084 01:44:01,800 --> 01:44:04,880 Mae hyn yn golygu, yn syml, bod chlang nid yw'n gwybod beth wyf yn ei olygu. 2085 01:44:04,880 --> 01:44:09,000 >> Rwyf wedi defnyddio gair geirfa ei fod yn erioed wedi gweld neu wedi cael eu haddysgu o'r blaen. 2086 01:44:09,000 --> 01:44:11,950 Ac felly mae angen i mi ei ddysgu pa swyddogaeth hon yn ei olygu. 2087 01:44:11,950 --> 01:44:13,590 Felly, yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hynny. 2088 01:44:13,590 --> 01:44:17,970 >> Rydw i'n mynd i fynd yn ei flaen a gweithredu fy swyddogaeth hun o'r enw Argraffu Enw. 2089 01:44:17,970 --> 01:44:24,720 Ac yr wyf i'n mynd i ddweud, fel a ganlyn, hynny mae'n gwneud hyn, printf, helo, y cant 2090 01:44:24,720 --> 01:44:27,760 s, slaes n, enw, hanner colon. 2091 01:44:27,760 --> 01:44:29,250 Felly beth wnes i jyst yn ei wneud? 2092 01:44:29,250 --> 01:44:31,325 >> Felly, mae'n troi allan, i weithredu eich swyddogaeth ei hun, 2093 01:44:31,325 --> 01:44:33,845 rydym yn fath o fenthyg rhai o'r yr un strwythur ag brif 2094 01:44:33,845 --> 01:44:35,720 ein bod ni newydd wedi bod cymryd yn ganiataol, ac yr wyf yn 2095 01:44:35,720 --> 01:44:37,730 gwybod yn union copïo a gludo 'n bert lawer beth 2096 01:44:37,730 --> 01:44:39,170 Rydw i wedi bod yn ysgrifennu yn y gorffennol. 2097 01:44:39,170 --> 01:44:40,570 Ond yn sylwi ar y patrwm yma. 2098 01:44:40,570 --> 01:44:43,750 Int, Main, Void, fe wnawn ni tynnu coes ar wahân cyn bo hir beth y mae hynny'n ei olygu. 2099 01:44:43,750 --> 01:44:46,160 >> Ond ar gyfer heddiw, dim ond sylwi ar y parallelism. 2100 01:44:46,160 --> 01:44:48,210 Void, printiwch yr enw, enw llinyn, felly does 2101 01:44:48,210 --> 01:44:50,310 gair allweddol porffor, a oedd yn rydym yn mynd i ddechrau 2102 01:44:50,310 --> 01:44:54,067 yn galw math dychwelyd, enw'r y swyddogaeth, ac yna y mewnbwn. 2103 01:44:54,067 --> 01:44:56,400 Felly, mewn gwirionedd, gallwn distill y math hwn o fel yr wythnos diwethaf 2104 01:44:56,400 --> 01:44:59,030 fel, dyma'r enw neu'r algorithm y cod rydym yn 2105 01:44:59,030 --> 01:45:00,761 mynd i write-- y algorithm gwaelodol 2106 01:45:00,761 --> 01:45:02,010 y cod rydyn ni'n mynd i ysgrifennu. 2107 01:45:02,010 --> 01:45:03,180 >> Mae hyn yn ei fewnbwn. 2108 01:45:03,180 --> 01:45:04,670 Mae hyn yn ei allbwn. 2109 01:45:04,670 --> 01:45:08,730 Mae'r swyddogaeth hon, enw print, yw gynllunio i gymryd llinyn o'r enw enw, 2110 01:45:08,730 --> 01:45:11,350 neu beth bynnag, fel mewnbwn, ac yna ddi-rym. 2111 01:45:11,350 --> 01:45:13,904 Nid yw'n dychwelyd unrhyw beth, hoffi cael llinyn neu gael int yn ei wneud. 2112 01:45:13,904 --> 01:45:15,570 Felly, mae'n mynd i law rhywbeth yn ôl i mi. 2113 01:45:15,570 --> 01:45:17,960 'I' jyst yn mynd i gael effaith ochr, fel petai, 2114 01:45:17,960 --> 01:45:19,570 argraffu enw person. 2115 01:45:19,570 --> 01:45:22,260 Felly sylwi, llinell 7, yr wyf yn gallu galw enw'r print. 2116 01:45:22,260 --> 01:45:25,920 Llinell 10, gallaf ddiffinio neu weithredu printiwch yr enw. 2117 01:45:25,920 --> 01:45:28,450 Ond, yn anffodus, nid yw hynny'n ddigon. 2118 01:45:28,450 --> 01:45:31,230 >> Gadewch i mi fynd yn ei flaen ac ail-grynhoi hyn ar ôl arbed. 2119 01:45:31,230 --> 01:45:33,910 Whoa, yn awr, yr wyf wedi ei gwneud yn waeth, byddai'n ymddangos. 2120 01:45:33,910 --> 01:45:37,027 datganiad Felly ymhlyg o enw print swyddogaeth yn annilys. 2121 01:45:37,027 --> 01:45:38,360 Ac, unwaith eto, mae mwy o gamgymeriadau. 2122 01:45:38,360 --> 01:45:41,430 Ond wrth i mi rhybuddio yn gynharach, hyd yn oed os ydych yn cael llethu gyda, 2123 01:45:41,430 --> 01:45:44,850 neu ychydig yn drist i weld cymaint o camgymeriadau, yn canolbwyntio yn unig ar y cyntaf 2124 01:45:44,850 --> 01:45:47,500 i ddechrau, oherwydd ei fod yn bosibl y bydd yn wedi cael effaith rhaeadru. 2125 01:45:47,500 --> 01:45:51,970 Felly C, neu chlang yn fwy penodol, yn dal yn cydnabod enw print. 2126 01:45:51,970 --> 01:45:54,580 >> A dyna oherwydd chlang, trwy ddyluniad, yn fath o fud. 2127 01:45:54,580 --> 01:45:56,280 Dim ond yn gwneud yr hyn yr ydych yn dweud iddo wneud. 2128 01:45:56,280 --> 01:46:00,950 A dim ond yn gwneud hynny yn y drefn yr ydych yn dweud iddo wneud. 2129 01:46:00,950 --> 01:46:05,270 >> Felly yr wyf wedi diffinio prif ar linell pedwar, fel yr ydym wedi bod yn ei wneud yn eithaf aml. 2130 01:46:05,270 --> 01:46:07,980 Rwyf wedi ddiffinnir enw print ar llinell 10. 2131 01:46:07,980 --> 01:46:11,793 Ond dw i'n ceisio ei ddefnyddio printiwch yr enw ar linell saith. 2132 01:46:11,793 --> 01:46:13,670 >> Mae'n rhy fuan, nid yn bodoli eto. 2133 01:46:13,670 --> 01:46:19,150 Felly gallwn i fod yn glyfar, ac yn cael ei hoffi, Iawn, felly gadewch i ni dim ond chwarae ar hyd, 2134 01:46:19,150 --> 01:46:23,680 a symud printiwch yr enw i fyny yma, ac ail-lunio. 2135 01:46:23,680 --> 01:46:24,550 Oh fy Nuw. 2136 01:46:24,550 --> 01:46:25,260 Mae'n gweithio. 2137 01:46:25,260 --> 01:46:26,670 Roedd mor syml â hynny. 2138 01:46:26,670 --> 01:46:28,120 >> Ond mae'r rhesymeg yn union hynny. 2139 01:46:28,120 --> 01:46:30,870 Mae'n rhaid i chi ddysgu chlang hyn y mae'n ei yw drwy ddiffinio swyddogaeth gyntaf. 2140 01:46:30,870 --> 01:46:31,920 Yna, gallwch ei ddefnyddio. 2141 01:46:31,920 --> 01:46:33,940 Ond, a dweud y gwir, mae hyn yn teimlo fel llethr llithrig. 2142 01:46:33,940 --> 01:46:35,773 >> Felly, bob tro rwy'n rhedeg i mewn i broblem, Im 'jyst 2143 01:46:35,773 --> 01:46:39,450 mynd i amlygu a chopi y cod Ysgrifennais, ei dorri a'i bastio i fyny yma. 2144 01:46:39,450 --> 01:46:41,370 Ac, yn sicr, gallem contrive rhai senarios 2145 01:46:41,370 --> 01:46:43,286 lle y gallai un swyddogaeth Mae angen i alw un arall. 2146 01:46:43,286 --> 01:46:46,030 Ac ni allwch roi pob swyddogaeth uwchben pob arall. 2147 01:46:46,030 --> 01:46:47,930 >> Felly, mae'n troi allan yno yn ateb gwell. 2148 01:46:47,930 --> 01:46:50,100 Gallwn adael hyn fod. 2149 01:46:50,100 --> 01:46:53,677 Ac, dweud y gwir, mae'n braf ar y cyfan, a chyfleus, a dylunio da 2150 01:46:53,677 --> 01:46:56,760 i roi prif gyntaf, oherwydd, unwaith eto, prif yn union fel pan glicio baner werdd, 2151 01:46:56,760 --> 01:46:59,027 hynny yw swyddogaeth y yn cael ei gyflawni yn ddiofyn. 2152 01:46:59,027 --> 01:47:01,110 Felly, efallai y byddwch yn ei roi yn dda hynny ar ben y ffeil 2153 01:47:01,110 --> 01:47:03,560 felly pan ydych chi neu unrhyw dynol arall yn edrych ar y ffeil 2154 01:47:03,560 --> 01:47:06,360 eich bod yn gwybod beth sy'n digwydd dim ond drwy ddarllen prif cyntaf. 2155 01:47:06,360 --> 01:47:15,360 Felly, mae'n troi allan, gallwn ddweud chlang rhagweithiol, hey, chlang, ar-lein pedwar, 2156 01:47:15,360 --> 01:47:17,940 Rwy'n addo i weithredu swyddogaeth o'r enw Print 2157 01:47:17,940 --> 01:47:22,600 Enw sy'n cymryd enw llinyn o'r enw fel mewnbwn, a ffurflenni dim byd, yn ddi-rym. 2158 01:47:22,600 --> 01:47:24,770 A byddaf yn mynd o gwmpas i gweithredu yn nes ymlaen. 2159 01:47:24,770 --> 01:47:25,680 >> Yma, yn dod Main. 2160 01:47:25,680 --> 01:47:29,130 Prif nawr ar lein Gall 9 ddefnyddio Print Enw'r oherwydd chlang 2161 01:47:29,130 --> 01:47:32,600 yn ymddiried hynny, yn y pen draw, bydd yn dod ar draws y diffiniad 2162 01:47:32,600 --> 01:47:34,880 o o Argraffu Enw waith. 2163 01:47:34,880 --> 01:47:37,390 Felly, ar ôl arbed fy ffeil, gadewch mi fynd yn ei flaen ac yn gwneud prototeip, 2164 01:47:37,390 --> 01:47:38,498 edrych yn dda y tro hwn. 2165 01:47:38,498 --> 01:47:43,470 Dot slaes, prototeip, gadewch i mi mynd yn ei flaen a theipiwch enw. 2166 01:47:43,470 --> 01:47:48,440 Dafydd, helo Dafydd, Zamila, helo Zamila, ac, yn wir, erbyn hyn mae'n gweithio. 2167 01:47:48,440 --> 01:47:52,200 >> Felly mae'r cynhwysyn yma yw bod rydym wedi gwneud swyddogaeth arfer, fel arfer 2168 01:47:52,200 --> 01:47:54,219 bloc Scratch rydym yn galw ei. 2169 01:47:54,219 --> 01:47:57,010 Ond yn wahanol i Scratch lle y gallwch jyst ei greu ac yn dechrau ei ddefnyddio, 2170 01:47:57,010 --> 01:47:59,330 erbyn hyn mae'n rhaid i ni fod yn ychydig yn fwy bedantig, 2171 01:47:59,330 --> 01:48:03,410 ac mewn gwirionedd yn hyfforddi chlang i'w defnyddio, neu yn disgwyl iddo. 2172 01:48:03,410 --> 01:48:09,140 Yn awr, wrth fynd heibio, pam yr holl amser hwn yn cael rydym wedi bod yn unig blindly ar ffydd, gan gynnwys 2173 01:48:09,140 --> 01:48:12,170 CS50.h, ac yn cynnwys IO.h safonol? 2174 01:48:12,170 --> 01:48:15,190 >> Wel, mae'n troi allan, ymhlith ychydig o bethau eraill, 2175 01:48:15,190 --> 01:48:18,550 pob dyna yn y rhai dot h ffeiliau, sy'n digwydd bod yn ffeiliau. 2176 01:48:18,550 --> 01:48:20,460 Maen nhw'n header ffeiliau, fel petai. 2177 01:48:20,460 --> 01:48:23,270 Maen nhw'n dal i ysgrifennu yn C. Ond maen nhw'n wahanol fath o ffeil. 2178 01:48:23,270 --> 01:48:28,690 >> Am nawr, gallwch gymryd yn ganiataol 'n bert lawer bod popeth sy'n tu mewn CS50.h 2179 01:48:28,690 --> 01:48:33,360 rhywfaint o un-llongau fel hyn, nid ar gyfer swyddogaethau a elwir Print Enw, 2180 01:48:33,360 --> 01:48:36,840 ond ar gyfer Get Llinynnol, Get Float, ac ychydig o rai eraill. 2181 01:48:36,840 --> 01:48:41,510 Ac mae prototeipiau tebyg, un leinin, y tu mewn o IO.h safonol 2182 01:48:41,510 --> 01:48:46,241 i printf, sydd yn awr yn fy swyddogaeth Argraffu Enw hun. 2183 01:48:46,241 --> 01:48:49,490 Felly, mewn geiriau eraill, mae hyn yn llawn amser rydym wedi newydd gael ei gopïo a chludo blindly 2184 01:48:49,490 --> 01:48:51,780 gynnwys hyn, yn cynnwys hynny, beth sy'n digwydd? 2185 01:48:51,780 --> 01:48:55,310 Dyna'r unig fath o gliwiau i chlang ynghylch pa swyddogaethau 2186 01:48:55,310 --> 01:49:00,170 yn cael eu, yn wir, eu gweithredu, dim ond mewn mannau eraill yn ffeiliau gwahanol 2187 01:49:00,170 --> 01:49:02,440 mewn mannau eraill ar y system. 2188 01:49:02,440 --> 01:49:05,160 >> Felly rydym wedi rhoi ar waith enw print. 2189 01:49:05,160 --> 01:49:07,910 Mae'n gwneud gael sgîl effaith hon o argraffu rhywbeth ar y sgrin. 2190 01:49:07,910 --> 01:49:10,170 Ond nid yw'n mewn gwirionedd law i mi rhywbeth yn ôl. 2191 01:49:10,170 --> 01:49:12,200 Sut ydym yn mynd ati i gweithredu rhaglen sy'n 2192 01:49:12,200 --> 01:49:14,510 yn llaw i mi rhywbeth yn ôl? 2193 01:49:14,510 --> 01:49:15,580 >> Wel, gadewch i ni geisio hyn. 2194 01:49:15,580 --> 01:49:21,360 Gadewch i mi fynd yn ei flaen ac yn gweithredu yn return.c ffeil o'r enw 2195 01:49:21,360 --> 01:49:24,530 fel y gallwn ddangos sut mae rhywbeth fel Get Llinynnol, neu Get Int, 2196 01:49:24,530 --> 01:49:27,340 mewn gwirionedd yn dychwelyd rhywbeth yn ôl i'r defnyddiwr. 2197 01:49:27,340 --> 01:49:29,840 Gadewch i ni fynd yn ei flaen ac yn diffinio prif ddi-rym int. 2198 01:49:29,840 --> 01:49:33,230 >> Ac, unwaith eto, yn y dyfodol, rydym annhymerus ' esbonio beth sy'n int a bod yn ddi-rym 2199 01:49:33,230 --> 01:49:34,090 yn ei wneud mewn gwirionedd. 2200 01:49:34,090 --> 01:49:35,840 Ond ar gyfer heddiw, rydym annhymerus ' cymryd yn ganiataol. 2201 01:49:35,840 --> 01:49:39,970 Rydw i'n mynd i fynd yn ei flaen ac yn printf, ar gyfer profiad y defnyddiwr da, x yw. 2202 01:49:39,970 --> 01:49:44,360 Ac yna dwi'n mynd i aros am y defnyddiwr i roi i mi x gyda Bydd int. 2203 01:49:44,360 --> 01:49:48,459 >> Ac yna dwi'n mynd i fynd yn ei flaen ac argraffu x i'r sgwâr. 2204 01:49:48,459 --> 01:49:50,500 Felly, pan fyddwch yn unig yn cael bysellfwrdd, pobl gyffredin 2205 01:49:50,500 --> 01:49:52,600 defnyddiwch y moron bach symbol ar y bysellfwrdd 2206 01:49:52,600 --> 01:49:55,330 i gynrychioli at y pŵer o, neu ddehonglwr o. 2207 01:49:55,330 --> 01:49:58,960 Felly x sgwâr yn bresennol i. 2208 01:49:58,960 --> 01:50:00,660 >> Ac yn awr yr wyf i'n mynd i wneud hyn. 2209 01:50:00,660 --> 01:50:03,940 Gallai Fi jyst do-- beth sydd x sgwario? x sgwâr yw amseroedd x x. 2210 01:50:03,940 --> 01:50:06,690 >> Ac rydym yn gwneud hyn mae rhai amser yn ôl eisoes heddiw. 2211 01:50:06,690 --> 01:50:08,730 Nid yw hyn yn teimlo fel holl bod llawer o gynnydd. 2212 01:50:08,730 --> 01:50:09,570 Ti'n gwybod beth? 2213 01:50:09,570 --> 01:50:13,100 Gadewch i trosoledd rhai o'r syniad hwnnw o dro olaf o dynnu. 2214 01:50:13,100 --> 01:50:16,080 >> Oni fyddai'n braf pe mae 'na swyddogaeth o'r enw 2215 01:50:16,080 --> 01:50:18,460 sgwâr sy'n gwneud yn union hynny? 2216 01:50:18,460 --> 01:50:20,640 Mae'n dal i, ar ddiwedd y dydd, yn gwneud yr un mathemateg. 2217 01:50:20,640 --> 01:50:22,410 Ond gadewch i ni haniaethol ymaith y syniad o gymryd 2218 01:50:22,410 --> 01:50:25,280 un rhif wedi'i luosi â un arall, a dim ond rhoi enw iddo, 2219 01:50:25,280 --> 01:50:27,360 fel sgwâr gwerth hwn. 2220 01:50:27,360 --> 01:50:29,560 >> Ac, mewn geiriau eraill, yn C, gadewch i greu swyddogaeth 2221 01:50:29,560 --> 01:50:32,660 Gelwir sgwâr sy'n gwneud yn union hynny. 2222 01:50:32,660 --> 01:50:34,600 Mae'n mynd i gael ei alw sgwâr. 2223 01:50:34,600 --> 01:50:35,790 Mae'n mynd i gymryd int. 2224 01:50:35,790 --> 01:50:37,820 Ac annhymerus byddwn yn unig ei alw n, yn ddiofyn. 2225 01:50:37,820 --> 01:50:39,403 >> Ond y gellid ei alw unrhyw beth yr ydym ei eisiau. 2226 01:50:39,403 --> 01:50:42,900 A'r cyfan y mae'n mynd i yn ei wneud, yn llythrennol, yn dychwelyd 2227 01:50:42,900 --> 01:50:45,810 y canlyniad amseroedd n n. 2228 01:50:45,810 --> 01:50:48,980 Ond oherwydd ei fod yn dychwelyd rhywbeth, a oedd yn 2229 01:50:48,980 --> 01:50:53,690 yw'r gair allweddol mewn porffor rydym wedi nas gwelwyd erioed o'r blaen, yr wyf, ar linell 11, 2230 01:50:53,690 --> 01:50:55,410 Ni all ddweud yn ddi-rym y tro hwn. 2231 01:50:55,410 --> 01:51:01,320 >> Void, yn yr enghraifft yr ydym yn jyst yn gweld yn hytrach enw print, yn unig yn golygu, 2232 01:51:01,320 --> 01:51:02,190 gwneud rhywbeth. 2233 01:51:02,190 --> 01:51:04,170 Ond peidiwch â llaw i mi rhywbeth yn ôl. 2234 01:51:04,170 --> 01:51:06,790 Yn yr achos hwn, yr wyf yn dymuno i ddychwelyd n amseroedd n, 2235 01:51:06,790 --> 01:51:08,460 neu beth bynnag hynny yw, y nifer hwnnw. 2236 01:51:08,460 --> 01:51:12,460 >> Felly, ni allaf ddweud, hey, cyfrifiaduron, Dychwelaf dim byd, yn ddi-rym. 2237 01:51:12,460 --> 01:51:16,166 Mae'n mynd i ddychwelyd, trwy natur, mae int. 2238 01:51:16,166 --> 01:51:17,790 Ac felly dyna i gyd sy'n digwydd fan hyn. 2239 01:51:17,790 --> 01:51:20,070 >> Mewnbwn i sgwâr yn mynd i fod yn int. 2240 01:51:20,070 --> 01:51:24,760 Ac fel y gallwn ei ddefnyddio, mae'n rhaid iddo cael enw, N. Mae'n mynd i allbwn 2241 01:51:24,760 --> 01:51:26,240 yn int lle nad oes angen enw. 2242 01:51:26,240 --> 01:51:29,590 Gallwn adael i brif, neu bwy bynnag sy'n ddefnyddio i mi gofio gwerth hwn os byddwn yn 2243 01:51:29,590 --> 01:51:31,120 eisiau gyda'i newidyn ei hun. 2244 01:51:31,120 --> 01:51:33,230 >> Ac, unwaith eto, yr unig newydd gair allweddol yma yw Ffurflen Dreth. 2245 01:51:33,230 --> 01:51:34,480 Ac Im 'jyst yn gwneud rhywfaint o mathemateg. 2246 01:51:34,480 --> 01:51:41,825 Os Fi 'n sylweddol eisiau bod yn ddiangen, Gallwn ddweud cynnyrch int yn cael n amseroedd n. 2247 01:51:41,825 --> 01:51:44,170 >> Ac yna gallwn i ddweud, yn dychwelyd cynnyrch. 2248 01:51:44,170 --> 01:51:47,360 Ond, unwaith eto, at fy mhwynt cynharach hyn yn unig nad yw'n design-- da 2249 01:51:47,360 --> 01:51:50,060 fel, pam cyflwyno enw, symbol, fel cynnyrch, 2250 01:51:50,060 --> 01:51:51,570 dim ond er mwyn ei ddychwelyd ar unwaith? 2251 01:51:51,570 --> 01:51:53,670 Mae'n ychydig glanach, ychydig yn dynnach, felly 2252 01:51:53,670 --> 01:51:59,380 i siarad, dim ond i ddweud amserau dychwelyd n n, cael gwared ar y llinell hon yn gyfan gwbl. 2253 01:51:59,380 --> 01:52:02,860 >> Ac mae'n ychydig yn llai cod i ddarllen, llai o gyfle i gamgymeriadau. 2254 01:52:02,860 --> 01:52:05,180 A gadewch i ni weld os yw hyn yn mewn gwirionedd bellach yn gweithio. 2255 01:52:05,180 --> 01:52:09,380 Nawr, dw i'n mynd i fynd ymlaen ac yn gwneud elw. 2256 01:52:09,380 --> 01:52:11,460 >> Uh-oh, datganiad ymhlyg o swyddogaeth. 2257 01:52:11,460 --> 01:52:14,080 Yr wyf yn gwneud camgymeriad hwn o'r blaen, nid oes llawer mawr. 2258 01:52:14,080 --> 01:52:18,950 Gadewch i mi jyst deipio, neu amlygu a copïo, y swyddogaeth un union prototeip, 2259 01:52:18,950 --> 01:52:21,342 neu lofnod, y swyddogaeth yma. 2260 01:52:21,342 --> 01:52:22,800 Neu gallwn i symud y swyddogaeth cyfan. 2261 01:52:22,800 --> 01:52:23,841 >> Ond mae hynny'n ychydig yn ddiog. 2262 01:52:23,841 --> 01:52:24,870 Felly, ni fyddwn yn gwneud hynny. 2263 01:52:24,870 --> 01:52:27,960 Yn awr, gadewch i mi wneud elw eto, dot dychwelyd slaes. 2264 01:52:27,960 --> 01:52:32,790 >> x yn 2. x sgwâr yw 4. x yn 3. x sgwâr yw 9. 2265 01:52:32,790 --> 01:52:35,300 Ac mae'r swyddogaeth yn ymddangos yn awr i fod yn gweithio. 2266 01:52:35,300 --> 01:52:36,550 Felly beth yw'r gwahaniaeth yma? 2267 01:52:36,550 --> 01:52:42,520 Mae gen i swyddogaeth sy'n cael ei alw sgwâr, yn yr achos hwn, yr wyf yn rhoi yn mewnbwn. 2268 01:52:42,520 --> 01:52:43,830 Ac yr wyf yn mynd yn ôl allbwn. 2269 01:52:43,830 --> 01:52:46,210 Ac eto, yn flaenorol, os Rwyf yn agor yr enghraifft arall 2270 01:52:46,210 --> 01:52:51,640 o yn gynharach, a oedd yn Roedd enw prototype.c, 2271 01:52:51,640 --> 01:52:54,770 Roedd gen printiwch yr enw, a oedd yn Dychwelodd ddi-rym, fel petai, 2272 01:52:54,770 --> 01:52:58,730 Neu mae'n dychwelyd dim byd, ac yn syml wedi cael effaith ochr. 2273 01:52:58,730 --> 01:53:00,230 >> Felly beth sy'n mynd ymlaen fan hyn? 2274 01:53:00,230 --> 01:53:03,520 Wel, yn ystyried y swyddogaeth cael llinyn am ddim ond ennyd. 2275 01:53:03,520 --> 01:53:06,570 Rydym wedi bod yn defnyddio'r swyddogaeth cael llinyn yn y modd canlynol. 2276 01:53:06,570 --> 01:53:10,464 >> Rydym wedi cael swyddogaeth gael llinyn, fel cynnwys CS50.h, 2277 01:53:10,464 --> 01:53:16,624 cynnwys safonol IO.h, int, prif, yn ddi-rym. 2278 01:53:16,624 --> 01:53:18,790 Ac yna bob tro rwyf wedi Gelwir get llinyn hyd yn hyn, 2279 01:53:18,790 --> 01:53:23,260 Yr wyf wedi dweud rhywbeth fel, llinyn s cael cael llinyn, gan fod Get string-- 2280 01:53:23,260 --> 01:53:27,880 gadewch i ni yn galw hyn yn llinyn get get.c-- ei hun yn dychwelyd llinyn y gallaf wedyn 2281 01:53:27,880 --> 01:53:32,050 defnyddio, ac yn dweud, helo, coma, cant s, slaes n, s. 2282 01:53:32,050 --> 01:53:35,660 >> Felly, mae hyn yn yr un enghraifft, mewn gwirionedd, ein bod wedi gynharach. 2283 01:53:35,660 --> 01:53:37,920 Felly ewch llinyn yn dychwelyd gwerth. 2284 01:53:37,920 --> 01:53:41,260 Ond funud yn ôl, llinyn argraffu nid yw'n dychwelyd gwerth. 2285 01:53:41,260 --> 01:53:42,721 Yn syml, mae gan sgîl-effaith. 2286 01:53:42,721 --> 01:53:44,220 Felly mae hwn yn wahaniaeth sylfaenol. 2287 01:53:44,220 --> 01:53:46,710 Rydym wedi gweld gwahanol mathau o swyddogaethau yn awr, 2288 01:53:46,710 --> 01:53:49,490 mae rhai ohonynt wedi dychwelyd gwerthoedd, nid yw rhai ohonynt yn ei wneud. 2289 01:53:49,490 --> 01:53:51,890 Felly efallai ei bod yn llinyn, neu int, neu fflôt. 2290 01:53:51,890 --> 01:53:53,480 Neu efallai mai dim ond yn ddi-rym. 2291 01:53:53,480 --> 01:53:55,710 >> Ac mae'r gwahaniaeth yn bod y swyddogaethau hyn sy'n 2292 01:53:55,710 --> 01:53:59,940 cael data a dychwelyd gwerth mewn gwirionedd gan ddod â rhywbeth yn ôl at y bwrdd, 2293 01:53:59,940 --> 01:54:01,110 felly, i siarad. 2294 01:54:01,110 --> 01:54:03,710 Felly gadewch i ni fynd yn ei flaen ac edrych ar un set derfynol 2295 01:54:03,710 --> 01:54:09,129 o enghreifftiau sy'n rhoi ymdeimlad, yn awr, o sut rydym yn allai, yn wir, haniaethol yn well, 2296 01:54:09,129 --> 01:54:11,670 ac yn well, a gwell, neu fwy, a mwy, a mwy, er mwyn 2297 01:54:11,670 --> 01:54:13,810 i ysgrifennu, yn y pen draw, cod gwell. 2298 01:54:13,810 --> 01:54:16,860 Gadewch i ni fynd yn ei flaen, ac yn yr ysbryd o Scratch, wneud y canlynol. 2299 01:54:16,860 --> 01:54:21,700 >> Gadewch i mi fynd yn ei flaen ac yn cynnwys CS50.h a IO.h. safonol 2300 01:54:21,700 --> 01:54:24,010 Gadewch i mi fynd yn ei flaen ac yn rhoi fy hun yn int, prif, yn ddi-rym. 2301 01:54:24,010 --> 01:54:27,380 A gadewch i mi fynd yn ei flaen, ffoniwch cough.c hwn. 2302 01:54:27,380 --> 01:54:35,510 >> A gadewch i mi fynd yn ei flaen a dim ond fel Scratch, argraffu peswch / n. 2303 01:54:35,510 --> 01:54:37,170 Ac yr wyf am wneud hyn dair gwaith. 2304 01:54:37,170 --> 01:54:39,670 Felly dwi'n, wrth gwrs, dim ond yn mynd i gopïo a gludo dair gwaith. 2305 01:54:39,670 --> 01:54:46,440 Rwyf nawr yn mynd i wneud peswch peswch slaes dot. 2306 01:54:46,440 --> 01:54:50,120 Gadewch i ni roi ychydig mwy o ystafell fy hun yma, Mewnbynnu, peswch, peswch, peswch. 2307 01:54:50,120 --> 01:54:53,970 >> Mae, yn amlwg, eisoes cyfle i wella. 2308 01:54:53,970 --> 01:54:55,679 Rwyf wedi copïo a gludo ychydig o weithiau heddiw. 2309 01:54:55,679 --> 01:54:58,261 Ond roedd hynny yn unig, felly wnes i ddim rhaid i deipio cynifer o gymeriadau. 2310 01:54:58,261 --> 01:55:00,250 Rwy'n dal i newid beth llinellau hynny o god yn cael eu. 2311 01:55:00,250 --> 01:55:04,240 >> Mae'r tair llinell yn union, sy'n teimlo'n ddiog ac yn wir yw, 2312 01:55:04,240 --> 01:55:07,110 ac nid yn ôl pob tebyg y dull cywir. 2313 01:55:07,110 --> 01:55:11,029 Felly, gyda pha cynhwysyn gallem wella'r cod hwn? 2314 01:55:11,029 --> 01:55:12,570 Nid oes rhaid inni i gopïo a gludo cod. 2315 01:55:12,570 --> 01:55:15,070 >> Ac, yn wir, unrhyw adeg rydych yn teimlo eich hun yn copïo a gludo, 2316 01:55:15,070 --> 01:55:17,700 ac nid hyd yn oed yn newid cod, groes yn, mae ffordd well. 2317 01:55:17,700 --> 01:55:19,470 Ac, yn wir, mae yna. 2318 01:55:19,470 --> 01:55:22,510 Gadewch i mi fynd yn ei flaen ac yn gwneud i dolen, er nad yw'r gystrawen efallai 2319 01:55:22,510 --> 01:55:24,570 dod yn naturiol eto. 2320 01:55:24,570 --> 01:55:29,494 >> Gwnewch hyn dair gwaith, yn syml drwy wneud y canlynol-- 2321 01:55:29,494 --> 01:55:31,160 ac yr wyf yn digwydd gwybod hyn rhag ymarfer. 2322 01:55:31,160 --> 01:55:32,810 Ond mae gennym nifer o enghreifftiau yn awr. 2323 01:55:32,810 --> 01:55:34,950 A byddwch yn gweld ar-lein mwy o gyfeiriadau o hyd. 2324 01:55:34,950 --> 01:55:37,790 >> Mae hyn yn y gystrawen ar llinell 6, bod yn debyg iawn Scratch sy'n ailadrodd 2325 01:55:37,790 --> 01:55:40,090 bloc, ailadrodd y dair gwaith canlynol. 2326 01:55:40,090 --> 01:55:41,340 Mae'n ychydig yn hudolus am y tro. 2327 01:55:41,340 --> 01:55:43,050 Ond bydd hyn yn cael mwy, ac yn fwy cyfarwydd. 2328 01:55:43,050 --> 01:55:45,050 >> Ac mae'n mynd i ailadrodd llinell wyth dair gwaith, 2329 01:55:45,050 --> 01:55:52,390 felly os byddaf yn ail-lunio gwneud peswch, dot slaes peswch, peswch, peswch, peswch. 2330 01:55:52,390 --> 01:55:54,030 Mae'n dal i weithio yn yr un ffordd. 2331 01:55:54,030 --> 01:55:55,550 Felly dyna i gyd iawn ac yn dda. 2332 01:55:55,550 --> 01:55:58,200 Ond nid yw hynny'n dynnir iawn. 2333 01:55:58,200 --> 01:55:59,371 >> Mae'n berffaith gywir. 2334 01:55:59,371 --> 01:56:01,370 Ond mae'n teimlo fel yna Gallai fod yn gyfle, 2335 01:56:01,370 --> 01:56:03,750 fel ym myd Scratch, i fath o gychwyn 2336 01:56:03,750 --> 01:56:07,530 ychwanegu ychydig o semanteg yma fel y Dydw i ddim yn unig cael rhywfaint gyfer dolen, 2337 01:56:07,530 --> 01:56:09,867 a swyddogaeth sy'n dweud peswch, neu nid peswch. 2338 01:56:09,867 --> 01:56:10,450 Ti'n gwybod beth? 2339 01:56:10,450 --> 01:56:12,620 Gadewch i mi geisio bod yn ychydig oerach na hynny, 2340 01:56:12,620 --> 01:56:16,090 ac mewn gwirionedd yn ysgrifennu swyddogaeth sy'n Mae rhai sgîl-effeithiau, ei alw'n besychu. 2341 01:56:16,090 --> 01:56:20,830 >> Ac mae'n cymryd unrhyw fewnbwn, ac yn dychwelyd unrhyw werth fel allbwn. 2342 01:56:20,830 --> 01:56:22,680 Ond eich bod yn gwybod yr hyn y mae'n ei wneud? 2343 01:56:22,680 --> 01:56:29,370 Mae'n gwneud this-- printf, dyfyniad unquote, peswch. 2344 01:56:29,370 --> 01:56:32,380 >> Ac yn awr i fyny yma, dwi'n mynd i fynd yn ei flaen ac ar gyfer int, 2345 01:56:32,380 --> 01:56:36,070 ff yn cael sero, fi llai na 3, fi yn ogystal a mwy. 2346 01:56:36,070 --> 01:56:39,770 Rydw i'n mynd i beidio â gwneud printf, sef Gellir dadlau bod gweithredu ar lefel isel 2347 01:56:39,770 --> 01:56:40,270 fanylder. 2348 01:56:40,270 --> 01:56:41,353 Nid wyf yn poeni sut i beswch. 2349 01:56:41,353 --> 01:56:43,240 Fi jyst eisiau defnyddio'r swyddogaeth peswch. 2350 01:56:43,240 --> 01:56:44,840 Ac Im 'jyst yn mynd i alw peswch. 2351 01:56:44,840 --> 01:56:46,204 >> Yn awr, yn sylwi ar y ddeuoliaeth. 2352 01:56:46,204 --> 01:56:49,370 Pan fyddwch yn galw swyddogaeth, os nad ydych yn ei wneud eisiau rhoi iddo mewnbynnau, yn hollol iawn. 2353 01:56:49,370 --> 01:56:51,780 Dim ond gwneud paren agored, yn agos paren, ac rydych yn ei wneud. 2354 01:56:51,780 --> 01:56:56,271 >> Pan fyddwch yn diffinio swyddogaeth, neu datgan prototeip swyddogaeth, yn 2355 01:56:56,271 --> 01:56:58,770 os ydych yn gwybod ymlaen llaw nad yw'n mynd i gymryd unrhyw ddadleuon, 2356 01:56:58,770 --> 01:57:01,170 dweud yn ddi-rym mewn cromfachau rheini yno. 2357 01:57:01,170 --> 01:57:05,660 Ac mae hynny'n gwneud yn siŵr bod chi Ni fydd yn ddamweiniol gamddefnyddio. 2358 01:57:05,660 --> 01:57:07,020 Gadewch i mi fynd yn ei flaen ac yn gwneud peswch. 2359 01:57:07,020 --> 01:57:08,540 Ac, wrth gwrs, yr wyf wedi gwneud camgymeriad. 2360 01:57:08,540 --> 01:57:10,410 >> Dammit, mae bod datganiad ymhlyg. 2361 01:57:10,410 --> 01:57:11,325 Ond mae hynny'n iawn. 2362 01:57:11,325 --> 01:57:12,590 Mae'n ateb hawdd. 2363 01:57:12,590 --> 01:57:18,240 Fi jyst angen y prototeip yn uwch i fyny yn fy ffeil nag Im 'mewn gwirionedd yn ei ddefnyddio. 2364 01:57:18,240 --> 01:57:20,070 >> Felly nawr gadewch i mi wneud peswch eto, 'n glws. 2365 01:57:20,070 --> 01:57:20,790 Yn awr, mae'n gweithio. 2366 01:57:20,790 --> 01:57:22,930 Gwneud peswch, peswch, peswch, peswch. 2367 01:57:22,930 --> 01:57:25,930 Felly efallai y byddwch yn meddwl ein bod mewn gwirionedd ychydig dros peirianneg broblem hon. 2368 01:57:25,930 --> 01:57:26,763 Ac, yn wir, yr ydym. 2369 01:57:26,763 --> 01:57:28,870 Nid yw hon yn dda ymgeisydd o raglen 2370 01:57:28,870 --> 01:57:31,930 ar hyn o bryd ar gyfer refactoring, a gwneud yr hyn sy'n 2371 01:57:31,930 --> 01:57:35,645 Gelwir dadelfeniad hierarchaidd, lle rydych yn cymryd, mae rhai cod, ac yna 2372 01:57:35,645 --> 01:57:38,790 chi fath o ffactor pethau allan, er priodoli mwy o semanteg iddynt, 2373 01:57:38,790 --> 01:57:40,930 ac ailddefnyddio yn y tymor hwy yn y pen draw. 2374 01:57:40,930 --> 01:57:43,490 Ond mae'n bloc adeiladu tuag at rhaglenni mwy soffistigedig 2375 01:57:43,490 --> 01:57:45,600 y byddwn yn dechrau ysgrifennu cyn bo hir fod 2376 01:57:45,600 --> 01:57:50,090 yn caniatáu i ni gael yr eirfa â hwy i ysgrifennu gwell cod. 2377 01:57:50,090 --> 01:57:52,920 Ac, yn wir, gadewch i ni weld os byddwn yn Ni all cyffredinoli hyn ymhellach. 2378 01:57:52,920 --> 01:57:57,984 >> Mae'n ymddangos yn ychydig yn gloff fy mod i, prif, Mae angen i chi boeni am darn hwn am dolen, 2379 01:57:57,984 --> 01:57:59,400 a galw peswch eto ac eto. 2380 01:57:59,400 --> 01:58:03,050 Pam na allaf jyst dweud peswch, os gwelwch yn dda peswch dair gwaith? 2381 01:58:03,050 --> 01:58:08,170 Mewn geiriau eraill, ni allaf pam jyst rhoi mewnbwn i peswch ac yn gwneud hyn? 2382 01:58:08,170 --> 01:58:11,270 >> Pam na allaf ddweud, yn prif peswch dair gwaith. 2383 01:58:11,270 --> 01:58:13,150 Ac yn awr, mae hyn yn fath o hudol. 2384 01:58:13,150 --> 01:58:14,540 Mae'n ailadroddol iawn yma. 2385 01:58:14,540 --> 01:58:15,940 Ac mae'n, yn wir, yn gam babi. 2386 01:58:15,940 --> 01:58:19,250 >> Ond dim ond y gallu i ddweud am llinell wyth, peswch dair gwaith, 2387 01:58:19,250 --> 01:58:20,730 'i' jyst gymaint yn fwy darllenadwy. 2388 01:58:20,730 --> 01:58:24,210 Ac, yn ogystal, nid oes rhaid i mi ei wybod neu ofal sut peswch yn cael ei weithredu. 2389 01:58:24,210 --> 01:58:26,460 Ac, yn wir, yn ddiweddarach yn y tymor ac ar gyfer prosiectau terfynol, 2390 01:58:26,460 --> 01:58:29,150 os byddwch yn mynd i'r afael prosiect gyda gyd-ddisgybl neu ddau cyd-ddisgyblion, 2391 01:58:29,150 --> 01:58:32,370 byddwch yn sylweddoli eich bod yn mynd i rhaid i, neu eisiau, rhannwch y gwaith. 2392 01:58:32,370 --> 01:58:34,650 >> Ac rydych yn mynd i eisiau i benderfynu ymlaen llaw, pwy sy'n mynd i wneud beth, 2393 01:58:34,650 --> 01:58:35,483 ac y mae darnau? 2394 01:58:35,483 --> 01:58:37,520 Ac ni fyddai'n braf os ydych chi, er enghraifft, 2395 01:58:37,520 --> 01:58:40,100 fod yn gyfrifol am ysgrifennu prif, wneud. 2396 01:58:40,100 --> 01:58:43,470 Ac yn eich roommate, neu eich partner yn fwy cyffredinol, 2397 01:58:43,470 --> 01:58:45,230 yn gofalu am weithredu peswch. 2398 01:58:45,230 --> 01:58:49,540 >> Ac mae rhaniad hwn, mae'r rhain yn waliau tynnu dŵr, 2399 01:58:49,540 --> 01:58:52,310 neu haenau o tynnu os byddwch, yn super pwerus, 2400 01:58:52,310 --> 01:58:55,480 oherwydd yn enwedig ar gyfer mwy o faint, mwy o raglenni a systemau cymhleth, 2401 01:58:55,480 --> 01:59:00,070 mae'n caniatáu i bobl lluosog i adeiladu pethau at ei gilydd, ac yn y pen draw 2402 01:59:00,070 --> 01:59:02,680 pwyth eu gwaith gyda'i gilydd yn y ffordd hon. 2403 01:59:02,680 --> 01:59:05,332 Ond, wrth gwrs, rydym yn Mae angen i nawr atgyweiria peswch. 2404 01:59:05,332 --> 01:59:07,290 Mae angen i ni ddweud wrth peswch hynny, hey, eich bod yn gwybod beth? 2405 01:59:07,290 --> 01:59:11,230 Rydych yn mynd i angen i gymryd input-- felly nid ddi-rym, ond int ac yn awr. 2406 01:59:11,230 --> 01:59:15,170 Gadewch i ni fynd yn ei flaen ac yn rhoi mewn peswch y int. ff yn cael sero. 2407 01:59:15,170 --> 01:59:16,890 >> ff yn llai na faint o weithiau. 2408 01:59:16,890 --> 01:59:18,550 Dywedais dair o'r blaen. 2409 01:59:18,550 --> 01:59:20,420 Ond nid dyna beth rwyf eisiau. 2410 01:59:20,420 --> 01:59:25,520 Wyf am peswch i fod yn gyffredinol i cefnogi unrhyw nifer o iteriadau. 2411 01:59:25,520 --> 01:59:28,800 >> Felly, yn wir, mae'n n yr wyf am, beth bynnag y defnyddiwr yn dweud wrthyf. 2412 01:59:28,800 --> 01:59:31,620 Yn awr, gallaf fynd yn ei flaen a dweud peswch print. 2413 01:59:31,620 --> 01:59:34,750 Ac ni waeth pa rif y defnyddiwr yn mynd i mewn, 2414 01:59:34,750 --> 01:59:36,890 Byddaf yn ailadrodd hynny lawer gwaith. 2415 01:59:36,890 --> 01:59:39,160 >> Felly, ar ddiwedd y dydd, rhaglen yn union yr un fath. 2416 01:59:39,160 --> 01:59:42,820 Ond sylwi holl bethau hyn Gallai hyd yn oed fod mewn ffeil arall. 2417 01:59:42,820 --> 01:59:45,620 Yn wir, nid wyf yn gwybod am y foment pa mor printf cael ei weithredu. 2418 01:59:45,620 --> 01:59:47,980 >> Nid wyf yn gwybod ar hyn o bryd sut gael llinyn, neu gael int, neu gael fflôt 2419 01:59:47,980 --> 01:59:48,646 yn cael eu gweithredu. 2420 01:59:48,646 --> 01:59:50,930 Ac nid wyf am eu gweld ar fy sgrin. 2421 01:59:50,930 --> 01:59:55,320 Fel y mae, rwy'n dechrau i ganolbwyntio ar fy rhaglen, nid yw swyddogaethau hynny. 2422 01:59:55,320 --> 01:59:59,070 >> Ac felly, yn wir, cyn gynted ag y byddwch yn dechrau ffactoreiddio cod fel hyn allan, 2423 01:59:59,070 --> 02:00:01,397 gallem hyd yn oed symud peswch i ffeil ar wahân? 2424 02:00:01,397 --> 02:00:02,730 Gallai rhywun arall roi ar waith. 2425 02:00:02,730 --> 02:00:06,810 A'ch bod chi a'ch rhaglen yn dod yn y yn hardd iawn, ac yn ddarllenadwy iawn, 2426 02:00:06,810 --> 02:00:10,830 Gellir dadlau, mewn gwirionedd pedwar rhaglen llinell iawn yno. 2427 02:00:10,830 --> 02:00:13,510 >> Felly gadewch i ni fynd yn ei flaen yn awr ac yn gwneud un newid mwy. 2428 02:00:13,510 --> 02:00:16,180 Sylwch fod fy prototeip Mae newid i fyny top. 2429 02:00:16,180 --> 02:00:18,390 Felly, gadewch i mi atgyweiria bod felly Dydw i ddim yn cael yelled ar. 2430 02:00:18,390 --> 02:00:22,580 >> Gwneud peswch, gadewch i mi redeg peswch unwaith mwy, dal i wneud yr un peth. 2431 02:00:22,580 --> 02:00:26,010 Ond yn awr, yn sylwi gennym cynhwysyn ar gyfer un fersiwn derfynol. 2432 02:00:26,010 --> 02:00:26,940 Ti'n gwybod beth? 2433 02:00:26,940 --> 02:00:29,040 Dydw i ddim eisiau i ddim ond beswch, o reidrwydd. 2434 02:00:29,040 --> 02:00:30,802 Rwyf am gael rhywbeth mwy cyffredinol. 2435 02:00:30,802 --> 02:00:31,510 Felly, rydych yn gwybod beth? 2436 02:00:31,510 --> 02:00:32,450 Rwyf am wneud hyn. 2437 02:00:32,450 --> 02:00:37,140 Yr wyf am gael, yn debyg iawn Scratch wneud, bloc dweud, ond nid dim ond 2438 02:00:37,140 --> 02:00:38,680 dweud rhywbeth rhyw nifer o weithiau. 2439 02:00:38,680 --> 02:00:41,510 Yr wyf am ei ddweud llinyn penodol iawn. 2440 02:00:41,510 --> 02:00:43,850 Ac, felly, nid wyf yn ei wneud am iddo dim ond dweud peswch. 2441 02:00:43,850 --> 02:00:47,660 Rwyf am iddo ddweud beth bynnag llinyn yn cael ei basio i mewn. 2442 02:00:47,660 --> 02:00:49,960 >> Felly sylwi, dwi wedi cyffredinoli hyn fel y nawr 2443 02:00:49,960 --> 02:00:53,110 dyweder teimlo fel enw da ar gyfer hyn, fel Scratch, 2444 02:00:53,110 --> 02:00:55,530 yn cymryd dwy ddadl, yn wahanol Scratch. 2445 02:00:55,530 --> 02:00:56,570 Mae un yn llinyn. 2446 02:00:56,570 --> 02:00:57,300 Mae un yn int. 2447 02:00:57,300 --> 02:00:58,130 >> A gallwn eu newid. 2448 02:00:58,130 --> 02:01:00,713 Fi jyst fath o fel y syniad o dweud y llinyn cyntaf, ac yna 2449 02:01:00,713 --> 02:01:01,940 faint o weithiau yn ddiweddarach. 2450 02:01:01,940 --> 02:01:03,970 Void yn golygu ei fod yn dal i nid yw'n dychwelyd unrhyw beth. 2451 02:01:03,970 --> 02:01:06,428 Mae'r rhain yn ochr weledol yn unig effeithiau, fel gyda [? Jordan,?] 2452 02:01:06,428 --> 02:01:08,240 sgîl-effaith ar lafar o gweiddi. 2453 02:01:08,240 --> 02:01:12,630 Mae'n dal i wneud amserau rhywbeth n, 0 hyd at, ond nid yn gyfartal i n. 2454 02:01:12,630 --> 02:01:14,540 Mae hyn yn golygu cyfanswm n amser. 2455 02:01:14,540 --> 02:01:16,540 Ac yna dim ond argraffu beth bynnag y llinyn yw. 2456 02:01:16,540 --> 02:01:19,060 Felly dwi wedi cyffredinol 'n sylweddol llinell hon o god. 2457 02:01:19,060 --> 02:01:22,460 Felly nawr, sut ydw i'n rhoi ar waith y swyddogaeth peswch? 2458 02:01:22,460 --> 02:01:25,520 >> Gallaf ei wneud peswch ddi-rym. 2459 02:01:25,520 --> 02:01:28,501 A oes modd i mi gymryd yn y modd y sawl gwaith rydych am ei beswch. 2460 02:01:28,501 --> 02:01:29,250 Ond eich bod yn gwybod beth? 2461 02:01:29,250 --> 02:01:31,240 Bellach gallaf punt i'w ddweud. 2462 02:01:31,240 --> 02:01:36,540 >> Gallaf alw ddweud yn y peswch gair, gan fynd heibio yn n. 2463 02:01:36,540 --> 02:01:40,410 Ac os wyf am i weithredu hefyd, dim ond am hwyl, swyddogaeth tisian, 2464 02:01:40,410 --> 02:01:42,290 Gallaf tisian rhyw nifer o weithiau. 2465 02:01:42,290 --> 02:01:47,300 A gallaf gadw ailddefnyddio n, gan fod sylwi bod m yn y cyd-destun hwn neu gwmpas 2466 02:01:47,300 --> 02:01:49,470 ond yn bodoli o fewn y swyddogaeth hon. 2467 02:01:49,470 --> 02:01:52,767 >> Ac n yn y cyd-destun hwn yn unig bodoli o fewn y swyddogaeth hon yma. 2468 02:01:52,767 --> 02:01:54,600 Felly byddwn yn dod yn ôl at y materion hyn o gwmpas. 2469 02:01:54,600 --> 02:02:01,160 Ac yma, Im 'jyst yn mynd i ddweud, achoo, ac yna amseroedd n, hanner colon. 2470 02:02:01,160 --> 02:02:04,340 >> Ac yn awr, yr wyf yn jyst angen i fenthyg swyddogaeth hyn llofnodion i fyny yma. 2471 02:02:04,340 --> 02:02:06,290 Felly peswch yn gywir. 2472 02:02:06,290 --> 02:02:10,090 tisian Void yn gywir yn awr. 2473 02:02:10,090 --> 02:02:12,390 >> Ac yr wyf yn dal i fod dim ond angen ei ddweud. 2474 02:02:12,390 --> 02:02:18,990 Felly, yr wyf i'n mynd i ddweud, dyweder llinyn s, int n, hanner colon. 2475 02:02:18,990 --> 02:02:22,010 Felly dwi wedi gor-engineered y Heck allan o'r rhaglen hon. 2476 02:02:22,010 --> 02:02:23,760 >> Ac nid yw hyn yn o reidrwydd yn golygu mae hyn yn 2477 02:02:23,760 --> 02:02:26,343 beth ddylech ei wneud wrth ysgrifennu hyd yn oed y symlaf o raglenni. 2478 02:02:26,343 --> 02:02:29,280 Cymerwch rhywbeth sy'n amlwg yn 'n sylweddol syml, mewn gwirionedd byr, 2479 02:02:29,280 --> 02:02:31,800 ac ail-roi ar waith gan ddefnyddio ffordd gormod cod. 2480 02:02:31,800 --> 02:02:34,560 Ond byddwch yn gweld, ac yn amser edrych yn ôl ar yr enghreifftiau hyn, 2481 02:02:34,560 --> 02:02:38,610 a sylweddoli, oh, y rhai yw'r camau rydym yn cymryd i gyffredinoli mewn gwirionedd, 2482 02:02:38,610 --> 02:02:40,797 i ffactor rhywbeth allan, tan ar ddiwedd y dydd 2483 02:02:40,797 --> 02:02:42,380 fy cod yn mewn gwirionedd yn eithaf rhesymol. 2484 02:02:42,380 --> 02:02:45,960 Oherwydd os wyf am peswch tri Amseroedd Yna tisian dair gwaith, 2485 02:02:45,960 --> 02:02:50,420 Im 'yn syml yn mynd i ailgynnal hyn, rhaglen yn gwneud peswch, a rhedeg peswch. 2486 02:02:50,420 --> 02:02:53,620 Ac yr wyf wedi tri pheswch a thri thisian. 2487 02:02:53,620 --> 02:02:55,990 >> Ac felly mae hyn yn sylfaenol paradeim, os mynnwch, 2488 02:02:55,990 --> 02:03:00,110 am sut y gallem fynd ati mewn gwirionedd yn gweithredu rhaglen. 2489 02:03:00,110 --> 02:03:03,220 Ond gadewch i ni ond yn gweld yn awr yr hyn ydyw rydym wedi bod yn gwneud yr holl amser hwn, 2490 02:03:03,220 --> 02:03:06,940 a hyn y mae rhai o'r darnau terfynol yn tu ôl i hyn gorchymyn syml. 2491 02:03:06,940 --> 02:03:09,620 Ar ddiwedd y dydd, mae gennym bod yn defnyddio chlang fel ein compiler. 2492 02:03:09,620 --> 02:03:11,494 Rydym wedi bod yn ysgrifennu ffynhonnell cod, trosi ei 2493 02:03:11,494 --> 02:03:12,820 drwy chlang i mewn i cod peiriant. 2494 02:03:12,820 --> 02:03:15,540 >> Ac rydym wedi bod yn defnyddio Gwneud yn unig i hwyluso ein keystrokes felly 2495 02:03:15,540 --> 02:03:20,740 nad oes rhaid i ni gofio incantations hynny chlang ei hun. 2496 02:03:20,740 --> 02:03:22,640 Ond beth yw Gwneud gwirionedd yn ei wneud? 2497 02:03:22,640 --> 02:03:24,750 Ac, yn ei dro, beth yw Chlang mewn gwirionedd yn gwneud? 2498 02:03:24,750 --> 02:03:28,790 >> Mae'n troi allan, er ein bod wedi symleiddio trafodaeth heddiw drwy ddweud, 2499 02:03:28,790 --> 02:03:33,090 byddwch yn cymryd cod ffynhonnell, ei drosglwyddo fel mewnbwn i'r casglwr, sy'n rhoi i chi 2500 02:03:33,090 --> 02:03:35,750 allbwn o beiriant cod, yn troi allan yno yn 2501 02:03:35,750 --> 02:03:37,420 ychydig o gamau gwahanol y tu mewn yno. 2502 02:03:37,420 --> 02:03:41,940 Ac yn llunio digwydd i fod ymbarél dymor ar gyfer criw cyfan o gamau. 2503 02:03:41,940 --> 02:03:43,970 Ond gadewch i ni dim ond tynnu maes hon 'n sylweddol yn gyflym. 2504 02:03:43,970 --> 02:03:48,070 >> Mae'n troi allan ein bod wedi bod yn gwneud mwy o bethau bob tro rwy'n cynnal rhaglen, 2505 02:03:48,070 --> 02:03:50,990 neu bob tro rwy'n llunio rhaglen heddiw. 2506 02:03:50,990 --> 02:03:55,020 Felly preprocessing yn cyfeirio at this-- unrhyw beth mewn rhaglen C, 2507 02:03:55,020 --> 02:03:58,720 fel y byddwn yn gweld eto ac eto, sy'n dechrau gyda hyn symbol hash, 2508 02:03:58,720 --> 02:04:03,320 neu symbol hashtag yma, yn golygu mae'n gyfarwyddeb Preprocessor. 2509 02:04:03,320 --> 02:04:07,330 Mae hynny'n golygu, yn yr achos hwn, hey cyfrifiadur, wneud rhywbeth gyda ffeil hon 2510 02:04:07,330 --> 02:04:09,430 cyn i chi lunio fy cod hun. 2511 02:04:09,430 --> 02:04:15,220 >> Yn yr achos hwn, hash cynnwys yw, yn y bôn, ffordd C o ddweud, 2512 02:04:15,220 --> 02:04:19,325 hey cyfrifiadur, ewch cael y cynnwys o CS50.h a bastio nhw yma. 2513 02:04:19,325 --> 02:04:22,170 Hey cyfrifiadur, mynd yn cael y cynnwys IO.h safonol, 2514 02:04:22,170 --> 02:04:24,690 lle bynnag sydd ar y 'n anawdd cathrena, gludwch yma. 2515 02:04:24,690 --> 02:04:27,390 Felly, y pethau hynny ddigwydd cyntaf yn ystod preprocessing. 2516 02:04:27,390 --> 02:04:28,880 >> A chlang yn gwneud hyn i gyd i ni. 2517 02:04:28,880 --> 02:04:30,510 Ac mae'n ei wneud mor darn cyflym, nid ydych hyd yn oed yn ei wneud 2518 02:04:30,510 --> 02:04:32,000 gweld pedwar peth ar wahân digwydd. 2519 02:04:32,000 --> 02:04:34,100 Ond dyna y cam cyntaf o'r fath. 2520 02:04:34,100 --> 02:04:35,560 >> Beth yn union fydd yn digwydd nesaf? 2521 02:04:35,560 --> 02:04:38,320 Wel, y swyddog nesaf cam yn llunio. 2522 02:04:38,320 --> 02:04:40,385 Ac mae'n troi allan y llunio rhaglen 2523 02:04:40,385 --> 02:04:44,060 dechnegol yn golygu mynd o cod ffynhonnell, y pethau rydym wedi 2524 02:04:44,060 --> 02:04:47,890 bod yn ysgrifennu heddiw, i rywbeth Gelwir cod cynulliad, rhywbeth 2525 02:04:47,890 --> 02:04:49,260 sy'n edrych ychydig yn wahanol. 2526 02:04:49,260 --> 02:04:51,050 >> Ac, yn wir, gallwn weld hyn yn go gyflym. 2527 02:04:51,050 --> 02:04:53,890 Gadewch i mi mewn gwirionedd yn mynd i mewn i fy IDE. 2528 02:04:53,890 --> 02:04:58,050 Gadewch i mi fynd yn ei flaen a hello.c agored, sy'n yw'r rhaglen gyntaf iawn gyda yr ydym yn 2529 02:04:58,050 --> 02:04:59,120 Dechreuodd heddiw. 2530 02:04:59,120 --> 02:05:04,130 A gadewch i mi fynd yn ei flaen ac yn rhedeg chlang yn ychydig yn wahanol, chlang-s, hello.c, 2531 02:05:04,130 --> 02:05:07,720 sydd mewn gwirionedd yn mynd i rhoi ffeil hello.s arall mi. 2532 02:05:07,720 --> 02:05:10,330 >> Ac mae'n debyg y byddwn yn byth unwaith eto yn gweld y math hwn o god. 2533 02:05:10,330 --> 02:05:13,030 Os byddwch yn cymryd lefel is dosbarth systemau fel CS61, 2534 02:05:13,030 --> 02:05:14,920 byddwch yn gweld llawer mwy o'r math hwn o god. 2535 02:05:14,920 --> 02:05:17,020 Ond mae hyn yn iaith cynulliad. 2536 02:05:17,020 --> 02:05:22,050 Mae hyn yn x86 iaith cynulliad bod y CPU sy'n gwaelodol 2537 02:05:22,050 --> 02:05:24,460 CS50 IDE mewn gwirionedd yn deall. 2538 02:05:24,460 --> 02:05:27,060 >> Ac cryptig fel y mae'n ei wneud edrych, mae'n rhywbeth 2539 02:05:27,060 --> 02:05:29,180 y cyfrifiadur yn deall yn eithaf da. 2540 02:05:29,180 --> 02:05:30,790 Is q, mae hwn yn amharu arno. 2541 02:05:30,790 --> 02:05:31,660 Mae symudiadau. 2542 02:05:31,660 --> 02:05:35,730 >> Mae wedi galw swyddogaethau yma, x oring, mudiad, rhywbeth atodol, pop, 2543 02:05:35,730 --> 02:05:36,430 dychwelyd. 2544 02:05:36,430 --> 02:05:38,850 Felly mae rhywfaint iawn cyfarwyddiadau lefel isel 2545 02:05:38,850 --> 02:05:41,280 bod CPUs yn deall bod Yr wyf yn cyfeirio at gynharach. 2546 02:05:41,280 --> 02:05:43,100 Dyna beth Intel tu mewn. 2547 02:05:43,100 --> 02:05:45,030 >> Mae patrymau zeros a rhai sy'n 2548 02:05:45,030 --> 02:05:51,800 map at y rhain wedi'u geirio'n arcanely, ond braidd-enwir yn dda, cyfarwyddiadau, 2549 02:05:51,800 --> 02:05:52,780 felly, i siarad. 2550 02:05:52,780 --> 02:05:54,780 Dyna beth sy'n digwydd pan chi lunio eich cod. 2551 02:05:54,780 --> 02:05:58,560 Byddwch yn cael cynulliad iaith allan ohono, a oedd yn 2552 02:05:58,560 --> 02:06:04,680 yn golygu bod y trydydd cam yw i ymgynnull y cod cynulliad i mewn i, yn y pen draw, 2553 02:06:04,680 --> 02:06:09,080 peiriant zeros code-- a rhai, nid yw'r destun yr ydym yn jyst yn gweld eiliad yn ôl. 2554 02:06:09,080 --> 02:06:13,370 >> Felly cyn-brosesu y mae hynny'n ei chael ac yn ei le, ac ychydig o bethau eraill. 2555 02:06:13,370 --> 02:06:16,430 Llunio yn cymryd eich ffynhonnell cod o C, cod ffynhonnell 2556 02:06:16,430 --> 02:06:18,980 ein bod yn ysgrifennu, i ymgynnull cod yr ydym newydd bwrw golwg ar. 2557 02:06:18,980 --> 02:06:22,170 Cydosod yn cymryd y cynulliad cod i sero a rhai 2558 02:06:22,170 --> 02:06:24,680 bod y CPU mewn gwirionedd bydd deall ar ddiwedd y dydd. 2559 02:06:24,680 --> 02:06:27,630 A chysylltu yw'r cam olaf sy'n digwydd i us-- eto, 2560 02:06:27,630 --> 02:06:29,830 mor gyflym nad ydym hyd yn oed yn ei wneud notice-- sy'n dweud, 2561 02:06:29,830 --> 02:06:32,460 hey cyfrifiadur, cymryd yr holl y zeros a rhai sy'n 2562 02:06:32,460 --> 02:06:36,750 deillio o lunio cod Dewi, ac mae ei brif swyddogaeth yn yr achos hwn. 2563 02:06:36,750 --> 02:06:39,160 >> Ac hey cyfrifiadur, ewch cael pob un o'r zeros a rhai 2564 02:06:39,160 --> 02:06:42,180 a ysgrifennodd y staff CS50 y tu mewn i'r llyfrgell CS50. 2565 02:06:42,180 --> 02:06:43,440 Cymysgwch y rhai gyda Dewi. 2566 02:06:43,440 --> 02:06:46,648 Ac hey cyfrifiadur, ewch cael yr holl sero a rhai bod rhywun arall yn ysgrifennu flynyddoedd 2567 02:06:46,648 --> 02:06:47,470 yn ôl ar gyfer printf. 2568 02:06:47,470 --> 02:06:49,880 Ac ychwanegu rhai i mewn i'r beth cyfan, er mwyn i ni i wedi 2569 02:06:49,880 --> 02:06:52,870 got fy zeros a rhai, mae'r zeros a rhai staff CS50, a 2570 02:06:52,870 --> 02:06:55,370 y zeros printf a rhai, ac unrhyw beth arall rydym yn ei ddefnyddio. 2571 02:06:55,370 --> 02:07:00,410 >> Maent i gyd yn cael eu cyfuno ynghyd mewn un rhaglen o'r enw, yn yr achos hwn, helo. 2572 02:07:00,410 --> 02:07:03,141 Felly o hyn ymlaen, byddwn yn unig ddefnyddio'r gair o gasglu. 2573 02:07:03,141 --> 02:07:06,390 A byddwn yn cymryd yn ganiataol bod pan dywedwn, llunio eich rhaglen, mae'n golygu, 2574 02:07:06,390 --> 02:07:08,849 hey wneud y cyn-prosesu, cydosod, a chysylltu. 2575 02:07:08,849 --> 02:07:11,890 Ond mae mewn gwirionedd rhai pethau juicy digwydd yno o dan y cwfl. 2576 02:07:11,890 --> 02:07:13,723 Ac yn enwedig os ydych cael chwilfrydig peth amser, 2577 02:07:13,723 --> 02:07:15,900 gallwch ddechrau procio o gwmpas ar y lefel is hwn. 2578 02:07:15,900 --> 02:07:19,660 Ond am nawr, yn sylweddoli bod ymhlith y siopau cludfwyd ar gyfer heddiw 2579 02:07:19,660 --> 02:07:23,420 yn eithaf syml, y gan ddechrau o broses, 2580 02:07:23,420 --> 02:07:26,700 o gael gyfforddus gyda rhywbeth fel byd helo. 2581 02:07:26,700 --> 02:07:29,575 Yn wir, mae'r rhan fwyaf o'r hyn a wnaethom heddiw Ni fydd yn sicr yn suddo mewn super gyflym. 2582 02:07:29,575 --> 02:07:31,491 A bydd yn cymryd peth amser, a rhywfaint o arfer. 2583 02:07:31,491 --> 02:07:33,864 Ac groes yn, byddwch yn didoli o awyddus i daro eich bysellfwrdd 2584 02:07:33,864 --> 02:07:34,780 neu gweiddi ar y sgrîn. 2585 02:07:34,780 --> 02:07:35,880 Ac mae pob un mae hynny'n iawn. 2586 02:07:35,880 --> 02:07:38,320 Er, efallai ceisiwch beidio â yn ei wneud yn y llyfrgell cymaint. 2587 02:07:38,320 --> 02:07:40,820 >> Ac yn y pen draw, wnewch chi helpu yn cael ei gallu serch hynny, i ddechrau 2588 02:07:40,820 --> 02:07:44,580 gweld patrymau mewn cod da eich bod wedi ysgrifennu ac yn gamgymeriadau 2589 02:07:44,580 --> 02:07:45,370 eich bod wedi gwneud. 2590 02:07:45,370 --> 02:07:48,965 Ac yn debyg iawn i'r broses o dod yn TF neu Awdurdod Cymwys yn debyg, 2591 02:07:48,965 --> 02:07:51,590 byddwch yn dechrau i gael gwell a well yn gweld patrymau hynny, 2592 02:07:51,590 --> 02:07:53,774 a dim ond ddatrys eich problemau eu hunain yn y pen draw. 2593 02:07:53,774 --> 02:07:56,940 Yn y cyfamser, bydd digon ohonom i roi benthyg cefnogaeth i chi, ac yn mynd â chi 2594 02:07:56,940 --> 02:07:57,481 drwy hyn. 2595 02:07:57,481 --> 02:07:59,450 Ac yn y ysgrifennu-ups ar gyfer pob un o'r problemau 2596 02:07:59,450 --> 02:08:01,366 byddwch yn cael eich tywys drwy pob un o'r gorchmynion 2597 02:08:01,366 --> 02:08:05,330 fy mod yn sicr yn gwybod o llawer o ymarfer erbyn hyn, 2598 02:08:05,330 --> 02:08:07,380 ond gallai fod wedi hedfan dros un ar ben am y tro. 2599 02:08:07,380 --> 02:08:08,580 A dyna gwbl iawn. 2600 02:08:08,580 --> 02:08:11,230 >> Ond, yn y pen draw, rydych chi'n mynd i ddechrau i weld patrymau yn ymddangos. 2601 02:08:11,230 --> 02:08:14,260 Ac ar ôl i chi gael y gorffennol yr holl Manylion twp, fel cromfachau, 2602 02:08:14,260 --> 02:08:16,710 a bresys cyrliog, a hanner colon, ac mae'r stwff, dweud y gwir, 2603 02:08:16,710 --> 02:08:19,360 Nid yw hynny o gwbl ddeallusol ddiddorol. 2604 02:08:19,360 --> 02:08:22,690 Ac nid yw'n amcan o cymryd unrhyw ddosbarth rhagarweiniol. 2605 02:08:22,690 --> 02:08:24,410 Mae'n y syniadau sydd yn mynd i mater. 2606 02:08:24,410 --> 02:08:26,659 >> Mae'n y dolenni, a'r amodau, a swyddogaethau, 2607 02:08:26,659 --> 02:08:30,552 ac yn fwy grymus y tyniad, ac mae'r ffactoreiddio o god, 2608 02:08:30,552 --> 02:08:33,510 ac mae'r dyluniad da, ac mae'r da arddull, ac yn y pen draw, y cywirdeb 2609 02:08:33,510 --> 02:08:37,330 o eich cod, dyna yn y pen draw mynd i pwys mwyaf. 2610 02:08:37,330 --> 02:08:40,925 Felly yr wythnos nesaf, byddwn yn cymryd y rhain syniadau a welsom yn gyntaf yn Scratch 2611 02:08:40,925 --> 02:08:42,800 ac yn awr wedi cyfieithu i C. A byddwn yn dechrau 2612 02:08:42,800 --> 02:08:45,740 i gyflwyno'r cyntaf y parthau byd go iawn cwrs. 2613 02:08:45,740 --> 02:08:50,140 >> Byddwn yn canolbwyntio ar y byd o ddiogelwch, a cryptograffiaeth yn fwy penodol, 2614 02:08:50,140 --> 02:08:51,980 y grefft o sgrialu gwybodaeth. 2615 02:08:51,980 --> 02:08:54,000 Ac ymhlith y cyntaf problemau i chi eich hun 2616 02:08:54,000 --> 02:08:56,840 Bydd cael i ysgrifennu y tu hwnt i chwarae gyda rhai o'r gystrawen 2617 02:08:56,840 --> 02:08:59,880 a datrys rhai rhesymegol problemau, yn y pen draw cyn bo hir, 2618 02:08:59,880 --> 02:09:03,960 yw i sgrialu mewn gwirionedd, neu amgryptio, ac yn y pen draw dadgryptio gwybodaeth. 2619 02:09:03,960 --> 02:09:06,470 Ac mae popeth yr ydym wedi'i wneud heddiw, bydd yn weddol isel 2620 02:09:06,470 --> 02:09:09,190 lefel, yn unig yn mynd i ganiatáu ni gymryd un, ac un, 2621 02:09:09,190 --> 02:09:13,550 ac un cam yn fwy uchod tuag at ysgrifennu'r cod mwyaf diddorol hyd yma. 2622 02:09:13,550 --> 02:09:15,050 >> Felly mwy am hynny yr wythnos nesaf. 2623 02:09:15,050 --> 02:09:17,834 2624 02:09:17,834 --> 02:09:18,762 >> [VIDEO Playback] 2625 02:09:18,762 --> 02:09:19,690 2626 02:09:19,690 --> 02:09:22,006 >> -Beth A allwch ddweud wrthyf am y tro diwethaf i chi weld ef? 2627 02:09:22,006 --> 02:09:26,041 2628 02:09:26,041 --> 02:09:27,040 -Beth Allaf i ei ddweud, mewn gwirionedd? 2629 02:09:27,040 --> 02:09:30,500 2630 02:09:30,500 --> 02:09:35,340 Yr wyf yn golygu, yr oedd fel unrhyw un arall ymarfer cyn-gynhyrchu, 2631 02:09:35,340 --> 02:09:40,510 heblaw bod rhywbeth dywedodd ar yr union perwyl hwnnw aros gyda mi. 2632 02:09:40,510 --> 02:09:44,810 2633 02:09:44,810 --> 02:09:46,640 >> -Mae Hyn oedd CS50. 2634 02:09:46,640 --> 02:09:49,440 2635 02:09:49,440 --> 02:09:52,190 >> -bod 'Na pawb torri, gwaith gwych ar ymarfer. 2636 02:09:52,190 --> 02:09:53,070 >> cinio -bod yn? 2637 02:09:53,070 --> 02:09:54,986 >> -Yeah, Ydych chi a minnau yn gallu fachu brechdan mewn tipyn. 2638 02:09:54,986 --> 02:09:58,380 Gadewch i mi ôl-drafod gyda David yn gyflym iawn. 2639 02:09:58,380 --> 02:09:59,160 Dafydd? 2640 02:09:59,160 --> 02:10:01,260 Dafydd? 2641 02:10:01,260 --> 02:10:03,110 >> [DIWEDD Playback]