1 00:00:00,000 --> 00:00:02,880 >> [CHWARAE CERDDORIAETH] 2 00:00:02,880 --> 00:00:10,580 3 00:00:10,580 --> 00:00:13,500 >> SIARADWR 1: Mae hwn yn CS50 ac mae hyn yn ddechrau wythnos dau. 4 00:00:13,500 --> 00:00:18,400 Felly, gadewch i ni plymio i'r dde i mewn i rywbeth hynny yw buggy, fel petai. 5 00:00:18,400 --> 00:00:24,015 Felly, dros yma yw IDE CS50 ac rwyf wedi tynnu i fyny o flaen llaw hwn screen-- damn 6 00:00:24,015 --> 00:00:25,070 iddo. 7 00:00:25,070 --> 00:00:25,760 Effro spoiler. 8 00:00:25,760 --> 00:00:26,260 Iawn. 9 00:00:26,260 --> 00:00:29,060 Rydw i wedi dynnu i fyny y sgrin hon fan hyn, sydd â rhaglen syml iawn. 10 00:00:29,060 --> 00:00:32,659 Os byddwn yn sgroliwch i lawr, mae'r rhan fwyaf o hyn yn unig yw sylwadau, 11 00:00:32,659 --> 00:00:36,730 ond yma mewn llinellau 13 drwy 17 mae gennym raglen. 12 00:00:36,730 --> 00:00:40,580 >> Mae'n syntactically ddilys, sy'n golygu os Yr wyf yn llunio ei, bydd yn llunio ac yn rhedeg, 13 00:00:40,580 --> 00:00:41,920 ond mae'n bygi. 14 00:00:41,920 --> 00:00:47,330 Mae'r rhaglen hon yn honni yn y sylwadau hyd top y dylai argraffu 10 sêr, 15 00:00:47,330 --> 00:00:48,870 ond nid yw'n gwneud hynny. 16 00:00:48,870 --> 00:00:53,290 Ac yn seiliedig ar eich profiad, neu yn fuan i fod yn brofiad gyda C, 17 00:00:53,290 --> 00:00:56,820 gallwch ddirnad rhesymegol pam mae hyn yn, mewn gwirionedd, bygi? 18 00:00:56,820 --> 00:00:57,804 Yeah? 19 00:00:57,804 --> 00:00:59,220 GYNULLEIDFA: Mae'n mynd o sero i 10. 20 00:00:59,220 --> 00:01:01,884 Dyna 11 o iteriadau. 21 00:01:01,884 --> 00:01:02,550 SIARADWR 1: Yeah. 22 00:01:02,550 --> 00:01:06,030 Felly, mae'n mynd o sero fyny drwy ac yn hafal i 10, 23 00:01:06,030 --> 00:01:08,140 sydd wrth gwrs yw 11 iteriadau. 24 00:01:08,140 --> 00:01:10,020 Felly, mae'n mynd i print, yn wir, 11 sêr. 25 00:01:10,020 --> 00:01:13,040 Felly, mae'r confensiwn gwyddoniaeth gyfrifiadurol yn y rhan fwyaf o ieithoedd rhaglennu 26 00:01:13,040 --> 00:01:15,270 yw, yn wir, dim ond i dechrau cyfrif ar sero, 27 00:01:15,270 --> 00:01:18,800 ond yn cyfrif hyd at, ond nid drwy'r gwerth yr ydych yn ei poeni am. 28 00:01:18,800 --> 00:01:21,216 >> Yn awr, mae hyn yn un peth sy'n cymryd ychydig ddod i arfer â 29 00:01:21,216 --> 00:01:25,350 a hyd yn oed Scratch, a gynlluniwyd gan ei fod yn am beidio rhaglenwyr neu heb gyfrifiadur 30 00:01:25,350 --> 00:01:28,070 gwyddonwyr ac ar gyfer plant i raddau helaeth, wedi ei gynllunio i gael 31 00:01:28,070 --> 00:01:29,570 byddwch yn dechrau cyfrif y cyfan ar un. 32 00:01:29,570 --> 00:01:30,277 Ac mae hynny'n iawn. 33 00:01:30,277 --> 00:01:33,110 Gallwch hollol ddechrau cyfrif ar un os yw hynny'n fwy cyfforddus. 34 00:01:33,110 --> 00:01:37,210 Ac yn cyfrif hyd at a thrwy 10, ond byddwch yn sylweddoli yn arbennig yr wythnos hon 35 00:01:37,210 --> 00:01:39,950 a tu hwnt i hynny dim ond er mwyn llawer o bethau yn rhaglennu 36 00:01:39,950 --> 00:01:42,465 cymryd yn ganiataol bod 0 yw'r cyntaf digid ydych yn cyfrif ag ef, 37 00:01:42,465 --> 00:01:45,590 eich bod yn mynd i ddod o hyd yn haws dim ond i fynd i mewn arferiad hwn o ddechrau 38 00:01:45,590 --> 00:01:49,490 o sero a chyfrif hyd at werth ydych yn gofalu am ar hyn o bryd gan y 39 00:01:49,490 --> 00:01:49,990 cael mynd. 40 00:01:49,990 --> 00:01:50,990 >> Felly, mae hynny wedi sefydlog hynny. 41 00:01:50,990 --> 00:01:53,670 Rydym yn newid y llai na neu'n yn hafal i ddim ond yn llai na. 42 00:01:53,670 --> 00:01:56,050 Gadewch i ni edrych ar ail enghraifft yma. 43 00:01:56,050 --> 00:01:59,585 >> Felly, mae'r rhaglen hon hefyd yn honni yn ei sylwadau fyny top y dylai argraffu 44 00:01:59,585 --> 00:02:02,260 deg sêr, ond nid yw'n gwneud hynny. 45 00:02:02,260 --> 00:02:05,540 Beth yw y byg yma? 46 00:02:05,540 --> 00:02:07,930 >> Felly, what-- a ddrwg gennym, gadewch i ni fod yn glir. 47 00:02:07,930 --> 00:02:08,610 10 sêr. 48 00:02:08,610 --> 00:02:11,644 Un i bob llinell, ond nid yw'n gwneud hynny. 49 00:02:11,644 --> 00:02:14,810 Felly, mewn gwirionedd, gadewch i mi fynd yn ei flaen ac yn llunio yr un yma oherwydd ei fod yn ychydig yn llai 50 00:02:14,810 --> 00:02:16,900 clirio yn seiliedig ar y disgrifiad hwnnw. 51 00:02:16,900 --> 00:02:18,720 Gadewch i mi fynd i mewn i'n cyfeiriadur ffynhonnell. 52 00:02:18,720 --> 00:02:25,110 Gwneud bygi un dot slaes, un bygi. 53 00:02:25,110 --> 00:02:28,680 OK, yr wyf yn gweld 11 o sêr, a oedd yn dal i fod yn broblem, 54 00:02:28,680 --> 00:02:30,090 ond maen nhw hefyd i gyd mewn un llinell. 55 00:02:30,090 --> 00:02:31,500 Beth yw'r mater dan sylw yma? 56 00:02:31,500 --> 00:02:32,339 Yeah. 57 00:02:32,339 --> 00:02:33,255 GYNULLEIDFA: [Anghlywadwy]. 58 00:02:33,255 --> 00:02:36,194 59 00:02:36,194 --> 00:02:36,860 SIARADWR 1: Yeah. 60 00:02:36,860 --> 00:02:40,210 Felly, mae hwn yn ysgafnder y gall chi galw i gof yn fy wneuthur coffa byr o. 61 00:02:40,210 --> 00:02:42,793 Er bod popeth yn edrych 'n bert, ac mae wedi mewnoli' n glws, 62 00:02:42,793 --> 00:02:45,850 ac mae'n fath o edrych yn Scratch-debyg yn y llinell 16 ac 17 yn cael eu, 63 00:02:45,850 --> 00:02:47,600 yn wir, mewnoli dan un ar gyfer ddolen. 64 00:02:47,600 --> 00:02:48,400 Mae hynny'n amherthnasol. 65 00:02:48,400 --> 00:02:50,460 Nid yw'r cyfrifiadur yn gwneud yn gwybod neu'n gweld gofod gwyn. 66 00:02:50,460 --> 00:02:52,910 Gofod gwyn yn unig ar gyfer bodau dynol ni, arddull. 67 00:02:52,910 --> 00:02:57,010 Mae'r cyfrifiadur yn gwybod pan fyddwch wedi bresys cyrliog, a fyddai, yn wir, 68 00:02:57,010 --> 00:02:58,280 atgyweiria hon broblem. 69 00:02:58,280 --> 00:03:02,350 >> Felly, os ydym mewn gwirionedd yn mynd i mewn ac rhoi benodol yn braces cyrliog hyn 70 00:03:02,350 --> 00:03:05,220 a fyddai'n atgyweiria hon broblem gan ei gwneud yn glir i'r casglwr 71 00:03:05,220 --> 00:03:07,930 bod Fi 'n weithredol eisiau gweithredu dwy linell o god eto, 72 00:03:07,930 --> 00:03:09,220 ac unwaith eto, ac unwaith eto. 73 00:03:09,220 --> 00:03:11,680 Ond beth yw'r esboniad sylfaenol? 74 00:03:11,680 --> 00:03:12,180 Iawn? 75 00:03:12,180 --> 00:03:15,260 Nid oes yn llym angen i ni cyrliog bresys drwy'r amser, 76 00:03:15,260 --> 00:03:18,210 hyd yn oed er 'i' yn ôl pob tebyg gorau ymarfer i fynd i mewn y arfer beth bynnag 77 00:03:18,210 --> 00:03:20,878 hyd yn oed er ei fod yn ychwanegu dau cymeriadau at eich cod. pam? 78 00:03:20,878 --> 00:03:22,380 >> GYNULLEIDFA: [Anghlywadwy]? 79 00:03:22,380 --> 00:03:24,630 SIARADWR 1: Yeah, felly dyna ateb arall yn gyfan gwbl. 80 00:03:24,630 --> 00:03:25,130 Iawn? 81 00:03:25,130 --> 00:03:28,250 Yn enwedig os ar yr olwg gyntaf nad ydych yn ei wneud 'n sylweddol yn gwerthfawrogi beth sy'n digwydd. 82 00:03:28,250 --> 00:03:31,070 Wel, yn sicr gallem dim ond gwneud dau beth ar yr un pryd 83 00:03:31,070 --> 00:03:32,710 a dim ond osgoi'r broblem yn gyfan gwbl. 84 00:03:32,710 --> 00:03:36,080 Ac mae hynny'n iawn, ond erbyn hyn, ar gyfer dibenion heddiw, beth 85 00:03:36,080 --> 00:03:38,200 yw'r esboniad am y byg? 86 00:03:38,200 --> 00:03:39,810 Pam nad oedd yr holl sêr y rhai ar un llinell? 87 00:03:39,810 --> 00:03:40,806 Yeah? 88 00:03:40,806 --> 00:03:43,296 >> GYNULLEIDFA: Mae'n ymddangos bod os oes gennych un llinell o god, 89 00:03:43,296 --> 00:03:46,649 gallwch wneud hynny heb hynny. 90 00:03:46,649 --> 00:03:47,440 SIARADWR 1: Yn union. 91 00:03:47,440 --> 00:03:48,750 Mae hyn yn unig yw confensiwn dynol. 92 00:03:48,750 --> 00:03:50,750 Mae pobl yn sylweddoli ei fod yn ychydig yn blino neu 'n faith 93 00:03:50,750 --> 00:03:53,470 i gael i roi braces cyrliog gyd o'r amser os yw'r holl ydych am ei wneud 94 00:03:53,470 --> 00:03:55,090 yn gweithredu un llinell o god. 95 00:03:55,090 --> 00:03:57,660 Felly, penderfynodd bodau dynol rhai amser yn ôl bod hynny'n iawn. 96 00:03:57,660 --> 00:04:01,180 Os ydych chi am roi eich holl dolen ar ddim ond bod un llinell fel hyn, 97 00:04:01,180 --> 00:04:04,030 mae hynny'n iawn gyda'r sengl hanner colon ar y diwedd. 98 00:04:04,030 --> 00:04:07,210 Ond gallwch ond gwneud un fath lein heb y braces cyrliog. 99 00:04:07,210 --> 00:04:09,900 >> Felly, pan fydd y canllaw arddull CS50 gan y byddwch yn cyfeirio at, 100 00:04:09,900 --> 00:04:11,980 byddwch yn gweld bod y cyfan mae'n arfer da 101 00:04:11,980 --> 00:04:14,920 i fynd i mewn i hyn nes eich bod yn eithaf cyfforddus crwydro 102 00:04:14,920 --> 00:04:17,404 o y mathau hyn o gonfensiynau ac yn gwneud eich hun beth. 103 00:04:17,404 --> 00:04:18,820 Ar yr amod eich bod yn hunan gyson. 104 00:04:18,820 --> 00:04:21,540 A byddwn yn siarad mwy am arddull ychydig yn ddiweddarach heddiw. 105 00:04:21,540 --> 00:04:23,200 >> Felly, gadewch i mi agor i fyny un rhaglen arall. 106 00:04:23,200 --> 00:04:24,930 Wrth gwrs, dylem atgyweiria bod 10 hefyd. 107 00:04:24,930 --> 00:04:32,470 Gadewch i mi fynd yn ei flaen ac yn ysgrifennu go iawn rhaglen cyflym y byddaf yn galw, 108 00:04:32,470 --> 00:04:38,140 gadewch i ni ddweud, dolen dot C. Felly, dolen dot C. Ac yn ddolen dot C Rydw i'n mynd i gael, 109 00:04:38,140 --> 00:04:41,970 cynnwys Rwyf safonol / O dot H int brif ddi-rym. 110 00:04:41,970 --> 00:04:44,020 Ac yn awr gadewch i ni dim ond gwneud, yn wir, dolen. 111 00:04:44,020 --> 00:04:46,020 Felly, 4 int yr wyf yn cael sero. 112 00:04:46,020 --> 00:04:48,660 Rwyf yn llai na, dyweder, 50. 113 00:04:48,660 --> 00:04:49,950 Rwyf yn ogystal, a mwy. 114 00:04:49,950 --> 00:04:53,350 Ac yna i mewn yma gadewch i ni mynd yn ei flaen ac yn argraffu F. 115 00:04:53,350 --> 00:04:56,400 Ac yna yr wyf am i argraffu fy mod a llinell newydd, hanner colon. 116 00:04:56,400 --> 00:05:00,015 >> A dylai hyn argraffu'r holl rhifau o sero hyd at 50? 117 00:05:00,015 --> 00:05:02,900 118 00:05:02,900 --> 00:05:03,680 Mae ychydig yn nodio pen. 119 00:05:03,680 --> 00:05:04,270 Mae ychydig rhifau. 120 00:05:04,270 --> 00:05:05,339 Beth yw y byg yn barod? 121 00:05:05,339 --> 00:05:06,630 Beth yw'r camgymeriad yn hawdd i mi ei wneud? 122 00:05:06,630 --> 00:05:07,170 Yeah. 123 00:05:07,170 --> 00:05:08,544 >> GYNULLEIDFA: [Anghlywadwy]. 124 00:05:08,544 --> 00:05:09,210 SIARADWR 1: Yeah. 125 00:05:09,210 --> 00:05:11,520 Felly, hyd yn oed er ei fod yn edrych fel hyn yn hyn yr wyf yn bwriadu, 126 00:05:11,520 --> 00:05:13,920 cofio imi hefyd dim ond cymeriad ASCII. 127 00:05:13,920 --> 00:05:14,955 >> Felly, os wyf yn dweud, print "I." 128 00:05:14,955 --> 00:05:16,670 Mae'n mynd yn llythrennol i argraffu I. Felly, os wyf yn 129 00:05:16,670 --> 00:05:20,030 eisiau plug-mewn placeholder gwerth Fi 'n weithredol angen i ni wneud hyn 130 00:05:20,030 --> 00:05:22,630 ac yna plug-in y gwerth yr wyf yn ddynamig. 131 00:05:22,630 --> 00:05:25,200 Fel arall Im 'jyst yn mynd i cael 50 I ar y sgrin. 132 00:05:25,200 --> 00:05:28,140 >> Felly, gadewch i mi fynd yn ei flaen ac gwneud dolen hwn, rhedeg, 133 00:05:28,140 --> 00:05:30,650 ac, yn wir, yr ydym i gyd wedi y ffordd i fyny drwy'r 49. 134 00:05:30,650 --> 00:05:34,140 Ac os wyf yn sgrolio yn ôl mewn amser i weld rhif sero ar y dechrau. 135 00:05:34,140 --> 00:05:36,050 >> Wel, beth os wyf yn fath o sgriw i fyny? 136 00:05:36,050 --> 00:05:37,800 Beth os ydw i'n gwneud hyn? 137 00:05:37,800 --> 00:05:40,120 Dim ond oherwydd nad wyf i'n meddwl. 138 00:05:40,120 --> 00:05:40,970 Beth yw rhaglen hon. 139 00:05:40,970 --> 00:05:43,970 Unwaith ail llunio a'u rhedeg, mynd i wneud yn rhesymegol? 140 00:05:43,970 --> 00:05:44,870 >> GYNULLEIDFA: Dim byd. 141 00:05:44,870 --> 00:05:45,661 >> SIARADWR 1: Dim byd. 142 00:05:45,661 --> 00:05:47,156 Pam hynny? 143 00:05:47,156 --> 00:05:49,124 >> GYNULLEIDFA: Yr wyf yn ei gynllunio ar gyfer sero. 144 00:05:49,124 --> 00:05:51,899 Felly, y cyflwr yn ffug. 145 00:05:51,899 --> 00:05:52,940 SIARADWR 1: Yeah, yn union. 146 00:05:52,940 --> 00:05:55,110 Mae'r holl y cod yn gywir, syntactically. 147 00:05:55,110 --> 00:05:57,310 Bydd hyn yn llunio, mae hyn yn Bydd cod yn rhedeg, ond nid yw'n 148 00:05:57,310 --> 00:06:00,110 mynd i wneud unrhyw beth defnyddiol oherwydd fy mod ymgychwyn i mi i sero. 149 00:06:00,110 --> 00:06:02,240 Yna byddwn yn gwirio, yw wyf yn fwy na 50? 150 00:06:02,240 --> 00:06:03,810 Yn amlwg, na, nid yw'n. 151 00:06:03,810 --> 00:06:05,760 Felly mae'r ddolen byth yn executes o gwbl. 152 00:06:05,760 --> 00:06:09,580 >> Beth os ydym yn gwneud rhywbeth ychydig yn fwy di-hid? 153 00:06:09,580 --> 00:06:12,890 Felly, beth os ydym yn ei wneud fel int wyf yn cael sero. 154 00:06:12,890 --> 00:06:15,640 Ac yn awr gadewch i mi ddefnyddio'r tra dolen, sef cyflwr arall. 155 00:06:15,640 --> 00:06:21,810 Ac er i mi ddweud, er fy mod yn fwy na neu'n hafal i sero, ac yna i mewn yma yr wyf yn 156 00:06:21,810 --> 00:06:26,070 mynd yn ei flaen ac arbed y ffeil, yn gwneud dolen. 157 00:06:26,070 --> 00:06:27,070 A dwi'n fin ei redeg. 158 00:06:27,070 --> 00:06:30,230 Beth ydw i'n mynd i weld hon amser gyda dolen tra? 159 00:06:30,230 --> 00:06:30,852 Yeah. 160 00:06:30,852 --> 00:06:32,120 >> GYNULLEIDFA: Mae dolen ddiddiwedd? 161 00:06:32,120 --> 00:06:35,360 >> SIARADWR 1: Mae dolen ddiddiwedd? 162 00:06:35,360 --> 00:06:36,662 Ie, a pham? 163 00:06:36,662 --> 00:06:38,120 GYNULLEIDFA: Oherwydd ei fod bob amser yn sero. 164 00:06:38,120 --> 00:06:38,786 SIARADWR 1: Yeah. 165 00:06:38,786 --> 00:06:40,100 Felly, yr wyf yn ei initialized fel sero. 166 00:06:40,100 --> 00:06:44,470 Wrth gwrs fy mod bob amser yn fwy na neu'n hafal i 0 o ganlyniad. 167 00:06:44,470 --> 00:06:46,460 Felly, Im 'jyst yn mynd i gweld hyn anfeidrol. 168 00:06:46,460 --> 00:06:49,850 Ac yn awr, mae hyn wedi dod i fyny unwaith neu ddwywaith i benaethiaid y cwrs. 169 00:06:49,850 --> 00:06:52,417 Beth sy'n digwydd pan fyddwch yn gael dolen ddiddiwedd? 170 00:06:52,417 --> 00:06:53,314 >> GYNULLEIDFA: Rheoli C. 171 00:06:53,314 --> 00:06:53,980 SIARADWR 1: Yeah. 172 00:06:53,980 --> 00:06:56,250 Felly bydd Rheoli C yn y pen draw yn ymateb. 173 00:06:56,250 --> 00:06:59,520 Yn anffodus, rydym wedi hargraffu miliynau ar filiynau o sero yn barod 174 00:06:59,520 --> 00:07:01,520 ac felly mae'r cyfrifiadur fath o got o fy mlaen. 175 00:07:01,520 --> 00:07:03,394 Felly, mae'n mynd i anwybyddu mi am ychydig bach. 176 00:07:03,394 --> 00:07:06,560 Ond os ydych yn jyst daro Rheoli C ychydig amseroedd ar eich Mac neu PC allweddell, 177 00:07:06,560 --> 00:07:08,790 yn y pen draw dylai, yn wir, yn dod i ben. 178 00:07:08,790 --> 00:07:11,770 Ac os nad yw, byddwn yn dangos i chi rai technegau cyn bo hir lle rydych yn 179 00:07:11,770 --> 00:07:14,850 Gall mewn gwirionedd yn rymus lladd rhaglenni, yn debyg iawn i mewn Ffenestri a Mac OS, 180 00:07:14,850 --> 00:07:15,562 os oes angen. 181 00:07:15,562 --> 00:07:16,770 Ond gadewch i ni roi cynnig ar rywbeth arall. 182 00:07:16,770 --> 00:07:19,895 Gadewch i ni mewn gwirionedd yn cynyddiad I. A yw mae hyn yn dal yn mynd i fod yn ddiddiwedd? 183 00:07:19,895 --> 00:07:22,870 184 00:07:22,870 --> 00:07:25,140 Gadewch i mi redeg hyn. 185 00:07:25,140 --> 00:07:27,090 Ac yn awr y gallwch math o weld beth sy'n digwydd. 186 00:07:27,090 --> 00:07:30,140 Mae hyn, hefyd, yn dolen ddiddiwedd. 187 00:07:30,140 --> 00:07:33,080 Ond mae hyn yn dipyn o gwestiwn tric. 188 00:07:33,080 --> 00:07:35,460 A yw hyn yn mynd i argraffu rhifau am byth? 189 00:07:35,460 --> 00:07:36,647 >> GYNULLEIDFA: Na 190 00:07:36,647 --> 00:07:37,230 SIARADWR 1: Na 191 00:07:37,230 --> 00:07:37,620 Pam? 192 00:07:37,620 --> 00:07:38,820 Clywais rai rhifau dros yma. 193 00:07:38,820 --> 00:07:41,859 Someone-- Yeah. 194 00:07:41,859 --> 00:07:44,275 GYNULLEIDFA: Nid oes gennych ddigon o darnau at 'n sylweddol yn dal i fynd. 195 00:07:44,275 --> 00:07:44,730 SIARADWR 1: pob hawl. 196 00:07:44,730 --> 00:07:46,000 Felly, nid oes gennyf ddigon o darnau i gadw i fynd. 197 00:07:46,000 --> 00:07:47,124 Felly, beth sy'n mynd i ddigwydd? 198 00:07:47,124 --> 00:07:49,320 Dim ond ei fod yn mynd i roi'r gorau iddi? 199 00:07:49,320 --> 00:07:52,542 >> GYNULLEIDFA: Ar ryw adeg bydd yn cau the-- 200 00:07:52,542 --> 00:07:54,500 SIARADWR 1: Bydd yn cau y ddolen i lawr, ond pam? 201 00:07:54,500 --> 00:07:57,950 Beth sy'n mynd i ddigwydd yn y iawn ddiwedd ei ffiniau? 202 00:07:57,950 --> 00:07:58,479 Yeah? 203 00:07:58,479 --> 00:08:00,520 GYNULLEIDFA: Mae'n yn beicio yn ôl i rifau negyddol. 204 00:08:00,520 --> 00:08:02,900 SIARADWR 1: rhifau negatif, neu pe baem yn unig trin yn gadarnhaol, 205 00:08:02,900 --> 00:08:03,570 sero o leiaf. 206 00:08:03,570 --> 00:08:04,550 Felly ie, yn hollol. 207 00:08:04,550 --> 00:08:08,059 Dwyn i gof bod y gwelsom tro diwethaf os ydych yn cynyddiad eich darnau un yn ormod o weithiau, 208 00:08:08,059 --> 00:08:10,225 a chi yno Fore gorlifo y gallu eich int 209 00:08:10,225 --> 00:08:13,058 neu beth bynnag y math data, rydych yn mynd i lapio o gwmpas, yn ôl pob tebyg, 210 00:08:13,058 --> 00:08:14,020 dau rhifau negatif. 211 00:08:14,020 --> 00:08:16,644 Neu os ydych chi wedi nodi bod eich Dylai amrediad yn unig fod yn gadarnhaol, 212 00:08:16,644 --> 00:08:18,560 a gallwch wneud hyn, ond nid ydym wedi gweld hynny eto, 213 00:08:18,560 --> 00:08:21,420 efallai y byddwch yn darfod i fyny o leiaf yn ôl ar sero. 214 00:08:21,420 --> 00:08:22,410 Er bod, mewn gwirionedd ie. 215 00:08:22,410 --> 00:08:24,320 Yn yr achos hwn, negyddol rhifau, ac os felly 216 00:08:24,320 --> 00:08:26,870 mae'r ddolen yn mynd i derfynu gan nad wyf, mewn gwirionedd, 217 00:08:26,870 --> 00:08:29,220 fwy na neu'n hafal i sero os yw'n negyddol. 218 00:08:29,220 --> 00:08:31,780 >> Felly, yn anffodus, sut hir y byddai rhaid i ni aros? 219 00:08:31,780 --> 00:08:35,490 Ar hyn o bryd rydym yn hyd at beth, 2 filiwn-ish? 220 00:08:35,490 --> 00:08:37,705 Rydym yn hoffi 2 biliwn, rydym yn mynd i orfod aros 221 00:08:37,705 --> 00:08:39,330 hyd nes y gallwn mewn gwirionedd yn gweld symptom hwn. 222 00:08:39,330 --> 00:08:46,200 Ond gallwn weld ei fod ychydig yn gyflymach, maybe-- gadewch i ni weld os allwn ni torri ar draws. 223 00:08:46,200 --> 00:08:46,700 Dewch ar. 224 00:08:46,700 --> 00:08:49,500 225 00:08:49,500 --> 00:08:51,331 Hyd yn oed y bwydlenni yn ymddangos yn araf. 226 00:08:51,331 --> 00:08:51,830 Iawn. 227 00:08:51,830 --> 00:08:54,270 Felly, byddwn yn dod yn ôl at hynny cyn bo hir. 228 00:08:54,270 --> 00:08:56,320 Mae'n dda adeg-- damn ei, cŵn bach. 229 00:08:56,320 --> 00:08:58,280 >> Mae'n amser da ar gyfer rhai cyhoeddiadau. 230 00:08:58,280 --> 00:09:01,225 Felly, os efallai yr hoffech i gymryd rhan mewn YHack, 231 00:09:01,225 --> 00:09:03,600 sydd yn ddigwyddiad yn noddwyd gan ein ffrindiau yn Iâl. 232 00:09:03,600 --> 00:09:05,990 Ac, yn wir, mae rhai o'r cwrs TFS yn Iâl yn cymryd rhan gyda hyn. 233 00:09:05,990 --> 00:09:08,610 YHack yn rhyngwladol darnia-a-thon a gynhelir gan a ddelir 234 00:09:08,610 --> 00:09:12,395 yn Iâl, gan ddwyn ynghyd 1,500 fel hacwyr anian a greadigol i gyd 235 00:09:12,395 --> 00:09:13,120 dros y byd. 236 00:09:13,120 --> 00:09:14,610 Os yw hyn o ddiddordeb, cymerwch olwg yma. 237 00:09:14,610 --> 00:09:17,401 Os yw hyn yn rhy fyr ar y sgrin, yn edrych ar sleidiau heddiw 238 00:09:17,401 --> 00:09:19,622 ar gyfer yr URL ar gyfer yhack.org. 239 00:09:19,622 --> 00:09:21,080 Felly, hefyd ychydig o gyhoeddiadau cyflym. 240 00:09:21,080 --> 00:09:24,410 Felly, yn swyddogol, bydd yr adrannau yn dechrau wythnos nesaf yma ac Haven Newydd. 241 00:09:24,410 --> 00:09:27,660 Cadwch mewn cof byddwch yn cael e-bost yn ddiweddarach y penwythnos fwyaf tebygol. 242 00:09:27,660 --> 00:09:29,390 Mae'n cymryd amser hir i CS50 i adran, 243 00:09:29,390 --> 00:09:32,080 o ystyried yr holl bobl yn y dosbarth ac mae pawb yn symud o gwmpas. 244 00:09:32,080 --> 00:09:34,871 A'r holl Cymrodyr Dysgu ' amserlenni hefyd yn dal i solidifying, 245 00:09:34,871 --> 00:09:38,110 ond aros tuned ar gyfer e-bost ac os bydd angen gael, gallwch ail-adran yno ar ôl. 246 00:09:38,110 --> 00:09:39,580 >> Study.cs50.net. 247 00:09:39,580 --> 00:09:43,280 Felly, hyd yn oed os ydych yn mynychu yn gyson yn adrannau, yn sylweddoli bod bron pob 248 00:09:43,280 --> 00:09:46,786 o'r adnoddau a ddefnyddiwn yn adrannau ar gael i'r cyhoedd yn CS50 249 00:09:46,786 --> 00:09:48,460 Astudio yn URL hwn yma. 250 00:09:48,460 --> 00:09:51,630 Felly, os ydych chi erioed wedi eisiau i ail adolygiad deunydd o adran, neu'n darllen ymlaen, 251 00:09:51,630 --> 00:09:54,170 neu os nad ydych yn gallu ei wneud yn rhyw wythnos, sylweddoli bod sleidiau sampl, 252 00:09:54,170 --> 00:09:58,210 a phroblemau, a diffiniadau, a mwy i gyd yno yn ogystal. 253 00:09:58,210 --> 00:10:00,645 >> Oriau swyddfa ailddechrau heddiw, ac yfory, a dydd Mercher, 254 00:10:00,645 --> 00:10:03,020 a dydd Iau yn gwirio y cwrs gwefan am yr amserlen. 255 00:10:03,020 --> 00:10:05,690 >> A hefyd, yn awr yn lansio heddiw yn CS50 Trafodwch. 256 00:10:05,690 --> 00:10:09,230 Felly, os a pan fydd gennych gwestiynau am ei gilydd neu ar gyfer staff y cwrs, 257 00:10:09,230 --> 00:10:12,099 ac maent yn gweithio yn gyffredinol ar rai broblem a osodwyd, 258 00:10:12,099 --> 00:10:15,015 sylweddoli nad ydych yn ei wneud o reidrwydd rhaid i droi at y bobl yr ydych nesaf. 259 00:10:15,015 --> 00:10:17,810 Os nad oes un yno, gallwch estyn allan i ni a chyd-ddisgyblion 260 00:10:17,810 --> 00:10:19,890 ar-lein trwy CS50 Trafodwch. 261 00:10:19,890 --> 00:10:22,600 Felly, mae hyn yn drafodaeth bwrdd ar gyfer y cwrs, 262 00:10:22,600 --> 00:10:24,550 ac yn sylweddoli bod hyn yn Efallai mai dyma'r gorau 263 00:10:24,550 --> 00:10:28,480 gosod i ddechrau pan fydd gennych cwestiynau pan tu allan i oriau swyddfa 264 00:10:28,480 --> 00:10:29,470 yn arbennig. 265 00:10:29,470 --> 00:10:31,070 >> Bydd cinio cychwyn yr wythnos hon hefyd. 266 00:10:31,070 --> 00:10:33,170 Ar Tân ac Iâ [Anghlywadwy] yn New Haven. 267 00:10:33,170 --> 00:10:35,379 Cymerwch olwg ar y cwrs gwefan er mwyn ei RSVP. 268 00:10:35,379 --> 00:10:36,753 Cyntaf i'r felin, yn gyntaf yn gwasanaethu ar gyfer hynny. 269 00:10:36,753 --> 00:10:39,380 Os nad ydych yn cael yn yr wythnos hon byddwn yn gwneud hyn fwyaf bob dydd Gwener 270 00:10:39,380 --> 00:10:40,400 yn ystod y tymor. 271 00:10:40,400 --> 00:10:41,830 >> OK, ac yn awr gair am raddio. 272 00:10:41,830 --> 00:10:44,690 Yn enwedig wrth i ni fynd problem sefydlu un, sydd allan yr wythnos hon, 273 00:10:44,690 --> 00:10:46,670 a datrys gosod dau ac wedi hynny. 274 00:10:46,670 --> 00:10:51,680 Sut ydym yn mynd ati i werthuso P setiau a gwerthuso ansawdd o hynny? 275 00:10:51,680 --> 00:10:55,560 Felly, mae'n bedair echel a ddefnyddiwn yn CS50, ac maen nhw'n y pedair yma. 276 00:10:55,560 --> 00:10:59,200 >> Scope, sy'n dal ar rhifol sail yn union faint o'r P set 277 00:10:59,200 --> 00:10:59,860 wnaethoch chi fynd i'r afael â. 278 00:10:59,860 --> 00:11:02,890 Mae'n cyfateb yn fras â ymdrech, ac mae'n ein ffordd o ddal 279 00:11:02,890 --> 00:11:05,190 wnaethoch chi roi cynnig hanner y P osod, pob un o'r P a osodwyd. 280 00:11:05,190 --> 00:11:08,860 Mae hwn yn un hawdd i gael perffaith sgoriau ar os ydych yn gwneud, yn wir, 281 00:11:08,860 --> 00:11:11,020 roi cynnig ar bob agwedd ar y P a osodwyd. 282 00:11:11,020 --> 00:11:12,010 Felly, cadwch hynny mewn cof. 283 00:11:12,010 --> 00:11:13,420 >> Cywirdeb yn union hynny. 284 00:11:13,420 --> 00:11:17,760 A yw eich gwaith cod fel y fanyleb ac fel ateb enghreifftiol y staff ' 285 00:11:17,760 --> 00:11:19,730 yn awgrymu bod eich cod Dylai, mewn gwirionedd, yn gweithio. 286 00:11:19,730 --> 00:11:23,260 Gwiriwch 50, os nad ydych wedi bodloni ei ac eto, yn P sefydlu un fanyleb 287 00:11:23,260 --> 00:11:25,060 a bydd y cyfan rhoi atebion ie / na chi 288 00:11:25,060 --> 00:11:26,518 ynghylch a yw eich cod yn gywir. 289 00:11:26,518 --> 00:11:30,680 O leiaf cyn belled ag rydym yn mynd i werthuso ei seilio ar y profion 290 00:11:30,680 --> 00:11:32,430 ein bod yn rhedeg o fewn y rhaglen honno. 291 00:11:32,430 --> 00:11:33,850 >> Dylunio yn llawer mwy goddrychol. 292 00:11:33,850 --> 00:11:35,994 Mae hyn yw pa mor dda ysgrifenedig yn eich cod. 293 00:11:35,994 --> 00:11:38,410 Ac mae hyn yn rhywbeth y byddwch yn cael yn well am dros amser, 294 00:11:38,410 --> 00:11:41,201 ac mae'n rhywbeth yr ydym chi helpu rhoi adborth mwy ansoddol ar. 295 00:11:41,201 --> 00:11:43,350 A thrwy gynllun wyf yn gallai yn ei olygu i chi cyn bo hir 296 00:11:43,350 --> 00:11:47,650 Efallai eu temtio mewn rhai P gosod i wneud rhywbeth loopingly, 297 00:11:47,650 --> 00:11:51,590 ond i gael efallai dri, neu bedwar, neu pum dolenni blaen nythu neu tra nythu 298 00:11:51,590 --> 00:11:52,090 dolenni. 299 00:11:52,090 --> 00:11:54,130 Y dylai gyffredinol yn dechrau i wneud i chi cringe 300 00:11:54,130 --> 00:11:56,070 a byddai gyffredinol dylunio gwael hystyried. 301 00:11:56,070 --> 00:11:59,490 A byddwch yn dechrau gweld yn y dosbarth ac allan o ffyrdd da dosbarth o wneud pethau, 302 00:11:59,490 --> 00:12:02,920 ffyrdd gwael o wneud pethau sy'n Efallai i gyd fod yn gywir, ond nid 303 00:12:02,920 --> 00:12:04,304 o reidrwydd yn cynllunio'n dda. 304 00:12:04,304 --> 00:12:05,220 Fel ysgrifennu traethawd. 305 00:12:05,220 --> 00:12:08,100 Efallai y byddwch yn medru rhoi geiriau ar dudalen sy'n ramadegol gywir, 306 00:12:08,100 --> 00:12:10,016 ond mae'r traethawd neu'r traethawd ymchwil eu bod yn yn unig 307 00:12:10,016 --> 00:12:11,810 hollol ddigyswllt neu'n unpersuasive. 308 00:12:11,810 --> 00:12:15,930 Ac felly gallai hynny fod yr analog yn y byd ysgrifenedig dylunio gwael neu dda. 309 00:12:15,930 --> 00:12:18,490 >> Ac arddull, hefyd, yn weddol oddrychol. 310 00:12:18,490 --> 00:12:20,060 Ond o leiaf rydym yn disgwyl cysondeb. 311 00:12:20,060 --> 00:12:21,480 Dyma sut 'n bert yw eich cod. 312 00:12:21,480 --> 00:12:22,840 A yw pethau mewnoli 'n glws? 313 00:12:22,840 --> 00:12:26,600 A yw eich newidynnau a enwir yn dda / A yw pob o'ch cromfachau a braces cyrliog 314 00:12:26,600 --> 00:12:27,920 halinio fel y dylent fod? 315 00:12:27,920 --> 00:12:31,490 Mae gennym ganllaw arddull CS50 fel bydd y broblem a osodwyd eich cyfeirio at. 316 00:12:31,490 --> 00:12:33,730 Mae'r rhai yn fwy cyfforddus yn croeso i grwydro o hynny 317 00:12:33,730 --> 00:12:35,771 cyn belled ag y byddwch yn hunan gyson. 318 00:12:35,771 --> 00:12:38,020 Ac mae hyn, hefyd, yn wers byddwn yn atgyfnerthu yn yr adran. 319 00:12:38,020 --> 00:12:40,990 Felly, os hyn i gyd oedd ychydig gyflym, yn sylweddoli y P a osodwyd ac adrannau 320 00:12:40,990 --> 00:12:42,900 yn mynd i fwy o ddyfnder cyn bo hir. 321 00:12:42,900 --> 00:12:45,490 >> Ond yn gyffredinol rydym wedi ychydig iawn o bwcedi ar gyfer CS50. 322 00:12:45,490 --> 00:12:48,170 Sgoriau yn gyffredinol ar raddfa o un i dri, neu un i bump. 323 00:12:48,170 --> 00:12:50,836 Rydym yn literally-- ac ni allaf ddweud hyn yn ddigon yn yr wythnos gyntaf. 324 00:12:50,836 --> 00:12:51,582 Tri yn dda. 325 00:12:51,582 --> 00:12:54,290 Felly, hyd yn oed er, ie, tri allan o bump fel arfer, yn fathemategol, 326 00:12:54,290 --> 00:12:57,240 Gallai fod yn 60 y cant neu fel minws D. 327 00:12:57,240 --> 00:12:58,840 Three yw, mewn gwirionedd, yn dda. 328 00:12:58,840 --> 00:13:01,050 Ac, yn wir, rydym yn disgwyl rhan fwyaf o fyfyrwyr yn y dosbarth 329 00:13:01,050 --> 00:13:04,280 i ddechrau tymor o gwmpas deuoedd, a drioedd, a pedwar. 330 00:13:04,280 --> 00:13:05,510 Mae'n debyg nad cymaint o bump. 331 00:13:05,510 --> 00:13:06,661 Ddim yn rhy llawer o rai. 332 00:13:06,661 --> 00:13:08,910 Ond yn gyffredinol i ddechrau yn fan a'r lle melys hynny yn y gromlin 333 00:13:08,910 --> 00:13:11,694 fel eu bod wrth i amser fynd yn ei flaen, mae mewn gwirionedd yn lle i, 334 00:13:11,694 --> 00:13:13,360 a chyfleoedd ar gyfer dilyniant uchaf. 335 00:13:13,360 --> 00:13:15,810 Felly, peidiwch â gyfystyr tri gyda 60%. 336 00:13:15,810 --> 00:13:17,410 Mae'n llawer mwy haniaethol na hynny. 337 00:13:17,410 --> 00:13:20,160 Mae'r fformiwla rydym yn cyfrifo â hwy graddau ei bwysoli fel a ganlyn. 338 00:13:20,160 --> 00:13:21,610 Cywirdeb yn werth y mwyaf. 339 00:13:21,610 --> 00:13:23,010 Dylunio yn werth ychydig yn llai. 340 00:13:23,010 --> 00:13:24,490 Style yn werth ychydig yn llai. 341 00:13:24,490 --> 00:13:26,950 Ac mae hyn yn gyffredinol cyfleu faint o amser 342 00:13:26,950 --> 00:13:29,800 sy'n mynd i mewn i gael pob un o'r bwyeill hyn yn iawn. 343 00:13:29,800 --> 00:13:31,810 Style yn super hawdd, Dylai fod yn super gyflym, 344 00:13:31,810 --> 00:13:33,657 ond ei fod yn arferiad hawdd i gael ddiog am. 345 00:13:33,657 --> 00:13:35,490 Gallai Cywirdeb cymryd chi y rhan fwyaf o'r amser. 346 00:13:35,490 --> 00:13:38,990 Chasing lawr rhai gallai bug cymryd bod awr ychwanegol neu fwy, 347 00:13:38,990 --> 00:13:41,737 ac felly, y sgorio yn y pen draw yn adlewyrchu hynny. 348 00:13:41,737 --> 00:13:43,070 Ac felly, yn awr gair mwy difrifol. 349 00:13:43,070 --> 00:13:45,240 Ers CS50 wedi y gwahaniaeth, er gwell 350 00:13:45,240 --> 00:13:47,440 neu er gwaeth, o fod yn efallai yn well gyfarwydd 351 00:13:47,440 --> 00:13:50,065 â'r materion o academaidd gonestrwydd na'r rhan fwyaf o unrhyw gwrs arall. 352 00:13:50,065 --> 00:13:53,720 Ac yn wir, y mae hyd y gwn sy'n byddwn yn anfon mwy o fyfyrwyr, yn anffodus, 353 00:13:53,720 --> 00:13:56,690 at ddibenion disgyblu bob blwyddyn o ganlyniad. Felly, 354 00:13:56,690 --> 00:13:59,040 er budd llawn datgelu, gadewch i ni siarad yn fyr 355 00:13:59,040 --> 00:14:02,820 am yr hyn sy'n digwydd yn CS50, a'r hyn yr ydych yn gallu ei wneud, a beth allwch chi fod yn ymwybodol o. 356 00:14:02,820 --> 00:14:05,530 >> Felly, dyma ers 2007, pan Etifeddais y cwrs, 357 00:14:05,530 --> 00:14:07,870 yw nifer yr achosion Bwrdd Ad. 358 00:14:07,870 --> 00:14:10,690 Bwrdd Ad yw disgyblu Harvard corff, neu yn awr y Honor Cwnsler, 359 00:14:10,690 --> 00:14:13,790 y mae achosion yn cael eu cyfeirio pan myfyrwyr yn gwneud rhywbeth y mae'r cwrs yn 360 00:14:13,790 --> 00:14:15,470 maes llafur yn ystyried afresymol. 361 00:14:15,470 --> 00:14:17,220 Does dim patrwm go iawn yma, byddwn yn dweud. 362 00:14:17,220 --> 00:14:19,530 Mae'n amrywio dros y flynyddoedd ond yn gyffredinol 363 00:14:19,530 --> 00:14:22,262 mae hyn yn y nifer o achosion sy'n cael eu cyfeirio. 364 00:14:22,262 --> 00:14:23,970 Mae nifer y myfyrwyr sy'n ymwneud? 365 00:14:23,970 --> 00:14:25,290 Mae hefyd yn amrywio. 366 00:14:25,290 --> 00:14:27,930 Yn nodweddiadol, y llynedd ar gyfer enghraifft, mae 29 o fyfyrwyr yn Harvard 367 00:14:27,930 --> 00:14:29,740 Roedd Ad fyrddio, fel petai. 368 00:14:29,740 --> 00:14:32,670 29 ohonynt yn fyfyrwyr presennol, dau ohonynt myfyrwyr cyn, 369 00:14:32,670 --> 00:14:35,610 a oedd yn cydweithio mewn rhyw ffordd anffodus. 370 00:14:35,610 --> 00:14:38,400 Ac yna o ran y canran, mae fel arfer yn tua 3% 371 00:14:38,400 --> 00:14:41,360 y dosbarth sydd, yn anffodus, gwneud y mathau hyn o benderfyniadau. 372 00:14:41,360 --> 00:14:44,470 >> Felly, y llynedd roedd yn 3.5% o gorff y myfyrwyr CS50 yn 373 00:14:44,470 --> 00:14:46,820 a oedd Ad fyrddio, fel petai. 374 00:14:46,820 --> 00:14:48,490 >> Felly, beth mae hyn i gyd yn ei olygu? 375 00:14:48,490 --> 00:14:49,660 A beth ydym yn ei wneud? 376 00:14:49,660 --> 00:14:52,930 >> Felly, am ddatgeliad llawn, rydym yn hollol, fel gwyddonwyr cyfrifiadurol, 377 00:14:52,930 --> 00:14:57,620 rhaid i offer meddalwedd ar gael i ni ac mae'n hawdd iawn i ni, a bod yn deg, 378 00:14:57,620 --> 00:15:00,980 cyd-ddisgyblion nad gilydd nad ydynt yn croesi llinellau hyn i groesi cymharu 379 00:15:00,980 --> 00:15:04,570 bob cyflwyniad eleni yn erbyn pob cyflwyniad am yr wyth mlynedd diwethaf. 380 00:15:04,570 --> 00:15:05,445 Meddalwedd yn gwneud hyn. 381 00:15:05,445 --> 00:15:07,440 Ac yn y pen draw mae'n llygaid dynol sy'n penderfynu 382 00:15:07,440 --> 00:15:11,410 p'un ai i gyfeirio'r rhai o bwys i'w dyfarnu pellach, 383 00:15:11,410 --> 00:15:12,737 ond meddalwedd yn sicr yn help. 384 00:15:12,737 --> 00:15:15,820 Ac mae hyn, a dweud y gwir, dyna pam fy mod yn meddwl mae gennym niferoedd mor fawr yn CS50. 385 00:15:15,820 --> 00:15:18,540 Nid Mae'n oherwydd CS50 myfyrwyr neu fyfyrwyr CS fwy 386 00:15:18,540 --> 00:15:20,840 Yn gyffredinol, mae llai gonest nag unrhyw fyfyrwyr eraill, 387 00:15:20,840 --> 00:15:22,340 'i' jyst gennym y offer a'r technegau 388 00:15:22,340 --> 00:15:24,095 y mae i gymryd y tocyn cyntaf. 389 00:15:24,095 --> 00:15:25,960 >> Ond rydym yn ei wneud yn cadw llygad ar bob un o'r pethau hyn 390 00:15:25,960 --> 00:15:30,340 yn ogystal, unwaith eto, er budd cydnabod y gwaith sy'n cael ei roi 391 00:15:30,340 --> 00:15:32,397 mewn gan fwyafrif super y dosbarth. 392 00:15:32,397 --> 00:15:34,230 A pholisi y cwrs ar onestrwydd academaidd, 393 00:15:34,230 --> 00:15:37,021 hyd yn oed er ei fod yn griw o baragraffau hir gyda criw o fwledi 394 00:15:37,021 --> 00:15:40,490 sydd yn gobeithio yn eithaf darllenadwy, mae'n wir yn berwi i lawr i fod yn rhesymol. 395 00:15:40,490 --> 00:15:44,000 A'r rheol orau sydd rydym yn cynnig i fyny o fewn y maes llafur 396 00:15:44,000 --> 00:15:46,020 yw hyn, hanfod o'r holl waith yr ydych 397 00:15:46,020 --> 00:15:47,850 gyflwyno i'r cwrs hwn fod yn eich pen eich hun. 398 00:15:47,850 --> 00:15:51,510 Ac yn wir, ym mron pob un o'r rheini achosion a gyfeiriwyd ar gyfer camau disgyblu 399 00:15:51,510 --> 00:15:55,640 yr oedd oherwydd rhai un hwyr i fyfyrwyr nos fel arfer yn troi ei cod 400 00:15:55,640 --> 00:15:58,130 dros llwyr i classmate, sydd wedyn yn ei fabwysiadu 401 00:15:58,130 --> 00:16:00,840 yn ei gyfanrwydd neu sylweddol o hynny. 402 00:16:00,840 --> 00:16:02,680 >> Ond mewn gwirionedd, mae hyn yn iawn. 403 00:16:02,680 --> 00:16:04,684 Ac yn wir, yn swyddfa oriau, mae'r slipiau o bapur 404 00:16:04,684 --> 00:16:07,850 rydych wedi bod yn rhoi os byddwch yn dod gan y swyddfa awr yr wythnos diwethaf yn annog cymaint. 405 00:16:07,850 --> 00:16:09,710 Eich bod yn hollol croesawu ac annog 406 00:16:09,710 --> 00:16:12,340 i drafod setiau broblem gyda cyd-ddisgyblion. 407 00:16:12,340 --> 00:16:14,461 Er mwyn helpu ei gilydd pan baglu. 408 00:16:14,461 --> 00:16:17,710 Ond yn gyffredinol dylai'r synnwyr y fawd fod hyn, "pan fyddwch yn gofyn am help, 409 00:16:17,710 --> 00:16:20,412 efallai y byddwch yn dangos eich cod i eraill, ond efallai na fyddwch yn gweld rhai hwy. " 410 00:16:20,412 --> 00:16:22,620 Felly, mewn geiriau eraill, os ydw i'n trafferth gyda rhai P set 411 00:16:22,620 --> 00:16:25,290 a dwi'n eistedd yno yn y fwyta neuadd, neu yn y llyfrgell, 412 00:16:25,290 --> 00:16:28,470 neu yn yr ystafell ddosbarth ceisio dod o hyd rhywfaint o fai, 413 00:16:28,470 --> 00:16:30,340 Yn sicr, gallaf ddangos fy cod ar fy sgrin 414 00:16:30,340 --> 00:16:32,590 at y person sy'n eistedd nesaf i mi, yn sicr y staff, 415 00:16:32,590 --> 00:16:33,600 ond hefyd yn classmate. 416 00:16:33,600 --> 00:16:36,580 Ond os yr ateb sy'n fy classmate gynnig yw, oh, 417 00:16:36,580 --> 00:16:39,200 yma dim ond yn edrych ar yr hyn y Wnes i, sy'n croesi'r llinell. 418 00:16:39,200 --> 00:16:43,120 >> A byddwn yn meiddio dweud bod yn gyffredinol yn beth rhesymol ar gyfer rhan fwyaf o bobl 419 00:16:43,120 --> 00:16:45,030 i adnabod y llinell o hawdd iawn. 420 00:16:45,030 --> 00:16:47,195 Ac felly, yn gweld y maes llafur am fwy o fanylion. 421 00:16:47,195 --> 00:16:49,070 Ac yn awr yn un o'r mwy agweddau dadleuol 422 00:16:49,070 --> 00:16:52,529 o faes llafur CS50 fy mod yn meddwl fy mod Byddai siarad â gloi yma 423 00:16:52,529 --> 00:16:53,820 yw'r cymal difaru hyn a elwir yn. 424 00:16:53,820 --> 00:16:55,340 Felly, dyma yr holl print mân. 425 00:16:55,340 --> 00:16:58,090 Ond yn gyffredinol rydym wedi gweld yn ystod yr 8 mlynedd a mwy diwethaf 426 00:16:58,090 --> 00:17:01,510 hynny, yn wir, mae bron pob un o'r CS50 yn achosion o anonestrwydd academaidd 427 00:17:01,510 --> 00:17:04,390 wedi bod yn ganlyniad o ddim ond yn wael gan wneud yn hwyr y nos penderfyniad. 428 00:17:04,390 --> 00:17:07,144 Canlyniad straen, y canlyniad o diffyg bwyta, diffyg cwsg, 429 00:17:07,144 --> 00:17:09,560 gormod o setiau P, mae gormod o terfynau amser, mae gormod o ymrwymiadau. 430 00:17:09,560 --> 00:17:13,520 Straen gan adeiladu i fyny mewn 02:00, 03:00 AC, 4:00, gyda dyddiad cau ar y gorwel. 431 00:17:13,520 --> 00:17:17,020 Mae'r rhan fwyaf o fyfyrwyr yn yr achosion hyn newydd wneud penderfyniadau gwael 432 00:17:17,020 --> 00:17:20,619 y gallent yn dda iawn yn gresynu at y bore wedyn os nad munud yn ddiweddarach, 433 00:17:20,619 --> 00:17:25,490 ond tan y llynedd nad oedd unrhyw falf rhyddhau y gallai myfyrwyr hyn 434 00:17:25,490 --> 00:17:29,140 mewn gwirionedd yn agor i fyny i fynd i'r afael mewn gwirionedd â'r pen broblem ar heb ofn o fod yn 435 00:17:29,140 --> 00:17:30,850 gychwynnir o'r coleg yn gyfan gwbl. 436 00:17:30,850 --> 00:17:33,260 >> Ac, yn wir, cyflwynwyd y cymal difaru y llynedd, 437 00:17:33,260 --> 00:17:35,970 sy'n dweud bod os yw o fewn 72 awr, tri diwrnod, 438 00:17:35,970 --> 00:17:37,970 o groesi rhywfaint llinell a ragnodir yn y maes llafur 439 00:17:37,970 --> 00:17:41,178 byddwch yn dod ymlaen i un o'r cwrs penaethiaid a byddwn yn cael sgwrs am y peth. 440 00:17:41,178 --> 00:17:43,720 Mae dal yn cael rhyw canlyniad, yn groes i'r hyn sydd 441 00:17:43,720 --> 00:17:44,990 cael eu hadrodd i'r gwrthwyneb. 442 00:17:44,990 --> 00:17:49,190 Mae rhywfaint o ganlyniad bod yn gweithredu arnynt gan y cwrs, 443 00:17:49,190 --> 00:17:51,611 Yn gyffredinol, mae zeroing P set neu gymryd rhai camau eraill, 444 00:17:51,611 --> 00:17:53,610 ond byddwn, yn wir, drin ein hunain ac nid 445 00:17:53,610 --> 00:17:58,460 gyfeirio uwch yn y canlyniad allai fod yn llawer mwy difrifol. 446 00:17:58,460 --> 00:18:01,810 Ac, yn wir, i rannu'r hyn a ddigwyddodd y llynedd, yn yr wyth mlynedd, ac yn awr 447 00:18:01,810 --> 00:18:04,950 naw mlynedd, o addysgu'r cwrs hwn ac ar ôl tinkering gyda gwahanol knobs, 448 00:18:04,950 --> 00:18:07,866 troi gwahanol deialau dros y gorffennol nifer o flynyddoedd ar onestrwydd academaidd, 449 00:18:07,866 --> 00:18:11,920 a gweld fesul y data ddim yn amlwg effaith, hyd yn oed o areithiau fel hyn, 450 00:18:11,920 --> 00:18:15,490 roedd hyn yn dwylo i lawr y peth gorau rydym wedi cyflwyno bedagogaidd 451 00:18:15,490 --> 00:18:18,090 mewn wyth mlynedd hyd y llinellau hyn yn CS50. 452 00:18:18,090 --> 00:18:21,010 >> Daeth 19 o fyfyrwyr ymlaen dan y cymal hwn y llynedd. 453 00:18:21,010 --> 00:18:23,389 Rydym yn cymryd unrhyw gamau i saith o'r myfyrwyr hynny, 454 00:18:23,389 --> 00:18:25,430 penderfynu eu bod yn poeni ddiangen. 455 00:18:25,430 --> 00:18:27,304 Nid oedd ganddynt, mewn gwirionedd, croesi llinell, ond mae'n 456 00:18:27,304 --> 00:18:28,960 Roedd sgwrs da i gael serch hynny. 457 00:18:28,960 --> 00:18:31,190 Rydym yn zeroed 11 o'r sgoriau a gyflwynwyd. 458 00:18:31,190 --> 00:18:33,840 Ac mewn un achos gofynnwyd cymwys am wneud problem a osodwyd. 459 00:18:33,840 --> 00:18:36,370 Ond yn fwy grymus, yn onest, gyda'r 19 o sgyrsiau, 460 00:18:36,370 --> 00:18:39,020 a oedd yn ffordd fwy nag yr oeddwn disgwyl iddynt gael, pob un ohonynt 461 00:18:39,020 --> 00:18:41,370 10 munud i efallai yn awr o hyd, hefyd wedi dod 462 00:18:41,370 --> 00:18:44,920 i oleuo nifer o faterion yn ymwneud Materion teuluol, materion ffrind, 463 00:18:44,920 --> 00:18:46,940 materion iechyd meddwl ein bod wedyn yn cymryd rhan, 464 00:18:46,940 --> 00:18:50,200 gyda bendith, preswylydd y myfyriwr deon, neu ffrindiau, neu unrhyw rif arall 465 00:18:50,200 --> 00:18:51,450 o adnoddau cymorth. 466 00:18:51,450 --> 00:18:54,454 Felly, bod hyn yn un o bell ffordd o'r defnydd gorau o'n hamser 467 00:18:54,454 --> 00:18:55,870 ac yn un o'r ymyriadau gorau. 468 00:18:55,870 --> 00:18:58,870 >> Gyda hynny ddywedodd, nad oedd ganddo unrhyw fewnbwn ar y gyfradd canfod 469 00:18:58,870 --> 00:19:00,909 o anonestrwydd academaidd yn fwy cyffredinol. 470 00:19:00,909 --> 00:19:02,950 Ac yr wyf yn meiddio dweud, is-set hon o fyfyrwyr y llynedd 471 00:19:02,950 --> 00:19:06,350 Roedd demograffig yr ydym yn flaenorol byth yn eu hadnabod cyn 472 00:19:06,350 --> 00:19:08,140 ac nid oedd erioed wedi cysylltu â blaen. 473 00:19:08,140 --> 00:19:10,020 Ac felly, roedd y rhain yn llwyddiannau rhyfeddol 474 00:19:10,020 --> 00:19:13,390 er eu bod yn dod i'r amlwg mewn llai na amgylchiadau gorau posibl. 475 00:19:13,390 --> 00:19:15,640 Felly, cadwch hyn mewn cof wrth i chi wneud, o bosibl, 476 00:19:15,640 --> 00:19:17,390 rhai penderfyniadau gwael eich hun yn hwyr yn y nos, 477 00:19:17,390 --> 00:19:20,151 bod yna troi mor hir gan fod y myfyriwr yn y sefyllfa honno 478 00:19:20,151 --> 00:19:23,400 yn berchen i fyny ac i ddod ymlaen fel y gallwn cael y math hwnnw o sgwrs a delio ag ef 479 00:19:23,400 --> 00:19:27,310 mewn ffordd sy'n addysgiadol, ac yna gallwn ei roi tu ôl i ni y diwrnod nesaf. 480 00:19:27,310 --> 00:19:30,335 >> Felly, heb ado pellach, yn cymryd y ymyl oddi ar y sgwrs hon, 481 00:19:30,335 --> 00:19:35,080 y rheswm y cŵn bach yn cael hyd yw dim ond i dorri'r iâ am eiliad. 482 00:19:35,080 --> 00:19:39,560 Ac yn anffodus, maen nhw i gyd yn cysgu, ond yr hyn oedd i fod i ddigwydd yma 483 00:19:39,560 --> 00:19:41,760 Roedd pawb oedd i fod i parchedig ofn a math o ymlacio 484 00:19:41,760 --> 00:19:43,910 ar ôl y sgwrs trwm iawn. 485 00:19:43,910 --> 00:19:46,930 Ond mae'n debyg wyf yn rhoi y cŵn bach i gysgu. 486 00:19:46,930 --> 00:19:50,070 Ond os byddwch yn mynd i CS50 yn cŵn bach Gwefan slaes, 487 00:19:50,070 --> 00:19:51,610 gallwch wylio nhw drwy'r dydd hir. 488 00:19:51,610 --> 00:19:55,280 Yn enwedig efallai 02:00, neu 03:00, neu 04:00 yn y nos 489 00:19:55,280 --> 00:19:57,480 i weld rhyddhad straen bach yno. 490 00:19:57,480 --> 00:19:58,805 Felly mae hynny'n slaes cŵn bach. 491 00:19:58,805 --> 00:20:01,700 492 00:20:01,700 --> 00:20:02,200 Iawn. 493 00:20:02,200 --> 00:20:03,020 Nad oedd hynny'n hwyl? 494 00:20:03,020 --> 00:20:04,200 IAWN. 495 00:20:04,200 --> 00:20:07,140 Felly, yn ôl i ryw cyfrifiadur gwyddoniaeth, os caf. 496 00:20:07,140 --> 00:20:10,600 >> Felly, dwyn i gof bod tro diwethaf i ni ddechrau edrych nid yn unig yn y prif, a oedd yn 497 00:20:10,600 --> 00:20:13,930 Roedd y swyddogaeth ddiofyn, mae'r pryd baner werdd glicio cyfatebol, 498 00:20:13,930 --> 00:20:16,999 ond rydym hefyd wedi dechrau yn fyr ysgrifennu rhai o'n swyddogaethau eu hunain. 499 00:20:16,999 --> 00:20:20,040 Ac hyd yma nid oes yr un o'r swyddogaethau hyn wedi bod yn arbennig fawr neu swmpus. 500 00:20:20,040 --> 00:20:24,570 Byddwch yn cael i mewn y rhai mwy o faint swyddogaethau yn ôl pob tebyg, P gosod 2, P gosod 3, 501 00:20:24,570 --> 00:20:26,410 yn bendant P gosod 4 ac ymlaen. 502 00:20:26,410 --> 00:20:29,340 Ar hyn o bryd y rhan fwyaf o'ch rhaglenni, os nad pob un ohonynt, yn sicr ar gyfer P 503 00:20:29,340 --> 00:20:31,550 Gellir set 1 yn cael ei wneud yn gyfan gwbl yn y brif. 504 00:20:31,550 --> 00:20:33,810 Os yw eich rhaglen yn unig bum llinell, 10 llinell, 505 00:20:33,810 --> 00:20:37,070 hyd yn oed 20 llinell o hyd, yn berffaith rhesymol i ysgrifennu iddo 506 00:20:37,070 --> 00:20:40,930 i gyd yn brif ac i beidio â gor gymhlethu eich cod, ond yr hyn rydym yn ei wneud heddiw 507 00:20:40,930 --> 00:20:44,360 ac ymlaen yn ceisio hefyd cyflwyno rhai technegau dylunio da 508 00:20:44,360 --> 00:20:48,660 fel eu bod fel eich cod yn cael mwy cymhleth ac wrth i'r problemau 509 00:20:48,660 --> 00:20:51,690 rydych am ei ddatrys gael galetach ac yn fwy diddorol sydd gennych, rhyw fath o, 510 00:20:51,690 --> 00:20:55,850 yr offer yn eich blwch offer gyda lle i ddylunio atebion da i'r rheini. 511 00:20:55,850 --> 00:21:01,210 >> Felly, gadewch i ni edrych yn sydyn yn ôl ar rhaglen hon o fy wythnos diwethaf, a oedd yn 512 00:21:01,210 --> 00:21:06,550 Roedd swyddogaethau sero dot C. A sylwi bod, yn syml, 513 00:21:06,550 --> 00:21:10,310 mae'n edrych fel hyn gyda dau swyddogaethau, prif ac enw'r print. 514 00:21:10,310 --> 00:21:13,160 Ac yn meddwl yn ôl neu efallai peirianneg cefn heddiw, 515 00:21:13,160 --> 00:21:16,880 beth oedd y cymhelliant ar gyfer cyflwyno swyddogaeth yn unol 28 o'r enw, 516 00:21:16,880 --> 00:21:18,180 Enw'r print? 517 00:21:18,180 --> 00:21:21,745 Neu beth oedd hyn yn enghraifft o mewn telerau egwyddor neu tecawê, 518 00:21:21,745 --> 00:21:22,605 os fyddech. 519 00:21:22,605 --> 00:21:26,560 520 00:21:26,560 --> 00:21:27,300 Mae rhai murmurs. 521 00:21:27,300 --> 00:21:28,830 Beth? 522 00:21:28,830 --> 00:21:32,210 >> Yeah Dadelfeniad mor Swyddogaethol yn fath o ffordd ffansi o ddweud, 523 00:21:32,210 --> 00:21:34,690 dadelfennu eich rhaglen i'w rhannau cyfansoddol 524 00:21:34,690 --> 00:21:37,530 ac yna defnyddio y rhannau hynny i ymgynnull yn ei gyfanrwydd. 525 00:21:37,530 --> 00:21:39,620 Felly, mae hynny'n rhy garedig yn unig o lond ceg yn barod, 526 00:21:39,620 --> 00:21:42,050 ond efallai mae hyn yn hyd yn oed gwell enghraifft o rywbeth 527 00:21:42,050 --> 00:21:43,081 Gelwir tynnu dŵr yn unig. 528 00:21:43,081 --> 00:21:43,580 Iawn? 529 00:21:43,580 --> 00:21:46,950 Tynnu Dŵr yn mynd i fod yn un o'r themâu cylchol yn CS50 530 00:21:46,950 --> 00:21:49,085 a hefyd gwyddoniaeth gyfrifiadurol yn fwy cyffredinol gan ei fod yn 531 00:21:49,085 --> 00:21:53,060 techneg gallwch chi ddatrys ag ef problemau yn fwy effeithiol oherwydd eich bod 532 00:21:53,060 --> 00:21:56,807 gallu ysgrifennu atebion mwy reddfol ac mewn ffordd sy'n graddfeydd 533 00:21:56,807 --> 00:21:58,390 ac yn ddealladwy gan bobl eraill. 534 00:21:58,390 --> 00:21:59,860 Beth ydw i'n ei olygu wrth hynny? 535 00:21:59,860 --> 00:22:04,340 >> Felly, gellir dadlau ei fod yn llawer mwy darllenadwy i edrych ar raglen fel hyn, 536 00:22:04,340 --> 00:22:05,990 super fyr er ei bod yn. 537 00:22:05,990 --> 00:22:10,050 Pan welwch ar linell 22 fod yna swyddogaeth o'r enw, enw print. 538 00:22:10,050 --> 00:22:12,620 Bod enw ei ben ei hun yn dweud yr hyn y mae'n ei wneud. 539 00:22:12,620 --> 00:22:15,780 Swyddogaeth honno yn ôl pob golwg yn cymryd mewnbwn rhwng ei cromfachau, 540 00:22:15,780 --> 00:22:18,600 ac i bob golwg yn gwneud rhywbeth, yn ôl pob tebyg yn argraffu'r enw. 541 00:22:18,600 --> 00:22:20,880 Ac felly, er ein hollol allai gael 542 00:22:20,880 --> 00:22:25,280 wneud yr hyn a wnaethom wythnos yn ôl, a oedd yn dim ond yn cymryd y llinell hon gwirioneddol y cod, 543 00:22:25,280 --> 00:22:28,710 cael gwared o hyn, a chael gwared ar hyn i gyd gyda'i gilydd, 544 00:22:28,710 --> 00:22:31,436 rydym yn fath o dynnu i ffwrdd y syniad o argraffu enw. 545 00:22:31,436 --> 00:22:33,060 Nid wyf yn poeni os ydych yn defnyddio print def. 546 00:22:33,060 --> 00:22:35,601 Nid wyf yn poeni os oes gennych y cant S a slaes N. rhain 547 00:22:35,601 --> 00:22:37,270 mae manylion hynod arcane. 548 00:22:37,270 --> 00:22:40,090 Yr hyn yr wyf yn poeni am fel rhaglennydd yn argraffu enw. 549 00:22:40,090 --> 00:22:43,414 Ac felly, pa well ffordd o wneud hynny nag drwy ffonio swyddogaeth, enw argraffu? 550 00:22:43,414 --> 00:22:46,330 Ac felly, dyna oedd un o'r cymhellion ar gyfer gwneud rhywbeth fel hyn. 551 00:22:46,330 --> 00:22:50,370 Gwneud y cod yn fwy darllenadwy, yn fwy y gellir eu hailddefnyddio, ac mae hefyd yn hunan disgrifiadol. 552 00:22:50,370 --> 00:22:52,120 Yn awr, gadewch i ni edrych yn enghraifft arall, 553 00:22:52,120 --> 00:22:56,220 sef swyddogaethau un, oedd gennym dros yma. 554 00:22:56,220 --> 00:23:00,367 >> Felly, mae hyn mae un yn efallai hyd yn oed yn fwy cymhellol oherwydd, yn yr achos hwn, 555 00:23:00,367 --> 00:23:01,700 Dydw i ddim eisiau i ddim ond cael int. 556 00:23:01,700 --> 00:23:03,320 Rwyf am gael int cadarnhaol. 557 00:23:03,320 --> 00:23:06,470 Ac mae'n troi allan i gael cadarnhaol int rhaid i chi wneud bagad o legwork. 558 00:23:06,470 --> 00:23:06,969 Iawn? 559 00:23:06,969 --> 00:23:09,600 Nid yw'n un llinell syml yn galw fel enw print oedd, 560 00:23:09,600 --> 00:23:11,480 sydd yn rhaid cyfaddef llai grymus. 561 00:23:11,480 --> 00:23:16,000 >> I gael int cadarnhaol, logically-- gadewch i mi sgrolio yn ôl i lawr i guddio hyn. 562 00:23:16,000 --> 00:23:18,887 Beth sy'n rhaid i chi ei wneud? 563 00:23:18,887 --> 00:23:20,720 Fel yr holl offer yr ydym yn cael ar hyn o bryd yn cael eu 564 00:23:20,720 --> 00:23:24,440 pethau fel print def o Safon Llyfrgell a hefyd o lyfrgell CS50 565 00:23:24,440 --> 00:23:26,990 yr ydym wedi Get Int, a Get arnawf, Get Hir Long, Get Llinynnol, 566 00:23:26,990 --> 00:23:29,260 ond yr unig un, germane, ar hyn o bryd yw Get Int. 567 00:23:29,260 --> 00:23:32,970 Felly, os mai'r unig arf sydd gennych yn eich blwch offer yn Get Int, 568 00:23:32,970 --> 00:23:35,505 sut rydym yn mynd ati i weithredu hi i gael int cadarnhaol? 569 00:23:35,505 --> 00:23:35,929 >> GYNULLEIDFA: Creu log a gwirio ynghylch a yw'r mewnbwn a roesant 570 00:23:35,929 --> 00:23:36,762 yn gadarnhaol neu beidio. 571 00:23:36,762 --> 00:23:39,390 572 00:23:39,390 --> 00:23:40,640 >> SIARADWR 1: Perffaith. 573 00:23:40,640 --> 00:23:41,200 Yn union. 574 00:23:41,200 --> 00:23:43,950 Offeryn arall sydd gennym yn ein blwch offer o wythnos neu ddwy yn ôl 575 00:23:43,950 --> 00:23:45,419 dim ond y lluniad dolennu. 576 00:23:45,419 --> 00:23:48,210 Ac felly, ie, os ydym yn defnyddio tra dolen, neu do tra dolen, neu blaen 577 00:23:48,210 --> 00:23:50,850 dolen gallem yn ôl pob tebyg gael i ffwrdd gydag unrhyw un o'r rhai ar ryw ffurf. 578 00:23:50,850 --> 00:23:55,140 Gallwn weithredu y syniad o get int cadarnhaol at jyst yn defnyddio Get Int, 579 00:23:55,140 --> 00:23:57,830 ac yna dim ond yn cadw ei alw'n eto a chadw aflonyddu defnyddiwr 580 00:23:57,830 --> 00:24:00,320 hyd nes y bydd ef neu hi mewn gwirionedd rhoi i ni yr hyn yr ydym ei eisiau. 581 00:24:00,320 --> 00:24:03,260 >> Ac felly yn awr, mae hyn yn tynnu dŵr o'r broses 582 00:24:03,260 --> 00:24:05,680 o gael int cadarnhaol i mewn i swyddogaeth o'r enw 583 00:24:05,680 --> 00:24:08,930 Get Cadarnhaol Int ychydig yn fwy cymhellol oherwydd edrych ar hyn. 584 00:24:08,930 --> 00:24:10,990 Mae'r rhain yn debyg 10 a mwy llinellau o god sy'n 585 00:24:10,990 --> 00:24:15,090 yn cymryd rhan mewn cael int cadarnhaol, ac nid wyf yn wir yn poeni sut yr ydych yn ei wneud. 586 00:24:15,090 --> 00:24:17,850 Y cyfan yr wyf yn gofalu yw eich bod gallu ei wneud, ac felly yr wyf i wedi 587 00:24:17,850 --> 00:24:21,660 cuddio holl fanylion hyn y tu ôl i swyddogaeth o'r enw Get Cadarnhaol int hynny, 588 00:24:21,660 --> 00:24:23,430 yn wir, mae gan do hwn tra ddolen. 589 00:24:23,430 --> 00:24:27,660 >> A gweld yr wythnos diwethaf ar gyfer y gystrawen yno, ond 'i jyst yn datgan N, 590 00:24:27,660 --> 00:24:29,800 ac mae'n printiau allan y cyfarwyddyd i'r defnyddiwr. 591 00:24:29,800 --> 00:24:33,330 Mae'n galw Get Int ac yna mae'n gwirio cyflwr hwn eto, ac unwaith eto, 592 00:24:33,330 --> 00:24:35,230 ac eto nes bod y defnyddiwr yn cydweithio. 593 00:24:35,230 --> 00:24:38,000 >> Felly nawr, mae ychydig o gwiriadau callineb. 594 00:24:38,000 --> 00:24:40,370 Ar gyfer y rhai cyfarwydd o bosibl gyda rhywfaint o raglennu, 595 00:24:40,370 --> 00:24:46,410 pam mae N ddatgan, pam ydw i'n creu N tu allan i'r do tra ddolen? 596 00:24:46,410 --> 00:24:50,370 Pam ei fod ar linell 29 ac nid ymlaen fel 33, er enghraifft. 597 00:24:50,370 --> 00:24:53,529 >> GYNULLEIDFA: Oherwydd pan fyddwch yn yn datgan ei fod y tu allan, mae'n fath 598 00:24:53,529 --> 00:24:56,688 o fwy, y scope-- mwy o faint 599 00:24:56,688 --> 00:24:58,146 >> SIARADWR 1: Da. 600 00:24:58,146 --> 00:24:59,604 >> GYNULLEIDFA: --and os byddwch yn datgan y tu mewn i'r ddolen, [Anghlywadwy] 601 00:24:59,604 --> 00:25:00,979 gan nad yw'n gwybod am y peth. 602 00:25:00,979 --> 00:25:02,819 603 00:25:02,819 --> 00:25:03,610 SIARADWR 1: Yn union. 604 00:25:03,610 --> 00:25:06,330 Os gallaf simplify-- ei fod yn fater o gwmpas. 605 00:25:06,330 --> 00:25:11,530 A chwmpas yn cyfeirio at y cyd-destun y mae newidyn bodoli neu sydd ar ddefnyddiadwy. 606 00:25:11,530 --> 00:25:15,050 A'r rheol neis o bawd yma yw bod Yn gyffredinol, pan fyddwch yn datgan neu greu 607 00:25:15,050 --> 00:25:21,642 newidyn gallwch ond ei ddefnyddio y tu mewn o'r agosaf gofleidio braces cyrliog. 608 00:25:21,642 --> 00:25:22,600 Felly beth mae hynny'n ei olygu? 609 00:25:22,600 --> 00:25:26,551 Os byddaf, yn lle hynny, dadwneud hyn ac yn mynd â rhywbeth sy'n teimlo ychydig yn symlach. 610 00:25:26,551 --> 00:25:27,050 Iawn? 611 00:25:27,050 --> 00:25:29,360 >> Llinell 32 yn unig yn edrych yn lanach i mi nawr. 612 00:25:29,360 --> 00:25:31,500 Rwy'n gwneud y ddau beth ar unwaith ac yna aseinio 613 00:25:31,500 --> 00:25:33,070 y llaw dde ar y llaw chwith. 614 00:25:33,070 --> 00:25:35,180 Y broblem ar sail nawr diffiniad hwnnw o gwmpas 615 00:25:35,180 --> 00:25:41,130 yw y gellir N yn cael ei ddefnyddio yn y llinellau 31 a 32 tu mewn dolen hwn, 616 00:25:41,130 --> 00:25:45,100 ond lle trwy ddiffiniad sy'n gellir peidio ei ddefnyddio? 617 00:25:45,100 --> 00:25:45,660 Yn unol beth? 618 00:25:45,660 --> 00:25:46,160 Yeah. 619 00:25:46,160 --> 00:25:47,490 >> GYNULLEIDFA: 35. 620 00:25:47,490 --> 00:25:49,180 >> SIARADWR 1: 35. 621 00:25:49,180 --> 00:25:50,480 Yn bendant nid yw 35. 622 00:25:50,480 --> 00:25:52,349 A hefyd ble arall? 623 00:25:52,349 --> 00:25:52,890 GYNULLEIDFA: 34. 624 00:25:52,890 --> 00:25:55,040 SIARADWR 1: Hyd yn oed 34 yw broblematig oherwydd ei fod yn 625 00:25:55,040 --> 00:25:56,450 y tu allan i'r braces cyrliog. 626 00:25:56,450 --> 00:25:58,200 Ac felly yn wir, gadewch i ni weld beth sy'n digwydd. 627 00:25:58,200 --> 00:25:58,700 Iawn? 628 00:25:58,700 --> 00:26:00,722 Gallai hyn ymddangos ychydig 'n athrylithgar nid neu a allai, 629 00:26:00,722 --> 00:26:02,680 ond gadewch i ni weld beth y compiler i'w ddweud pan 630 00:26:02,680 --> 00:26:04,730 rydym yn mynd i mewn i cyfeiriadur ffynhonnell heddiw. 631 00:26:04,730 --> 00:26:08,950 Gwnewch swyddogaeth un. 632 00:26:08,950 --> 00:26:11,231 Oh, fy dduw. 633 00:26:11,231 --> 00:26:12,980 Wel, yr wyf wedi gorffen yn olaf hynny, gyda llaw. 634 00:26:12,980 --> 00:26:14,030 Iawn. 635 00:26:14,030 --> 00:26:15,510 A beth yw'r broblem yma? 636 00:26:15,510 --> 00:26:17,430 Arcane iawn i edrych ar. 637 00:26:17,430 --> 00:26:19,570 Ond dyma beth rwy'n typed-- yn gwneud swyddogaeth un. 638 00:26:19,570 --> 00:26:21,640 Dyma beth gwneud ysgogwyd, sydd mewn gwirionedd 639 00:26:21,640 --> 00:26:23,705 gan ddefnyddio'r chlang compiler gyda rhai o'r baneri rhai 640 00:26:23,705 --> 00:26:25,080 y byddwn yn gweld eto cyn hir. 641 00:26:25,080 --> 00:26:26,829 Ac eto, bob amser yn edrych yn y camgymeriad cyntaf, 642 00:26:26,829 --> 00:26:30,540 oherwydd efallai y bydd yn cael raeadru Effaith diystyr ar linellau eraill. 643 00:26:30,540 --> 00:26:34,410 >> Felly, beth mae hyn yn ei olygu yw bod y broblem yw mewn 1.c. swyddogaeth 644 00:26:34,410 --> 00:26:36,890 Mae ar linell 32. 645 00:26:36,890 --> 00:26:39,712 Ac mae'n ar golofn, neu gymeriad, 13. 646 00:26:39,712 --> 00:26:42,670 Felly, pan fydd eich golygydd testun y gall eich helpu i nodi ble mae'r mater yn. 647 00:26:42,670 --> 00:26:47,079 Felly, os wyf yn sgrolio i fyny, beth yw llinell 32? 648 00:26:47,079 --> 00:26:49,120 Dyna wir yr un yma sy'n amlygwyd eisoes 649 00:26:49,120 --> 00:26:50,607 n amrywiol iawn Yma-- heb ei ddefnyddio. 650 00:26:50,607 --> 00:26:51,440 Ond nid yw'n heb ei ddefnyddio. 651 00:26:51,440 --> 00:26:52,320 Im 'yn ei ddefnyddio. 652 00:26:52,320 --> 00:26:56,110 Ond mae'r compiler yn ddryslyd, oherwydd bod mae'n bodoli yn unig y tu mewn o gwmpas yma. 653 00:26:56,110 --> 00:26:57,727 Ac felly ni allaf ei ddefnyddio yma. 654 00:26:57,727 --> 00:26:58,560 Nid wyf yn gallu ei ddefnyddio yma. 655 00:26:58,560 --> 00:27:01,320 A'r casglwr, felly, ddim yn poeni hyd yn oed fy mod i'n ceisio. 656 00:27:01,320 --> 00:27:03,940 Mae'n ymddangos i fod heb eu defnyddio o fewn ei gwmpas gwirioneddol. 657 00:27:03,940 --> 00:27:08,854 >> Felly, gallwn ehangu cwmpas drwy wneud yn union beth yr ydym yn dechrau with-- int n. 658 00:27:08,854 --> 00:27:11,020 A hyd yn oed er nad yw'n gwneud edrych mor gain, efallai, 659 00:27:11,020 --> 00:27:15,110 ac rydym yn cymryd linell ychwanegol yma, awron 'i' o fewn y cwmpas ym mhob man. 660 00:27:15,110 --> 00:27:15,970 Felly gadewch i ni roi cynnig arall arni. 661 00:27:15,970 --> 00:27:19,040 Felly gwnewch yn swyddogaeth un. 662 00:27:19,040 --> 00:27:19,610 Nice. 663 00:27:19,610 --> 00:27:23,370 Ac yn awr os wyf os byddaf yn rhedeg swyddogaeth un, gadewch i ni roi negyddol 10, 664 00:27:23,370 --> 00:27:27,170 negyddol 1, 0, 1, ac mae'n wir yn gweithio. 665 00:27:27,170 --> 00:27:28,610 >> Felly mae yna ateb arall yma. 666 00:27:28,610 --> 00:27:29,280 Ti'n gwybod beth? 667 00:27:29,280 --> 00:27:31,230 Beth os Fi 'n sylweddol wyf yn reslo gyda hyn? 668 00:27:31,230 --> 00:27:33,140 Nid wyf yn gwybod ble mae'r n yn fod i fynd. 669 00:27:33,140 --> 00:27:33,723 Ti'n gwybod beth? 670 00:27:33,723 --> 00:27:39,220 Im 'jyst yn mynd i roi i gyd y ffordd ar frig fy ffeil yma. 671 00:27:39,220 --> 00:27:42,835 Beth fyddai hyn yn ei wneud, yn eich barn chi? 672 00:27:42,835 --> 00:27:43,335 Yeah? 673 00:27:43,335 --> 00:27:44,251 >> GYNULLEIDFA: [Anghlywadwy]. 674 00:27:44,251 --> 00:27:47,964 675 00:27:47,964 --> 00:27:48,630 SIARADWR 1: Yeah. 676 00:27:48,630 --> 00:27:50,560 Felly yr wyf wedi ei gwneud yn fyd-eang, fel petai. 677 00:27:50,560 --> 00:27:54,430 Os oes gennych newidyn sy'n tu allan eich holl swyddogaethau sy'n cael ei ganiatáu, 678 00:27:54,430 --> 00:27:58,780 a dylai'r cod lunio, ac n yn awr ar gael, nid yn unig yn get 679 00:27:58,780 --> 00:28:02,490 int cadarnhaol, ond hefyd mewn main-- sy'n ychydig yn worrisome oherwydd mae 680 00:28:02,490 --> 00:28:04,864 eisoes yn n yn y prif, felly mae mwy ar hynny mewn dim ond moment-- 681 00:28:04,864 --> 00:28:06,530 ond byddai hyn yn cael ei ystyried dylunio gwael. 682 00:28:06,530 --> 00:28:06,910 Iawn. 683 00:28:06,910 --> 00:28:08,570 Os oes rhaid i chi droi at rhywbeth fel, o, 'n annhymerus' 684 00:28:08,570 --> 00:28:10,125 jyst roi i fyny yma oherwydd mae'r cod yn ymddangos i lunio 685 00:28:10,125 --> 00:28:12,180 yn gyffredinol nid yw'r arfer gorau. 686 00:28:12,180 --> 00:28:14,590 Yn hytrach ydych am ddewis cwmpas culaf posibl 687 00:28:14,590 --> 00:28:18,720 ar gyfer eich newidynnau, a fyddai'n golygu mynd â'n cynllun gwreiddiol, a oedd yn 688 00:28:18,720 --> 00:28:19,920 yn iawn yma. 689 00:28:19,920 --> 00:28:24,400 >> Nawr fel o'r neilltu, os oedd gennych yn union-enwi amrywiol yma, 690 00:28:24,400 --> 00:28:27,750 byddai'r ffordd c trin this-- er na fydd hyn yn digwydd yn rhy often-- 691 00:28:27,750 --> 00:28:30,150 yw bod hyn yn dal i fod yn berffaith iawn yn fan hyn. 692 00:28:30,150 --> 00:28:35,000 Ond y diffiniad hwn o n yn unol Bydd 22 gysgodi'r un byd-eang. 693 00:28:35,000 --> 00:28:38,190 Felly, bydd hyn yn un yn gweithio o fewn prif, ac mae'r un byd-eang 694 00:28:38,190 --> 00:28:41,670 Bydd mewn gwirionedd yn berthnasol pan fyddwch chi yn cael bositif int Ond yn fwy ar hynny 695 00:28:41,670 --> 00:28:43,890 amser arall, ond dim ond ar gyfer y rhai chwilfrydig. 696 00:28:43,890 --> 00:28:45,970 >> Felly, yn fyr, rydym yn atgyweiria hon fan hyn. 697 00:28:45,970 --> 00:28:49,220 Nawr, gadewch i ni tynnu ar wahân dau ddarn arall cyn i ni edrych ar un llinell olaf o god 698 00:28:49,220 --> 00:28:50,170 yn y rhaglen hon. 699 00:28:50,170 --> 00:28:52,170 Cael int cadarnhaol. 700 00:28:52,170 --> 00:28:54,450 Ar yr ochr chwith ei air yw'r gair int. 701 00:28:54,450 --> 00:28:56,860 Beth mae bod yn arwyddo yn eich barn chi? 702 00:28:56,860 --> 00:28:58,900 Hyd yn hyn rydym wedi gweld yn ddi-rym yn bennaf. 703 00:28:58,900 --> 00:28:59,400 Yeah? 704 00:28:59,400 --> 00:29:01,810 >> GYNULLEIDFA: Mae'n y math o newidyn sy'n ydych yn gofyn am. 705 00:29:01,810 --> 00:29:04,550 >> SIARADWR 1: Yeah Mae'n y math o, gadewch i mi Nid yw dweud amrywiol, ond y math o werth 706 00:29:04,550 --> 00:29:05,990 fy mod yn gofyn yn ôl ar gyfer. 707 00:29:05,990 --> 00:29:08,070 Ac yn wir, dyna 'n athrylithgar yma, gobeithio. 708 00:29:08,070 --> 00:29:08,200 Iawn? 709 00:29:08,200 --> 00:29:10,250 Os ydych chi am gael int cadarnhaol, beth ydyw chi 710 00:29:10,250 --> 00:29:12,920 am i'r function-- fel ein gwirfoddolwyr o wythnos ddiwethaf 711 00:29:12,920 --> 00:29:15,720 wrth law i chi yn ôl darn o bapur gyda int arno? 712 00:29:15,720 --> 00:29:19,190 Ac felly rydym wedi nodi bod y hyn a elwir yn y math dychwelyd y swyddogaeth hon 713 00:29:19,190 --> 00:29:20,450 yn cael int cadarnhaol. 714 00:29:20,450 --> 00:29:22,990 Pe na baem yn eisiau iddo dychwelyd unrhyw beth, yr ydych yn dweud yn ddi-rym. 715 00:29:22,990 --> 00:29:25,270 Os ydych am iddo ddychwelyd llinyn, yr ydych yn dweud llinyn. 716 00:29:25,270 --> 00:29:27,310 Os ydych am iddo ddychwelyd fflôt, yr ydych yn dweud arnofio. 717 00:29:27,310 --> 00:29:30,440 Ond yr unig un sy'n berthnasol yma rhesymegol, oherwydd fy mod i'n defnyddio int get, 718 00:29:30,440 --> 00:29:34,130 hyd yn oed er fy mod i'n cyfyngu i gwerthoedd cadarnhaol, yn dychwelyd yn int. 719 00:29:34,130 --> 00:29:38,380 >> Felly gwrthwyneb, beth mae'n ei olygu fod yna gwagle mewn cromfachau? 720 00:29:38,380 --> 00:29:40,130 Beth mae'r cromfachau ddiffinio yn gyffredinol? 721 00:29:40,130 --> 00:29:40,588 Yeah? 722 00:29:40,588 --> 00:29:42,880 >> GYNULLEIDFA: Mae'n golygu y swyddogaeth yn Nid yw mewn gwirionedd yn ei gael. 723 00:29:42,880 --> 00:29:44,650 >> SIARADWR 1: Mae'n golygu y swyddogaeth yn Nid yw mewn gwirionedd yn cael yr hyn? 724 00:29:44,650 --> 00:29:45,430 >> GYNULLEIDFA: Mae mewnbwn. 725 00:29:45,430 --> 00:29:46,763 >> SIARADWR 1: mewnbwn, o gwbl. 726 00:29:46,763 --> 00:29:49,870 Felly yn wir, os parenthesis dyma eich bod yn nodi ddi-rym, 727 00:29:49,870 --> 00:29:51,650 mai dim ond yn golygu nad wyf am unrhyw fewnbwn. 728 00:29:51,650 --> 00:29:53,269 'N annhymerus' yn delio â'r broblem fy hun. 729 00:29:53,269 --> 00:29:55,810 Ac yn wir, nid oes rhaid i chi dywedwch cael unrhyw beth int cadarnhaol. 730 00:29:55,810 --> 00:29:59,630 Rydych yn unig yn dweud, yn cael int cadarnhaol, a bod Bydd swyddogaeth yn mynd i ffwrdd ac yn gwneud ei beth. 731 00:29:59,630 --> 00:30:02,970 >> Ond mae wedi bod ychydig tric rwyf wedi bod yn chwarae yma y tro hwn cyfan 732 00:30:02,970 --> 00:30:04,970 i wneud yn siŵr y cod hwn yn llunio. 733 00:30:04,970 --> 00:30:09,620 Sylwch fod int-- cael bositif void-- int ar linell 27. 734 00:30:09,620 --> 00:30:14,530 Ond am ryw reswm sy'n ymddangos yn rhyfedd mae hefyd yn fan hyn i fyny ar-lein 16. 735 00:30:14,530 --> 00:30:18,530 A dim ond ar gyfer mesur da byddaf yn ailadrodd mae hyn felly mae'n berffaith union yr un fath. 736 00:30:18,530 --> 00:30:21,640 Ac yr wyf wedi dweud prototeip gyda ychydig o sylw un-lein. 737 00:30:21,640 --> 00:30:28,850 Beth fydd yn digwydd os byddaf yn dileu hynny, a Erbyn hyn ailgynnal gwneud swyddogaeth 1, fynd i mewn. 738 00:30:28,850 --> 00:30:29,350 Wps. 739 00:30:29,350 --> 00:30:32,527 740 00:30:32,527 --> 00:30:33,110 Arhoswch funud. 741 00:30:33,110 --> 00:30:34,764 Ble mae fy tab? 742 00:30:34,764 --> 00:30:35,263 Huh? 743 00:30:35,263 --> 00:30:37,969 744 00:30:37,969 --> 00:30:39,620 Standby. 745 00:30:39,620 --> 00:30:41,570 Gwneud ffwythiant 1. 746 00:30:41,570 --> 00:30:42,150 Dyna ni. 747 00:30:42,150 --> 00:30:42,310 IAWN. 748 00:30:42,310 --> 00:30:43,400 Pe heb eu cadw yn iawn. 749 00:30:43,400 --> 00:30:45,220 Felly, yr wyf yn meddwl bod yna ychydig bug yma os nad ydw i'n 750 00:30:45,220 --> 00:30:46,636 gweld enw'r tab ar hyn o bryd. 751 00:30:46,636 --> 00:30:47,940 Felly, yr hyn sy'n digwydd yma? 752 00:30:47,940 --> 00:30:52,210 Datganiad ymhlyg o swyddogaeth cael int cadarnhaol yn annilys yn C99. 753 00:30:52,210 --> 00:30:53,940 Felly ddryslyd eto. 754 00:30:53,940 --> 00:30:55,200 Felly beth yn arwydd hwn o? 755 00:30:55,200 --> 00:30:57,287 Wel, mae'n ymddangos fod C yn eithaf dwp. 756 00:30:57,287 --> 00:30:59,912 Wel, 'i' y rhaglennu iaith, neu yn hytrach y compiler yn. 757 00:30:59,912 --> 00:31:02,940 Dim ond yn gwybod beth sydd gennych nysgu ynddi, a dim ond 758 00:31:02,940 --> 00:31:05,640 mynd i wybod rhywbeth os byddwch yn eu dysgu o'r blaen. 759 00:31:05,640 --> 00:31:07,960 Mewn geiriau eraill, yn prif ar hyn o bryd, rwy'n 760 00:31:07,960 --> 00:31:10,900 ceisio i alw swyddogaeth Gelwir cael int cadarnhaol. 761 00:31:10,900 --> 00:31:14,120 Ond nid yw'r compiler yn mynd i hysbysiad bod yn cael int cadarnhaol 762 00:31:14,120 --> 00:31:16,500 yn bodoli tan llinell 26. 763 00:31:16,500 --> 00:31:21,360 Ac felly yr hyn y mae'r compiler yn ei wneud yn unig camgymeriadau cyn gynted ag y mae'n mynd i linell 17, 764 00:31:21,360 --> 00:31:23,700 gan ddweud datganiad ymhlyg o gael int cadarnhaol, sy'n 765 00:31:23,700 --> 00:31:27,740 yn unig yw ffordd ffansi o ddweud, nid wyf yn ei wneud gwybod beth cael int cadarnhaol eto. 766 00:31:27,740 --> 00:31:31,240 >> Ieithoedd eraill fel Java a Gallai Python a Ruby edrych ymlaen. 767 00:31:31,240 --> 00:31:32,240 Nid yw C yn ei wneud. 768 00:31:32,240 --> 00:31:35,110 Ac felly y ffordd yr ydym atgyweiria mae hwn yn un o ddwy ffordd. 769 00:31:35,110 --> 00:31:40,160 Naill ai un, os yw'r broblem yw bod cael Nid yw int cadarnhaol wedi'i weld o'r blaen, 770 00:31:40,160 --> 00:31:42,150 yn dda, gadewch i mi dim ond symud cyrraedd y brig. 771 00:31:42,150 --> 00:31:43,650 Byddai hynny'n atgyweiria hon broblem. 772 00:31:43,650 --> 00:31:46,790 Ond yn gyffredinol, mae'n techneg gwell hystyried 773 00:31:46,790 --> 00:31:50,220 i roi eich prif swyddogaeth ar yr union top fel bod dynol yn darllen eich cod 774 00:31:50,220 --> 00:31:52,710 yn gwybod yr hyn y mae'r rhaglen yn ei wneud, oherwydd nad yw prif ei gladdu gyd 775 00:31:52,710 --> 00:31:53,960 y ffordd ar y gwaelod neu yn y canol. 776 00:31:53,960 --> 00:31:55,130 Mae'n ar y brig. 777 00:31:55,130 --> 00:31:56,410 Felly nid yw hynny'n teimlo'n ddelfrydol. 778 00:31:56,410 --> 00:31:58,326 A gallwch ei gael mewn gwirionedd i mewn i sefyllfaoedd lle 779 00:31:58,326 --> 00:32:00,820 os alwadau un swyddogaeth un arall, sy'n galw un arall, 780 00:32:00,820 --> 00:32:04,630 gallwch gael i fater lle nad Gall fynd uwchben y llall, yn rhesymegol. 781 00:32:04,630 --> 00:32:05,920 Nid dim ond yn bosibl. 782 00:32:05,920 --> 00:32:09,290 >> Ac felly y ffordd i'r gwaith o amgylch hyn yw dim ond yn cymryd 783 00:32:09,290 --> 00:32:13,200 Llofnod y swyddogaeth, felly i speak-- y llinell gyntaf pan ei fod yn declared-- 784 00:32:13,200 --> 00:32:16,850 a dim ond copïo, gludo yn y top, ond nid gyda'r braces-- cyrliog 785 00:32:16,850 --> 00:32:17,980 dim ond gyda hanner colon. 786 00:32:17,980 --> 00:32:20,840 Mae fel ychydig awgrym o'r hyn sydd i ddod. 787 00:32:20,840 --> 00:32:26,630 Ac yn wir, i gyd amser hwn pan fyddwn yn wedi gweld pethau fel io.h safonol 788 00:32:26,630 --> 00:32:33,040 a cs50.h, yn yr un modd, mewn rhai dot f ffeiliau a oes prototeipiau eraill. 789 00:32:33,040 --> 00:32:35,250 A byddwn yn gweld bod cyn bo hir. 790 00:32:35,250 --> 00:32:39,340 >> Felly, yn fyr, pan fydd gennych raglen mewn ffeil gyda swyddogaethau lluosog 791 00:32:39,340 --> 00:32:42,300 heblaw prif, chi bron bob amser yn awyddus i ddatgan eu 792 00:32:42,300 --> 00:32:45,360 dim ond drwy gyfrwng eu cyntaf llinell, wedi'i ddilyn gan hanner colon, 793 00:32:45,360 --> 00:32:48,410 ar frig y ffeil. 794 00:32:48,410 --> 00:32:50,460 Dyna oedd llawer i gyd ar unwaith. 795 00:32:50,460 --> 00:32:53,130 Unrhyw gwestiynau? 796 00:32:53,130 --> 00:32:53,920 Unrhyw gwestiynau? 797 00:32:53,920 --> 00:32:54,530 Iawn. 798 00:32:54,530 --> 00:32:59,760 >> Felly gadewch i ni symud ymlaen wedyn i rywbeth fel peswch. 799 00:32:59,760 --> 00:33:00,260 Oh. 800 00:33:00,260 --> 00:33:00,570 Pa mor addas. 801 00:33:00,570 --> 00:33:01,220 Iawn. 802 00:33:01,220 --> 00:33:02,260 Peswch. 803 00:33:02,260 --> 00:33:05,080 Felly dyma yn c gweithredu rhaglen 804 00:33:05,080 --> 00:33:07,560 gwnaethom y diwrnod o'r blaen yn Scratch bod yn syml iawn yn unig 805 00:33:07,560 --> 00:33:08,691 Dywed peswch, peswch, peswch. 806 00:33:08,691 --> 00:33:09,190 Iawn. 807 00:33:09,190 --> 00:33:11,136 A rhywun dywedodd ychydig diwrnod yn ôl fod yna 808 00:33:11,136 --> 00:33:12,760 ffordd o lanhau cod hwn i fyny yn barod. 809 00:33:12,760 --> 00:33:12,880 Iawn? 810 00:33:12,880 --> 00:33:15,440 Cyn gynted ag y byddwch yn copïo a gludo dylunio yn ôl pob tebyg drwg. 811 00:33:15,440 --> 00:33:18,725 O leiaf unwaith y byddwn yn cyrraedd pedwar neu bump neu 20 peswch, mae'n teimlo arfer gwael. 812 00:33:18,725 --> 00:33:19,850 Rydym yn unig yn cadw copi, gludo. 813 00:33:19,850 --> 00:33:22,213 Beth yw'r ateb amlwg i lanhau rhaglen hon fyny? 814 00:33:22,213 --> 00:33:23,120 >> GYNULLEIDFA: Dolen. 815 00:33:23,120 --> 00:33:23,350 >> SIARADWR 1: Yeah. 816 00:33:23,350 --> 00:33:24,070 Felly defnyddiwch ddolen. 817 00:33:24,070 --> 00:33:27,697 A gallwn ddefnyddio er-dolen, beth amser dolen, unrhyw nifer o ddulliau. 818 00:33:27,697 --> 00:33:29,780 Ac yn wir, dyna beth rydym yn ei wneud yn y fersiwn un yma. 819 00:33:29,780 --> 00:33:32,250 Rwyf yn lle hynny wedi hailysgrifennu ei mewn fersiwn un o cough.c 820 00:33:32,250 --> 00:33:35,170 i fod yn peswch chyfiawn o fewn er-ddolen. 821 00:33:35,170 --> 00:33:38,240 Mae pob hawl, ond mae 'na cyfle yn awr i fath o gychwyn 822 00:33:38,240 --> 00:33:41,630 i ddylunio hyn ychydig yn fwy fel y wers yr ydym yn eu dysgu eiliad yn ôl, 823 00:33:41,630 --> 00:33:46,190 sef this-- debyg fy mod eisiau i greu swyddogaeth o'r enw peswch, 824 00:33:46,190 --> 00:33:49,730 gadewch i ni ystyried am ychydig funudau'n beth mae'n mynd i edrych fel. 825 00:33:49,730 --> 00:33:51,900 Felly, os ydw i eisiau rhywbeth i peswch, Fi jyst angen 826 00:33:51,900 --> 00:33:53,800 i ddefnyddio print f tu mewn i'r swyddogaeth. 827 00:33:53,800 --> 00:33:55,030 Ac yn wir yr wyf. 828 00:33:55,030 --> 00:33:56,990 Ac yn y ffaith hon, i gyd amser, unrhyw adeg rydych yn 829 00:33:56,990 --> 00:33:59,000 argraffu rhywbeth i y sgrin, yn rhaglennydd 830 00:33:59,000 --> 00:34:00,610 Byddai galw bod sgîl-effaith. 831 00:34:00,610 --> 00:34:02,990 Nid wedi fy drosglwyddo yn ôl rhywun gwerth. 832 00:34:02,990 --> 00:34:06,170 Mae wedi fy cymryd rhai camau a allai fod yn weledol amlwg. 833 00:34:06,170 --> 00:34:10,672 Ond mae hyn peswch swyddogaeth, a yw'n dychwelyd yn seiliedig ar ei llinell gyntaf unrhyw beth? 834 00:34:10,672 --> 00:34:12,880 Na, oherwydd o'i fath yn dychwelyd yn ddi-rym, a oedd yn unig yn golygu 835 00:34:12,880 --> 00:34:14,250 nid yw'n trosglwyddo unrhyw beth i mi yn ôl. 836 00:34:14,250 --> 00:34:16,791 Gallai fod yn gwneud rhywbeth ar eu golwg, ond nid yw'n trosglwyddo i mi 837 00:34:16,791 --> 00:34:18,639 yn ôl ddarn o bapur fel wythnos diwethaf. 838 00:34:18,639 --> 00:34:21,310 >> Oes angen unrhyw fewnbwn? 839 00:34:21,310 --> 00:34:21,810 Na 840 00:34:21,810 --> 00:34:23,134 Ac felly mae'n ddi-rym yma hefyd. 841 00:34:23,134 --> 00:34:25,600 Felly, mae hyn hefyd yn fath o -lunio dros y broblem hon. 842 00:34:25,600 --> 00:34:26,099 Iawn? 843 00:34:26,099 --> 00:34:28,820 Rwyf wedi gwneud y rhaglen yn fwy cymhleth, yn fwy o cod llinellau, 844 00:34:28,820 --> 00:34:31,889 Nid wyf wedi ei gwneud yn unrhyw fwy ymarferol, ond mae hyn 845 00:34:31,889 --> 00:34:34,210 fyddai yn gam, efallai, ar gyfer ehangach 846 00:34:34,210 --> 00:34:36,830 cyd-destun gyda chod mwy cymhleth. 847 00:34:36,830 --> 00:34:38,150 Ond beth am hyn? 848 00:34:38,150 --> 00:34:42,050 Beth ydw i done-- jyst glancing ar hyn heb edrych ar y sylw 849 00:34:42,050 --> 00:34:46,076 ar frig y file-- hyn sydd gan Yr wyf yn gwneud hyn yn sylfaenol yma gyda fy peswch 850 00:34:46,076 --> 00:34:47,409 gweithredu sy'n wahanol? 851 00:34:47,409 --> 00:34:48,327 Yeah, yn ôl? 852 00:34:48,327 --> 00:34:51,384 >> GYNULLEIDFA: Ei gwneud yn fel y gallwch fod â chymeriad droi i ffwrdd. 853 00:34:51,384 --> 00:34:52,050 SIARADWR 1: Yeah. 854 00:34:52,050 --> 00:34:53,270 Felly, mae hyn yn teimlo rhyw fath o 'n glws. 855 00:34:53,270 --> 00:34:53,389 Iawn? 856 00:34:53,389 --> 00:34:56,600 Mae fel ychwanegu nodwedd at eich rhaglen neu eich swyddogaeth, yn yr achos hwn. 857 00:34:56,600 --> 00:34:57,830 Mae'n dal i yn dychwelyd dim. 858 00:34:57,830 --> 00:35:00,538 Gallai fod yn cael sgîl-effaith weledol, oherwydd ei fod yn galw print f. 859 00:35:00,538 --> 00:35:02,800 Ond yn awr yr wyf wedi parametrized y swyddogaeth, a oedd yn 860 00:35:02,800 --> 00:35:06,470 golygu Rwyf wedi penodedig a gyflawnir mewnbwn math int a galw yn n, 861 00:35:06,470 --> 00:35:08,510 ond gallwn i alw unrhyw beth yr wyf eisiau. 862 00:35:08,510 --> 00:35:11,550 Yn wir, gallai fod yn unig fod weithiau i fod hyd yn oed yn fwy eglur. 863 00:35:11,550 --> 00:35:13,310 Ac yna gallwn i jyst newid hyn yma. 864 00:35:13,310 --> 00:35:16,450 Ond y pwynt yw bod hyn yn sut yr wyf yn creu swyddogaeth sy'n cymryd mewnbwn. 865 00:35:16,450 --> 00:35:19,530 Ac os ydych yn cofio flipping trwy-lein efallai mewn un 866 00:35:19,530 --> 00:35:23,000 y daith-throughs, mae'r bedwerydd ac enghraifft peswch terfynol, 867 00:35:23,000 --> 00:35:27,150 byddwch yn sylwi yma rwyf wedi cyffredinol fy cod fath further-- o dynnir 868 00:35:27,150 --> 00:35:27,690 ymhellach. 869 00:35:27,690 --> 00:35:31,390 Fel peswch a tisian, mae'r ddau yn am fel dweud rhywbeth neu wneud 870 00:35:31,390 --> 00:35:32,330 rhyw fath o sain. 871 00:35:32,330 --> 00:35:34,725 Byddai Save yn y cyfatebol bloc Scratch. 872 00:35:34,725 --> 00:35:37,350 Ac felly yr hyn a wnaeth i mi yn y fersiwn hwn, sydd o fewn ein gallu dim ond cipolwg ar, 873 00:35:37,350 --> 00:35:43,170 yw peswch yn unig fel dweud, [Peswch], peswch, ac yn y cyfamser, tisian yn 874 00:35:43,170 --> 00:35:44,570 fel dweud, [ACHOO]. 875 00:35:44,570 --> 00:35:46,900 Ac felly dwi wedi cyffredinol y gwaith o hynny ar waith 876 00:35:46,900 --> 00:35:48,970 erbyn hyn gweithredu swyddogaeth generig hwn, 877 00:35:48,970 --> 00:35:51,490 dweud, sydd yn ddiddorol ar gyfer dibenion heddiw 878 00:35:51,490 --> 00:35:54,300 dim ond am ei fod yn dal i Nid oes gan math dychwelyd. 879 00:35:54,300 --> 00:35:56,398 Ond faint o mewnbynnau sydd ganddo? 880 00:35:56,398 --> 00:35:56,981 GYNULLEIDFA: Two. 881 00:35:56,981 --> 00:35:57,430 SIARADWR 1: Two. 882 00:35:57,430 --> 00:35:59,263 Ac felly os ydych chi am cymryd mewn dwy ddadl, 883 00:35:59,263 --> 00:36:00,710 dim ond eu gwahanu gyda choma. 884 00:36:00,710 --> 00:36:03,110 Ac os ydych chi am hynny ffoniwch y swyddogaeth honno, 885 00:36:03,110 --> 00:36:05,800 yn sylwi eich bod newydd ffoniwch dweud, dyfynnwch, unquote, 886 00:36:05,800 --> 00:36:09,090 am y ddadl gyntaf, sy'n gyffredin n, ar gyfer yr ail ddadl. 887 00:36:09,090 --> 00:36:12,130 Felly unwaith eto, rydym yn unig yn awr y blociau adeiladu fel y gallwn mewn gwirionedd 888 00:36:12,130 --> 00:36:15,686 gweithredu rhai o'n swyddogaethau eu hunain. 889 00:36:15,686 --> 00:36:16,570 Iawn. 890 00:36:16,570 --> 00:36:19,690 Unrhyw gwestiynau am y rhain? 891 00:36:19,690 --> 00:36:22,400 >> Felly nawr gadewch i ni croen yn ôl haen os felly. 892 00:36:22,400 --> 00:36:24,840 A'r nod, yn y pen draw, yw problem gosod yr wythnos nesaf 893 00:36:24,840 --> 00:36:27,710 yn mynd i fod ar cryptogrophy-- y grefft o sgrialu gwybodaeth. 894 00:36:27,710 --> 00:36:30,640 Ac yn benodol, y wybodaeth Bydd yn rhaid i chi amgryptio neu dadgryptio 895 00:36:30,640 --> 00:36:31,605 yn mynd i fod testun. 896 00:36:31,605 --> 00:36:33,980 Ac felly y math hwnnw o gwahoddiadau y cwestiwn heddiw fel yn dda, 897 00:36:33,980 --> 00:36:38,480 beth sy'n mynd ymlaen o dan y cwfl gyda thestun y tu hwnt i ASCII o wythnos sero, 898 00:36:38,480 --> 00:36:40,730 a sut y gallwn mewn gwirionedd dechrau i drin hyn? 899 00:36:40,730 --> 00:36:43,070 Felly dyma yw enw Zamyla yn. 900 00:36:43,070 --> 00:36:47,380 Ac yn y testun, a allai fod yn cael ei fewnbynnu i mewn fel y swyddogaeth llinyn get. 901 00:36:47,380 --> 00:36:52,540 Ac yn dechrau nawr, pan fyddwch yn gweld llinyn fel this-- Z-A-M-Y-L-A-- 902 00:36:52,540 --> 00:36:56,550 ddechrau meddwl am y peth fel pe mhob o gymeriadau rhai mewn bocs o'i 903 00:36:56,550 --> 00:36:57,050 eu hunain. 904 00:36:57,050 --> 00:36:59,460 Ac yn wir, mewn wythnos neu ddwy yn amser, pob un o'r blychau hyn 905 00:36:59,460 --> 00:37:04,280 yn mynd i gynrychioli benodol iawn bloc o memory-- damaid o gof. 906 00:37:04,280 --> 00:37:07,050 Felly pob un o'r llythyrau hyn, yn y pen draw, bydd yn cynrychioli 8 did. 907 00:37:07,050 --> 00:37:10,560 A byddwn yn mewn gwirionedd yn gweld beth sy'n mynd ar o dan y cwfl yn fy chyfrifiadur. 908 00:37:10,560 --> 00:37:13,440 >> Ond am nad yw'n suffices dim ond i edrych ar Zamyla 909 00:37:13,440 --> 00:37:17,520 drwy'r lens hwn, lle pob un y llythyrau hyn yn ei flwch ei hun. 910 00:37:17,520 --> 00:37:22,697 Ac yn ddigon 'n glws yn C y gallwn gael gafael ar bob un o'r blychau hyn yn uniongyrchol. 911 00:37:22,697 --> 00:37:25,530 Felly, os ydych am gael y cyntaf llythyr ei henw, super hawdd yn C. 912 00:37:25,530 --> 00:37:28,410 Os ydych chi am gael y diwethaf llythyr, super hawdd yn ogystal 913 00:37:28,410 --> 00:37:30,240 gyda darn o gystrawen newydd. 914 00:37:30,240 --> 00:37:36,250 >> Felly dw i'n mynd i fynd yn ei flaen i mewn i CS50 IDE ac yn agor i fyny 'r llinyn sero dot C. 915 00:37:36,250 --> 00:37:40,270 Ac yn yr enghraifft hon yma, mae yna un neu ddau o bethau newydd yn digwydd. 916 00:37:40,270 --> 00:37:44,360 Felly yn gyntaf yn llinell 19, rydym wedi gweld y llinyn get before--. 917 00:37:44,360 --> 00:37:49,840 Felly, yn union fel gwiriad bwyll cyflym, pe gallai rhywun gynnig hyd lafar 918 00:37:49,840 --> 00:37:52,662 esboniad lleygwr o beth sy'n mynd ymlaen yn unol 19. 919 00:37:52,662 --> 00:37:55,370 Fel dim ond drosi hyn yn Saesneg nad yw roommate yn CS50 920 00:37:55,370 --> 00:37:56,416 Gallai deall. 921 00:37:56,416 --> 00:37:56,916 Yeah. 922 00:37:56,916 --> 00:37:59,749 >> GYNULLEIDFA: A yw'r defnyddiwr mewnbynnu llinyn ac yn ei storio mewn s amrywiol. 923 00:37:59,749 --> 00:38:01,934 924 00:38:01,934 --> 00:38:02,600 SIARADWR 1: Da. 925 00:38:02,600 --> 00:38:05,579 Cael y mewnbwn defnyddwyr llinyn ac yn ei storio mewn s amrywiol. 926 00:38:05,579 --> 00:38:06,120 Mae hynny'n wych. 927 00:38:06,120 --> 00:38:08,090 Felly, ar y dde ochr, rydym yn galw llinyn get. 928 00:38:08,090 --> 00:38:10,340 Mae hynny'n dychwelyd gwerth nad oedd yn cael ei neilltuo 929 00:38:10,340 --> 00:38:14,230 o ochr dde i'r chwith-law ochr i mewn i enw s newidyn sy'n 930 00:38:14,230 --> 00:38:15,950 cynllunio i storio llinyn. 931 00:38:15,950 --> 00:38:16,800 Yn union. 932 00:38:16,800 --> 00:38:20,000 >> Felly nawr llinell 22, fesul y sylw yn unol 21, 933 00:38:20,000 --> 00:38:22,780 yn amlwg printiau bod llinyn un cymeriad bob llinell. 934 00:38:22,780 --> 00:38:23,740 Ond sut? 935 00:38:23,740 --> 00:38:27,040 Felly, yn gyntaf oll, rydym yn ymgychwyn i mi 0. 936 00:38:27,040 --> 00:38:31,061 Ac yna sut mae cyrraedd at diwedd enw Zamyla yn? 937 00:38:31,061 --> 00:38:32,810 Wel, ar ddiwedd y Enw Zamyla, a gallwn 938 00:38:32,810 --> 00:38:38,151 teipiwch llaw yn y cymeriad olaf ei henw rhywsut, neu nifer y peth. 939 00:38:38,151 --> 00:38:38,650 Iawn? 940 00:38:38,650 --> 00:38:43,500 Os ydym yn mynd yn ôl Yma-- Z-A-M-L-- Y-L-A-- fel y gallwn i deipio i mewn. 941 00:38:43,500 --> 00:38:47,340 Beth yw y mynegai o Llythyr olaf Zamyla yn? 942 00:38:47,340 --> 00:38:52,517 Os yw hyn yn 0-- siarad fel programmer-- 0, 1, 2, 3, 4, 5, 943 00:38:52,517 --> 00:38:56,570 Rwy'n heard-- mor wir, mae'r llythyr olaf yn enw'r Zamyla yw'r chweched, 944 00:38:56,570 --> 00:38:58,890 ond os ydym yn cyfrif o 0, mae'n mynd i fod yn rhif 5. 945 00:38:58,890 --> 00:39:01,320 Felly cadwch hynny mewn cof yma. 946 00:39:01,320 --> 00:39:04,929 >> Mae'n troi allan mae 'na swyddogaeth mewn C enw strlen, ac yn ôl yn y dydd 947 00:39:04,929 --> 00:39:06,720 a hyd heddiw yn dal, llawer o rhaglenwyr 948 00:39:06,720 --> 00:39:09,524 dewis i cydamseru enwau ar gyfer eu swyddogaethau sy'n swnio fel geiriau 949 00:39:09,524 --> 00:39:10,440 maent yn ceisio ei ddweud. 950 00:39:10,440 --> 00:39:12,590 Felly strlen yw hyd llinyn. 951 00:39:12,590 --> 00:39:18,168 Ac felly beth fyddai hyd llinyn o S dychwelyd pan Zamyla yw'r mewnbwn? 952 00:39:18,168 --> 00:39:19,569 >> GYNULLEIDFA: Pum. 953 00:39:19,569 --> 00:39:22,090 >> SIARADWR 1: Z-A-M-Y-L. Chwech. 954 00:39:22,090 --> 00:39:22,590 Iawn? 955 00:39:22,590 --> 00:39:23,940 Beth yw hyd y enw Zamyla yn? 956 00:39:23,940 --> 00:39:24,440 Iawn? 957 00:39:24,440 --> 00:39:26,240 Ac yn union mewn gwirionedd, chwe llythyr. 958 00:39:26,240 --> 00:39:26,740 Iawn? 959 00:39:26,740 --> 00:39:28,940 Ac felly beth mae hynny'n ei olygu ar gyfer ein dolen? 960 00:39:28,940 --> 00:39:32,130 Rydym yn mynd i fynd o 0 hyd at chwech, a oedd yn 961 00:39:32,130 --> 00:39:33,650 yn mynd i roi pum iteriadau ni. 962 00:39:33,650 --> 00:39:34,890 Beth ydym yn ei wneud ar bob iteriad? 963 00:39:34,890 --> 00:39:36,870 Wel, y cant C, rhywun dyfalu y diwrnod o'r blaen, 964 00:39:36,870 --> 00:39:38,710 yn golygu dalfan ar gyfer yr hyn? 965 00:39:38,710 --> 00:39:39,335 >> GYNULLEIDFA: Torgoch. 966 00:39:39,335 --> 00:39:40,293 SIARADWR 1: Dim ond torgoch. 967 00:39:40,293 --> 00:39:42,877 Felly character-- sengl nad lluosog cymeriadau fel llinyn. 968 00:39:42,877 --> 00:39:45,251 Ac yna dyma y llinell newydd ein bod wedi cael argraffu. 969 00:39:45,251 --> 00:39:46,580 Ac yna dyma 'r gystrawen newydd. 970 00:39:46,580 --> 00:39:51,130 Os ydych eisiau argraffu'r i-fed cymeriad yn y S llinyn, fel petai, 971 00:39:51,130 --> 00:39:54,060 gallwch ddweud y enwi y S llinyn, 972 00:39:54,060 --> 00:39:58,230 ac yna agor braced sgwâr, ac Yna gau braced sgwâr, gyda fi 973 00:39:58,230 --> 00:39:58,780 y canol. 974 00:39:58,780 --> 00:40:01,430 Ac mae'n fath o braf yn y mae'n fath o edrych fel sgwâr 975 00:40:01,430 --> 00:40:06,210 yn union fel y sgwariau lle Zamyla yn cymeriadau yn bodoli ar y llun yno. 976 00:40:06,210 --> 00:40:09,970 >> Felly os wyf mewn gwirionedd yn rhedeg hyn yn awr, gadewch i ni weld beth sy'n digwydd. 977 00:40:09,970 --> 00:40:15,190 Gwneud llinyn 0 dot slaes llinyn 0, ac yna rwy'n 978 00:40:15,190 --> 00:40:16,720 mynd i deipio enw Zamyla yn. 979 00:40:16,720 --> 00:40:19,428 Does dim brydlon, gan nad wyf yn gwneud defnyddio print f, ond mae hynny'n iawn. 980 00:40:19,428 --> 00:40:20,660 Fi jyst yn gwybod beth i wneud. 981 00:40:20,660 --> 00:40:23,240 Ac yn wir, mae'n printiau allan Enw Zamyla, yn un i bob llinell. 982 00:40:23,240 --> 00:40:25,760 >> Nawr, gadewch i ni fod ychydig yn di-hid. 983 00:40:25,760 --> 00:40:28,461 Tybiwch nad oeddwn yn gwybod am strlen ac yr wyf yn cyfrifedig, 984 00:40:28,461 --> 00:40:31,460 i gyd yn iawn, does neb yn mynd i gael enwi yn fwy na 50 fel cymeriadau. 985 00:40:31,460 --> 00:40:36,360 Gadewch i ni fynd yn ei flaen ac yn ail-grynhoi hyn ac ailgynnal, ac yna teipiwch Zamyla 986 00:40:36,360 --> 00:40:37,160 eto. 987 00:40:37,160 --> 00:40:40,850 Yn rhesymegol, beth yw'r Rhaglen mynd i geisio argraffu? 988 00:40:40,850 --> 00:40:49,545 Z-A-M-Y-L-A, yna tebyg i 45 beit anhysbys o gof. 989 00:40:49,545 --> 00:40:51,670 Ac yn wir, byddwn yn dod yn ôl i'r syniad hwn o gof. 990 00:40:51,670 --> 00:40:54,180 Ond dim ond yn rhesymegol, os Enw Zamyla yw hyn o hyd, 991 00:40:54,180 --> 00:40:56,450 yn unol â'r darlun yma, yr hyn yr ydym yn ei ddweud 992 00:40:56,450 --> 00:40:59,810 yn cadw argraffu, cadw argraffu, cadw argraffu, cadwch argraffu, cadw argraffu, 993 00:40:59,810 --> 00:41:03,781 yr holl ffordd i gymeriad 50fed, sy'n pwy a ŵyr beth sy'n mynd i ddigwydd. 994 00:41:03,781 --> 00:41:05,030 Felly gadewch i ni mewn gwirionedd yn cymryd golwg. 995 00:41:05,030 --> 00:41:06,720 Gadewch i deipio i mewn Zamyla. 996 00:41:06,720 --> 00:41:07,250 Diddorol. 997 00:41:07,250 --> 00:41:08,190 Rydym yn cael lwcus. 998 00:41:08,190 --> 00:41:09,700 Dim ond criw cyfan o ofod gwyn. 999 00:41:09,700 --> 00:41:09,930 Oh. 1000 00:41:09,930 --> 00:41:11,120 Mae un cymeriad ffynci. 1001 00:41:11,120 --> 00:41:14,577 Mae'n edrych yn fath o fel cwestiwn rhyfedd marcio yno, ond mae enw Zamyla yn. 1002 00:41:14,577 --> 00:41:15,660 Gadewch i ni gael yn wirioneddol di-hid. 1003 00:41:15,660 --> 00:41:20,000 Beth am i ni argraffu 500 blociau i mewn i'r anhysbys? 1004 00:41:20,000 --> 00:41:24,380 Gadewch i ni fynd yn ei flaen ac yn gwneud hyn yn ogystal ac yna ail-redeg. 1005 00:41:24,380 --> 00:41:27,980 A gadewch i sgrin lawn, oherwydd mae angen inni weld mwy o le. 1006 00:41:27,980 --> 00:41:30,460 Zamyla. 1007 00:41:30,460 --> 00:41:31,830 Got lwcus eto. 1008 00:41:31,830 --> 00:41:33,070 >> Dare rydym yn cael mwy di-hid? 1009 00:41:33,070 --> 00:41:36,070 Gadewch i ni gael mwy di-hid. 1010 00:41:36,070 --> 00:41:39,350 50,000 o gymeriadau. 1011 00:41:39,350 --> 00:41:41,390 Mae hyn yn fwyaf sicr nid yn syniad da. 1012 00:41:41,390 --> 00:41:41,890 Iawn. 1013 00:41:41,890 --> 00:41:42,990 Gwnewch llinyn 0. 1014 00:41:42,990 --> 00:41:44,720 Bydd hyn yn ein demo diwethaf. 1015 00:41:44,720 --> 00:41:47,261 Zamyla. 1016 00:41:47,261 --> 00:41:48,632 Ych. 1017 00:41:48,632 --> 00:41:50,010 Ych. 1018 00:41:50,010 --> 00:41:50,680 IAWN. 1019 00:41:50,680 --> 00:41:54,407 Felly fy nghof yn wirioneddol wag ar hyn o bryd, sydd mewn gwirionedd fath o gyfleus. 1020 00:41:54,407 --> 00:41:55,990 Yr hyn yr wyf i'n ceisio cael canlynol-- pob hawl. 1021 00:41:55,990 --> 00:41:57,614 Ac yn awr Im 'jyst yn mynd i gael di-hid. 1022 00:41:57,614 --> 00:41:58,570 500,000. 1023 00:41:58,570 --> 00:42:03,860 Make-- gadewch i llawn-sgrîn iddo. 1024 00:42:03,860 --> 00:42:04,990 Enter. 1025 00:42:04,990 --> 00:42:05,490 Zamyla. 1026 00:42:05,490 --> 00:42:12,050 1027 00:42:12,050 --> 00:42:13,390 Dyna ni. 1028 00:42:13,390 --> 00:42:15,610 Does gen i ddim syniad beth sy'n yw, ond mae'n swnio'n ddrwg. 1029 00:42:15,610 --> 00:42:16,110 Iawn. 1030 00:42:16,110 --> 00:42:20,322 Ac yn wir, yn fuan, os ydych ymysg yr ychydig ffodus oriau swyddfa 1031 00:42:20,322 --> 00:42:22,780 ac yn broblem sefydlu un, yr ydych Efallai yn dda iawn yn dod ar draws hyn. 1032 00:42:22,780 --> 00:42:25,490 Fai segmentiad yn ei wneud ag ystyr diffinio'n dda. 1033 00:42:25,490 --> 00:42:28,450 Mae'n golygu rhyw fath o gamgymeriad sy'n ymwneud â segment o gof. 1034 00:42:28,450 --> 00:42:30,490 Ac mewn termau lleyg, mae'n golygu ein bod yn cyffwrdd 1035 00:42:30,490 --> 00:42:34,780 memory-- rydym yn defnyddio RAM yn fy chyfrifiadur na ddylai wyf wedi cael gafael ar. 1036 00:42:34,780 --> 00:42:37,050 A dyna beth y ddau bwerus ac mae hefyd yn beryglus 1037 00:42:37,050 --> 00:42:39,910 am C yw bod chi mewn gwirionedd yn cael mynediad dilyffethair 1038 00:42:39,910 --> 00:42:45,910 i gyfanrwydd y cof eich rhaglen neu bytes neu RAM, yn fwy penodol. 1039 00:42:45,910 --> 00:42:49,510 >> Felly, er bod enw Zamyla yn Dim ond chwech nod o hyd, 1040 00:42:49,510 --> 00:42:51,450 Rwy'n dal i fynd i unrhyw le mewn cof rwyf eisiau. 1041 00:42:51,450 --> 00:42:53,491 Ac wrth fynd heibio, os ydych chi wedi erioed wedi darllen rhywfaint o erthygl 1042 00:42:53,491 --> 00:42:55,610 dros y blynyddoedd am rai gweinydd neu ryw raglen 1043 00:42:55,610 --> 00:42:58,654 cael cracio neu hacio dyna manteisio ar rywbeth 1044 00:42:58,654 --> 00:43:00,820 Gelwir gorlif byffer manteisio ein bod yn chi helpu mewn gwirionedd 1045 00:43:00,820 --> 00:43:04,970 siarad am mewn ychydig wythnosau, dyna gan gyfeirio yn gyffredinol i twyllo'r rywsut 1046 00:43:04,970 --> 00:43:09,090 cyfrifiadur i mewn i mynd yn dda tu hwnt i ffiniau cof 1047 00:43:09,090 --> 00:43:11,410 y dylai gael, a dod o hyd i rywbeth llawn sudd 1048 00:43:11,410 --> 00:43:13,530 yn hynny o memory-- cyfrinair, efallai, yn ffordd 1049 00:43:13,530 --> 00:43:16,990 o circumventing rhywfaint rhif cyfresol gwirio, neu dim ond yn gyffredinol yn gallu 1050 00:43:16,990 --> 00:43:20,360 twyllo y cyfrifiadur yn gweithredu cod nas fwriadwyd. 1051 00:43:20,360 --> 00:43:22,360 Ond gadewch i ni ddod yn ôl i'r realiti i ychydig funudau'n 1052 00:43:22,360 --> 00:43:24,550 lle mae rhaglen hon oedd gweithredu gydag strlen, 1053 00:43:24,550 --> 00:43:26,110 a chyflwyno un peth yma. 1054 00:43:26,110 --> 00:43:30,030 Beth sy'n newydd ymhlith y rhain tair llinell uchaf? 1055 00:43:30,030 --> 00:43:30,910 >> Felly dot llinyn h. 1056 00:43:30,910 --> 00:43:35,490 Mae'n troi allan mae yna llyfrgell hon a elwir yn Llinynnol Dot H, neu Lyfrgell Llinynnol, 1057 00:43:35,490 --> 00:43:38,490 y mae ei ffeil flaen, fel petai, yn dot llinyn h sy'n rhoi i mi 1058 00:43:38,490 --> 00:43:40,860 mynediad at swyddogaeth strlen hwn. 1059 00:43:40,860 --> 00:43:43,841 Os byddaf yn hepgor hynny, mae'r compiler yn mynd i gweiddi arna i ar ryw ffurf. 1060 00:43:43,841 --> 00:43:44,590 Ond eich bod yn gwybod beth? 1061 00:43:44,590 --> 00:43:46,090 Nawr, gadewch i ni fynd yn wirioneddol cynnil. 1062 00:43:46,090 --> 00:43:50,820 Yn unol 22, mae rhywbeth caredig o inefficient-- cynllunio'n wael, 1063 00:43:50,820 --> 00:43:53,990 arguably-- am y llinell hon o god. 1064 00:43:53,990 --> 00:43:56,280 Meddyliwch yn ôl i sut er-dolen yn cael eu rhoi ar waith 1065 00:43:56,280 --> 00:44:00,140 a pha gamau yn digwydd eto ac eto ac again-- y initialization, 1066 00:44:00,140 --> 00:44:04,110 cyflwr, mae'r cod sy'n yn cael ei gyflawni, yna bydd y gynyddran 1067 00:44:04,110 --> 00:44:07,880 neu'r newid, yna bydd y cyflwr, yna bydd y cod, yna bydd y newid, yna 1068 00:44:07,880 --> 00:44:11,280 cyflwr, yna bydd y cod, yna bydd y newid, ac yn y blaen. 1069 00:44:11,280 --> 00:44:15,320 Felly yr hyn a allai fod ychydig yn worrisome neu ei wneud yn wael yma? 1070 00:44:15,320 --> 00:44:16,387 Yeah, mewn glas. 1071 00:44:16,387 --> 00:44:18,220 GYNULLEIDFA: Strlen yw a elwir yn llawer, lawer gwaith. 1072 00:44:18,220 --> 00:44:20,654 1073 00:44:20,654 --> 00:44:21,320 SIARADWR 1: Yeah. 1074 00:44:21,320 --> 00:44:23,700 Felly strlen cael ei alw'n nifer o weithiau, ond yr hyn sy'n 1075 00:44:23,700 --> 00:44:27,113 hyd y enw Zamyla yn y tro cyntaf y ddolen executes? 1076 00:44:27,113 --> 00:44:27,860 >> GYNULLEIDFA: Chwech. 1077 00:44:27,860 --> 00:44:28,110 >> SIARADWR 1: Chwech. 1078 00:44:28,110 --> 00:44:30,976 Wel, beth yw hyd ei henw yr ail dro y cod executes? 1079 00:44:30,976 --> 00:44:31,432 >> GYNULLEIDFA: Chwech. 1080 00:44:31,432 --> 00:44:31,890 >> SIARADWR 1: pob hawl. 1081 00:44:31,890 --> 00:44:32,720 Mae'n dal i fod chwech. 1082 00:44:32,720 --> 00:44:33,220 Iawn? 1083 00:44:33,220 --> 00:44:35,260 Nid yw enw Zarla Mae gan newid, hyd yn oed os ydw i'n edrych 1084 00:44:35,260 --> 00:44:38,240 yn rhan yn unig o'r llythyrau yn ei henw. 1085 00:44:38,240 --> 00:44:41,349 Ac felly mae'r ffaith fy mod yn effeithiol gofyn y cwestiwn hwn, beth sydd 1086 00:44:41,349 --> 00:44:44,640 hyd Zamyla, beth yw'r hyd o Zamyla, beth yw'r hyd Zamyla, 1087 00:44:44,640 --> 00:44:47,990 chwe gwaith ar wahân, neu saith hyd yn oed, yn unig dwp, 1088 00:44:47,990 --> 00:44:50,390 oherwydd dyna digyfnewid yr ateb hwnnw. 1089 00:44:50,390 --> 00:44:53,550 Ac felly yr hyn y gallwn mewn gwirionedd wneud yw this-- mewn llinyn un 1090 00:44:53,550 --> 00:44:55,680 Mae gen i fersiwn ychydig yn well yma. 1091 00:44:55,680 --> 00:45:00,110 There-- llinyn whoops-- dau gen i fersiwn ychydig yn well wherein 1092 00:45:00,110 --> 00:45:05,010 I ei wneud this-- hytrach na dim ond ymgychwyn ff i 0, yr wyf hefyd gyda choma 1093 00:45:05,010 --> 00:45:07,990 ddatgan ail newidyn enw Nid n-- oes rhaid i mi ddweud int eto. 1094 00:45:07,990 --> 00:45:09,220 Nid wyf ddylai, mewn gwirionedd. 1095 00:45:09,220 --> 00:45:10,380 Ond yr wyf yn dweud n. 1096 00:45:10,380 --> 00:45:13,610 Ac yna yr wyf ymgychwyn n â y strlen o n, fel bod bellach 1097 00:45:13,610 --> 00:45:17,110 faint o weithiau mae strlen cael eu gweithredu i gyd? 1098 00:45:17,110 --> 00:45:17,610 Dim ond unwaith. 1099 00:45:17,610 --> 00:45:20,257 Ac felly dyma beth yr ydym yn ei olygu gynharach am ddyluniad gwell. 1100 00:45:20,257 --> 00:45:23,090 A dweud y gwir unwaith y bydd eich cod yn gywir, mynd yn ôl a meddwl drwy, 1101 00:45:23,090 --> 00:45:26,820 wyf yn defnyddio cyn lleied cof neu fel ychydig eiliadau 1102 00:45:26,820 --> 00:45:30,409 neu milieiliadau o amser cyfrifiadur fel modd gweithredu rhai broblem? 1103 00:45:30,409 --> 00:45:32,200 Ac yr wyf i'n mynd i sgrolio i fyny a dim ond sôn am 1104 00:45:32,200 --> 00:45:34,283 fod yna sôn hwn o'r null yn y fersiwn hwn, 1105 00:45:34,283 --> 00:45:36,390 ond byddwn yn dod yn ôl at hynny cyn bo hir. 1106 00:45:36,390 --> 00:45:41,010 Oherwydd am y tro, gadewch i ni edrych ar ble mae hyn yn mynd i arwain ni. 1107 00:45:41,010 --> 00:45:44,110 Felly un, mae'n ymddangos fod nawr bod gennym y gallu 1108 00:45:44,110 --> 00:45:46,860 i edrych ar gymeriadau unigol, gallwn trosoledd rhywbeth 1109 00:45:46,860 --> 00:45:50,807 o wythnos 0 a oedd yn ddirgel iawn ac math o anniddorol ar y pryd. 1110 00:45:50,807 --> 00:45:53,390 Ond yn awr, ac yn enwedig pan fyddwn yn dod i cryptograffiaeth mewn wythnos, 1111 00:45:53,390 --> 00:45:54,820 mae'n mynd i fod yn eithaf pwerus. 1112 00:45:54,820 --> 00:45:57,450 Mae'n ymddangos bod gyda rhai ints a fflotiau data types-- 1113 00:45:57,450 --> 00:46:00,300 a chars a llinynnau a eraill things-- rai ohonynt 1114 00:46:00,300 --> 00:46:02,800 Gellir eu trosi yn hawdd iawn i un arall. 1115 00:46:02,800 --> 00:46:05,840 >> Er enghraifft, pan fyddwn yn siarad am ASCII beth amser ago-- dyma 1116 00:46:05,840 --> 00:46:07,796 y priflythrennau A trwy M, dot, dot, 1117 00:46:07,796 --> 00:46:12,530 dot-- dywedasom fod yna mapio rhwng llythrennau a rhifau hyn. 1118 00:46:12,530 --> 00:46:14,970 Ac yn wir, mae'n dal yn wir ar gyfer llythrennau bach hefyd. 1119 00:46:14,970 --> 00:46:17,470 Llythrennau bach a yw 97, cyfalaf yw 65. 1120 00:46:17,470 --> 00:46:20,860 Ac mae 'na nifer o ASCII, sef mapiau hyn yn unig 1121 00:46:20,860 --> 00:46:23,240 system ar gyfer pob un o'r llythyrau eraill hynny. 1122 00:46:23,240 --> 00:46:25,030 Felly beth mae hynny'n ei olygu? 1123 00:46:25,030 --> 00:46:28,390 Wel, dw i'n mynd i fynd yn ei flaen ac yn agored i fyny go iawn yn gyflym rhywbeth o'r enw 1124 00:46:28,390 --> 00:46:31,240 ASCII 0, y rhan fwyaf ohonynt yw sylwadau. 1125 00:46:31,240 --> 00:46:33,860 Ac eto ar-lein y gallwch bob amser cipolwg trwy'r sylwadau. 1126 00:46:33,860 --> 00:46:36,180 >> Ac edrych beth mae hyn yn mynd i'w wneud. 1127 00:46:36,180 --> 00:46:38,410 Felly 'i' got prif swyddogaeth. 1128 00:46:38,410 --> 00:46:41,490 Rydw i wedi hard-coded y rhifau yn unig ar gyfer yn awr, gan fy mod yn gwybod beth rwy'n ei wneud. 1129 00:46:41,490 --> 00:46:42,950 Yr wyf yn gwybod yr hyn yr wyf am ei weld yma. 1130 00:46:42,950 --> 00:46:45,220 Ac yr wyf wedi initialized wyf i 65. 1131 00:46:45,220 --> 00:46:48,490 A dwi'n gyfrif i fyny trwy 26 lythyrau cyfanswm. 1132 00:46:48,490 --> 00:46:52,990 A beth ydw i'n mynd i argraffu un llinell ar y tro 1133 00:46:52,990 --> 00:46:54,930 os gallwch ddehongli hyn yn tynnu sylw at y llinell? 1134 00:46:54,930 --> 00:46:55,970 Hyn sy'n cael ei argraffu? 1135 00:46:55,970 --> 00:46:56,797 Yeah. 1136 00:46:56,797 --> 00:46:57,264 >> GYNULLEIDFA: A ydych yn mynd i argraffu'r llythyr a 1137 00:46:57,264 --> 00:46:59,805 cyfateb i'r map y Gwerth llythyr a gwerth cyfanrif? 1138 00:46:59,805 --> 00:47:01,199 1139 00:47:01,199 --> 00:47:01,990 SIARADWR 1: Yn union. 1140 00:47:01,990 --> 00:47:04,740 Rydw i'n mynd i argraffu'r llythyr sy'n cyfateb i'r gwerth cyfanrif, 1141 00:47:04,740 --> 00:47:06,131 ac i'r gwrthwyneb, fel a ganlyn. 1142 00:47:06,131 --> 00:47:08,880 Wel mae hyn, dywedodd rhywun yn gynharach, yn unig yw dalfan ar gyfer torgoch. 1143 00:47:08,880 --> 00:47:09,490 Mae'n dal i fod. 1144 00:47:09,490 --> 00:47:12,280 Mae hyn, wrth gwrs, yn placeholder am nad yw int-- llinell newydd. 1145 00:47:12,280 --> 00:47:18,140 Ac yn awr yn sylwi, fy ngwerth cyntaf Im 'yn plygio i mewn ar gyfer y placeholder 1146 00:47:18,140 --> 00:47:22,320 yn nid dim ond I. i ddim yn dweud, mewn cromfachau, cols I, 1147 00:47:22,320 --> 00:47:26,700 y mae'r torgoch parenthetical yn dweud wrth y compiler, yn trin yr wyf yn 1148 00:47:26,700 --> 00:47:28,490 nid fel beth ydyw, sydd yn nifer. 1149 00:47:28,490 --> 00:47:30,490 Ei drin fel gymeriad go iawn. 1150 00:47:30,490 --> 00:47:34,490 Er bod yr ail gwerth Im 'yn plygio in-- Dylai I-- yn unig fod yn rhif. 1151 00:47:34,490 --> 00:47:38,140 >> Felly, os wyf yn llunio program-- hon felly mae hyn yn gwneud ASCII 0, 1152 00:47:38,140 --> 00:47:41,720 ASCII slaes dot 0-- Fi jyst cael y siart bach defnyddiol sy'n 1153 00:47:41,720 --> 00:47:44,950 dangos i mi yr holl posibl mapiadau heb orfod meddwl ei fod 1154 00:47:44,950 --> 00:47:46,450 trwy neu ffigur allan ar fy mhen fy hun. 1155 00:47:46,450 --> 00:47:48,783 Ac rwyf hefyd yn argraffu, sylwi ar y llythrennau bach, 1156 00:47:48,783 --> 00:47:51,410 gan fod ychydig o linellau yn ddiweddarach, yr wyf yn hefyd argraffu'r mapiau hyn 1157 00:47:51,410 --> 00:47:53,737 yn ogystal, sydd ychydig i yn dweud bod unwaith y byddwch yn deall 1158 00:47:53,737 --> 00:47:55,570 beth sy'n mynd ymlaen o dan y cwfl, gallwch chi 1159 00:47:55,570 --> 00:47:57,111 trosi yn ôl ac ymlaen yn awtomatig. 1160 00:47:57,111 --> 00:48:00,160 Ac yn wir, os unrhyw un ohonoch byth yn gwneud hyn yn yr ysgol radd 1161 00:48:00,160 --> 00:48:03,490 neu wedi clywed am rywun mythically cymryd nodyn 1162 00:48:03,490 --> 00:48:05,620 a throsglwyddo at ei neu ei ffrind yn y dosbarth, 1163 00:48:05,620 --> 00:48:08,300 ond eich sgramblo y llythyrau gan fel A yn dod yn B, 1164 00:48:08,300 --> 00:48:11,240 a B yn dod yn C, neu rywbeth fwy cymhleth na hynny, yn dda, 1165 00:48:11,240 --> 00:48:13,410 sut y byddech yn mynd ati gweithredu hynny fel plentyn? 1166 00:48:13,410 --> 00:48:16,340 Wel, 'ch jyst fath o wybod A dod yn B, B yn dod yn C, 1167 00:48:16,340 --> 00:48:19,700 ond yn fathemategol, beth oedd y plentyn yn ei wneud? 1168 00:48:19,700 --> 00:48:22,050 Beth oeddech chi'n ychwanegu at bob llythyren? 1169 00:48:22,050 --> 00:48:23,340 I bob pwrpas, 1. 1170 00:48:23,340 --> 00:48:27,740 >> Felly, pan fyddwch yn newid A i B, dyna math o fel newid 65 oed i 66, 1171 00:48:27,740 --> 00:48:29,590 sydd yn fathemategol yn golygu dim ond ychwanegu 1. 1172 00:48:29,590 --> 00:48:33,300 Ac felly os ydych yn gweithredu mai ychydig dechneg twyllodrus 1173 00:48:33,300 --> 00:48:36,380 ar gyfer eich athro mewn cod, yr ydych Gallai gwneud yn union hynny yn unig 1174 00:48:36,380 --> 00:48:38,552 drwy ychwanegu un llythyren gyda'i gilydd. 1175 00:48:38,552 --> 00:48:40,260 Felly, cyn hir, rydym yn mynd i weld sut yr ydym 1176 00:48:40,260 --> 00:48:43,300 Gellir manteisio ar hynny i mewn gwirionedd scramble wirioneddol a Dadgymysgwch 1177 00:48:43,300 --> 00:48:43,991 gwybodaeth. 1178 00:48:43,991 --> 00:48:47,240 Yn y cyfamser, yn gwybod ein bod wedi dechrau i gyflwyno cwpl llyfrgelloedd eraill 1179 00:48:47,240 --> 00:48:48,990 Yma-- y llinyn un heddiw. 1180 00:48:48,990 --> 00:48:51,180 A safle defnyddiol iawn gobeithio y byddwch yn dod o hyd i 1181 00:48:51,180 --> 00:48:55,010 yn cael ei alw'n reference.cs50.net, a oedd yn mae'r staff addysgu wedi rhoi at ei gilydd, 1182 00:48:55,010 --> 00:48:57,510 felly os ydych chi eisiau edrych i fyny gweithfeydd sut strlen, 1183 00:48:57,510 --> 00:48:59,300 gallwch ddechrau teipio enw y swyddogaeth, yn 1184 00:48:59,300 --> 00:49:02,890 cliciwch strlen yno, ac yna esboniad llai cyfforddus 1185 00:49:02,890 --> 00:49:03,700 yn mynd i ymddangos. 1186 00:49:03,700 --> 00:49:06,880 Neu os ydych am i'r swyddog Esboniad sy'n seiliedig ar Linux, 1187 00:49:06,880 --> 00:49:08,945 gallwch glicio fwy cyffyrddus ar dde uchaf, ac mae'n 1188 00:49:08,945 --> 00:49:12,070 yn cyflwyno'r un wybodaeth, ond mewn termau mwy cymhleth. 1189 00:49:12,070 --> 00:49:15,070 Dyna yn adnodd defnyddiol i mewn gwirionedd yn gwybod beth popeth yn ei wneud. 1190 00:49:15,070 --> 00:49:17,320 >> Y tro nesaf rydym yn mynd i cymerwch olwg ar Ovaltine 1191 00:49:17,320 --> 00:49:20,070 a mwy, ac yn cyflwyno ein hunain i fyd cryptograffeg. 1192 00:49:20,070 --> 00:49:21,930 Cyn hynny, byddwn yn gweld chi ddiweddarach yr wythnos hon. 1193 00:49:21,930 --> 00:49:23,390 Ac yn awr, Colton Ogden. 1194 00:49:23,390 --> 00:49:26,730 Welwn ni chi ar ddydd Mercher. 1195 00:49:26,730 --> 00:49:30,216 >> [CHWARAE CERDDORIAETH] 1196 00:49:30,216 --> 00:49:33,702 >> [CHWARAE CERDDORIAETH] 1197 00:49:33,702 --> 00:49:38,682 1198 00:49:38,682 --> 00:49:42,200 >> SIARADWR 1: Beth mae'r [Bib] ydych chi'n ei wneud? 1199 00:49:42,200 --> 00:49:45,720 >> SIARADWR 1: Yr wyf yn bwyta fy bwdin? 1200 00:49:45,720 --> 00:49:47,160 Sut ydych chi'n ei fwyta? 1201 00:49:47,160 --> 00:49:47,860 Gyda eich dwylo? 1202 00:49:47,860 --> 00:49:54,050 1203 00:49:54,050 --> 00:49:57,940 >> [CHWARAE CERDDORIAETH] 1204 00:49:57,940 --> 00:50:03,453