1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> SIARADWR 1: Pob hawl. 3 00:00:13,650 --> 00:00:14,390 Croeso yn ôl. 4 00:00:14,390 --> 00:00:19,260 Mae hyn yn Wythnos Dau o CS50, ac mae gennym hyd yn hyn wedi bod yn defnyddio swyddogaethau ond 5 00:00:19,260 --> 00:00:20,830 gymryd i raddau helaeth yn ganiataol. 6 00:00:20,830 --> 00:00:23,430 Rydym wedi defnyddio printf sydd â'r sgîl-effaith o argraffu 7 00:00:23,430 --> 00:00:24,110 pethau ar y sgrîn. 8 00:00:24,110 --> 00:00:25,790 Rydym wedi defnyddio get-int, yn cael arnofio. 9 00:00:25,790 --> 00:00:29,230 >> Ond beth os ydych mewn gwirionedd am greu eich swyddogaethau eu hunain, gan fod rhai o'r 10 00:00:29,230 --> 00:00:31,740 efallai y byddwch eisoes wedi dechrau ei wneud ar gyfer Set Problem One, er 11 00:00:31,740 --> 00:00:33,140 nad yw'n gwbl angenrheidiol? 12 00:00:33,140 --> 00:00:37,150 Wel, gadewch i ni fynd yn ei flaen ac yn ailedrych ar y problem o ddim ond yn gofyn i'r defnyddiwr ar gyfer 13 00:00:37,150 --> 00:00:40,660 eu henw ac argraffu rhywbeth ar y sgrîn, ond ceisiwch ffactor ar rai 14 00:00:40,660 --> 00:00:44,000 o'r gyffredin a rydym wedi gweld yn ein cod hyd yn hyn. 15 00:00:44,000 --> 00:00:45,120 Felly, gan fy mod yn golygu y canlynol. 16 00:00:45,120 --> 00:00:47,315 >> Rydw i'n mynd i fynd yn ei flaen ac yn creu rhaglen newydd, ffoniwch 17 00:00:47,315 --> 00:00:49,320 mae'n hello.c fel arfer. 18 00:00:49,320 --> 00:00:53,730 Rydw i'n mynd i fynd yn ei flaen a rhoi fy hun gynnwys io.h safonol ar y brig. 19 00:00:53,730 --> 00:00:57,040 Rydw i'n mynd hefyd i roi fy hun preemptively y llyfrgell CS50 fel bod 20 00:00:57,040 --> 00:00:59,080 Dydw i ddim yn cael yelled ar gan y compiler. 21 00:00:59,080 --> 00:01:02,400 Ac yn awr yr wyf i'n mynd i fynd yn ei flaen a datgan int, prif, ddi-rym. 22 00:01:02,400 --> 00:01:09,020 >> Ac yna i mewn yma, dyma lle yr wyf am i ddechrau allanoli swyddogaeth i 23 00:01:09,020 --> 00:01:12,090 rhyw swyddogaeth arall yr wyf fy hun mod mynd i ysgrifennu ond nad yw'n 24 00:01:12,090 --> 00:01:13,820 bodoli ar hyn o bryd. 25 00:01:13,820 --> 00:01:19,210 Er enghraifft, mae'n debyg fy mod i eisiau ysgrifennu swyddogaeth sy'n caniatáu i mi 26 00:01:19,210 --> 00:01:23,830 argraffu helo, coma, a Yna enw rhywfaint defnyddiwr. 27 00:01:23,830 --> 00:01:29,010 Yn hytrach na pharhau i wneud printf helo,% s, ni fyddai'n braf pe 28 00:01:29,010 --> 00:01:33,380 cafwyd ychydig yn swyddogaeth a elwir yn Nid printf ond enw argraffu? 29 00:01:33,380 --> 00:01:36,600 >> Felly, mewn geiriau eraill, yr wyf am i fod yn gallu ysgrifennu rhaglen sy'n gwneud ychydig 30 00:01:36,600 --> 00:01:37,710 rhywbeth fel hyn. 31 00:01:37,710 --> 00:01:42,070 Yn gyntaf, yr wyf i'n mynd i ddweud printf eich enw, a thrwy hynny annog y defnyddiwr i 32 00:01:42,070 --> 00:01:46,150 yn rhoi ei enw i mi, ac yna rwy'n mynd i ddefnyddio'r llinyn s gyfarwydd i 33 00:01:46,150 --> 00:01:47,290 ddatgan llinyn. 34 00:01:47,290 --> 00:01:50,420 Rhowch newidyn o linyn fath i mi, alw s, a'i gadw yn y 35 00:01:50,420 --> 00:01:52,120 ganlyniad i alw cael llinyn. 36 00:01:52,120 --> 00:01:56,060 Ond yn awr yn yr wythnosau diwethaf, byddai gennyf gwneud rhywfaint yn tediously helo,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> Ac mewn geiriau eraill, yr ydym wedi gweld hyn enghraifft criw o weithiau, ac mae'n 39 00:02:02,570 --> 00:02:05,280 enghraifft ddibwys oherwydd bod dim ond un llinell o god felly mae'n wirioneddol nid 40 00:02:05,280 --> 00:02:06,860 beth mawr i gadw deipio eto. 41 00:02:06,860 --> 00:02:09,990 Ond mae'n debyg fod y llinell o god mewn gwirionedd yn dod yn faich, ac 42 00:02:09,990 --> 00:02:12,900 nid yw'n un llinell o god ond mae'n 10 llinellau o god cwpl o wythnosau o hyn, 43 00:02:12,900 --> 00:02:15,190 a ydych ond yn mynd yn flinedig o gopïo a gludo neu 44 00:02:15,190 --> 00:02:17,180 aildeipio yr un cod. 45 00:02:17,180 --> 00:02:22,100 Oni fyddai'n braf yn hytrach na gwneud printf helo,% s ac yn y blaen, 46 00:02:22,100 --> 00:02:26,500 ni fyddai'n braf pe bai dim ond swyddogaeth a alwodd ei enw print that 47 00:02:26,500 --> 00:02:27,560 yn cymryd ddadl - 48 00:02:27,560 --> 00:02:29,120 mewn geiriau eraill, mae'n cymryd mewnbwn - 49 00:02:29,120 --> 00:02:30,620 ac yna colon. 50 00:02:30,620 --> 00:02:33,240 Felly y swyddogaeth honno, oni fyddai yn cael ei 'n glws os oedd yn bodoli? 51 00:02:33,240 --> 00:02:36,690 Yna ni fyddai rhaid i mi boeni am beth printf yw, pa% s ac mae pob un 52 00:02:36,690 --> 00:02:39,400 cymhlethdodau hyn sy'n nid bob un sy'n ddiddorol. 53 00:02:39,400 --> 00:02:40,570 Maent yn ddefnyddiol. 54 00:02:40,570 --> 00:02:44,700 >> Enw print Felly, yn anffodus, nid oedd yn dyfeisio tua 40 mlynedd a mwy yn ôl. 55 00:02:44,700 --> 00:02:45,980 Nid oes unrhyw un yn meddwl i ysgrifennu iddo. 56 00:02:45,980 --> 00:02:48,300 Ond dyna harddwch o gael iaith raglennu, yn union fel yn 57 00:02:48,300 --> 00:02:52,930 Scratch gallwch ddiffinio blociau arfer, felly yn C ac mae'r rhan fwyaf unrhyw iaith, gall eich 58 00:02:52,930 --> 00:02:57,260 ddiffinio eich swyddogaeth eich hun, gall ydych yn diffinio eich swyddogaethau eu hunain. 59 00:02:57,260 --> 00:03:01,710 Felly, er ein bod yn cael bennaf gan yn awtomatig ar gyfer rhad ac am ddim, gallwn ddatgan 60 00:03:01,710 --> 00:03:02,730 ein swyddogaethau hunain. 61 00:03:02,730 --> 00:03:05,670 >> Felly, yr wyf i'n mynd i wneud rhywfaint o le yma atodol, ac yr wyf i'n mynd i ddatgan fy 62 00:03:05,670 --> 00:03:08,210 swyddogaeth ei hun sy'n mynd i edrych braidd yn rhyfedd i ddechrau ond byddwn yn dod 63 00:03:08,210 --> 00:03:09,400 yn ôl at hyn cyn hir. 64 00:03:09,400 --> 00:03:12,310 Rydw i'n mynd i ddweud ddi-rym, a thrwy hynny nodi swyddogaeth hon yn 65 00:03:12,310 --> 00:03:16,040 rhywbeth, yn cael sgîl-effaith, ond mae'n nid yw'n dychwelyd rhywbeth i mi yn y 66 00:03:16,040 --> 00:03:18,810 un ffordd ag y cael int neu cael llinyn ei hun yn ei wneud. 67 00:03:18,810 --> 00:03:22,450 Ac yr wyf i'n mynd i roi swyddogaeth hon yn enwi enw print, ac yr wyf i'n mynd i 68 00:03:22,450 --> 00:03:26,470 yn nodi bod y boi yn mynd i gymryd llinyn, ac rwy'n mynd i ofyn i'r 69 00:03:26,470 --> 00:03:27,600 enw llinyn. 70 00:03:27,600 --> 00:03:32,100 Y gallwn ei alw'n unrhyw beth yr wyf eisiau, ond yr wyf yn am fy cod i fod yn hunan-dogfennu. 71 00:03:32,100 --> 00:03:34,770 Mewn geiriau eraill, os oes un ohonoch yn cael agor y ffeil a'i darllen, gallech 72 00:03:34,770 --> 00:03:39,020 math o casglu o'r enw y mewnbwn pa rôl y mae'n fod i chwarae. 73 00:03:39,020 --> 00:03:42,270 >> Ac yn awr is na hynny, yr wyf i'n mynd i agor cyrliog Brace ac yn cau cyrliog Brace, 74 00:03:42,270 --> 00:03:47,140 ac felly rwyf wedi sylwi dilyn yr un patrwm ar linellau bedwar drwy saith fel 75 00:03:47,140 --> 00:03:51,622 Rydw i wedi bod yn dilyn am wythnos a da awr rhwng, dyweder, llinellau naw a 76 00:03:51,622 --> 00:03:53,400 14 sy'n cyfansoddi prif. 77 00:03:53,400 --> 00:03:56,160 Mewn geiriau eraill, argraffu enw yn swyddogaeth arall. 78 00:03:56,160 --> 00:03:58,990 Nawr, nid yw'r compiler yn mynd i wybod i alw y peth hyn yn awtomatig 79 00:03:58,990 --> 00:04:02,670 oherwydd fy mod yn llythrennol dim ond ei ddyfeisio, ond bydd yn dal i fod yn gwybod i alw brif 80 00:04:02,670 --> 00:04:08,710 yn awtomatig, ac yna, wrth gwrs, yn llinell 13, yr wyf yn galw fy swyddogaeth ei hun. 81 00:04:08,710 --> 00:04:12,805 Ac am fy mod i wedi datgan mai swyddogaeth i fyny ar-lein bedwar prif cyn, 82 00:04:12,805 --> 00:04:16,579 hyn yn mynd i addysgu'r compiler pa dyfyniad, unquote, "Enw print" 83 00:04:16,579 --> 00:04:18,140 yn ei olygu a beth y dylai ei wneud. 84 00:04:18,140 --> 00:04:22,700 Felly rwy'n fath o roi yn arferiad newydd bloc yng nghyd-destun, dyweder, Scratch. 85 00:04:22,700 --> 00:04:27,240 >> Felly yma, gallaf roi hynny gyffredin iawn neu batrwm rheolaidd o god i gadw 86 00:04:27,240 --> 00:04:32,300 ysgrifennu yn y dosbarth, printf % S helo,% s / n ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 beth ddylwn i ei eisiau rhoi yma? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 Felly, yr wyf eisiau rhoi enw yn y cyd-destun hwn. 91 00:04:41,420 --> 00:04:43,440 Felly, yn sylwi ar dipyn o ddeuoliaeth yma. 92 00:04:43,440 --> 00:04:47,680 Oherwydd yr wyf yn datgan fy swyddogaeth ei hun ac yr wyf braidd wedi galw fympwyol 93 00:04:47,680 --> 00:04:50,880 ei argraffu enw, ac oherwydd fy mod i wedi a bennir yn y cromfachau bod hyn yn 94 00:04:50,880 --> 00:04:55,035 swyddogaeth yn cymryd un ddadl, y math o sydd yn llinyn - felly mae'n air 95 00:04:55,035 --> 00:05:00,010 neu ymadrodd neu rywbeth fel 'na - a Rwy'n galw yr enw ddadl, bod 96 00:05:00,010 --> 00:05:04,770 yw'r unig newidyn sy'n sydd yn cwmpas, fel petai, yn enw. 97 00:05:04,770 --> 00:05:07,780 >> S yn unig yn bodoli rhwng yr hyn dau braces cyrliog, wrth gwrs? 98 00:05:07,780 --> 00:05:12,990 Wel mewn gwirionedd, yn union fel llinell 10 drwy 14, felly yn union fel ar ddydd Llun y gall peidio â defnyddio 99 00:05:12,990 --> 00:05:17,650 S, ond yr hyn y gallaf ei wneud yw pasio S yn Enw print. 100 00:05:17,650 --> 00:05:21,030 Printiwch yr enw ond fel y digwydd i roi yn alias, yn gyfystyr, llysenw, 101 00:05:21,030 --> 00:05:24,400 alw yn enw, ac yn awr ei ddefnyddio yn y llinell hon. 102 00:05:24,400 --> 00:05:26,840 Felly nawr gadewch i mi achub y, chwyddo allan. 103 00:05:26,840 --> 00:05:31,250 >> Gadewch i mi fynd yn ei flaen ac yn gwneud helo. 104 00:05:31,250 --> 00:05:32,400 Yn edrych yn dda. 105 00:05:32,400 --> 00:05:36,110 Nid oedd boeri allan unrhyw wallau. . / Helo Enter. 106 00:05:36,110 --> 00:05:37,020 Beth yw fy enw? 107 00:05:37,020 --> 00:05:38,060 Dafydd. 108 00:05:38,060 --> 00:05:39,270 A helo David. 109 00:05:39,270 --> 00:05:41,820 Felly nid bob un sy'n gyffrous, ond meddyliwch yn awr. 110 00:05:41,820 --> 00:05:44,310 Yr ydych yn awr yn cael yr un cynhwysyn fel y gwnaethom yn Scratch i 111 00:05:44,310 --> 00:05:45,420 gwneud ein swyddogaethau eu hunain. 112 00:05:45,420 --> 00:05:46,770 >> Ond mae tipyn o gotcha. 113 00:05:46,770 --> 00:05:50,620 Gadewch i ni dybio nad oeddwn wedi meddwl o ddifrif hyn drwodd a Fi 'n weithredol heb 114 00:05:50,620 --> 00:05:54,250 wir yn meddwl am y peth ysgrifennodd swyddogaeth honno i lawr yma. 115 00:05:54,250 --> 00:05:55,420 Teimlo gwbl resymol. 116 00:05:55,420 --> 00:05:58,440 Yn Scratch nid oes unrhyw syniad o leoliad yn eich sgriptiau. 117 00:05:58,440 --> 00:06:00,670 Gallech roi un i fyny yma, un i fyny yma, un i fyny yma, a gallai fod yn dechrau 118 00:06:00,670 --> 00:06:03,310 i edrych ychydig yn anniben os nad ydych yn ei osod allan yn daclus, ond nid yw'n 119 00:06:03,310 --> 00:06:05,910 ots ble gorfforol y sgriptiau Roedd ar y sgrin. 120 00:06:05,910 --> 00:06:09,660 Yn anffodus, yn C - ac mae hyn yn wahanol i ieithoedd megis Java a Python 121 00:06:09,660 --> 00:06:13,600 ac eraill y gallech fod yn gyfarwydd gyda - yn anffodus yn C, er yn 122 00:06:13,600 --> 00:06:15,830 mater oherwydd bod gwylio beth sy'n mynd i ddigwydd nawr. 123 00:06:15,830 --> 00:06:19,010 >> Mae'r swyddogaeth rhagosodedig sy'n mynd i weithredu yw, wrth gwrs, y prif. 124 00:06:19,010 --> 00:06:22,290 Main yn mynd i alw enw print ar wyth llinell, ond yn anffodus, mae'r 125 00:06:22,290 --> 00:06:26,660 Ni fydd hyd yn oed yn gwybod compiler enw hwnnw print yn bodoli hyd nes ei fod yn mynd i linell 11, 126 00:06:26,660 --> 00:06:28,520 sydd yn anffodus yn yn mynd i fod yn rhy hwyr. 127 00:06:28,520 --> 00:06:30,660 Felly, gadewch i ni yn gwneud helo. 128 00:06:30,660 --> 00:06:32,950 Ac yn awr damn dau gamgymeriad, a gynhyrchir. 129 00:06:32,950 --> 00:06:36,050 Felly nawr gadewch i mi sgrolio i fyny at yr union yn gyntaf, fel y dylem bob amser ei wneud, a 130 00:06:36,050 --> 00:06:39,560 sylwi ei fod yn gweiddi arna i, Ystyr "datganiad ymhlyg o swyddogaeth 131 00:06:39,560 --> 00:06:40,540 enw argraffu. " 132 00:06:40,540 --> 00:06:43,860 >> Felly, rydym wedi gweld y neges hon o'r blaen, datganiad ymhlyg swyddogaeth. 133 00:06:43,860 --> 00:06:48,080 Pan fyddwn wedi gweld y math o wall? 134 00:06:48,080 --> 00:06:49,180 Pan nad oeddwn yn cynnwys y llyfrgell. 135 00:06:49,180 --> 00:06:53,470 Dwi wedi anghofio cs50.h a byddwn yn cael yelled ar gyfer cael llinyn neu cael int. 136 00:06:53,470 --> 00:06:56,880 Ond yn yr achos hwn, mae'r print swyddogaeth Nid enw yw mewn llyfrgell, dde? 137 00:06:56,880 --> 00:07:00,230 Mae'n llythrennol yn y ffeil hon, felly yr hyn sy'n wirioneddol y broblem? 138 00:07:00,230 --> 00:07:04,660 >> Wel, yn anffodus yn C, mae'n cymryd i chi mor anhygoel o llythrennol, os ydych yn 139 00:07:04,660 --> 00:07:08,640 am gael swyddogaeth alwodd ei enw argraffu i bodoli, naill ai yn rhaid i chi weithredu 140 00:07:08,640 --> 00:07:11,940 swyddogaeth honno ar frig eich Cod fel ei bod yn hygyrch i ostwng 141 00:07:11,940 --> 00:07:15,070 swyddogaethau, ond dweud y gwir, sy'n dod flêr yn gyflym iawn. 142 00:07:15,070 --> 00:07:18,160 Yn bersonol, rwy'n hoffi rhoi phrif gyntaf oherwydd wedyn yw'n glir beth mae hyn yn iawn 143 00:07:18,160 --> 00:07:19,890 rhaglen yn ei wneud ar yr olwg gyntaf. 144 00:07:19,890 --> 00:07:23,290 Ac yn ogystal, gallwch fynd i mewn i gornel 'n annaearol achosion lle os yw x eisiau i alw 145 00:07:23,290 --> 00:07:27,530 Efallai y ond y galw x, 'ch jyst gorfforol ni all mewn gwirionedd yn rhoi un 146 00:07:27,530 --> 00:07:28,540 uwchben y llall. 147 00:07:28,540 --> 00:07:31,230 >> Ond mae'n troi allan yn C, gallwn ddatrys y syml iawn. 148 00:07:31,230 --> 00:07:34,010 Rydw i'n mynd i roi ychydig o ofod i fyny yma, a Im 'jyst yn mynd i 149 00:07:34,010 --> 00:07:38,170 preemptively, er braidd yn redundantly, mynd i ddysgu y 150 00:07:38,170 --> 00:07:42,320 compiler bod yn bodoli swyddogaeth alwodd ei enw print, mae'n cymryd llinyn, 151 00:07:42,320 --> 00:07:46,330 ac yr wyf i'n mynd i alw yn enwi'r hanner colon. 152 00:07:46,330 --> 00:07:50,220 >> Felly, mae hyn bellach yn unol pedwar, yr ydym yn Nid yw wedi ei weld o'r blaen, yn ddatganiad 153 00:07:50,220 --> 00:07:53,940 o enw print swyddogaeth, ond dim ond addewid y swyddogaeth hon bydd 154 00:07:53,940 --> 00:07:56,620 yn y pen draw yn cael ei diffinio, yn y pen draw cael eu gweithredu. 155 00:07:56,620 --> 00:08:00,180 Mae hyn bellach gallaf adael ei ben ei hun oherwydd yn awr mae hyn yw'r diffiniad, y 156 00:08:00,180 --> 00:08:04,090 gweithredu, math o y filltir olaf o'r broses o hwn ar waith 157 00:08:04,090 --> 00:08:05,130 swyddogaeth benodol. 158 00:08:05,130 --> 00:08:08,450 Felly, dweud y gwir, mae'n dwp, mae'n blino, ond mae hyn yw'r ffordd C yw, ac mae'n 159 00:08:08,450 --> 00:08:12,050 oherwydd ei fod yn mynd â chi yn llythrennol iawn ac, fel dweud y gwir dylai cyfrifiadur, 160 00:08:12,050 --> 00:08:16,020 yn unig yn union yr hyn a ddywedwch i gwneud, ac er mwyn archebu yn bwysig. 161 00:08:16,020 --> 00:08:18,940 >> Felly cadwch hynny mewn cof, ac unwaith eto, yn dechrau sylwi ar y digwydd eto o batrymau. 162 00:08:18,940 --> 00:08:21,850 Odds yn byddwch, os nad ydych wedi eisoes, yn dechrau dod ar draws negeseuon 163 00:08:21,850 --> 00:08:24,700 fel hyn sy'n ar yr olwg gyntaf yn ymddangos gwbl cryptig, ond os byddwch yn dechrau 164 00:08:24,700 --> 00:08:29,000 i chwilio am y geiriau allweddol fel Ystyr "datganiad ymhlyg," sôn am 165 00:08:29,000 --> 00:08:32,380 swyddogaeth yn yr achos hwn - a dweud y gwir, yr ydych yn weithiau hyd yn oed yn cael ychydig o gwyrdd 166 00:08:32,380 --> 00:08:35,010 symbol moron sy'n dweud wrthych ble Mae'n debyg y cwestiwn yw - 167 00:08:35,010 --> 00:08:40,980 gallwch ddechrau i weithio eich ffordd drwy'r eto negeseuon gwall anweledig. 168 00:08:40,980 --> 00:08:45,860 Unrhyw gwestiynau ar sut i ysgrifennu eich swyddogaeth ei hun yn y modd hwn? 169 00:08:45,860 --> 00:08:47,540 >> Gadewch i ni wneud rhywbeth mae hynny'n ychydig yn fwy cymhellol. 170 00:08:47,540 --> 00:08:51,760 Yn hytrach na dim ond gwneud rhywbeth sydd sgîl-effaith o argraffu, gadewch i mi fynd 171 00:08:51,760 --> 00:08:55,340 flaen ac arbed ffeil newydd, ac rydym yn chi helpu galw positive.c hwn, er ei fod yn 172 00:08:55,340 --> 00:08:57,600 mynd i fod ychydig yn wahanol yn erbyn y tro diwethaf. 173 00:08:57,600 --> 00:09:01,910 Ac yn yr amser hwn, rwyf am i ail-weithredu enghraifft positive.C tro diwethaf, sy'n 174 00:09:01,910 --> 00:09:04,430 yn gorfodi'r defnyddiwr i roi mi gyfanrif positif. 175 00:09:04,430 --> 00:09:07,280 Ond roedd rhaid i mi ddefnyddio cael int tro diwethaf. 176 00:09:07,280 --> 00:09:10,780 Oni fyddai wedi bod yn braf pe bai swyddogaeth o'r enw gael int cadarnhaol 177 00:09:10,780 --> 00:09:13,610 y gallai Fi jyst allanoli hwn darn o swyddogaethau i? 178 00:09:13,610 --> 00:09:16,480 Felly y gwahaniaeth yma yw gallwn eich gweithredu yn cael int cadarnhaol, ond yn wahanol 179 00:09:16,480 --> 00:09:20,330 enw print a gafodd sgîl-effaith - mae'n nid oedd yn dychwelyd rhywbeth i mi fel 180 00:09:20,330 --> 00:09:21,710 nifer neu linyn - 181 00:09:21,710 --> 00:09:25,510 cael int cadarnhaol yw, wrth gwrs, yn mynd i dychwelyd, gobeithio, yn int cadarnhaol. 182 00:09:25,510 --> 00:09:26,170 >> Felly, gadewch i ni wneud hyn. 183 00:09:26,170 --> 00:09:30,840 Cynnwys cs50.h, Cynnwys safon io.h. 184 00:09:30,840 --> 00:09:33,520 Int brif ddi-rym. 185 00:09:33,520 --> 00:09:42,160 Ac yn awr yma, yr wyf i'n mynd i fynd yn ei flaen a gadewch i ni ddweud int, ei alw n, yn hafal i 186 00:09:42,160 --> 00:09:44,270 cael int cadarnhaol. 187 00:09:44,270 --> 00:09:49,080 Ac yn union fel cael int yn bodoli eisoes oherwydd bod y staff a'i hysgrifennodd, dw i'n mynd 188 00:09:49,080 --> 00:09:53,950 i gymryd yn ganiataol am y tro bod yn cael int cadarnhaol yn bodoli, ac yn awr yr wyf i'n mynd 189 00:09:53,950 --> 00:09:57,730 i fynd yn ei flaen a dweud printf, diolch am y% i / n ", n. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> Felly, yn awr os wyf yn llunio rhaglen hon, beth yn mynd i ddigwydd yn fy terfynell 192 00:10:07,770 --> 00:10:09,075 ffenestr ar waelod y sgrin? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 Rydw i'n mynd yn ôl pob tebyg i gael y yr un camgymeriad ag o'r blaen. 195 00:10:13,900 --> 00:10:14,570 Felly gadewch i ni roi cynnig ar hyn. 196 00:10:14,570 --> 00:10:16,450 Gwnewch yn gadarnhaol. 197 00:10:16,450 --> 00:10:19,900 Ac eto, datganiad ymhlyg swyddogaeth, yn cael int cadarnhaol. 198 00:10:19,900 --> 00:10:21,970 Felly, gallwn ddatrys hyn mewn cwpl o ffyrdd. 199 00:10:21,970 --> 00:10:27,310 Rydw i'n mynd i gadw'n syml a dim ond rhoi fy datganiad i fyny yma a chael 200 00:10:27,310 --> 00:10:28,120 int cadarnhaol. 201 00:10:28,120 --> 00:10:29,720 Fi angen 'r llofnod fel y'u gelwir. 202 00:10:29,720 --> 00:10:32,410 Mae'r llofnod yn unig yn cyfeirio i estheteg y 203 00:10:32,410 --> 00:10:34,090 llinell gyntaf y rhaglen. 204 00:10:34,090 --> 00:10:37,420 Felly, beth ddylai gael bositif int dychwelyd? 205 00:10:37,420 --> 00:10:37,970 >> Felly mae int. 206 00:10:37,970 --> 00:10:41,540 Yr wyf yn golygu yn ddelfrydol, byddai'n dychwelyd rhywbeth fel int cadarnhaol, ond bod 207 00:10:41,540 --> 00:10:42,160 yn bodoli. 208 00:10:42,160 --> 00:10:45,280 Nid ydym wedi gweld bod ymhlith ein data math, felly mae'n rhaid i ni ddelio â'r 209 00:10:45,280 --> 00:10:47,170 ffaith ein bod yn cael ychydig iawn o mathau o ddata i weithio gyda nhw. 210 00:10:47,170 --> 00:10:50,360 Ond gallwn dychwelyd int a dim ond ymddiried y bydd yn gadarnhaol. 211 00:10:50,360 --> 00:10:52,690 Mae'n mynd i gael ei alw cael int cadarnhaol. 212 00:10:52,690 --> 00:10:55,122 >> Ac yn awr beth am ei ddadleuon? 213 00:10:55,122 --> 00:10:56,440 A yw'n cymryd unrhyw fewnbwn? 214 00:10:56,440 --> 00:10:58,280 Oes angen unrhyw fewnbwn? 215 00:10:58,280 --> 00:11:00,900 Felly nid oes angen i wybod unrhyw beth ymlaen llaw. 216 00:11:00,900 --> 00:11:03,220 Get Nid yw'r llinyn wedi ei wneud, gael nid int yn ei wneud. 217 00:11:03,220 --> 00:11:06,430 Printf wneud - mae angen i gael rhywfaint o mewnbwn pasio i mewn iddo - ac enw'r print 218 00:11:06,430 --> 00:11:09,020 angen rhywfaint o fewnbwn, ond yn cael Nid int cadarnhaol yn ei wneud. 219 00:11:09,020 --> 00:11:11,530 Felly, yr wyf i'n mynd i benodol dweud wrth y gwagle compiler. 220 00:11:11,530 --> 00:11:13,470 Ddi-rym yw absenoldeb unrhyw beth arall. 221 00:11:13,470 --> 00:11:17,990 Felly, ddi-rym yn golygu dim byd yn mynd y tu mewn y cromfachau hynny, hanner colon. 222 00:11:17,990 --> 00:11:20,840 >> Ac yn awr ar waelod fy ffeil - a unwaith eto, Im 'jyst yn bod yn garedig o rhefrol 223 00:11:20,840 --> 00:11:23,640 yma yn rhoi'r prif ar y brig, sy'n yn arfer dda oherwydd y modd hwn, 224 00:11:23,640 --> 00:11:26,220 unrhyw adeg ydych chi neu rywun arall agor eich ffeil, y 225 00:11:26,220 --> 00:11:27,400 swyddogaeth yn iawn yno. 226 00:11:27,400 --> 00:11:29,660 Gallwch plymio i mewn o un sgwâr. 227 00:11:29,660 --> 00:11:34,190 Felly, yn awr yr wyf i'n mynd i ddyblygu'r hyn, cael ddi-rym int cadarnhaol, ond dydw i ddim 228 00:11:34,190 --> 00:11:35,430 mynd i daro hanner colon awr. 229 00:11:35,430 --> 00:11:38,280 Rydw i'n mynd i agor braces cyrliog, ac yn awr mae angen i mi fenthyg 230 00:11:38,280 --> 00:11:39,700 rhai syniadau o ddydd Llun. 231 00:11:39,700 --> 00:11:44,450 >> Felly, fel yr ydych yn cofio, rydym yn gwneud rhywbeth yn hoffi gwneud y canlynol wrth 232 00:11:44,450 --> 00:11:45,830 rhywbeth yn wir. 233 00:11:45,830 --> 00:11:46,630 A beth wnaeth i ei wneud? 234 00:11:46,630 --> 00:11:51,540 I ddim yn rhywbeth fel rhoi mi cyfanrif positif, 235 00:11:51,540 --> 00:11:52,430 ychydig bach o brydlon. 236 00:11:52,430 --> 00:11:53,540 Gallwn ddefnyddio unrhyw eiriau rwyf eisiau. 237 00:11:53,540 --> 00:11:54,960 Ac yna Roeddwn i'n arfer beth? 238 00:11:54,960 --> 00:11:59,530 Int n hafal cael int, unrhyw ddadleuon iddo. 239 00:11:59,530 --> 00:12:00,550 >> Ac yn sylwi ar y gwahaniaeth. 240 00:12:00,550 --> 00:12:04,680 Pan fyddwch yn galw swyddogaeth, pan fyddwch yn defnyddio swyddogaeth, nad ydych yn rhoi yn ddi-rym. 241 00:12:04,680 --> 00:12:08,570 Ydych ond yn gwneud hynny wrth datgan swyddogaeth, addysgu y compiler hyn 242 00:12:08,570 --> 00:12:09,780 dylai ddisgwyl. 243 00:12:09,780 --> 00:12:11,650 Felly nid oes angen i chi roi ddi-rym yno eich hun. 244 00:12:11,650 --> 00:12:12,940 >> Ac yn awr beth oedd fy nghyflwr? 245 00:12:12,940 --> 00:12:19,670 Wel, nid n yn hafal i cadarnhaol, ond dim ond ffug-god. 246 00:12:19,670 --> 00:12:22,530 Felly, sut ydw i'n mynegi hyn yn fwy lân? 247 00:12:22,530 --> 00:12:24,090 Felly, yn llai na neu'n hafal i sero. 248 00:12:24,090 --> 00:12:26,250 Felly, unwaith eto, sylwch y gallwch ei wneud llai na neu'n hafal i. 249 00:12:26,250 --> 00:12:28,100 Hyd yn oed er ei fod yn ddau ar wahân symbolau, gallwch wneud hynny ar 250 00:12:28,100 --> 00:12:29,350 eich bysellfwrdd fel y cyfryw. 251 00:12:29,350 --> 00:12:33,950 >> Ond mae dal i fod yn bug sy'n I sgriwio i fyny y tro diwethaf hefyd. 252 00:12:33,950 --> 00:12:36,950 Rhaid i mi ddatgan - 253 00:12:36,950 --> 00:12:37,460 yn union. 254 00:12:37,460 --> 00:12:39,640 Rhaid i mi ddatgan n y tu allan i y ddolen. 255 00:12:39,640 --> 00:12:44,180 Felly mae angen i mi roi n fyny yma, ac nid wyf yn eisiau ail-ddatgan i mewn yma 256 00:12:44,180 --> 00:12:46,480 rhag i mi gael newidyn newydd. 257 00:12:46,480 --> 00:12:48,860 Fi jyst eisiau rhoi gwerth ariannol yma. 258 00:12:48,860 --> 00:12:54,320 >> Ac yn awr Dydw i ddim yn hollol wneud yma. 259 00:12:54,320 --> 00:12:57,290 Gadewch i mi gael y blaen fy hun ac esgus dwi'n ei wneud. 260 00:12:57,290 --> 00:13:01,220 Gwnewch yn gadarnhaol, ac yn awr mae 'na gwall newydd. 261 00:13:01,220 --> 00:13:04,550 Rheoli cyrraedd diwedd swyddogaeth heb fod yn ddi-rym. 262 00:13:04,550 --> 00:13:07,760 Felly neges gwall newydd, ond os ydych yn fath o canfod wahân pob un o'r geiriau, mae'n 263 00:13:07,760 --> 00:13:09,620 yn ôl pob tebyg awgrymu'r hyn sydd o'i le. 264 00:13:09,620 --> 00:13:11,240 >> Rheoli. 265 00:13:11,240 --> 00:13:14,250 Rheoli unig yn golygu i'r gorchymyn gweithrediadau mewn rhaglen. 266 00:13:14,250 --> 00:13:16,510 Mae'r cyfrifiadur sydd yn rheoli ac yn aeth rhywbeth o'i le. 267 00:13:16,510 --> 00:13:18,510 Felly, bydd yn cyrraedd y diwedd swyddogaeth heb fod yn ddi-rym. 268 00:13:18,510 --> 00:13:21,760 Pa swyddogaeth yw hi yn ôl pob golwg cyfeirio? 269 00:13:21,760 --> 00:13:24,790 Pa swyddogaeth yn ddi-rym? 270 00:13:24,790 --> 00:13:27,400 Felly, yn cael int cadarnhaol, ac ychydig ddryslyd yn y yn dda, 271 00:13:27,400 --> 00:13:29,010 mae'n fath o ddi-rym. 272 00:13:29,010 --> 00:13:33,070 Mae ganddo manyleb o ddi-rym ar gyfer ei dadleuon, ond mae ei allbwn yn mynd i 273 00:13:33,070 --> 00:13:34,540 fod o fath n. 274 00:13:34,540 --> 00:13:37,260 Felly y gair ar y chwith yw'r hyn a gelwir y math dychwelyd. 275 00:13:37,260 --> 00:13:40,320 Mae'r gair ar y tu mewn yma yw y sero neu fwy o ddadleuon 276 00:13:40,320 --> 00:13:41,970 bod swyddogaeth gymryd. 277 00:13:41,970 --> 00:13:44,060 >> Felly, beth sydd angen i mi ei wneud? 278 00:13:44,060 --> 00:13:47,650 Ar y pwynt hwn yn fy cod, llinell 21 lle yr anogwr amrantu yn awr yw, yr wyf yn 279 00:13:47,650 --> 00:13:51,430 cael int gadarnhaol y tu mewn y newidyn a elwir yn n. 280 00:13:51,430 --> 00:13:55,200 Sut ydw i'n rhoi yn ôl i brif? 281 00:13:55,200 --> 00:13:55,960 Llythrennol. 282 00:13:55,960 --> 00:13:59,320 Dychwelyd n colon. 283 00:13:59,320 --> 00:14:04,090 >> Felly ddychwelyd darn o yr un mor Colton papur gyda ateb i mi drwy ollwng 284 00:14:04,090 --> 00:14:07,020 y darn hwnnw o bapur yn y du bach blwch ar y bwrdd, i wneud hynny yn 285 00:14:07,020 --> 00:14:10,100 cod, yn llythrennol dim ond ysgrifennu, yn dychwelyd n, ac mae fel pe Colton oedd 286 00:14:10,100 --> 00:14:12,140 trosglwyddo rhywbeth yn ôl gorfforol mi. 287 00:14:12,140 --> 00:14:15,870 Yn yr achos hwn, yr hyn sy'n digwydd yw cael int cadarnhaol yn mynd i'w roi yn ôl 288 00:14:15,870 --> 00:14:19,220 beth sydd yn ôl pob tebyg yn gadarnhaol cyfanrif i bwy? 289 00:14:19,220 --> 00:14:21,380 Lle mae hynny'n werth yn y pen draw? 290 00:14:21,380 --> 00:14:29,080 Mae hynny'n dod i ben i fyny mewn amrywiol hwn, n, ac Yna, byddwn yn symud ymlaen gyda llinell naw. 291 00:14:29,080 --> 00:14:31,920 >> Felly, mewn geiriau eraill, yn nhrefn gweithrediadau, y rhaglen hon yn dechrau 292 00:14:31,920 --> 00:14:34,430 gweithredu, ac mae'r compiler sylweddoli, oh, ydych am i'r llyfrgell? 293 00:14:34,430 --> 00:14:36,310 Gadewch i mi fynd yn cydio beth bynnag sydd y tu mewn i'r. 294 00:14:36,310 --> 00:14:37,750 O, ydych am i'r llyfrgell IO safonol? 295 00:14:37,750 --> 00:14:39,660 Gadewch i mi fynd yn cydio beth bynnag sydd y tu mewn i'r. 296 00:14:39,660 --> 00:14:44,510 Beth mae'r compiler dweud iddo ef ei hun pan fydd yn cyrraedd pedair llinell? 297 00:14:44,510 --> 00:14:47,980 O, chi addo i weithredu'r swyddogaeth a elwir yn cael gadarnhaol, ond 298 00:14:47,980 --> 00:14:50,820 byddwn yn mynd yn ôl at hynny yn ddiweddarach, rhywbeth ar hyd y llinellau hynny. 299 00:14:50,820 --> 00:14:53,450 >> Int prif gwag yn unig yn golygu dyma yn ddigon dewr o fy rhaglen. 300 00:14:53,450 --> 00:14:54,990 Llinell saith yn unig yw Brace cyrliog. 301 00:14:54,990 --> 00:14:59,540 Llinell wyth yn ei ddweud ar y chwith, rhowch mi 32 darnau ar gyfer cyfanrif, alw yn n. 302 00:14:59,540 --> 00:15:02,160 Ar yr ochr dde, mae'n ddweud cael int cadarnhaol. 303 00:15:02,160 --> 00:15:07,120 Nawr gadewch i oedi y stori honno oherwydd erbyn hyn Nid wyf yn dal i symud fy cyrchwr i lawr. 304 00:15:07,120 --> 00:15:11,720 Mae fy cyrchwr yn awr yn mynd i lawr yma oherwydd awr yn cael int cadarnhaol executes. 305 00:15:11,720 --> 00:15:13,100 Int n cael ei ddatgan. 306 00:15:13,100 --> 00:15:14,040 Wneud y canlynol. 307 00:15:14,040 --> 00:15:16,090 Printf rhoi cyfanrif positif mi. 308 00:15:16,090 --> 00:15:19,740 >> Cael int gan y defnyddiwr, storio mewn n, ac efallai gwneud hyn dro ar ôl tro. 309 00:15:19,740 --> 00:15:23,010 Mae'r ddolen yn golygu y gallai cod hwn gweithredu i fyny ac i lawr fel hyn eto 310 00:15:23,010 --> 00:15:25,810 ac unwaith eto, ond pan fydd y defnyddiwr yn olaf cydweithio ac yn rhoi i mi cadarnhaol 311 00:15:25,810 --> 00:15:31,750 int, yr wyf yn taro llinell 21, ar yr adeg y rhif yn cael ei drosglwyddo yn ôl, a pha un 312 00:15:31,750 --> 00:15:34,280 dylwn dynnu sylw nawr? 313 00:15:34,280 --> 00:15:35,070 Naw. 314 00:15:35,070 --> 00:15:39,010 Rheoli, fel petai, yn dychwelyd i llinell naw. 315 00:15:39,010 --> 00:15:40,650 Dyna'r llinell sy'n bellach wrth y llyw. 316 00:15:40,650 --> 00:15:43,250 >> Felly, dyna beth sydd wedi bod yn digwydd drwy'r y tro hwn o dan y cwfl, ond 317 00:15:43,250 --> 00:15:46,480 pan fyddwn wedi defnyddio swyddogaethau fel printf neu hyd yn oed yn cael llinyn bod rhywun arall 318 00:15:46,480 --> 00:15:50,600 ysgrifennodd i chi, rheolaeth yn cael ei drosglwyddo llinell cod ffwrdd i rywun arall 319 00:15:50,600 --> 00:15:51,290 wrth linell wrth linell. 320 00:15:51,290 --> 00:15:53,770 Mae'n dim ond nid oeddem yn gallu ei weld ac rydym yn Ni allai wir yn darlunio yn y 321 00:15:53,770 --> 00:15:57,620 rhaglen oherwydd ei fod mewn rhai eraill ffeil ar y ddisg galed 322 00:15:57,620 --> 00:16:00,000 unbeknownst i ni. 323 00:16:00,000 --> 00:16:02,100 Felly, gadewch i ni lunio mewn gwirionedd a rhedeg hyn yn awr. 324 00:16:02,100 --> 00:16:03,890 >> Gwnewch yn gadarnhaol. 325 00:16:03,890 --> 00:16:05,260 Llunio, mae hynny'n gynnydd. 326 00:16:05,260 --> 00:16:06,650 . / Chadarnhaol. 327 00:16:06,650 --> 00:16:08,020 Rhowch cyfanrif positif mi. 328 00:16:08,020 --> 00:16:08,800 Gadewch i ni fod yn anodd. 329 00:16:08,800 --> 00:16:10,430 Negyddol 1. 330 00:16:10,430 --> 00:16:11,360 Zero. 331 00:16:11,360 --> 00:16:13,370 Gadewch i ni roi 50. 332 00:16:13,370 --> 00:16:18,100 Diolch am y 50, ac yn y blaen rheolaeth bellach wedi dychwelyd. 333 00:16:18,100 --> 00:16:21,750 Unrhyw gwestiynau, yna, ar hynny? 334 00:16:21,750 --> 00:16:23,180 Yeah? 335 00:16:23,180 --> 00:16:25,630 >> [Anghlywadwy]. 336 00:16:25,630 --> 00:16:26,130 >> Dweud eto. 337 00:16:26,130 --> 00:16:27,860 O, cwestiwn da. 338 00:16:27,860 --> 00:16:31,100 Felly efallai y byddwch yn sylwi ar cyfochrog yma y Rwy'n fath o dorri cornel ar. 339 00:16:31,100 --> 00:16:35,420 Yn llinell 12, i ddim yn dweud, cael int cadarnhaol dychwelyd yn int, ond erbyn yr un 340 00:16:35,420 --> 00:16:39,660 rhesymeg, mae bellach yn sefyll i resymu bod yn llinell chwech, i ddim yn dweud mai prif ffurflenni 341 00:16:39,660 --> 00:16:44,040 yn int, ond yr hyn mae'n rhaid i ni byth yn cael yn unrhyw un o'n rhaglenni? 342 00:16:44,040 --> 00:16:46,470 Nid ydym erioed wedi clywed sôn am ffurflen hon gair allweddol. 343 00:16:46,470 --> 00:16:49,970 >> Felly, mae'n ymddangos bod yn C, o leiaf y fersiwn ohono ein bod yn defnyddio 344 00:16:49,970 --> 00:16:55,750 a wnaed yn 1999, yn dechnegol, mae hyn yn digwydd i chi yn awtomatig. 345 00:16:55,750 --> 00:16:59,300 Anytime ydych yn gweithredu rhaglen ac rydych gweithredu swyddogaeth o'r enw phrif, 346 00:16:59,300 --> 00:17:04,230 Bydd y swyddogaeth honno yn dychwelyd sero erbyn ddiofyn os nad ydych yn dweud fel arall, 347 00:17:04,230 --> 00:17:05,849 a dim yn unig yw confensiwn. 348 00:17:05,849 --> 00:17:09,430 Mae'r byd yn dychwelyd sero thrwy hynny sy'n dangos bod popeth yn iawn, 349 00:17:09,430 --> 00:17:13,040 ni adael effeithiol gyda phedwar biliwn o bethau posibl a allai fynd 350 00:17:13,040 --> 00:17:17,530 o'i le felly os byddwn yn dychwelyd un, sy'n efallai yn arwydd o cod sy'n golygu y 351 00:17:17,530 --> 00:17:18,310 Aeth peth anghywir. 352 00:17:18,310 --> 00:17:20,589 Gallem ddychwelyd dau, sy'n golygu Aeth y peth arall anghywir. 353 00:17:20,589 --> 00:17:23,440 Gallem ddychwelyd phedwar biliwn o, a golygu Aeth y peth arall anghywir. 354 00:17:23,440 --> 00:17:27,170 >> Ac os ydych yn awr yn meddwl am eich pen eich hun PC neu Mac, efallai y byddwch yn cofio bod 355 00:17:27,170 --> 00:17:29,610 Weithiau, byddwch yn cael neges gwall cryptig o feddalwedd eich bod yn 356 00:17:29,610 --> 00:17:32,650 defnyddio, ac weithiau mae ganddo dynol disgrifiad gyfeillgar, ond mae 357 00:17:32,650 --> 00:17:35,265 yn aml cod neu nifer ar y sgrin? 358 00:17:35,265 --> 00:17:37,800 Os nad yw hyn yn dod i'r meddwl, dim ond cadwch lygad allan amdano. 359 00:17:37,800 --> 00:17:40,790 Dyna beth yw'r rhain fel arfer codau yn cyfeirio ati. 360 00:17:40,790 --> 00:17:44,200 Maent yn cynnwys yn Microsoft Word a rhaglenni eraill, felly os ydych yn ffeilio 361 00:17:44,200 --> 00:17:48,850 adroddiad nam gyda'r cwmni, gallwch dweud wrthynt, oh, Cawn gwall rhif 45. 362 00:17:48,850 --> 00:17:51,750 Ac mae rhai rhaglennydd yn ôl yn y cwmni gallu edrych ar hynny yn ei 363 00:17:51,750 --> 00:17:54,940 cod a dweud, oh, dyna oherwydd fy mod yn gwneud haint hwn a dyna pam y defnyddiwr 364 00:17:54,940 --> 00:17:56,240 yn gweld y neges hon. 365 00:17:56,240 --> 00:17:59,490 >> Ond dweud y gwir, dim ond ychydig yn tynnu sylw ac ychydig yn ddiflas i 366 00:17:59,490 --> 00:18:02,130 dod i'r casgliad bod, o leiaf ar ein ychydig o raglenni gyntaf, felly rydym wedi 367 00:18:02,130 --> 00:18:02,970 bod yn hepgor hynny. 368 00:18:02,970 --> 00:18:07,450 Ond yr holl amser hwn bob un o'ch swyddogaethau'r prif wedi gyfrinachol oedd hyn 369 00:18:07,450 --> 00:18:11,600 llinell ychwanegu'n awtomatig i chi gan y compiler, dim ond drwy gonfensiwn i 370 00:18:11,600 --> 00:18:13,172 arbed amser i chi. 371 00:18:13,172 --> 00:18:14,620 >> [Anghlywadwy]. 372 00:18:14,620 --> 00:18:16,250 >> Nid oes angen i chi ei gynnwys yn y brif. 373 00:18:16,250 --> 00:18:16,700 Mae hynny'n iawn. 374 00:18:16,700 --> 00:18:20,260 Mae angen i chi gynnwys os oeddech yn gweithredu swyddogaeth fel hyn. 375 00:18:20,260 --> 00:18:22,850 Fel arall, y fflat swyddogaeth Ni fyddai allan yn gweithio. 376 00:18:22,850 --> 00:18:24,480 Ond yn bennaf, nid yw'n angenrheidiol. 377 00:18:24,480 --> 00:18:28,450 Mewn wythnos neu ddwy, byddwn yn dechrau cael i mewn i'r arfer unwaith y byddwn am ddechrau 378 00:18:28,450 --> 00:18:29,690 ddynodi camgymeriadau. 379 00:18:29,690 --> 00:18:32,550 Cwestiwn da iawn. 380 00:18:32,550 --> 00:18:36,880 >> Egwyl lafar mor gyflym i sôn bod dydd Gwener yma, ni fyddwn yn cael cinio 381 00:18:36,880 --> 00:18:39,980 fel y cyfryw, ond byddwn yn cael cinio gyda rhai o'r myfyrwyr a staff. 382 00:18:39,980 --> 00:18:42,940 Os hoffech chi ymuno â ni, yn teimlo rhad ac am ddim i fynd i cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 18:00 ddydd Gwener. 384 00:18:45,030 --> 00:18:47,990 Space yw, fel bob amser, yn gyfyngedig, ond byddwn ni barhau i wneud hyn ar bron 385 00:18:47,990 --> 00:18:51,420 yn wythnosol os oes lle yn dod i ben yr wythnos hon. 386 00:18:51,420 --> 00:18:56,160 >> Felly mae'r Cliffhanger yr ydym yn gadael i ffwrdd ar Oedd dydd Llun y gall llinynnau mewn gwirionedd 387 00:18:56,160 --> 00:19:00,520 yn cael ei fynegeio i mewn, a dim ond yn golygu eich Gellir ei gael ar y cymeriad cyntaf, 388 00:19:00,520 --> 00:19:03,770 ail nod, y trydydd cymeriad ac yn y blaen, oherwydd eich bod yn gallu 389 00:19:03,770 --> 00:19:07,860 meddwl yn effeithiol o gyfres, fel helo, fel yn yr achos hwn pump 390 00:19:07,860 --> 00:19:09,670 llythyrau tu mewn blychau. 391 00:19:09,670 --> 00:19:13,370 A gallwch gael ym mhob un o'r rheiny blychau â'r hyn chystrawen wnaethom 392 00:19:13,370 --> 00:19:15,230 cyflwyno ar ddydd Llun? 393 00:19:15,230 --> 00:19:16,760 Mae'r rhai cromfachau sgwâr ar eich bysellfwrdd. 394 00:19:16,760 --> 00:19:18,980 Mai dim ond yn golygu mynd i leoliad sero. 395 00:19:18,980 --> 00:19:22,840 >> Rydym yn dechrau cyfrif ar sero, felly braced sero arwydd h, braced un 396 00:19:22,840 --> 00:19:25,170 arwydd e, ac yn y blaen. 397 00:19:25,170 --> 00:19:28,490 Ac felly drwy'r amser pan fyddwn wedi bod yn ddefnyddio llinynnau a theipio i mewn "helo" 398 00:19:28,490 --> 00:19:31,250 a "byd" a phethau eraill ar y sgrin, mae wedi bod yn ei storio 399 00:19:31,250 --> 00:19:32,820 mewn blychau fel hyn. 400 00:19:32,820 --> 00:19:33,370 Ac yn cymryd dyfalu. 401 00:19:33,370 --> 00:19:37,470 Beth mae pob blwch yn cynrychioli gorfforol tu mewn eich cyfrifiadur? 402 00:19:37,470 --> 00:19:38,250 >> [Anghlywadwy]. 403 00:19:38,250 --> 00:19:39,150 >> Mae'n ddrwg gennym? 404 00:19:39,150 --> 00:19:39,580 >> Cymeriadau. 405 00:19:39,580 --> 00:19:44,760 >> Felly gymeriad, yn sicr yn achos o linynnau, a chymeriad yn unig 406 00:19:44,760 --> 00:19:46,800 wyth o ddarnau neu un beit. 407 00:19:46,800 --> 00:19:49,550 Felly, mae'n debyg eich bod o leiaf yn fras gyfarwydd â'r ffaith bod eich 408 00:19:49,550 --> 00:19:50,500 Mae cof cyfrifiadur. 409 00:19:50,500 --> 00:19:52,110 Mae ganddo ddau fath o gof o leiaf. 410 00:19:52,110 --> 00:19:54,810 Mae un yn y disg caled lle rydych yn arbed pethau yn barhaol, a dyna 411 00:19:54,810 --> 00:19:57,400 fel arfer yn fawr er mwyn i chi gael ffilmiau a cherddoriaeth ac yn y blaen. 412 00:19:57,400 --> 00:20:04,010 >> Yna mae gennych fath arall o gof enw RAM, R-A-M, Mynediad ar hap 413 00:20:04,010 --> 00:20:07,510 Cof, a dyma'r math o gof sy'n cael ei ddefnyddio pan fydd eich cyfrifiadur yn 414 00:20:07,510 --> 00:20:11,520 rhedeg, ond os byddwch yn colli pŵer neu eich yn marw batri, unrhyw beth sy'n cael ei storio 415 00:20:11,520 --> 00:20:15,300 yn RAM yn diflannu os byddwch yn colli pŵer yn gyfan gwbl gan nad yw'n 416 00:20:15,300 --> 00:20:16,060 parhaus. 417 00:20:16,060 --> 00:20:19,120 Mae gennych fel arfer, y dyddiau hyn, a gig ohono, dau gigs, efallai mwy. 418 00:20:19,120 --> 00:20:23,490 Ac y upside o RAM yw ei fod yn llawer llawer, llawer cyflymach na disgiau caled 419 00:20:23,490 --> 00:20:27,390 neu hyd yn oed cyflwr solet gyrru y dyddiau hyn, ond mae'n nodweddiadol yn fwy drud felly 420 00:20:27,390 --> 00:20:28,480 gennych lai ohono. 421 00:20:28,480 --> 00:20:32,400 >> Felly sgwrs heddiw yn cyfeirio mewn gwirionedd i RAM, y math hwnnw o cof sy'n 422 00:20:32,400 --> 00:20:35,270 bodoli yn unig tra mae pŵer yn cael eu bwydo i mewn i'ch cyfrifiadur. 423 00:20:35,270 --> 00:20:40,530 Felly, pan fyddwch yn teipio yn H-E-L-L-O, Rhowch ar y bysellfwrdd, mae H yn mynd mewn un 424 00:20:40,530 --> 00:20:44,550 beit o RAM, E yn mynd yn beit arall o RAM, fel y mae 425 00:20:44,550 --> 00:20:45,800 gweddill y gair. 426 00:20:45,800 --> 00:20:49,010 Felly, yn dwyn i gof yr hyn yr ydym yn gallu i wneud y tro diwethaf oedd hyn. 427 00:20:49,010 --> 00:20:53,940 Gadewch i mi fynd yn ei flaen ac yn agor i fyny 'r ffeil ein bod wedi galw string.c, a dwyn i gof 428 00:20:53,940 --> 00:20:56,860 ei fod yn edrych ychydig yn rhywbeth fel hyn. 429 00:20:56,860 --> 00:20:59,860 Gadewch i mi mewn gwirionedd yn rholio yn ôl a newid i yn union yr hyn y mae'n edrych fel, 430 00:20:59,860 --> 00:21:02,654 hyd cyfres o s. 431 00:21:02,654 --> 00:21:04,560 >> Felly, edrych ar y rhaglen yma. 432 00:21:04,560 --> 00:21:08,530 Rydym yn cynnwys y llyfrgell CS50 felly y gallwn ei ddefnyddio gael llinyn. 433 00:21:08,530 --> 00:21:11,400 Rydym yn cynnwys io.h safonol fel y gallwn ddefnyddio printf. 434 00:21:11,400 --> 00:21:13,580 Pam y gwnaethom gynnwys string.h? 435 00:21:13,580 --> 00:21:16,980 Mae hyn yn newydd ddydd Llun. 436 00:21:16,980 --> 00:21:18,230 Felly, yr oeddem am hyd llinyn. 437 00:21:18,230 --> 00:21:19,090 Str leng. 438 00:21:19,090 --> 00:21:21,470 Penderfynodd Pobl mlynedd yn ôl, gadewch i ni fod yn gryno. 439 00:21:21,470 --> 00:21:24,290 Yn hytrach na galw yn "hyd llinyn," gadewch i ni ei alw'n "str leng" ac yn gadael i'r 440 00:21:24,290 --> 00:21:28,540 ffigur byd y tu allan, ac felly dyna yr hyn yr ydym yn cael mynediad atynt gyda string.h. 441 00:21:28,540 --> 00:21:29,390 >> Mae hyn yn gyfarwydd. 442 00:21:29,390 --> 00:21:30,320 Mae hyn yn gyfarwydd. 443 00:21:30,320 --> 00:21:31,450 Mae hyn yn gyfarwydd. 444 00:21:31,450 --> 00:21:32,370 Mae hyn ychydig yn newydd. 445 00:21:32,370 --> 00:21:35,420 Yn unol 22 - a byddwn yn dod yn ôl i hyn, ond am wybod erbyn hyn - 446 00:21:35,420 --> 00:21:37,880 a byddai dim ond yn gwybod hyn o gael darllen y dogfennau, neu os 447 00:21:37,880 --> 00:21:39,010 eich bod yn gwybod C barod - 448 00:21:39,010 --> 00:21:41,510 cael llinyn weithiau sgriw i fyny. 449 00:21:41,510 --> 00:21:45,130 Os yw'r defnyddiwr yn wirioneddol wrthwynebus neu anghydweithredol ac ef neu hi dim ond 450 00:21:45,130 --> 00:21:49,450 nid yw'n deipio unrhyw beth ar y bysellfwrdd neu mathau cymaint ar y bysellfwrdd sy'n 451 00:21:49,450 --> 00:21:53,760 ei llethu gof y cyfrifiadur, mewn theori, yn cael y gellid dychwelyd llinyn 452 00:21:53,760 --> 00:21:56,270 rhywbeth ar wahân i llinyn o gymeriadau. 453 00:21:56,270 --> 00:22:01,930 Gallai dychwelyd gwerth arbennig o'r enw NULL yn yr holl gapiau, N-U-L-L, ac mae hyn yn 454 00:22:01,930 --> 00:22:03,390 dim ond gwerth sentinel fel y'u gelwir. 455 00:22:03,390 --> 00:22:08,010 Mae'n werth arbennig sy'n arwydd rhywbeth drwg wedi digwydd yn yr achos hwn. 456 00:22:08,010 --> 00:22:10,520 Mae'n yw absenoldeb o gyfres. 457 00:22:10,520 --> 00:22:16,190 >> Felly null rwy'n gwirio am yn syml fel bod, stori hir yn fyr, str leng a 458 00:22:16,190 --> 00:22:20,230 swyddogaethau eraill sy'n dod gyda C, os maent yn disgwyl llinyn ond chi eu pasio 459 00:22:20,230 --> 00:22:23,630 absenoldeb o gyfres, os byddwch yn pasio eu NULL, y cyfrifiadur neu'r rhaglen 460 00:22:23,630 --> 00:22:25,000 fydd yn unig yn damwain llwyr. 461 00:22:25,000 --> 00:22:25,610 Bydd yn hongian. 462 00:22:25,610 --> 00:22:27,250 Bydd yn taflu i fyny rhywfaint o neges gwall. 463 00:22:27,250 --> 00:22:28,690 Bydd pethau drwg yn digwydd. 464 00:22:28,690 --> 00:22:31,130 Felly, er bod hyn yn dal i fod nid-diffinio'n dda - 465 00:22:31,130 --> 00:22:33,730 Bydd hyn yn gwneud mwy o synnwyr mewn wythnos neu dau - yn unol 22, mae hyn yn unig yw 466 00:22:33,730 --> 00:22:38,790 enghraifft o wirio gwall hunan-amddiffynnol rhag ofn un amser allan o'r 467 00:22:38,790 --> 00:22:42,040 miliwn o rhywbeth yn mynd o'i le, yn leiaf, ni fydd fy rhaglen damwain. 468 00:22:42,040 --> 00:22:45,960 >> Felly, os nad yw'n s hafal rhywbeth drwg, Mae gen i hwn am ddolen, ac roedd hyn yn 469 00:22:45,960 --> 00:22:47,710 lle'r oedd ein bod eraill darn newydd o gystrawen. 470 00:22:47,710 --> 00:22:51,580 Mae gen i ar gyfer dolen ailadrodd o sero ar hyd at hyd s. 471 00:22:51,580 --> 00:22:56,140 Ac yna yma, roeddwn yn argraffu allan s braced i, ond pam wnes i ddefnyddio% c holl 472 00:22:56,140 --> 00:23:00,770 yn sydyn yn hytrach na% s hyd yn oed er s yn llinyn? 473 00:23:00,770 --> 00:23:02,110 Mae'n gymeriad, dde? 474 00:23:02,110 --> 00:23:06,560 S yn llinyn, ond s braced rhywbeth, s braced i ble i yn sero 475 00:23:06,560 --> 00:23:10,380 neu un neu ddau, dyna unigolyn gymeriad yn y llinyn, ac yn y blaen ar gyfer 476 00:23:10,380 --> 00:23:14,970 y mae angen, printf i gael gwybod bod mae'n wir gymeriad i'w disgwyl. 477 00:23:14,970 --> 00:23:18,096 >> Ac yna galw i gof, yr hyn a wnaeth hon rhaglen yn ei wneud mewn gwirionedd? 478 00:23:18,096 --> 00:23:19,848 >> Argraffwyd allan mewn colofnau. 479 00:23:19,848 --> 00:23:21,120 >> Yeah, yn union. 480 00:23:21,120 --> 00:23:24,990 'I jyst yn argraffu y gair a deipio i mewn colofn, un cymeriad bob llinell. 481 00:23:24,990 --> 00:23:26,190 Felly, gadewch i ni weld hyn eto. 482 00:23:26,190 --> 00:23:27,810 Felly gwnewch yn llinyn. 483 00:23:27,810 --> 00:23:30,200 Lluniwyd OK. . / Llinyn. 484 00:23:30,200 --> 00:23:35,560 Gadewch i mi deipio i mewn H-E-L-L-O, Mewnbynnu, a yn wir, yr wyf yn ei gael, un ar bob llinell. 485 00:23:35,560 --> 00:23:37,280 >> Felly, gadewch i mi wneud un optimization yma. 486 00:23:37,280 --> 00:23:40,240 Os ydych yn meddwl am y peth, yn enwedig os ydych chi wedi rhaglennu o'r blaen, mae 487 00:23:40,240 --> 00:23:43,340 gellir dadlau mae aneffeithlonrwydd yn unol 24. 488 00:23:43,340 --> 00:23:46,160 Mewn geiriau eraill, nid yw'n reidrwydd y cynllun gorau. 489 00:23:46,160 --> 00:23:50,200 Syml, o leiaf unwaith y byddwch cofio beth str leng yw, ond mae'n 490 00:23:50,200 --> 00:23:52,640 gwneud rhywbeth fud o bosibl. 491 00:23:52,640 --> 00:23:54,863 Beth allai hynny fod? 492 00:23:54,863 --> 00:23:56,280 >> [Anghlywadwy]. 493 00:23:56,280 --> 00:23:56,800 >> Yn union. 494 00:23:56,800 --> 00:24:00,340 Mae'n gwirio ar gyfer y darn o s bob tro er 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O bob amser yn mynd i fod yn pum cymeriad. 496 00:24:02,980 --> 00:24:05,490 Bob amser drwy ddolen hon, nid yw'r pump yn newid. 497 00:24:05,490 --> 00:24:08,750 Efallai y byddaf yn incrementing i, ond beth yw hyd s ar bob 498 00:24:08,750 --> 00:24:09,690 fersiwn y ddolen hon? 499 00:24:09,690 --> 00:24:15,810 Mae'n pump, mae'n pump, 'i' bump, ac eto yr wyf i, er hynny yn gofyn hyn 500 00:24:15,810 --> 00:24:18,320 cwestiwn eto ac eto ac eto. 501 00:24:18,320 --> 00:24:20,750 Nawr dweud y gwir, mae'r cyfrifiadur mor damn gyflym, nid oes unrhyw un yn mynd i sylwi ar 502 00:24:20,750 --> 00:24:23,780 gwahaniaeth yn yr achos hwn, ond mae mathau hyn o benderfyniadau dylunio gwael yn gallu 503 00:24:23,780 --> 00:24:28,330 dechrau adio i fyny os yw'r compiler ei hun nad yw'n ceisio at atgyweiria hon ar eich cyfer 504 00:24:28,330 --> 00:24:30,630 fel arfer byddi'n na fyddai, yn leiaf yn y peiriant. 505 00:24:30,630 --> 00:24:31,540 >> Felly, yr wyf i'n mynd i wneud hyn. 506 00:24:31,540 --> 00:24:34,580 Rydw i'n mynd i ychwanegu coma ar ôl fy newidyn cyntaf, i. 507 00:24:34,580 --> 00:24:37,310 Rydw i'n mynd i roi fy hun un arall amrywiol, yn galw yn n, dim ond drwy 508 00:24:37,310 --> 00:24:41,330 confensiwn am rifau, ac yna rwy'n mynd i aseinio n gwerth o linyn 509 00:24:41,330 --> 00:24:42,530 hyd s. 510 00:24:42,530 --> 00:24:46,060 Ac yna dwi'n mynd i newid fy nghyflwr i fod yn beth? 511 00:24:46,060 --> 00:24:51,960 Rydw i'n mynd i newid fy nghyflwr i tra i yn llai na n. 512 00:24:51,960 --> 00:24:55,700 >> Felly nawr, faint o weithiau ydw i gwirio hyd s? 513 00:24:55,700 --> 00:25:00,110 Unwaith, ond mae'n iawn i wirio i yn erbyn n dro ar ôl tro oherwydd erbyn hyn y rhai 514 00:25:00,110 --> 00:25:03,170 Nid yw gwerthoedd yn newid mewn gwirionedd. 515 00:25:03,170 --> 00:25:06,020 Yn awr ar hyn o bryd, dim ond yn gwybod bod unrhyw adeg rydych galw swyddogaeth, mae yna ychydig o 516 00:25:06,020 --> 00:25:09,930 uwchben, dim digon i atal eich wirioneddol o erioed gan ddefnyddio swyddogaethau, ond 517 00:25:09,930 --> 00:25:12,750 yn sicr pan mae 'na linell o god hoffi hynny - a bydd y llinellau yn cael 518 00:25:12,750 --> 00:25:15,490 yn fwy diddorol cyn bo hir - lle mae 'na gyfle i feddwl, os wyf yn 519 00:25:15,490 --> 00:25:18,320 teipiwch y cod hwn, faint o bydd yr amserau yn gweithredu? 520 00:25:18,320 --> 00:25:20,950 Byddwch yn dechrau gweld dros gyfnod o amser y perfformiad eich rhaglenni yn gallu 521 00:25:20,950 --> 00:25:21,660 yn wir newid. 522 00:25:21,660 --> 00:25:24,110 >> Yn wir, un o'r broblem hon rydym wedi wneud yn y blynyddoedd diwethaf yn golygu 523 00:25:24,110 --> 00:25:27,600 gweithredu, oherwydd efallai y byddwch yn cofio wythnos sero, gwirydd sillafu, ond 524 00:25:27,600 --> 00:25:31,380 sillafu gwiriwr sydd wedi'i gynllunio i gefnogi geiriadur o 150,000 a mwy 525 00:25:31,380 --> 00:25:32,860 geiriau ein bod yn rhoi i chi guys. 526 00:25:32,860 --> 00:25:37,100 Byddai'n rhaid i chi ysgrifennu cod sy'n llwythi geiriau hynny i mewn i RAM, felly i 527 00:25:37,100 --> 00:25:40,700 blychau fel y gwelsom ar y sgrin eiliad yn ôl, ac yna fel gyflym ag y 528 00:25:40,700 --> 00:25:43,740 gallu, mae angen i chi fod yn gallu ateb cwestiwn ar y ffurflen, yn y gair hwn 529 00:25:43,740 --> 00:25:44,280 camsillafu? 530 00:25:44,280 --> 00:25:45,420 A yw y gair hwn gamsillafu? 531 00:25:45,420 --> 00:25:46,770 A yw y gair hwn gamsillafu? 532 00:25:46,770 --> 00:25:49,525 >> Ac yn rhywbeth fel bod yr hyn yr ydym wedi wneud yn y blynyddoedd diwethaf yn cael ei droi i mewn, 533 00:25:49,525 --> 00:25:53,500 er bod hynny ar optio yn sail ddewisol, a cystadleuaeth o ryw fath, lle mae'r 534 00:25:53,500 --> 00:25:59,470 myfyrwyr sy'n defnyddio'r RAM llai a llai amser, llai o gylchoedd CPU, yn y pen draw 535 00:25:59,470 --> 00:26:02,640 byrlymu i fyny i ben ychydig bwrdd arweinydd neu safle yr ydym yn ei roi ar 536 00:26:02,640 --> 00:26:04,770 hafan y cwrs fel rydym wedi wneud yn y blynyddoedd diwethaf. 537 00:26:04,770 --> 00:26:08,100 Felly, unwaith eto, yn hollol ddewisol, ond mae hyn yn siarad at y cyfleoedd dylunio 538 00:26:08,100 --> 00:26:11,250 sydd ar y blaen ar ôl i ni ddechrau adeiladu ar ben rhai o'r rhain 539 00:26:11,250 --> 00:26:14,010 blociau adeiladu sylfaenol. 540 00:26:14,010 --> 00:26:16,780 >> Felly, gadewch i mi fynd yn ôl at y diagram hwn ar gyfer dim ond hyn o bryd ac yn dangos ychydig 541 00:26:16,780 --> 00:26:17,610 rhywbeth mwy. 542 00:26:17,610 --> 00:26:21,400 Mae hyn yn wir yn llinyn, ac rydym wedi cymryd manteisio ar ychydig o lyfrgelloedd, 543 00:26:21,400 --> 00:26:25,150 io.h safonol sydd wedi - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, ymhlith pethau eraill. 546 00:26:27,860 --> 00:26:31,540 cs50.h, sydd wedi cael int a chael llinyn ac yn y blaen, string.h, sy'n 547 00:26:31,540 --> 00:26:32,570 Roedd str leng. 548 00:26:32,570 --> 00:26:34,800 Ond mae'n troi allan mae eto un arall. 549 00:26:34,800 --> 00:26:38,540 A dweud y gwir, mae llawer a llawer o pennawd ffeiliau a datgan swyddogaethau 550 00:26:38,540 --> 00:26:43,320 ar gyfer llyfrgelloedd, ond mae ctype.h hyn yn mewn gwirionedd yn mynd i fod braidd yn 551 00:26:43,320 --> 00:26:46,900 fanteisiol oherwydd fy mod i'n mynd i fynd yn ei flaen ac yn gweithredu un 552 00:26:46,900 --> 00:26:48,120 rhaglen arall yma. 553 00:26:48,120 --> 00:26:52,420 >> Gadewch i mi fynd yn ei flaen ac yn agor i fyny rhywbeth Ysgrifennais o flaen llaw o'r enw 554 00:26:52,420 --> 00:26:55,750 capitalize.c, a gadewch i ni gymryd golwg ar sut mae hyn yn gweithio. 555 00:26:55,750 --> 00:27:00,340 Sylwa a Im 'yn arfer, yn y fersiwn ohono, tair ffeil cyfarwydd. 556 00:27:00,340 --> 00:27:04,110 Sylwch fod yn llinell 18, rwy'n cael llinell o destun. 557 00:27:04,110 --> 00:27:07,660 Hysbysiad yn unol 21, rwy'n honni bod y cod canlynol yn mynd i 558 00:27:07,660 --> 00:27:12,170 manteisio s, beth bynnag y defnyddiwr deipio i mewn, a sut ydw i'n gwneud hynny? 559 00:27:12,170 --> 00:27:13,300 Wel, dwi'n cymryd - 560 00:27:13,300 --> 00:27:14,750 gwersi a ddysgwyd o bryd diwethaf - 561 00:27:14,750 --> 00:27:18,370 Rwy'n datgan ia n ac ailadrodd dros y cymeriadau yn y llinyn. 562 00:27:18,370 --> 00:27:22,720 Ac yna beth yw bloc hwn o cod yn unol 24 drwy 27 563 00:27:22,720 --> 00:27:24,550 yn ei wneud yn nhermau lleygwr? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> Lythrennau bach llythyr yn ôl. 566 00:27:29,730 --> 00:27:30,430 >> Yn union. 567 00:27:30,430 --> 00:27:35,920 Os s braced i - felly os i-fed cymeriad, sydd yn benodol 568 00:27:35,920 --> 00:27:40,220 torgoch yn y llinyn, yn fwy na neu'n hafal i lythrennau bach a a - 569 00:27:40,220 --> 00:27:42,670 dwyn i gof bod ampersand dwbl dynodi a - 570 00:27:42,670 --> 00:27:46,810 a'r un cymeriad, s braced i, yn llai na neu'n hafal i lythrennau bach z, 571 00:27:46,810 --> 00:27:50,600 mae hynny'n golygu ei fod yn a neu b neu c neu dot, dot, dot, neu z, sy'n golygu 572 00:27:50,600 --> 00:27:51,340 ei fod yn llythrennau bach. 573 00:27:51,340 --> 00:27:52,900 Beth ydw i am ei wneud yn yr achos? 574 00:27:52,900 --> 00:27:55,010 Wel, gallaf wneud hyn braidd gryptig, ond 575 00:27:55,010 --> 00:27:56,160 gadewch i ni tynnu coes hyn ar wahân. 576 00:27:56,160 --> 00:28:00,210 >> Rydw i'n mynd i alw printf, printiau% c oherwydd yr wyf am i ailargraffiad yr 577 00:28:00,210 --> 00:28:01,580 cymeriad ar y sgrin. 578 00:28:01,580 --> 00:28:06,650 Yna yr wyf i'n mynd i gymryd s braced i, y cymeriad i-fed yn s, ac yna beth 579 00:28:06,650 --> 00:28:12,330 ydw i'n gwneud hyn tric bach yma, lythrennau bach a Mae cyfalaf minws? 580 00:28:12,330 --> 00:28:16,352 Beth yw bod yn mynd i roi mi, yn gyffredinol? 581 00:28:16,352 --> 00:28:18,600 >> [Anghlywadwy]. 582 00:28:18,600 --> 00:28:19,390 >> Yn union. 583 00:28:19,390 --> 00:28:20,860 Dwi ddim yn cofio - 584 00:28:20,860 --> 00:28:24,390 oedd yn 65 ar gyfer cyfalaf A. Dwi ddim yn gofio beth lythrennau bach a yw, 585 00:28:24,390 --> 00:28:25,540 ond ni waeth. 586 00:28:25,540 --> 00:28:26,580 Mae'r cyfrifiadur yn gwybod. 587 00:28:26,580 --> 00:28:30,380 Felly, drwy ddweud, lythrennau bach minws cyfalaf A, mae'n rhyfedd i fod yn 588 00:28:30,380 --> 00:28:33,530 tynnu un torgoch oddi wrth y llall, ond beth yw chars o dan y cwfl? 589 00:28:33,530 --> 00:28:34,520 Maent yn unig rhifau. 590 00:28:34,520 --> 00:28:36,980 Felly, beth bynnag y niferoedd hynny, gadael i'r cyfrifiadur ei gofio 591 00:28:36,980 --> 00:28:38,240 yn hytrach na fi y dynol. 592 00:28:38,240 --> 00:28:41,710 >> Felly lythrennau bach cyfalaf minws A yn mynd i roi gwahaniaeth i mi. 593 00:28:41,710 --> 00:28:45,370 Mae'n digwydd i fod yn 32, a byddai hynny'n yr achos dros llythrennau bach b a chyfalaf B 594 00:28:45,370 --> 00:28:45,930 ac yn y blaen. 595 00:28:45,930 --> 00:28:47,710 Mae'n aros yn gyson, diolch byth. 596 00:28:47,710 --> 00:28:51,930 Felly, yr wyf ddim yn y bôn yn dweud, yn cymryd y lythrennau bach llythyr, tynnu oddi ar y 597 00:28:51,930 --> 00:28:55,340 gwahaniaeth safonol, a bod effeithiol newidiadau s braced i gan 598 00:28:55,340 --> 00:28:59,400 lythrennau bach i, wrth gwrs, priflythyren, heb fy wir orfod meddwl 599 00:28:59,400 --> 00:29:03,040 amdanynt neu cofiwch, beth oedd y rhai niferoedd buom yn siarad am pan fydd yr wyth 600 00:29:03,040 --> 00:29:04,800 Daeth gwirfoddolwyr i fyny ar y llwyfan? 601 00:29:04,800 --> 00:29:08,800 Nawr yn y cyfamser, yn y arall, os nad yw'n lythyr llythrennau bach fel y penderfynwyd 602 00:29:08,800 --> 00:29:10,400 gan llinell 24, dim ond ei hargraffu. 603 00:29:10,400 --> 00:29:12,590 Dim ond am grybwyll y cymeriadau a oedd yn 604 00:29:12,590 --> 00:29:14,410 mewn gwirionedd lythrennau bach wreiddiol. 605 00:29:14,410 --> 00:29:15,150 >> Felly, gadewch i ni weld hyn. 606 00:29:15,150 --> 00:29:17,400 Gwneud fanteisio. 607 00:29:17,400 --> 00:29:18,470 Lluniwyd, OK. 608 00:29:18,470 --> 00:29:19,730 . / Manteisio. 609 00:29:19,730 --> 00:29:23,530 A gadewch i mi deipio i mewn H-E-L-L-O mewn llythrennau bach, Enter. 610 00:29:23,530 --> 00:29:26,370 Ac yn sylwi ei fod yn cael ei drawsnewid i mewn i priflythyren. 611 00:29:26,370 --> 00:29:27,940 Gadewch i mi wneud hyn eto gyda gair gwahanol. 612 00:29:27,940 --> 00:29:32,720 Beth am D-A-V-I-D gyda D cyntaf cyfalafu fel enw fel arfer yw? 613 00:29:32,720 --> 00:29:33,560 Enter. 614 00:29:33,560 --> 00:29:34,870 Hysbysiad mae'n dal i fod yn gywir. 615 00:29:34,870 --> 00:29:40,250 'I jyst yn outputted yn gyntaf D ddigyfnewid trwy gyfrwng y arall adeiladu. 616 00:29:40,250 --> 00:29:42,170 >> Felly, yn cadw mewn cof, felly, a cwpl o bethau yma. 617 00:29:42,170 --> 00:29:45,060 Un, os ydych chi erioed wedi eisiau i wirio dau amodau ar unwaith, gallwch ac yn eu 618 00:29:45,060 --> 00:29:46,500 gyda'i gilydd fel ni ragwelir. 619 00:29:46,500 --> 00:29:49,900 Gallwch gymharu cymeriadau yn y ffordd hon a thrin cymeriadau mor effeithiol 620 00:29:49,900 --> 00:29:53,050 rhifau, ond dweud y gwir, mae hyn mor damn cryptig Nid wyf erioed i'n mynd i gofio 621 00:29:53,050 --> 00:29:56,510 sut i ddod o hyd i hyn o'r dechrau heb rhesymeg drwyddo am gryn 622 00:29:56,510 --> 00:29:57,140 dipyn o amser. 623 00:29:57,140 --> 00:30:00,590 >> Oni fyddai wedi bod yn braf os bydd rhywun yn allan yno ysgrifennodd swyddogaeth enw yn 624 00:30:00,590 --> 00:30:05,390 is a allai ateb i mi yn wir neu ffug, cymeriad hwn yn llythrennau bach? 625 00:30:05,390 --> 00:30:09,350 Wel diolch byth, pwy bynnag ysgrifennodd ctype.h wnaeth yn union hynny. 626 00:30:09,350 --> 00:30:15,540 Gadewch i mi fynd i fyny yma ac ychwanegu ctype ar gyfer c math, ac yn awr gad i mi fynd i lawr yma ac 627 00:30:15,540 --> 00:30:18,820 ailysgrifennu'r y llinell hon fel a ganlyn. 628 00:30:18,820 --> 00:30:27,510 >> Felly, os yw'n cael ei alw yn is, yr wyf yn hawlio, s braced i, yna yr wyf i'n mynd i ddileu 629 00:30:27,510 --> 00:30:29,400 y ddwy linell yn gyfan gwbl. 630 00:30:29,400 --> 00:30:32,570 Felly nawr rhywun arall, rwy'n gobeithio, ysgrifennodd swyddogaeth a elwir yn is, ac mae'n 631 00:30:32,570 --> 00:30:36,250 troi allan eu bod yn gwneud ac maent yn datgan y tu mewn o ctype.h. 632 00:30:36,250 --> 00:30:39,480 Ac yn awr yr wyf i'n mynd i adael llinell 27 ei ben ei hun, dw i'n mynd i adael llinell 31 633 00:30:39,480 --> 00:30:41,890 ei ben ei hun, ond yn sylwi faint rwyf wedi tynhau fy cod. 634 00:30:41,890 --> 00:30:42,690 Mae'n awr yn lanach. 635 00:30:42,690 --> 00:30:47,250 Mae'n llai anodd i edrych trwy oherwydd erbyn hyn y swyddogaeth, ar ben hynny, yn 636 00:30:47,250 --> 00:30:50,080 felly mae'n rhyfeddol a enwir yn unig yn gwneud yr hyn y mae'n ei ddweud. 637 00:30:50,080 --> 00:30:51,520 >> Felly, yn awr yr wyf i'n mynd i achub y. 638 00:30:51,520 --> 00:30:52,930 Rydw i'n mynd i chwyddo allan. 639 00:30:52,930 --> 00:30:56,650 Ac yn union fel yn Scratch gallech gael Booleans, gwerthoedd Boole yn wir neu 640 00:30:56,650 --> 00:31:01,530 ffug, dyna'n union yr hyn sy'n is effeithiol dychwelyd. 641 00:31:01,530 --> 00:31:02,960 Gadewch i mi ail-grynhoi. 642 00:31:02,960 --> 00:31:04,500 Gadewch i ail-redeg mi. 643 00:31:04,500 --> 00:31:07,350 Ac yn awr gadewch i ni roi cynnig arni eto, H-E-L-L-O, Enter. 644 00:31:07,350 --> 00:31:07,970 Dyna 'n bert da. 645 00:31:07,970 --> 00:31:10,150 A cheisiwch eto, gwnewch yn siŵr fy mod yn Nid oedd sgriw rhywbeth i fyny. 646 00:31:10,150 --> 00:31:11,670 Mae hynny'n cael ei gyfalafu hefyd. 647 00:31:11,670 --> 00:31:14,190 >> Ond nid yw hyn yn ddigon da oherwydd bod y peth arall nad wyf erioed i'n mynd i 648 00:31:14,190 --> 00:31:19,090 cofio oni bai fy mod yn gweithio trwy y mae mewn gwirionedd yn ofalus ar, dyweder, papur yn 649 00:31:19,090 --> 00:31:19,920 y llinell hon damn. 650 00:31:19,920 --> 00:31:23,450 Oni fyddai'n braf pe bai swyddogaeth alw i uwch? 651 00:31:23,450 --> 00:31:26,930 Wel, mae'n troi allan bod yn ctype.h hefyd. 652 00:31:26,930 --> 00:31:30,150 Rydw i'n mynd i fynd yn ei flaen a theipiwch - 653 00:31:30,150 --> 00:31:31,340 gadewch i mi ddod â'r llinell ôl. 654 00:31:31,340 --> 00:31:36,430 Yn hytrach na hyn yma, gadewch i mi fynd yn ei flaen a dweud, rhodder ar gyfer% y c y 655 00:31:36,430 --> 00:31:42,110 ganlyniad i'r galw swyddogaeth hon i uchaf ar y i-fed cymeriad s. 656 00:31:42,110 --> 00:31:45,430 Ac yn awr yn sylwi ei fod yn cael ychydig yn gytbwys. 657 00:31:45,430 --> 00:31:48,870 Rhaid i mi gadw golwg ar faint o cromfachau Rwyf wedi agor ac yn cau. 658 00:31:48,870 --> 00:31:50,050 >> Felly, erbyn hyn mae hyd yn oed yn lanach. 659 00:31:50,050 --> 00:31:53,460 Yn awr y rhaglen hon yn mynd yn well ac yn cynllunio'n well gellid dadlau oherwydd ei fod yn 660 00:31:53,460 --> 00:31:56,450 llawer, llawer mwy darllenadwy ond mae'n dim gadewch i ni gywiro. 661 00:31:56,450 --> 00:31:57,600 Gwneud fanteisio. 662 00:31:57,600 --> 00:31:58,930 . / Manteisio. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. Gadewch i ni redeg unwaith eto, D-A-V-I-D. Iawn, felly rydym yn dal i fod yn 664 00:32:03,220 --> 00:32:04,250 'n bert cyflwr da. 665 00:32:04,250 --> 00:32:06,030 >> Ond yn awr i uchaf. 666 00:32:06,030 --> 00:32:09,720 Cynigiaf fod yna un yn fwy mireinio gallem wneud a fyddai'n 667 00:32:09,720 --> 00:32:12,820 neis iawn, a allai mewn gwirionedd tynhau i fyny y cod hwn ac yn wir yn rhoi pump ni 668 00:32:12,820 --> 00:32:15,150 allan o bump ar gyfer dylunio, er enghraifft. 669 00:32:15,150 --> 00:32:16,510 Beth y byddai'n braf i gael gwared ohono? 670 00:32:16,510 --> 00:32:20,770 Wel, edrychwch pa mor damn hir y bloc o Cod yn unig i wneud rhywbeth syml. 671 00:32:20,770 --> 00:32:23,850 >> Nawr wrth fynd heibio, fel y byddech yn cael gweld yn yr adran hon super gorffennol 672 00:32:23,850 --> 00:32:27,570 penwythnos, nid oes angen i chi llym y braces cyrliog pan os oes gen ti un 673 00:32:27,570 --> 00:32:32,180 llinell o cod, er ein bod yn cynnig cadw fel eu bod yn gwneud llawer 674 00:32:32,180 --> 00:32:36,190 yn fwy clir, fel mewn U-siâp Scratch yn blociau, beth sydd tu mewn i'r gangen. 675 00:32:36,190 --> 00:32:40,170 Ond ni fyddai'n braf pe uchaf, pan roddir ei fewnbwn, troi i mewn i 676 00:32:40,170 --> 00:32:44,730 priflythyren os nad yw'n, a beth fyddai yn wych yn yr achos arall os 677 00:32:44,730 --> 00:32:47,210 mae eisoes priflythyren? 678 00:32:47,210 --> 00:32:49,620 Dim ond yn ei throsglwyddo drwy ac yn gadael ei ben ei hun. 679 00:32:49,620 --> 00:32:50,660 >> Felly, efallai ei fod yn gwneud hynny. 680 00:32:50,660 --> 00:32:52,990 Gallwn roi cynnig, a dim ond yn gobeithio ei fod yn ei wneud, ond gadewch i mi 681 00:32:52,990 --> 00:32:54,450 gyflwyno un peth arall. 682 00:32:54,450 --> 00:32:57,440 Yn hytrach na defnyddio'r adeiledig mewn terfynell ffenestr i lawr yma, dwyn i gof bod 683 00:32:57,440 --> 00:33:01,130 yr eicon hwn du sgwâr yn rhoi i chi ffenestr terfynell mwy y gallaf A llawn 684 00:33:01,130 --> 00:33:02,260 sgrinio os ydw i eisiau? 685 00:33:02,260 --> 00:33:05,820 Felly, mae'n troi allan eu bod yn fath o rhyfedd enwebedig, ond mae pethau hyn a elwir yn 686 00:33:05,820 --> 00:33:10,970 tudalennau dyn, tudalennau â llaw, dyn yn fyr, a gallaf gael mynediad i'r rhain drwy 687 00:33:10,970 --> 00:33:14,515 teipio dyn - 688 00:33:14,515 --> 00:33:15,570 beth ddylwn i ei eisiau i deipio? 689 00:33:15,570 --> 00:33:17,830 Dyn i uchaf. 690 00:33:17,830 --> 00:33:21,090 >> Ac yn awr sylwi os oes yn bodoli gweithredu tu mewn i'r cyfrifiadur, yn 691 00:33:21,090 --> 00:33:23,970 yr achos hwn y peiriant, sydd ychydig y system weithredu Linux, mae'n mynd 692 00:33:23,970 --> 00:33:27,920 i roi set braidd yn cryptig i mi allbwn, ond byddwch yn dod o hyd i dros gyfnod o amser y 693 00:33:27,920 --> 00:33:31,720 mae bob amser yn fformatio 'n bert lawer y un fath felly i chi ddechrau dod i arfer ag ef. 694 00:33:31,720 --> 00:33:35,130 Sylwch ar y brig i uchaf, a yn ôl pob golwg yr un dogfennau 695 00:33:35,130 --> 00:33:35,680 am i ostwng. 696 00:33:35,680 --> 00:33:38,740 Pwy bynnag ysgrifennodd oedd yn torri rhai corneli ac yn ei roi i gyd ar un dudalen. 697 00:33:38,740 --> 00:33:40,720 Diben y pethau hyn yn bywyd yw i drosi 698 00:33:40,720 --> 00:33:42,780 llythyr at uchaf neu llythrennau bach. 699 00:33:42,780 --> 00:33:46,290 >> Hysbysiad bod dan Crynodeb, mae'r dudalen dyn yn dysgu i mi pa ffeil gen i 700 00:33:46,290 --> 00:33:48,130 i gynnwys defnyddio'r y peth hyn. 701 00:33:48,130 --> 00:33:51,320 Mae'n rhoi llofnodion ar gyfer y rhain i mi swyddogaethau, y ddau ohonynt, hyd yn oed 702 00:33:51,320 --> 00:33:53,510 er ein bod ar hyn o bryd yn unig gofalu am un. 703 00:33:53,510 --> 00:33:54,730 Dyma bellach yn ddisgrifiad. 704 00:33:54,730 --> 00:33:58,800 I uchaf trosi'r llythyr c i priflythyren os yn bosibl. 705 00:33:58,800 --> 00:34:02,280 >> Still nad yw addysgiadol, ond gadewch i mi yn awr yn edrych o dan werth dychwelyd, y peth 706 00:34:02,280 --> 00:34:03,520 sy'n cael ei rhoi yn ôl. 707 00:34:03,520 --> 00:34:08,600 Felly, y gwerth a ddychwelwyd yw bod y lythyr drosi neu c os yw'r 708 00:34:08,600 --> 00:34:09,870 Nid oedd yn bosibl addasu. 709 00:34:09,870 --> 00:34:11,202 Beth yw c? 710 00:34:11,202 --> 00:34:12,560 >> Mae cymeriad gwreiddiol. 711 00:34:12,560 --> 00:34:15,370 >> Mae cymeriad gwreiddiol ac rydym yn gwybod erbyn, unwaith eto, yn mynd i fyny at y 712 00:34:15,370 --> 00:34:19,179 crynodeb, a bydd pwy bynnag ysgrifennodd y swyddogaeth yn unig penderfynu bod y mewnbwn 713 00:34:19,179 --> 00:34:22,909 i i uchaf ac i yn is yn unig fympwyol yn mynd i gael ei alw c. 714 00:34:22,909 --> 00:34:24,909 Gallent fod wedi ei alw y rhan fwyaf o unrhyw beth maent ei eisiau, ond maent yn cadw ei 715 00:34:24,909 --> 00:34:26,270 syml â c. 716 00:34:26,270 --> 00:34:27,880 Felly, yr wyf i wedi ymgynghori â'r dudalen dyn. 717 00:34:27,880 --> 00:34:31,870 Mae'r ddedfryd hon yn rhoi sicrwydd i mi, os nid yw'n llythyr llythrennau bach, mae'n 718 00:34:31,870 --> 00:34:34,969 mynd i dim ond rhoi i mi yn ôl c, sydd yn berffaith, sy'n golygu y gallaf gael gwared ar 719 00:34:34,969 --> 00:34:36,199 fy nghyflwr arall. 720 00:34:36,199 --> 00:34:39,679 >> Felly, gadewch i mi fynd yn ôl i Gedit, a nawr gadewch i mi wneud hyn. 721 00:34:39,679 --> 00:34:41,960 Rydw i'n mynd i gopi fy natganiad printf. 722 00:34:41,960 --> 00:34:45,969 Rydw i'n mynd i fynd yn ei flaen ac i'r dde y tu mewn y ar gyfer argraffu ddolen bod allan, a chael 723 00:34:45,969 --> 00:34:48,760 gwared ar nawr cyfan hwn os lluniad. 724 00:34:48,760 --> 00:34:51,860 Nid oedd yn syniad drwg, ac roedd yn iawn llawer o gywir ac yn gyson â 725 00:34:51,860 --> 00:34:54,100 popeth yr ydym wedi pregethu, ond dim ond nid yn angenrheidiol. 726 00:34:54,100 --> 00:34:57,070 Cyn gynted ag y byddwch yn sylweddoli rhywfaint llyfrgell swyddogaeth yn bodoli bod rhywun arall 727 00:34:57,070 --> 00:35:01,340 ysgrifennu, neu efallai i chi ysgrifennu mewn mannau eraill yn y ffeil, gall ei ddefnyddio ac yn wir 728 00:35:01,340 --> 00:35:02,690 dechrau dynhau'r cod. 729 00:35:02,690 --> 00:35:06,080 >> A phan rwy'n dweud pethau fel dull da, y ffaith bod y person hwn a elwir yn 730 00:35:06,080 --> 00:35:11,490 gweithredu i uwch, neu yn flaenorol yn isaf yn rhyfeddol o ddefnyddiol oherwydd 731 00:35:11,490 --> 00:35:12,900 eu bod yn ddisgrifiadol iawn. 732 00:35:12,900 --> 00:35:16,120 Na fyddech am i ffonio eich swyddogaethau x ac y a z, sydd wedi 733 00:35:16,120 --> 00:35:19,620 llawer, llawer llai o ystyr. 734 00:35:19,620 --> 00:35:25,160 Unrhyw gwestiynau am y gyfres honno o welliannau? 735 00:35:25,160 --> 00:35:28,010 >> Felly, digon yw dweud un o'r siopau cludfwyd yn oed fel eich problem hun 736 00:35:28,010 --> 00:35:30,960 set - efallai problem set un, ond yn sicr P gosod dau a ymlaen, hyd yn oed 737 00:35:30,960 --> 00:35:34,380 nid pan eu bod yn gywir o reidrwydd yn golygu eu bod yn berffaith yn unig 738 00:35:34,380 --> 00:35:36,155 eto, neu yn arbennig o dda-ddylunio. 739 00:35:36,155 --> 00:35:38,420 Dyna yr echelin arall i dechrau meddwl am. 740 00:35:38,420 --> 00:35:41,730 Felly roedd hwn yn y tu mewn llinyn o'ch cof cyfrifiadur, ond os oes gennych 741 00:35:41,730 --> 00:35:46,180 criw cyfan o gymeriadau fel H-E-L-L-O tu mewn RAM, ac mae'n debyg 742 00:35:46,180 --> 00:35:51,330 eich bod yn eich rhaglen ffoniwch gael llinyn sawl gwaith fel eich bod yn 743 00:35:51,330 --> 00:35:54,200 ffoniwch gael llinyn unwaith, yna rydych ffoniwch gael llinyn eto. 744 00:35:54,200 --> 00:35:55,880 Wel, beth sy'n mynd i yn digwydd dros gyfnod o amser? 745 00:35:55,880 --> 00:35:59,170 >> Mewn geiriau eraill, os oes gennych linell o cod, er bod allan o gyd-destun, fel 746 00:35:59,170 --> 00:36:02,120 llinyn s yn cael - 747 00:36:02,120 --> 00:36:02,960 gadewch i ni wneud hyn. 748 00:36:02,960 --> 00:36:05,270 Enw llinyn hafal cael llinyn. 749 00:36:05,270 --> 00:36:08,590 Felly mae'n debyg y llinell o god a olygir gofyn i'r defnyddiwr ar gyfer ei enw. 750 00:36:08,590 --> 00:36:14,580 Mae'r llinell nesaf o god i fod i ofyn y defnyddiwr ar gyfer ei ysgol, ac 751 00:36:14,580 --> 00:36:15,920 y llinell nesaf, ac yn y blaen. 752 00:36:15,920 --> 00:36:18,150 Tybiwch ein bod yn dal i ofyn y defnyddiwr i un arall a 753 00:36:18,150 --> 00:36:19,750 llinyn arall ac un arall. 754 00:36:19,750 --> 00:36:22,390 Maent yn mynd i aros yn y cof ar yr un pryd. 755 00:36:22,390 --> 00:36:24,280 Nid yw un yn mynd i lusgo'i gêr y llall. 756 00:36:24,280 --> 00:36:26,420 Nid yw'r ysgol yn cael ei ysgrifennu dros y llall. 757 00:36:26,420 --> 00:36:28,520 Ond ble maent i gyd yn gwneud y pen draw yn y cof? 758 00:36:28,520 --> 00:36:32,030 >> Wel, os byddwn yn dechrau i dynnu ar y sgrin, y gallwn eu defnyddio y peth 759 00:36:32,030 --> 00:36:35,800 yma fel bwrdd sialc, os yw hyn du petryal yn cynrychioli fy cyfrifiadur 760 00:36:35,800 --> 00:36:39,800 cof, dw i'n mynd i ddechrau fympwyol ei rannu i fyny i mewn sgwariau bach, 761 00:36:39,800 --> 00:36:42,120 pob un ohonynt yn cynrychioli un beit o gof. 762 00:36:42,120 --> 00:36:46,560 Dweud y gwir, os oes gennych gigabeit o RAM y dyddiau hyn, mae gennych biliwn bytes 763 00:36:46,560 --> 00:36:49,540 y cof wrth eich cyfrifiadur, felly biliwn o sgwariau hyn. 764 00:36:49,540 --> 00:36:52,110 Felly, digon yw dweud, mae hyn yn Nid mewn gwirionedd wrth raddfa. 765 00:36:52,110 --> 00:36:58,250 >> Ond gallem gadw tynnu pob un o'r rhain yn amlwg nid i raddfa sgwariau, ac mae hyn yn 766 00:36:58,250 --> 00:37:01,260 gyda'i gilydd yn cynrychioli cof fy cyfrifiadur. 767 00:37:01,260 --> 00:37:03,136 Nawr byddwn yn unig yn gwneud dot, dot, dot. 768 00:37:03,136 --> 00:37:06,260 Felly, mewn geiriau eraill, pan wyf yn awr yn annog y ddefnyddwyr gyda llinyn get i roi i mi 769 00:37:06,260 --> 00:37:07,350 llinyn, beth sy'n digwydd? 770 00:37:07,350 --> 00:37:14,270 Os mathau y defnyddiwr yn "helo", sy'n dod i ben i fyny yn H-E-L-L-O. Ond mae'n debyg y 771 00:37:14,270 --> 00:37:15,720 Yna Mathau o ddefnyddiwr i mewn - 772 00:37:15,720 --> 00:37:17,250 mewn gwirionedd, ni ddylai wyf wedi gwneud helo oherwydd ein bod yn gofyn i 773 00:37:17,250 --> 00:37:18,330 iddynt am eu henwau. 774 00:37:18,330 --> 00:37:20,580 Felly, gadewch i ni fynd yn ôl os alla i wneud hyn. 775 00:37:20,580 --> 00:37:26,130 >> Felly os wyf yn fath yn D-A-V-I-D ar gyfer fy enw, ond yn cofio bod yr ail linell 776 00:37:26,130 --> 00:37:29,220 Cod yn cael llinyn eto i gael eu hysgol. 777 00:37:29,220 --> 00:37:32,090 Pa le y mae y gair hwnnw y mae'r defnyddiwr math yng mynd i fynd nesaf? 778 00:37:32,090 --> 00:37:38,290 Wel, efallai ei fod yn mynd i fynd i mewn i H-A-R-V-A-R-D. Felly hyd yn oed er fy mod i wedi 779 00:37:38,290 --> 00:37:41,560 tynnu fel ddwy res, mae hyn yn unig yw criw cyfan o bytes yn eich 780 00:37:41,560 --> 00:37:42,710 RAM cyfrifiadur. 781 00:37:42,710 --> 00:37:46,560 Mae 'na broblem yn awr oherwydd erbyn hyn os ydw i'n defnyddio RAM yn y rhesymol iawn 782 00:37:46,560 --> 00:37:49,910 ond math o ffordd naïf, gall yr hyn yr ydych mae'n debyg nad gwahaniaethu? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 Lle mae un yn dechrau ac yn lle un yn dod i ben, dde? 785 00:37:54,680 --> 00:37:55,860 Maent yn fath o cymylu'r gyda'i gilydd. 786 00:37:55,860 --> 00:37:57,920 >> Felly, mae'n troi allan y cyfrifiadur nid yw'n gwneud hyn. 787 00:37:57,920 --> 00:38:04,720 Gadewch i mi mewn gwirionedd sgrolio yn ôl mewn amser a ychydig o gymeriadau, ac yn hytrach na Harvard 788 00:38:04,720 --> 00:38:09,570 yn mynd yn syth ar ôl enw'r defnyddiwr, y defnyddiwr mewn gwirionedd yn cael, y tu ôl 789 00:38:09,570 --> 00:38:12,000 i'r llenni, cymeriad arbennig mewnosodwyd gan y 790 00:38:12,000 --> 00:38:13,885 cyfrifiadur ar gyfer ef neu hi. 791 00:38:13,885 --> 00:38:19,470 / 0, a elwir fel arall yn gymeriad NUL a elwir yn annoyingly N-U-L, nid 792 00:38:19,470 --> 00:38:22,190 N-U-L-L, ond byddwch yn ysgrifennu fel / 0. 793 00:38:22,190 --> 00:38:27,130 Dim ond yr holl ddarnau sero yn marciwr yn rhwng y gair cyntaf fod y defnyddiwr 794 00:38:27,130 --> 00:38:28,290 teipio a'r ail. 795 00:38:28,290 --> 00:38:33,020 >> Felly Harvard mewn gwirionedd yn awr yn dod i ben i fyny fel dilyniant hwn o gymeriadau 796 00:38:33,020 --> 00:38:36,110 ac un yn fwy / 0. 797 00:38:36,110 --> 00:38:41,690 Felly, mewn geiriau eraill, trwy gael y gwerthoedd sentinel, wyth sero cyffiniol 798 00:38:41,690 --> 00:38:45,220 darnau, gallwch nawr ddechrau i wahaniaethu un cymeriad o un arall. 799 00:38:45,220 --> 00:38:49,720 Felly yr holl amser hwn yr hyn a "helo" yn mewn gwirionedd yn "helo" gyda / 0, ac 800 00:38:49,720 --> 00:38:53,580 yn y cyfamser, gallai fod yn dda iawn yn dipyn o ychydig yn fwy RAM 801 00:38:53,580 --> 00:38:56,400 tu mewn i'r cyfrifiadur. 802 00:38:56,400 --> 00:38:57,810 >> Gadewch i mi wneud un peth arall yn awr. 803 00:38:57,810 --> 00:39:01,800 Mae'n troi allan bod pob un o'r sgwariau hyn rydym wedi bod yn tynnu, maent yn, ie, 804 00:39:01,800 --> 00:39:06,140 llinynnau, ond yn fwy cyffredinol, mae'r pethau hyn yn arrays. 805 00:39:06,140 --> 00:39:10,590 Mae amrywiaeth yn unig yw darn o gof sy'n gefn wrth gefn wrth gefn wrth gefn, 806 00:39:10,590 --> 00:39:15,130 ac rydych fel arfer yn defnyddio amrywiaeth trwy y nodiant braced sgwâr. 807 00:39:15,130 --> 00:39:18,210 Felly, rydym yn mynd i weld y rhain gryn dipyn dros gyfnod o amser, ond gadewch i mi fynd yn ei flaen a 808 00:39:18,210 --> 00:39:21,160 agor i fyny, gadewch i ni alw yn oed. 809 00:39:21,160 --> 00:39:23,920 Ac yn sylwi ar yr hyn y gallwn ei wneud gyda hyn yr un driciau, ychydig yn 810 00:39:23,920 --> 00:39:25,750 ychydig mwy o gystrawen yma. 811 00:39:25,750 --> 00:39:29,270 >> Felly, yn unol 17 o'r rhaglen hon - mewn gwirionedd, gadewch i mi redeg y rhaglen gyntaf 812 00:39:29,270 --> 00:39:30,770 fel y gallwn weld beth mae hyn yn peth yn gwneud. 813 00:39:30,770 --> 00:39:33,530 Gadewch i mi alw gwneud oed i llunio rhaglen hon. 814 00:39:33,530 --> 00:39:34,950 . Oedrannau /. 815 00:39:34,950 --> 00:39:36,480 Faint o bobl sydd yn yr ystafell? 816 00:39:36,480 --> 00:39:38,020 Ffoniwch y tri. 817 00:39:38,020 --> 00:39:39,575 Oedran y person cyntaf? 818 00:39:39,575 --> 00:39:42,710 18, 19, a 20. 819 00:39:42,710 --> 00:39:46,770 Ac yn awr braidd yn chwerthinllyd, Fi jyst wedi gwneud rhaglen sy'n oedrannau hynny 820 00:39:46,770 --> 00:39:47,740 tri o bobl. 821 00:39:47,740 --> 00:39:50,390 >> Felly, mae cyfle clir ar gyfer rhai rhifyddeg hwyl yma. 822 00:39:50,390 --> 00:39:51,560 Diolch byth, y math yn gywir. 823 00:39:51,560 --> 00:39:54,720 18 Aeth i 19, 19 aeth i 20 ac yn y blaen. 824 00:39:54,720 --> 00:39:58,510 Ond beth sy'n olygu mewn gwirionedd i fod yn enghreifftiol dyma yw sut yr ydym yn storio 825 00:39:58,510 --> 00:40:00,190 oedrannau hynny tri pobl. 826 00:40:00,190 --> 00:40:02,370 Gadewch i mi chwyddo i mewn ar yr hyn sydd digwydd yma. 827 00:40:02,370 --> 00:40:06,240 >> Felly, yn gyntaf, dylai'r rhain ychydig linellau cyntaf yn mynd yn eithaf cyfarwydd. 828 00:40:06,240 --> 00:40:08,770 Im 'jyst yn annog y defnyddiwr ar gyfer y nifer y bobl yn yr ystafell. 829 00:40:08,770 --> 00:40:11,490 Yna, Im 'yn arfer cael int ac yn gwneud amser i wneud hyn eto ac eto ac eto. 830 00:40:11,490 --> 00:40:15,780 Rydym wedi gweld y patrwm hwnnw o'r blaen, ond llinell 27 yn newydd ac mewn gwirionedd yn eithaf 831 00:40:15,780 --> 00:40:18,160 ddefnyddiol, a bydd yn dod yn cynyddol ddefnyddiol. 832 00:40:18,160 --> 00:40:21,620 Sylwch fod yr hyn sy'n wahanol yn unol 27 yw fy mod yn ymddangos i fod yn datgan 833 00:40:21,620 --> 00:40:23,960 int enw oedran, ond yn aros. 834 00:40:23,960 --> 00:40:27,140 Nid dim ond oedran int. 835 00:40:27,140 --> 00:40:30,130 Mae hyn cromfachau sgwâr, tu mewn sydd yn n. 836 00:40:30,130 --> 00:40:35,150 >> Felly y braced n yn y cyd-destun hwn, nid tu mewn datganiad printf yma, ond 837 00:40:35,150 --> 00:40:44,370 yn y llinell hon unig 27, llinell hon yn dweud, yn rhoi i mi n ints, pob un ohonynt 838 00:40:44,370 --> 00:40:46,080 o int fath. 839 00:40:46,080 --> 00:40:49,870 Felly mae hwn yn bwced, fel petai, o, yn yr achos hwn, mae tri cyfanrifau yn ôl i 840 00:40:49,870 --> 00:40:52,770 gefn wrth gefn er mwyn i mi effeithiol cael tri newidyn. 841 00:40:52,770 --> 00:40:54,890 Y dewis arall, i fod yn glir, yn hyn. 842 00:40:54,890 --> 00:40:57,400 >> Os wyf am i'r myfyriwr cyntaf oedran, efallai y byddwn yn gwneud hyn. 843 00:40:57,400 --> 00:40:59,520 Os wyf am i'r ail myfyriwr oed efallai y byddwn yn gwneud hyn. 844 00:40:59,520 --> 00:41:01,860 Os wyf am i'r trydydd myfyriwr oedran, efallai y byddwn yn gwneud hyn. 845 00:41:01,860 --> 00:41:04,320 Ac duw a'n gwaredo ni angen i bawb yn oed yn yr ystafell hon - 846 00:41:04,320 --> 00:41:07,670 Yr wyf yn golygu, mae hwn yn andros o lot o gopi, past eto ac eto ac eto. 847 00:41:07,670 --> 00:41:10,870 Ac yn ogystal ar ôl i mi lunio rhaglen hon, os yw'r myfyriwr arall yn cerdded i mewn ar lawr gwlad 848 00:41:10,870 --> 00:41:14,200 y drws, yn awr fy rhif o newidynnau yn anghywir. 849 00:41:14,200 --> 00:41:17,450 >> Felly beth sy'n neis am arae fel gynted ag y byddwch yn dechrau teimlo eich hun 850 00:41:17,450 --> 00:41:20,190 copïo a gludo, groes yw bod yn nad oedd y dull gorau. 851 00:41:20,190 --> 00:41:22,240 Mae amrywiaeth yn ddeinamig bosibl. 852 00:41:22,240 --> 00:41:24,610 Nid wyf yn gwybod ymlaen llaw faint o bobl yn mynd i fod yn yr ystafell, 853 00:41:24,610 --> 00:41:28,670 ond yr wyf yn gwybod angen i mi n ohonynt, ac yr wyf chi helpu chyfrif i maes n pan ddaw'r amser. 854 00:41:28,670 --> 00:41:35,500 Mae'r llinell o god yn awr yn golygu, yn rhoi i mi darn o gof sy'n edrych fel hyn 855 00:41:35,500 --> 00:41:40,380 lle mae nifer o flychau ar y sgrîn yn gwbl ddibynnol ar y n 856 00:41:40,380 --> 00:41:42,010 y defnyddiwr deipio i mewn 857 00:41:42,010 --> 00:41:44,850 >> Felly, yn awr y gweddill y rhaglen hon yw mewn gwirionedd yn eithaf tebyg i'r hyn yr ydym yn 858 00:41:44,850 --> 00:41:46,860 yn unig oedd gyda chymeriadau. 859 00:41:46,860 --> 00:41:49,970 Rhybudd gen i ar gyfer dolen gan ddechrau yn llinell 30. 860 00:41:49,970 --> 00:41:54,920 Felly, i'r dde ar ôl i mi gael yr amrywiaeth, yr wyf yn ailadrodd gan y yn hafal i sero ar hyd at n. 861 00:41:54,920 --> 00:41:58,890 Fi jyst cael y printf addysgiadol neges dim ond dweud, yn rhoi i mi yr oedran 862 00:41:58,890 --> 00:42:03,690 o berson #% i, felly rhif un, rhif dau, rhif tri. 863 00:42:03,690 --> 00:42:04,730 A pham wnes i wneud hyn? 864 00:42:04,730 --> 00:42:08,870 A dweud y gwir, mae'n well gan bobl i gyfrif o un ar hyd tra bod gwyddonwyr cyfrifiadurol, 865 00:42:08,870 --> 00:42:09,620 sero ar i fyny. 866 00:42:09,620 --> 00:42:11,700 Nid yw gwyddonwyr cyfrifiadur yn mynd i defnyddio'r math hwn o raglen, felly rydym yn 867 00:42:11,700 --> 00:42:13,990 mynd i dim ond dechrau cyfrif ar un fel pobl normal. 868 00:42:13,990 --> 00:42:17,630 >> Ac yn awr yn llinell 33, sylwch ar y ychydig darn gwahanol o gystrawen. 869 00:42:17,630 --> 00:42:23,710 Yr oedran i-fed yn y newidyn o'r fath amrywiaeth yn mynd i gael int. 870 00:42:23,710 --> 00:42:25,770 Ac yn awr yn olaf, mae hyn yn unig yw rhifyddeg i lawr yma. 871 00:42:25,770 --> 00:42:29,200 Penderfynais mewn cylch ar wahân i hawlio peth amser yn mynd heibio, ac yn awr yn y 872 00:42:29,200 --> 00:42:31,400 dolen ar wahân, y llinellau hyn gweithredu. 873 00:42:31,400 --> 00:42:35,810 >> Mae blwyddyn o hyn, y person bydd i yn i mlwydd oed, ond sylwi ar hwn, nid yw'r 874 00:42:35,810 --> 00:42:36,500 AMRYWIOL i. 875 00:42:36,500 --> 00:42:38,390 Mae hyn bellach yn% i am int. 876 00:42:38,390 --> 00:42:43,210 Ac hysbysiad fel y placeholder gyntaf, yr wyf yn plwg yn i ac 1, felly rydym yn cyfrif fel 877 00:42:43,210 --> 00:42:44,250 person normal. 878 00:42:44,250 --> 00:42:49,190 Ac yna ar gyfer gwerth eu hoedran, er i mlwydd oed, yr wyf yn cymryd braced oedran 879 00:42:49,190 --> 00:42:52,980 i - a pham ydw i'n ei wneud ynghyd ag un yma? 880 00:42:52,980 --> 00:42:53,760 Maent yn unig oed. 881 00:42:53,760 --> 00:42:55,030 Mae'n fy newis dwp o raglenni. 882 00:42:55,030 --> 00:42:56,810 Maent yn unig yn oed un flwyddyn. 883 00:42:56,810 --> 00:42:59,770 Gallwn i deipio mewn unrhyw nifer a Fi 'n weithredol eisiau yno. 884 00:42:59,770 --> 00:43:02,430 >> Felly, beth sydd mewn gwirionedd yn yr holl perthnasedd yma? 885 00:43:02,430 --> 00:43:07,610 Wel, gadewch i mi mewn gwirionedd sgrolio yn ôl dros yma a phaentio darlun 886 00:43:07,610 --> 00:43:10,830 o'r hyn sydd o'n blaenau. 887 00:43:10,830 --> 00:43:15,720 Beth fyddwn ni'n ei wneud gyda'n nesaf Set Problem Two yn dabbling yn y 888 00:43:15,720 --> 00:43:17,070 byd cryptograffeg. 889 00:43:17,070 --> 00:43:22,500 Felly, mae hyn yn llinyn o gymeriadau, felly mae dilyniant o chars lluosog, a beth 890 00:43:22,500 --> 00:43:23,750 mae hyn yn ei ddweud? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 Dyw hi ddim yn y fersiwn ar-lein o'r sleidiau. 893 00:43:30,600 --> 00:43:35,880 >> Felly, yr wyf yn honni bod hyn yn hafal i hyn, mae hysbyseb dwp o flynyddoedd lawer o 894 00:43:35,880 --> 00:43:39,950 yn ôl a allai fod mewn gwirionedd yn dwyn i gof un o'i darddiad. 895 00:43:39,950 --> 00:43:42,740 Felly, mae hyn yn enghraifft o amgryptio neu cryptograffeg. 896 00:43:42,740 --> 00:43:46,150 Mae'n troi allan, os ydych am i mewn gwirionedd yn anfon gwybodaeth neu rannu 897 00:43:46,150 --> 00:43:49,310 gwybodaeth gyda rhywun yn ddiogel, fel neges fel hyn, gallwch 898 00:43:49,310 --> 00:43:50,500 sgrialu y llythrennau. 899 00:43:50,500 --> 00:43:53,170 Ond fel arfer, y geiriau yn Nid sgramblo ar hap. 900 00:43:53,170 --> 00:43:56,365 Maent yn permuted mewn rhyw ffordd neu ei newid mewn rhyw ffordd fel bod - wps. 901 00:43:56,365 --> 00:43:59,040 Dyna spoiler hwyl ar gyfer y tro nesaf. 902 00:43:59,040 --> 00:44:04,390 >> Felly, gallwch fapio yr hyn sy'n debyg O i B. Sylwch fod llinellau i fyny 903 00:44:04,390 --> 00:44:05,420 cyfalafu-doeth. 904 00:44:05,420 --> 00:44:07,960 Mae'n debyg r yn dod yn e. 905 00:44:07,960 --> 00:44:14,000 Mae'n debyg F-H-E-R yn dod yn S-U-R-E. Felly, mae'n troi allan yna mapio, ac yn 906 00:44:14,000 --> 00:44:18,720 yr achos hwn, mae 'na' n bert dwp mapio oes unrhyw un wedi cyfrifedig allan? 907 00:44:18,720 --> 00:44:21,440 Mae hyn yn rhywbeth a elwir yn Rot 13, Cylchdroi 13. 908 00:44:21,440 --> 00:44:24,760 Dyma'r stupidest o amgryptio mecanweithiau oherwydd ei fod yn llythrennol yn unig 909 00:44:24,760 --> 00:44:29,160 yn ychwanegu 13 i bob un o'r llythyrau, gwirion yn yr ystyr, os ydych yn unig 910 00:44:29,160 --> 00:44:31,890 gael ychydig o amser rhydd ar eich dwylo a phensil, neu os ydych yn meddwl ei fod 911 00:44:31,890 --> 00:44:35,260 trwy yn eich pen, gallech roi cynnig ar holl ychwanegiadau posibl - un, dau, 912 00:44:35,260 --> 00:44:38,470 tri, dot, dot, dot, 25 i ddim ond cylchdroi y wyddor cyfan, a 913 00:44:38,470 --> 00:44:40,860 yn y pen draw, byddwch yn chyfrif i maes pa neges yw hyn. 914 00:44:40,860 --> 00:44:43,700 Felly, os ydych wedi gwneud rhywbeth fel hyn yn radd ysgol pasio negeseuon at eich 915 00:44:43,700 --> 00:44:46,830 ffrind gorau, os yw eich ysgol radd athro dim ond ei ddarllen drwy'r 916 00:44:46,830 --> 00:44:50,320 neges a 'n Ysgrublaidd orfodi ateb, efallai y byddwch wedi gotten 917 00:44:50,320 --> 00:44:52,550 ateb gan hynny. 918 00:44:52,550 --> 00:44:54,970 >> Yn awr, wrth gwrs, yn y byd go iawn, cryptograffeg yn fwy soffistigedig. 919 00:44:54,970 --> 00:45:00,120 Mae hyn yn snippet o destun o system gyfrifiadurol sy'n cael enwau defnyddwyr a 920 00:45:00,120 --> 00:45:03,630 cyfrineiriau, gan fod bron pob un o ni yn ei wneud, a mae hyn yn beth y gallai eich cyfrinair 921 00:45:03,630 --> 00:45:07,260 edrych os ydych chi'n ei storio ar eich caled gyrru ond ar ffurf hamgryptio. 922 00:45:07,260 --> 00:45:11,050 Nid yw hyn yn unig yw cylchdro o lythyrau, A yn B a B yw C. Mae hyn yn 923 00:45:11,050 --> 00:45:15,620 llawer mwy soffistigedig, ond mae'n defnyddio yr hyn a elwir yn gyffredinol yn allweddol gyfrinach 924 00:45:15,620 --> 00:45:16,690 cryptograffeg. 925 00:45:16,690 --> 00:45:20,210 Mae'r darlun hwn yn dweud wrth y canlynol stori gydag ychydig o eiconau. 926 00:45:20,210 --> 00:45:22,250 >> Ar y chwith, mae gennym yr hyn byddwn yn galw testun plaen. 927 00:45:22,250 --> 00:45:25,420 Yn y byd o cryptograffeg, plaen testun yn unig y neges wreiddiol 928 00:45:25,420 --> 00:45:29,050 a ysgrifennwyd yn Saesneg neu Ffrangeg neu unrhyw iaith o gwbl. 929 00:45:29,050 --> 00:45:32,405 Os ydych am i amgryptio iddo, byddwn yn pasio ei fod yn ddarluniadol trwy clo, felly 930 00:45:32,405 --> 00:45:35,580 rhyw fath o o algorithm, rhyw swyddogaeth neu raglen bod rhywun ysgrifennodd 931 00:45:35,580 --> 00:45:39,880 bod scrambles y llythrennau gobeithio complicatedly fwy na dim ond ychwanegu 13 932 00:45:39,880 --> 00:45:40,980 i bob un ohonynt. 933 00:45:40,980 --> 00:45:43,780 >> Beth fyddwch chi'n ei gael allan o'r broses honno yn y Gelwir canol yno cyphertext. 934 00:45:43,780 --> 00:45:44,850 Felly, math o air sexy. 935 00:45:44,850 --> 00:45:47,630 Mae'n jyst yn golygu ei fod yn y amgryptio fersiwn o'r testun plaen. 936 00:45:47,630 --> 00:45:52,570 A dim ond os oes gennych yr un gyfrinach, 13 neu finws 13, a ydych yn gallu 937 00:45:52,570 --> 00:45:54,970 dadgryptio neges fel 'na. 938 00:45:54,970 --> 00:45:57,770 >> Felly, yn Problem Set Dau, ymhlith y pethau byddwch yn ei wneud os bydd yn y Hacker 939 00:45:57,770 --> 00:46:01,860 Argraffiad, bydd rhaid i chi ysgrifennu cod i agenna cyfrineiriau hyn, figuring 940 00:46:01,860 --> 00:46:05,170 beth oedden nhw a sut y cawsant eu amgryptio, er ein bod yn rhoi ychydig i chi 941 00:46:05,170 --> 00:46:06,460 o ganllawiau ar hyd y ffordd. 942 00:46:06,460 --> 00:46:09,320 Yn y Argraffiad Safon, rydym yn cyflwyno ychydig o dulliau cêl-ysgrifennu, amgryptio 943 00:46:09,320 --> 00:46:12,400 mecanweithiau, un o'r enw Caesar, un Gelwir Vigenere, sy'n dal 944 00:46:12,400 --> 00:46:16,100 dulliau cêl-ysgrifennu cylchdro lle mae A yn dod yn rhywbeth, B yn dod yn rhywbeth, ond 945 00:46:16,100 --> 00:46:18,820 rhaid i chi wneud hynny programmatically oherwydd bydd yn wir yn gyfrinach 946 00:46:18,820 --> 00:46:22,840 allweddol dan sylw sydd fel arfer mae nifer neu air allweddol mai dim ond y 947 00:46:22,840 --> 00:46:26,420 anfonwr a'r derbynnydd o'r rhain Dylai negeseuon deall. 948 00:46:26,420 --> 00:46:28,660 >> Yn awr, mae hyn mewn gwirionedd wedi ymgnawdoliadau yn y byd go iawn. 949 00:46:28,660 --> 00:46:32,910 Mae hyn, er enghraifft, yn llawer amddifad Ffoniwch decoder gyfrinachol Annie, ac rydych 950 00:46:32,910 --> 00:46:35,180 mewn gwirionedd gall gweithredu'r rhain dulliau cêl-ysgrifennu cylchdro - 951 00:46:35,180 --> 00:46:37,930 A dod yn rhywbeth, B yn dod yn rhywbeth - gyda chwpl o olwynion, 952 00:46:37,930 --> 00:46:40,840 un ar y tu allan, un ar y tu mewn fel bod os ydych yn cylchdroi yr olwyn neu 953 00:46:40,840 --> 00:46:44,170 y cylch, gallwch chi mewn gwirionedd yn llinell i fyny y llythrennau gyda gwahanol lythrennau, 954 00:46:44,170 --> 00:46:45,430 cael cod gyfrinach. 955 00:46:45,430 --> 00:46:48,110 Ac felly gan fod y Cliffhanger ar gyfer heddiw, hyn yr wyf yn meddwl y byddwn i'n ei wneud yw ychydig o 956 00:46:48,110 --> 00:46:52,170 throwback, os byddwch yn troi ar y teledu ar 24 Rhagfyr, gallwch weld y 957 00:46:52,170 --> 00:46:55,390 ffilm nauseum ad ar gyfer 24 awr yn olynol. 958 00:46:55,390 --> 00:47:06,030 Ond ar gyfer heddiw, byddaf yn agor i fyny yma ac yn rhoi dim ond dau funud o ni 959 00:47:06,030 --> 00:47:13,493 Stori Nadolig pedagogaidd perthnasol gydag ychydig yn gymrawd o'r enw Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [VIDEO Playback] 961 00:47:14,400 --> 00:47:17,420 >> -Bod yn hysbys i bawb ac amrywiol sy'n Ralph Parker yn cael ei benodi drwy hyn yn 962 00:47:17,420 --> 00:47:20,650 aelod o'r Amddifad Little Annie gyfrinach cylch ac mae ganddo'r hawl i bob 963 00:47:20,650 --> 00:47:23,460 yr anrhydedd a budd-daliadau hynny ddigwydd. 964 00:47:23,460 --> 00:47:25,990 >> -Llofnodwyd, Orphan Annie Little. 965 00:47:25,990 --> 00:47:30,100 Chydlofnodi, Pierre Andre mewn inc. 966 00:47:30,100 --> 00:47:34,270 Anrhydeddau a budd-daliadau sydd eisoes yn oed o naw. 967 00:47:34,270 --> 00:47:39,440 >> [GWEIDDI AR RADIO] 968 00:47:39,440 --> 00:47:40,770 >> Dewch ymlaen, gadewch i ni fwrw ymlaen ag ef. 969 00:47:40,770 --> 00:47:44,965 Nid oes angen i bob un sy'n jazz am I smyglwyr a môr-ladron. 970 00:47:44,965 --> 00:47:48,270 >> Gwrandewch-nos yfory ar gyfer y terfynol antur y du 971 00:47:48,270 --> 00:47:49,650 llong môr-ladron. 972 00:47:49,650 --> 00:47:53,320 Yn awr, mae'n amser i Secret Annie Neges i chi aelodau 973 00:47:53,320 --> 00:47:55,720 y cylch cudd. 974 00:47:55,720 --> 00:47:56,580 Cofiwch, plant. 975 00:47:56,580 --> 00:48:01,720 Dim ond aelodau o Cylch Secret Annie Gall dadgodio neges gyfrinach Annie. 976 00:48:01,720 --> 00:48:05,872 Cofiwch, Annie yn dibynnu arnoch chi. 977 00:48:05,872 --> 00:48:08,670 Gosodwch eich pinnau i B2. 978 00:48:08,670 --> 00:48:11,000 Dyma yw'r neges. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -Yr wyf yn fy nghyfarfod cyfrinachol cyntaf. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> Oedd-Pierre yn llais mawr heno. 983 00:48:21,650 --> 00:48:24,830 Gallwn ddweud neges bod heno Roedd yn bwysig iawn. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 Dyna neges gan Annie ei hun. 986 00:48:28,540 --> 00:48:30,086 Cofiwch, peidiwch â dweud wrth unrhyw un. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 Eiliad yn ddiweddarach, rwy'n yn yr unig ystafell yn y tŷ lle mae bachgen o naw 989 00:48:38,710 --> 00:48:42,668 Gallai eistedd yn breifat a dadgodio. 990 00:48:42,668 --> 00:48:47,628 Ha, B. es i i'r nesaf. 991 00:48:47,628 --> 00:48:53,060 E. Y gair cyntaf yw "fod." S. Ei fod yn dod yn haws nawr. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 Dyna R. 994 00:48:55,940 --> 00:48:56,900 >> -Dewch ar, Ralphie. 995 00:48:56,900 --> 00:48:57,860 I gotta mynd. 996 00:48:57,860 --> 00:48:59,780 >> -I'll fod yn iawn i lawr, Ma. 997 00:48:59,780 --> 00:49:01,030 Law arni Gee. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. O. Byddwch yn siwr i. 1000 00:49:08,220 --> 00:49:09,500 Byddwch yn siwr i beth? 1001 00:49:09,500 --> 00:49:11,660 Beth oedd Little Orphan Annie yn ceisio ei ddweud? 1002 00:49:11,660 --> 00:49:12,844 Byddwch yn siwr i beth? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie, Randy wedi mynd i fynd. 1004 00:49:14,732 --> 00:49:16,148 A wnewch chi os gwelwch yn dda dod allan? 1005 00:49:16,148 --> 00:49:17,092 >> -Mae pob hawl, Ma. 1006 00:49:17,092 --> 00:49:18,510 'N annhymerus' yn iawn allan. 1007 00:49:18,510 --> 00:49:20,270 >> -I yn dod yn nes at nawr. 1008 00:49:20,270 --> 00:49:21,823 Roedd y tensiwn yn ofnadwy. 1009 00:49:21,823 --> 00:49:23,045 Beth oedd hi? 1010 00:49:23,045 --> 00:49:26,510 Mae tynged y blaned gall hongian yn y fantol. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie, mynd gotta Randy yn. 1012 00:49:28,985 --> 00:49:32,680 >> -I'll fod yn iawn ar gyfer crio yn uchel. 1013 00:49:32,680 --> 00:49:33,956 >> -Mae bron yno. 1014 00:49:33,956 --> 00:49:35,140 Fy mysedd hedfan. 1015 00:49:35,140 --> 00:49:36,880 Fy meddwl oedd trap dur. 1016 00:49:36,880 --> 00:49:38,010 Mae pob mandwll vibrated. 1017 00:49:38,010 --> 00:49:39,878 Yr oedd bron yn glir. 1018 00:49:39,878 --> 00:49:43,210 Ie, ie, ie, ie, ie. 1019 00:49:43,210 --> 00:49:49,030 >> -Byddwch yn siwr i yfed eich Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Mae fasnachol crummy? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 Mab i ast. 1025 00:50:00,694 --> 00:50:01,900 >> [VIDEO END Playback] 1026 00:50:01,900 --> 00:50:04,260 >> SIARADWR 1: Mae hwn yn CS50, a bod Bydd Set Problem Dau. 1027 00:50:04,260 --> 00:50:06,305 Welwn ni chi wythnos nesaf. 1028 00:50:06,305 --> 00:50:08,800 >> SIARADWR 2: Yn y nesaf CS50, bydd hyn yn digwydd. 1029 00:50:08,800 --> 00:50:11,060 >> SIARADWR 1: Felly un pwnc nid ydym wedi edrych ar hyd yn hyn yn 1030 00:50:11,060 --> 00:50:12,220 bod o awgrymiadau swyddogaeth. 1031 00:50:12,220 --> 00:50:14,540 Yn awr, mae pwyntydd swyddogaeth yn unig cyfeiriad cyhoeddus 1032 00:50:14,540 --> 00:50:17,000 swyddogaeth, ond yn debyg iawn - 1033 00:50:17,000 --> 00:50:18,250 mab i - 1034 00:50:18,250 --> 00:50:19,670