1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Felly mae hyn yn CS50. 3 00:00:13,800 --> 00:00:18,970 Ac roedd hyn yn Colton Ogden CS50 ei hun, am fwy o pwy sydd gerddoriaeth rydych yn gallu 4 00:00:18,970 --> 00:00:22,820 lawrlwytho yn soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Felly heddiw rydym yn canolbwyntio yn oed yn fwy ar y grefft o raglennu. 6 00:00:26,690 --> 00:00:28,980 Ac rydym yn cymryd lle'r ydym yn gadael oddi ar yr wythnos diwethaf, gan ganolbwyntio 7 00:00:28,980 --> 00:00:31,660 ar Scratch, a oedd hyn yn iaith raglennu graffigol. 8 00:00:31,660 --> 00:00:35,490 Ac yn cymryd pethau i lawr i lefel is, gan ddefnyddio rhaglennu mwy traddodiadol 9 00:00:35,490 --> 00:00:38,420 iaith a elwir yn C. Ond ar hyd y ffordd, gwireddu 10 00:00:38,420 --> 00:00:40,730 bod yr un syniadau yr ydym yn siarad am ddydd Gwener diwethaf 11 00:00:40,730 --> 00:00:44,390 Bydd ailddigwydd nid yn unig yn hyn iaith C, ond yn y rhan fwyaf mhob arall 12 00:00:44,390 --> 00:00:46,350 bod yn edrych ar y semester hwn. 13 00:00:46,350 --> 00:00:50,247 >> Felly byddem ni'n ei alw y peth hyn yma yr hyn y tro diwethaf? 14 00:00:50,247 --> 00:00:51,830 Mae hyn yn cynrychioli datganiad. 15 00:00:51,830 --> 00:00:53,080 Felly, rydym yn galw hyn yn ddatganiad. 16 00:00:53,080 --> 00:00:54,100 Ac mae'n gwneud rhywbeth. 17 00:00:54,100 --> 00:00:56,910 Mae'n cyfarwyddyd y mae Efallai y cyfrifiadur neu Scratch weithredu. 18 00:00:56,910 --> 00:00:59,910 Ac o hyn ymlaen, gadewch i ni hefyd yn dechrau galw rhywbeth fel hyn yn swyddogaeth, 19 00:00:59,910 --> 00:01:02,070 am resymau y byddwn yn fuan yn gweld. 20 00:01:02,070 --> 00:01:03,681 >> Yn y cyfamser, rydym yn gweld pethau fel hyn. 21 00:01:03,681 --> 00:01:05,680 Ac mae'r rhain yn gyffredinol yr hyn a elwir yn adeiladu? 22 00:01:05,680 --> 00:01:06,240 >> CYNULLEIDFA: dolen. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Felly, dolen. 24 00:01:06,860 --> 00:01:07,943 Felly eithaf syml. 25 00:01:07,943 --> 00:01:09,470 Mae'n llythrennol yn gwneud yr hyn y mae'n ei ddweud. 26 00:01:09,470 --> 00:01:12,210 Ac yn Scratch, os ydych am gwthio fwy o ddarnau pos i mewn 'na, 27 00:01:12,210 --> 00:01:13,950 Bydd y darn yn tyfu i ffitio iddo. 28 00:01:13,950 --> 00:01:16,790 A byddwn yn gweld yn C y y gallwn wneud yr un peth. 29 00:01:16,790 --> 00:01:20,000 >> Math arall o ddolen, fodd bynnag, yn Scratch allai fod am byth, 30 00:01:20,000 --> 00:01:21,820 neu mae unrhyw nifer o ddulliau eraill. 31 00:01:21,820 --> 00:01:24,150 Ond gadewch i ni gymryd mwy edrych yn gyffredinol, gyda wyneb 32 00:01:24,150 --> 00:01:27,402 mae hynny'n debygol yn eithaf cyfarwydd, ar ddolenni yn fwy cyffredinol. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Un peth y cyfrifiaduron 34 00:01:29,110 --> 00:01:31,860 yn dda iawn arno yw ailadrodd gorchmynion. 35 00:01:31,860 --> 00:01:33,910 Fel person, byddech yn ei gael 'n sylweddol diflasu os ydych 36 00:01:33,910 --> 00:01:36,730 roedd yn rhaid i wneud yr un peth llawer o weithiau yn olynol. 37 00:01:36,730 --> 00:01:40,530 Ond gall cyfrifiadur wneud yr un peth neu hyd yn oed miliynau biliynau o weithiau, 38 00:01:40,530 --> 00:01:43,290 ac nid yn diflasu, a gallu i wneud hynny allan yn dda iawn. 39 00:01:43,290 --> 00:01:45,650 >> Felly, er enghraifft, os wyf awyddus i ddymuno i bawb 40 00:01:45,650 --> 00:01:48,840 ar Facebook a pen-blwydd hapus drwy anfon e-bost iddyn nhw, 41 00:01:48,840 --> 00:01:51,550 gallai gymryd mwy na fi ganrif i ysgrifennu allan mewn gwirionedd 42 00:01:51,550 --> 00:01:53,000 pob un o'r negeseuon e-bost hynny i bawb. 43 00:01:53,000 --> 00:01:57,780 Ond gyda dim ond ychydig linellau o god, gallaf cael system yn anfon e-bost at bawb 44 00:01:57,780 --> 00:01:59,930 ar Facebook sy'n dymuno eu pen-blwydd hapus. 45 00:01:59,930 --> 00:02:02,730 Felly dyna beth dolenni a pham eu bod yn werthfawr ac yn rhywbeth 46 00:02:02,730 --> 00:02:04,740 y gall cyfrifiaduron wneud yn dda iawn. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Felly, os rydych wedi bod y derbynnydd 48 00:02:05,630 --> 00:02:07,820 o rai o CS50 a Gofod Dropbox yn o hwyr, 49 00:02:07,820 --> 00:02:10,590 dyna mewn gwirionedd yn union yr hyn yr ydym yn ei wneud, gan ddefnyddio cod yn eithaf fel 'na. 50 00:02:10,590 --> 00:02:12,600 Rydym yn y bôn yn cael fawr taenlen i ba 51 00:02:12,600 --> 00:02:15,016 Folks wedi bod yn mewnbynnu eu enwau a chyfeiriadau e-bost. 52 00:02:15,016 --> 00:02:18,160 Ac rydym yn ysgrifennu ychydig bach o cod sy'n Gall ailadrodd dros y cyfeiriadau hynny 53 00:02:18,160 --> 00:02:21,860 a boeri allan cyfeiriadau unigryw yn unrhyw achos a gyflwynir sawl gwaith. 54 00:02:21,860 --> 00:02:25,120 Ac wedi hynny, yn anfon e-bost awtomataidd o bot CS50 yn, 55 00:02:25,120 --> 00:02:27,190 gan gynnwys y cod cwpon. 56 00:02:27,190 --> 00:02:29,290 >> Nawr rydym hefyd yn edrych ar hyn yn adeiladu y tro diwethaf. 57 00:02:29,290 --> 00:02:33,100 Ac mae hyn yn arbennig enghraifft o'r hyn? 58 00:02:33,100 --> 00:02:35,050 Felly, ie, mae mynegiad Boole. 59 00:02:35,050 --> 00:02:37,050 Ac mae'r siâp a olygir i ddal hynny hefyd. 60 00:02:37,050 --> 00:02:39,966 Pob cwestiwn o'r fath o'r ffurfio cywir neu anghywir mewn Scratch 61 00:02:39,966 --> 00:02:41,590 Bydd yn edrych yn rhywbeth bach fel hyn. 62 00:02:41,590 --> 00:02:43,200 Ac rydym yn galw hyn yn mynegiad Boole. 63 00:02:43,200 --> 00:02:46,170 Mae hynny'n wir yn wir neu'n anwir, ie neu na. 64 00:02:46,170 --> 00:02:49,150 Mae'n ffordd o ateb cwestiwn. 65 00:02:49,150 --> 00:02:52,420 >> Ac yn y cyfamser, gallwch ddefnyddio'r rhain Boole mynegiadau tu mewn lluniadau 66 00:02:52,420 --> 00:02:54,720 fel y rhain, pa un cwrs yn gyflyrau 67 00:02:54,720 --> 00:02:57,259 neu ganghennau, yn ddiarhebol fforchio yn y ffordd. 68 00:02:57,259 --> 00:02:59,550 A gall maent yn edrych nid yn unig yn fel hyn, ond gallant hefyd 69 00:02:59,550 --> 00:03:02,080 wedi elses gysylltiedig â hwy. 70 00:03:02,080 --> 00:03:05,820 A allwch chi mewn gwirionedd yn cael tair ffordd fforch yn y ffordd neu bedwar ffordd fforc 71 00:03:05,820 --> 00:03:08,340 yn y ffordd, dim ond drwy nythu pethau hyn, 72 00:03:08,340 --> 00:03:10,510 fel y byddwch yn gweld yn Scratch os nad ydych wedi gwneud hynny eisoes. 73 00:03:10,510 --> 00:03:13,550 Ac fel y gallwch chi ei wneud yn C hefyd. 74 00:03:13,550 --> 00:03:16,810 >> Gadewch i ni gymryd cyffredinol arall edrych ar alumnist, yn ogystal, sy'n 75 00:03:16,810 --> 00:03:21,490 Gallai cyflwyno dull gwahanol i'r pethau hyn a elwir yn amodau. 76 00:03:21,490 --> 00:03:24,060 >> BILL GATES: Mae pobl yn gwneud penderfyniadau bob dydd. 77 00:03:24,060 --> 00:03:27,530 Er enghraifft, cyn i chi fynd y tu allan i chi math o gael os yw'r datganiad sy'n dweud, 78 00:03:27,530 --> 00:03:31,480 os yw'n bwrw glaw, yna yr wyf yn Mae angen i gael fy siaced. 79 00:03:31,480 --> 00:03:36,820 A chyfrifiaduron yn anhygoel ar ôl i chi penderfynu ar y mathau hynny o ddatganiadau, 80 00:03:36,820 --> 00:03:42,280 eu bod yn gallu gweithredu yn ddibynadwy pethau hynny ar gyflymder anhygoel. 81 00:03:42,280 --> 00:03:48,240 Ac felly rhaglen gyfrifiadurol 'n sylweddol yn ychydig o mathemateg a rhai 82 00:03:48,240 --> 00:03:53,050 os bydd datganiadau lle y penderfyniad yn cael ei wneud. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Felly, fel Efallai eich bod yn gwybod, yr oedd 84 00:03:55,020 --> 00:03:57,880 Folks fel Bill Gates, Paul Allen, ac eraill 85 00:03:57,880 --> 00:04:00,240 bod cicio wirioneddol oddi ar y hyn a elwir yn gyfrifiadur personol 86 00:04:00,240 --> 00:04:01,990 chwyldro rai blynyddoedd yn ôl. 87 00:04:01,990 --> 00:04:04,140 Roeddwn i'n meddwl, cyn i ni plymio i mewn i rai administrivia, 88 00:04:04,140 --> 00:04:09,920 byddem yn ymwneud stori gan y Albuquerque, Amgueddfa New Mexico Hanes Naturiol 89 00:04:09,920 --> 00:04:13,650 a gwyddoniaeth lle mae rhai o Bill Gates ' a storïau cynharaf Paul Allen 90 00:04:13,650 --> 00:04:17,470 yn cael eu adroddodd sut gennym yn awr cyfrifiaduron heddiw a Macs a mwy. 91 00:04:17,470 --> 00:04:22,390 Ar gyfer hyn, fodd bynnag, mae angen dau wirfoddolwr sydd â lleisiau naratif da iawn 92 00:04:22,390 --> 00:04:23,735 i ddarllen sgript yn uchel. 93 00:04:23,735 --> 00:04:25,530 >> Mae pob hawl, beth am yn ôl yno. 94 00:04:25,530 --> 00:04:26,120 Dewch ar i fyny. 95 00:04:26,120 --> 00:04:27,770 A beth am o flaen yma. 96 00:04:27,770 --> 00:04:28,340 Dewch ar i lawr. 97 00:04:28,340 --> 00:04:29,600 Cymerwch eich lleoedd yma. 98 00:04:29,600 --> 00:04:32,444 Wrth i chi guys yn dod i fyny, cwpl o gyhoeddiadau gweinyddol. 99 00:04:32,444 --> 00:04:34,360 rhannu'r, y broses o ddewis adran, 100 00:04:34,360 --> 00:04:36,068 Bydd hyn yn dechrau Dydd Mercher trwy ddydd Gwener. 101 00:04:36,068 --> 00:04:38,400 Mwy am yr hyn sydd i ddod Dydd Mercher yn y ddarlith. 102 00:04:38,400 --> 00:04:41,770 >> Adrannau Super, yn y cyfamser, yn cael eu rhywbeth yr ydym yn cynnig yr wythnos nesaf 103 00:04:41,770 --> 00:04:45,310 lle mae'r dosbarth cyfan yn cael ei wahodd i gymryd rhan mewn ar raddfa eithaf mawr 104 00:04:45,310 --> 00:04:47,690 adrannau, un yn fwy cyfforddus, un yn llai cyfforddus. 105 00:04:47,690 --> 00:04:51,340 A byddwn yn cyhoeddi'r manylion o hynny, yn ogystal, yn ddiweddarach yr wythnos hon. 106 00:04:51,340 --> 00:04:53,310 >> Adrannau yn y cyfamser, eu hunain, yn dechrau 107 00:04:53,310 --> 00:04:57,241 mewn wythnos tri o'r cwrs, sero mynegai, sy'n golygu y rheiny yn gwpl o wythnosau 108 00:04:57,241 --> 00:04:57,740 allan. 109 00:04:57,740 --> 00:04:58,450 Felly, i beidio â phoeni. 110 00:04:58,450 --> 00:05:01,014 Nid ydych wedi colli eto unrhyw beth hyd y llinellau hynny. 111 00:05:01,014 --> 00:05:03,930 Yn y cyfamser yn y cyfamser, os ydych yn gennych unrhyw gwestiynau yn weinyddol, 112 00:05:03,930 --> 00:05:08,120 e-bost fy hun a Dyfnaint a Gabe a Rob yn y cyfeiriad hwn yma. 113 00:05:08,120 --> 00:05:10,320 >> Yn olaf, problem a osodwyd 0 yw, wrth gwrs, y tu allan. 114 00:05:10,320 --> 00:05:12,320 Efallai eich bod wedi sylwi arno ar wefan y cwrs. 115 00:05:12,320 --> 00:05:14,840 Dylai ddarparu i chi gyda yr holl atebion i gwestiynau 116 00:05:14,840 --> 00:05:18,250 allai fod gennych ar hyd y ffordd ar gyfer dechrau arni gyda'r broblem a osodwyd. 117 00:05:18,250 --> 00:05:21,430 Ond os ydych yn cael eich hun sydd angen help llaw, 118 00:05:21,430 --> 00:05:25,020 ar bob cyfrif yn mynychu oriau swyddfa, Dydd Llun, Dydd Mawrth, Dydd Mercher, Dydd Iau 119 00:05:25,020 --> 00:05:27,290 yr wythnos hon yn y nos mewn pedwar neuaddau bwyta. 120 00:05:27,290 --> 00:05:31,650 Gweler y URL yno ar gyfer y manylion o ble fydd oriau swyddfa fod. 121 00:05:31,650 --> 00:05:34,000 >> Nawr Gadewch i ni fodloni ein dau o westeion yma heddiw. 122 00:05:34,000 --> 00:05:34,740 Beth yw eich enw? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> DAVID J. Malan: Jay Paul, neis i gwrdd â chi. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. Malan: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. Malan: Hikari. 129 00:05:38,810 --> 00:05:39,790 Neis i gwrdd â chi hefyd. 130 00:05:39,790 --> 00:05:42,123 Jay Paul a Hikari gennym yn o'u blaen ar y gerddoriaeth yma 131 00:05:42,123 --> 00:05:45,100 sefyll dau sgriptiau fy mod hargraffu allan y bore yma gan y Mexico Newydd 132 00:05:45,100 --> 00:05:46,692 amgueddfa o Hanes Natur a Gwyddoniaeth. 133 00:05:46,692 --> 00:05:48,400 A hyn yr wyf yn meddwl Byddwn i'n ei wneud ar y uwchben 134 00:05:48,400 --> 00:05:52,830 yn dod gyda'ch llefaru o'r sgript a'r hanes hwn 135 00:05:52,830 --> 00:05:54,700 gyda rhai delweddau gweledol, dim byd annisgwyl. 136 00:05:54,700 --> 00:05:57,512 >> A hyn yr wyf wedi ei wneud o flaen llaw ei prehighlight ar eich sgript 137 00:05:57,512 --> 00:05:59,470 beth ddylech chi ei ddarllen, a'r hyn y dylech ei ddarllen. 138 00:05:59,470 --> 00:06:00,920 Ac rydym annhymerus ei hanfod paragraffau yn unig yn ail. 139 00:06:00,920 --> 00:06:03,211 Felly, mae'n llawer fel chi efallai wedi ei wneud yn y dosbarth Saesneg. 140 00:06:03,211 --> 00:06:06,875 Dyna wir yn orfodi'r gynulleidfa i gredu yn eich stori yma. 141 00:06:06,875 --> 00:06:07,600 Byddwn? 142 00:06:07,600 --> 00:06:13,272 Felly y stori yma yw, mae gennym BASIC, ac mae'n dechrau yng Nghaergrawnt. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Yr oedd yn y gaeaf, 1974, yng Nghaergrawnt, Massachusetts 144 00:06:18,750 --> 00:06:20,240 lle gall gaeafau yn oer. 145 00:06:20,240 --> 00:06:22,800 A barfog, gwallt hir dropout coleg a enwir 146 00:06:22,800 --> 00:06:27,280 Roedd Paul Allen drudging draws Harvard Sgwâr, ymgolli yn ei feddyliau. 147 00:06:27,280 --> 00:06:31,050 Ei brif destun pryder yn y dyddiau hynny oedd sut i gael ei ffrind, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 i adael yr ysgol a mynd i mewn i fusnes gydag ef. 149 00:06:34,974 --> 00:06:37,890 Hikari: Mae'r ddau eisoes wedi mynd drwy nifer o fentrau busnes 150 00:06:37,890 --> 00:06:40,850 gyda'i gilydd, yn dechrau am Lakeside ysgol yn Seattle lle 151 00:06:40,850 --> 00:06:45,220 maent yn cael eu talu mewn pryd cyfrifiadur am ddim i profi cyfrifiadur CDP-10 ar y tro leol 152 00:06:45,220 --> 00:06:46,580 rhannu cwmni. 153 00:06:46,580 --> 00:06:50,930 Y cynllun mwyaf diweddar wedi bod yn i roi'r gorau iddi ysgol ac yn ffurfio cwmni meddalwedd. 154 00:06:50,930 --> 00:06:53,440 Roedd Allen chwith Washington State University. 155 00:06:53,440 --> 00:06:58,380 Ond ar y funud olaf, Gates Penderfynodd i daro ag Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Y diwrnod hwnnw, gan groesi Harvard Sgwâr, gweld Allen y mis Ionawr, 157 00:07:02,080 --> 00:07:07,530 1975 mater Poblogaidd Electroneg gyda'r pennawd stopio ddaear, 158 00:07:07,530 --> 00:07:11,900 Kit Cyntaf minigyfrifiadur Byd i gystadlu Modelau Masnachol. 159 00:07:11,900 --> 00:07:14,430 O dan y pennawd oedd llun o flwch bach 160 00:07:14,430 --> 00:07:16,160 haddurno gyda goleuadau a switshis. 161 00:07:16,160 --> 00:07:19,770 Fe'i galwyd y MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 Ac mae Allen yn gwybod hyn yn beth roedd wedi bod yn chwilio amdano. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Dyddiau o drafodaeth dilyn. 164 00:07:26,350 --> 00:07:30,170 Allen a Gates deall y arwyddocâd y Altair. 165 00:07:30,170 --> 00:07:32,480 Roeddent wedi siarad yn aml am microbrosesyddion 166 00:07:32,480 --> 00:07:35,250 ac yn aros i weld beth fyddai'n cael ei wneud gyda hwy. 167 00:07:35,250 --> 00:07:39,770 Nawr roedd pecyn minigyfrifiadur ar glawr y Electroneg poblogaidd. 168 00:07:39,770 --> 00:07:42,830 Mae'n debyg oedd ganddynt unrhyw feddalwedd eto. 169 00:07:42,830 --> 00:07:46,830 Maent yn dychmygu cenedl o rhaglenwyr disgyn ar MITS. 170 00:07:46,830 --> 00:07:49,590 Ac felly hwy a alwasant Ed Roberts, pennaeth y cwmni, 171 00:07:49,590 --> 00:07:53,330 honni i gael fersiwn o'r Iaith raglennu SYLFAENOL bron yn barod 172 00:07:53,330 --> 00:07:54,710 gyfer y Altair. 173 00:07:54,710 --> 00:07:55,570 Nad oeddent. 174 00:07:55,570 --> 00:07:58,910 Ac mae'n rhaid Roberts wedi gwybod nad oeddent. 175 00:07:58,910 --> 00:08:03,170 Roedd yn cael 10 o alwadau y dydd o bobl a oedd â BASIC bron yn barod. 176 00:08:03,170 --> 00:08:05,570 Ac mae ei ymateb stoc Roedd, "Y person cyntaf 177 00:08:05,570 --> 00:08:11,090 sy'n dangos i fyny gyda gwaith SYLFAENOL cael y contract. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates a Allen erioed wedi gweld Altair. 179 00:08:13,910 --> 00:08:17,600 Nad oeddent erioed wedi gweld hyd yn oed y Intel 8080 microbrosesydd 180 00:08:17,600 --> 00:08:19,060 wrth wraidd y Altair. 181 00:08:19,060 --> 00:08:21,470 Ond ychydig o flynyddoedd cynharach Roedd Allen ysgrifennu rhaglen 182 00:08:21,470 --> 00:08:25,220 ar gyfrifiadur prif ffrâm a efelychu gweithrediad Intel blaenorol 183 00:08:25,220 --> 00:08:26,217 microbrosesydd. 184 00:08:26,217 --> 00:08:28,300 Ac y tro hwn maent yn Byddai gwneud yr un peth. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Gyda Intel 8080 llaw wrth ei ochr, 187 00:08:34,380 --> 00:08:37,770 Eisteddodd Allen i lawr mewn Harvard CDP-10 cyfrifiadur 188 00:08:37,770 --> 00:08:42,010 a ysgrifennodd y efelychydd a meddalwedd offer angenrheidiol i wneud y rhaglenni. 189 00:08:42,010 --> 00:08:45,820 Yn y cyfamser Gates stopio mynd i ddosbarthiadau a neilltuo ei hun 190 00:08:45,820 --> 00:08:48,120 i gynllunio'r SYLFAENOL, gan ddefnyddio pob tric 191 00:08:48,120 --> 00:08:53,130 oedd yn gwybod i gael y maint i lawr yn is na 4 cilobeit. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Allan yn Albuquerque, Got Ed Roberts galwad oddi wrth Gates 193 00:08:55,870 --> 00:08:59,754 gofyn am fanylion am sut mae'r Altair trin arferion penodol. 194 00:08:59,754 --> 00:09:01,170 Nid oes unrhyw un wedi gofyn erioed o'r blaen. 195 00:09:01,170 --> 00:09:02,670 A dechreuodd Roberts i gael diddordeb. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: Gyda datblygiad offer a'r dyluniad yn barod, 198 00:09:07,970 --> 00:09:10,780 Gates a Allen ysgrifennodd y cod ar y CDP-10, 199 00:09:10,780 --> 00:09:16,060 ymrestru myfyriwr arall Harvard, Monte Davidoff, i ysgrifennu rheolweithiau mathemateg. 200 00:09:16,060 --> 00:09:19,450 Ar ôl noson olaf o rhaglennu, Allen got ar awyren 201 00:09:19,450 --> 00:09:22,970 i gyflawni eu SYLFAENOL i MITS. 202 00:09:22,970 --> 00:09:25,800 Treuliodd yr awyren ddod drwy'r poeni. 203 00:09:25,800 --> 00:09:28,490 Ac yn ôl yng Nghaergrawnt Roedd Gates boeni. 204 00:09:28,490 --> 00:09:32,100 Roedden nhw wedi profi eu SYLFAENOL a ei fod wedi gweithio ar y efelychydd. 205 00:09:32,100 --> 00:09:35,444 Ond beth os bydd y efelychydd yn anghywir? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Gan fod yr awyren cysylltu Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen sylweddoli bod eu BASIC, erbyn hyn a gynhwysir yn daclus 208 00:09:40,070 --> 00:09:42,460 ar gofrestr bach o punched tâp papur, byddai 209 00:09:42,460 --> 00:09:44,970 yn ddiwerth heb wahân rhaglen, a elwir yn llwythwr, bod 210 00:09:44,970 --> 00:09:47,550 Byddai dweud wrth y Altair sut i ddarllen y tâp papur lles 211 00:09:47,550 --> 00:09:49,620 bwydo i mewn i'r peiriant teletype. 212 00:09:49,620 --> 00:09:52,970 Cymerodd allan ei lyfr nodiadau ac yn gyflym sgriblo lawr rhaglen loader 213 00:09:52,970 --> 00:09:56,819 mewn iaith y Cynulliad, ac yna â llaw cyfieithu hynny i mewn i'r 1s a 0s 214 00:09:56,819 --> 00:09:57,985 byddai'r Altair deall. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Roedd Allen disgwyl lân bach, cwmni, uwch-dechnoleg 217 00:10:03,830 --> 00:10:05,470 rhedeg gan ddynion mewn siwtiau busnes. 218 00:10:05,470 --> 00:10:09,210 Felly, yr oedd yn synnu pan gyfarfu Roberts ef yn y maes awyr yn edrych fel ranch 219 00:10:09,210 --> 00:10:10,270 llaw. 220 00:10:10,270 --> 00:10:12,070 Roedd Roberts hefyd yn synnu. 221 00:10:12,070 --> 00:10:16,340 Pan fydd yn gollwng y Harvard rhaglennydd mewn gwesty drud, 222 00:10:16,340 --> 00:10:20,790 Roedd Allen i gyfaddef na allai fforddio yr ystafell. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, ei hun, roedd lleoli mewn canolfan stribed llychlyd. 224 00:10:24,510 --> 00:10:27,040 Y tu mewn yn anniben fainc yn Altair 225 00:10:27,040 --> 00:10:30,390 llwytho i fyny gyda 5 kilobytes o cof ac yn cysylltu gan cebl 226 00:10:30,390 --> 00:10:32,030 i beiriant teletype. 227 00:10:32,030 --> 00:10:37,200 Roberts a Prif Beiriannydd, Bill Yates, aros yn ddisgwylgar 228 00:10:37,200 --> 00:10:40,660 fel Allen doglo ei loader rhaglen i mewn i'r Altair. 229 00:10:40,660 --> 00:10:44,980 Dechreuodd y teletype chugging gan ei fod yn tynnu y tâp papur drwy'r tâp darllenydd. 230 00:10:44,980 --> 00:10:47,215 Cymerodd efallai 15 munud i lwytho'r rhaglen. 231 00:10:47,215 --> 00:10:52,110 Yna y teletype printiedig yn sydyn yn brydlon cof, yna yn brydlon parod, 232 00:10:52,110 --> 00:10:55,340 a dechreuodd Allen teipio ychydig prawf gorchmynion. 233 00:10:55,340 --> 00:10:57,400 I syndod pawb, y meddalwedd yn gweithio. 234 00:10:57,400 --> 00:10:58,525 Roedd chwilod, wrth gwrs. 235 00:10:58,525 --> 00:11:02,070 Ond y prif beth oedd ei fod yn gweithio. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Yn ddiweddarach, ar eu ffordd i $ 3.00 cinio yn Pancho yn, hedfanodd gacynen 237 00:11:06,570 --> 00:11:10,470 yn y ffenestr y pickup lori a pigo Allen ar y fraich. 238 00:11:10,470 --> 00:11:13,070 Ond ar nad oes unrhyw beth mhwynt Gallai difetha hwyliau. 239 00:11:13,070 --> 00:11:17,210 Erbyn hyn roedd gan y Altair ei SYLFAENOL, mae'r meddalwedd masnachol cyntaf am gartref 240 00:11:17,210 --> 00:11:23,260 cyfrifiadurol, a wnaed gan Paul Bill Allen a Gates, gwneud busnes fel Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Mae llawer o diolch i'n dau ddarllenydd. 242 00:11:25,336 --> 00:11:30,690 >> [Cymeradwyaeth] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Nawr ydych wedi eich dewis, 244 00:11:32,520 --> 00:11:35,880 cyn i chi adael, o disglair neu glow yn y dark-- oh, 245 00:11:35,880 --> 00:11:40,810 aros un eiliad, wait-- disglair ac yn glow yn y tywyllwch eliffant 246 00:11:40,810 --> 00:11:42,534 o Cheng Gong CS50 ei hun. 247 00:11:42,534 --> 00:11:43,450 Hikari: Aw, diolch i chi. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: All iawn, ddiolch 'ch ogystal. 249 00:11:45,324 --> 00:11:49,855 [Cymeradwyaeth] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Felly stori wir. 251 00:11:51,105 --> 00:11:54,380 Hyn yn golygu bod pob un o'r rhain peiriannau a pha mor hawdd ag yr ydym yn 252 00:11:54,380 --> 00:11:56,270 yn eu defnyddio yn awr ac yn cymryd yn ganiataol, mewn gwirionedd 253 00:11:56,270 --> 00:12:00,070 ddechrau yma, dim ond ychydig o gamau o'r theatr gwirioneddol hwn. 254 00:12:00,070 --> 00:12:03,930 Ac yn awr heddiw, os nad ydych wedi bod, mae hyn yn Maxwell Dworkin, y cyfrifiadur 255 00:12:03,930 --> 00:12:05,810 gwyddorau adeiladu, hefyd o amgylch y gornel. 256 00:12:05,810 --> 00:12:09,760 Ac ar yr ail lawr o hyn adeilad yn hongian thair tudalen 257 00:12:09,760 --> 00:12:12,740 o'r cod ffynhonnell gwreiddiol a Ysgrifennodd Bill Gates a Paul Allen. 258 00:12:12,740 --> 00:12:14,770 Yn wir, os ydych yn defnyddio chwyddo mewn gallwch weld, nid yn unig 259 00:12:14,770 --> 00:12:17,350 eu henwau yn y math gwreiddiol, ond hefyd 260 00:12:17,350 --> 00:12:22,100 eu llofnodion y maent yn haddurno â Ychydig flynyddoedd yn ôl pan fyddant yn ymweld â ddiwethaf. 261 00:12:22,100 --> 00:12:25,800 >> Ond beth oedd yn arbennig o gymhellol am hyn yn yr hyn y maent yn bwriadu ei wneud 262 00:12:25,800 --> 00:12:29,760 oedd i ysgrifennu rhaglen a fyddai galluogi pobl eraill i ysgrifennu 263 00:12:29,760 --> 00:12:30,950 eu rhaglenni eu hunain. 264 00:12:30,950 --> 00:12:34,280 Ar y pryd yr oedd i gyd gyda peiriant hwn Altair wnaed gan MITS. 265 00:12:34,280 --> 00:12:40,020 A'r holl maent yn ei angen oedd rhyw ffordd o gan ei gwneud yn hawdd i hobbyists a phobl 266 00:12:40,020 --> 00:12:45,300 dymuno i ni yn yr ystafell hon at y rhaglen mewn gwirionedd bod heb o reidrwydd ddeall 267 00:12:45,300 --> 00:12:49,060 Cod y Cynulliad, neu beiriant cod, neu Duw a'n gwaredo, 0s a 1s. 268 00:12:49,060 --> 00:12:51,190 Rydym rhaglenwyr, fel y rhai yn yr ystafell hon, rydym 269 00:12:51,190 --> 00:12:54,070 eisiau gallu mynegi ein hunain yn llawer mwy tebyg cod ffug 270 00:12:54,070 --> 00:12:57,330 hyd yn oed os mai ychydig yn fwy ned picky nag y buom yn siarad yr wythnos diwethaf. 271 00:12:57,330 --> 00:13:00,970 Nid ydym am i ysgrifennu cod fel hyn, a wnaeth Paul Allen a Bill Gates. 272 00:13:00,970 --> 00:13:04,850 Yr ydym, yn lle hynny, yn awyddus i ysgrifennu cod sy'n yn edrych ychydig yn haws ei defnyddio. 273 00:13:04,850 --> 00:13:07,150 >> Yn awr mae hyn yn iaith o'r enw SYLFAENOL. 274 00:13:07,150 --> 00:13:11,497 Ac mae'r rhifau llinell ceir yr hyn yr ydych defnyddio i wneud dim ond rhifo'r llinellau o god 275 00:13:11,497 --> 00:13:12,330 eich bod yn ysgrifennu. 276 00:13:12,330 --> 00:13:14,038 Nid oes hyd yn oed yn rhaid i Rydym gwneud hynny y dyddiau hyn. 277 00:13:14,038 --> 00:13:16,060 Ond gallwch weld yma sut PRINT "helo, byd" 278 00:13:16,060 --> 00:13:18,660 Byddai yn wir mae'n debyg argraffu yn union hynny. 279 00:13:18,660 --> 00:13:22,710 Ac felly yr hyn y Bill a Paul wnaeth oedd grymuso pobl i ysgrifennu cod fel hyn 280 00:13:22,710 --> 00:13:27,240 hytrach o- os ydych yn edrych ar y gwyddoniaeth gyfrifiadurol wall-- cod fel hyn. 281 00:13:27,240 --> 00:13:29,290 >> Yn wir, yn ddiweddar CS50 wedi cael cyfle 282 00:13:29,290 --> 00:13:32,540 i eistedd i lawr gyda Athro Harry Lewis yn yr Adran Gyfrifiadureg, a oedd 283 00:13:32,540 --> 00:13:34,640 Bill mewn gwirionedd a addysgir Gates rai blynyddoedd yn ôl, 284 00:13:34,640 --> 00:13:38,460 ac yn sefyll yma cyn y rhai tair tudalen o dyfyniadau. 285 00:13:38,460 --> 00:13:39,560 Gadewch i ni edrych. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Mae'r hyn yr ydych wedi yma yw rhestru o ddarn cynnar o feddalwedd 287 00:13:45,520 --> 00:13:50,240 ysgrifennwyd gan Bill Gates a Paul Allen, sylfaenwyr Microsoft. 288 00:13:50,240 --> 00:13:52,570 Felly, mae'r cod yn ddiddorol am ddau reswm. 289 00:13:52,570 --> 00:13:55,480 Yn gyntaf oll, daeth yn Cynnyrch cyntaf Microsoft, 290 00:13:55,480 --> 00:14:01,810 a oedd cyfieithydd ar gyfer yr iaith raglennu SYLFAENOL. 291 00:14:01,810 --> 00:14:04,940 Ac yn ail, roedd hyn yn un o'r ymdrechion cyntaf 292 00:14:04,940 --> 00:14:10,580 i greu cyfieithydd mor gyffredin gallai pobl ddefnyddio cyfrifiaduron personol. 293 00:14:10,580 --> 00:14:12,670 >> Felly Bill Gates yn israddedig yn Harvard. 294 00:14:12,670 --> 00:14:14,820 Dechreuais ddysgu yn Harvard yn 1974. 295 00:14:14,820 --> 00:14:16,560 Gwnaed hyn yn 1975. 296 00:14:16,560 --> 00:14:20,180 Felly yr oedd yn gynnar yn ei yrfa ac yn gynnar yn fy ngyrfa. 297 00:14:20,180 --> 00:14:23,790 Fi 'n weithredol addysgir Bill yn cwrs tua'r adeg hon. 298 00:14:23,790 --> 00:14:27,130 Nid oedd Paul Allen yn Harvard myfyriwr, ond mae'n 299 00:14:27,130 --> 00:14:31,020 wedi bod yn yr ysgol yn uchel classmate o Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Os ydych yn dod ac yn edrych yn y rhestr, wnewch chi helpu 301 00:14:33,740 --> 00:14:36,230 mewn gwirionedd yn dod o hyd i un rhan o dair enw, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 a oedd yn cyd-ddisgybl Gates yn yma yn Harvard. 303 00:14:39,260 --> 00:14:41,340 >> Iawn, felly dyma 'an sylw diddorol i fyny yma. 304 00:14:41,340 --> 00:14:47,150 Mae'n dweud "Yn 4K Gall dileu ail isradd ond ar gyfer Dylai dolenni yn dal i weithio. " 305 00:14:47,150 --> 00:14:53,080 Iawn, felly beth mae hynny'n ei olygu yw bod Roedd dwy ffordd i lunio'r rhaglen hon. 306 00:14:53,080 --> 00:14:57,860 Un oedd i redeg ar fersiwn o'r cyfrifiadur hwn Altair 307 00:14:57,860 --> 00:15:04,310 mai dim ond 4K eiriau cof, 4096 o eiriau o gof. 308 00:15:04,310 --> 00:15:07,050 Ond roedd gan y fersiwn mawr 8K. 309 00:15:07,050 --> 00:15:09,770 Ac felly beth mae hyn yn ei ddweud yn fod yn y fersiwn 4K 310 00:15:09,770 --> 00:15:12,770 bu'n rhaid i chi ddileu rhai cod i'w wneud yn ffit. 311 00:15:12,770 --> 00:15:14,790 Ac un o'r pethau a fyddai'n cael ei dileu 312 00:15:14,790 --> 00:15:16,290 fyddai'r drefn ail isradd. 313 00:15:16,290 --> 00:15:20,360 Ond mae'n debyg y gyfer dylai dolenni o hyd 314 00:15:20,360 --> 00:15:26,392 weithio hyd yn oed pan fyddwch yn casglu i lawr am ddim ond y fersiwn 4K y cyfrifiadur. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Felly, un o'r themâu, fel y byddwn yn gweld mewn gwyddoniaeth gyfrifiadurol, 316 00:15:29,350 --> 00:15:31,430 yw syniad hwn o haenu a thynnu dŵr, 317 00:15:31,430 --> 00:15:34,670 ac yn wir yn sefyll ar ysgwyddau o Folks sydd wedi dod ger ein bron, nid 318 00:15:34,670 --> 00:15:37,890 yn wahanol i rai o'r Bill Gates a Paul Allen naratif yma. 319 00:15:37,890 --> 00:15:40,080 A beth mae hyn yn ei olygu yw heddiw y gallwn eu cymryd i 320 00:15:40,080 --> 00:15:43,490 ganiataol fod pethau mewn gwirionedd haws i ni ysgrifennu cod. 321 00:15:43,490 --> 00:15:47,170 Yn wir cod, fel y dywedasom ar ddydd Gwener, yn a adwaenir yn fwy yn dechnegol yn cod ffynhonnell. 322 00:15:47,170 --> 00:15:52,210 Ac mae'n Saesneg hwn fel cystrawen hynny'n fwy priodol ac yn fwy diffinio'n dda 323 00:15:52,210 --> 00:15:55,480 na rhywbeth fel cod ffug, ar gyfer lle nad oes diffiniad ffurfiol. 324 00:15:55,480 --> 00:15:58,320 >> A heddiw yr hyn rydym yn mynd i ganolbwyntio ar ei cod ffynhonnell 325 00:15:58,320 --> 00:16:01,010 sy'n edrych fel hyn, a oedd yn cyfaddef ar yr olwg gyntaf 326 00:16:01,010 --> 00:16:02,690 yn edrych yn hollol cryptig. 327 00:16:02,690 --> 00:16:08,540 Ac yn dweud y gwir, mae'n ffordd fwy esthetig cymhleth na'r rhaglen sylfaenol yw. 328 00:16:08,540 --> 00:16:13,300 Mae pob rhaglen hon yn ei wneud, dwyn i gof, yn yr hyn a wnaeth a ddywedwn? 329 00:16:13,300 --> 00:16:14,990 'I jyst yn argraffu "helo byd." 330 00:16:14,990 --> 00:16:19,600 Ac eto, yn edrych ar yr holl bethau y mae angen i lapio o gwmpas yr ymadrodd syml iawn. 331 00:16:19,600 --> 00:16:21,750 Ond cyn hir i gyd o llinellau hyn a mwy 332 00:16:21,750 --> 00:16:24,800 Bydd yn gwneud llawer gwell synnwyr i chi. 333 00:16:24,800 --> 00:16:26,940 >> Ac mae'r llif fel a ganlyn. 334 00:16:26,940 --> 00:16:31,220 Yr hyn yr ydym ei angen ar gael i ni yw cymryd cod, fel ffynhonnell 335 00:16:31,220 --> 00:16:32,340 cod yr ydym newydd ei gweld. 336 00:16:32,340 --> 00:16:35,060 Ac mae angen rhaglen newydd ei redeg trwy. 337 00:16:35,060 --> 00:16:39,130 Mae arnom angen algorithmau y gall trosi cod ffynhonnell, fel hyn, 338 00:16:39,130 --> 00:16:41,932 i mewn cod gwrthrych, 0s a 1s. 339 00:16:41,932 --> 00:16:43,890 Mewn geiriau eraill, yr hyn rydyn ni'n mynd i ddysgu heddiw 340 00:16:43,890 --> 00:16:46,620 yw sut i wneud hyn, ysgrifennwch cod ffynhonnell i fyny top, 341 00:16:46,620 --> 00:16:49,930 ei throsglwyddo fel mewnbwn i arbennig rhaglen a elwir yn compiler, 342 00:16:49,930 --> 00:16:52,140 ac rydym yn mynd i gynhyrchu cod gwrthrych. 343 00:16:52,140 --> 00:16:54,600 Sydd ychydig yn ffordd ffansi o gan ddweud y bydd yn cymryd rhywbeth 344 00:16:54,600 --> 00:16:58,350 sy'n edrych fel hyn, yn ei throsglwyddo i mewn i raglen o'r enw casglwr, 345 00:16:58,350 --> 00:17:01,210 cynhyrchu cod gwrthrych sy'n edrych fel hyn. 346 00:17:01,210 --> 00:17:04,720 >> Felly, mae'r rhain yn llythrennol y patrymau 0s a 1s 347 00:17:04,720 --> 00:17:08,550 sy'n cael eu deall gan Intel cyfrifiadur y dyddiau hyn, 348 00:17:08,550 --> 00:17:12,480 os dehongli gan y CPU, yr ymennydd tu mewn cyfrifiadur, 349 00:17:12,480 --> 00:17:16,130 Bydd llythrennol argraffu allan, yn syml, "helo byd." 350 00:17:16,130 --> 00:17:19,670 Nawr mae ffordd fwy 0s a 1s na chi Byddai yn gobeithio allai fod yn angenrheidiol ar gyfer hynny. 351 00:17:19,670 --> 00:17:22,520 Ond mae hynny oherwydd ein bod yn adeiladu ar lawer o gymhlethdod 352 00:17:22,520 --> 00:17:24,270 y gallwn eu cymryd o hyn ymlaen yn ganiataol. 353 00:17:24,270 --> 00:17:27,869 Mewn geiriau eraill, mae llawer o bobl yn smart wedi rhoi llawer o offer oer ni 354 00:17:27,869 --> 00:17:32,480 a meddalwedd pwerus ag yr ydym yn Gall yn awr yn gwneud prosiectau ar ein pennau ein hunain. 355 00:17:32,480 --> 00:17:33,400 >> Felly gadewch i ni ddechrau arni. 356 00:17:33,400 --> 00:17:36,640 Tra ddydd Gwener diwethaf, ac gyfer Problem Set 0 yr wythnos hon, 357 00:17:36,640 --> 00:17:39,000 byddwch yn chwarae mewn byd sy'n edrych fel hyn. 358 00:17:39,000 --> 00:17:42,180 Gan ddechrau heddiw ac am Broblem Set 1 yr wythnos nesaf, mae'r cod 359 00:17:42,180 --> 00:17:45,410 yn mynd i edrych ychydig yn fwy cryptig, ond swyddogaethol yn 360 00:17:45,410 --> 00:17:46,940 mynd i fod yr un fath. 361 00:17:46,940 --> 00:17:50,770 Felly rhybudd, top yn Scratch, gwaelod yw C. Dweud y gwir Scratch 362 00:17:50,770 --> 00:17:52,780 yn llawer haws ei ddefnyddio gyfeillgar a hygyrch. 363 00:17:52,780 --> 00:17:56,890 Ond os ydych yn awr yn cymharu weledol top i gwaelod, mae yna fath o un i un 364 00:17:56,890 --> 00:17:59,690 gohebiaeth rhwng y darnau pos a'r iaith 365 00:17:59,690 --> 00:18:00,870 rydym chi ar fin i chwarae gyda nhw. 366 00:18:00,870 --> 00:18:04,420 Yn benodol, yn dweud, mae'r pos glas darn i fyny top, 367 00:18:04,420 --> 00:18:08,370 yn ôl pob golwg yn cyfateb i pa allweddair neu gymal arbennig yn yr iaith hon 368 00:18:08,370 --> 00:18:09,062 o'r enw C? 369 00:18:09,062 --> 00:18:09,770 CYNULLEIDFA: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 Mae hynny'n golygu argraffu fformatio. 372 00:18:12,140 --> 00:18:15,240 A dim ond yn ffansi ffordd o ddweud printf yn C 373 00:18:15,240 --> 00:18:18,615 yn mynd i fod yn ddatganiad neu swyddogaeth hynny printiau rhywbeth i'r sgrin. 374 00:18:18,615 --> 00:18:19,990 Beth mae'n ei argraffu ar y sgrin? 375 00:18:19,990 --> 00:18:23,627 Beth bynnag y byddwch yn dweud ei fod i y tu mewn o ddyfyniadau, tu mewn cromfachau. 376 00:18:23,627 --> 00:18:25,460 Felly eto, rhaid cyfaddef, mae llawer o bethau 377 00:18:25,460 --> 00:18:27,990 bod rhaid i chi gadw mewn cof, cromfachau, dyfyniadau, hanner colon, 378 00:18:27,990 --> 00:18:28,656 a hyn oll. 379 00:18:28,656 --> 00:18:30,600 Ond mae hynny i gyd yn fath o ymyl y pwynt. 380 00:18:30,600 --> 00:18:33,660 Mae'r tecawê diddorol am y tro yw bod y bloc lais yn Scratch 381 00:18:33,660 --> 00:18:37,520 'n bert lawer yn cyfateb i y datganiad printf yn C. 382 00:18:37,520 --> 00:18:41,390 >> Yn y cyfamser, mae'r darn pos melyn hyd top, pan glicio baner werdd, 383 00:18:41,390 --> 00:18:44,736 mae'n debyg cyfateb i'r hyn Keyword yma? 384 00:18:44,736 --> 00:18:45,360 CYNULLEIDFA: Prif. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Felly prif. 386 00:18:46,359 --> 00:18:47,410 Efallai int, efallai ddi-rym. 387 00:18:47,410 --> 00:18:51,280 Ond phrif fath o synau tebyg mae'n bwysig, ac yn wir y mae. 388 00:18:51,280 --> 00:18:54,080 Felly pan glicio baner werdd yw, unwaith eto, mae'r darn pos 389 00:18:54,080 --> 00:18:56,390 sy'n cychwyn yn rhaglen Scratch gyfan. 390 00:18:56,390 --> 00:19:02,140 Ond rydym yn mynd i ddechrau nawr yn galw mai prif, swyddogaeth hon a elwir yn brif. 391 00:19:02,140 --> 00:19:06,410 >> Nawr yn y cyfamser rydym annhymerus cyffredinoli hyn fel a ganlyn. 392 00:19:06,410 --> 00:19:08,780 Efallai y byddwn yn galw yn dweud swyddogaeth. 393 00:19:08,780 --> 00:19:10,580 A gallai edrych yn benodol fel hyn. 394 00:19:10,580 --> 00:19:11,770 Wel, beth am dolenni? 395 00:19:11,770 --> 00:19:16,540 Os ydym am ddechrau trosi neu cyfieithu mwy mewn Scratch i C, 396 00:19:16,540 --> 00:19:19,400 y peth hyn yma yn ôl pob golwg yn unig yn dweud "helo byd" am byth. 397 00:19:19,400 --> 00:19:23,060 Felly, os ydych yn cysylltu y rhain sgriptiau gyda chath mewn Scratch, 398 00:19:23,060 --> 00:19:26,560 dim ond mae'n mynd i gadw yn dweud mewn rhyw fath o swigen cartŵn, 399 00:19:26,560 --> 00:19:29,922 "Helo byd, byd helo, helo byd, "ad nauseum, am byth. 400 00:19:29,922 --> 00:19:33,130 Os ydym am wneud rhywbeth tebyg yn C, mae'n mynd i edrych ychydig yn cryptig. 401 00:19:33,130 --> 00:19:35,463 Ond gallwn gyflawni'r un canlyniadau, gan ein bod yn y pen draw annhymerus 402 00:19:35,463 --> 00:19:36,861 cael gwybod, gyda cystrawen fel hyn. 403 00:19:36,861 --> 00:19:39,360 Rydw i'n mynd i ddefnyddio printf eto, oherwydd ar ddiwedd y dydd 404 00:19:39,360 --> 00:19:42,040 Rwyf eisiau argraffu "helo byd." 405 00:19:42,040 --> 00:19:45,610 A dwi'n ôl pob golwg gan ddefnyddio keyword nad yw am byth. 406 00:19:45,610 --> 00:19:47,320 Mae'n lle hynny y gair tra. 407 00:19:47,320 --> 00:19:49,650 Ond dim ond semantig yn Saesneg, er bod math o 408 00:19:49,650 --> 00:19:52,120 yn awgrymu rhyw fath o ddolen neu feicio. 409 00:19:52,120 --> 00:19:55,070 >> Felly mae hynny'n digwydd bod yn yr allweddair sy'n defnyddio C. 410 00:19:55,070 --> 00:20:00,700 Ac er bod yn wir, pam nad yw tra wir yn ei olygu yn effeithiol am byth? 411 00:20:00,700 --> 00:20:04,240 Wel, er, wrth i ni annhymerus fuan gwerthfawrogi yn oed yn fwy, 412 00:20:04,240 --> 00:20:08,140 Mae rhwng cromfachau hwn ei ymyl lle gallwch roi mynegiad Boole. 413 00:20:08,140 --> 00:20:11,360 Ac ar yr amod bod mynegiant yn wir, y cod hwn, 414 00:20:11,360 --> 00:20:14,750 fel y dynodir rhwng dau rhain braces cyrliog gan y byddwn yn eu galw, 415 00:20:14,750 --> 00:20:16,880 Bydd jyst cadw rhedeg dro ar ôl tro. 416 00:20:16,880 --> 00:20:18,410 >> Felly, yn wir yn wir. 417 00:20:18,410 --> 00:20:20,900 Felly, er bod dulliau cywir dim ond gwneud hyn am byth. 418 00:20:20,900 --> 00:20:23,480 Mae bron yn dwp adeiladu i fynegi eich hun. 419 00:20:23,480 --> 00:20:26,590 Ond nid oedd unrhyw byth allweddair yn C. Roedd tra. 420 00:20:26,590 --> 00:20:29,390 Ac yr oedd yn syml iawn Mynegiant Boole fel yn wir. 421 00:20:29,390 --> 00:20:32,210 Ac felly mae hyn, byddwn yn gweld, cyflawni'r un canlyniad. 422 00:20:32,210 --> 00:20:33,890 >> Sut arall y gallech weithredu dolen? 423 00:20:33,890 --> 00:20:36,980 Wel, yn Scratch gallech chi cod caled nifer penodol 424 00:20:36,980 --> 00:20:39,430 o fersiynau yn y ddolen yma. 425 00:20:39,430 --> 00:20:43,210 Ac felly dyna yn union yr hyn yr ydym Gallai wneud yn y fersiwn yma o C, 426 00:20:43,210 --> 00:20:46,140 lle mae gennym hyn a elwir ar gyfer dolen. 427 00:20:46,140 --> 00:20:49,850 Ac mae'r gyfer ddolen yma yn mynd i ailadrodd, braidd yn gryptig, 428 00:20:49,850 --> 00:20:54,100 o werth 0 ar i fyny i ond yn llai na 10. 429 00:20:54,100 --> 00:20:55,955 >> Nawr newidynnau mewn Scratch. 430 00:20:55,955 --> 00:20:57,830 Efallai nad ydych wedi cael achlysur i ddefnyddio'r rhain. 431 00:20:57,830 --> 00:21:02,516 Ond beth yw'r pwynt, yn gyffredinol, o newidyn wnaethom ni ddweud yr wythnos diwethaf? 432 00:21:02,516 --> 00:21:03,015 Beth sy'n bod? 433 00:21:03,015 --> 00:21:03,780 >> CYNULLEIDFA: Pwyntiau. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: I bwyntio? 435 00:21:05,200 --> 00:21:05,700 O, pwyntiau. 436 00:21:05,700 --> 00:21:07,620 OK, cadw golwg ar bwyntiau, er enghraifft, mewn gêm. 437 00:21:07,620 --> 00:21:09,510 Neu fwy yn ei wneud yn gyffredinol beth gyda'r newidyn? 438 00:21:09,510 --> 00:21:10,450 Beth yw ddefnyddioldeb ohonynt? 439 00:21:10,450 --> 00:21:10,825 >> CYNULLEIDFA: Cof. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Yeah, felly cof. 441 00:21:11,750 --> 00:21:13,000 Mae'n ar gyfer storio rhywbeth. 442 00:21:13,000 --> 00:21:17,336 A'r math o i mi gweledol gwirion a ddefnyddir tro diwethaf oedd fel hyn powlen wydr. 443 00:21:17,336 --> 00:21:19,710 Ac os oeddem am storio rhywbeth tu mewn newidyn, 444 00:21:19,710 --> 00:21:21,918 er enghraifft ar hyn o bryd y gwerth yw chwech oherwydd bod 445 00:21:21,918 --> 00:21:23,450 chwe peli ping pong yn fan hyn. 446 00:21:23,450 --> 00:21:26,158 Dim ond rhyw fath o storio cynhwysydd sydd o dan y cwfl 447 00:21:26,158 --> 00:21:30,030 cael ei weithredu gyda darnau, 0s a 1s, fodd bynnag, cyfrifiadur yn digwydd i wneud hynny. 448 00:21:30,030 --> 00:21:32,900 >> Felly, yn Scratch, os ydym am gael newidyn, 449 00:21:32,900 --> 00:21:34,840 gallwn ddefnyddio bloc oren fel hyn. 450 00:21:34,840 --> 00:21:37,050 Byddwn yn galw y cownter yn yr achos penodol hwn. 451 00:21:37,050 --> 00:21:38,890 Yr wyf yn ymgychwyn i 0. 452 00:21:38,890 --> 00:21:41,080 A'r hyn y mae'n ei wneud i mi wedyn? 453 00:21:41,080 --> 00:21:44,780 Forever, dywedwch cownter, ac os byddwch yn chwarae gyda hynny mewn Scratch, 454 00:21:44,780 --> 00:21:45,780 byddwch ond yn gweld Scratch. 455 00:21:45,780 --> 00:21:49,920 Mae'r gath neu beth bynnag wisg yn eich rhoi ar Bydd ef yn siarad y nifer dan sylw. 456 00:21:49,920 --> 00:21:52,840 >> Newid cownter erbyn 1 yn fel cynyddu o 1 ar. 457 00:21:52,840 --> 00:21:56,580 Ac felly mae hyn yn mynd i cyfrif o beth felly beth? 458 00:21:56,580 --> 00:21:59,114 O 0 tan anfeidredd, neu hyd nes y gwyliau Scratch, 459 00:21:59,114 --> 00:22:01,030 neu hyd nes y byddwch fath o colli diddordeb yn gwylio 460 00:22:01,030 --> 00:22:02,650 pa mor uchel y gall ef gyfrif mewn gwirionedd. 461 00:22:02,650 --> 00:22:04,800 >> Felly, sut y gallem drosi hyn i C? 462 00:22:04,800 --> 00:22:06,480 Mae'n mynd i edrych ychydig yn cryptig. 463 00:22:06,480 --> 00:22:08,896 Ond unwaith eto, os ydych yn edrych ar bob o'r llinellau hyn yn unigol 464 00:22:08,896 --> 00:22:10,410 maent yn fath o lineup yn gyffredinol. 465 00:22:10,410 --> 00:22:13,526 Felly, mae'n debyg Int yn mynd i cael rhywfaint o ystyr arbennig yn C. 466 00:22:13,526 --> 00:22:14,400 Byddwn yn gweld hynny eto. 467 00:22:14,400 --> 00:22:15,810 Fel o'r neilltu mae'n golygu cyfanrif. 468 00:22:15,810 --> 00:22:16,990 Felly, 'i jyst yn golygu rhif. 469 00:22:16,990 --> 00:22:18,920 Felly dyna y math o powlen wydr Rwyf am, un 470 00:22:18,920 --> 00:22:21,120 sy'n gallu storio rhifau, Nid yw ping pong peli. 471 00:22:21,120 --> 00:22:25,520 Ac yr wyf i'n mynd i ddefnyddio'r arwydd cyfartal yno i aseinio ei fod yn werth o 0. 472 00:22:25,520 --> 00:22:29,440 Felly dyna eithaf tebyg i set cownter i 0, ond yn C. 473 00:22:29,440 --> 00:22:32,840 >> Yn y cyfamser, tra bod yn wir, a oedd yn cyfatebol, wrth gwrs, i am byth, 474 00:22:32,840 --> 00:22:35,980 hyd yn oed er 'i' ychydig yn cryptic, ac yna tu mewn i'r braces cyrliog. 475 00:22:35,980 --> 00:22:39,188 A allwch chi feddwl am braces cyrliog hyn, y gallwch deipio ar eich bysellfwrdd, 476 00:22:39,188 --> 00:22:43,110 fel 'n sylweddol yn hoffi y crymedd yn y blociau dolen melyn yn Scratch. 477 00:22:43,110 --> 00:22:45,700 Mae'n cwmpasu lluosog linellau o god. 478 00:22:45,700 --> 00:22:48,120 >> Printf yn cael ychydig brawychus nawr oherwydd fy mod 479 00:22:48,120 --> 00:22:51,120 gweld nid yn unig dyfyniadau mewn cromfachau. 480 00:22:51,120 --> 00:22:55,160 Ond beth arall sydd newydd syntactically yn yr enghraifft hon? 481 00:22:55,160 --> 00:22:57,300 Mae 'na cant d. 482 00:22:57,300 --> 00:22:58,551 Ac yna slaes n yno. 483 00:22:58,551 --> 00:23:00,883 Yr ydym yn gweld hynny o'r blaen, hyd yn oed er nad oeddwn yn sôn amdano. 484 00:23:00,883 --> 00:23:01,886 Yna mae 'na coma. 485 00:23:01,886 --> 00:23:03,010 Ac yna mae cownter. 486 00:23:03,010 --> 00:23:05,010 >> Ond byddwn yn gweld mewn dim ond hyn o bryd bod hyn yn unig 487 00:23:05,010 --> 00:23:09,080 ffordd safonol o ddweud print a "Rhif degol," dyfyniad, unquote, 488 00:23:09,080 --> 00:23:10,500 rhywfaint rhif degol. 489 00:23:10,500 --> 00:23:13,370 Ond dw i'n mynd i ddweud wrthych yn nes ymlaen beth y rhif degol yn. 490 00:23:13,370 --> 00:23:16,835 Felly mae'r ffaith fod yna coma yn y llinell hon printf dweud, 491 00:23:16,835 --> 00:23:18,710 yn golygu mynd yn ei flaen ac argraffu rhywfaint rhif degol. 492 00:23:18,710 --> 00:23:23,110 O, a gyda llaw, y rhif yw beth bynnag yw gwerth y newidyn hwn yw. 493 00:23:23,110 --> 00:23:25,880 Ac felly i wneud hyn yn fwy glir, byddwn yn gweld enghraifft 494 00:23:25,880 --> 00:23:30,930 cyn bo hir sy'n cynnwys union printf yng nghyd-destun rhaglenni C go iawn. 495 00:23:30,930 --> 00:23:33,472 >> Nawr dim ond i lapio fyny rhai o'r cysyniadau hyn. 496 00:23:33,472 --> 00:23:36,680 Mynegiadau Boole, efallai na fydd gennych achlysur i ddefnyddio'r rhain yn eich rhaglen 497 00:23:36,680 --> 00:23:39,450 ond byddwch efallai yn dda iawn, yn enwedig os ydych yn defnyddio amodau. 498 00:23:39,450 --> 00:23:43,460 Ac felly mae'r rhain ddwy enghraifft o Scratch yn golygu os yw x yn llai na y, 499 00:23:43,460 --> 00:23:48,770 neu os yw x yn llai na y ac y yn llai na z, sut y gallem cyfieithu hynny? 500 00:23:48,770 --> 00:23:50,810 >> Wel, yn C 'i' jyst mynd i edrych fel hyn. 501 00:23:50,810 --> 00:23:55,300 Ychydig cryptig, yn fwy cromfachau, rhai ampersands rhyfedd, ond yn y bôn 502 00:23:55,300 --> 00:23:59,160 syniadau mor syml ag y maent yn y byd darn pos. 503 00:23:59,160 --> 00:24:02,690 Rydym yn syml, gwirio os bydd rhywbeth yn llai na rhywbeth arall. 504 00:24:02,690 --> 00:24:03,910 >> Beth am amodau? 505 00:24:03,910 --> 00:24:09,710 Yn gryno yn Saesneg, beth mae hyn yn darn o cod Scratch ydych fyddech chi'n ei ddweud? 506 00:24:09,710 --> 00:24:11,050 >> CYNULLEIDFA: Cymharu dau rif. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: Cymharu dau rhifau, ac os yw x yn llai na y 508 00:24:13,760 --> 00:24:14,860 mae'n ei ddweud gymaint. 509 00:24:14,860 --> 00:24:18,080 Os yw x yn fwy na y mae'n ei ddweud gymaint, arall 510 00:24:18,080 --> 00:24:20,740 os yw x yn hafal i y mae'n dweud cymaint. 511 00:24:20,740 --> 00:24:22,180 Nawr ble wnaeth x ac y yn dod? 512 00:24:22,180 --> 00:24:22,680 Pwy a ŵyr. 513 00:24:22,680 --> 00:24:25,380 Mae'r darn o Scratch cod yn allan o gyd-destun. 514 00:24:25,380 --> 00:24:29,050 Ond yr hyn yr ydym am ei wneud yn awr yw cyfieithu hwn am ychydig funudau'n i weld. 515 00:24:29,050 --> 00:24:31,660 >> Felly, wrth i chi fynd yn gyfforddus yr wythnos hon yn Problem Set 516 00:24:31,660 --> 00:24:34,190 0 chwarae yn y byd hwn ar y chwith, yn sylweddoli 517 00:24:34,190 --> 00:24:36,940 nad yw'r syniadau yn newid yr wythnos hon neu nesaf neu du hwnt. 518 00:24:36,940 --> 00:24:38,690 Rydym yn syml, yn mynd i dechrau ysgrifennu pethau 519 00:24:38,690 --> 00:24:41,240 mewn ffordd wahanol gyda'n bysellfwrdd yn lle ein llygoden. 520 00:24:41,240 --> 00:24:44,577 >> Felly, os yw x yn llai na y, a mae rhywfaint cromfachau yno, 521 00:24:44,577 --> 00:24:47,160 yna mae rhai braces cyrliog eto i fath o grynhoi ei 522 00:24:47,160 --> 00:24:48,970 yn union fel y darnau pos melyn yn ei wneud. 523 00:24:48,970 --> 00:24:53,000 Ac yr wyf i'n mynd i printf x yn llai nag y ac yn y blaen. 524 00:24:53,000 --> 00:24:56,540 >> Yr hyn sy'n braf am C, fel y gwelwch yma, 525 00:24:56,540 --> 00:25:00,480 yw nad ydych yn cael nythu yma, nythu, nythu dyna o reidrwydd 526 00:25:00,480 --> 00:25:02,220 mynd i wthio eich cod i'r dde. 527 00:25:02,220 --> 00:25:04,990 Gall lle hynny mae gennych bopeth lineup daclus yn hoffi hyn. 528 00:25:04,990 --> 00:25:08,960 Ond dim ond yn esthetig manylion byddwn yn gweld eto cyn hir. 529 00:25:08,960 --> 00:25:09,660 >> Mae pob hawl. 530 00:25:09,660 --> 00:25:13,290 Felly mae hynny'n dod â ni yn ôl at rhaglen hon yn edrych cryptig. 531 00:25:13,290 --> 00:25:15,180 Gadewch i ni mewn gwirionedd yn ysgrifennu rhai cod. 532 00:25:15,180 --> 00:25:16,830 Nawr sut ydych chi'n mynd ati i ysgrifennu cod? 533 00:25:16,830 --> 00:25:21,310 Holl flynyddoedd eich bod wedi eiddo i Mac neu PC, n ben-desg neu liniadur, 534 00:25:21,310 --> 00:25:24,520 mewn gwirionedd ydych wedi cael y gallu i ddechrau ysgrifennu cod rhaglennu. 535 00:25:24,520 --> 00:25:27,050 Ond mae'n debyg eich bod ar goll math arbennig o raglen. 536 00:25:27,050 --> 00:25:28,470 Gallwch sicr yn ysgrifennu cod. 537 00:25:28,470 --> 00:25:30,740 Ond ni allwch o reidrwydd, allan o'r bocs, 538 00:25:30,740 --> 00:25:34,210 trosi y cod ffynhonnell i mewn cod gwrthrych, 0s a 1s 539 00:25:34,210 --> 00:25:35,619 heb beth ar eich cyfrifiadur? 540 00:25:35,619 --> 00:25:36,410 CYNULLEIDFA: Crynhoydd. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Felly casglwr, ar y dde. 542 00:25:37,630 --> 00:25:39,730 Nawr mae'r rhan fwyaf ohonoch yn ôl pob tebyg nid ydynt yn berchen ar compiler, 543 00:25:39,730 --> 00:25:41,259 erioed wedi llwytho i lawr a compiler. 544 00:25:41,259 --> 00:25:44,300 Ond byddwch yn gweld gallwch ei lawrlwytho fel y rhan fwyaf unrhyw ddarn arall o feddalwedd. 545 00:25:44,300 --> 00:25:47,470 Yn y byd o Mac OS, gallech chi lawrlwytho neu wedi llwytho i lawr eisoes 546 00:25:47,470 --> 00:25:50,437 rywbeth o'r enw Xcode neu GCC neu chlang. 547 00:25:50,437 --> 00:25:52,270 Os ydych yn dod o'r Ffenestri byd gallech chi 548 00:25:52,270 --> 00:25:56,190 wedi llwytho i lawr Studio Gweledol, Visual Basic, amgylcheddau fel 'na. 549 00:25:56,190 --> 00:25:59,200 Mae dwsinau o crynoadyddion y dyddiau y gallech eu defnyddio. 550 00:25:59,200 --> 00:26:01,940 Ond y tymor byr o hynny yma yw y byddai'n fod yn boen 551 00:26:01,940 --> 00:26:04,480 ac, a dweud y gwir, mae technolegol hunllef i gannoedd 552 00:26:04,480 --> 00:26:07,680 o bobl sydd â gwahanol ffurfweddau cyfrifiadur i bob 553 00:26:07,680 --> 00:26:09,800 ffurfweddu eu peiriannau yn union yr un ffordd 554 00:26:09,800 --> 00:26:11,700 er mwyn i ni i gyd fod ar yr un dudalen. 555 00:26:11,700 --> 00:26:15,240 >> Felly yr hyn yr ydym, yn lle hynny, yn gwneud mewn CS50 yn rydym yn rhoi i chi 556 00:26:15,240 --> 00:26:18,349 amgylchedd safonol, a Amgylchedd Linux dyna 557 00:26:18,349 --> 00:26:20,140 mynd i edrych ychydig yn rhywbeth fel hyn. 558 00:26:20,140 --> 00:26:22,980 Byddwch yn gweld mwy o hyn yn y Problem Set 1 fanyleb sy'n 559 00:26:22,980 --> 00:26:25,330 yn mynd ar-lein hwn nos Wener. 560 00:26:25,330 --> 00:26:28,360 >> A beth mae hyn yn golygu yw eich bod o hyn allan 561 00:26:28,360 --> 00:26:32,060 yn mynd i fod yn gallu lawrlwytho a gosod rhaglen 562 00:26:32,060 --> 00:26:33,650 Gelwir y Appliance CS50. 563 00:26:33,650 --> 00:26:36,275 A ydych yn mynd i lwytho i lawr a gosod rhaglen arall o'r enw 564 00:26:36,275 --> 00:26:40,300 yn hypervisor, sydd ychydig yn ffordd ffansi o gyflawni hyn. 565 00:26:40,300 --> 00:26:44,600 P'un a ydych yn berchen ar Mac neu PC neu Linux cyfrifiadur neu gyfrifiadur Solaris, 566 00:26:44,600 --> 00:26:46,830 neu beth bynnag gweithredu crazy system yr ydych yn rhedeg, 567 00:26:46,830 --> 00:26:49,820 ydych yn mynd i lawrlwytho rhaglen Gelwir y hypervisor dyna 568 00:26:49,820 --> 00:26:53,350 mynd i redeg y CS50 Offer ar eich cyfrifiadur 569 00:26:53,350 --> 00:26:55,430 waeth beth yw eich system weithredu yn. 570 00:26:55,430 --> 00:27:00,640 Mae hypervisor mewn geiriau eraill yn trosi ein stwff i ba bynnag iaith, 571 00:27:00,640 --> 00:27:03,850 pa bynnag gyfarwyddiadau eich cyfrifiadur eich hun yn deall. 572 00:27:03,850 --> 00:27:04,962 >> Felly mae hwn yn haenu. 573 00:27:04,962 --> 00:27:06,920 Ac eto, mae hyn yn garedig o thematig yn y cyfrifiadur 574 00:27:06,920 --> 00:27:08,722 gwyddoniaeth, mae'r adeilad ar ben o bethau. 575 00:27:08,722 --> 00:27:09,680 Efallai y bydd gennych Windows. 576 00:27:09,680 --> 00:27:10,710 Efallai y bydd gennych Mac OS. 577 00:27:10,710 --> 00:27:12,960 Ond yn dechrau yr wythnos nesaf eich bod yn mynd i fod wedi llwytho i lawr 578 00:27:12,960 --> 00:27:14,980 darn o feddalwedd rhad ac am ddim Gelwir y hypervisor. 579 00:27:14,980 --> 00:27:17,800 Rydych yn mynd i wedi lawrlwytho'r darn meddalwedd a elwir y Appliance CS50. 580 00:27:17,800 --> 00:27:21,050 >> Sy'n mynd i redeg yn y hypervisor, sydd yn mynd i redeg ar eich cyfrifiadur. 581 00:27:21,050 --> 00:27:23,030 A'r canlyniad yw bod pob un ohonom fydd 582 00:27:23,030 --> 00:27:26,220 fod â syml ffenestr tebyg hyn ar eich Mac neu PC 583 00:27:26,220 --> 00:27:30,160 sy'n rhoi y rhith o bawb ohonom rhedeg yr un system weithredu, 584 00:27:30,160 --> 00:27:32,800 heb unrhyw un arall effaith ar eich cyfrifiadur. 585 00:27:32,800 --> 00:27:34,870 A gallwch sgrin lawn iddo ac yn ei hanfod yn ymddwyn 586 00:27:34,870 --> 00:27:37,550 fel pe ydych yn cynnal system weithredu o'r enw Linux, 587 00:27:37,550 --> 00:27:40,270 sef yr hyn y mae'r CS50 Offer yn seiliedig ar. 588 00:27:40,270 --> 00:27:42,930 >> Felly gadewch i ni mewn gwirionedd yn defnyddio hyn nawr i ysgrifennu rhaglen. 589 00:27:42,930 --> 00:27:45,450 Gallwch ysgrifennu rhaglen ddefnyddio Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Gallwch ysgrifennu rhaglen ddefnyddio TextEdit, neu Notepad, 591 00:27:48,160 --> 00:27:51,880 neu WordPad, neu 'n bert lawer unrhyw air rhaglen prosesu rydych chi wedi'u defnyddio erioed. 592 00:27:51,880 --> 00:27:55,174 Ond y gwir amdani yw nad ydych ddylai defnyddio 'n sylweddol unrhyw un o'r rhaglenni hynny. 593 00:27:55,174 --> 00:27:57,840 Rydych yn sicr, ni ddylid defnyddio rhywbeth fel Microsoft Word, sy'n 594 00:27:57,840 --> 00:28:01,120 Mae gan wynebu a italics bras, a ffontiau mwy a ffontiau llai, 595 00:28:01,120 --> 00:28:03,560 oherwydd nad oedd y cyfrifiadur yn ei wneud poeni am unrhyw un o hynny. 596 00:28:03,560 --> 00:28:05,600 Mae'r holl y cyfrifiadur yn mynd i ofalu am ei 597 00:28:05,600 --> 00:28:09,040 Saesneg fel cyfarwyddiadau ysgrifenedig yn C. 598 00:28:09,040 --> 00:28:12,050 >> Felly, yr hyn y byddwn ni'n ei wneud y tu mewn o'r Appliance CS50 599 00:28:12,050 --> 00:28:14,290 yn defnyddio rhaglen yn rhydd sydd ar gael, ac mae'n 600 00:28:14,290 --> 00:28:17,360 cyn-osod yn y offer, a elwir yn Gedit. 601 00:28:17,360 --> 00:28:22,280 Ac Gedit yn unig yw super syml golygydd testun fel TextEdit Mac OS yn, 602 00:28:22,280 --> 00:28:26,200 fel Ffenestri Notepad mae hynny'n mynd i edrych yn rhywbeth bach fel hyn. 603 00:28:26,200 --> 00:28:28,910 >> Felly gadewch i ni mewn gwirionedd nid edrych ar sleidiau o hyn. 604 00:28:28,910 --> 00:28:32,580 Ond gadewch i ni mewn gwirionedd yn mynd i mewn i yr amgylchedd ei hun. 605 00:28:32,580 --> 00:28:36,090 Rydw i'n mynd i fynd yn ei flaen a logio i mewn, yn y ffenestr arall, 606 00:28:36,090 --> 00:28:40,910 at fy Appliance CS50, yr wyf i wedi cyn-osod ar fy laptop yma. 607 00:28:40,910 --> 00:28:43,771 >> Hysbysiad bod, fel Ffenestri a Mac OS, 'i' got rhai bwydlenni. 608 00:28:43,771 --> 00:28:45,520 Fel Ffenestri mae'n rhoi i lawr yno yn lle hynny 609 00:28:45,520 --> 00:28:47,020 o Mac OS, sy'n ei roi i lawr yno. 610 00:28:47,020 --> 00:28:48,930 Ond y gwir amdani yw ei fod yn pob math o yr un fath. 611 00:28:48,930 --> 00:28:50,770 Ac i mewn yma yn ei chyfanrwydd criw o feddalwedd. 612 00:28:50,770 --> 00:28:51,770 Mae Dropbox. 613 00:28:51,770 --> 00:28:54,780 Mae criw cyfan o ategolion, rhaglenni graffigol yr ydym annhymerus 614 00:28:54,780 --> 00:28:56,430 defnyddio yn nes ymlaen yn y tymor ar gyfer setiau broblem. 615 00:28:56,430 --> 00:28:59,650 Mae porwr gwe a adeiladwyd yn y blaen bod hyn yn cyfrifiadur cyflawn llawn 616 00:28:59,650 --> 00:29:01,240 tu mewn i gyfrifiadur. 617 00:29:01,240 --> 00:29:04,170 >> Ond dw i'n mynd i glicio yma icon gwyn leftmost yma, 618 00:29:04,170 --> 00:29:05,890 sef yr eicon ar gyfer Gedit. 619 00:29:05,890 --> 00:29:09,650 Ac mae'n mynd i agor ffenestr sydd â tri phanel iddi, 620 00:29:09,650 --> 00:29:12,590 yn un sydd ar ôl, yn un pen, ac yn un y gwaelod. 621 00:29:12,590 --> 00:29:16,071 >> Nawr 'i' yn yr un dde uchaf y Rydw i'n mynd i mewn gwirionedd yn ysgrifennu rhai cod. 622 00:29:16,071 --> 00:29:16,820 Felly gadewch i ni wneud hyn ,. 623 00:29:16,820 --> 00:29:19,040 Rydw i'n mynd i fynd i File, Save. 624 00:29:19,040 --> 00:29:22,100 Ac efallai na fydd chi erioed wedi gweld hwn ffenestr benodol o'r blaen. 625 00:29:22,100 --> 00:29:23,620 Ond mae hyn yn debyg Mac OS neu Windows. 626 00:29:23,620 --> 00:29:25,490 'I' jyst ffenestr gyda phob un o'r ffolderi 627 00:29:25,490 --> 00:29:27,290 bod gennyf tu mewn cyfrifiadur hwn. 628 00:29:27,290 --> 00:29:30,320 >> Ac yr wyf i'n mynd i achub y ffeil fel ag hello.c. 629 00:29:30,320 --> 00:29:32,690 Ac yr wyf i'n mynd i fynd ymlaen llaw a chliciwch Save. 630 00:29:32,690 --> 00:29:36,364 Ac yn sylwi yn awr yr wyf yn cael tab ar top chwith o'r enw hello.c. 631 00:29:36,364 --> 00:29:38,280 Felly, yn ôl pob tebyg 'n bert cyfarwydd hyd yn oed os nad ydych wedi 632 00:29:38,280 --> 00:29:40,240 Defnyddir y rhaglen benodol hon o'r blaen. 633 00:29:40,240 --> 00:29:44,890 >> Ac yn awr yr wyf i'n mynd i deipio yn y rhai dilyniant eithaf cryptig o orchmynion 634 00:29:44,890 --> 00:29:46,360 ein bod yn gweld funud yn ôl. 635 00:29:46,360 --> 00:29:49,330 Cynnwys, yr wyf yn safonol / O.h. 636 00:29:49,330 --> 00:29:50,600 Mwy am hynny cyn bo hir. 637 00:29:50,600 --> 00:29:55,670 Prif ddi-rym int, cyrliog agored Brace, gau Brace cyrliog. 638 00:29:55,670 --> 00:30:01,570 Ac yna y tu mewn o yno yn fy marn lle'r oedd gennym "helo byd," hanner colon. 639 00:30:01,570 --> 00:30:03,100 Ac yn awr yn arbed. 640 00:30:03,100 --> 00:30:08,780 >> Felly, mae hon yn rhaglen a ysgrifennwyd yn C, ysgrifenedig, felly, yn y cod ffynhonnell. 641 00:30:08,780 --> 00:30:10,720 Ond ni all Fi jyst yn rhedeg y rhaglen hon. 642 00:30:10,720 --> 00:30:13,390 Wyf yn fath o awyddus i ddyblu cliciwch ar eicon yn rhywle, 643 00:30:13,390 --> 00:30:16,390 ond nid oes unrhyw eicon yn bodoli arall na'r ffeil cod ffynhonnell. 644 00:30:16,390 --> 00:30:20,359 Yr hyn, unwaith eto, yw'r broses nawr bod Angen i mi redeg y ffeil drwy? 645 00:30:20,359 --> 00:30:21,150 CYNULLEIDFA: Crynhoydd. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Felly a compiler. 647 00:30:22,399 --> 00:30:24,890 Felly, mewn gwahanol gyfrifiaduron chi gwneud hyn mewn ffyrdd gwahanol. 648 00:30:24,890 --> 00:30:27,480 Ond yr hyn yr ydym wedi ei wneud yma yng y Appliance CS50 dyna 649 00:30:27,480 --> 00:30:31,260 cynrychiolydd o sut y gallech chi gwneud hyn ar lawer o wahanol systemau, 650 00:30:31,260 --> 00:30:34,036 yw fy mod yn syml, yn mynd i rhedeg gorchymyn o'r enw gwneud. 651 00:30:34,036 --> 00:30:35,660 A gwneud yn llythrennol yn mynd i wneud hynny. 652 00:30:35,660 --> 00:30:36,640 Gwna fi rhaglen. 653 00:30:36,640 --> 00:30:39,060 >> Felly gwnewch yn mynd i rhedeg compiler i mi. 654 00:30:39,060 --> 00:30:42,160 Ac enw y rhaglen Yr wyf am ei wneud yw helo. 655 00:30:42,160 --> 00:30:43,510 Nawr gwneud yn rhaglen. 656 00:30:43,510 --> 00:30:47,170 A gwnewch yn ddigon i craff sylweddoli bod os byddaf yn ei ddweud yn gwneud helo, 657 00:30:47,170 --> 00:30:50,980 mae'n mynd i edrych yn awtomatig am ffeil o'r enw hello.c 658 00:30:50,980 --> 00:30:53,420 dim ond oherwydd dyna'r ffordd y mae'n cael ei ffurfweddu. 659 00:30:53,420 --> 00:31:00,300 >> Felly pan wyf yn awr daro Rhowch yma, mae hyn Llinell cryptig crazy jyst got dienyddio. 660 00:31:00,300 --> 00:31:02,720 Ac yn ymddiried ynof, cyn hir, o fewn ychydig ddyddiau, 661 00:31:02,720 --> 00:31:05,590 byddwch yn deall yr hyn i gyd am y cyfrwng nonsens. 662 00:31:05,590 --> 00:31:11,150 Ond am nawr, dim ond yn gwybod bod gwneud gweithredu ei sbarduno o casglwr. 663 00:31:11,150 --> 00:31:13,290 Mewn geiriau eraill, mae'n dod o hyd casglwr ar fy nghyfrifiadur 664 00:31:13,290 --> 00:31:14,820 mae hynny'n cyn-osod ar y Appliance CS50 665 00:31:14,820 --> 00:31:16,560 y byddwn yn rhoi i chi yn Problem Set 1. 666 00:31:16,560 --> 00:31:20,990 Ac mae'n Yna cymerodd hello.c fel mewnbwn, a gynhyrchwyd yn ôl pob golwg 667 00:31:20,990 --> 00:31:23,040 0s a 1s fel allbwn. 668 00:31:23,040 --> 00:31:29,410 >> Ac yn ddiofyn beth mae'n ei wneud yw ei fod yn arbed 0s a 1s rheini mewn ffeil o'r enw helo. 669 00:31:29,410 --> 00:31:33,180 Ac er bod cystrawen hyn hefyd efallai fod yn newydd i chi, yn syml drwy ddweud dot 670 00:31:33,180 --> 00:31:37,110 slaes helo yn mynd i fod y olygu wrth yr wyf yn rhedeg y rhaglen hon. 671 00:31:37,110 --> 00:31:40,360 >> Am nawr ac am o leiaf cwpl o wythnosau, mae bron pob un o'r rhaglenni 672 00:31:40,360 --> 00:31:44,230 rydym yn ysgrifennu yn mynd i fod yn ffenestri testun du a gwyn. 673 00:31:44,230 --> 00:31:47,006 Dim llygod, dim clicio, heb ffenestri, dim eiconau. 674 00:31:47,006 --> 00:31:49,630 Rydym yn mynd i gadw'n syml ac yn canolbwyntio ar y syniadau sylfaenol 675 00:31:49,630 --> 00:31:52,490 i ddechrau cyn i ni gyrraedd rhywbeth lefel uwch, er enghraifft, 676 00:31:52,490 --> 00:31:56,410 fel y gêm toriad allan y buom yn siarad amdanynt yn y ddarlith gyntaf yr wythnos diwethaf. 677 00:31:56,410 --> 00:32:00,820 >> Felly, pan fyddaf daro Rhowch yma, 'i' cyfatebol yn yr amgylchedd yn unig testun 678 00:32:00,820 --> 00:32:03,272 i ddyblu clicio yn eicon o'r enw helo. 679 00:32:03,272 --> 00:32:05,480 Beth ydych chi'n disgwyl ewyllys digwydd pan fyddaf daro Enter hynny? 680 00:32:05,480 --> 00:32:07,120 >> CYNULLEIDFA: Bydd yn argraffu "helo byd." 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Gobeithio bydd yn argraffu "helo byd." 682 00:32:10,000 --> 00:32:11,370 Ac yn wir y gwnaeth. 683 00:32:11,370 --> 00:32:13,690 Nawr mae wedi bod rhywfaint cystrawen cryptig yma. 684 00:32:13,690 --> 00:32:15,950 Gadewch i ailddirwyn am ddim ond eiliad a gweld os ydym 685 00:32:15,950 --> 00:32:19,530 Ni all ddechrau casglu bod yn unig gan tinkering, ceisio a methu, 686 00:32:19,530 --> 00:32:21,130 ynghylch yr hyn sy'n digwydd yma. 687 00:32:21,130 --> 00:32:23,609 Beth os byddaf yn cael gwared ar y slaes n? 688 00:32:23,609 --> 00:32:25,650 Nawr mae rhai ohonoch chi sydd i wedi raglennu o'r blaen yn ôl pob tebyg 689 00:32:25,650 --> 00:32:27,054 gwybod ar unwaith beth y mae hynny'n ei olygu. 690 00:32:27,054 --> 00:32:29,220 Ond ar gyfer y rhai ohonoch sydd i wedi erioed raglennu o'r blaen, 691 00:32:29,220 --> 00:32:34,052 o leiaf yn meddwl i chi eich hun beth sy'n mynd i newid pan fyddaf yn ailgynnal y rhaglen hon? 692 00:32:34,052 --> 00:32:37,010 Felly dw i'n mynd i fynd yn ôl i lawr at fy Ychydig ffenestr du a gwyn, a oedd yn 693 00:32:37,010 --> 00:32:39,290 yn y ffenestr y mae Gallaf lunio hyn. 694 00:32:39,290 --> 00:32:41,130 Rydw i'n mynd i ail-grynhoi helo. 695 00:32:41,130 --> 00:32:43,520 Rydym yn mynd i weld yr un dilyniant cryptig o orchmynion. 696 00:32:43,520 --> 00:32:45,719 Ac yr wyf i'n mynd i wneud dot slaes helo. 697 00:32:45,719 --> 00:32:48,260 Ac yn awr rhywun, os gwelwch yn erioed sydd wedi eu rhaglennu o'r blaen, 698 00:32:48,260 --> 00:32:49,770 beth allai fod yn wahanol y tro hwn? 699 00:32:49,770 --> 00:32:50,020 Yeah. 700 00:32:50,020 --> 00:32:51,840 >> CYNULLEIDFA: Ni fydd yn atal argraffu "helo byd." 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: Mae'n mynd canlynol-- sori? 702 00:32:52,660 --> 00:32:54,210 >> CYNULLEIDFA: Ni fydd yn rhoi'r gorau i argraffu ei? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: Ni fydd rhoi'r gorau i argraffu "helo byd." 704 00:32:55,810 --> 00:32:56,560 Felly nid yn syniad drwg. 705 00:32:56,560 --> 00:32:58,633 Syniadau eraill? 706 00:32:58,633 --> 00:32:59,132 Yeah. 707 00:32:59,132 --> 00:33:00,060 >> CYNULLEIDFA: Neges Gwall? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Gwall neges, OK, gallai fod. 709 00:33:01,750 --> 00:33:02,250 Beth arall? 710 00:33:02,250 --> 00:33:05,479 CYNULLEIDFA: Gallai fod argraffu'r braced gyda hanner colon hefyd? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: A allai argraffu'r braced gyda hanner colon hefyd. 712 00:33:08,270 --> 00:33:11,950 Felly efallai bod slaes wedyn rhywfaint fath o ffinio sy'n bwysig. 713 00:33:11,950 --> 00:33:14,860 Unrhyw sylwadau eraill? 714 00:33:14,860 --> 00:33:16,412 >> Syniadau Felly, i gyd yn dda. 715 00:33:16,412 --> 00:33:18,370 Ac yn wir, mae'n mynd i fod yn neges gwall. 716 00:33:18,370 --> 00:33:20,400 Dyna mae'n debyg y rhan fwyaf tebygol o i fod yr ateb yn gyffredinol 717 00:33:20,400 --> 00:33:22,420 ar gyfer yr ychydig wythnosau nesaf, wrth i ni ddysgu i cod yma. 718 00:33:22,420 --> 00:33:27,680 >> Ond am nawr cofiwch fod cyfrifiaduron yn unig yr hyn yr ydych yn ei ddweud wrthynt ei wneud. 719 00:33:27,680 --> 00:33:30,400 Mae llawer yn hoffi y cnau mwnci chwerthinllyd menyn ac esiampl jeli. 720 00:33:30,400 --> 00:33:33,860 Mae ein cyfrifiaduron dynol yn unig oedd i fod i wneud yr hyn ydych yn dweud wrthyn nhw am wneud. 721 00:33:33,860 --> 00:33:36,250 Felly, yn yr achos hwn, os ydych yn peidiwch â dweud wrth y cyfrifiadur 722 00:33:36,250 --> 00:33:41,190 i symud y cyrchwr amrantu at y llinell nesaf, nid yw'n mynd i wneud hynny. 723 00:33:41,190 --> 00:33:45,390 Felly, pan fyddaf yn rhedeg y rhaglen hon yn awr, yn sylwi ar y gwahaniaeth. 724 00:33:45,390 --> 00:33:46,900 >> Edrych fel a bug. 725 00:33:46,900 --> 00:33:49,190 'I' an byg esthetig, efallai. 726 00:33:49,190 --> 00:33:53,310 Ond beth sy'n wahanol am hyn allbwn yn erbyn yr un olaf yn amlwg? 727 00:33:53,310 --> 00:33:53,810 Yeah. 728 00:33:53,810 --> 00:33:54,920 >> CYNULLEIDFA: Nid oedd yn gwneud llinell newydd. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: Nid oedd yn gwneud llinell newydd. 730 00:33:56,586 --> 00:33:58,740 Nawr rhai ohonoch sydd rhaid i dudalennau gwe a wneir efallai 731 00:33:58,740 --> 00:34:01,910 o'r blaen, efallai y byddwch yn gwybod am y Tag BR neu'r paragraff tag, 732 00:34:01,910 --> 00:34:03,120 debyg iawn o ran ysbryd. 733 00:34:03,120 --> 00:34:06,680 Bydd porwr gwe i chi anwybyddu nes chi ddweud ei fod yn union beth i'w wneud. 734 00:34:06,680 --> 00:34:10,020 Yn yr un modd, yn iaith fel C yn unig mynd i wneud yr hyn yr ydych yn dweud iddo wneud. 735 00:34:10,020 --> 00:34:12,730 >> Felly, y rheswm y pob un o'r enghreifftiau hyn, 736 00:34:12,730 --> 00:34:15,350 hyd yn hyn, yn cael y math o Roedd gan casually slaes hwn 737 00:34:15,350 --> 00:34:18,560 mewn 'na, dyna'r ffordd erbyn pryd yr ydych yn mynegi eich hun 738 00:34:18,560 --> 00:34:21,380 fel cymeriad llinell newydd, fel petai. 739 00:34:21,380 --> 00:34:26,219 A gallwch fath o werthfawrogi, efallai, y byddai hyn yn edrych yn fath o dwp 740 00:34:26,219 --> 00:34:27,070 os dim byd arall. 741 00:34:27,070 --> 00:34:29,150 Os oeddwn i eisiau llinell newydd, dim ond taro Enter ac yna'n garedig 742 00:34:29,150 --> 00:34:32,219 o cigydd y cod fel 'na Ni ddylai wir yn rhwbio i chi y ffordd gywir. 743 00:34:32,219 --> 00:34:33,830 A hyd yn oed os nad ydych yn ei wneud 'n sylweddol gofal yn y fan hon, 744 00:34:33,830 --> 00:34:35,830 y byddwch yn sylweddoli bod nid yw hwn yn arbennig o 745 00:34:35,830 --> 00:34:37,870 darn edrych yn dda o god. 746 00:34:37,870 --> 00:34:39,969 >> Ac felly yr hyn y mae'r byd flynyddoedd benderfynu yn ôl ei 747 00:34:39,969 --> 00:34:43,420 pan fyddwch eisiau rhoi'r cyrchwr ar linell newydd yn benodol, 748 00:34:43,420 --> 00:34:46,332 mae'n rhaid i chi ddweud yn benodol llinell newydd, slaes n. 749 00:34:46,332 --> 00:34:48,040 Ac mae rhai eraill symbolau fel 'na. 750 00:34:48,040 --> 00:34:50,719 Ond am nawr rydym annhymerus unig canolbwyntio ar slaes n. 751 00:34:50,719 --> 00:34:53,790 >> Nawr, gadewch i ni wneud y rhaglen ychydig yn fwy diddorol. 752 00:34:53,790 --> 00:34:59,200 Rydw i'n mynd i fynd yn ei flaen a y tro hwn yn agor ffeil newydd. 753 00:34:59,200 --> 00:35:02,520 Rydw i'n mynd i achub hyn fel helo-1.c. 754 00:35:02,520 --> 00:35:05,540 A dim ond ar gyfer cychwyn, yr wyf i'n mynd i mynd yn ei roi i mewn i fy ffolder Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Fel y byddwch yn gweld yn y CS50 dogfennau ar gyfer y peiriant, 756 00:35:09,030 --> 00:35:11,210 yn ddiweddarach yr wythnos ar gyfer Broblem Set 1, byddwn yn annog 757 00:35:11,210 --> 00:35:13,230 chi ddefnyddio Dropbox neu rhywfaint o wasanaeth cyfatebol, 758 00:35:13,230 --> 00:35:15,430 oherwydd wedyn eich holl cod yn mynd i gael ei hategu yn awtomatig. 759 00:35:15,430 --> 00:35:17,830 Ac felly dyna pam yr wyf i wedi mynd i mewn i ffolder hwn yma. 760 00:35:17,830 --> 00:35:20,230 >> Ac yn awr yr wyf i'n mynd i ysgrifennu rhaglen ychydig yn wahanol. 761 00:35:20,230 --> 00:35:24,740 Cynnwys, yr wyf yn safonol / O.h, prif ddi-rym int. 762 00:35:24,740 --> 00:35:29,660 Ac yna i mewn yma printf, helo byd, sydd yn union yr un fath ag o'r blaen. 763 00:35:29,660 --> 00:35:32,450 >> Ond yn awr yr wyf eisiau argraffu rhywbeth dyna ychydig yn wahanol. 764 00:35:32,450 --> 00:35:34,800 Rwyf am i argraffu, dweud, "Helo, David." 765 00:35:34,800 --> 00:35:37,590 Mae pob hawl, felly mae'n amlwg, dylai gobeithio 766 00:35:37,590 --> 00:35:40,360 fod yn wir bod os byddaf yn ail-grynhoi rhaglen hon, ailgynnal iddo, 767 00:35:40,360 --> 00:35:41,840 mae'n mynd i ddweud "helo, David." 768 00:35:41,840 --> 00:35:45,160 >> Ond beth os wyf am ei gyflwyno y math hwn o amrywiol, 769 00:35:45,160 --> 00:35:49,240 y syniad o cynhwysydd sy'n mynd i storio D-a-v-i-d a chod mae'n nid yn galed 770 00:35:49,240 --> 00:35:50,600 i mewn i fy rhaglen. 771 00:35:50,600 --> 00:35:53,430 Wel beth os byddaf yn dechrau gwneud rhywbeth fel hyn? 772 00:35:53,430 --> 00:35:57,120 >> Llinynnol s, felly mae hyn yn amrywio. 773 00:35:57,120 --> 00:36:00,250 Os ydych am gael llinyn, a.k.a. gair neu ymadrodd. 774 00:36:00,250 --> 00:36:03,485 Mae dilyniant o gymeriadau yw'r hyn yr ydym mewn rhaglenni galw llinyn. 775 00:36:03,485 --> 00:36:06,610 Rydym yn unig yn mynd i generig alwad mae'n s, am ei fod yn enw syml 'n glws. 776 00:36:06,610 --> 00:36:08,010 Ond gallai wyf yn ei alw unrhyw beth. 777 00:36:08,010 --> 00:36:12,920 >> Rydw i'n mynd i ddweud hafal llinyn s dyfyniad unquote, "David," hanner colon. 778 00:36:12,920 --> 00:36:18,330 Ac yn awr yr wyf am i fewnosod D-a-v-i-d i mewn i hyn yr wyf i'n argraffu. 779 00:36:18,330 --> 00:36:23,720 A chyn gwelsom teaser ar y sgrin rhai gystrawen arbennig 780 00:36:23,720 --> 00:36:26,050 oedd yn caniatáu i ni i rhodder mewn gwerth. 781 00:36:26,050 --> 00:36:29,250 Beth oedd y arbennig symbol ychydig o sleidiau yn ôl? 782 00:36:29,250 --> 00:36:30,040 >> Felly y cant. 783 00:36:30,040 --> 00:36:33,830 Ar y pryd yr oedd cant d ar gyfer rhif degol. 784 00:36:33,830 --> 00:36:35,850 Nid yw hynny'n wir yn ymddangos yn berthnasol yma. 785 00:36:35,850 --> 00:36:38,650 Troi allan yno yn symbol y cant arall, 786 00:36:38,650 --> 00:36:42,810 sydd yn y cant s, sy'n sefyll am dalfan ar gyfer llinyn. 787 00:36:42,810 --> 00:36:49,350 >> Felly nawr, yn syml iawn, dwi'n mynd i fynd yn gwneud hello-1, 788 00:36:49,350 --> 00:36:54,210 gan fod hyn yn ffeil ei alw helo-1.c, a daro Chofnoda. 789 00:36:54,210 --> 00:36:56,230 Ac yr wyf yn sgriwio i fyny. 790 00:36:56,230 --> 00:36:57,394 Beth sy'n digwydd? 791 00:36:57,394 --> 00:37:00,560 Wel, dyma lle mae'n rhaid i ni ddechrau gwerthfawrogi ein bod yn y gorchymyn hwn 792 00:37:00,560 --> 00:37:02,810 amgylchedd lein, mae hyn testun yn unig amgylchedd. 793 00:37:02,810 --> 00:37:06,114 Does dim glicio ar eiconau fel ffolderi ar hyn o bryd. 794 00:37:06,114 --> 00:37:07,280 Ac yn meddwl yn ôl funud yn ôl. 795 00:37:07,280 --> 00:37:10,740 Yn yr hyn a wnaeth ffolder i'n dweud Roeddwn yn arbed fy cod? 796 00:37:10,740 --> 00:37:11,657 Felly y ffolder Dropbox. 797 00:37:11,657 --> 00:37:12,989 A allai wedi cael eu galw unrhyw beth. 798 00:37:12,989 --> 00:37:14,530 Ond mae'n digwydd i gael ei alw Dropbox. 799 00:37:14,530 --> 00:37:18,380 Felly rhywsut angen i mi ddyblu cliciwch ar bod ffolder Dropbox er mwyn cael 800 00:37:18,380 --> 00:37:21,657 i mewn iddo ac yn ei gael ar fy code elwir helo-1.c. 801 00:37:21,657 --> 00:37:24,490 Yn wir, gadewch i mi fynd yn ei flaen ac yn lleihau ffenestr yma am ychydig funudau'n. 802 00:37:24,490 --> 00:37:27,560 Yn union fel Windows a Mac OS, mae ffolderi yn Linux. 803 00:37:27,560 --> 00:37:29,410 Mae ffolderi yn y Appliance CS50. 804 00:37:29,410 --> 00:37:32,380 'I' jyst ar hyn o bryd rydym yn cyfyngu ein hunain i'r amgylchedd hwn testun. 805 00:37:32,380 --> 00:37:34,700 >> Ond os wyf yn dyblu cliciwch ar Dropbox, sylwi yno 806 00:37:34,700 --> 00:37:37,210 yw'r ffeil yr wyf am ei lunio. 807 00:37:37,210 --> 00:37:41,430 Ond mae angen i hyn du a gwyn i mi ffenestr terfynell, fel petai. 808 00:37:41,430 --> 00:37:45,750 Ond mae angen i mi, felly, i symud i mewn i'r ffolder neu cyfeiriadur. 809 00:37:45,750 --> 00:37:48,290 Felly ychydig yn ddirgel, ond byddwch yn cael i arfer â hyn hefyd. 810 00:37:48,290 --> 00:37:50,430 >> Yn y byd o Linux, sydd unwaith eto yn gweithredu 811 00:37:50,430 --> 00:37:54,860 system rydym yn rhedeg tu mewn i'r CS50 Offer, mae 'na gorchymyn o'r enw CD. 812 00:37:54,860 --> 00:37:58,310 Sy'n golygu y gallaf ei wneud CD, gofod, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, cyfeiriadur newid. 814 00:37:59,900 --> 00:38:00,400 Hawl. 815 00:38:00,400 --> 00:38:02,890 Yn ôl yn y dydd pan oedd pobl yn dyfeisio cyfrifiaduron ac yn gweithredu 816 00:38:02,890 --> 00:38:05,806 systemau fel hyn, roeddent am teipiwch y nifer lleiaf posibl keystrokes. 817 00:38:05,806 --> 00:38:08,760 Felly, y ffordd hawsaf o ddweud Cyfeiriadur newid oedd CD. 818 00:38:08,760 --> 00:38:13,910 >> Felly, os wyf yn taro CD, gofod Dropbox, sylwi ar beth sydd wedi newid yma. 819 00:38:13,910 --> 00:38:16,480 Y tu mewn cromfachau y peiriant yn fath 820 00:38:16,480 --> 00:38:19,360 o humoring mi ac atgoffa i mi lle yr wyf. 821 00:38:19,360 --> 00:38:21,480 Felly y ffolder agored yw Dropbox. 822 00:38:21,480 --> 00:38:24,950 Os wyf yn awr deipio ls gyfer rhestr, eto yn gryno, 823 00:38:24,950 --> 00:38:27,540 oherwydd nad oedd pobl yn dymuno teipiwch ôl yn y dydd l-i-au-t. 824 00:38:27,540 --> 00:38:29,300 Felly, maent yn lle hynny yn ei gwneud yn ls. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Hysbysiad Gwelaf ddau beth, helo-1.c, ac yna mae hyn yn beth cryptig, 1m ffynhonnell. 827 00:38:35,740 --> 00:38:38,310 Dyna dim ond fy ffordd o ddweud cod ffynhonnell ar gyfer wythnos 1 Dydd Llun. 828 00:38:38,310 --> 00:38:42,020 Dyna ffolder wyf yn llwytho i lawr o Gwefan CS50 yn a wneuthum yn gynharach heddiw 829 00:38:42,020 --> 00:38:43,990 a dim ond yn ei roi i mewn i'r offer o flaen llaw. 830 00:38:43,990 --> 00:38:47,550 >> Ond am y tro yr unig beth yr ydym yn poeni am yn gwneud y rhaglen hon. 831 00:38:47,550 --> 00:38:50,440 Felly, pan fyddaf yn teipio yn gwneud helo-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Damia. 833 00:38:51,320 --> 00:38:53,060 Aeth rhywbeth o'i le. 834 00:38:53,060 --> 00:38:54,580 Felly gadewch i ni tynnu hyn ar wahân. 835 00:38:54,580 --> 00:38:58,489 Ac yn anffodus dyma lle pethau gael ychydig o straen ar y dechrau, 836 00:38:58,489 --> 00:39:00,280 o leiaf os ydych wedi erioed raglennu o'r blaen. 837 00:39:00,280 --> 00:39:00,980 >> Fy duw. 838 00:39:00,980 --> 00:39:04,990 Ysgrifennais rhaglen ddwy linell a Mae gennyf pedair llinell o wallau. 839 00:39:04,990 --> 00:39:07,180 Felly beth sy'n mynd ymlaen yma. 840 00:39:07,180 --> 00:39:11,370 Yn gyntaf oll bob amser yn sgrolio yn ôl i fyny ac yn dod o hyd i'r neges gwall cyntaf, 841 00:39:11,370 --> 00:39:15,730 oherwydd oftentimes crynoadyddion unig yn drysu gan yr hyn yr ydych chi a minnau yn ei wneud. 842 00:39:15,730 --> 00:39:17,000 Crynoadyddion yn eithaf fud. 843 00:39:17,000 --> 00:39:18,360 Byddant yn unig yn gwneud yr hyn yr ydych yn dweud wrthynt ei wneud. 844 00:39:18,360 --> 00:39:21,484 Ac os ydych yn eu drysu, maen nhw jyst mynd i fath o taflu i fyny eu dwylo 845 00:39:21,484 --> 00:39:25,010 ac efallai taflu mwy o negeseuon gwall nag mewn gwirionedd yn berthnasol. 846 00:39:25,010 --> 00:39:26,380 >> Felly gadewch i ni edrych ar y cyntaf. 847 00:39:26,380 --> 00:39:27,540 Super cryptig ar y dechrau. 848 00:39:27,540 --> 00:39:31,050 Ond rhybudd, dyma enw'r ffeil yn yr wyf yn sgriwio i fyny yn ôl pob golwg. 849 00:39:31,050 --> 00:39:36,570 Colon 5, colon 5 yn unig yn golygu ar llinell 5 yn y pumed cymeriad. 850 00:39:36,570 --> 00:39:39,760 Felly bumed golofn o gymeriadau, os mynnwch, gwall. 851 00:39:39,760 --> 00:39:41,870 Defnydd o linyn dynodwr heb ei ddatgan. 852 00:39:41,870 --> 00:39:43,120 A oeddech yn meddwl n safonol? 853 00:39:43,120 --> 00:39:44,850 >> Na, yr wyf yn golygu llinyn. 854 00:39:44,850 --> 00:39:47,640 Ac yna mae'n fath o copïo a gludo 855 00:39:47,640 --> 00:39:50,700 yr hyn yr wyf deipio i dynnu 'n sylweddol fy sylw at lle rwy'n sgriwio i fyny. 856 00:39:50,700 --> 00:39:54,260 Felly, am ryw reswm C, neu o leiaf y compiler 857 00:39:54,260 --> 00:39:56,470 ddim yn deall y gair llinyn. 858 00:39:56,470 --> 00:39:57,890 A dyna oherwydd ein bod yn gwneud i fyny. 859 00:39:57,890 --> 00:40:01,440 Felly, nid yw llinyn yn bodoli yn C. Beth CS50 yn ei wneud, 860 00:40:01,440 --> 00:40:03,380 ar gyfer yr ychydig wythnosau cyntaf dim ond y dosbarth, 861 00:40:03,380 --> 00:40:05,700 yw ein bod yn darparu rhywfaint o hyfforddiant olwynion, fel petai. 862 00:40:05,700 --> 00:40:11,160 Ac rydym yn rhoi'r rhain olwynion hyfforddi tu mewn ffeil arbennig o'r enw CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Felly, mae hyn yw'r ail o ddwy ffeil enwau sydd yn ôl pob golwg yn dod i ben mewn dot h. 864 00:40:14,970 --> 00:40:16,300 Gadewch i ni ailddirwyn. 865 00:40:16,300 --> 00:40:19,360 Printf yn ddatganiad neu swyddogaeth sydd yn ôl pob golwg printiau rhywbeth 866 00:40:19,360 --> 00:40:20,580 i'r sgrin. 867 00:40:20,580 --> 00:40:23,470 Ond nad oeddech yn fy ngweld gweithredu printf, ar y dde. 868 00:40:23,470 --> 00:40:26,360 Flynyddoedd yn ôl, rhoi ar waith Rhywun printf. 869 00:40:26,360 --> 00:40:30,420 Ym mha ffeil fyddech chi'n Wager ef neu hi roi'r gweithredu 870 00:40:30,420 --> 00:40:34,270 gyfer printf, y cod ar gyfer printf? 871 00:40:34,270 --> 00:40:36,860 >> Mewn ffeil o'r enw safonol I / O.h. 872 00:40:36,860 --> 00:40:39,930 Yn wir, mae'n fwy na thebyg yn ddwy ffeil, yr wyf yn safonol / O.h, 873 00:40:39,930 --> 00:40:42,650 sy'n sefyll am header ffeiliau, ac yr wyf yn safonol / O.c, 874 00:40:42,650 --> 00:40:44,060 sy'n sefyll am C cod ffynhonnell. 875 00:40:44,060 --> 00:40:48,220 Felly, ef neu hi rai blynyddoedd yn ôl plopped y cod y maent yn ysgrifennu i mewn i'r ffeil 876 00:40:48,220 --> 00:40:51,240 er mwyn i bobl fel ni Gall mlynedd yn ddiweddarach ei gynnwys, 877 00:40:51,240 --> 00:40:53,040 fel petai, yn ein rhaglenni eu hunain. 878 00:40:53,040 --> 00:40:56,320 >> Ac yn wir, dyna beth yr arwydd bunt ddilyn gan y gair yn cynnwys yn ei wneud. 879 00:40:56,320 --> 00:41:00,250 Mae'n edrych ar y disg caled lleol, dod o hyd i'r ffeil o'r enw safonol I / O.h, 880 00:41:00,250 --> 00:41:03,840 ac yna copïau yn effeithiol ac yn pastau ei tu mewn fy ffeil hun. 881 00:41:03,840 --> 00:41:07,210 Felly nawr fy rhaglen yn gwybod sut i argraffu ar y sgrin. 882 00:41:07,210 --> 00:41:11,120 >> Felly, gan y rhesymeg, lle yw llinyn diffiniedig? 883 00:41:11,120 --> 00:41:12,260 >> CYNULLEIDFA: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J. Malan: CS50.h. 885 00:41:13,290 --> 00:41:15,540 Ac yn wir, dyna beth yr ydym, y staff craidd, wedi'i wneud. 886 00:41:15,540 --> 00:41:19,590 Rydym wedi dyfeisio rhai mathau o ddata, fel petai, fel llinyn, 887 00:41:19,590 --> 00:41:22,370 yn ychwanegol at y rhai yr ydych gael am ddim, fel int. 888 00:41:22,370 --> 00:41:26,010 A byddwn yn gweld pobl eraill fel torgoch ar gyfer cymeriad ac ychydig mwy. 889 00:41:26,010 --> 00:41:30,670 Y tu mewn o CS50.h mae'n debyg yw o leiaf rhywfaint o sôn am linyn. 890 00:41:30,670 --> 00:41:34,980 >> Felly nawr gadewch i mi fynd yn ei flaen ac yn gwneud ei ailgynnal helo-1. 891 00:41:34,980 --> 00:41:37,100 'N annhymerus' chwyddo i mewn eto ac yn croesi fy mysedd. 892 00:41:37,100 --> 00:41:41,370 Nawr drwy wedi gwneud un newid Rwy'n sefydlog rhan fwyaf o bethau. 893 00:41:41,370 --> 00:41:42,100 Ond damn iddo. 894 00:41:42,100 --> 00:41:44,290 Mae mwy percents na dadleuon data. 895 00:41:44,290 --> 00:41:45,980 Beth wnes i ei wneud o'i le y tro hwn? 896 00:41:45,980 --> 00:41:47,420 >> Felly mae'n dal i fod yn eithaf cryptig. 897 00:41:47,420 --> 00:41:51,560 Ond mae gwall hwn ar llinell 7 a chymeriad 21. 898 00:41:51,560 --> 00:41:53,880 Felly, gadewch i ni fynd yn edrych i fyny yma. 899 00:41:53,880 --> 00:41:55,350 Mae'n ychydig yn gynnil. 900 00:41:55,350 --> 00:41:59,167 Ond os ydych yn meddwl am yr hyn y syniadau sylfaenol yma yw, 901 00:41:59,167 --> 00:42:00,500 efallai y gallwn canfod hyn ar wahân. 902 00:42:00,500 --> 00:42:02,300 >> Felly printf yw enw'r y swyddogaeth. 903 00:42:02,300 --> 00:42:04,960 Cromfachau, hyd yn hyn, yn yn union fel yr hyn yr ydym yn ei roi o gwmpas 904 00:42:04,960 --> 00:42:07,005 y pethau rydym yn pasio fel mewnbwn i swyddogaeth. 905 00:42:07,005 --> 00:42:08,921 Mae pob hawl, dim ond confensiwn dynol fympwyol. 906 00:42:08,921 --> 00:42:09,919 Defnyddio cromfachau. 907 00:42:09,919 --> 00:42:12,460 Y tu mewn y cromfachau rhai rydym wedi bod yn rhoi dyfynodau dwbl, 908 00:42:12,460 --> 00:42:14,810 ac yna llinyn fel "helo byd." 909 00:42:14,810 --> 00:42:18,160 >> Ond yn yr enghraifft gynharach iawn wnaeth yn fyr rydym yn edrych ar gyda Scratch. 910 00:42:18,160 --> 00:42:22,590 Ac rydym yn cael y cant d, beth arall Roedd tu mewn cromfachau rhai 911 00:42:22,590 --> 00:42:23,730 fy mod wedi galw allan ar lafar? 912 00:42:23,730 --> 00:42:24,230 Yeah. 913 00:42:24,230 --> 00:42:28,166 >> CYNULLEIDFA: Felly mae'n beth rydych yn eu cymryd [Anghlywadwy] o'r tu mewn [Anghlywadwy] 914 00:42:28,166 --> 00:42:30,200 beth yw'r rhain [Anghlywadwy]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Yn union. 916 00:42:31,200 --> 00:42:32,700 Felly, cawsom y cant d. 917 00:42:32,700 --> 00:42:36,620 Ond yna rydym yn cael yn agos dyfynnwch, coma, cownter. 918 00:42:36,620 --> 00:42:37,120 Hawl. 919 00:42:37,120 --> 00:42:40,680 Rydym penodol hyn yr ydym am i'w wneud wrth i'r dalfan. 920 00:42:40,680 --> 00:42:44,621 Felly, yr hyn yr wyf i'n mynd i wneud yma yw coma, beth ydych chi eisiau i mi ei roi? 921 00:42:44,621 --> 00:42:45,120 CYNULLEIDFA: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, s oherwydd yn yr achos hwn 923 00:42:46,828 --> 00:42:48,700 yw enw'r y cynhwysydd storio. 924 00:42:48,700 --> 00:42:50,180 Mae'n enw'r powlen wydr. 925 00:42:50,180 --> 00:42:53,610 Lle o'r blaen ei bod yn wrthgynhyrchiol yn y Enghraifft Scratch syml buom yn edrych ar. 926 00:42:53,610 --> 00:42:56,630 Felly nawr wedi gwneud dau newidiadau, gadewch i mi chwyddo i mewn 927 00:42:56,630 --> 00:42:59,800 ac yn ceisio unwaith eto i llunio rhaglen hon. 928 00:42:59,800 --> 00:43:01,596 >> Nawr rwy'n gweld bod llinell cryptig. 929 00:43:01,596 --> 00:43:03,470 Ond dyna mewn gwirionedd y enwi o'r compiler. 930 00:43:03,470 --> 00:43:04,886 Chlang yw enw'r y compiler. 931 00:43:04,886 --> 00:43:07,100 Gwnewch yn unig arbed mi y cur pen o erioed 932 00:43:07,100 --> 00:43:09,830 deipio bod gorchymyn hir crazy allan. 933 00:43:09,830 --> 00:43:14,900 Felly, yn awr, os wyf yn dot slaes helo-1, Ddylwn i weld "helo, David." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, fodd bynnag, dde? 935 00:43:16,450 --> 00:43:18,158 Gallem fod wedi gwneud hyn yn llawer mwy syml 936 00:43:18,158 --> 00:43:20,940 heb sôn am newidynnau a CS50.h a hynny i gyd. 937 00:43:20,940 --> 00:43:23,080 Felly, gadewch i ni wneud yn ychydig yn fwy diddorol. 938 00:43:23,080 --> 00:43:31,010 >> Yn ogystal â CS50.h, cael pethau fel llinyn 939 00:43:31,010 --> 00:43:34,550 ddatgan, mae'r llyfrgell CS50 Mae gan ychydig o swyddogaethau. 940 00:43:34,550 --> 00:43:38,520 Flynyddoedd yn union fel yn ôl, ysgrifennodd rhywun printf a'i roi yn safon I / O.h 941 00:43:38,520 --> 00:43:39,530 a rhai ffeiliau eraill. 942 00:43:39,530 --> 00:43:44,010 >> Yr ydym, mae'r staff CS50, ysgrifennodd swyddogaeth Gelwir GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, ac rydym yn rhoi rhai sydd y tu mewn i ffeil 944 00:43:47,610 --> 00:43:49,890 Gelwir CS50.h a CS50.c. 945 00:43:49,890 --> 00:43:51,880 Ac yr ydym yn eu rhoi y tu mewn o'r Appliance CS50. 946 00:43:51,880 --> 00:43:53,880 A gall pobl hefyd llwytho i lawr ar-lein os ydynt 947 00:43:53,880 --> 00:43:55,880 eisiau rhoi nhw ar eu cyfrifiaduron eu hunain yn ogystal. 948 00:43:55,880 --> 00:44:00,880 Pa un yw dweud ein bod wedi creu swyddogaethau sy'n cael mewnbwn gan y defnyddiwr. 949 00:44:00,880 --> 00:44:02,930 Dydw i ddim yn gwybod beth i gyd data hyn mathau yn cael eu. 950 00:44:02,930 --> 00:44:06,490 GetInt yn fath o syml, fel cael yn gyfanrif rhywsut gan y defnyddiwr. 951 00:44:06,490 --> 00:44:09,980 Ac GetString mae'n debyg debyg get gair neu ddedfryd gan y defnyddiwr. 952 00:44:09,980 --> 00:44:11,770 >> Felly gadewch i ni ganolbwyntio ar hynny. 953 00:44:11,770 --> 00:44:14,710 Ac yr wyf i'n mynd i fynd yn ôl i mewn i'r offer ac yr wyf i'n mynd i fynd yn ei flaen 954 00:44:14,710 --> 00:44:20,790 ac yn arbed y ffeil fel, gadewch i ni alw mae'n helo-2.c fel fy ail fersiwn. 955 00:44:20,790 --> 00:44:23,030 A gadewch i ni wneud un neu ddau o newidiadau. 956 00:44:23,030 --> 00:44:25,800 >> Amser hwn yn lle caled David codio, a oedd yn 957 00:44:25,800 --> 00:44:29,120 yn gwneud yn hynod o gyson ond rhaglen underwhelming, 958 00:44:29,120 --> 00:44:32,640 beth os wyf yn ei wneud yn lle hynny GetString? 959 00:44:32,640 --> 00:44:35,660 Nawr sylwi GetString Mae gan cromfachau agored, 960 00:44:35,660 --> 00:44:38,500 cromfachau ar gau, oherwydd nid oes angen unrhyw fewnbwn. 961 00:44:38,500 --> 00:44:40,850 Dim ond mae'n mynd i fynd gael llinyn gan y defnyddiwr. 962 00:44:40,850 --> 00:44:42,460 >> Ac yn awr gair ar gystrawen eraill. 963 00:44:42,460 --> 00:44:45,439 Hanner colon yn unig yn dod i ben llinell o god. 964 00:44:45,439 --> 00:44:46,730 Nid oes angen i chi nhw ym mhob man. 965 00:44:46,730 --> 00:44:48,896 Ond mai dim ond yn golygu fy mod wneud gyda llinell hon o god. 966 00:44:48,896 --> 00:44:51,080 Gadewch i mi symud i un arall datganiad neu swyddogaeth. 967 00:44:51,080 --> 00:44:53,010 Llinyn yn datgan newidyn. 968 00:44:53,010 --> 00:44:55,920 Llinyn yw fel dweud rhoi powlen i mi, os gwelwch yn dda. 969 00:44:55,920 --> 00:44:57,940 A gadewch i mi roi llinyn yn ei. 970 00:44:57,940 --> 00:44:59,430 >> Ac yn awr yr arwydd cyfartal. 971 00:44:59,430 --> 00:45:03,510 Beth yw'r arwydd cyfartal hanfod yn cyfateb i? 972 00:45:03,510 --> 00:45:04,500 >> CYNULLEIDFA: Neilltuo. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Yeah, aseinio werth. 974 00:45:06,190 --> 00:45:09,872 Felly os wyf, er enghraifft, ffoniwch GetString swyddogaeth hon, 975 00:45:09,872 --> 00:45:12,830 a byddwn yn gweld yn y munud sy'n mynd i annog y defnyddiwr ar gyfer llinyn. 976 00:45:12,830 --> 00:45:17,810 Mae hyn yn debyg gadael wedyn fi ysgrifennu D-a-v-i-d ar ddarn o bapur. 977 00:45:17,810 --> 00:45:21,060 A phan rwy'n dweud llinyn s hafal GetString, 978 00:45:21,060 --> 00:45:24,140 Nid yw'n wir yn gyfartal yn golygu cyfartal mewn rhaglennu C. 979 00:45:24,140 --> 00:45:27,880 Mae'n golygu aseinio o'r dde ochr i'r ochr chwith. 980 00:45:27,880 --> 00:45:29,510 >> Felly dwi wedi gotten llinyn. 981 00:45:29,510 --> 00:45:32,785 A bydd yr arwydd cyfartal yn golygu ei roi yn y storio cynhwysydd o'r enw s. 982 00:45:32,785 --> 00:45:36,730 Ac Yna ei drosglwyddo i ffwrdd i printf i mewn gwirionedd yn gwneud ei beth. 983 00:45:36,730 --> 00:45:39,790 >> Felly, y canlyniad terfynol wedyn yn mynd i edrych ychydig yn wahanol. 984 00:45:39,790 --> 00:45:40,840 Gadewch i ni yn gwneud helo-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Gallai'r naill neu'r llall yn gweithio. 987 00:45:45,260 --> 00:45:46,450 Rydych yn dilyn ar hyd. 988 00:45:46,450 --> 00:45:47,940 Gwneud helo-2 yn gweithio. 989 00:45:47,940 --> 00:45:52,640 Dot slaes hello-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Yr wyf yn ymddangos i gael ddiddiwedd dolen neu rywbeth. 991 00:45:54,620 --> 00:45:55,453 Nid oes dim sy'n digwydd. 992 00:45:55,453 --> 00:45:56,134 Pam? 993 00:45:56,134 --> 00:45:57,805 >> CYNULLEIDFA: Mae'n gwneud dolen ddiddiwedd. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: Mae'n dolen ddiddiwedd. 995 00:45:59,430 --> 00:46:02,710 Mae'n fath o wedi aros i mi i mewn gwirionedd yn darparu ei gyda rhywfaint o gyfraniad. 996 00:46:02,710 --> 00:46:05,800 Felly, gadewch i mi fynd yn ei flaen a theipiwch yn David, a daro Chofnoda. 997 00:46:05,800 --> 00:46:07,230 Ac yn awr mae'n dweud "helo, David." 998 00:46:07,230 --> 00:46:09,040 Os byddaf yn rhedeg eto. 999 00:46:09,040 --> 00:46:11,530 Gadewch i deipio i mewn Rob, "helo, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Yn awr mae hyn yn y gwaethaf rhyngwyneb defnyddiwr erioed. 1001 00:46:13,900 --> 00:46:16,110 Mae'r defnyddiwr yn debyg i fod i wybod beth i'w wneud. 1002 00:46:16,110 --> 00:46:17,120 Ond ni waeth. 1003 00:46:17,120 --> 00:46:19,570 Gan ddefnyddio'r un adeilad hyn blociau yn union fel yn Scratch, 1004 00:46:19,570 --> 00:46:24,980 gallwn ni ddatrys y broblem honno ac yn dweud rhywbeth fel eich enw os gwelwch yn dda, colon, 1005 00:46:24,980 --> 00:46:27,820 gofod, ar gau dyfynnwch, yn agos cromfachau, hanner colon. 1006 00:46:27,820 --> 00:46:30,680 Felly, mae llawer o eto ffolineb gyda'r chystrawen. 1007 00:46:30,680 --> 00:46:34,040 >> Ond sylwi fy mod i newydd ychwanegu darn pos uwchben yr un yma 1008 00:46:34,040 --> 00:46:35,280 ac uwchben yr un yma. 1009 00:46:35,280 --> 00:46:38,870 Felly, yn awr os wyf yn ailgynnal hyn, helo-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Arhoswch funud. 1011 00:46:41,180 --> 00:46:41,830 Beth sydd o'i le? 1012 00:46:41,830 --> 00:46:43,570 Dyw hi ddim yn ymddwyn yn wahanol. 1013 00:46:43,570 --> 00:46:44,200 Yeah. 1014 00:46:44,200 --> 00:46:46,010 >> CYNULLEIDFA: Nid ydych wedi rhedeg wneud eto. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Doeddwn i ddim rhedeg wneud eto, ar y dde. 1016 00:46:47,968 --> 00:46:49,430 Felly, rwyf wedi newid fy cod ffynhonnell. 1017 00:46:49,430 --> 00:46:50,638 Ond unwaith eto, mae y llif. 1018 00:46:50,638 --> 00:46:54,530 Cod ffynhonnell drwy'r compiler yn rhoi ydych cod gwrthrych newydd, neu 0s a 1s. 1019 00:46:54,530 --> 00:47:00,209 Felly mae angen i ni mewn gwirionedd yr wyf yn gwneud ei ailgynnal helo-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, ymddengys rhywbeth i fod wedi digwydd. 1021 00:47:01,750 --> 00:47:04,220 Dot slaes helo-2. 1022 00:47:04,220 --> 00:47:05,390 Eich enw os gwelwch yn dda. 1023 00:47:05,390 --> 00:47:09,990 Ac i fod yn glir yn awr, pam mae y cyrchwr ar yr un llinell? 1024 00:47:09,990 --> 00:47:10,490 Yn union. 1025 00:47:10,490 --> 00:47:13,020 Doeddwn i ddim yn rhoi'r slaes n fyny yma yn fy cod. 1026 00:47:13,020 --> 00:47:16,110 Felly nawr gallaf ysgrifennu rhywbeth fel Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Gallaf redeg eto a math rhywbeth fel Gabe, Mewnbynnu, 1028 00:47:18,710 --> 00:47:22,250 ac rydym yn cael rhaglen wahanol dro ar ôl tro ar ôl tro. 1029 00:47:22,250 --> 00:47:28,940 >> Nawr rydym yn y pen draw yn mynd i angen i ddefnyddio ychydig o alluoedd gwahanol. 1030 00:47:28,940 --> 00:47:32,860 Mae angen i ni gyflwyno yn y pen draw mae rhai amodau i wneud pethau yn amodol. 1031 00:47:32,860 --> 00:47:35,550 Efallai dolenni er mwyn i ni ei wneud pethau dro ar ôl tro. 1032 00:47:35,550 --> 00:47:38,220 >> Efallai byddai'n braf os byddwn Gallai gweithredu ein swyddogaethau hunain, 1033 00:47:38,220 --> 00:47:41,355 fel rydym Gallai gweithredu ein hunain printf neu ein fersiwn ei hun o GetString 1034 00:47:41,355 --> 00:47:45,870 a GetFlow, oherwydd yn y pen draw, hyd yn oed ddefnyddio'r amgylchedd hwn archa bannod 1035 00:47:45,870 --> 00:47:49,780 allwn ni ei wneud hyd yn oed y rhan fwyaf o yn weledol ddiddorol o bethau. 1036 00:47:49,780 --> 00:47:51,950 >> Yn wir, mewn casgliad gadewch i mi wneud hyn. 1037 00:47:51,950 --> 00:47:54,020 Rydw i'n mynd i fynd yn ei flaen a chau ffenestri hyn 1038 00:47:54,020 --> 00:47:57,400 ac yn agor yr eicon hwn yma, sydd ychydig yn fwy 1039 00:47:57,400 --> 00:48:00,020 Fersiwn o hynny gwreiddio ffenestr terfynell. 1040 00:48:00,020 --> 00:48:02,329 Felly Gedit nid yn unig wedi y lle ar gyfer fy cod, 1041 00:48:02,329 --> 00:48:05,620 ond hefyd yn adeiladu mewn ffenestr terfynell, mae'r ffenestr du a gwyn lle alla i redeg 1042 00:48:05,620 --> 00:48:06,230 gorchmynion. 1043 00:48:06,230 --> 00:48:08,600 >> Fi jyst digwydd i agor fersiwn mwy o hyn. 1044 00:48:08,600 --> 00:48:11,170 Ac yn awr yr wyf i'n mynd i fynd i mewn i y ffolder yr wyf i wedi eisoes 1045 00:48:11,170 --> 00:48:13,150 rhoi o flaen llaw ar wefan y cwrs. 1046 00:48:13,150 --> 00:48:16,720 Ac yr wyf i'n mynd i fynd yn ei flaen a agor ffeil o'r enw thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 a gafodd ei ysgrifennu gan rywun arall. 1048 00:48:18,710 --> 00:48:21,220 >> Ac os ydym yn edrych ar hyn, nid yw hyn yn y math o cod 1049 00:48:21,220 --> 00:48:24,370 byddwn yn ysgrifennu ers y nod o cod hwn 1050 00:48:24,370 --> 00:48:28,450 oedd i ysgrifennu'r harddaf edrych cod fod ef neu hi gallai, 1051 00:48:28,450 --> 00:48:31,290 heb ystyried ai peidio gallai bod dynol arall erioed 1052 00:48:31,290 --> 00:48:33,660 deall y cod hwn. 1053 00:48:33,660 --> 00:48:37,050 >> Yn wir, bob blwyddyn mae 'na beth sydd a elwir yn C cystadleuaeth obfuscated, a oedd 1054 00:48:37,050 --> 00:48:39,570 ar gyfer geeks go iawn sy'n ysgrifennu cod y gall unrhyw un arall yn darllen, 1055 00:48:39,570 --> 00:48:42,050 ond sy'n gwneud rhywbeth naill ai 'n sylweddol syml neu wirioneddol anhygoel. 1056 00:48:42,050 --> 00:48:43,890 Ac rydym yn meddwl byddem i ben gyda golwg hwn 1057 00:48:43,890 --> 00:48:48,300 ar rywbeth sy'n eithaf anhygoel efallai y byddwch wedi gweld unwaith o'r blaen. 1058 00:48:48,300 --> 00:48:52,650 Ond byddwn yn dod i ben ar hyn nodyn, dot slaes, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Mae hyn wedyn yw beth yn aros. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Dyna ni am CS50. 1062 00:48:58,500 --> 00:48:59,935 Byddwn yn eich gweld ar ddydd Mercher. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [CHWARAE CERDDORIAETH] 1065 00:49:10,016 --> 00:53:31,883