1 00:00:00,000 --> 00:00:12,410 >> [CHWARAE CERDDORIAETH] 2 00:00:12,410 --> 00:00:12,830 >> DAVID Malan: Pob hawl. 3 00:00:12,830 --> 00:00:13,370 Croeso yn ôl. 4 00:00:13,370 --> 00:00:16,510 Mae hyn yn CS50, ac mae hyn yn Wythnos Un, Parhad. 5 00:00:16,510 --> 00:00:20,050 Felly, un o'r rhesymau pam yr ydym wedi bod yn pasio ymwneud â thechnolegau fel 6 00:00:20,050 --> 00:00:24,120 Google Glass yw eu bod yn dod gyda rhywbeth a elwir yn API, yn 7 00:00:24,120 --> 00:00:25,980 Cais Rhyngwyneb Rhaglennu. 8 00:00:25,980 --> 00:00:28,830 A beth mae hyn yn ei olygu yw bod gyda ffeiliau cywir ac â'r hawl 9 00:00:28,830 --> 00:00:32,850 dogfennau, gallwch ysgrifennu mewn gwirionedd meddalwedd ar gyfer dyfeisiau hyd yn oed fel y rhain. 10 00:00:32,850 --> 00:00:36,200 >> Ac felly yr hyn sydd gennym mewn golwg tuag at diwedd semester yw, os bydd prosiect 11 00:00:36,200 --> 00:00:39,310 cynnwys, er enghraifft, Google Glass gallai apęl, byddwn yn gweld yr hyn y gallwn ei wneud yn 12 00:00:39,310 --> 00:00:42,220 ran hooking â chi i fyny gyda rhai loaner caledwedd yn ogystal â'r 13 00:00:42,220 --> 00:00:46,500 API gyhoeddus hygyrch fel y gallwch dechrau mewn gwirionedd yn creu meddalwedd 14 00:00:46,500 --> 00:00:48,630 sy'n rhedeg ar yr un Google Glass. 15 00:00:48,630 --> 00:00:51,710 >> Ddyfais arall yr ydym wedi bod yn chwarae gyda yn ddiweddar ein bod yn meddwl y gallai fod yn 16 00:00:51,710 --> 00:00:53,910 hwyl ar ddiwedd y semester yn y peth bach yma. 17 00:00:53,910 --> 00:00:56,860 Mae'n cael ei alw Cynnig Leap, a beth rydych chi'n am ei weld yw dechnegol yn 18 00:00:56,860 --> 00:01:00,280 hysbyseb ar gyfer y ddyfais, ond mae'n yn siarad â beth mae hyn yn arbennig 19 00:01:00,280 --> 00:01:01,240 ddyfais yn gallu. 20 00:01:01,240 --> 00:01:05,550 Ac mae'n, hefyd, yn dod ag API drwy y gallwch ysgrifennu meddalwedd i 21 00:01:05,550 --> 00:01:10,545 rheoli eich cyfrifiadur eich hun mewn modd eithaf hoffi y ffilm un munud yma. 22 00:01:10,545 --> 00:01:12,070 >> [VIDEO Playback] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [VIDEO END Playback] 25 00:02:08,590 --> 00:02:11,190 >> Felly, ar hyn o bryd, dyfais hyn yn digwydd i cael eu gweithredu cyn lleied o USB 26 00:02:11,190 --> 00:02:14,290 cysylltydd y gallwch dopio i mewn i'ch cyfrifiadur, ond ni fyddwn yn synnu 27 00:02:14,290 --> 00:02:17,930 os cyn hir gennym y mathau hyn o technolegau yn y swp nesaf o gyfrifiaduron 28 00:02:17,930 --> 00:02:20,510 a Macs fel y gallwch, yn wir, rhyngweithio â hi mewn 29 00:02:20,510 --> 00:02:21,650 ffordd fel 'na. 30 00:02:21,650 --> 00:02:24,250 Yn wir, yr hyn yr wyf yn meddwl y byddwn i'n ei wneud, hefyd, yn Yr wyf yn tynnu i fyny ychydig o arddangosiad 31 00:02:24,250 --> 00:02:25,860 rhaglen sy'n dod gyda'r feddalwedd hon. 32 00:02:25,860 --> 00:02:28,700 Felly, yr wyf wedi rhoi'r synhwyrydd bach o flaen fy ngliniadur. 33 00:02:28,700 --> 00:02:32,420 >> Ac fel y gwelwch, mae'n sylweddoli eisoes bod fy llaw yno 34 00:02:32,420 --> 00:02:33,400 rheoli. 35 00:02:33,400 --> 00:02:37,900 A'r holl y cais hwn yn ei wneud swimmingly pethau bach fel hyn. 36 00:02:37,900 --> 00:02:41,080 Ond gallwch weld bod, yn wir, Mae gennyf bum bysedd yno. 37 00:02:41,080 --> 00:02:44,270 Os gallwn ei gael i wneud yr holl 10, gallwch ddychmygu piano taclus 38 00:02:44,270 --> 00:02:45,390 cais neu yn y blaen. 39 00:02:45,390 --> 00:02:47,820 Felly, os hoffech chi i ddod o hyd ar ôl y dosbarth heddiw a chwarae gyda hynny fel 40 00:02:47,820 --> 00:02:49,720 yn dda, mae croeso i chi. 41 00:02:49,720 --> 00:02:52,930 Felly mwy am hynny tuag at ddiwedd y semester. 42 00:02:52,930 --> 00:02:54,420 >> Felly, ychydig o gweinyddol cyhoeddiadau. 43 00:02:54,420 --> 00:02:58,690 Un, wneud yr adran erbyn dydd Gwener hwn am hanner dydd ar cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 Bod URL ar y cwrs hafan hefyd. 45 00:03:01,260 --> 00:03:04,010 Yn y cyfamser, fodd bynnag, supersections Bydd gêm gyntaf y Sul hwn. 46 00:03:04,010 --> 00:03:07,800 Supersections yn beth un-amser, oherwydd ei fod yn mynd â ni beth amser i weithio 47 00:03:07,800 --> 00:03:09,470 gwybod pwy sydd yn y mae adran ac ymhle. 48 00:03:09,470 --> 00:03:12,280 >> Felly, mae hyn Dydd Sul nesaf, bydd yna un adran ar gyfer y rhai llai cyfforddus, 49 00:03:12,280 --> 00:03:14,040 un adran ar gyfer y rhai yn fwy cyfforddus. 50 00:03:14,040 --> 00:03:16,110 A'r rhai ohonoch rhywle yn Mae croeso i fynd i rhwng 51 00:03:16,110 --> 00:03:17,850 naill neu'r ddau neu naill na'r llall. 52 00:03:17,850 --> 00:03:19,150 Bydd y ddau o'r rhain yn cael ei ffilmio. 53 00:03:19,150 --> 00:03:22,740 Byddant mewn awditoriwm fwy na'r byddai adran fel arfer mewn 54 00:03:22,740 --> 00:03:26,110 Ond y nod yma yw rhoi i chi'r rhywfaint o gysur gyda phroblem gosod un, 55 00:03:26,110 --> 00:03:29,910 gyda C, gyda'r CS50 peiriant, mae hyn yn penwythnos, hyd yn oed cyn i chi ddod o hyd i'ch 56 00:03:29,910 --> 00:03:31,050 aseiniad adran ffurfiol. 57 00:03:31,050 --> 00:03:34,700 Felly byddwch yn cwrdd â'ch TF a'ch llai grŵp o sectionmates mewn tua 58 00:03:34,700 --> 00:03:36,350 ymhen wythnos. 59 00:03:36,350 --> 00:03:38,200 >> Oriau swyddfa, yn y cyfamser, wedi bod yn mynd ymlaen. 60 00:03:38,200 --> 00:03:41,020 A oes fanteisio arnynt heno neu nos yfory os hoffech. 61 00:03:41,020 --> 00:03:43,460 Problem set 0 yn ddyledus ar ddydd Gwener. 62 00:03:43,460 --> 00:03:46,680 Mae hwn yn ddiwrnod hwyrach na'r rheolaidd-drefnu ddydd Iau. 63 00:03:46,680 --> 00:03:50,410 Ond gyda phroblem set 1, byddwch yn gweld ei fod yn cynnwys rhai cynhesu 64 00:03:50,410 --> 00:03:52,770 chi eich hun ymarferion â hwy gallu ymestyn eich 65 00:03:52,770 --> 00:03:54,660 Dyddiad cau Iau i ddydd Gwener. 66 00:03:54,660 --> 00:03:58,410 Problem set 1, yn y cyfamser, bydd y tro cyntaf ar wefan y cwrs hwn yn dod 67 00:03:58,410 --> 00:04:02,000 Dydd Gwener, os hoffech i cyrlio i fyny gyda iddo fel y gwneuthum ar un adeg hwyr 68 00:04:02,000 --> 00:04:04,370 Nos Wener yn eich ystafell. 69 00:04:04,370 --> 00:04:07,660 >> Felly cs50.net/appliance yn y man lle gallwch gael y cyfarpar CS50 70 00:04:07,660 --> 00:04:09,040 ein bod yn dechrau defnyddio ar ddydd Llun. 71 00:04:09,040 --> 00:04:10,140 Byddwn yn defnyddio ychydig yn fwy heddiw. 72 00:04:10,140 --> 00:04:14,040 Ond yn dawel eich meddwl bod y broblem a osodwyd 1 Bydd manyleb byddwch yn cerdded trwy 73 00:04:14,040 --> 00:04:16,490 union pa gamau rydych angen i gael y cychwyn. 74 00:04:16,490 --> 00:04:22,120 Felly peidiwch â phoeni am wneud hynny cyn Pset 1 os ydych yn byddai'n well peidio. 75 00:04:22,120 --> 00:04:22,660 >> Mae pob hawl. 76 00:04:22,660 --> 00:04:27,180 Felly, rydym yn edrych ar Llun am cod ffynhonnell, ond yng nghyd-destun newydd 77 00:04:27,180 --> 00:04:30,895 iaith raglennu, sef C. A C, yn wahanol i Scratch, nid yw'n graffigol. 78 00:04:30,895 --> 00:04:32,270 Dyw hi ddim yn bendroni darnau. 79 00:04:32,270 --> 00:04:34,450 Mae'n fwy tebyg i Saesneg cystrawen. 80 00:04:34,450 --> 00:04:37,140 Ac mae un neu ddau o gamau sy'n ymwneud mewn gwirionedd yn ysgrifennu a rhedeg 81 00:04:37,140 --> 00:04:41,650 rhaglen yn C, oherwydd ar wahân i ffynhonnell cod fel hyn, mae angen rhywbeth 82 00:04:41,650 --> 00:04:42,890 a elwir yn compiler. 83 00:04:42,890 --> 00:04:46,682 Ac mewn termau lleyg, yr hyn mae casglwr yn ei wneud i ni? 84 00:04:46,682 --> 00:04:47,650 Yeah. 85 00:04:47,650 --> 00:04:51,040 >> MYFYRIWR: Mae'n trosi y cod eich bod yn ysgrifennu at 0s a 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID Malan: Da. 87 00:04:51,151 --> 00:04:53,580 Felly, mae'n trosi'r cod sy'n byddwn yn ysgrifennu at 0s a 1s. 88 00:04:53,580 --> 00:04:57,730 Mae'n trosi hyn a elwir yn cod ffynhonnell i cod gwrthrych, yr olaf sy'n edrych 89 00:04:57,730 --> 00:04:59,140 rhywbeth bach fel hyn. 90 00:04:59,140 --> 00:05:02,860 Ac mae'n eich CPU, yr ymennydd tu mewn eich cyfrifiadur, oherwydd y 91 00:05:02,860 --> 00:05:06,280 bobl a greodd cyfrifiaduron hynny, gwybod pa dilyniannau hynny 92 00:05:06,280 --> 00:05:07,460 o cymedr 0s a 1s. 93 00:05:07,460 --> 00:05:08,640 >> Efallai mae'n golygu print. 94 00:05:08,640 --> 00:05:10,265 Efallai ei fod yn golygu ychwanegiad. 95 00:05:10,265 --> 00:05:11,610 Efallai ei fod yn golygu tynnu. 96 00:05:11,610 --> 00:05:13,350 Efallai ei fod yn golygu arddangos graffig. 97 00:05:13,350 --> 00:05:16,870 Mae patrymau rhagosodol o ddarnau bod y byd wedi penderfynu yn ei olygu 98 00:05:16,870 --> 00:05:17,700 rhai pethau. 99 00:05:17,700 --> 00:05:20,760 Ond ar gyfer y rhan fwyaf yn y cwrs hwn, byddwn yn gweithio ar lefel uwch, ac 100 00:05:20,760 --> 00:05:24,180 byddwn yn cymryd yn ganiataol bod yn bodoli pethau fel crynoadyddion y gall 101 00:05:24,180 --> 00:05:27,670 gwneud ein swyddogaeth cod ffynhonnell yn y ffordd yr ydym yn bwriadu. 102 00:05:27,670 --> 00:05:31,660 >> Felly, y rhaglen rydym yn ysgrifennu cyntaf yr wythnos diwethaf ac yna dechreuodd i borthladd, felly i 103 00:05:31,660 --> 00:05:33,920 siarad, i C gorffennol mae hyn Dydd Llun, oedd hyn. 104 00:05:33,920 --> 00:05:35,700 Pan fydd baner werdd glicio, yn dweud helo. 105 00:05:35,700 --> 00:05:37,430 Roedd hyn, wrth gwrs, ysgrifennwyd yn Scratch. 106 00:05:37,430 --> 00:05:40,710 Ac yr wyf yn honni bod yr hyn sy'n cyfateb rhaglen yn C yn edrych ychydig yn 107 00:05:40,710 --> 00:05:41,520 rhywbeth fel hyn. 108 00:05:41,520 --> 00:05:45,050 >> Felly, yr hyn yr wyf yn meddwl byddem yn ei wneud yn gyntaf yw, gadewch i ni canfod beth ar wahân edrych, ar y dechrau 109 00:05:45,050 --> 00:05:48,790 olwg, rhaid cyfaddef, yn weddol arcane cystrawen, ond byddwch yn dechrau sylwi ar 110 00:05:48,790 --> 00:05:50,160 patrymau yn eithaf cyflym. 111 00:05:50,160 --> 00:05:53,770 Yr hyn byddwn hefyd yn ei wneud heddiw yw darparu chi gyda model meddwl ar gyfer rhai 112 00:05:53,770 --> 00:05:57,280 ganonaidd, mae rhai lluniadau safonol mewn rhaglennu. 113 00:05:57,280 --> 00:06:00,420 Ac yna byddwn mewn gwirionedd yn cael ein dwylo budr gyda rhai enghreifftiau hefyd. 114 00:06:00,420 --> 00:06:04,140 >> Felly, ar gyfer y rhai ohonoch yn fwy cyfforddus, sylweddoli bod yr wythnos hon, ac yna nesaf 115 00:06:04,140 --> 00:06:05,940 Efallai y wythnos yn dda iawn fod yn dipyn o adolygu. 116 00:06:05,940 --> 00:06:08,810 Ond yn enwedig pan fydd y rhifyn haciwr o broblem set 1 yn mynd allan ar y 117 00:06:08,810 --> 00:06:12,330 gwefan cwrs ar ddydd Gwener, yr wyf yn credu fe welwch fod hyd yn oed wrth i chi lenwi'r 118 00:06:12,330 --> 00:06:15,390 rhai bylchau dros yr wythnos neu ddwy nesaf, byddwch yn dechrau i gael hyd yn oed mwy 119 00:06:15,390 --> 00:06:18,410 herio ac yn dod ar draws pethau newydd a mwy newydd. 120 00:06:18,410 --> 00:06:21,310 >> Felly, gadewch i ni canfod y rhaglen hon ar wahân ychydig o linellau ar y tro. 121 00:06:21,310 --> 00:06:24,140 Ar frig iawn, mae gennym beth sy'n a elwir yn dechnegol yn 122 00:06:24,140 --> 00:06:25,950 gyfarwyddeb Preprocessor. 123 00:06:25,950 --> 00:06:30,510 Mae hyn yn unig yw llinell o god sy'n dweud i gynnwys y cynnwys y ffeil, 124 00:06:30,510 --> 00:06:35,080 o'r enw Yr wyf safonol / N, mewnbwn safonol - neu, mae'n ddrwg gennyf, safon I / O, safon 125 00:06:35,080 --> 00:06:38,670 mewnbwn / allbwn,. h, y tu mewn o fy rhaglen eu hunain. 126 00:06:38,670 --> 00:06:41,670 >> Felly, mewn geiriau eraill, os wyf yn ysgrifennodd y rhaglen gyda golygydd testun syml fel 127 00:06:41,670 --> 00:06:45,260 gedit, yr hyn sy'n cyfateb symlach o rhywbeth fel Microsoft Word, sy'n 128 00:06:45,260 --> 00:06:50,970 cyfarwyddyd, # yn cynnwys stdio.h, yn unig yn mynd i ddweud wrth y compiler, chrafangia 'r 129 00:06:50,970 --> 00:06:56,080 cynnwys y ffeil eraill, stdio.h, a bastio yn iawn yma. 130 00:06:56,080 --> 00:06:57,090 >> Yn awr, pam ydw i'n gofal? 131 00:06:57,090 --> 00:07:01,850 Beth wnaethon ni ei hawlio yn y tu mewn i'r ffeil hon enw stdio.h, sy'n cael ei storio 132 00:07:01,850 --> 00:07:05,490 rhywle ar fy 'n anawdd cathrena, neu yn y achos, rhywle yn y CS50 offer? 133 00:07:05,490 --> 00:07:06,635 Rhywun arall roi yno i mi. 134 00:07:06,635 --> 00:07:09,910 Ond beth sydd ynddo? 135 00:07:09,910 --> 00:07:13,020 >> Yeah, felly mae'n ddatganiad o swyddogaeth o'r enw printf. 136 00:07:13,020 --> 00:07:17,400 Felly printf yn cofio y swyddogaeth sy'n arddangosfeydd geiriau a chymeriadau a 137 00:07:17,400 --> 00:07:20,160 rhifau ar y sgrin ar fy cynnig. 138 00:07:20,160 --> 00:07:21,220 Ond doeddwn i ddim yn ei ysgrifennu. 139 00:07:21,220 --> 00:07:22,230 Nid oedd CS50 ysgrifennu. 140 00:07:22,230 --> 00:07:26,990 Flynyddoedd Rhywun yn ôl ysgrifennodd, ac maent yn Rhoddodd y rysáit ar gyfer ei fod yn ein hanfod 141 00:07:26,990 --> 00:07:29,110 mewn ffeil o'r enw stdio.h. 142 00:07:29,110 --> 00:07:33,240 Felly, y llinell gyntaf yn unig yn rhoi i mi gael mynediad â swyddogaethau bod rhywun arall 143 00:07:33,240 --> 00:07:36,500 Ysgrifennodd flynyddoedd yn ôl, ymhlith sy'n printf. 144 00:07:36,500 --> 00:07:39,450 >> Yn awr, y llinell nesaf Rydw i'n mynd i chwifio fy gynnig ar, o leiaf tan yr wythnos nesaf. 145 00:07:39,450 --> 00:07:43,620 Ond am y tro, yn gwybod bod int brif (gwag) yn hanfod yr hyn sy'n cyfateb o hyn 146 00:07:43,620 --> 00:07:46,310 darn pos melyn pan baner werdd glicio. 147 00:07:46,310 --> 00:07:49,510 Y byd, flynyddoedd yn ôl, penderfynodd, os eich bod yn ysgrifennu rhaglenni yn y 148 00:07:49,510 --> 00:07:53,150 iaith o'r enw C, byddwch yn dechrau eich rhaglen gyda llinell 149 00:07:53,150 --> 00:07:54,410 sy'n edrych fel 'na. 150 00:07:54,410 --> 00:07:57,650 Mewn dim ond ymhen rhyw wythnos, bydd yn gwneud synnwyr beth int yw, beth yn ddi-rym. 151 00:07:57,650 --> 00:08:00,840 Ond am nawr, dim ond feddwl am y peth gan fod hyn yn darn pos melyn. 152 00:08:00,840 --> 00:08:04,550 >> Yn awr nesaf, mae gennym Brace cyrliog dilyn gan Brace cyrliog agos arall, 153 00:08:04,550 --> 00:08:05,240 fel petai. 154 00:08:05,240 --> 00:08:07,430 A byddwn yn gweld hyn drwy gydol rhaglenni yn C, yn ogystal â 155 00:08:07,430 --> 00:08:08,930 JavaScript a PHP. 156 00:08:08,930 --> 00:08:11,345 Ac mae'r rhain yn dim ond crynhoi linellau cysylltiedig cod. 157 00:08:11,345 --> 00:08:14,600 Mae'r brês cyrliog agored yn ei hanfod dweud, dyma daw rhywfaint cod. 158 00:08:14,600 --> 00:08:17,590 Ac mae'r Brace cyrliog caeedig, sy'n ongl yn y cyfeiriad arall, dim ond 159 00:08:17,590 --> 00:08:19,920 yn golygu, dyna ni am y cod perthnasol. 160 00:08:19,920 --> 00:08:22,970 >> Felly y llinell llawn sudd yn y cyntaf rhaglen yn yr olaf, printf, 161 00:08:22,970 --> 00:08:25,080 dyfynnwch-unquote, helo byd. 162 00:08:25,080 --> 00:08:30,670 Ac yr wyf yn galw y peth rhwng dyfyniadau hyn y tro diwethaf? 163 00:08:30,670 --> 00:08:31,285 Felly mae'n llinyn. 164 00:08:31,285 --> 00:08:35,309 A llinyn yn unig y techie dymor ar gyfer dilyniant o 165 00:08:35,309 --> 00:08:37,169 cymeriadau, gair, ymadrodd. 166 00:08:37,169 --> 00:08:39,380 Gallai hyd yn oed un llythyren yn cael eu dyfynnu dwbl. 167 00:08:39,380 --> 00:08:41,840 Ond mae'n dilyniant o sero neu gymeriadau fwy. 168 00:08:41,840 --> 00:08:43,650 >> Slaes-n, fodd bynnag, yn edrych ychydig yn rhyfedd. 169 00:08:43,650 --> 00:08:46,290 Ond yn syml, yn golygu rhywbeth syml i'r cyfrifiadur. 170 00:08:46,290 --> 00:08:48,060 Beth sy'n slaes-n? 171 00:08:48,060 --> 00:08:48,570 Llinell newydd. 172 00:08:48,570 --> 00:08:52,490 Felly, dim ond y dilyniant arbennig cymeriadau bod y byd wedi penderfynu 173 00:08:52,490 --> 00:08:56,880 yn golygu rhoi toriad llinell iawn yno, oherwydd bydd y compiler mewn gwirionedd yn cael 174 00:08:56,880 --> 00:09:02,280 ddryslyd, fel arfer, os ydych chi, iawn ddealladwy, ond yn anghywir, dim ond 175 00:09:02,280 --> 00:09:04,570 dechrau taro Enter i roi llinellau newydd yn eich cod. 176 00:09:04,570 --> 00:09:07,150 Mae angen i chi fod ychydig yn fwy penodol gyda slaes-n. 177 00:09:07,150 --> 00:09:10,540 >> A byddwn yn gweld mae rhai eraill o'r fath patrymau ar gyfer cymeriadau arbennig. 178 00:09:10,540 --> 00:09:14,340 Er enghraifft, os ydych chi eisiau gadael eich meddwl grwydro at achos gornel, 179 00:09:14,340 --> 00:09:18,080 Mae'n debyg fy mod i eisiau argraffu dyfyniad dwbl ar y sgrîn ar gyfer 180 00:09:18,080 --> 00:09:21,840 ba bynnag reswm, byddai hynny'n ymddangos i fod ychydig yn broblem, dde? 181 00:09:21,840 --> 00:09:24,990 Oherwydd os wyf yn rhoi dyfynbris dwbl yn y nghanol o "helo, byd," am ba bynnag 182 00:09:24,990 --> 00:09:30,120 reswm, pam mae hynny'n ymddangos yn allai fod yn broblemus? 183 00:09:30,120 --> 00:09:32,180 Ei fod yn torri y llinyn. 184 00:09:32,180 --> 00:09:34,700 >> Mae'r compiler rhaglen yn unig. 185 00:09:34,700 --> 00:09:37,210 Mae rhaglen fel Crynhoydd yn unig yn mynd i ddarllen eich top cod i'r gwaelod, 186 00:09:37,210 --> 00:09:37,990 chwith i'r dde. 187 00:09:37,990 --> 00:09:41,850 Ac os bydd yn gweld tair dyfynodau dwbl yn lle hynny o ddau, nid yw'n mynd i wybod 188 00:09:41,850 --> 00:09:45,210 os ydych yn golygu mai'r peth ar y chwith ddylai fod y llinyn, neu y peth i 189 00:09:45,210 --> 00:09:46,570 y dde, neu'r holl beth. 190 00:09:46,570 --> 00:09:50,560 Mae'n amwys, ac felly yr hyn y mae nodweddiadol Byddai compiler ei wneud yw dim ond freak allan, 191 00:09:50,560 --> 00:09:53,710 ac yn rhoi rhywfaint o neges wall chi, ac gwneud i chi ddelio â'r broblem. 192 00:09:53,710 --> 00:09:58,120 >> Felly, o gofio bod ôl-slaes-n golygu newydd llinell, beth fyddai eich greddf yn awr 193 00:09:58,120 --> 00:10:02,610 dechrau i fod os ydych yn awyddus i gynnwys rhywbeth anghyson fel dwbl 194 00:10:02,610 --> 00:10:06,210 dyfynnu y tu mewn o hyn fel arall-ddyfynnir llinyn? 195 00:10:06,210 --> 00:10:07,640 Dyfyniad slaes-dwbl. 196 00:10:07,640 --> 00:10:09,630 Ac felly byddwn yn gweld hyn fath o batrwm hefyd. 197 00:10:09,630 --> 00:10:12,490 >> Os ydych am wneud rhywbeth ychydig yn rhyfedd, fe welwch fod y 198 00:10:12,490 --> 00:10:15,060 atebion yn aml yn dilyn patrwm, a slaes 199 00:10:15,060 --> 00:10:17,150 yn dynodi dilyniant dianc. 200 00:10:17,150 --> 00:10:20,320 Ac mae'n jyst yn golygu rhywbeth arbennig bod angen i ni gynrychioli mewn 201 00:10:20,320 --> 00:10:21,060 gwahanol ffordd. 202 00:10:21,060 --> 00:10:23,830 Fel ar gyfer sut yr ydych yn cynrychioli a slaes, wel, byddwn ni 203 00:10:23,830 --> 00:10:24,550 dod yn ôl at hynny. 204 00:10:24,550 --> 00:10:26,930 Ond yr ateb, hefyd, mewn gwirionedd ychydig yn amlwg. 205 00:10:26,930 --> 00:10:31,080 >> Felly, gadewch i ni bellach yn cyflwyno rhai eraill lluniadau rhaglennu 206 00:10:31,080 --> 00:10:31,915 a welsoch ym Scratch. 207 00:10:31,915 --> 00:10:34,790 Rydych chi wedi eu cymryd yn ganiataol yn ôl pob tebyg eisoes os ydych eisoes wedi syrthio i mewn i 208 00:10:34,790 --> 00:10:36,060 problem ei osod 0. 209 00:10:36,060 --> 00:10:40,950 Ond gadewch i ni bellach gyflwyno'r gystrawen yn C ar gyfer y rhain yn eithaf 'n athrylithgar fel arall 210 00:10:40,950 --> 00:10:42,300 syniadau, o leiaf rhai ohonynt. 211 00:10:42,300 --> 00:10:45,570 >> Felly syniad hwn o amod neu cangen, rydym ond yn flaenorol 212 00:10:45,570 --> 00:10:49,330 ei gynrychioli gyda chod oedd yn edrych fel hyn ar y chwith yn Scratch - 213 00:10:49,330 --> 00:10:52,200 os yw x yn llai na y, yna dywedwch hynny - 214 00:10:52,200 --> 00:10:56,760 yn lle hynny nawr yn C - gadewch i mi hogi yn ar yr achos symlaf - 215 00:10:56,760 --> 00:11:01,235 rydym yn syml yn mynd i ddweud, os, yn agor parenthesis, rhywbeth yn wir - a 216 00:11:01,235 --> 00:11:04,190 Mynegiant Boole yn mynd i fynd lle yr wyf wedi dweud cyflwr - 217 00:11:04,190 --> 00:11:08,170 parenthesis cau, yna gwneud yr hyn sydd tu mewn rhai braces cyrliog. 218 00:11:08,170 --> 00:11:11,020 >> Felly yma, hefyd, y braces cyrliog yn garedig o fel Scratch yn 219 00:11:11,020 --> 00:11:12,460 Darnau pos-siâp U. 220 00:11:12,460 --> 00:11:14,890 Wneud yr hyn sydd y tu mewn y braces cyrliog. 221 00:11:14,890 --> 00:11:16,790 Yn yr achos hwn, cwtogi slaes. 222 00:11:16,790 --> 00:11:19,720 Ac yn sylwi ar hyn yn ei flaen slaes, nid slaes. 223 00:11:19,720 --> 00:11:21,440 Slaes Ymlaen, ymlaen slaes, ar gyfer y rhai sydd wedi rhaglennu 224 00:11:21,440 --> 00:11:23,370 blaen, dim ond yn golygu - 225 00:11:23,370 --> 00:11:24,190 mai dim ond sylwadau. 226 00:11:24,190 --> 00:11:26,630 Nid yw sylw yn llinell o god, fel y cyfryw. 227 00:11:26,630 --> 00:11:30,200 Mae'n llinell o Saesneg i chi hynny, mae'r dynol, wedi ysgrifennu i chi eich hun i 228 00:11:30,200 --> 00:11:33,540 efallai eich atgoffa i wneud rhywbeth, er mwyn esbonio i chi eich hun, i egluro i 229 00:11:33,540 --> 00:11:35,260 rywun arall, beth yw eich cod yn ei wneud. 230 00:11:35,260 --> 00:11:37,050 Dim ond sylw disgrifiadol. 231 00:11:37,050 --> 00:11:40,880 >> Yn awr, wrth gwrs, gallwn gael dwy-ffordd fforc yn y ffordd yn unig drwy wneud hyn, mae 232 00:11:40,880 --> 00:11:43,930 fforch tair-ffordd yn y ffordd trwy wneud hyn, ac os byddwch yn parhau hyn yn 233 00:11:43,930 --> 00:11:47,570 patrwm, gallwch gael pedair ffordd, pum-ffordd, ffyrc chwe-ffordd yn y ffordd os 234 00:11:47,570 --> 00:11:50,150 angen i chi ei drin, yn wir, bod llawer o amodau. 235 00:11:50,150 --> 00:11:52,010 Ac yna sylwi ar y parallelism yma - 236 00:11:52,010 --> 00:11:55,070 os (cyflwr), arall os (cyflwr), a'r unig un sy'n ychydig yn 237 00:11:55,070 --> 00:11:58,010 ryfedd yw'r olaf, a oedd yn unig yw hynny arall. 238 00:11:58,010 --> 00:12:01,170 Ond unwaith eto, mae hyn yn union yr un fath, gysyniadol, yr hyn yr ydym wedi ei wneud 239 00:12:01,170 --> 00:12:04,690 eisoes, er bod y gystrawen yn cymryd ychydig i ddod i arfer. 240 00:12:04,690 --> 00:12:07,730 >> Yn awr, yn yr enghraifft hon, mae rhywfaint o gystrawen rhyfedd eraill. 241 00:12:07,730 --> 00:12:11,220 Rydym yn gweld printf eto, parenthesis agor, a parenthesis cau. 242 00:12:11,220 --> 00:12:13,190 A'r tu mewn ceir llinyn a ddyfynnwyd. 243 00:12:13,190 --> 00:12:17,060 Mae'r cromfachau, yng nghyd-destun o printf, mynd ar y chwith 244 00:12:17,060 --> 00:12:18,160 a hawl i beth? 245 00:12:18,160 --> 00:12:22,190 Beth ydym yn ei ddisgrifio a ddyfynnwyd llinyn wrth i fwy cyffredinol? 246 00:12:22,190 --> 00:12:23,320 >> Felly mae'n dadl. 247 00:12:23,320 --> 00:12:26,620 Unrhyw tro y byddwch yn cael swyddogaeth, fel printf, ac yna Paren agored a 248 00:12:26,620 --> 00:12:30,330 Paren agos a rhywbeth tu mewn hynny, boed yn llinyn, neu 249 00:12:30,330 --> 00:12:34,420 cyfanrif, neu unrhyw beth arall, mae'r peth yn rhwng ei alw'n cromfachau hynny 250 00:12:34,420 --> 00:12:35,110 dadl. 251 00:12:35,110 --> 00:12:37,910 >> Ac mae dadl yn unig yn dylanwadu ar ymddygiad y swyddogaeth yn. 252 00:12:37,910 --> 00:12:39,990 Yn yr achos hwn, mae'n eithaf clir sut. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Ac printf yn mynd i argraffu yn union hynny. 255 00:12:47,720 --> 00:12:51,590 Gan fod yn sicr, y blynyddoedd person yn ôl a gweithredu'n printf oedd ganddynt unrhyw syniad 256 00:12:51,590 --> 00:12:55,000 hyn yr ydym olynwyr dynol yn mynd i ddefnyddio printf amdano. 257 00:12:55,000 --> 00:12:58,610 Felly dyna pam y dadleuon yn bodoli, i dylanwadu ar ymddygiad ar ôl swyddogaeth yn 258 00:12:58,610 --> 00:12:59,450 ei ysgrifennu. 259 00:12:59,450 --> 00:13:00,780 >> Yn awr, mynegiant Boole. 260 00:13:00,780 --> 00:13:02,470 Rydym wedi gweld hyn o'r blaen mewn Scratch. 261 00:13:02,470 --> 00:13:06,680 Mae'n troi allan yn C gallwch hefyd "neu" at ei gilydd, fel petai. 262 00:13:06,680 --> 00:13:10,930 Dau far fertigol yn golygu y bloc hwn o god, mae hyn yn gwneud hyn, bydd 263 00:13:10,930 --> 00:13:15,350 gweithredu os yw'r amod cyntaf yn wir neu'r ail amod yn wir. 264 00:13:15,350 --> 00:13:17,710 A hyd yn oed er nad efallai y byddwch wedi gwneud hyn mewn Scratch, gallech yn wir 265 00:13:17,710 --> 00:13:20,580 gwneud hyn mewn Scratch, A gallwch hefyd mynegi eich hun yn wahanol - 266 00:13:20,580 --> 00:13:25,300 os yw'r amod cyntaf a'r ail cyflwr yn wir, yna gwneud yr hyn sydd 267 00:13:25,300 --> 00:13:27,160 tu mewn i'r braces cyrliog. 268 00:13:27,160 --> 00:13:31,210 >> Ac yn union fel o'r neilltu, y rheswm ei fod yn a ampersand dwbl a dwbl 269 00:13:31,210 --> 00:13:34,610 bar fertigol, byddwn yn gweld yn y pen draw bod bar fertigol sengl a 270 00:13:34,610 --> 00:13:38,710 ampersand sengl mewn gwirionedd yn wahanol ystyr mewn C. Felly am y tro, 271 00:13:38,710 --> 00:13:41,840 bod dyblygu symbolau yn fwriadol. 272 00:13:41,840 --> 00:13:45,070 >> Felly, gadewch i ni gyflwyno, yn fyr, hwn ychydig arall o gystrawennau. 273 00:13:45,070 --> 00:13:48,940 Nid yw hyn yn hollol cario drosodd i Scratch, ond yr wyf yn honni fy mod yn gallu 274 00:13:48,940 --> 00:13:55,190 gweithredu'r syniad o os arall, os arall, os arall, os bydd datganiad arall yn defnyddio 275 00:13:55,190 --> 00:13:56,760 rhywbeth a elwir yn ddatganiad switsh. 276 00:13:56,760 --> 00:14:00,820 A'r unig reswm hyn yn wir yn bodoli yw dim ond rhoi i chi, y rhaglennydd, a 277 00:14:00,820 --> 00:14:05,470 ffordd ychydig yn wahanol o ddatrys rhai broblem, hyd yn oed er ei fod yn rhesymegol 278 00:14:05,470 --> 00:14:07,340 nid yw'n rhoi unrhyw galluoedd newydd. 279 00:14:07,340 --> 00:14:08,530 >> Gan fy mod yn golygu hyn. 280 00:14:08,530 --> 00:14:13,330 Pan fyddwch yn dweud newid, ac yna gofod, ac yna pâr o cromfachau, y tu mewn 281 00:14:13,330 --> 00:14:14,570 o hynny'n mynd yn fynegiant - 282 00:14:14,570 --> 00:14:18,010 a gallai hyn fod ychydig yn heb fod yn amlwg ar y dechrau, ond nid yw hyn yn ddadl, 283 00:14:18,010 --> 00:14:20,680 dechnegol, gan fod newid Nid yw swyddogaeth. 284 00:14:20,680 --> 00:14:24,230 Felly, ar hyn o bryd, dim ond cymryd yn ganiataol ein bod yn defnyddio cromfachau mewn gwahanol leoedd 285 00:14:24,230 --> 00:14:25,250 am resymau gwahanol. 286 00:14:25,250 --> 00:14:29,310 >> Felly switsh ar fynegiant yn golygu fy mod yn gallu rhoi tu mewn amrywiol o'r rhai 287 00:14:29,310 --> 00:14:31,350 cromfachau lle mae'n dweud mynegiant. 288 00:14:31,350 --> 00:14:33,090 Ac yna os yw'r amrywiol - 289 00:14:33,090 --> 00:14:35,400 debyg fe'i gelwir x, a 'i' jyst yn gyfanrif - 290 00:14:35,400 --> 00:14:38,900 Yna gallaf cyfrif yn fy sleidiau dyma rhywbeth fel hyn. 291 00:14:38,900 --> 00:14:41,690 Os yw x yn fy amrywiol, ac yr wyf yn am wneud rhywbeth os x 292 00:14:41,690 --> 00:14:43,480 yn hafal i 1, gallaf wneud hynny. 293 00:14:43,480 --> 00:14:46,660 >> Os ydw i yn lle hynny am wneud rhywbeth os yw x 2, gallaf wneud hynny. 294 00:14:46,660 --> 00:14:50,390 Else, os ydw i eisiau gwneud rhywbeth arall yn gyfan gwbl, a allaf gael achos diofyn yn 295 00:14:50,390 --> 00:14:52,750 ac os felly, yr wyf yn gwneud hyn beth arall. 296 00:14:52,750 --> 00:14:58,730 Felly, yn hynny o beth, mae'n cyfateb i os yw x yn hafal hafal i 1, arall os arall, 297 00:14:58,730 --> 00:15:01,150 ond yr wyf yn sôn am hyn yn awr yn unig oherwydd byddwn yn gweld eto. 298 00:15:01,150 --> 00:15:03,720 Ond am nawr, dim ond yn gwybod ei fod yn bodoli. 299 00:15:03,720 --> 00:15:04,220 >> Mae pob hawl. 300 00:15:04,220 --> 00:15:07,660 Felly mae'r ddwy ddiwethaf ychydig yn fwy gymhleth ar yr olwg gyntaf, ond maent yn 301 00:15:07,660 --> 00:15:09,385 rhywbeth eithaf syml. 302 00:15:09,385 --> 00:15:14,410 A ar gyfer dolen yn C yn dalp o cod sy'n dim ond yn gwneud rhywbeth eto ac 303 00:15:14,410 --> 00:15:15,330 dro ar ôl tro. 304 00:15:15,330 --> 00:15:17,590 A'r unig beth annifyr am ei bod yn hynny yw ei fod yn ychydig yn cryptig 305 00:15:17,590 --> 00:15:21,380 i fynegi eich hun yn y gylchol patrwm, ond mae'r byd safonol ar 306 00:15:21,380 --> 00:15:22,450 y ffordd ganlynol. 307 00:15:22,450 --> 00:15:25,760 >> Pan fyddwch yn defnyddio ar gyfer dolen, oes gennych chi pâr o cromfachau eto. 308 00:15:25,760 --> 00:15:27,570 Ac yn sylwi ar y ddau hanner colon mewn 'na. 309 00:15:27,570 --> 00:15:34,380 Mae'r ddau hanner colon ar wahân dair gwahanol ymadroddion tu mewn i'r 310 00:15:34,380 --> 00:15:35,020 cromfachau. 311 00:15:35,020 --> 00:15:37,170 Un yw'r initializations hyn a elwir yn. 312 00:15:37,170 --> 00:15:38,830 Mae un yn y cyflwr hyn a elwir yn. 313 00:15:38,830 --> 00:15:40,210 Ac mae un yn y diweddariadau hyn a elwir yn. 314 00:15:40,210 --> 00:15:43,240 >> Edrych arno yn y haniaethol, mae hyn yn gwbl nad ydynt yn amlwg, felly gadewch i ni edrych 315 00:15:43,240 --> 00:15:44,630 mewn enghraifft benodol. 316 00:15:44,630 --> 00:15:46,720 Yn Scratch cawsom bloc ailadrodd. 317 00:15:46,720 --> 00:15:50,670 A dywedodd bloc hwn yn ailadrodd 10 gwaith, yn dweud "Helo, byd." Gadewch i mi wneud cais am 318 00:15:50,670 --> 00:15:53,810 nawr, a byddwn yn dod yn ôl at hyn, a hyn, hefyd, yn cael mwy cyfarwydd i 319 00:15:53,810 --> 00:15:57,345 chi cyn bo hir, sy'n cyfateb C Gallai cod fod yn dweud i fod yn hyn - 320 00:15:57,345 --> 00:16:02,320 a am ddatganiad a gofod, pâr o cromfachau, sylwch ar y hanner colon mewn 321 00:16:02,320 --> 00:16:05,730 yno, sy'n gwahanu tair gwahanol pethau, y initialization, y 322 00:16:05,730 --> 00:16:07,320 cyflwr, a'r diweddariad. 323 00:16:07,320 --> 00:16:08,840 >> Ac yn cymryd dyfalu beth y cyntaf yn ei wneud. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Yn nhermau lleygwr garw, beth yw bod gwneud i ni, yn ôl pob tebyg? 326 00:16:15,120 --> 00:16:15,590 Felly yeah. 327 00:16:15,590 --> 00:16:19,630 Mae'n datgan newidyn enw i, ac mae'n ei roi pa werth? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Felly, mae'n creu newidyn a elwir yn i, storio gwerth 0 ynddo. 330 00:16:24,280 --> 00:16:26,420 Dyna'r initialization fel y'u gelwir. 331 00:16:26,420 --> 00:16:29,360 >> Mae pob hawl, yn awr yr wyf hawlio cyn mai'r peth canol, i 332 00:16:29,360 --> 00:16:31,760 <10, yw'r cyflwr. 333 00:16:31,760 --> 00:16:32,730 Felly, beth yn ei wneud? 334 00:16:32,730 --> 00:16:36,560 Wel, yr hyn y mae'r ddolen i wneud pan fydd rhaglen gyda dolen ar gyfer ei redeg, yn 335 00:16:36,560 --> 00:16:41,050 bob tro y cyfrifiadur yn rhedeg drwy dolen hwn, top i'r gwaelod, top i 336 00:16:41,050 --> 00:16:43,740 gwaelod, yn union fel chi guys oedd pan cyfrif eich hunain ac eistedd i lawr, 337 00:16:43,740 --> 00:16:47,090 eto ac eto ac eto, y cyfrifiadur yn mynd 338 00:16:47,090 --> 00:16:48,560 i wirio cyflwr hwnnw. 339 00:16:48,560 --> 00:16:51,140 Ac os fi yn llai na 10, bydd yn gwneud hynny eto. 340 00:16:51,140 --> 00:16:53,100 Ai fi yn llai na 10, bydd yn gwneud hynny eto. 341 00:16:53,100 --> 00:16:55,030 Ai fi yn llai na deg, bydd yn gwneud hynny eto. 342 00:16:55,030 --> 00:16:57,330 Felly, sy'n ymddangos i awgrymu bod gobeithio i yn newid. 343 00:16:57,330 --> 00:16:59,010 Fel arall, byddai gennym dolen ddiddiwedd. 344 00:16:59,010 --> 00:17:02,590 Ac yn wir, fi yn newid, gan fod y peth diwethaf ar ôl y colon yno 345 00:17:02,590 --> 00:17:05,569 yw'r gystrawen braidd yn cryptig o i + +. 346 00:17:05,569 --> 00:17:07,630 Ond y rhai ohonoch sydd wedi gwneud hyn o'r blaen, mai dim ond yn golygu 347 00:17:07,630 --> 00:17:08,609 yn syml yr hyn? 348 00:17:08,609 --> 00:17:09,730 >> MYFYRWYR: [ymyrryd yn LLEISIAU]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID Malan: Ychwanegu 1 i i. 350 00:17:10,740 --> 00:17:11,819 Cynnyddu i. 351 00:17:11,819 --> 00:17:13,910 Felly, rydym yn gweld pos Scratch darn ar gyfer hynny, mewn gwirionedd. 352 00:17:13,910 --> 00:17:18,230 Nid oedd yn edrych fel i + +, ond mai dim ond modd, yn syml, y gynyddran 353 00:17:18,230 --> 00:17:24,040 gwerthfawrogi i o 1 bob tro y byddwch yn gwneud hyn. 354 00:17:24,040 --> 00:17:26,910 Felly, yn llythrennol, byddwch yn dechrau drwy i ymgychwyn i 0. 355 00:17:26,910 --> 00:17:29,520 Yna byddwch yn edrych ar eich cyflwr. 356 00:17:29,520 --> 00:17:31,070 Yn 0 yn llai na 10? 357 00:17:31,070 --> 00:17:31,730 Ydw. 358 00:17:31,730 --> 00:17:32,910 Rydym yn mynd trwy'r ddolen. 359 00:17:32,910 --> 00:17:35,150 >> Y peth nesaf i hawlio'r cyfrifiadur mynd i'w wneud yw ei fod yn mynd 360 00:17:35,150 --> 00:17:35,910 cynyddiad i. 361 00:17:35,910 --> 00:17:37,080 Felly, fi yn awr 1. 362 00:17:37,080 --> 00:17:37,940 Mae'n gwirio cyflwr. 363 00:17:37,940 --> 00:17:39,290 1 yn llai na 10? 364 00:17:39,290 --> 00:17:39,930 Wrth gwrs. 365 00:17:39,930 --> 00:17:41,030 Felly mae'n ei eto. 366 00:17:41,030 --> 00:17:43,580 Yna ychwanegiadau i + + i 2. 367 00:17:43,580 --> 00:17:44,610 Yw 2 yn llai na 10? 368 00:17:44,610 --> 00:17:45,230 Ydw. 369 00:17:45,230 --> 00:17:46,670 Ac eto ac eto ac eto. 370 00:17:46,670 --> 00:17:50,070 Ac yn y pen draw, oherwydd y plus-plussing, rydym yn cael i yn hafal i 10. 371 00:17:50,070 --> 00:17:51,675 Yn 10 yn llai na 10? 372 00:17:51,675 --> 00:17:52,990 Wel, yn amlwg nid. 373 00:17:52,990 --> 00:17:55,320 A dyna pryd y y ddolen yn unig ar gyfer dod i ben. 374 00:17:55,320 --> 00:17:58,320 Ac os oes gennych fwy cod ar y sgrin i lawr isod, y cyfrifiadur 375 00:17:58,320 --> 00:18:01,620 elw i redeg y cod yn lle hynny. 376 00:18:01,620 --> 00:18:05,380 >> Felly, unwaith eto, er bod hyn yn mynd i edrych ac yn teimlo ychydig yn rhyfedd yn 377 00:18:05,380 --> 00:18:07,830 yn gyntaf, yn sicr ar gyfer y rhai ohonoch sy'n erioed wedi rhaglennu o'r blaen, mae'n 378 00:18:07,830 --> 00:18:11,640 llythrennol lleihau gysyniadol i'r hyn sydd fel arall yn iawn 379 00:18:11,640 --> 00:18:14,330 pos syml darn yn Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Mae pob hawl, yr wyf yn addo bod yno roedd fod analogs eraill yn Scratch. 381 00:18:19,130 --> 00:18:20,060 Mae hwn yn un hefyd. 382 00:18:20,060 --> 00:18:21,700 A gwelsom y tro hwn yn fyr diwethaf. 383 00:18:21,700 --> 00:18:23,530 Ond cofiwch y byth bloc yn Scratch? 384 00:18:23,530 --> 00:18:25,490 'I jyst yn gwneud rhywbeth am byth? 385 00:18:25,490 --> 00:18:27,470 Yr wyf honni y gallech gweithredu hyn yn y ffordd hon. 386 00:18:27,470 --> 00:18:29,740 A allwch chi mewn gwirionedd yn gweithredu'r mewn criw o ffyrdd gwahanol. 387 00:18:29,740 --> 00:18:34,260 >> Ond mae'r ddolen tra yn unig yw gwahanol C ffordd o fynegi eich hun. 388 00:18:34,260 --> 00:18:37,080 Ar ddiwedd y dydd, ni allwch wneud unrhyw beth sydd â dolen tra eich bod yn 389 00:18:37,080 --> 00:18:38,360 all nid gyda dolen i. 390 00:18:38,360 --> 00:18:41,430 Felly, maent yn ar ddiwedd y dydd swyddogaethol yr un fath. 391 00:18:41,430 --> 00:18:43,840 Ond mae'n eich galluogi i fynegi eich hun ychydig yn wahanol mewn 392 00:18:43,840 --> 00:18:44,850 y ffordd ganlynol. 393 00:18:44,850 --> 00:18:49,720 >> Gyda'r ddolen sbel, dyna beth sydd yn cromfachau sy'n cael ei wirio eto ac 394 00:18:49,720 --> 00:18:51,050 dro ar ôl tro. 395 00:18:51,050 --> 00:18:55,100 A chyn gynted ag y mynegiant yn ffug, yna bydd y ddolen yn stopio gweithredu, 396 00:18:55,100 --> 00:18:57,890 a'r cyfrifiadur symud ymlaen i rhedeg beth bynnag cod arall yr ydych yn 397 00:18:57,890 --> 00:18:59,230 gael yn eich ffeil. 398 00:18:59,230 --> 00:19:02,180 >> Ond yr hyn sy'n ddiddorol yma fy mod yn llythrennol deipio wir. 399 00:19:02,180 --> 00:19:06,680 Ac yn wir yn fath o werth Boole, gwerth gywir neu'n anghywir. 400 00:19:06,680 --> 00:19:09,750 Felly gallai ddod yn wir erioed ffug os wyf wedi llythrennol 401 00:19:09,750 --> 00:19:11,970 caled-godio i mewn i fy rhaglen? 402 00:19:11,970 --> 00:19:12,470 Felly dim. 403 00:19:12,470 --> 00:19:13,730 Mae'n ychydig yn rhyfedd fy mod yn gwneud hyn. 404 00:19:13,730 --> 00:19:15,190 Ond yn wir yn wir. 405 00:19:15,190 --> 00:19:16,320 Does dim plus-plussing. 406 00:19:16,320 --> 00:19:17,820 Does dim defnydd o newidynnau yma. 407 00:19:17,820 --> 00:19:22,740 Felly, oherwydd fy mod yn galed-godio tra bod yn wir, mae hyn yn dolen bob amser yn mynd i werthuso 408 00:19:22,740 --> 00:19:24,090 eto ac eto ac eto. 409 00:19:24,090 --> 00:19:27,660 >> Felly, faint o weithiau yn fyd helo mynd i argraffu ar y sgrin? 410 00:19:27,660 --> 00:19:28,170 Am byth. 411 00:19:28,170 --> 00:19:31,980 Mae nifer anfeidrol o weithiau nes bod y yn marw batri neu ryw allanol eraill 412 00:19:31,980 --> 00:19:32,730 digwyddiad yn digwydd. 413 00:19:32,730 --> 00:19:35,880 Felly, nid yw hyn yn ôl pob tebyg y rhaglen orau i ysgrifennu, oherwydd os bydd y defnyddiwr 414 00:19:35,880 --> 00:19:38,660 Ni ellir byth roi'r gorau iddi eich rhaglen, mae'n yn ôl pob tebyg nid yr hyn oeddech yn bwriadu. 415 00:19:38,660 --> 00:19:41,070 >> Ond weithiau, dylai rhaglenni gael dolen ddiddiwedd. 416 00:19:41,070 --> 00:19:44,050 Er enghraifft, os yw eich cyfrifiadur yn cael cloc arno, byddai'n sicr yn 417 00:19:44,050 --> 00:19:48,130 'n glws os yw eich cloc yw'n cadw diweddaru ei hun am byth, er unwaith y 418 00:19:48,130 --> 00:19:50,500 ail neu unwaith y munud neu rhywbeth fel 'na. 419 00:19:50,500 --> 00:19:53,690 Felly hyd yn oed dolenni ddiddiwedd yn eu lle. 420 00:19:53,690 --> 00:19:54,360 >> Mae pob hawl. 421 00:19:54,360 --> 00:19:55,190 Yn olaf, mae hyn yn un. 422 00:19:55,190 --> 00:19:57,770 Ac mae hyn mae un yn ychydig yn wahanol swyddogaethol, a byddwn yn dod yn ôl i 423 00:19:57,770 --> 00:19:59,460 mae hyn yn ôl pob tebyg yn Pset 1. 424 00:19:59,460 --> 00:20:02,370 Ond mae math arall o ddolen a elwir yn wneud tra dolen. 425 00:20:02,370 --> 00:20:07,100 A'r unig wahaniaeth yma rhwng wneud tra dolen a, dyweder, dolen tra, 426 00:20:07,100 --> 00:20:11,120 yw bod y cyflwr yn cael ei wirio nad cyn i chi weithredu, y cod ond ar ôl 427 00:20:11,120 --> 00:20:12,080 ydych yn gweithredu y cod. 428 00:20:12,080 --> 00:20:15,380 Felly, ar y brig ar gyfer y tra ddolen, tra bod y wneud tra 429 00:20:15,380 --> 00:20:16,560 gwiriadau hynny ar y gwaelod. 430 00:20:16,560 --> 00:20:21,370 >> Ac mae hyn yn unig yn golygu bod y ddolen er Bydd fel arfer yn gweithredu gwaith yn fwy 431 00:20:21,370 --> 00:20:24,630 neu lai o amser na dolen tra? 432 00:20:24,630 --> 00:20:30,810 Allai fod yn fwy amser, oherwydd bod gwneud tra ddolen yn amlwg yn ei ddweud yn gwneud hyn, 433 00:20:30,810 --> 00:20:34,600 Dim ond ar ôl y pwynt eich bod yn gwirio os yw cyflwr y tu mewn i'r 434 00:20:34,600 --> 00:20:35,980 cromfachau yn wir. 435 00:20:35,980 --> 00:20:37,940 >> Felly, byddwn yn gweld hyn eto yn ôl pob tebyg yn Pset 1. 436 00:20:37,940 --> 00:20:41,150 Os ydych chi erioed wedi eisiau gwneud rhywbeth yn o leiaf unwaith ac yna efallai ychydig mwy 437 00:20:41,150 --> 00:20:43,350 adegau, mae hwn yn dda adeiladu ei ddefnyddio. 438 00:20:43,350 --> 00:20:46,970 Ond mae dolen tra, ar y llaw arall, bydd gwirio ei gyflwr yn gyntaf. 439 00:20:46,970 --> 00:20:50,660 A dyna ni am dolenni yn C, yn tra, er bod, ac ar gyfer dolenni. 440 00:20:50,660 --> 00:20:54,700 Ac eto, maent yn 'n bert' n glws mapio yn ôl i Scratch, ac eithrio nad yw hyn yn un yn 441 00:20:54,700 --> 00:20:57,350 yn eithaf yr un analog yn Scratch. 442 00:20:57,350 --> 00:20:58,880 >> Wel, beth am, yn awr, newidynnau? 443 00:20:58,880 --> 00:21:02,600 Felly, mae hyn yw sut yr wyf yn datgan newidyn syntactically y diwrnod o'r blaen. 444 00:21:02,600 --> 00:21:06,440 Roedd gen i int, yr wyf yn hawlio yn gyfanrif. 445 00:21:06,440 --> 00:21:09,690 Yna, wedi cael enw cownter amrywiol, ac yna colon. 446 00:21:09,690 --> 00:21:11,070 Felly, beth mae hyn yn llinell o god yn ei wneud? 447 00:21:11,070 --> 00:21:14,540 Mae hyn, yn syml iawn, gan ddatgan newidyn - 448 00:21:14,540 --> 00:21:17,940 hynny yw, ofyn i'r cyfrifiadur, yn rhoi i mi rhywfaint o cof, yn rhoi rhai darnau i mi - yn 449 00:21:17,940 --> 00:21:19,450 y gallaf storio beth? 450 00:21:19,450 --> 00:21:20,300 Mae int. 451 00:21:20,300 --> 00:21:23,570 Ac mae'r colon yn unig yn golygu diwedd y llinell o god. 452 00:21:23,570 --> 00:21:25,500 >> Yn awr, yr ail linell yn ôl pob tebyg 'n bert guessable. 453 00:21:25,500 --> 00:21:29,710 Beth yw rhifydd = 0; ei wneud? 454 00:21:29,710 --> 00:21:31,690 Mae'n neilltuo 0 i atal. 455 00:21:31,690 --> 00:21:33,470 Ac felly mae hwn yn y peth arall dyna ychydig yn blino 456 00:21:33,470 --> 00:21:34,540 yn erbyn, dyweder, algebra. 457 00:21:34,540 --> 00:21:39,110 Tra yn algebra, yr arwydd cyfartal yn golygu yn hafal i, yma yn C, yr cyfartal 458 00:21:39,110 --> 00:21:40,470 arwydd yn golygu aseiniad. 459 00:21:40,470 --> 00:21:45,380 Felly, mae'n golygu rhoi'r hyn sydd ar y dde i'r hyn sydd ar y chwith. 460 00:21:45,380 --> 00:21:49,030 A byddwn yn gweld symbol arall, yn hafal i yn hafal i, pan fyddwn am brofi mewn gwirionedd 461 00:21:49,030 --> 00:21:50,570 am ansawdd, braidd annoyingly. 462 00:21:50,570 --> 00:21:52,590 >> Ond mae hyn yn ychydig yn aneffeithlon. 463 00:21:52,590 --> 00:21:55,090 Mae'n fath o blino sydd gennyf i ddatgan amrywio ac 464 00:21:55,090 --> 00:21:56,110 yna rhowch gynnig gwerth. 465 00:21:56,110 --> 00:21:59,380 Felly C mewn gwirionedd yn gadael i ni symleiddio'r a dim ond gwneud y cyfan ar unwaith. 466 00:21:59,380 --> 00:22:01,330 Gallwch ddatgan y newidyn ar y chwith. 467 00:22:01,330 --> 00:22:04,590 Medrwch ddal i wneud yr aseiniad ar y iawn drwy roi bod arwydd cyfartal yn 468 00:22:04,590 --> 00:22:05,030 y canol. 469 00:22:05,030 --> 00:22:08,740 Felly, ar ddiwedd y dydd, mae dau hyn yn cyfatebol, ond mae hyn yn un, a dweud y gwir, 470 00:22:08,740 --> 00:22:11,840 Mae'n debyg mai dyma'r arfer yn well i fynd i mewn dim ond oherwydd ei fod yn ychydig yn llai 471 00:22:11,840 --> 00:22:15,040 cod, mae'n ychydig yn haws i'w ddarllen, a 'i jyst yn tynhau 472 00:22:15,040 --> 00:22:17,470 eich cod, fel petai. 473 00:22:17,470 --> 00:22:22,120 >> Unrhyw gwestiynau hyd yn hyn ar y dolenni, ar newidynnau, ar amodau, ar 474 00:22:22,120 --> 00:22:27,001 Booleans, naill ai yn dechnegol neu gysyniadol? 475 00:22:27,001 --> 00:22:28,010 Mae pob hawl. 476 00:22:28,010 --> 00:22:30,690 Felly nawr mae hyn yn un nesaf yn cael ychydig yn fwy diddorol. 477 00:22:30,690 --> 00:22:34,790 Ac mae hyn yn yr enghraifft yr wyf yn rhoi i fyny diwethaf amser mai dim ond mapio enghraifft Scratch 478 00:22:34,790 --> 00:22:35,820 drosodd i C. 479 00:22:35,820 --> 00:22:36,580 >> Felly swyddogaeth. 480 00:22:36,580 --> 00:22:38,110 Yn nhermau lleygwr, beth swyddogaeth? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Got i fod yn fwy beiddgar gyda'ch ateb. 483 00:22:44,350 --> 00:22:45,020 Beth yw swyddogaeth? 484 00:22:45,020 --> 00:22:46,320 >> MYFYRIWR: A yw rhywbeth. 485 00:22:46,320 --> 00:22:46,780 >> DAVID Malan: Beth sy'n bod? 486 00:22:46,780 --> 00:22:48,000 >> MYFYRIWR: A yw rhywbeth. 487 00:22:48,000 --> 00:22:48,710 >> DAVID Malan: A oes rhywbeth. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Byddwn yn dechrau yno. 490 00:22:49,590 --> 00:22:51,270 Felly swyddogaeth yn gwneud rhywbeth. 491 00:22:51,270 --> 00:22:55,160 Felly mae'n ddarn o god sy'n rhoi ar waith mewn mannau eraill yn y bôn bod 492 00:22:55,160 --> 00:22:56,620 yn wir yn gwneud rhywbeth. 493 00:22:56,620 --> 00:23:00,180 Yn awr, yr hyn sy'n ddiddorol am swyddogaeth yw y gall gymryd mewnbwn, 494 00:23:00,180 --> 00:23:02,710 ac yn gallu cynhyrchu allbwn. 495 00:23:02,710 --> 00:23:05,090 A gadewch i ni mewn gwirionedd yn cymryd golwg ar hyn. 496 00:23:05,090 --> 00:23:09,030 >> Felly, y dyn y tu ôl i'r llenni yn fwriadol funud yn ôl. 497 00:23:09,030 --> 00:23:10,320 Yma mae gennym fwrdd. 498 00:23:10,320 --> 00:23:13,010 Ond mae'n debyg bod hyn mewn gwirionedd yn cynrychioli bocs mawr. 499 00:23:13,010 --> 00:23:14,940 Felly, mae hwn yn blwch du fel y'u gelwir. 500 00:23:14,940 --> 00:23:19,800 Ac yn gyffredinol, mewn dylunio, mewn cyfrifiadur gwyddoniaeth, blychau du yn unig yn cyfeirio at 501 00:23:19,800 --> 00:23:22,510 darnau o ymarferoldeb bod rhywun wedi gweithredu, ac os na 502 00:23:22,510 --> 00:23:26,140 reidrwydd yn gwybod nac yn poeni sut y mae'n gweithredu o dan y cwfl. 503 00:23:26,140 --> 00:23:28,960 Rydych yn unig yn gofalu bod y blwch du, y byddwn yn awr yn dechrau galw 504 00:23:28,960 --> 00:23:30,730 swyddogaeth, yn gwneud rhywbeth. 505 00:23:30,730 --> 00:23:34,710 >> Felly, er enghraifft, os yw hyn blwch du ar y cam yma yn cynrychioli printf, a 506 00:23:34,710 --> 00:23:38,040 swyddogaeth, gwn o enghreifftiau blaenorol sy'n printf yn cymryd un neu fwy o 507 00:23:38,040 --> 00:23:40,910 dadleuon, a'r cyntaf o'r rheini Dylai dadleuon fod yn llinyn, fel 508 00:23:40,910 --> 00:23:44,780 "Helo, byd." Wel, os wyf fi yw'r person ysgrifennu'r rhaglen, ac yr wyf am 509 00:23:44,780 --> 00:23:50,460 defnyddio printf, I, er enghraifft, gallai cymryd darn o bapur gwag yma ac mae 510 00:23:50,460 --> 00:23:55,060 farciwr du ac ysgrifennwch arno - 511 00:23:55,060 --> 00:23:56,580 I gamsillafu "byd" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Felly byddaf yn cymryd fy marciwr du a byddaf ysgrifennu, mor fawr ac yn ddealladwy ag y gallaf ar 514 00:24:04,220 --> 00:24:07,260 darn hwn o bapur, "helo, y byd," A awr yr wyf yn hawlio hyn yw fy nadl. 515 00:24:07,260 --> 00:24:09,740 Mae hwn yn llinyn cynrychioli Hydred gyda ddarn o bapur gwyn. 516 00:24:09,740 --> 00:24:13,030 Ac yn fy mewnbwn yn awr at y swyddogaeth printf yn mynd i fod yma. 517 00:24:13,030 --> 00:24:18,250 Felly, yr wyf yn galw printf, gan fynd heibio ddadl honno fel mewnbwn iddo. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Ac yn awr, nid wyf yn gwybod sut y mae'r person sy'n Ysgrifennodd printf yn gwneud hynny flynyddoedd yn ôl, ond 520 00:24:26,740 --> 00:24:31,110 Dwi ddim yn gwybod o'i dogfennaeth sy'n ei bwrpas mewn bywyd yw argraffu hyn yr wyf 521 00:24:31,110 --> 00:24:34,410 darparu fel mewnbwn. 522 00:24:34,410 --> 00:24:40,630 Ac felly, er bod hon ar waith yn unbeknownst i mi 523 00:24:40,630 --> 00:24:44,170 o dan y cwfl, yn awr Yr wyf yn gweld, oh, mae'n cael ei wneud. 524 00:24:44,170 --> 00:24:45,740 Mae wedi ei argraffu rhywbeth ar y sgrin. 525 00:24:45,740 --> 00:24:49,070 Ac yn awr reolaeth y rhaglen, os oes yn fwy o cod llinellau, byddai 526 00:24:49,070 --> 00:24:51,070 bellach wedi dychwelyd i mi. 527 00:24:51,070 --> 00:24:52,290 Ac felly mae'r ffaith bod Colton - 528 00:24:52,290 --> 00:24:55,370 bendithia ei galon, yn cuddio yma o dan bwrdd o flaen pob un chi - 529 00:24:55,370 --> 00:24:59,530 yn fwriadol gan nad wyf yn gwybod ac nid wyf yn poeni pa mor printf yn 530 00:24:59,530 --> 00:25:00,100 gweithredu. 531 00:25:00,100 --> 00:25:03,390 Fi jyst yn gwybod, unwaith eto, o'i dogfennau, beth mae'n ei wneud a sut yr wyf 532 00:25:03,390 --> 00:25:05,040 wyf i fod i'w defnyddio. 533 00:25:05,040 --> 00:25:09,140 >> Nawr, dwyn i gof y gallai printf cael ychydig yn fwy soffistigedig. 534 00:25:09,140 --> 00:25:12,220 Unwaith eto, rydym yn dim ond siarad am y sy'n cyfateb i bloc Dweud Scratch ar. 535 00:25:12,220 --> 00:25:14,230 Ond yr wyf hefyd yn gwneud y tro diwethaf. 536 00:25:14,230 --> 00:25:17,270 Roeddwn i eisiau gwneud fy rhaglen helo a ychydig yn fwy deinamig ac nid dim ond caled 537 00:25:17,270 --> 00:25:19,740 cod rhywbeth fel "y byd," ac bendant cod caled rhywbeth 538 00:25:19,740 --> 00:25:22,520 fympwyol fel D-A-V-I-D yn y rhaglen. 539 00:25:22,520 --> 00:25:27,510 Roeddwn i eisiau gofyn i'r defnyddiwr ar gyfer ei enw, ac yna gwneud rhywbeth gyda 540 00:25:27,510 --> 00:25:29,720 y llinyn a ddarperir ganddynt. 541 00:25:29,720 --> 00:25:32,690 >> Felly, mae rhywbeth ychydig yn wahanol yma. printf, eiliad yn ôl, 542 00:25:32,690 --> 00:25:35,860 oedd, yn wir, yn gwneud rhywbeth, ond mae'n ni ddychwelodd unrhyw beth i mi. 543 00:25:35,860 --> 00:25:36,020 Iawn? 544 00:25:36,020 --> 00:25:38,910 Nid Colton yn llaw unrhyw beth i mi yn ôl, nid oes unrhyw ddarn o bapur. 545 00:25:38,910 --> 00:25:40,320 Mae sgîl-effaith yn unig. 546 00:25:40,320 --> 00:25:44,510 Fy darparu "helo, byd" fel ddadl i arwain Colton yn y 547 00:25:44,510 --> 00:25:48,420 sgîl-effaith o air, mae rhai geiriau, ymddangos ar y sgrin. 548 00:25:48,420 --> 00:25:51,350 >> getstring, fodd bynnag, ychydig yn gwahanol. getstring hefyd yn 549 00:25:51,350 --> 00:25:54,590 gweithio, ond mae'n dychwelyd rhywfaint o werth. 550 00:25:54,590 --> 00:25:56,370 Nid yw dim ond yn cael sgîl-effaith esthetig. 551 00:25:56,370 --> 00:26:00,230 Mae'n mewn gwirionedd yn rhoi i mi, y person ffonio neu ddefnyddio'r swyddogaeth, 552 00:26:00,230 --> 00:26:01,320 rhywbeth yn ôl. 553 00:26:01,320 --> 00:26:05,740 Felly, yn yr achos hwn, getstring yn galw gyda getstring agored 554 00:26:05,740 --> 00:26:07,510 Paren, Paren agos. 555 00:26:07,510 --> 00:26:11,370 A yw'r getstring, felly, yn cymryd unrhyw ddadleuon neu fewnbwn? 556 00:26:11,370 --> 00:26:12,340 Na, nid yw'n ymddangos. 557 00:26:12,340 --> 00:26:14,460 Ei bwrpas mewn bywyd yw dim ond er mwyn cael llinyn. 558 00:26:14,460 --> 00:26:16,910 Mae'n nid oes angen mwy o fanylion na hynny. 559 00:26:16,910 --> 00:26:20,430 Felly, gadewch i mi fynd yn ei flaen ac yn esgus bod, unwaith eto, nid yw hyn blwch du yn printf, 560 00:26:20,430 --> 00:26:25,160 ond getstring, a gadewch i mi, y person ysgrifennu'r rhaglen, ffoniwch neu ddefnyddio 561 00:26:25,160 --> 00:26:29,720 getstring at jyst yn ysgrifennu G-E-T-S-T-R-I-N-G, yn agored Paren, yn agos 562 00:26:29,720 --> 00:26:32,170 Paren, getstring. 563 00:26:32,170 --> 00:26:36,920 >> Yn awr, nid oes gennyf unrhyw syniad sut y mae'r CS50 staff gweithredu getstring, ond gwn fod 564 00:26:36,920 --> 00:26:41,240 os byddaf yn aros yn ddigon hir, bydd yn gwneud ei beth o dan y cwfl, efallai gan ddefnyddio 565 00:26:41,240 --> 00:26:44,940 rhai newidynnau, efallai gan ddefnyddio rhai amodau, efallai gan ddefnyddio rhai dolenni, 566 00:26:44,940 --> 00:26:48,170 efallai drwy ddefnyddio rhai swyddogaethau, efallai gan ddefnyddio - 567 00:26:48,170 --> 00:26:52,290 dim ond ceisio stondin - efallai gan ddefnyddio rhai nodweddion rhaglenni eraill. 568 00:26:52,290 --> 00:26:55,350 Ond os wyf yn aros yn ddigon hir - mewn gwirionedd, yn y cyfrifiadur, bydd hyn yn digwydd 569 00:26:55,350 --> 00:26:56,270 super gyflym - 570 00:26:56,270 --> 00:26:59,910 os byddaf yn aros yn ddigon hir, swyddogaeth hon getstring yn mynd i gael llinyn 571 00:26:59,910 --> 00:27:04,060 gan y defnyddiwr, sy'n teipio yn ôl pob tebyg allan ar eu bysellfwrdd, a 572 00:27:04,060 --> 00:27:08,090 Yna, pan fyddwch yn getstring yn cael ei wneud yn cael cymeriadau hynny gan y defnyddiwr 573 00:27:08,090 --> 00:27:14,080 ac yn eu storio mewn llinyn, bod swyddogaeth, getstring, yn mynd i gael 574 00:27:14,080 --> 00:27:17,990 barod i mi rhywfaint o allbwn yr wyf yn mynd i adfer drwy gyfrwng y 575 00:27:17,990 --> 00:27:19,470 gweithredwr aseiniad. 576 00:27:19,470 --> 00:27:25,390 >> Ac os af, yn wir, i mewn i'r cynnyrch yma, Obosi wedi hael 577 00:27:25,390 --> 00:27:29,900 cymryd rhan, heb wybod hyn mewn ymlaen llaw, trwy ysgrifennu ei enw ar hyn 578 00:27:29,900 --> 00:27:33,100 amrywiol, sy'n cynrychioli llinyn. 579 00:27:33,100 --> 00:27:35,640 Yn awr, y gweithredwr aseiniad yn golygu, hyd yn oed Er y gallai hyn deimlo ychydig yn 580 00:27:35,640 --> 00:27:38,790 ddi-waith, yr wyf yn ei wneud mewn gwirionedd angen i wneud fy copi eu hunain o hyn. 581 00:27:38,790 --> 00:27:40,700 Oherwydd ar y llaw chwith ochr - bloeddiadau! - 582 00:27:40,700 --> 00:27:45,760 hysbysu fy mod yn y bôn yn cael llinyn enwi ar yr ochr chwith. 583 00:27:45,760 --> 00:27:48,280 Felly, yr wyf i hefyd yn mynd i wneud fy copi eu hunain o hyn. 584 00:27:48,280 --> 00:27:50,990 Ac mae hyn yn dipyn o gelwydd gwyn, oherwydd byddwn yn gweld mewn wythnos neu ddwy yn 585 00:27:50,990 --> 00:27:54,100 amser nad llinynnau mewn gwirionedd yn yr hyn y maent yn ymddangos i fod. 586 00:27:54,100 --> 00:27:56,700 >> Ond am nawr, dyma yw'r gwerth dychwelyd. 587 00:27:56,700 --> 00:28:00,160 Dyma fy copi eu hunain ohono ar ôl defnyddio'r gweithredwr aseiniad. 588 00:28:00,160 --> 00:28:01,790 Ac yn awr, beth ydw i am ei wneud nesaf? 589 00:28:01,790 --> 00:28:04,080 Erbyn hyn mae gennym yr ail o dwy linell o god. 590 00:28:04,080 --> 00:28:05,640 Felly, yr wyf yn awr am alw printf. 591 00:28:05,640 --> 00:28:08,500 Gadewch i esgus nawr bod y du blwch yn ôl eto i fod yn 592 00:28:08,500 --> 00:28:10,210 printf ac nid getstring. 593 00:28:10,210 --> 00:28:12,200 >> Printf y tro hwn yn mynd i cymryd faint o ddadleuon? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Felly, edrych, mae fel dau. 596 00:28:16,770 --> 00:28:18,860 Mae dau atalnodau i mewn 'na, ond un o'r coma hynny, mae'n 597 00:28:18,860 --> 00:28:20,220 tu mewn i'r dyfyniadau. 598 00:28:20,220 --> 00:28:23,190 Felly, y ddadl gyntaf yn llythrennol mynd i fod yn hyn. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, coma, cant s, slaes-n. 600 00:28:31,850 --> 00:28:36,560 Ac yn awr rwy'n darparu nad yw un ddadl, ond dwy ddadl i printf. 601 00:28:36,560 --> 00:28:39,530 >> A beth yn fod printf yn ymwneud â y ddau fewnbwn ar ôl i mi eu pasio yn 602 00:28:39,530 --> 00:28:42,050 fel dadleuon? 603 00:28:42,050 --> 00:28:45,360 Mae'n i fod i gymryd yr ail iddynt, yr wyf a alwodd ei enw, felly mae'r 604 00:28:45,360 --> 00:28:48,660 ail ddarn o bapur ysgrifennais allan hyn o bryd yn cael ei alwodd ei enw yn ôl. 605 00:28:48,660 --> 00:28:53,550 Mae'n mynd i plwg o werth y tu mewn o'r newidyn i mewn i'r placeholder, 606 00:28:53,550 --> 00:28:58,310 % S, fel eu bod, unwaith eto, mewn dim ond hyn o bryd yn amser, byddwn yn gweld effaith ochr 607 00:28:58,310 --> 00:29:04,180 wedi galw printf, lle yn awr rydym yn gweld nad "helo, y byd," ond "helo, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Felly, mae cylch mawr o gymeradwyaeth i'r ddau ein gwirfoddolwyr, dim ond un ohonynt yn gwybod 610 00:29:08,730 --> 00:29:12,010 byddai hyn yn digwydd. 611 00:29:12,010 --> 00:29:12,990 Mae pob hawl. 612 00:29:12,990 --> 00:29:16,480 Felly, efallai, syml â hynny oedd, yn sicr, os ydych eisoes yn gyfarwydd 613 00:29:16,480 --> 00:29:20,190 gyda'r fath, gobeithio chi byth yn anghofio bod gweledol penodol o sut y 614 00:29:20,190 --> 00:29:21,220 swyddogaethau yn gweithio. 615 00:29:21,220 --> 00:29:23,000 >> Felly, mae mwy na dim ond getstring. 616 00:29:23,000 --> 00:29:26,020 Y tu mewn y llyfrgell CS50, mae 'na criw cyfan o swyddogaethau, pob un ohonynt yn 617 00:29:26,020 --> 00:29:29,510 yn cael eu cyfalafu yn unig i wneud yn glir ein bod yn ysgrifennu swyddogaethau hyn. 618 00:29:29,510 --> 00:29:33,610 Fel arfer, yn C, mae bron pob eraill swyddogaeth y byddwch yn ei ddefnyddio yw lythrennau bach. 619 00:29:33,610 --> 00:29:36,190 Ond rydym yn fwriadol yn defnyddio priflythrennau dim ond er mwyn gwneud yn glir bod y rhain yn 620 00:29:36,190 --> 00:29:39,880 yn olwynion hyfforddiant o ryw fath y gallwn eich defnyddio ar gyfer dim ond ychydig wythnosau sydd 621 00:29:39,880 --> 00:29:42,890 symleiddio'r broses o gael mewnbwn gan y defnyddiwr. 622 00:29:42,890 --> 00:29:46,740 >> Nid yw'r llyfrgell CS50 yn gwneud unrhyw beth eich bod eich hunain na allai ei wneud gan 623 00:29:46,740 --> 00:29:50,230 yn unig ddefnyddio cod C o gwerslyfr oldschool. 624 00:29:50,230 --> 00:29:53,310 Ond, unwaith eto, yr ydym yn eu defnyddio fel hyfforddiant olwynion o ryw fath am ddim ond ychydig o 625 00:29:53,310 --> 00:29:57,250 wythnos er mwyn i ni gael gwared ar y cymhlethdod y byddwch yn deall yn fuan 626 00:29:57,250 --> 00:30:00,460 eich hun o wneud rhywbeth mor gymharol syml â chael 627 00:30:00,460 --> 00:30:02,080 mewnbwn gan ddefnyddiwr. 628 00:30:02,080 --> 00:30:05,540 >> Felly, yn gwybod y byddwch yn cael mynediad i GetChar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 dyblu. 630 00:30:06,050 --> 00:30:07,050 What's - ac yna GetFloat. 631 00:30:07,050 --> 00:30:07,600 Beth yw arnofio? 632 00:30:07,600 --> 00:30:09,382 Gadewch i ni ddechrau yno. 633 00:30:09,382 --> 00:30:10,600 >> MYFYRIWR: [Anghlywadwy]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID Malan: Yeah. 635 00:30:10,790 --> 00:30:12,120 Mae'n nifer sydd â phwynt degol. 636 00:30:12,120 --> 00:30:15,930 Felly, tra mae int yn gyfanrif, sy'n yn unig yw rhif gyda 0 drwy 9, 637 00:30:15,930 --> 00:30:18,940 ryw nifer o ailadrodd hynny, fflôt yn rhywbeth 638 00:30:18,940 --> 00:30:20,100 gyda phwynt degol. 639 00:30:20,100 --> 00:30:26,090 A dwbl, yn y cyfamser, mae hefyd yn nifer sydd â phwynt degol, ond yn fwy 640 00:30:26,090 --> 00:30:28,160 rhifau ar ôl y degol pwynt, o bosibl. 641 00:30:28,160 --> 00:30:30,040 >> Felly, byddwn yn mynd yn ôl at hyn cyn bo hir. 642 00:30:30,040 --> 00:30:34,560 Ond yn nodweddiadol, pob un o'r mathau hyn o data, pob un o'r mathau hyn o newidynnau 643 00:30:34,560 --> 00:30:39,380 y gall llyfrgell fel ein rhai ni ddychwelyd i chi, ddefnyddio rhifau gwahanol o ddarnau i 644 00:30:39,380 --> 00:30:40,290 storio gwybodaeth. 645 00:30:40,290 --> 00:30:43,910 Yn nodweddiadol, mae Torgoch, a dim ond yn golygu un cymeriad, yn defnyddio 8 did. 646 00:30:43,910 --> 00:30:47,490 A dyna mewn gwirionedd yn gyson â'n beit o wirfoddolwyr yr wythnos diwethaf a 647 00:30:47,490 --> 00:30:50,410 yn dod i fyny ac yn cynrychioli un Ascii ar y tro. 648 00:30:50,410 --> 00:30:51,850 Felly Torgoch yn 8 did. 649 00:30:51,850 --> 00:30:54,430 >> Mae arnofio yn digwydd i fod yn 32 darnau, fel arfer. 650 00:30:54,430 --> 00:30:59,230 A dwbl, fel y byddech yn dyfalu, yn mewn gwirionedd 64 ddarnau, sydd ychydig yn fwy, 651 00:30:59,230 --> 00:31:01,360 sy'n golygu y gallwch gael mwy rhifau neu fwy o fanylder. 652 00:31:01,360 --> 00:31:03,000 Ond unwaith eto, mwy am hynny rywbryd arall. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, yn y cyfamser, er wirion a enwir, sydd mewn gwirionedd dim ond 654 00:31:06,550 --> 00:31:10,770 cyfanrif sy'n ddwywaith mor fawr, ddwywaith yn hir, o bosibl, yn rheolaidd 655 00:31:10,770 --> 00:31:12,940 cyfanrif, 64 darnau yn hytrach na 32. 656 00:31:12,940 --> 00:31:14,560 Ac GetString rydym wedi bod yn ei ddefnyddio. 657 00:31:14,560 --> 00:31:18,870 >> Ond mae'n troi allan, yn y llyfrgell CS50, sy'n cael ei weithredu, gan y byddwn yn gweld, yn 658 00:31:18,870 --> 00:31:23,560 ffurf y ddwy ffeil, un ohonynt Gelwir cs50.h, mae gan ddau arall 659 00:31:23,560 --> 00:31:24,770 mathau data ynddo. 660 00:31:24,770 --> 00:31:29,700 Nid booleans yn bodoli mewn C. Gallwch iddynt efelychu gan ddefnyddio dim ond 0s a 1s 661 00:31:29,700 --> 00:31:30,850 drwy gydol eich rhaglenni. 662 00:31:30,850 --> 00:31:35,500 Ond rydym yn y llyfrgell CS50 wedi creu symbolau "gwir" a "ffug" 663 00:31:35,500 --> 00:31:38,580 i gynrychioli 1 a 0 fel nad ydych yn ei wneud rhaid i cod caled rhywbeth 664 00:31:38,580 --> 00:31:39,810 llythrennol fel 1 a 0. 665 00:31:39,810 --> 00:31:40,980 Ond byddwn yn gweld hynny eto. 666 00:31:40,980 --> 00:31:42,330 >> Llinyn, hefyd, nid yw'n bodoli. 667 00:31:42,330 --> 00:31:44,520 A dyna pam yr wyf yn sôn amdano yn dipyn o gelwydd gwyn am y tro. 668 00:31:44,520 --> 00:31:46,660 Ond gallwn eich croen yn ôl y haen cyn bo hir. 669 00:31:46,660 --> 00:31:49,540 Ond am y tro, mae llinyn yn dilyniant o gymeriadau. 670 00:31:49,540 --> 00:31:51,790 >> Yn y cyfamser, yn C, yr ydych yn wir gwahanol fathau o ddata. 671 00:31:51,790 --> 00:31:53,200 Hysbysiad rhain yn llythrennau bach. 672 00:31:53,200 --> 00:31:56,960 Felly, y swyddogaethau a welsoch funud yn ôl eu swyddogaethau a ysgrifennwyd gan CS50 bod 673 00:31:56,960 --> 00:32:02,310 bydd yn dychwelyd atoch gwerth sy'n dod i mewn i un o'r categorïau hyn. 674 00:32:02,310 --> 00:32:06,730 >> Mae taflenni twyllo cwpl yn unig i blannu yr hadau yma. printf nid yw'n yn unig 675 00:32:06,730 --> 00:32:08,600 cymryd% s fel bachau. 676 00:32:08,600 --> 00:32:13,490 Mae'n cymryd% d ar gyfer gyfanrifau degol, neu% Byddai i yn gweithio cystal. 677 00:32:13,490 --> 00:32:19,450 % F yn arnofio gwerthoedd pwynt. % C ar gyfer golosg, os ydych am i ddim ond un plwg 678 00:32:19,450 --> 00:32:23,510 gymeriad i mewn i linyn wedi'i fformatio'n barod fel yr ydym wedi bod yn ei wneud, gallwch ddefnyddio% c. 679 00:32:23,510 --> 00:32:28,490 >> Ac yna, braidd yn annoyingly,% LLD yn am hir, cyfanrif degol hir, 680 00:32:28,490 --> 00:32:31,050 a dim ond yn golygu os ydych angen mewn gwirionedd nifer fawr ac rydych yn defnyddio rhywbeth 681 00:32:31,050 --> 00:32:35,450 a elwir yn hir hir, y byddwn yn dod yn ôl i mewn pset, gallwch ddefnyddio% LLD i 682 00:32:35,450 --> 00:32:40,700 dweud printf, plwg mewn fawr iawn cyfanrif yma trwy gyfrwng ei ail neu 683 00:32:40,700 --> 00:32:41,830 rhywfaint o ddadl arall. 684 00:32:41,830 --> 00:32:45,700 >> Ac yn olaf, yr wyf yn addo y mae ychydig o ddianc eraill 685 00:32:45,700 --> 00:32:47,670 dilyniannau sy'n cefnogi printf. 686 00:32:47,670 --> 00:32:49,160 Rydym wedi gweld slaes-n. 687 00:32:49,160 --> 00:32:50,510 Slaes-r efallai y byddwch yn gweld. 688 00:32:50,510 --> 00:32:51,780 Mae'n fath o beth hen-ysgol. 689 00:32:51,780 --> 00:32:55,920 Os ydych chi erioed wedi defnyddio o flynyddoedd teipiadur go iawn yn ôl ac rydych yn tynnu ar y crank 690 00:32:55,920 --> 00:32:59,810 sydd nid yn unig cylchdroi yr olwyn i symud y lineup, mae hefyd yn symud y 691 00:32:59,810 --> 00:33:03,730 holl beth yn yr holl ffordd yn ôl dros i y chwith, yn dda, slaes-r yn unig 692 00:33:03,730 --> 00:33:06,480 hanfod yn symud eich cyrchwr yn ôl i gychwyn y llinell 693 00:33:06,480 --> 00:33:07,830 heb symud i lawr. 694 00:33:07,830 --> 00:33:09,780 Ond unwaith eto, yn fwy ar hynny, efallai, yn y dyfodol. 695 00:33:09,780 --> 00:33:13,670 >> Slaes-dyfyniad, dyfyniad slaes-dwbl, slaes-slaes yw'r 696 00:33:13,670 --> 00:33:16,600 ateb i'r pos bach bach Cyfeiriais yn gynharach. 697 00:33:16,600 --> 00:33:18,920 Ac slaes-0 mewn gwirionedd eithaf diddorol. 698 00:33:18,920 --> 00:33:21,470 Ond byddwn yn dod yn ôl i hynny cyn bo hir. 699 00:33:21,470 --> 00:33:25,640 >> Felly, gadewch i mi fynd i mewn, yn awr, yr CS50 offer, a gadewch i ni wneud mewn gwirionedd yn 700 00:33:25,640 --> 00:33:28,930 cyflym cynhesu i fyny gyda un o'r enghreifftiau rydym eisoes ac yna yn symud ymlaen i 701 00:33:28,930 --> 00:33:31,160 rywbeth ychydig yn fwy cymhleth. 702 00:33:31,160 --> 00:33:34,980 Felly os wyf yn agor fy rhaglen a elwir yn gedit - 703 00:33:34,980 --> 00:33:36,840 hwn yw fy golygydd graffigol. 704 00:33:36,840 --> 00:33:38,460 A alla i wneud hynny - 705 00:33:38,460 --> 00:33:39,820 gadewch i mi gau'r ffenestr yno - 706 00:33:39,820 --> 00:33:42,720 drwy gyfrwng yr eicon hwn i lawr yma, gedit, yn y gwaelod ar y chwith 707 00:33:42,720 --> 00:33:44,170 cornel nesaf at y fwydlen. 708 00:33:44,170 --> 00:33:48,670 >> Rydw i'n mynd i fynd yn ei flaen a hyrwyddo, a achub yr enghraifft hon i mewn i, dyweder, John 709 00:33:48,670 --> 00:33:49,660 Ffolder Harvard. 710 00:33:49,660 --> 00:33:52,690 Ffolder John Harvard yn dim ond ei gartref cyfeiriadur lle mae ei holl ffeiliau yn byw 711 00:33:52,690 --> 00:33:53,340 yn ddiofyn. 712 00:33:53,340 --> 00:33:58,410 Ac yr wyf i'n mynd i achub hyn fel ffeil o'r enw helo-0.c. 713 00:33:58,410 --> 00:34:01,260 Ac yr wyf wedi dewis yr enw hwn yn unig felly mae'n llinellau i fyny â'r cod sampl ar y 714 00:34:01,260 --> 00:34:04,210 gwefan cwrs ac yn y Fideos YouTube ar-lein. 715 00:34:04,210 --> 00:34:06,320 >> Felly, yn awr yr wyf i'n mynd i ddechrau ysgrifennu fy rhaglen gyntaf. 716 00:34:06,320 --> 00:34:08,469 Gadewch i mi chwyddo i mewn ar gyfer eglurder. 717 00:34:08,469 --> 00:34:12,760 Ac yr wyf i'n mynd i fynd yn ei flaen a dweud int prif ddi-rym, sy'n cael ei union fel y 718 00:34:12,760 --> 00:34:14,900 darn pos melyn sy'n dechrau rhaglen. 719 00:34:14,900 --> 00:34:18,290 Rwyf wedi gotten i mewn i'r arfer dros y mlynedd o agor fy brês cyrliog, yna 720 00:34:18,290 --> 00:34:22,000 hefyd yn cau ac yna mynd yn ôl i lle yr wyf am roi fy cod, dim ond 721 00:34:22,000 --> 00:34:24,630 oherwydd ei fod yn fy helpu i gadw popeth gytbwys, yn enwedig gan fod fy 722 00:34:24,630 --> 00:34:25,880 rhaglen yn cael hir. 723 00:34:25,880 --> 00:34:29,239 >> Ac yn awr, yma, yr wyf i'n mynd i fynd yn ei flaen a dweud, printf, unquote dyfynnu, 724 00:34:29,239 --> 00:34:34,330 helo byd, slaes-n, dyfynnwch agos, parenthesis cau, hanner colon. 725 00:34:34,330 --> 00:34:38,100 Felly, Im 'jyst yn ailadrodd popeth rydym wedi bod yn cymryd yn ganiataol hyd yn hyn. 726 00:34:38,100 --> 00:34:39,270 Nawr rwy'n mynd i chwyddo allan. 727 00:34:39,270 --> 00:34:43,030 >> A ffenestr terfynol hwn i lawr yma, beth y mae gennyf hawl i'w wneud yn y du 728 00:34:43,030 --> 00:34:44,389 a ffenestri gwyn? 729 00:34:44,389 --> 00:34:46,977 Beth alla i ei ddefnyddio? 730 00:34:46,977 --> 00:34:49,770 Felly dyma lle rwy'n rhedeg gorchmynion a ble alla i lunio pethau. 731 00:34:49,770 --> 00:34:50,620 Ac yr wyf i'n mynd i gadw pethau'n syml. 732 00:34:50,620 --> 00:34:52,780 Rydw i'n mynd i ddefnyddio rhaglen o'r enw Gwneud, nad yw'n 733 00:34:52,780 --> 00:34:54,020 dechnegol a compiler. 734 00:34:54,020 --> 00:34:56,360 Clang Gelwir y compiler, ond byddwn yn dod yn ôl at hynny mewn 735 00:34:56,360 --> 00:34:57,190 wythnos neu ddwy yn amser. 736 00:34:57,190 --> 00:35:03,410 >> Am y tro, Im 'jyst yn mynd i deipio wneud helo-0, Ond y rhai ohonoch a oedd yn 737 00:35:03,410 --> 00:35:07,050 cymharu yn eich meddyliau hyn yr wyf newydd deipio at yr hyn y dylwn fod wedi ei deipio gall 738 00:35:07,050 --> 00:35:10,180 eisoes yn gwybod fy mod yn gwneud rhywbeth o'i le yma. 739 00:35:10,180 --> 00:35:12,160 Yn awr, mae amlwg bod rhai gwallau. 740 00:35:12,160 --> 00:35:16,742 Cyn i mi hyd yn oed edrych ar yr hyn ydynt, unrhyw syniadau o ran yr hyn yr wyf yn anghywir? 741 00:35:16,742 --> 00:35:18,590 >> MYFYRWYR: [ymyrryd yn LLEISIAU]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID Malan: Yeah. 743 00:35:18,840 --> 00:35:20,640 Rwy'n goll ffeil flaen y llyfrgell. 744 00:35:20,640 --> 00:35:24,240 Gelwir unrhyw un o'r rhain. Ffeiliau h yn header ffeiliau, ac maent ar y cyd 745 00:35:24,240 --> 00:35:25,680 yn perthyn i bethau o'r enw llyfrgelloedd. 746 00:35:25,680 --> 00:35:28,030 Llyfrgelloedd darnau o god yn unig a ysgrifennodd pobl eraill. 747 00:35:28,030 --> 00:35:32,140 Felly mae'r [safonol? i] llyfrgell? yn casgliad o ffeiliau sy'n cynnwys cod 748 00:35:32,140 --> 00:35:33,330 a ysgrifennodd pobl eraill. 749 00:35:33,330 --> 00:35:34,820 >> Felly, rwy'n ar goll hynny. 750 00:35:34,820 --> 00:35:36,520 Felly pam ydw i'n cael gwall? 751 00:35:36,520 --> 00:35:40,840 Wel, gadewch i mi sgrolio yn ôl i fyny yn fy ffenestr terfynell yma. 752 00:35:40,840 --> 00:35:44,310 Ac yn anffodus, yn C, fel mewn llawer o ieithoedd rhaglennu, yn enwedig 753 00:35:44,310 --> 00:35:47,830 os yw'n gyd yn newydd i chi, y gwall negeseuon yn fanwl gywir, ond maen nhw hefyd yn 754 00:35:47,830 --> 00:35:48,620 eithaf cryptig. 755 00:35:48,620 --> 00:35:51,720 Ac y gwall yma, mewn coch, yn "Swyddogaeth llyfrgell ymhlyg datgan 756 00:35:51,720 --> 00:35:57,660 printf gyda'r math, "ac yna mae'n sgroliau at y llinell nesaf, "int Etholaeth char *, 757 00:35:57,660 --> 00:36:00,220 ... "Mae'n mynd yn wirioneddol llethol yn gyflym. 758 00:36:00,220 --> 00:36:04,420 >> Ond beth y dylech ddechrau ei wneud, os, unwaith eto, newydd hyn i gyd, yn unig i 759 00:36:04,420 --> 00:36:06,010 dechrau i chwilio am eiriau allweddol. 760 00:36:06,010 --> 00:36:08,770 Yn amlwg, efallai nad wyf yn deall hanner o'r geiriau rwyf i'n gweld eto. 761 00:36:08,770 --> 00:36:10,140 Byddwch, fodd bynnag, ymhen wythnos. 762 00:36:10,140 --> 00:36:11,230 Ond yr wyf yn gweld printf. 763 00:36:11,230 --> 00:36:14,310 Ac y dylai ddechrau, cyn bo hir, i brocio'r cof, popeth yn iawn, printf. 764 00:36:14,310 --> 00:36:15,210 Mae rhywbeth o'i le ar printf. 765 00:36:15,210 --> 00:36:16,580 Wnes i sillafu yn anghywir? 766 00:36:16,580 --> 00:36:18,130 Na, nid yw'n edrych fel - oh. 767 00:36:18,130 --> 00:36:21,350 Nid wyf yn gallu ei ddefnyddio oni bai fy mod yn dysgu y compiler ei fod yn bodoli. 768 00:36:21,350 --> 00:36:25,220 Ac felly, unwaith eto, ewch gyda'ch greddf, hyd yn oed os nad ydych yn deall mewn gwirionedd 769 00:36:25,220 --> 00:36:26,510 y negeseuon gwall gwirioneddol. 770 00:36:26,510 --> 00:36:30,240 >> Ac yn wir, yr ateb yma yw i ddim ond ei gynnwys ar ben y ffeil 771 00:36:30,240 --> 00:36:34,340 fel 'na, resaving fy ffeil gyda Control-S neu y ddewislen File. 772 00:36:34,340 --> 00:36:36,730 Ac os wyf yn awr yn mynd yn ôl i lawr yma, Rydw i'n mynd i glirio hyn. 773 00:36:36,730 --> 00:36:39,150 Control-L yn unig yw ffordd braf i glirio'r sgrin. 774 00:36:39,150 --> 00:36:44,870 Ac yna yr wyf i'n mynd i deipio "gwneud helo 0 "Rhowch, ac yn awr yr wyf yn dal yn gweld 775 00:36:44,870 --> 00:36:47,710 dilyniant cryptig o symbolau, ond byddwn yn dod yn ôl at hynny. 776 00:36:47,710 --> 00:36:49,230 Dyna beth Gwnewch yn ei wneud i chi. 777 00:36:49,230 --> 00:36:52,590 Mae'n awtomeiddio y broses o gymryd gorchymyn eithaf yn blino yn cynnwys 778 00:36:52,590 --> 00:36:54,050 Clang, y casglwr gwirioneddol. 779 00:36:54,050 --> 00:36:57,460 Ond mae'r ffaith fy mod yn cael unrhyw wallau yn golygu y dylai y peth yn gweithio. 780 00:36:57,460 --> 00:37:00,630 >> Felly Yn awr rwy'n mynd i'w wneud - gadewch i mi chwyddo i mewn eto - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Mewnbynnu, ac yn wir, yr wyf yn gweld "Helo, byd." Felly, gadewch i ni yn awr yn gwella 782 00:37:07,070 --> 00:37:12,105 hyn byth felly ychydig yn unig i ailadrodd y camau yr ydym yn bwriadu. 783 00:37:12,105 --> 00:37:15,370 Rydw i'n mynd i ail-enwi hyn gyda Save As i hello1.c. 784 00:37:15,370 --> 00:37:20,300 Ac yn awr yr wyf i'n mynd i ddatgan newidyn alwodd ei enw, felly enw llinyn, 785 00:37:20,300 --> 00:37:23,420 ac yr wyf i'n mynd i roi ynddo y gwerth y dyfyniad-unquote 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D agos-dyfynbris hanner colon. 787 00:37:27,030 --> 00:37:31,150 Ac yn awr yr wyf i'n mynd i gymryd lle "byd" â'r hyn cadw'r llinyn? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Ac yn awr, faint o ddadleuon dylai printf gymryd yr amser hwn? 790 00:37:35,040 --> 00:37:35,700 Felly ddau. 791 00:37:35,700 --> 00:37:37,090 Felly, yr wyf yn mynd y tu allan i'r dyfyniadau. 792 00:37:37,090 --> 00:37:39,330 I deipio "enw" ar ôl coma. 793 00:37:39,330 --> 00:37:41,550 Ond dw i wedi gwneud rhywbeth arall yn anghywir y tro hwn. 794 00:37:41,550 --> 00:37:43,940 Ond gadewch i ni dybio nad oeddwn sylweddoli hynny eto. 795 00:37:43,940 --> 00:37:44,910 Gadewch i mi yn mynd i fyny yma. 796 00:37:44,910 --> 00:37:48,850 >> Ac yn sylwi, hefyd, fy mod yn cael ychydig diflasu o deipio "gwneud helo 0" yr holl 797 00:37:48,850 --> 00:37:50,180 amser, "wneud" ac mae hyn i gyd. 798 00:37:50,180 --> 00:37:53,270 Felly, mae'n troi allan, yn Linus gallwch yn aml yn cyrraedd y saeth Up ar eich 799 00:37:53,270 --> 00:37:56,850 bysellfwrdd, a gallwch sgrolio mewn gwirionedd drwy'r holl orchmynion yr wyf i wedi 800 00:37:56,850 --> 00:37:58,830 gweithredu blaenorol yn unig nawr. 801 00:37:58,830 --> 00:38:02,040 Felly os wyf yn gwneud hynny, Up, Up, mae gwneud helo 0. 802 00:38:02,040 --> 00:38:02,610 Nid wyf yn dymuno hynny. 803 00:38:02,610 --> 00:38:05,450 Fi jyst eisiau newid hynny i hello 1 y tro hwn, Enter. 804 00:38:05,450 --> 00:38:07,620 Yn y pen draw, a fydd yn arbed amser i chi. 805 00:38:07,620 --> 00:38:08,150 >> Mae pob hawl. 806 00:38:08,150 --> 00:38:09,520 Yn anffodus, mae ei gwall. 807 00:38:09,520 --> 00:38:10,980 Felly, gadewch i mi sgrolio i fyny. 808 00:38:10,980 --> 00:38:13,120 Mae hyn yn edrych fel Fi 'n sylweddol lladd yn y rhaglen hon. 809 00:38:13,120 --> 00:38:16,530 Yr wyf yn golygu, fy duw, mae'n dwy linell o god, ac mae ei 10 llinell o wallau. 810 00:38:16,530 --> 00:38:18,800 Ond yn edrych ar y un uchaf yn gyntaf. 811 00:38:18,800 --> 00:38:21,640 Defnyddio llinyn dynodwr heb ei ddatgan. 812 00:38:21,640 --> 00:38:23,270 Oeddech wyf yn golygu safonol i n? 813 00:38:23,270 --> 00:38:23,930 Na wnes i ddim. 814 00:38:23,930 --> 00:38:24,940 Yr wyf yn golygu llinyn. 815 00:38:24,940 --> 00:38:29,390 >> Ond ble mae'r newidyn llinyn Datganodd fath, DD a ddywedwn? 816 00:38:29,390 --> 00:38:30,730 Felly, ei fod yn y CS50 y llyfrgell. 817 00:38:30,730 --> 00:38:33,740 Felly, nid yw'n ddigon, yn y cyntaf ychydig o wythnosau, dim ond i ddefnyddio 818 00:38:33,740 --> 00:38:34,860 yr hyn y C yn rhoi i ni. 819 00:38:34,860 --> 00:38:38,120 Rwyf hefyd yn mynd i fynd i fyny yma, ac yr wyf yn gallai roi uwch neu'n is, ond byddaf 820 00:38:38,120 --> 00:38:40,340 dim ond ei gadw yn nhrefn yr wyddor er mwyn cadw pethau'n drefnus. 821 00:38:40,340 --> 00:38:43,470 Rydw i'n mynd i gynnwys cs50.h, sy'n ei gyn-osod ar gyfer 822 00:38:43,470 --> 00:38:44,900 chi ar y CS50 offer. 823 00:38:44,900 --> 00:38:47,640 Ac mae'n ffynhonnell agored, felly hyd yn oed pobl ar y rhyngrwyd yn gallu ei ddefnyddio ar eu 824 00:38:47,640 --> 00:38:48,450 cyfrifiaduron eu hunain. 825 00:38:48,450 --> 00:38:50,700 Ond mae'n dod gyda'r CS50 offer. 826 00:38:50,700 --> 00:38:55,320 >> Felly nawr gadewch i mi fynd yn ôl ac ail-grynhoi hyn gyda gwneud helo 1. 827 00:38:55,320 --> 00:38:55,710 Damia. 828 00:38:55,710 --> 00:38:57,240 Still wall arall. 829 00:38:57,240 --> 00:38:59,370 Gadewch i mi sgrolio i fyny at y cyntaf, er. 830 00:38:59,370 --> 00:39:00,630 Mae hon yn ychydig o gymhleth. 831 00:39:00,630 --> 00:39:03,830 Gymeriad aml-cymeriad cyson. 832 00:39:03,830 --> 00:39:04,890 Nid yw hyn yn fy helpu. 833 00:39:04,890 --> 00:39:08,220 Ond rhybudd, clang o leiaf ychydig bit gweddus, lle gydag ychydig 834 00:39:08,220 --> 00:39:11,890 gwyrdd caret symbol, mae'n dweud dyma lle rwy'n sgriwio i fyny. 835 00:39:11,890 --> 00:39:16,160 Pam ei fod yn pwyntio, ac mai ychydig gwyrdd saeth, i'r dyfyniad sengl nesaf 836 00:39:16,160 --> 00:39:18,290 i fy enw? 837 00:39:18,290 --> 00:39:20,880 >> Felly, mae hwn yn un o'r pethau yr ydych yn unig ddod i arfer â, yn enwedig os ydych wedi bod 838 00:39:20,880 --> 00:39:23,980 rhaglennu yn Python, neu JavaScript, neu ieithoedd eraill lle mae manylion hyn 839 00:39:23,980 --> 00:39:24,560 nid yw'n fater. 840 00:39:24,560 --> 00:39:25,740 Yn C, mae'n fater. 841 00:39:25,740 --> 00:39:29,520 Os ydych yn datgan llinyn, sy'n dilyniant o 0 neu fwy o gymeriadau, 842 00:39:29,520 --> 00:39:32,280 rhaid i chi mewn gwirionedd yn defnyddio dyfynodau dwbl. 843 00:39:32,280 --> 00:39:36,670 Felly, yr wyf mewn gwirionedd angen newid hyn yn ôl i agor dyfyniad, dyfyniad yn cau, gyda 844 00:39:36,670 --> 00:39:37,800 dyfynodau dwbl. 845 00:39:37,800 --> 00:39:41,610 Dyfyniadau sengl yn eu lle, ond dim ond pan fyddwch yn defnyddio unigolyn 846 00:39:41,610 --> 00:39:44,100 chars, ond mwy am hynny rywbryd eto. 847 00:39:44,100 --> 00:39:46,550 Am y tro, y dyfyniadau dwbl yn angenrheidiol. 848 00:39:46,550 --> 00:39:50,460 >> Felly nawr, gadewch i mi fynd yn ôl at fy terfynell ffenestr, yn gwneud helo 1. 849 00:39:50,460 --> 00:39:51,450 A phwy sy'n hyderus? 850 00:39:51,450 --> 00:39:53,800 A yw hyn yn rhaglen yn awr yn mynd i lunio gywir? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Felly tri ohonom yn credu hyn. 854 00:39:59,780 --> 00:40:00,280 Mae pob hawl. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 Ac mae'n mewn gwirionedd oedd. 857 00:40:02,440 --> 00:40:05,130 Felly does dim gwallau y cyfnod hwn, hyd yn oed er bod y rhaglen wedi gotten ychydig 858 00:40:05,130 --> 00:40:05,840 yn fwy cymhleth. 859 00:40:05,840 --> 00:40:10,110 Os wyf yn awr yn gwneud dot slaes helo 1, Mewnbynnu, mae'n mynd i ddweud "helo, David." 860 00:40:10,110 --> 00:40:11,750 >> Ond gadewch i ni wneud y trydydd ailadroddiad o hyn, lle mae'r 861 00:40:11,750 --> 00:40:13,380 rhaglen yn wirioneddol ddeinamig. 862 00:40:13,380 --> 00:40:16,770 Gadewch i mi fynd yn ei flaen a newid y ffeil enw, dim ond ar gyfer cysondeb gyda'r 863 00:40:16,770 --> 00:40:20,410 ffeiliau bydd gennych ar gael i chi wedi hynny ar-lein. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 Ac yn awr yr wyf i'n mynd i fynd i mewn ac nid storio "David" chodio caled yma. 866 00:40:25,510 --> 00:40:28,826 Beth allwn ei wneud yn syml iawn gwella'r rhaglen? 867 00:40:28,826 --> 00:40:30,520 >> Gallwn i alw getstring. 868 00:40:30,520 --> 00:40:33,240 Gallai fod yn ychydig heb fod yn amlwg beth sy'n fin digwydd, felly dwi'n mynd 869 00:40:33,240 --> 00:40:38,470 i mewn gwirionedd yn ychwanegu llinell arall, printf, ac yn dweud enw, colon, dyfynnwch agos, dim ond 870 00:40:38,470 --> 00:40:40,790 i roi i'r defnyddiwr gwasanaeth prydlon ar y sgrin. 871 00:40:40,790 --> 00:40:42,980 Ac yn awr yr wyf i'n mynd i fynd yma, ac rwy'n yn mynd i ddefnyddio fy llwybr byr bysellfwrdd. 872 00:40:42,980 --> 00:40:47,680 Rydw i'n mynd i fynd Up, Up, a newid helo helo 1 i 2, Enter. 873 00:40:47,680 --> 00:40:49,260 A diolch byth, fy mod yn gwneud cynnydd. 874 00:40:49,260 --> 00:40:52,720 >> Ac yn awr yr wyf i'n mynd i fynd i fyny i dot slaes helo a 875 00:40:52,720 --> 00:40:54,690 newid hynny i 2, Enter. 876 00:40:54,690 --> 00:40:55,650 Ac yn awr fy rhaglen - 877 00:40:55,650 --> 00:40:57,700 'N annhymerus' chwyddo i mewn - yn cael ychydig yn prettier. 878 00:40:57,700 --> 00:41:02,190 Enw yn mynd i fod, gadewch i ni ddweud Rob y tro hwn, Mewnbynnu, helo, Rob. 879 00:41:02,190 --> 00:41:03,260 Gallwn wneud hynny eto. 880 00:41:03,260 --> 00:41:05,360 Enw, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Enw, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Enw, gadewch i ni geisio i fod yn anodd, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 Nid yw'n wir a bug. 885 00:41:14,680 --> 00:41:16,090 Felly, dim ond ychydig yn hyll. 886 00:41:16,090 --> 00:41:18,640 Felly efallai y gallem ddatrys y yn y dyfodol, nid yn awr. 887 00:41:18,640 --> 00:41:20,840 >> Ond sut fyddech chi'n reddfol mynd ati i fynd i'r afael â 888 00:41:20,840 --> 00:41:21,990 bod her arbennig? 889 00:41:21,990 --> 00:41:23,710 'I jyst yn edrych yn dwp. 890 00:41:23,710 --> 00:41:27,320 Sut yr ydych yn osgoi pethau edrych yn dwp? 891 00:41:27,320 --> 00:41:29,890 Felly, gallem ei wneud, OK, yr wyf yn clywed cwpl o bethau, cyflwr a dolen. 892 00:41:29,890 --> 00:41:33,340 Gallem ddefnyddio, un, cyflwr, i wirio beth yw hyd y llinyn 893 00:41:33,340 --> 00:41:34,190 Rhoddodd y defnyddiwr i ni? 894 00:41:34,190 --> 00:41:37,100 Ac os yw'n 0, 'i' jyst dyfynnu unquote, maent yn jyst daro Mewnbynnu, yna 895 00:41:37,100 --> 00:41:38,930 efallai y dylwn gweiddi arnyn nhw ac yn eu hannog eto. 896 00:41:38,930 --> 00:41:39,970 Ond sut ydych yn annog nhw eto? 897 00:41:39,970 --> 00:41:44,230 Wel, yr wyf yn clywed dolen hefyd, a gallwn gwneud hynny eto ac eto ac eto 898 00:41:44,230 --> 00:41:47,010 annog y defnyddiwr ar gyfer yr un peth. 899 00:41:47,010 --> 00:41:48,880 >> Wel, gadewch i ni wneud un enghraifft arall gan ddefnyddio gwahanol 900 00:41:48,880 --> 00:41:50,620 swyddogaeth yn y llyfrgell CS50. 901 00:41:50,620 --> 00:41:52,330 Gadewch i mi gau'r ffeil hon. 902 00:41:52,330 --> 00:41:53,510 Gadewch i mi greu un newydd. 903 00:41:53,510 --> 00:41:58,510 A byddaf yn ei alw adder.c, dim ond oherwydd mae'n hawdd i wneud rhifyddeg syml, 904 00:41:58,510 --> 00:42:00,890 hyd yn oed er y bydd hyn yn gwbl underwhelming â'r hyn y gallech ei wneud 905 00:42:00,890 --> 00:42:02,250 gydag unrhyw gyfrifiadur modern. 906 00:42:02,250 --> 00:42:03,750 >> Ond gadewch i mi fynd yn ei flaen yn awr ac - 907 00:42:03,750 --> 00:42:10,680 Yr wyf yn dysgu fy ngwers tro diwethaf - yn cynnwys cs50.h, yn cynnwys stdio.h, int 908 00:42:10,680 --> 00:42:14,170 prif ddi-rym, sydd, ar hyn o bryd, 'n annhymerus' jyst cymryd ar ffydd ddall, ond byddwn yn cymryd yn ganiataol 909 00:42:14,170 --> 00:42:16,380 a fydd yn deall yr hyn mae hynny'n golygu cyn bo hir. 910 00:42:16,380 --> 00:42:21,030 Ac yr wyf i'n mynd i ddweud rhywbeth fel "rhoi int i mi." 911 00:42:21,030 --> 00:42:22,140 >> Ac yn awr, sut ydw i'n cael int? 912 00:42:22,140 --> 00:42:26,820 Yr wyf am ddatgan amrywiol yn y pen draw Gelwir x o int fath a 913 00:42:26,820 --> 00:42:29,240 storio ynddo cyfanrif gan y defnyddiwr. 914 00:42:29,240 --> 00:42:29,970 Felly yr oedd llond ceg. 915 00:42:29,970 --> 00:42:35,680 Ond os bydd rhywun am gynnig, sut ydw i'n datgan o'r enw x cyfanrif? 916 00:42:35,680 --> 00:42:36,310 X Int. 917 00:42:36,310 --> 00:42:37,430 >> Felly, mae mewn gwirionedd yw bod syml. 918 00:42:37,430 --> 00:42:38,240 Rhoi int mi. 919 00:42:38,240 --> 00:42:39,070 Ffoniwch y x. 920 00:42:39,070 --> 00:42:40,580 Yn awr yr wyf yn defnyddio'r gweithredwr aseiniad. 921 00:42:40,580 --> 00:42:43,400 A sut ydw i'n cadw oddi wrth y gadael gwerth y defnyddiwr? 922 00:42:43,400 --> 00:42:47,310 Nid wyf am i alw getstring, yn amlwg, ond yn hytrach getint. 923 00:42:47,310 --> 00:42:49,060 Unrhyw ddadleuon? 924 00:42:49,060 --> 00:42:49,350 Rhif 925 00:42:49,350 --> 00:42:51,870 Felly mae'n agored Paren, Paren agos ar unwaith, ac yna 926 00:42:51,870 --> 00:42:53,440 hanner colon yn dod i ben y llinell. 927 00:42:53,440 --> 00:42:54,930 >> Nawr, gadewch i mi wneud hyn eto. 928 00:42:54,930 --> 00:42:57,070 Rhowch int arall i mi. 929 00:42:57,070 --> 00:43:01,850 Y tro hwn byddaf yn gwneud int, gadewch i ni alw y, yn hafal getint. 930 00:43:01,850 --> 00:43:05,060 Ac yn awr gadewch i mi wneud rhywbeth super-syml fel rhyw mathemateg. 931 00:43:05,060 --> 00:43:14,340 Felly printf, mae'r swm o% d yw'r dalfan ar gyfer int. 932 00:43:14,340 --> 00:43:20,030 A% d, cyfnod, slaes-n. 933 00:43:20,030 --> 00:43:20,360 >> Mae pob hawl. 934 00:43:20,360 --> 00:43:21,670 Felly, nid yw mewn gwirionedd mathemateg. 935 00:43:21,670 --> 00:43:25,500 Ond os ydw i am ddweud y swm y gwerth a gwerth hwn yn dychwelyd hyn 936 00:43:25,500 --> 00:43:29,320 werth arall, faint o ddadleuon i cyfanswm y dylwn ei roi printf, 937 00:43:29,320 --> 00:43:30,520 yn y pen draw? 938 00:43:30,520 --> 00:43:31,420 Felly pedwar, dde? 939 00:43:31,420 --> 00:43:33,790 Mae'r llinyn ac yna y tri gwerth. 940 00:43:33,790 --> 00:43:37,560 Felly x yw'r cyntaf i mi am fod yn plygio i mewn yn gyntaf at y% d. 941 00:43:37,560 --> 00:43:39,270 y yn mynd i fod y nesaf. 942 00:43:39,270 --> 00:43:42,030 >> Ac yn awr yr wyf yn fath o eisiau dweud z, ond nid yw z yn bodoli. 943 00:43:42,030 --> 00:43:43,190 Ond dyw hynny ddim yn beth mawr. 944 00:43:43,190 --> 00:43:45,440 Oherwydd yr hyn fyddech yn ei wneud yn reddfol, yn enwedig os ydych wedi cael 945 00:43:45,440 --> 00:43:47,820 cyfrifiannell graffio, beth ydych chi'n ei deipio? 946 00:43:47,820 --> 00:43:48,760 Beth am x a y? 947 00:43:48,760 --> 00:43:50,200 Felly nid yw'n newidyn gwirioneddol. 948 00:43:50,200 --> 00:43:51,820 Dim ond y swm o ddau newidynnau eraill. 949 00:43:51,820 --> 00:43:53,170 Ac mae hynny'n hollol gyfreithlon. 950 00:43:53,170 --> 00:43:56,630 C yn sicr yn deall syml rhifyddeg fel hyn. 951 00:43:56,630 --> 00:43:58,450 >> Hanner colon, arbed. 952 00:43:58,450 --> 00:44:02,080 Nawr, gadewch i mi fynd i lawr yma ac math wneud wiber, Enter. 953 00:44:02,080 --> 00:44:04,100 Dim camgymeriad, felly dyna gynnydd hefyd. 954 00:44:04,100 --> 00:44:04,890 Math wiber. 955 00:44:04,890 --> 00:44:07,100 Ac llwybr byr bysellfwrdd arall, os byddwch yn dechrau diflasu 956 00:44:07,100 --> 00:44:08,760 gyda'r holl orchmynion - 957 00:44:08,760 --> 00:44:12,650 os byddwch yn dechrau teipio gorchymyn, fel dot slaes ad, a dyna lle bydd eich 958 00:44:12,650 --> 00:44:16,020 diflastod yn cychwyn, fel arfer gallwch daro Tab i gael y cyfrifiadur yn gorffen y 959 00:44:16,020 --> 00:44:20,510 gorffwys yr ymadrodd i chi os nad yw'n amwys hyn y dylid dod ar ôl ad. 960 00:44:20,510 --> 00:44:23,950 >> Felly, gadewch i mi fynd yn ei flaen yn awr ac rydych yn clicio Enter. 961 00:44:23,950 --> 00:44:27,490 Rhoi int, 1, 2 i mi, a diolch byth, mae'n 3. 962 00:44:27,490 --> 00:44:29,900 Ond, fel bob amser, yn profi rhaglenni Ni ddylai ostwng i 963 00:44:29,900 --> 00:44:30,820 ond yn ceisio unwaith. 964 00:44:30,820 --> 00:44:35,560 Gadewch i mi wrando achos cornel, fel negyddol 1, rhowch 1 mi, ac mai un 965 00:44:35,560 --> 00:44:36,210 gwirio allan hefyd. 966 00:44:36,210 --> 00:44:38,870 Ac yr wyf yn ôl pob tebyg am wneud mwy o profion trwyadl, ond rwy'n eithaf 967 00:44:38,870 --> 00:44:40,630 gyfforddus gyda lle bo hynny'n sydd yn y. 968 00:44:40,630 --> 00:44:43,110 >> Wel, yn awr gadewch i ni geisio raglen arall bod y tro hwn yn defnyddio 969 00:44:43,110 --> 00:44:44,620 ychydig o gystrawennau eraill. 970 00:44:44,620 --> 00:44:46,100 Gadewch i mi creu ffeil newydd. 971 00:44:46,100 --> 00:44:51,050 'N annhymerus' galw conditions0.c hwn i linell i fyny gyda rhywfaint o cod sampl ar-lein. 972 00:44:51,050 --> 00:44:55,550 A gadewch i mi fynd yn ei flaen a gwneud cynnwys cs50.h, yn cynnwys 973 00:44:55,550 --> 00:45:00,320 stdio.h, yn y prif ddi-rym - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Dyna ni. 976 00:45:01,850 --> 00:45:03,010 Rydym wedi ein boilerplate safonol. 977 00:45:03,010 --> 00:45:08,170 >> A'r tro hwn yr wyf i'n mynd i ddweud printf, "Hoffwn yn int, os gwelwch yn dda," dim ond i 978 00:45:08,170 --> 00:45:10,030 gwneud yr anogwr ychydig yn fwy cyfeillgar. 979 00:45:10,030 --> 00:45:11,620 Ac yn awr yr wyf am gael int gan y defnyddiwr. 980 00:45:11,620 --> 00:45:15,010 Rydw i'n mynd i alw n y tro hwn, dim ond oherwydd n swnio fel rhif. 981 00:45:15,010 --> 00:45:18,140 getint, ac yn awr, yr hyn yn ei wneud Yr wyf am ei wneud ag ef? 982 00:45:18,140 --> 00:45:21,640 Wel, os n yw - a byddaf yn chwyddo i mewn - 983 00:45:21,640 --> 00:45:25,930 os yw n yn fwy na 0, rwyf am i wneud y canlynol - 984 00:45:25,930 --> 00:45:36,060 printf "Rydych yn dewis rhif positif." Arall, yr wyf i'n mynd i deipio printf "Rydych yn 985 00:45:36,060 --> 00:45:37,870 dewis a negyddol 986 00:45:37,870 --> 00:45:39,650 rhif. "Mae pob hawl. 987 00:45:39,650 --> 00:45:44,410 Felly y rhaglen hon, hyd yn oed er fy mod yn gwneud hynny gyflym, yn edrych yn iawn syntactically. 988 00:45:44,410 --> 00:45:45,010 Gadewch i mi roi cynnig ar hyn. 989 00:45:45,010 --> 00:45:46,890 Gwneud amod 0. 990 00:45:46,890 --> 00:45:47,710 Ymddangos i redeg. 991 00:45:47,710 --> 00:45:49,230 Amod 0, nodwch. 992 00:45:49,230 --> 00:45:51,910 Gadewch i ni roi yn int o 50. 993 00:45:51,910 --> 00:45:53,160 Dewisais rhif positif. 994 00:45:53,160 --> 00:45:54,230 Gadewch i ni roi cynnig arni eto. 995 00:45:54,230 --> 00:45:54,930 Amod 0. 996 00:45:54,930 --> 00:45:56,260 Negyddol 50. 997 00:45:56,260 --> 00:45:57,290 Yr wyf yn codi nifer negyddol. 998 00:45:57,290 --> 00:46:00,350 >> Ond yn awr, gadewch i mi ddewis yr hyn y byddwn yn cadw galw achos cornel, sy'n fwy 999 00:46:00,350 --> 00:46:04,702 yn achos diddorol yn eich barn chi allai roi rhywfaint o drafferth, 0 i chi. 1000 00:46:04,702 --> 00:46:07,940 Nawr, rwy'n eithaf siŵr bod hyn yn un o yr achosion gornel lle sero yn 1001 00:46:07,940 --> 00:46:12,330 ddim yn gadarnhaol nac yn negyddol, felly mae fy rhaglen, er mewn syntactically 1002 00:46:12,330 --> 00:46:15,440 gywiro - mae'n llunio, mae'n rhedeg - nid yw'n rhesymegol gywir. 1003 00:46:15,440 --> 00:46:21,050 Felly beth yw'r ateb syml yma os ydw i eisiau i ganfod, os wyf am ymdrin â n 1004 00:46:21,050 --> 00:46:23,840 yn hafal i 0 ar wahân? 1005 00:46:23,840 --> 00:46:32,980 >> Felly, os n hafal i 0, yna yr wyf am ddweud rhywbeth fel printf "Rydych yn dewis 0." 1006 00:46:32,980 --> 00:46:33,990 Gadewch i mi roi cynnig ar hyn yn awr. 1007 00:46:33,990 --> 00:46:38,320 Gadewch i mi fynd yn ôl yma, yn glir fy ffenestr, a ail-grynhoi. 1008 00:46:38,320 --> 00:46:38,690 EM. 1009 00:46:38,690 --> 00:46:39,770 Un gwall cynhyrchu. 1010 00:46:39,770 --> 00:46:41,630 Ond yr wyf yn ydych am weld os n dychwelyd 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Felly, unwaith eto, beth gwirion arall i ddod i arfer â, arwydd cyfartal yn 1013 00:46:47,720 --> 00:46:48,910 y gweithredwr aseiniad. 1014 00:46:48,910 --> 00:46:52,240 Felly, mae hyn mewn gwirionedd yn gamgymeriad yn hynny, dechnegol, er bod y compiler 1015 00:46:52,240 --> 00:46:56,450 mi diogelu rhag fy hun, byddem dechnegol yn copïo 0 i mewn i n, sy'n 1016 00:46:56,450 --> 00:46:57,590 Nid yw hyn yr wyf eisiau. 1017 00:46:57,590 --> 00:47:00,950 Rwyf am i brofi am gydraddoldeb gyda gyfartal gyfartal. 1018 00:47:00,950 --> 00:47:03,390 Ac felly y gallai yn awr fod yn fy ateb gwell. 1019 00:47:03,390 --> 00:47:07,810 >> Gadewch i mi mewn gwirionedd yn resave hyn fel, dyweder, conditions1, i fod yn newydd a gwell. 1020 00:47:07,810 --> 00:47:10,480 Felly, yn awr os wyf yn ail-grynhoi hyn, byddai'n gwneud amodau - 1021 00:47:10,480 --> 00:47:16,960 bloeddiadau - gwnewch conditions1 dot slaes conditions1, Mewnbynnu, "Hoffwn yn int, 1022 00:47:16,960 --> 00:47:18,760 os gwelwch yn dda. "Rydw i'n mynd i fynd ymlaen a theipiwch 50. 1023 00:47:18,760 --> 00:47:19,660 Mae'n dal i fod yn dda. 1024 00:47:19,660 --> 00:47:21,200 Negyddol 50, dal yn dda. 1025 00:47:21,200 --> 00:47:24,920 0, ac, yn wir, canfod fy mod yn codi 0. 1026 00:47:24,920 --> 00:47:28,200 >> Felly, beth arall y gallaf ei wneud yn awr gyda hyn? 1027 00:47:28,200 --> 00:47:32,280 Wel, gallwn yn sicr yn gwneud mwy a mwy pethau cymhleth. 1028 00:47:32,280 --> 00:47:37,240 Ond beth hoffwn gynnig yn ein bod yn dod i ben ar y nodyn yma. 1029 00:47:37,240 --> 00:47:41,680 Os byddwn yn tynnu i fyny hyn, byddwch yn gweld, o bosibl, hoff cartŵn o eiddo 1030 00:47:41,680 --> 00:47:43,326 hyd at heddiw gallech erioed wedi deall. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 A dyna am ansawdd o chwerthin dylech ei gael gyda jôcs CS. 1033 00:47:49,520 --> 00:47:51,060 Felly dyna yn iawn. 1034 00:47:51,060 --> 00:47:54,900 >> Ond yn fwy gymhellol, yr wyf yn meddwl fy mod i wedi roi ychydig o ymlid ar gyfer dydd Llun ni. 1035 00:47:54,900 --> 00:47:56,430 Felly, rydym wedi dechrau defnyddio gyfanrifau. 1036 00:47:56,430 --> 00:47:57,510 Rydym wedi cyfeirio at fflotiau. 1037 00:47:57,510 --> 00:48:00,120 Rydym wedi cyfeirio hyd yn oed dyblau, sydd, unwaith eto, yn rhoi rhifau i chi 1038 00:48:00,120 --> 00:48:01,390 ar ôl pwyntiau degol. 1039 00:48:01,390 --> 00:48:04,230 >> Ond mae'n ymddangos bod fflotiau a dyblau, ac, mewn gwirionedd, cyfrifiaduron, 1040 00:48:04,230 --> 00:48:08,470 sylfaenol, ni ellir mynegi rhai gwerthoedd yn union. 1041 00:48:08,470 --> 00:48:12,840 Rydym yn gwybod o ddosbarthiadau cwestiwn y gallwch cael unrhyw nifer o rifau ar ôl y 1042 00:48:12,840 --> 00:48:13,510 pwynt degol. 1043 00:48:13,510 --> 00:48:16,460 A allwch chi hyd yn oed roi bar fertigol i ddweud hyn yn mynd ymlaen am byth. 1044 00:48:16,460 --> 00:48:18,810 >> Yn anffodus, ni allwch mewn gwirionedd gwneud hynny mewn cyfrifiadur. 1045 00:48:18,810 --> 00:48:20,400 Ac felly cornel achosion yn codi. 1046 00:48:20,400 --> 00:48:23,120 Er enghraifft, mae'n debyg eich bod yn gwneud rhywbeth ariannol. 1047 00:48:23,120 --> 00:48:25,700 Rydych yn gwneud mathemateg gyda chanrannau, ac 1048 00:48:25,700 --> 00:48:27,030 gyda ddoleri a cents. 1049 00:48:27,030 --> 00:48:29,230 Ac nid cents hynny yn reidrwydd llinell i fyny. 1050 00:48:29,230 --> 00:48:34,120 Wel, mae'n ymddangos fod ffracsiynau o Gall geiniogau ddechrau i ychwanegu i fyny pan 1051 00:48:34,120 --> 00:48:37,250 modelu gyda system gyfrifiadurol yn y fath ffordd sy'n glyfar 1052 00:48:37,250 --> 00:48:39,100 Gall pobl gymryd mantais. 1053 00:48:39,100 --> 00:48:42,650 >> A'r rhai ohonoch nad ydynt wedi gweld, yr wyf i wedi hoffi rhoi 30 eiliad ymlid ohonoch 1054 00:48:42,650 --> 00:48:48,290 ffilm wych a elwir yn Gofod Swyddfa, a fydd yn creu darlun o 1055 00:48:48,290 --> 00:48:51,205 problem byddwn yn mynd i'r afael â peth cyntaf ar ddydd Llun. 1056 00:48:51,205 --> 00:48:53,960 Pe gallem godi'r gyfrol ychydig bach, yr wyf yn rhoi i chi 30 1057 00:48:53,960 --> 00:48:55,495 eiliad o Gofod Swyddfa. 1058 00:48:55,495 --> 00:48:55,770 >> [VIDEO Playback] 1059 00:48:55,770 --> 00:48:59,000 >> -Yr wyf yn golygu, yr ydych, nid ydych wedi bod yn dangos i fyny a byddwch yn cael i gadw eich swydd. 1060 00:48:59,000 --> 00:49:00,620 >> -A dweud y gwir, rwy'n cael ei hyrwyddo. 1061 00:49:00,620 --> 00:49:03,240 >> -I gallai raglennu firws y byddent RIP y lle oddi amser mawr. 1062 00:49:03,240 --> 00:49:04,430 >> -Wel, sut mae'n gweithio? 1063 00:49:04,430 --> 00:49:06,782 >> -Bob tro mae trafodiad banc lle y llog yn cael ei gyfrifo, ac mae 1064 00:49:06,782 --> 00:49:10,160 mae miloedd y dydd, mae'r cyfrifiadur yn dod i ben gyda ffracsiynau hyn o cant. 1065 00:49:10,160 --> 00:49:12,030 >> -Ond dydw i ddim yn mynd i gwneud unrhyw beth anghyfreithlon. 1066 00:49:12,030 --> 00:49:12,660 >> -Anghyfreithlon? 1067 00:49:12,660 --> 00:49:15,075 Samir, mae hyn yn America. 1068 00:49:15,075 --> 00:49:16,570 >> -Mae'n rhaid i ni dyngu i Dduw. 1069 00:49:16,570 --> 00:49:19,070 >> -Os oes neb yn gwybod am hyn ond ni, popeth yn iawn? 1070 00:49:19,070 --> 00:49:21,920 Nid oes unrhyw aelodau o'r teulu, dim cariadon, does neb. 1071 00:49:21,920 --> 00:49:22,700 >> -Wrth gwrs. 1072 00:49:22,700 --> 00:49:23,320 >> -Cytunwyd. 1073 00:49:23,320 --> 00:49:24,280 >> -Peidio â phoeni, dyn. 1074 00:49:24,280 --> 00:49:25,640 Ni fyddaf yn dweud wrth neb chwaith. 1075 00:49:25,640 --> 00:49:26,504 >> [VIDEO END Playback] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID Malan: Felly mae hyn, felly, yw CS50, a oedd yn Gofod Swyddfa, a bydd pob 1077 00:49:30,030 --> 00:49:31,465 gwneud synnwyr ar ddydd Llun. 1078 00:49:31,465 --> 00:49:33,940 Gweler chi wedyn. 1079 00:49:33,940 --> 00:49:37,880 >> Adroddwr: Yn y CS50 nesaf, Rob addasu i fod oddi ar y 1080 00:49:37,880 --> 00:49:39,130 Cynllun pryd Harvard. 1081 00:49:39,130 --> 00:49:56,160