1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. Malan So dit is CS50. 3 00:00:13,800 --> 00:00:18,970 En dit was CS50 se eie Colton Ogden, vir meer van wie se musiek kan 4 00:00:18,970 --> 00:00:22,820 laai op soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> So vandag fokus ons al die meer op die kuns van die ontwikkeling. 6 00:00:26,690 --> 00:00:28,980 En ons neem waar ons links af verlede week, met die fokus 7 00:00:28,980 --> 00:00:31,660 op nuuts af, wat hierdie grafiese programmeertaal. 8 00:00:31,660 --> 00:00:35,490 En neem die dinge af na 'n laer vlak, gebruik van 'n meer tradisionele ontwikkeling 9 00:00:35,490 --> 00:00:38,420 taal bekend as C. Maar langs die pad, besef 10 00:00:38,420 --> 00:00:40,730 dat dieselfde idees wat ons gepraat oor verlede Vrydag 11 00:00:40,730 --> 00:00:44,390 weer sal voorkom nie net in hierdie C, maar in die meeste elke ander 12 00:00:44,390 --> 00:00:46,350 dat ons kyk na hierdie semester. 13 00:00:46,350 --> 00:00:50,247 >> So ons het hierdie ding laaste keer hier wat? 14 00:00:50,247 --> 00:00:51,830 Dit is 'n verteenwoordiger van 'n verklaring gesê. 15 00:00:51,830 --> 00:00:53,080 So ons noem dit 'n verklaring gesê. 16 00:00:53,080 --> 00:00:54,100 En dit doen iets. 17 00:00:54,100 --> 00:00:56,910 Dit is 'n opdrag wat 'n rekenaar of krap kan voer. 18 00:00:56,910 --> 00:00:59,910 En nou af, laat ons ook begin roep iets soos hierdie 'n funksie, 19 00:00:59,910 --> 00:01:02,070 om redes wat ons sal binnekort te sien. 20 00:01:02,070 --> 00:01:03,681 >> Intussen het ons gesien dinge soos hierdie. 21 00:01:03,681 --> 00:01:05,680 En dit is in die algemeen bekend as wat bou? 22 00:01:05,680 --> 00:01:06,240 >> Publiek: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. Malan So 'n lus. 24 00:01:06,860 --> 00:01:07,943 So redelik eenvoudig. 25 00:01:07,943 --> 00:01:09,470 Dit beteken letterlik wat dit sê. 26 00:01:09,470 --> 00:01:12,210 En in Scratch, as jy wil gedrang meer stukke van die legkaart in daar, 27 00:01:12,210 --> 00:01:13,950 die stuk sal groei dit aan te pas. 28 00:01:13,950 --> 00:01:16,790 En ons sal sien in C wat Ons kan dieselfde ding doen. 29 00:01:16,790 --> 00:01:20,000 >> Nog 'n tipe van lus, al is, in Scratch kan wees vir ewig, 30 00:01:20,000 --> 00:01:21,820 of daar is 'n aantal ander benaderings. 31 00:01:21,820 --> 00:01:24,150 Maar laat ons neem 'n meer generiese voorkoms, met 'n gesig 32 00:01:24,150 --> 00:01:27,402 dit is waarskynlik redelik bekend, by lusse meer algemeen. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Een ding wat rekenaars 34 00:01:29,110 --> 00:01:31,860 is regtig 'n goeie by is herhaal bevele. 35 00:01:31,860 --> 00:01:33,910 As 'n persoon, sal jy regtig verveeld as jy 36 00:01:33,910 --> 00:01:36,730 het dieselfde ding om te doen baie keer in 'n ry. 37 00:01:36,730 --> 00:01:40,530 Maar 'n rekenaar kan dieselfde ding doen miljoene of selfs miljarde kere, 38 00:01:40,530 --> 00:01:43,290 en nie verveeld, en in staat wees om wat baie goed uit te voer. 39 00:01:43,290 --> 00:01:45,650 >> So byvoorbeeld, as ek wou almal te wens 40 00:01:45,650 --> 00:01:48,840 op Facebook 'n gelukkige verjaarsdag deur die stuur van hulle 'n e-pos, 41 00:01:48,840 --> 00:01:51,550 dit kan my meer as 'n neem eeu eintlik skryf 42 00:01:51,550 --> 00:01:53,000 al dié e-pos aan almal. 43 00:01:53,000 --> 00:01:57,780 Maar met net 'n paar reëls van die kode, kan ek 'n stelsel stuur 'n e-pos aan almal 44 00:01:57,780 --> 00:01:59,930 op Facebook wat hulle 'n gelukkige verjaardag. 45 00:01:59,930 --> 00:02:02,730 So dit is wat loops is en waarom hulle is waardevol en iets 46 00:02:02,730 --> 00:02:04,740 dat rekenaars baie goed kan doen. 47 00:02:04,740 --> 00:02:05,630 >> David J. Malan So as jy is die ontvanger 48 00:02:05,630 --> 00:02:07,820 van sommige van CS50 en Dropbox se ruimte laat, 49 00:02:07,820 --> 00:02:10,590 dit is eintlik presies wat ons doen, met behulp kode hou nie. 50 00:02:10,590 --> 00:02:12,600 Ons wese het 'n groot spreadsheet waarin 51 00:02:12,600 --> 00:02:15,016 mense is die skryf van hul name en e-pos adresse. 52 00:02:15,016 --> 00:02:18,160 En ons het 'n klein bietjie van die kode wat kan Itereer oor die adresse 53 00:02:18,160 --> 00:02:21,860 en spoeg uit unieke adresse in geval iemand voorgelê verskeie kere. 54 00:02:21,860 --> 00:02:25,120 En daarna, stuur ons 'n outomatiese e-pos van CS50 se bot, 55 00:02:25,120 --> 00:02:27,190 insluitend die koepon kode. 56 00:02:27,190 --> 00:02:29,290 >> Nou het ons ook gekyk na hierdie bou laaste tyd. 57 00:02:29,290 --> 00:02:33,100 En dit is 'n besondere voorbeeld van wat? 58 00:02:33,100 --> 00:02:35,050 So, ja, 'n Boole-uitdrukking. 59 00:02:35,050 --> 00:02:37,050 En die vorm is bedoel wat om te vang so goed. 60 00:02:37,050 --> 00:02:39,966 Alle vrae van die vorm waar of vals in Scratch 61 00:02:39,966 --> 00:02:41,590 sal kyk 'n bietjie iets soos hierdie. 62 00:02:41,590 --> 00:02:43,200 En ons noem dit 'n Boole-uitdrukking. 63 00:02:43,200 --> 00:02:46,170 Dit is inderdaad waar of vals, ja of nee. 64 00:02:46,170 --> 00:02:49,150 Dit is 'n manier om 'n vraag beantwoord. 65 00:02:49,150 --> 00:02:52,420 >> En Intussen kan jy die Boole gebruik uitdrukkings binnekant van konstrukte 66 00:02:52,420 --> 00:02:54,720 soos hierdie, wat van Natuurlik is voorwaardes 67 00:02:54,720 --> 00:02:57,259 of takke spreekwoordelike vurk in die pad. 68 00:02:57,259 --> 00:02:59,550 En hulle kan kyk nie net soos hierdie, maar hulle kan ook 69 00:02:59,550 --> 00:03:02,080 het elses wat verband hou met hulle. 70 00:03:02,080 --> 00:03:05,820 En jy kan eintlik 'n drie wyse vurk in die pad of 'n vierrigting vurk 71 00:03:05,820 --> 00:03:08,340 in die pad, net deur nes hierdie dinge, 72 00:03:08,340 --> 00:03:10,510 as jy sien in Scratch As jy nog nie het nie. 73 00:03:10,510 --> 00:03:13,550 En as jy kan doen in C as well. 74 00:03:13,550 --> 00:03:16,810 >> Kom ons neem 'n ander generiese kyk na 'n alumnist, asook, wat 75 00:03:16,810 --> 00:03:21,490 dalk 'n ander benadering te bied hierdie dinge genoem voorwaardes. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Mense maak besluite elke dag. 77 00:03:24,060 --> 00:03:27,530 Byvoorbeeld, voordat jy na buite gaan jy soort van 'n if-stelling wat sê, 78 00:03:27,530 --> 00:03:31,480 As dit dan reën Ek moet my baadjie te kry. 79 00:03:31,480 --> 00:03:36,820 En rekenaars is amazing wanneer jy besluit dié soort stellings, 80 00:03:36,820 --> 00:03:42,280 dat hulle betroubaar kan uitvoer daardie dinge teen ongelooflike spoed. 81 00:03:42,280 --> 00:03:48,240 En so 'n rekenaar program werklik is 'n bietjie wiskunde en 'n paar 82 00:03:48,240 --> 00:03:53,050 As state waar die besluit kry het. 83 00:03:53,050 --> 00:03:55,020 >> David J. Malan So as jy dalk weet, was dit 84 00:03:55,020 --> 00:03:57,880 mense soos Bill Gates, Paul Allen, en ander 85 00:03:57,880 --> 00:04:00,240 wat werklik afgeskop die sogenaamde persoonlike rekenaar 86 00:04:00,240 --> 00:04:01,990 rewolusie 'n paar jaar gelede. 87 00:04:01,990 --> 00:04:04,140 Ek het gedink, voordat ons duik in 'n paar Administrivia, 88 00:04:04,140 --> 00:04:09,920 ons wil 'n verhaal verband uit die Albuquerque, New Mexico Museum van Natuurlike Geskiedenis 89 00:04:09,920 --> 00:04:13,650 en wetenskap, waar sommige van Bill Gates se en Paul Allen se vroegste stories 90 00:04:13,650 --> 00:04:17,470 word vertel hoe ons nou vandag se rekenaars en Macs en nog baie meer. 91 00:04:17,470 --> 00:04:22,390 Vir hierdie, al is, moet ons twee vrywilligers wat 'n baie goeie vertelling stemme 92 00:04:22,390 --> 00:04:23,735 'n script om hardop te lees. 93 00:04:23,735 --> 00:04:25,530 >> Alle reg, hoe oor in terug daar. 94 00:04:25,530 --> 00:04:26,120 Kom op. 95 00:04:26,120 --> 00:04:27,770 En hoe oor voor hier. 96 00:04:27,770 --> 00:04:28,340 Kom af. 97 00:04:28,340 --> 00:04:29,600 Neem jou plekke hier. 98 00:04:29,600 --> 00:04:32,444 As julle kom, 'n paar administratiewe aankondigings. 99 00:04:32,444 --> 00:04:34,360 snitte, die proses van die keuse van 'n artikel, 100 00:04:34,360 --> 00:04:36,068 sal hierdie begin Woensdag tot Vrydag. 101 00:04:36,068 --> 00:04:38,400 Meer oor wat hierdie komende Woensdag in lesing. 102 00:04:38,400 --> 00:04:41,770 >> Super afdelings, intussen, is iets wat ons bied volgende week 103 00:04:41,770 --> 00:04:45,310 waardeur die hele klas betrokke is om deel te neem in redelike groot skaal 104 00:04:45,310 --> 00:04:47,690 afdelings, een meer gemaklik, een minder gemaklik. 105 00:04:47,690 --> 00:04:51,340 En ons sal die besonderhede aankondig van daardie, asook, later hierdie week. 106 00:04:51,340 --> 00:04:53,310 >> Intussen afdelings, self, sal begin 107 00:04:53,310 --> 00:04:57,241 in week drie van die kursus, zero-indeks, wat beteken dit is 'n paar weke 108 00:04:57,241 --> 00:04:57,740 uit. 109 00:04:57,740 --> 00:04:58,450 So moenie bekommerd wees nie. 110 00:04:58,450 --> 00:05:01,014 Jy het nog nie gemis iets langs die lyne. 111 00:05:01,014 --> 00:05:03,930 Intussen is in die tussentyd, as jy enige vrae administratiewe, 112 00:05:03,930 --> 00:05:08,120 e-pos my en Devon en Gabe en Rob by hierdie adres hier. 113 00:05:08,120 --> 00:05:10,320 >> Laastens probleem stel 0 is, natuurlik, uit. 114 00:05:10,320 --> 00:05:12,320 Jy kan opgemerk het dit op die kursus se webblad. 115 00:05:12,320 --> 00:05:14,840 Dit moet jy met alle antwoorde op vrae 116 00:05:14,840 --> 00:05:18,250 jy mag hê langs die pad vir net begin met die probleem stel. 117 00:05:18,250 --> 00:05:21,430 Maar as jy jouself in die behoefte van 'n helpende hand, 118 00:05:21,430 --> 00:05:25,020 deur al beteken kantoorure woon, Maandag, Dinsdag, Woensdag, Donderdag 119 00:05:25,020 --> 00:05:27,290 hierdie week in die aand in vier eetsale. 120 00:05:27,290 --> 00:05:31,650 Sien dat URL daar vir die besonderhede waar kantoorure sal wees. 121 00:05:31,650 --> 00:05:34,000 >> Nou laat kom om ons twee gaste hier vandag. 122 00:05:34,000 --> 00:05:34,740 Wat is jou naam? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAULUS: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> David J. Malan Jay Paul, lekker om jou te ontmoet. 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 Nice om jou te ontmoet. 130 00:05:39,790 --> 00:05:42,123 Jay Paul en Hikari het in voor hulle op hierdie musiek 131 00:05:42,123 --> 00:05:45,100 staan ​​twee skrifte wat ek gedruk vanoggend uit die New Mexico 132 00:05:45,100 --> 00:05:46,692 Museum van Natuurlike Geskiedenis en Wetenskap. 133 00:05:46,692 --> 00:05:48,400 En wat ek gedink het Ek wil nie op die oorhoofse 134 00:05:48,400 --> 00:05:52,830 word vergesel jou voordrag van die script en die geskiedenis 135 00:05:52,830 --> 00:05:54,700 met 'n paar visuele beelde, geen verrassings. 136 00:05:54,700 --> 00:05:57,512 >> En wat ek vooraf gedoen het is prehighlight op jou script 137 00:05:57,512 --> 00:05:59,470 wat jy moet lees, en wat jy moet lees. 138 00:05:59,470 --> 00:06:00,920 En ons sal in wese net alternatiewe paragrawe. 139 00:06:00,920 --> 00:06:03,211 So dit is baie soos jy kan in Engels klas gedoen het. 140 00:06:03,211 --> 00:06:06,875 Dit is die gehoor werklik dwing hier glo in jou verhaal. 141 00:06:06,875 --> 00:06:07,600 Sal ons? 142 00:06:07,600 --> 00:06:13,272 So het die storie hier is, het ons 'n BASIC, en dit begin in Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAULUS: Dit was winter, 1974, in Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 waar winters koud kan wees. 145 00:06:20,240 --> 00:06:22,800 'N bebaarde, lang hare kollege dropout vernoem 146 00:06:22,800 --> 00:06:27,280 Paul Allen was drudging oor Harvard Square, in sy gedagtes geabsorbeer. 147 00:06:27,280 --> 00:06:31,050 Sy grootste besorgdheid in daardie dae was hoe sy vriend, Bill Gates te kry, 148 00:06:31,050 --> 00:06:34,974 skool te hou en gaan in die besigheid met hom. 149 00:06:34,974 --> 00:06:37,890 Hikari: Die twee het reeds weg deur 'n aantal sake-ondernemings 150 00:06:37,890 --> 00:06:40,850 saam, van Lakeside skool in Seattle, waar 151 00:06:40,850 --> 00:06:45,220 hulle in 'n vrye rekenaar tyd om te betaal toets 'n PDP-10 rekenaar by 'n plaaslike tyd 152 00:06:45,220 --> 00:06:46,580 deel maatskappy. 153 00:06:46,580 --> 00:06:50,930 Die mees onlangse plan was om op te hou skool en vorm 'n sagteware maatskappy. 154 00:06:50,930 --> 00:06:53,440 Allen het Washington verlaat State University. 155 00:06:53,440 --> 00:06:58,380 Maar op die laaste minuut, Gates besluit om te hou met Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAULUS: Daardie dag, die kruising van Harvard Square, Allen sien die Januarie 157 00:07:02,080 --> 00:07:07,530 1975-uitgawe van Popular Electronics saam met die aarde stop kop, 158 00:07:07,530 --> 00:07:11,900 Wêreld se eerste Minicomputer Kit Kommersiële Models te kan teenstaan. 159 00:07:11,900 --> 00:07:14,430 Onder die opskrif was 'n foto van 'n klein boks 160 00:07:14,430 --> 00:07:16,160 versier met liggies en skakelaars. 161 00:07:16,160 --> 00:07:19,770 Dit was bekend as die MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 En Allen het geweet dit is wat hy is op soek na. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Dae van bespreking gevolg. 164 00:07:26,350 --> 00:07:30,170 Allen en Gates verstaan ​​die betekenis van die Altair. 165 00:07:30,170 --> 00:07:32,480 Hulle het dikwels gepraat oor mikroverwerkers 166 00:07:32,480 --> 00:07:35,250 en wag om te sien wat sal gedoen word met hulle. 167 00:07:35,250 --> 00:07:39,770 Nou was daar 'n mini-stel op die voorblad van Gewilde elektronika. 168 00:07:39,770 --> 00:07:42,830 Dit het blykbaar geen sagteware het nie. 169 00:07:42,830 --> 00:07:46,830 Hulle het 'n nasie van programmeerders neerdaal op MITS. 170 00:07:46,830 --> 00:07:49,590 En so het hulle geroep Ed Roberts, die hoof van die maatskappy, 171 00:07:49,590 --> 00:07:53,330 beweer 'n weergawe van die te hê BASIC-programmeertaal byna gereed 172 00:07:53,330 --> 00:07:54,710 vir die Altair. 173 00:07:54,710 --> 00:07:55,570 Hulle het nie. 174 00:07:55,570 --> 00:07:58,910 En Roberts moes geweet het wat hulle gedoen het nie. 175 00:07:58,910 --> 00:08:03,170 Hy was besig om 10 oproepe per dag vanaf mense wat 'n basiese byna gereed gehad. 176 00:08:03,170 --> 00:08:05,570 En sy voorraad reaksie was, "Die eerste persoon 177 00:08:05,570 --> 00:08:11,090 wat opdaag met 'n werkende BASIESE kry die kontrak. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAULUS: Gates en Allen nog nooit gesien het 'n Altair. 179 00:08:13,910 --> 00:08:17,600 Hulle het nog nooit gesien dat die Intel 8080 mikroprosesseerder 180 00:08:17,600 --> 00:08:19,060 in die hart van die Altair. 181 00:08:19,060 --> 00:08:21,470 Maar 'n paar jaar vroeër Allen 'n program geskryf het 182 00:08:21,470 --> 00:08:25,220 op 'n hoofraamrekenaar wat nagevolg die bedryf van 'n vorige Intel 183 00:08:25,220 --> 00:08:26,217 mikroverwerker. 184 00:08:26,217 --> 00:08:28,300 En hierdie keer het hulle dieselfde sou doen. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Met 'n Intel 8080 handleiding aan sy kant, 187 00:08:34,380 --> 00:08:37,770 Allen sit op 'n Harvard PDP-10 rekenaar 188 00:08:37,770 --> 00:08:42,010 en het die emulator en sagteware gereedskap wat nodig is om die ontwikkeling te doen. 189 00:08:42,010 --> 00:08:45,820 Intussen Gates gestop gaan aan klasse en wy homself 190 00:08:45,820 --> 00:08:48,120 te ontwerp om die basiese, gebruik elke truuk 191 00:08:48,120 --> 00:08:53,130 Hy het geweet dat die grootte te kry af onder 4 kilogrepe. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAULUS: Out in Albuquerque, Ed Roberts het 'n oproep van Gates 193 00:08:55,870 --> 00:08:59,754 vra vir besonderhede oor hoe die Altair hanteer spesifieke roetines. 194 00:08:59,754 --> 00:09:01,170 Niemand het ooit gevra wat voor. 195 00:09:01,170 --> 00:09:02,670 En Roberts begin te kry belangstel. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: Met die ontwikkeling gereedskap en die ontwerp gereed is, 198 00:09:07,970 --> 00:09:10,780 Gates en Allen het die kode op die PDP-10, 199 00:09:10,780 --> 00:09:16,060 mobilisering ander Harvard student, Monte Davidoff, wiskunde roetines te skryf. 200 00:09:16,060 --> 00:09:19,450 Na 'n finale aand van ontwikkeling, Allen het op 'n vliegtuig 201 00:09:19,450 --> 00:09:22,970 Hul basiese te MITS te lewer. 202 00:09:22,970 --> 00:09:25,800 Hy het die vliegtuig ry uit kommerwekkend. 203 00:09:25,800 --> 00:09:28,490 En terug in Cambridge Gates is kommerwekkend. 204 00:09:28,490 --> 00:09:32,100 Hulle het getoets hul basiese en dit op die emulator gewerk het. 205 00:09:32,100 --> 00:09:35,444 Maar wat as die emulator is verkeerd? 206 00:09:35,444 --> 00:09:37,360 JAY PAULUS: As die vliegtuig genader Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen het besef dat hul BASIC, nou netjies vervat 208 00:09:40,070 --> 00:09:42,460 op 'n klein rolletjie geslaan papier tape, sou 209 00:09:42,460 --> 00:09:44,970 wees nutteloos sonder 'n afsonderlike program, bekend as 'n loader, wat 210 00:09:44,970 --> 00:09:47,550 sal vertel die Altair hoe die papier tape wese te lees 211 00:09:47,550 --> 00:09:49,620 gevoer in die telex masjien. 212 00:09:49,620 --> 00:09:52,970 Hy het uit sy notaboek en vinnig neergekrabbel n loader program 213 00:09:52,970 --> 00:09:56,819 in Vergadering taal, dan die hand vertaal wat in die 1s en 0s 214 00:09:56,819 --> 00:09:57,985 die Altair sal verstaan. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen verwag 'n skoon, bietjie, hoë-tegnologie maatskappy 217 00:10:03,830 --> 00:10:05,470 loop deur mans in besigheid pas. 218 00:10:05,470 --> 00:10:09,210 So hy was verbaas toe Roberts ontmoet hom op die lughawe lyk soos 'n plaas 219 00:10:09,210 --> 00:10:10,270 hand. 220 00:10:10,270 --> 00:10:12,070 Roberts was ook verras. 221 00:10:12,070 --> 00:10:16,340 Toe hy laat val die Harvard programmeerder by 'n duur hotel, 222 00:10:16,340 --> 00:10:20,790 Allen het dat om te bely Hy kon nie die kamer kan bekostig nie. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAULUS: MITS, self, was geleë in 'n stowwerige strook mall. 224 00:10:24,510 --> 00:10:27,040 Binne 'n deurmekaar werkbank was 'n Altair 225 00:10:27,040 --> 00:10:30,390 gelaai met 5 kilogrepe van geheue en verbind deur 'n kabel 226 00:10:30,390 --> 00:10:32,030 'n telex masjien. 227 00:10:32,030 --> 00:10:37,200 Roberts en Chief Engineer, Bill Yates, gewag verwagting 228 00:10:37,200 --> 00:10:40,660 as Allen omgeschakeld sy loader program in die Altair. 229 00:10:40,660 --> 00:10:44,980 Die telex begin chugging as dit getrek die papier band deur die band leser. 230 00:10:44,980 --> 00:10:47,215 Dit het miskien 15 minute die program te laai. 231 00:10:47,215 --> 00:10:52,110 Toe het die telex skielik gedruk 'n geheue vinnige, dan is 'n gereed vinnige, 232 00:10:52,110 --> 00:10:55,340 en Allen begin tik 'n paar toets beveel. 233 00:10:55,340 --> 00:10:57,400 Tot almal se verbasing, die sagteware gewerk. 234 00:10:57,400 --> 00:10:58,525 Daar was foute, natuurlik. 235 00:10:58,525 --> 00:11:02,070 Maar die belangrikste ding was dit gewerk het. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Later, op pad na 'n $ 3,00 middagete by Pancho se, 'n perdeby gevlieg 237 00:11:06,570 --> 00:11:10,470 in die venster van die bakkie vragmotor en gesteek Allen op die arm. 238 00:11:10,470 --> 00:11:13,070 Maar op daardie stadium niks kon die bui bederf nie. 239 00:11:13,070 --> 00:11:17,210 Die Altair nou het sy basiese, die eerste kommersiële sagteware vir 'n huis 240 00:11:17,210 --> 00:11:23,260 rekenaar, wat deur Paul Allen en Bill Gates, om sake te doen as Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. Malan Baie dank aan ons twee lesers. 242 00:11:25,336 --> 00:11:30,690 >> [Applous] 243 00:11:30,690 --> 00:11:32,520 >> David J. Malan Nou jy het jou keuse, 244 00:11:32,520 --> 00:11:35,880 voordat jy vertrek, van 'n sparkly of 'n gloed in die dark-- o, 245 00:11:35,880 --> 00:11:40,810 wag 'n sekonde, wait-- sparkly en 'n gloei in die donker olifant 246 00:11:40,810 --> 00:11:42,534 van CS50 se eie Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 Hikari: Ag, baie dankie. 248 00:11:43,450 --> 00:11:45,324 David J. Malan Alle reg, baie dankie. 249 00:11:45,324 --> 00:11:49,855 [Applous] 250 00:11:49,855 --> 00:11:51,105 David J. Malan So ware verhaal. 251 00:11:51,105 --> 00:11:54,380 Dit is om te sê dat al hierdie masjiene en die gemak waarmee ons 252 00:11:54,380 --> 00:11:56,270 gebruik hulle nou en neem vanselfsprekend, regtig 253 00:11:56,270 --> 00:12:00,070 begin hier, net 'n paar treë Van hierdie werklike teater. 254 00:12:00,070 --> 00:12:03,930 En nou vandag, as jy nie het al, dit is Maxwell Dworkin, die rekenaar 255 00:12:03,930 --> 00:12:05,810 Wetenskappe-gebou, ook om die draai. 256 00:12:05,810 --> 00:12:09,760 En op die tweede verdieping van die gebou nie hang drie bladsye 257 00:12:09,760 --> 00:12:12,740 uit die oorspronklike bron kode wat Bill Gates en Paul Allen geskryf het. 258 00:12:12,740 --> 00:12:14,770 In werklikheid, as jy gebruik vergroot in wat jy kan sien nie net 259 00:12:14,770 --> 00:12:17,350 hul name in die oorspronklike tipe, maar ook 260 00:12:17,350 --> 00:12:22,100 hul handtekeninge dat hulle versier 'n n paar jaar terug toe hulle laaste besoek. 261 00:12:22,100 --> 00:12:25,800 >> Maar wat was veral dwingende oor dit is wat hulle het om te doen 262 00:12:25,800 --> 00:12:29,760 was 'n program wat dit wil te skryf ander mense in staat stel om te skryf 263 00:12:29,760 --> 00:12:30,950 hul eie programme. 264 00:12:30,950 --> 00:12:34,280 Teen die tyd al was daar saam met hierdie Altair masjien gemaak deur MITS. 265 00:12:34,280 --> 00:12:40,020 En al wat hulle nodig het, is 'n manier van maak dit maklik vir amateurs en mense 266 00:12:40,020 --> 00:12:45,300 hou ons in hierdie kamer eintlik program dat sonder noodwendig verstaan 267 00:12:45,300 --> 00:12:49,060 Vergadering kode, of masjien kode, of God verbied, 0e en 1e. 268 00:12:49,060 --> 00:12:51,190 Ons programmeerders, soos diegene in hierdie kamer, ons 269 00:12:51,190 --> 00:12:54,070 wil in staat wees om uit te spreek onsself baie meer soos pseudo-kode 270 00:12:54,070 --> 00:12:57,330 selfs al is dit 'n bietjie meer neet kieskeurig as ons gepraat het verlede week. 271 00:12:57,330 --> 00:13:00,970 Ons wil nie die kode te skryf soos hierdie, wat Paul Allen en Bill Gates het. 272 00:13:00,970 --> 00:13:04,850 Ons, in plaas daarvan, wil die kode te skryf wat lyk 'n bietjie meer gebruikers vriendelik. 273 00:13:04,850 --> 00:13:07,150 >> En dit is 'n taal bekend as 'n basiese. 274 00:13:07,150 --> 00:13:11,497 En die lyn nommers is daar wat jy gebruik om net tel die reëls van die kode 275 00:13:11,497 --> 00:13:12,330 wat jy skryf. 276 00:13:12,330 --> 00:13:14,038 Ons het nie eens te doen hierdie dae. 277 00:13:14,038 --> 00:13:16,060 Maar jy kan hier sien Hoe druk "Hello, World" 278 00:13:16,060 --> 00:13:18,660 sou inderdaad vermoedelik druk net dat. 279 00:13:18,660 --> 00:13:22,710 En ja, wat Bill en Paul het was mense bemagtig kode te skryf soos hierdie 280 00:13:22,710 --> 00:13:27,240 plaas of-- as jy 'n blik op die Rekenaarwetenskap wall-- kode soos hierdie. 281 00:13:27,240 --> 00:13:29,290 >> In werklikheid, CS50 onlangs het 'n geleentheid 282 00:13:29,290 --> 00:13:32,540 om te gaan sit met Professor Harry Lewis in die Rekenaarwetenskap departement, wat 283 00:13:32,540 --> 00:13:34,640 eintlik Bill geleer Gates 'n paar jaar gelede, 284 00:13:34,640 --> 00:13:38,460 en hier staan ​​voor die drie bladsye van uittreksels. 285 00:13:38,460 --> 00:13:39,560 Kom ons neem 'n blik. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Wat jy hier het is 'n notering van 'n vroeë stuk sagteware 287 00:13:45,520 --> 00:13:50,240 geskryf deur Bill Gates en Paul Allen, die stigters van Microsoft. 288 00:13:50,240 --> 00:13:52,570 So het die kode is interessant vir twee redes. 289 00:13:52,570 --> 00:13:55,480 Eerste van alles, dit het Microsoft se eerste produk, 290 00:13:55,480 --> 00:14:01,810 wat was 'n tolk vir Die basiese programmeringstaal. 291 00:14:01,810 --> 00:14:04,940 En tweedens, dit was een van die eerste pogings 292 00:14:04,940 --> 00:14:10,580 'n tolk sodat gewone te skep mense kan gebruik om persoonlike rekenaars. 293 00:14:10,580 --> 00:14:12,670 >> So Bill Gates was 'n voorgraadse aan Harvard. 294 00:14:12,670 --> 00:14:14,820 Ek begin skoolhou by Harvard in 1974. 295 00:14:14,820 --> 00:14:16,560 Dit is in 1975 gedoen. 296 00:14:16,560 --> 00:14:20,180 So dit was vroeg in sy loopbaan en vroeg in my loopbaan. 297 00:14:20,180 --> 00:14:23,790 Ek het eintlik Bill geleer in 'n kursus om hierdie tyd. 298 00:14:23,790 --> 00:14:27,130 Paul Allen was nie 'n Harvard student, maar hy 299 00:14:27,130 --> 00:14:31,020 was 'n hoërskool klasmaat van Bill Gates. 300 00:14:31,020 --> 00:14:33,740 As jy kom kyk op die lys, sal jy 301 00:14:33,740 --> 00:14:36,230 eintlik vind 'n derde naam, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 wat Gates se klasmaat hier by Harvard. 303 00:14:39,260 --> 00:14:41,340 >> OK, so hier is 'n interessante opmerking hier. 304 00:14:41,340 --> 00:14:47,150 Dit sê: "In 4K kan vierkantswortel verwyder maar vir sirkelroetes moet nog werk. " 305 00:14:47,150 --> 00:14:53,080 OK, so wat dit beteken, is dat daar was twee maniere om hierdie program op te stel. 306 00:14:53,080 --> 00:14:57,860 Een was om te loop op 'n weergawe van hierdie Altair rekenaar 307 00:14:57,860 --> 00:15:04,310 dat slegs 4K woorde van gehad geheue, 4096 woorde van die geheue. 308 00:15:04,310 --> 00:15:07,050 Maar die groot weergawe het 8K. 309 00:15:07,050 --> 00:15:09,770 En ja, wat hierdie sê is wat in die 4K weergawe 310 00:15:09,770 --> 00:15:12,770 jy het 'n paar te verwyder kode dit geskik te maak. 311 00:15:12,770 --> 00:15:14,790 En een van die dinge wat wat geskrap moet word 312 00:15:14,790 --> 00:15:16,290 sou die vierkantswortel roetine. 313 00:15:16,290 --> 00:15:20,360 Maar blykbaar die vir sirkelroetes moet steeds 314 00:15:20,360 --> 00:15:26,392 werk, selfs wanneer jy die opstel van down vir net die 4K weergawe van die rekenaar. 315 00:15:26,392 --> 00:15:29,350 David J. Malan So een van die temas, soos ons sal sien in Rekenaarwetenskap, 316 00:15:29,350 --> 00:15:31,430 is hierdie idee van lae en onttrekking, 317 00:15:31,430 --> 00:15:34,670 en regtig staan ​​op die skouers van die mense wat voor ons gekom het, nie 318 00:15:34,670 --> 00:15:37,890 in teenstelling met sommige van die Bill Gates en Paul Allen verhaal hier. 319 00:15:37,890 --> 00:15:40,080 En wat dit beteken is dat ons vandag kan neem vir 320 00:15:40,080 --> 00:15:43,490 verleen dat dinge eintlik makliker vir ons kode te skryf. 321 00:15:43,490 --> 00:15:47,170 Inderdaad kode, soos ons sê op Vrydag, is meer tegnies bekend as bron-kode. 322 00:15:47,170 --> 00:15:52,210 En dit is hierdie Engelse soos sintaksis dit is meer behoorlike en meer goed gedefinieer 323 00:15:52,210 --> 00:15:55,480 as iets soos pseudo-kode vir waarvoor daar geen formele definisie. 324 00:15:55,480 --> 00:15:58,320 >> En vandag is wat ons gaan om te fokus op die bron-kode 325 00:15:58,320 --> 00:16:01,010 wat lyk soos hierdie, wat weliswaar met die eerste oogopslag 326 00:16:01,010 --> 00:16:02,690 lyk heeltemal kriptiese. 327 00:16:02,690 --> 00:16:08,540 En eerlik, dit is manier om meer esteties kompleks as die onderliggende program is. 328 00:16:08,540 --> 00:16:13,300 Al hierdie program doen, Onthou, is wat het ons dan sê? 329 00:16:13,300 --> 00:16:14,990 Hy druk net "hallo wêreld." 330 00:16:14,990 --> 00:16:19,600 En tog kyk na al die dinge wat ons nodig het om te draai om dit baie eenvoudig frase. 331 00:16:19,600 --> 00:16:21,750 Maar kort voor lank al hierdie lyne en meer 332 00:16:21,750 --> 00:16:24,800 sal baie beter sin maak. 333 00:16:24,800 --> 00:16:26,940 >> En die vloei is soos volg. 334 00:16:26,940 --> 00:16:31,220 Wat ons nodig het tot ons beskikking is die kode te neem, soos bron 335 00:16:31,220 --> 00:16:32,340 kode wat ons nou net gesien het. 336 00:16:32,340 --> 00:16:35,060 En ons het 'n nuwe program dit uit te voer deur middel van. 337 00:16:35,060 --> 00:16:39,130 Ons moet algoritmes wat kan omskep bron-kode, soos hierdie, 338 00:16:39,130 --> 00:16:41,932 in voorwerp-kode, 0e en 1e. 339 00:16:41,932 --> 00:16:43,890 Met ander woorde, wat ons gaan vandag om te leer 340 00:16:43,890 --> 00:16:46,620 is hoe om dit te doen, skryf bron-kode op die top, 341 00:16:46,620 --> 00:16:49,930 slaag dit as insette tot 'n spesiale program bekend as 'n vertaler, 342 00:16:49,930 --> 00:16:52,140 en ons gaan voorwerp kode te produseer. 343 00:16:52,140 --> 00:16:54,600 Wat net 'n fancy manier sê ons sal iets doen 344 00:16:54,600 --> 00:16:58,350 wat lyk soos hierdie, gaan dit in 'n program genaamd 'n samesteller, 345 00:16:58,350 --> 00:17:01,210 vervaardiging voorwerp kode wat lyk soos hierdie. 346 00:17:01,210 --> 00:17:04,720 >> So dit is letterlik die patrone van 0'e en 1'e 347 00:17:04,720 --> 00:17:08,550 wat verstaan ​​word deur 'n Intel rekenaar deesdae, 348 00:17:08,550 --> 00:17:12,480 dat indien vertolk deur die CPU, die brein binnekant van 'n rekenaar, 349 00:17:12,480 --> 00:17:16,130 sal letterlik uit te druk, eenvoudig, "hallo wêreld." 350 00:17:16,130 --> 00:17:19,670 Nou is daar 'n manier om meer 0e en 1e as jy hoop nodig want dit mag wees. 351 00:17:19,670 --> 00:17:22,520 Maar dit is omdat ons bou op 'n goeie deel van die kompleksiteit 352 00:17:22,520 --> 00:17:24,270 dat ons voortaan as vanselfsprekend kan aanvaar. 353 00:17:24,270 --> 00:17:27,869 Met ander woorde, 'n baie slim mense het 'n baie van die koel gereedskap aan ons gegee 354 00:17:27,869 --> 00:17:32,480 en kragtige sagteware waarmee ons kan nou projekte van ons eie. 355 00:17:32,480 --> 00:17:33,400 >> So laat ons begin. 356 00:17:33,400 --> 00:17:36,640 Terwyl verlede Vrydag, en vir Probleem Stel 0 hierdie week, 357 00:17:36,640 --> 00:17:39,000 jy sal speel in 'n wêreld wat lyk soos hierdie. 358 00:17:39,000 --> 00:17:42,180 Begin vandag en vir Probleem Stel 1 volgende week, die kode 359 00:17:42,180 --> 00:17:45,410 gaan 'n bietjie meer kyk kriptiese, maar funksioneel is 360 00:17:45,410 --> 00:17:46,940 gaan dieselfde wees. 361 00:17:46,940 --> 00:17:50,770 So kennisgewing top is nuuts af, onderkant is C. Die waarheid te sê Scratch 362 00:17:50,770 --> 00:17:52,780 is 'n baie meer gebruiker vriendelik en toeganklik. 363 00:17:52,780 --> 00:17:56,890 Maar as jy nou vergelyk visueel bo na bodem, daar is soort van 'n 1-1 364 00:17:56,890 --> 00:17:59,690 korrespondensie tussen die stukke van die legkaart en die taal 365 00:17:59,690 --> 00:18:00,870 ons is oor om te speel met. 366 00:18:00,870 --> 00:18:04,420 In die besonder, sê die blou legkaart stuk tot bo, 367 00:18:04,420 --> 00:18:08,370 is glo gelykstaande aan wat navraag of spesiale woord in hierdie taal 368 00:18:08,370 --> 00:18:09,062 genoem C? 369 00:18:09,062 --> 00:18:09,770 Publiek: printf. 370 00:18:09,770 --> 00:18:10,728 David J. Malan printf. 371 00:18:10,728 --> 00:18:12,140 Dit beteken geformatteerde druk. 372 00:18:12,140 --> 00:18:15,240 En dit is net 'n fancy manier om te sê printf in C 373 00:18:15,240 --> 00:18:18,615 gaan 'n verklaring of 'n funksie te wees dat druk om iets aan die skerm. 374 00:18:18,615 --> 00:18:19,990 Wat beteken dit druk op die skerm? 375 00:18:19,990 --> 00:18:23,627 Wat jy vertel dit aan die binnekant aanhalings, binnekant van hakies. 376 00:18:23,627 --> 00:18:25,460 So weer, weliswaar, daar is 'n baie dinge 377 00:18:25,460 --> 00:18:27,990 wat jy in gedagte moet hou, hakies, aanhalingstekens, kommapunte, 378 00:18:27,990 --> 00:18:28,656 en al hierdie dinge. 379 00:18:28,656 --> 00:18:30,600 Maar dit alles is soort van langs die punt. 380 00:18:30,600 --> 00:18:33,660 Die interessante afhaal vir nou is dat die seggenskap blok in Scratch 381 00:18:33,660 --> 00:18:37,520 is redelik baie soortgelyk aan die printf verklaring in C. 382 00:18:37,520 --> 00:18:41,390 >> Intussen het die geel legkaart stuk tot bo toe groen vlag gebruik het, 383 00:18:41,390 --> 00:18:44,736 is waarskynlik ekwivalent na wat hier navraag? 384 00:18:44,736 --> 00:18:45,360 Publiek: Main. 385 00:18:45,360 --> 00:18:46,359 David J. Malan So belangrikste. 386 00:18:46,359 --> 00:18:47,410 Miskien int, miskien nietig. 387 00:18:47,410 --> 00:18:51,280 Maar belangrikste soort van klanke soos dit is belangrik, en inderdaad is dit. 388 00:18:51,280 --> 00:18:54,080 So wanneer groen vlag gekliek is, weer, die legkaart stuk 389 00:18:54,080 --> 00:18:56,390 wat skop af 'n hele Scratch program. 390 00:18:56,390 --> 00:19:02,140 Maar ons gaan nou begin bel wat hoofsaaklik die funksie bekend as hoof. 391 00:19:02,140 --> 00:19:06,410 >> Nou intussen het ons sal veralgemeen dit soos volg. 392 00:19:06,410 --> 00:19:08,780 Ons kan noem sê 'n funksie. 393 00:19:08,780 --> 00:19:10,580 En dit kan sien spesifiek soos hierdie. 394 00:19:10,580 --> 00:19:11,770 Wel, wat van sirkelroetes? 395 00:19:11,770 --> 00:19:16,540 As ons wil hê om te begin die omskakeling of vertaling meer in Scratch na C, 396 00:19:16,540 --> 00:19:19,400 hierdie ding hier blykbaar net sê: "Hello World" vir ewig. 397 00:19:19,400 --> 00:19:23,060 So as jy assosieer hierdie skrifte met 'n kat in Scratch, 398 00:19:23,060 --> 00:19:26,560 dit is net gaan om te sê hou in 'n soort van strokiesprent borrel, 399 00:19:26,560 --> 00:19:29,922 "Hallo wêreld, hallo wêreld, welkom wêreld, "ad nauseum, vir ewig. 400 00:19:29,922 --> 00:19:33,130 As ons wil hê om iets soortgelyk in te doen C, dit gaan om te kyk 'n bietjie kripties. 401 00:19:33,130 --> 00:19:35,463 Maar ons kan dieselfde bereik lei, soos ons sal uiteindelik 402 00:19:35,463 --> 00:19:36,861 vind uit, met sintaksis soos hierdie. 403 00:19:36,861 --> 00:19:39,360 Ek gaan weer printf te gebruik, want aan die einde van die dag 404 00:19:39,360 --> 00:19:42,040 Ek wil om te druk "hallo wêreld." 405 00:19:42,040 --> 00:19:45,610 En ek glo die gebruik van 'n navraag wat nie vir ewig. 406 00:19:45,610 --> 00:19:47,320 Dit is eerder die woord, terwyl. 407 00:19:47,320 --> 00:19:49,650 Maar net semanties in Engels, terwyl soort 408 00:19:49,650 --> 00:19:52,120 dui 'n soort van loop of fietsry. 409 00:19:52,120 --> 00:19:55,070 >> So dit gebeur te wees die term wat C gebruik. 410 00:19:55,070 --> 00:20:00,700 En terwyl waar is, waarom doen terwyl ware effektief vir ewig beteken? 411 00:20:00,700 --> 00:20:04,240 Wel, terwyl, soos ons sal gou waardeer al hoe meer, 412 00:20:04,240 --> 00:20:08,140 het hierdie hakies langs dit waar jy kan sit 'n Boole-uitdrukking. 413 00:20:08,140 --> 00:20:11,360 En so lank as wat uitdrukking is waar, die kode 414 00:20:11,360 --> 00:20:14,750 as aangedui tussen hierdie twee krulhakies as ons hulle sal noem, 415 00:20:14,750 --> 00:20:16,880 sal hou net weer en weer hardloop. 416 00:20:16,880 --> 00:20:18,410 >> So waar is, is waar. 417 00:20:18,410 --> 00:20:20,900 Dus, terwyl die ware middel net doen dit vir ewig. 418 00:20:20,900 --> 00:20:23,480 Dit is amper 'n dom bou jouself uit te druk. 419 00:20:23,480 --> 00:20:26,590 Maar daar was geen ewig navraag in C. Daar was terwyl. 420 00:20:26,590 --> 00:20:29,390 En daar was 'n baie eenvoudige Boole-uitdrukking soos ware. 421 00:20:29,390 --> 00:20:32,210 En so gaan dit, ons sal sien, bereik dieselfde resultaat. 422 00:20:32,210 --> 00:20:33,890 >> Hoe anders kan jy dalk 'n lus te implementeer? 423 00:20:33,890 --> 00:20:36,980 Wel, in Scratch jy dalk hard-kode 'n spesifieke aantal 424 00:20:36,980 --> 00:20:39,430 iterasies in die loop hier. 425 00:20:39,430 --> 00:20:43,210 En so dit is presies wat ons kan doen in hierdie weergawe van C, 426 00:20:43,210 --> 00:20:46,140 waardeur ons 'n sogenaamde vir lus. 427 00:20:46,140 --> 00:20:49,850 En die lus vir hier gaan te Itereer, ietwat kripties, 428 00:20:49,850 --> 00:20:54,100 van die waarde 0 op tot te, maar minder as 10. 429 00:20:54,100 --> 00:20:55,955 >> Nou veranderlikes in nuuts af. 430 00:20:55,955 --> 00:20:57,830 Jy kan nie gehad het geleentheid om dit te gebruik. 431 00:20:57,830 --> 00:21:02,516 Maar wat is die punt, in die algemeen, van 'n veranderlike het ons gesê verlede week? 432 00:21:02,516 --> 00:21:03,015 Wat is dit? 433 00:21:03,015 --> 00:21:03,780 >> Publiek: Punte. 434 00:21:03,780 --> 00:21:05,200 >> David J. Malan te wys? 435 00:21:05,200 --> 00:21:05,700 O, wys. 436 00:21:05,700 --> 00:21:07,620 OK, die dop van die punte, byvoorbeeld, in 'n wedstryd. 437 00:21:07,620 --> 00:21:09,510 Of meer algemeen doen wat met die veranderlike? 438 00:21:09,510 --> 00:21:10,450 Wat is die nut van hulle? 439 00:21:10,450 --> 00:21:10,825 >> Publiek: Memory. 440 00:21:10,825 --> 00:21:11,750 >> David J. Malan Ja, so geheue. 441 00:21:11,750 --> 00:21:13,000 Dit is vir die berging van iets. 442 00:21:13,000 --> 00:21:17,336 En die soort van dom visuele Ek gebruik laaste keer was soos hierdie glas bak. 443 00:21:17,336 --> 00:21:19,710 En as ons wou stoor iets binnekant van 'n veranderlike, 444 00:21:19,710 --> 00:21:21,918 byvoorbeeld nou die waarde is ses omdat daar 445 00:21:21,918 --> 00:21:23,450 ses tafeltennis balle in hier. 446 00:21:23,450 --> 00:21:26,158 Dis net 'n soort van die stoor houer wat onder die enjinkap 447 00:21:26,158 --> 00:21:30,030 geïmplementeer word met stukkies, 0e en 1e, egter 'n rekenaar gebeur om dit te doen. 448 00:21:30,030 --> 00:21:32,900 >> So in Scratch, as ons wil 'n veranderlike te hê, 449 00:21:32,900 --> 00:21:34,840 Ons kan 'n oranje blok soos hierdie gebruik. 450 00:21:34,840 --> 00:21:37,050 Ons sal daardie toonbank noem in hierdie spesifieke geval. 451 00:21:37,050 --> 00:21:38,890 Ek geïnisialiseer dit na 0. 452 00:21:38,890 --> 00:21:41,080 En wat is dit wat ek dan doen? 453 00:21:41,080 --> 00:21:44,780 Forever, sê toonbank, wat as jy speel met dit in Scratch, 454 00:21:44,780 --> 00:21:45,780 jy sal net sien nuuts af. 455 00:21:45,780 --> 00:21:49,920 Die kat of wat ook al kostuum jy sit op hom sal die nommer in die vraag te praat. 456 00:21:49,920 --> 00:21:52,840 >> Verandering teen te werk deur 1 is soos die verhoog deur 1. 457 00:21:52,840 --> 00:21:56,580 En so dit gaan tel van wat so what? 458 00:21:56,580 --> 00:21:59,114 Van 0 til oneindig, of totdat Scratch breek, 459 00:21:59,114 --> 00:22:01,030 of totdat jy soort belangstelling verloor in die kyk 460 00:22:01,030 --> 00:22:02,650 hoe hoog hy eintlik kan tel. 461 00:22:02,650 --> 00:22:04,800 >> So, hoe kan ons skakel dit na C? 462 00:22:04,800 --> 00:22:06,480 Dit gaan om te kyk 'n bietjie kripties. 463 00:22:06,480 --> 00:22:08,896 Maar weereens, as jy kyk na elke van hierdie lyne individueel 464 00:22:08,896 --> 00:22:10,410 hulle soort besetting algemeen. 465 00:22:10,410 --> 00:22:13,526 So glo Int gaan het 'n paar spesiale betekenis in C. 466 00:22:13,526 --> 00:22:14,400 Ons sal weer sien. 467 00:22:14,400 --> 00:22:15,810 As 'n eenkant beteken dit heelgetal. 468 00:22:15,810 --> 00:22:16,990 So dit beteken net nommer. 469 00:22:16,990 --> 00:22:18,920 So dit is die tipe glasbak ek wil hê, een 470 00:22:18,920 --> 00:22:21,120 dat getalle kan stoor, nie tafeltennis balle. 471 00:22:21,120 --> 00:22:25,520 En ek gaan die gelyke teken te gebruik daar is dit toe te ken 'n waarde van 0. 472 00:22:25,520 --> 00:22:29,440 So dit is nogal soos stel toonbank tot 0, maar in C. 473 00:22:29,440 --> 00:22:32,840 >> Intussen, terwyl die ware, wat ekwivalent, natuurlik, vir ewig, 474 00:22:32,840 --> 00:22:35,980 selfs al is dit 'n bietjie kripties, en dan binnekant van die krulhakies. 475 00:22:35,980 --> 00:22:39,188 En jy kan dink van hierdie krulhakies, wat jy kan tik op jou sleutelbord, 476 00:22:39,188 --> 00:22:43,110 as werklik om soos die kurwe in hierdie geel lus blokke in nuuts af. 477 00:22:43,110 --> 00:22:45,700 Dit sluit verskeie reëls van die kode. 478 00:22:45,700 --> 00:22:48,120 >> Printf is om 'n bietjie nou skrikwekkend omdat ek 479 00:22:48,120 --> 00:22:51,120 sien nie net haal in hakies. 480 00:22:51,120 --> 00:22:55,160 Maar wat anders is nuut sintakties in hierdie voorbeeld? 481 00:22:55,160 --> 00:22:57,300 Daar is 'n persent d. 482 00:22:57,300 --> 00:22:58,551 En dan agteroorskuinsstreep N is daar. 483 00:22:58,551 --> 00:23:00,883 Ons het sien wat voor, selfs al het ek nie noem dit. 484 00:23:00,883 --> 00:23:01,886 Dan is daar 'n komma. 485 00:23:01,886 --> 00:23:03,010 En dan is daar 'n toonbank. 486 00:23:03,010 --> 00:23:05,010 >> Maar ons sal sien in net 'n oomblik dat dit net 487 00:23:05,010 --> 00:23:09,080 'n standaard manier om te sê 'n gedrukte "Desimale getal," quote, unquote, 488 00:23:09,080 --> 00:23:10,500 sommige desimale getal. 489 00:23:10,500 --> 00:23:13,370 Maar ek gaan om jou te vertel later wat dit desimale getal is. 490 00:23:13,370 --> 00:23:16,835 So die feit dat daar 'n komma in hierdie lyn gesegde printf, 491 00:23:16,835 --> 00:23:18,710 beteken gaan voort en druk sommige desimale getal. 492 00:23:18,710 --> 00:23:23,110 O ja, en by the way, is die getal wat die waarde van hierdie veranderlike is. 493 00:23:23,110 --> 00:23:25,880 En so gaan dit meer te maak duidelik is, sal ons 'n voorbeeld te sien 494 00:23:25,880 --> 00:23:30,930 kort voor lank met presies printf in die konteks van die werklike C-programme. 495 00:23:30,930 --> 00:23:33,472 >> Nou net om te draai 'n paar van hierdie boustene. 496 00:23:33,472 --> 00:23:36,680 Boolse uitdrukkings, kan jy nie ' geleentheid om dit te gebruik in jou program 497 00:23:36,680 --> 00:23:39,450 maar jy kan baie goed, veral as die gebruik voorwaardes. 498 00:23:39,450 --> 00:23:43,460 En so hierdie twee voorbeelde uit Krap beteken as x is minder as y, 499 00:23:43,460 --> 00:23:48,770 of as x is minder as y en y is minder as Z, hoe kan ons vertaal dit? 500 00:23:48,770 --> 00:23:50,810 >> Wel, in C is dit net gaan lyk soos hierdie. 501 00:23:50,810 --> 00:23:55,300 'N bietjie kripties, meer hakies, 'n paar vreemde-karakters, maar fundamenteel 502 00:23:55,300 --> 00:23:59,160 Die idees is so eenvoudig soos dit is in die legkaart stuk wêreld. 503 00:23:59,160 --> 00:24:02,690 Ons is eenvoudig te keur as iets minder is as iets anders. 504 00:24:02,690 --> 00:24:03,910 >> Hoe oor die toestande? 505 00:24:03,910 --> 00:24:09,710 In 'n neutedop in Engels, wat beteken hierdie stuk van Scratch-kode sal jy sê nie? 506 00:24:09,710 --> 00:24:11,050 >> GEHOOR: Vergelyk twee getalle. 507 00:24:11,050 --> 00:24:13,760 >> David J. Malan vergelyk twee getalle, en as x is minder as y 508 00:24:13,760 --> 00:24:14,860 sê dit soveel. 509 00:24:14,860 --> 00:24:18,080 As x is groter as y dit sê soveel, anders 510 00:24:18,080 --> 00:24:20,740 as x gelyk aan y sê dit soveel. 511 00:24:20,740 --> 00:24:22,180 Nou waar het x en y vandaan? 512 00:24:22,180 --> 00:24:22,680 Wie weet. 513 00:24:22,680 --> 00:24:25,380 Hierdie stuk van Scratch kode is uit konteks. 514 00:24:25,380 --> 00:24:29,050 Maar wat ons nou wil doen, is om te vertaal hierdie vir net 'n oomblik om te sien. 515 00:24:29,050 --> 00:24:31,660 >> So as jy gemaklik hierdie week in Probleem Stel 516 00:24:31,660 --> 00:24:34,190 0 speel in hierdie wêreld aan die linkerkant, besef 517 00:24:34,190 --> 00:24:36,940 dat die idees is nie verander hierdie week of volgende of buite. 518 00:24:36,940 --> 00:24:38,690 Ons is net gaan om te begin skryf dinge 519 00:24:38,690 --> 00:24:41,240 in 'n ander manier met ons sleutelbord in plaas van ons muis. 520 00:24:41,240 --> 00:24:44,577 >> So as x is minder as y, en daar is 'n paar hakies daar, 521 00:24:44,577 --> 00:24:47,160 dan is daar 'n paar krulhakies weer soort van omsluit dit 522 00:24:47,160 --> 00:24:48,970 net soos die geel stukke van die legkaart te doen. 523 00:24:48,970 --> 00:24:53,000 En ek gaan printf x minder as y en so meer. 524 00:24:53,000 --> 00:24:56,540 >> Wat is lekker oor C, as jy hier kan sien, 525 00:24:56,540 --> 00:25:00,480 is dat jy nie hierdie nes kry nie, nes, nes dit is noodwendig 526 00:25:00,480 --> 00:25:02,220 gaan jou kode te stoot aan die regterkant. 527 00:25:02,220 --> 00:25:04,990 Jy kan plaas alles besetting netjies soos hierdie. 528 00:25:04,990 --> 00:25:08,960 Maar dit is net 'n estetiese detail sal ons weer sien voor lank. 529 00:25:08,960 --> 00:25:09,660 >> Alle regte. 530 00:25:09,660 --> 00:25:13,290 So dit bring ons terug na hierdie kriptiese soek program. 531 00:25:13,290 --> 00:25:15,180 Kom ons eintlik 'n paar kode skryf. 532 00:25:15,180 --> 00:25:16,830 Nou hoe gaan jy oor die skryf van kode? 533 00:25:16,830 --> 00:25:21,310 Al hierdie jaar wat jy besit 'n Mac of PC, lessenaar of laptop, 534 00:25:21,310 --> 00:25:24,520 jy het eintlik gehad het die vermoë om te begin skryf programmeringskode. 535 00:25:24,520 --> 00:25:27,050 Maar jy waarskynlik mis 'n spesiale tipe van die program. 536 00:25:27,050 --> 00:25:28,470 Jy kan seker skryf kode. 537 00:25:28,470 --> 00:25:30,740 Maar jy kan nie noodwendig nie, uit die boks, 538 00:25:30,740 --> 00:25:34,210 omskep daardie bron-kode in voorwerp-kode, 0e en 1e 539 00:25:34,210 --> 00:25:35,619 sonder wat op jou rekenaar? 540 00:25:35,619 --> 00:25:36,410 Publiek: samesteller. 541 00:25:36,410 --> 00:25:37,630 David J. Malan So 'n samesteller, reg. 542 00:25:37,630 --> 00:25:39,730 Nou die meeste van julle seker besit nie 'n vertaler, 543 00:25:39,730 --> 00:25:41,259 het nog nooit 'n samesteller afgelaai. 544 00:25:41,259 --> 00:25:44,300 Maar jy sal sien dat jy dit kan aflaai soos die meeste enige ander stuk sagteware. 545 00:25:44,300 --> 00:25:47,470 In die wêreld van die Mac OS, kan jy aflaai of reeds afgelaai 546 00:25:47,470 --> 00:25:50,437 iets genoem Xcode of GCC of klang. 547 00:25:50,437 --> 00:25:52,270 As jy kom uit die Windows wêreld jy dalk 548 00:25:52,270 --> 00:25:56,190 Visuele Studio afgelaai, Visual Basic, omgewings soos dit. 549 00:25:56,190 --> 00:25:59,200 Daar is dosyne van opstellers hierdie dae wat jy kan gebruik. 550 00:25:59,200 --> 00:26:01,940 Maar die kort van dit hier is dat dit 'n pyn wees 551 00:26:01,940 --> 00:26:04,480 en eerlik, 'n tegnologiese nagmerrie vir honderde 552 00:26:04,480 --> 00:26:07,680 van mense met verskillende rekenaar konfigurasies aan alle 553 00:26:07,680 --> 00:26:09,800 instel om hul masjiene in presies dieselfde manier 554 00:26:09,800 --> 00:26:11,700 sodat ons almal kan wees op dieselfde bladsy. 555 00:26:11,700 --> 00:26:15,240 >> So wat ons, in plaas daarvan, doen in CS50 is ons gee jou 556 00:26:15,240 --> 00:26:18,349 'n standaard-omgewing, 'n Linux omgewing wat 557 00:26:18,349 --> 00:26:20,140 gaan 'n bietjie om te kyk iets soos hierdie. 558 00:26:20,140 --> 00:26:22,980 Jy sal meer van hierdie in die sien Probleem Stel 1 spesifikasie wat 559 00:26:22,980 --> 00:26:25,330 aanlyn gaan hierdie Vrydagaand. 560 00:26:25,330 --> 00:26:28,360 >> En wat dit beteken is dat jy voortaan 561 00:26:28,360 --> 00:26:32,060 gaan in staat wees om te aflaai en 'n program installeer 562 00:26:32,060 --> 00:26:33,650 genoem die CS50 toestel. 563 00:26:33,650 --> 00:26:36,275 En jy gaan om af te laai en 'n ander program genaamd installeer 564 00:26:36,275 --> 00:26:40,300 'n hypervisor, wat net 'n fancy manier om dit te. 565 00:26:40,300 --> 00:26:44,600 Of jy 'n Mac of PC of 'n Linux rekenaar of 'n Solaris rekenaar, 566 00:26:44,600 --> 00:26:46,830 of wat ook al gek bedryfstelsel stelsel jy hardloop, 567 00:26:46,830 --> 00:26:49,820 jy gaan 'n program af te laai genoem die hypervisor wat 568 00:26:49,820 --> 00:26:53,350 gaan die CS50 te hardloop Toestel op jou rekenaar 569 00:26:53,350 --> 00:26:55,430 maak nie saak wat jou bedryfstelsel is. 570 00:26:55,430 --> 00:27:00,640 'N hypervisor in ander woorde vat ons dinge te ongeag taal, 571 00:27:00,640 --> 00:27:03,850 watter instruksies om jou eie rekenaar verstaan. 572 00:27:03,850 --> 00:27:04,962 >> So dit is 'n lae. 573 00:27:04,962 --> 00:27:06,920 En weer, hierdie is 'n soort tematiese in rekenaar 574 00:27:06,920 --> 00:27:08,722 wetenskap, die gebou op die top van die dinge. 575 00:27:08,722 --> 00:27:09,680 Jy kan hê Windows. 576 00:27:09,680 --> 00:27:10,710 Jy kan hê Mac OS. 577 00:27:10,710 --> 00:27:12,960 Maar begin volgende week is jy gaan afgelaai 578 00:27:12,960 --> 00:27:14,980 'n gratis stukkie sagteware genoem die hypervisor. 579 00:27:14,980 --> 00:27:17,800 Jy het 'n stuk afgelaai gaan sagteware het die CS50 toestel. 580 00:27:17,800 --> 00:27:21,050 >> Dit gaan om te hardloop in die hypervisor, wat gaan om te loop op jou rekenaar. 581 00:27:21,050 --> 00:27:23,030 En die eindresultaat is dat ons almal sal 582 00:27:23,030 --> 00:27:26,220 het 'n eenvoudige venster soos dit op jou Mac of PC 583 00:27:26,220 --> 00:27:30,160 Dit gee vir ons die illusie van alle loop dieselfde bedryfstelsel, 584 00:27:30,160 --> 00:27:32,800 sonder enige ander impak op jou rekenaar. 585 00:27:32,800 --> 00:27:34,870 En jy kan die volle screen dit en wese optree 586 00:27:34,870 --> 00:27:37,550 asof jy met 'n bedryfstelsel Linux genoem, 587 00:27:37,550 --> 00:27:40,270 en dit is wat die CS50 Toestel is gebaseer op. 588 00:27:40,270 --> 00:27:42,930 >> So laat ons eintlik gebruik hierdie nou 'n program te skryf. 589 00:27:42,930 --> 00:27:45,450 Jy kan 'n program te skryf Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Jy kan 'n program te skryf gebruik Text Editor, of Notepad, 591 00:27:48,160 --> 00:27:51,880 of WordPad, of pretty much enige woord verwerking program wat jy al ooit gebruik het. 592 00:27:51,880 --> 00:27:55,174 Maar die werklikheid is dat jy nie gebruik regtig enige van die programme. 593 00:27:55,174 --> 00:27:57,840 Jy moet beslis nie gebruik iets soos Microsoft Word, wat 594 00:27:57,840 --> 00:28:01,120 het vet gesig staar en kursief, en groter fonts en kleiner fonts, 595 00:28:01,120 --> 00:28:03,560 omdat die rekenaar nie omgee oor enige van daardie. 596 00:28:03,560 --> 00:28:05,600 Al die rekenaar gaan omgee is 597 00:28:05,600 --> 00:28:09,040 Engels soos instruksies in C. 598 00:28:09,040 --> 00:28:12,050 >> So, wat sal ons in doen van die CS50 toestel 599 00:28:12,050 --> 00:28:14,290 is 'n program gebruik vrylik beskikbaar is nie, en dit is 600 00:28:14,290 --> 00:28:17,360 pre-geïnstalleer in hierdie toestel, genaamd gedit. 601 00:28:17,360 --> 00:28:22,280 En gedit is net 'n super eenvoudige teks editor soos Mac OS's Text Editor, 602 00:28:22,280 --> 00:28:26,200 soos Windows Notepad wat gaan kyk 'n bietjie iets soos hierdie. 603 00:28:26,200 --> 00:28:28,910 >> So laat ons eintlik nie kyk na skyfies van hierdie. 604 00:28:28,910 --> 00:28:32,580 Maar laat ons eintlik gaan in die omgewing self. 605 00:28:32,580 --> 00:28:36,090 Ek gaan om voort te gaan en meld in hierdie ander venster 606 00:28:36,090 --> 00:28:40,910 om my CS50 toestel, wat ek pre-geïnstalleer op my laptop hier. 607 00:28:40,910 --> 00:28:43,771 >> Let daarop dat, soos Windows en Mac OS, is dit 'n paar spyskaarte. 608 00:28:43,771 --> 00:28:45,520 Soos Windows dit sit dit af daar plaas 609 00:28:45,520 --> 00:28:47,020 Mac OS, wat dit stel daar. 610 00:28:47,020 --> 00:28:48,930 Maar die werklikheid is dat dit al die soort van dieselfde. 611 00:28:48,930 --> 00:28:50,770 En hier is 'n hele n klomp van die sagteware. 612 00:28:50,770 --> 00:28:51,770 Daar is Dropbox. 613 00:28:51,770 --> 00:28:54,780 Daar is 'n hele klomp van bykomstighede, grafiese programme wat ons sal 614 00:28:54,780 --> 00:28:56,430 later gebruik in die term vir die probleem stelle. 615 00:28:56,430 --> 00:28:59,650 Daar is 'n webblaaier gebou in so dat dit 'n volwaardige rekenaar 616 00:28:59,650 --> 00:29:01,240 binnekant van 'n rekenaar. 617 00:29:01,240 --> 00:29:04,170 >> Maar ek gaan om dit te kliek linker wit ikoon hier 618 00:29:04,170 --> 00:29:05,890 wat is die ikoon vir gedit. 619 00:29:05,890 --> 00:29:09,650 En dit gaan 'n venster oop te maak wat drie panele om dit, 620 00:29:09,650 --> 00:29:12,590 'n linker een, 'n boonste een, en 'n onderste een. 621 00:29:12,590 --> 00:29:16,071 >> Nou is dit in hierdie top regte een wat Ek gaan eintlik 'n paar kode skryf. 622 00:29:16,071 --> 00:29:16,820 So laat ons dit doen ,. 623 00:29:16,820 --> 00:29:19,040 Ek gaan om te gaan na File, Save. 624 00:29:19,040 --> 00:29:22,100 En jy mag nie ooit gesien het hierdie spesifieke venster voor. 625 00:29:22,100 --> 00:29:23,620 Maar dit is soos Mac OS of Windows. 626 00:29:23,620 --> 00:29:25,490 Dit is net 'n venster met al die dopgehou 627 00:29:25,490 --> 00:29:27,290 dat ek binnekant van hierdie rekenaar. 628 00:29:27,290 --> 00:29:30,320 >> En ek gaan om te spaar die lêer as hello.c. 629 00:29:30,320 --> 00:29:32,690 En ek gaan om te gaan voort en klik op Save. 630 00:29:32,690 --> 00:29:36,364 En nou sien ek 'n blad op links bo genoem hello.c. 631 00:29:36,364 --> 00:29:38,280 So waarskynlik redelik bekende, selfs as jy het nie 632 00:29:38,280 --> 00:29:40,240 gebruik hierdie spesifieke program voor. 633 00:29:40,240 --> 00:29:44,890 >> En nou gaan ek om te tik in die redelik kriptiese volgorde van instruksies 634 00:29:44,890 --> 00:29:46,360 dat ons 'n oomblik gelede. 635 00:29:46,360 --> 00:29:49,330 Sluit, standaard I / O.h. 636 00:29:49,330 --> 00:29:50,600 Meer oor wat binnekort. 637 00:29:50,600 --> 00:29:55,670 Int belangrikste leemte, oop krullerige stut, gesluit krullerige stut. 638 00:29:55,670 --> 00:30:01,570 En dan binnekant van daar dink ek is waar ons "hallo wêreld," kommapunt. 639 00:30:01,570 --> 00:30:03,100 En nou red. 640 00:30:03,100 --> 00:30:08,780 >> So dit is 'n program wat geskryf is in C, geskryf, dus, in die bron-kode. 641 00:30:08,780 --> 00:30:10,720 Maar ek kan nie net loop hierdie program. 642 00:30:10,720 --> 00:30:13,390 Ek het soort van wil te verdubbel Klik op 'n ikoon iewers, 643 00:30:13,390 --> 00:30:16,390 maar geen ikoon bestaan ​​ander as die bron-kode lêer. 644 00:30:16,390 --> 00:30:20,359 Wat, weer, is die proses nou dat Ek moet hierdie leer uit te voer deur middel van? 645 00:30:20,359 --> 00:30:21,150 Publiek: samesteller. 646 00:30:21,150 --> 00:30:22,399 David J. Malan So 'n samesteller. 647 00:30:22,399 --> 00:30:24,890 So in verskillende rekenaars wat jy doen dit op verskillende maniere. 648 00:30:24,890 --> 00:30:27,480 Maar wat ons hier gedoen in die CS50 toestel wat 649 00:30:27,480 --> 00:30:31,260 verteenwoordiger van hoe jy doen dit op baie verskillende stelsels, 650 00:30:31,260 --> 00:30:34,036 is ek net gaan om te loop 'n opdrag genoem nie. 651 00:30:34,036 --> 00:30:35,660 En maak letterlik gaan om dit te doen. 652 00:30:35,660 --> 00:30:36,640 Maak my 'n program. 653 00:30:36,640 --> 00:30:39,060 >> So maak gaan loop 'n vertaler vir my. 654 00:30:39,060 --> 00:30:42,160 En die naam van die program Ek wil maak, is hallo. 655 00:30:42,160 --> 00:30:43,510 Nou maak is 'n program. 656 00:30:43,510 --> 00:30:47,170 En maak, is slim genoeg om te besef dat as ek sê maak hallo, 657 00:30:47,170 --> 00:30:50,980 dit gaan outomaties na 'n lêer genaamd hello.c 658 00:30:50,980 --> 00:30:53,420 net omdat dit is die manier waarop dit ingestel. 659 00:30:53,420 --> 00:31:00,300 >> So toe ek nou druk Enter hier, hierdie gek kriptiese lyn het net uitgevoer word. 660 00:31:00,300 --> 00:31:02,720 En glo my, voordat lank, binne enkele dae, 661 00:31:02,720 --> 00:31:05,590 sal jy verstaan ​​wat al van daardie nonsens beteken. 662 00:31:05,590 --> 00:31:11,150 Maar vir nou, weet net wat afgesette uitvoering van 'n samesteller. 663 00:31:11,150 --> 00:31:13,290 Met ander woorde, is dit gevind 'n samesteller op my rekenaar 664 00:31:13,290 --> 00:31:14,820 dit is pre-geïnstalleer op die CS50 toestel 665 00:31:14,820 --> 00:31:16,560 dat ons sal die hand aan jou in Probleem Stel 1. 666 00:31:16,560 --> 00:31:20,990 En dit het toe hello.c as insette, en wat blykbaar 667 00:31:20,990 --> 00:31:23,040 0e en 1e as uitset. 668 00:31:23,040 --> 00:31:29,410 >> En by verstek wat dit doen, is dit spaar diegene 0e en 1e in 'n lêer genaamd hallo. 669 00:31:29,410 --> 00:31:33,180 En alhoewel hierdie sintaksis ook kan wees vir jou nuut, net deur te sê dot 670 00:31:33,180 --> 00:31:37,110 streep hallo gaan die wees beteken deur wat ek hierdie program. 671 00:31:37,110 --> 00:31:40,360 >> Vir nou en vir ten minste 'n paar weke, byna almal van die programme 672 00:31:40,360 --> 00:31:44,230 Ons skryf gaan wees in swart en wit teks vensters. 673 00:31:44,230 --> 00:31:47,006 Geen muise, geen klik, geen vensters nie, geen ikone. 674 00:31:47,006 --> 00:31:49,630 Ons gaan dit eenvoudig te hou en fokus op die onderliggende idees 675 00:31:49,630 --> 00:31:52,490 aanvanklik voor ons kry om iets 'n hoër vlak, byvoorbeeld, 676 00:31:52,490 --> 00:31:56,410 soos die breek uit spel wat ons gepraat oor in die eerste lesing verlede week. 677 00:31:56,410 --> 00:32:00,820 >> So toe ek Tik hier, dis ekwivalent in 'n teks net omgewing 678 00:32:00,820 --> 00:32:03,272 dubbel klik op 'n ikoon genoem hallo. 679 00:32:03,272 --> 00:32:05,480 Wat verwag jy wil gebeur wanneer ek druk Enter dan? 680 00:32:05,480 --> 00:32:07,120 >> Publiek: Dit sal druk "hallo wêreld." 681 00:32:07,120 --> 00:32:10,000 >> David J. Malan Hopelik dit sal druk "hallo wêreld." 682 00:32:10,000 --> 00:32:11,370 En inderdaad is dit gedoen het. 683 00:32:11,370 --> 00:32:13,690 Nou is daar 'n paar kriptiese sintaksis hier. 684 00:32:13,690 --> 00:32:15,950 Kom ons rewind net vir 'n oomblik en kyk of ons 685 00:32:15,950 --> 00:32:19,530 kan nie begin afleidings net deur geknutsel, probeer en versuim, 686 00:32:19,530 --> 00:32:21,130 oor wat hier aangaan nie. 687 00:32:21,130 --> 00:32:23,609 Wat gebeur as ek ontslae raak van die agteroorskuinsstreep n? 688 00:32:23,609 --> 00:32:25,650 Nou sommige van julle wat nog geprogrammeer voor waarskynlik 689 00:32:25,650 --> 00:32:27,054 dadelik weet wat dit beteken. 690 00:32:27,054 --> 00:32:29,220 Maar vir dié van julle wat nog nooit geprogrammeer, 691 00:32:29,220 --> 00:32:34,052 ten minste dink aan jouself wat gaan om te verander wanneer ek tik hierdie program? 692 00:32:34,052 --> 00:32:37,010 So ek gaan om terug te gaan na my klein swart-en-wit venster, wat 693 00:32:37,010 --> 00:32:39,290 is die venster waarin Ek kan stel nie. 694 00:32:39,290 --> 00:32:41,130 Ek gaan hallo te hercompileren. 695 00:32:41,130 --> 00:32:43,520 Ons gaan om dieselfde te sien kriptiese volgorde van instruksies. 696 00:32:43,520 --> 00:32:45,719 En ek gaan dot streep te doen hallo. 697 00:32:45,719 --> 00:32:48,260 En nou het iemand, as jy wil, wat nog nooit geprogrammeer voor, 698 00:32:48,260 --> 00:32:49,770 wat dié keer anders sou wees? 699 00:32:49,770 --> 00:32:50,020 Ja. 700 00:32:50,020 --> 00:32:51,840 >> Publiek: Dit sal nie ophou druk "hallo wêreld." 701 00:32:51,840 --> 00:32:52,660 >> David J. Malan Dit gaan aan- jammer? 702 00:32:52,660 --> 00:32:54,210 >> Publiek: Dit sal nie ophou om dit te druk? 703 00:32:54,210 --> 00:32:55,810 >> David J. MALAN: Dit sal nie stop druk "hallo wêreld." 704 00:32:55,810 --> 00:32:56,560 So nie 'n slegte idee nie. 705 00:32:56,560 --> 00:32:58,633 Ander idees? 706 00:32:58,633 --> 00:32:59,132 Ja. 707 00:32:59,132 --> 00:33:00,060 >> Publiek: Fout boodskap? 708 00:33:00,060 --> 00:33:01,750 >> David J. Malan Fout boodskap, OK, kan wees. 709 00:33:01,750 --> 00:33:02,250 Wat anders? 710 00:33:02,250 --> 00:33:05,479 Publiek: Dit mag dalk druk die bracket met die kommapunt asook? 711 00:33:05,479 --> 00:33:08,270 David J. Malan dalk druk die bracket met die kommapunt as well. 712 00:33:08,270 --> 00:33:11,950 So miskien is dit agteroorskuinsstreep is dan 'n paar soort terminous wat belangrik is. 713 00:33:11,950 --> 00:33:14,860 Enige ander gedagtes? 714 00:33:14,860 --> 00:33:16,412 >> So al die goeie idees. 715 00:33:16,412 --> 00:33:18,370 En in die feit, dit gaan 'n fout boodskap te wees. 716 00:33:18,370 --> 00:33:20,400 Dit is waarskynlik die mees waarskynlike die antwoord in die algemeen te wees 717 00:33:20,400 --> 00:33:22,420 vir die volgende paar weke as ons leer om hier kode. 718 00:33:22,420 --> 00:33:27,680 >> Maar vir nou onthou dat rekenaars alleen doen wat jy vir hulle sê om te doen. 719 00:33:27,680 --> 00:33:30,400 Baie soos die belaglike grondboontjiebotter botter en jellie voorbeeld. 720 00:33:30,400 --> 00:33:33,860 Ons menslike rekenaars is net veronderstel om te doen wat jy het om dit te doen. 721 00:33:33,860 --> 00:33:36,250 So in hierdie geval, as jy nie die rekenaar vertel 722 00:33:36,250 --> 00:33:41,190 dat flikkerende wyser beweeg na die volgende lyn, dit is nie van plan om dit te doen. 723 00:33:41,190 --> 00:33:45,390 So toe ek hierdie program nou, let op die verskil. 724 00:33:45,390 --> 00:33:46,900 >> Lyk soos 'n fout. 725 00:33:46,900 --> 00:33:49,190 Dit is 'n estetiese fout, miskien. 726 00:33:49,190 --> 00:33:53,310 Maar wat is anders omtrent hierdie uitset teenoor die laaste een natuurlik? 727 00:33:53,310 --> 00:33:53,810 Ja. 728 00:33:53,810 --> 00:33:54,920 >> Publiek: Dit het nie 'n nuwe reël. 729 00:33:54,920 --> 00:33:56,586 >> David J. Malan Dit het nie 'n nuwe reël. 730 00:33:56,586 --> 00:33:58,740 Nou die van julle wat het miskien gemaak webblaaie 731 00:33:58,740 --> 00:34:01,910 voor, kan jy weet van die BR tag of die paragraaf tag, 732 00:34:01,910 --> 00:34:03,120 baie soortgelyk in die gees. 733 00:34:03,120 --> 00:34:06,680 'N webblaaier sal jou ignoreer tot vertel dit presies wat om te doen nie. 734 00:34:06,680 --> 00:34:10,020 Net so is 'n taal soos C slegs gaan om te doen wat jy vertel om dit te doen. 735 00:34:10,020 --> 00:34:12,730 >> So die rede dat al hierdie voorbeelde, 736 00:34:12,730 --> 00:34:15,350 Tot dusver het soort terloops het hierdie agteroorskuinsstreep 737 00:34:15,350 --> 00:34:18,560 daar, dit is die middel deur wat jy jouself uitdruk 738 00:34:18,560 --> 00:34:21,380 as 'n nuwe lyn karakter, om so te praat. 739 00:34:21,380 --> 00:34:26,219 En jy kan soort van verstaan, miskien, dat hierdie soort van dom sou lyk 740 00:34:26,219 --> 00:34:27,070 Indien niks anders nie. 741 00:34:27,070 --> 00:34:29,150 As ek wou 'n nuwe lyn, net slaan Tik en dan soort 742 00:34:29,150 --> 00:34:32,219 van butchering die kode soos dit behoort nie regtig vryf jy die regte manier. 743 00:34:32,219 --> 00:34:33,830 En selfs as jy dit nie doen nie regtig omgee op hierdie punt, 744 00:34:33,830 --> 00:34:35,830 sal jy besef dat dit is nie 'n besonder 745 00:34:35,830 --> 00:34:37,870 goeie soek stukkie van die kode. 746 00:34:37,870 --> 00:34:39,969 >> En ja, wat die wêreld besluit jaar gelede is 747 00:34:39,969 --> 00:34:43,420 dat wanneer jy die te sit wyser op 'n nuwe reël uitdruklik 748 00:34:43,420 --> 00:34:46,332 jy moet uitdruklik sê nuwe lyn, agteroorskuinsstreep n. 749 00:34:46,332 --> 00:34:48,040 En daar is 'n paar ander simbole soos dit. 750 00:34:48,040 --> 00:34:50,719 Maar vir nou sal ons net fokus op agteroorskuinsstreep n. 751 00:34:50,719 --> 00:34:53,790 >> Nou laat maak die program 'n bietjie meer interessant. 752 00:34:53,790 --> 00:34:59,200 Ek gaan om voort te gaan en hierdie tyd oopmaak om 'n nuwe lêer. 753 00:34:59,200 --> 00:35:02,520 Ek gaan dit as hallo-1.c te red. 754 00:35:02,520 --> 00:35:05,540 En net vir die skop, ek gaan om te gaan steek dit in my Dropbox gids. 755 00:35:05,540 --> 00:35:09,030 >> As jy sal sien in die CS50 dokumentasie vir die toestel, 756 00:35:09,030 --> 00:35:11,210 later hierdie week vir Probleem Stel 1, sal ons moedig 757 00:35:11,210 --> 00:35:13,230 jy Dropbox te gebruik of sommige gelykstaande diens, 758 00:35:13,230 --> 00:35:15,430 want dan al jou kode se gaan gerugsteun word outomaties. 759 00:35:15,430 --> 00:35:17,830 En so dit is hoekom ek het in hierdie gids hier. 760 00:35:17,830 --> 00:35:20,230 >> En nou gaan ek 'n te skryf effens anders program. 761 00:35:20,230 --> 00:35:24,740 Sluit, standaard I / O.h, int main nietig. 762 00:35:24,740 --> 00:35:29,660 En dan in hier printf, hallo wêreld, dit is presies dieselfde as voorheen. 763 00:35:29,660 --> 00:35:32,450 >> Maar nou wil ek iets te druk dit is 'n bietjie anders. 764 00:35:32,450 --> 00:35:34,800 Ek wil uit te druk, sê, "Hallo, David." 765 00:35:34,800 --> 00:35:37,590 Alle reg, so duidelik, dit moet hopelik 766 00:35:37,590 --> 00:35:40,360 die geval dat as ek heropstel hierdie program, tik dit, 767 00:35:40,360 --> 00:35:41,840 dit gaan om te sê "hallo, David." 768 00:35:41,840 --> 00:35:45,160 >> Maar wat as ek wil in te voer hierdie soort van veranderlike, 769 00:35:45,160 --> 00:35:49,240 die idee van 'n houer wat gaan te stoor D-'n-v-i-d en nie moeilik kode dit 770 00:35:49,240 --> 00:35:50,600 in my program. 771 00:35:50,600 --> 00:35:53,430 Wel, wat as ek begin om iets te doen soos hierdie? 772 00:35:53,430 --> 00:35:57,120 >> String s, so dit is 'n veranderlike. 773 00:35:57,120 --> 00:36:00,250 As jy wil 'n string, a.k.a. 'n woord of 'n frase. 774 00:36:00,250 --> 00:36:03,485 'N volgorde van die karakters is wat ons in ontwikkeling noem 'n string. 775 00:36:03,485 --> 00:36:06,610 Ons is net gaan om te generies oproep dit is nie, want dit is 'n mooi eenvoudige naam. 776 00:36:06,610 --> 00:36:08,010 Maar ek kan dit noem nie. 777 00:36:08,010 --> 00:36:12,920 >> Ek gaan string s gelykes te sê quote unquote, "David," kommapunt. 778 00:36:12,920 --> 00:36:18,330 En nou wil ek voeg D-'n-v-i-d in wat ek druk. 779 00:36:18,330 --> 00:36:23,720 En voor ons het 'n teaser op die skerm van 'n paar spesiale sintaksis 780 00:36:23,720 --> 00:36:26,050 wat toegelaat om ons te plaasvervanger in 'n waarde. 781 00:36:26,050 --> 00:36:29,250 Wat was die spesiale simbool 'n paar skyfies gelede? 782 00:36:29,250 --> 00:36:30,040 >> So persent. 783 00:36:30,040 --> 00:36:33,830 Teen die tyd was dit persent d vir desimaal nommer. 784 00:36:33,830 --> 00:36:35,850 Dit maak nie regtig lyk relevant hier. 785 00:36:35,850 --> 00:36:38,650 Blyk daar se nog persent simbool, 786 00:36:38,650 --> 00:36:42,810 wat persent s, wat staan vir 'n plekhouer vir 'n string. 787 00:36:42,810 --> 00:36:49,350 >> So nou, baie eenvoudig, ek is gaan om te gaan maak hallo-1, 788 00:36:49,350 --> 00:36:54,210 omdat hierdie lêer genoem hallo-1.c, en druk Enter. 789 00:36:54,210 --> 00:36:56,230 En ek geskroef. 790 00:36:56,230 --> 00:36:57,394 Wat gaan aan? 791 00:36:57,394 --> 00:37:00,560 Wel, hier is waar ons moet begin om te besef dat ons in hierdie opdrag 792 00:37:00,560 --> 00:37:02,810 line omgewing, hierdie Slegs teks omgewing. 793 00:37:02,810 --> 00:37:06,114 Daar is geen klik op ikone soos dopgehou nou. 794 00:37:06,114 --> 00:37:07,280 En dink terug 'n oomblik gelede. 795 00:37:07,280 --> 00:37:10,740 In watter gids het ek sê Ek is deur my kode? 796 00:37:10,740 --> 00:37:11,657 So het die Dropbox gids. 797 00:37:11,657 --> 00:37:12,989 Kon niks genoem het. 798 00:37:12,989 --> 00:37:14,530 Maar dit gebeur genoem te word Dropbox. 799 00:37:14,530 --> 00:37:18,380 So ek een of ander manier moet dubbel kliek op dat Dropbox gids in orde te kry 800 00:37:18,380 --> 00:37:21,657 in dit en kry my kode genoem hallo-1.c. 801 00:37:21,657 --> 00:37:24,490 In werklikheid, laat my voort te gaan en die minimum te beperk hierdie venster vir net 'n oomblik. 802 00:37:24,490 --> 00:37:27,560 Net soos Windows en Mac OS, daar is dopgehou in Linux. 803 00:37:27,560 --> 00:37:29,410 Daar is dopgehou in die CS50 toestel. 804 00:37:29,410 --> 00:37:32,380 Dit is net reg nou is ons beperk onsself na hierdie teks omgewing. 805 00:37:32,380 --> 00:37:34,700 >> Maar as ek dubbel kliek op Dropbox, let daar 806 00:37:34,700 --> 00:37:37,210 is die lêer wat ek wil op te stel. 807 00:37:37,210 --> 00:37:41,430 Maar ek moet dit swart en wit terminale venster, om so te praat. 808 00:37:41,430 --> 00:37:45,750 Maar ek nodig het, dus om te beweeg in die gids of gids. 809 00:37:45,750 --> 00:37:48,290 So effens arcane, maar jy kry gebruik om dit ook. 810 00:37:48,290 --> 00:37:50,430 >> In die wêreld van Linux, wat weer die bedryfstelsel 811 00:37:50,430 --> 00:37:54,860 stelsel wat ons loop binnekant van die CS50 Toestel, daar is 'n opdrag genoem CD. 812 00:37:54,860 --> 00:37:58,310 Wat beteken dat ek kan CD, ruimte, Dropbox doen. 813 00:37:58,310 --> 00:37:59,900 CD, verander die gids. 814 00:37:59,900 --> 00:38:00,400 Right. 815 00:38:00,400 --> 00:38:02,890 Terug in die dag wanneer mense was uitvind rekenaars en bedryf 816 00:38:02,890 --> 00:38:05,806 stelsels soos hierdie, hulle wou tik die minste toetsaanslagen moontlik. 817 00:38:05,806 --> 00:38:08,760 So die maklikste manier om te sê verander die gids was CD. 818 00:38:08,760 --> 00:38:13,910 >> So as ek getref CD, ruimte Dropbox, sien wat hier verander. 819 00:38:13,910 --> 00:38:16,480 Binnekant van hakies die toestel is 'n soort 820 00:38:16,480 --> 00:38:19,360 van humoring my en herinner my waar ek is. 821 00:38:19,360 --> 00:38:21,480 So het die oop gids is Dropbox. 822 00:38:21,480 --> 00:38:24,950 As ek tik nou ls vir lys, weer bondige, 823 00:38:24,950 --> 00:38:27,540 want die mense wou nie tik terug in die dag l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 So het hulle in plaas daarvan het dit LS. 825 00:38:29,300 --> 00:38:30,110 >> Betree. 826 00:38:30,110 --> 00:38:35,740 Let sien ek twee dinge, hallo-1.c, en dan is dit kriptiese ding, bron 1m. 827 00:38:35,740 --> 00:38:38,310 Dit is net my manier om te sê bron-kode vir week 1 Maandag. 828 00:38:38,310 --> 00:38:42,020 Dit is 'n gids wat ek afgelaai van CS50 se webwerf wat ek gemaak het vroeër vandag 829 00:38:42,020 --> 00:38:43,990 en net sit dit in die toestel in advance. 830 00:38:43,990 --> 00:38:47,550 >> Maar vir nou die enigste ding wat ons omgee is die maak van hierdie program. 831 00:38:47,550 --> 00:38:50,440 So wanneer ek tik maak hallo-1, Tik. 832 00:38:50,440 --> 00:38:51,320 Damn dit. 833 00:38:51,320 --> 00:38:53,060 Iets het skeefgeloop. 834 00:38:53,060 --> 00:38:54,580 So laat se terg hierdie uitmekaar. 835 00:38:54,580 --> 00:38:58,489 En dit is ongelukkig waar dinge 'n bietjie stresvol op die eerste, 836 00:38:58,489 --> 00:39:00,280 ten minste as jy het nooit geprogrammeer voor. 837 00:39:00,280 --> 00:39:00,980 >> My god. 838 00:39:00,980 --> 00:39:04,990 Ek het 'n twee lyn program en Ek het vier lyne van foute. 839 00:39:04,990 --> 00:39:07,180 So, wat gaan hier aan. 840 00:39:07,180 --> 00:39:11,370 In die eerste plek altyd terug blaai en vind die eerste fout boodskap, 841 00:39:11,370 --> 00:39:15,730 want dikwels opstellers net deurmekaar raak deur wat ek en jy doen. 842 00:39:15,730 --> 00:39:17,000 Opstellers is redelik dom. 843 00:39:17,000 --> 00:39:18,360 Hulle sal net doen wat jy hulle vertel om te doen. 844 00:39:18,360 --> 00:39:21,484 En as jy hulle verwar, hulle is net gaan soort van gooi hul hande 845 00:39:21,484 --> 00:39:25,010 en miskien gooi meer fout boodskappe as eintlik relevant. 846 00:39:25,010 --> 00:39:26,380 >> So laat ons kyk na die eerste. 847 00:39:26,380 --> 00:39:27,540 Super kriptiese by die eerste. 848 00:39:27,540 --> 00:39:31,050 Maar kennisgewing, hier is die naam van die lêer waarin ek verfrommeld blykbaar. 849 00:39:31,050 --> 00:39:36,570 Kolon 5, kolon 5 beteken net op lyn 5 op die vyfde karakter. 850 00:39:36,570 --> 00:39:39,760 So vyfde kolom van die karakters, as jy wil, fout. 851 00:39:39,760 --> 00:39:41,870 Gebruik van swart identifikasie string. 852 00:39:41,870 --> 00:39:43,120 Het jy bedoel standaard n? 853 00:39:43,120 --> 00:39:44,850 >> Nee, ek bedoel string. 854 00:39:44,850 --> 00:39:47,640 En dan is dit soort kopieer en plak 855 00:39:47,640 --> 00:39:50,700 wat ek getik regtig trek my aandag aan waar ek geskroef. 856 00:39:50,700 --> 00:39:54,260 So vir een of ander rede C, of ten minste die samesteller 857 00:39:54,260 --> 00:39:56,470 verstaan ​​nie die woord string. 858 00:39:56,470 --> 00:39:57,890 En dit is omdat ons dit op. 859 00:39:57,890 --> 00:40:01,440 So string bestaan ​​nie in C. Wat CS50 doen, 860 00:40:01,440 --> 00:40:03,380 vir die eerste paar weke net van die klas, 861 00:40:03,380 --> 00:40:05,700 is ons 'n mate van opleiding wiele, om so te praat. 862 00:40:05,700 --> 00:40:11,160 En ons het hierdie opleiding wiele binnekant van 'n spesiale lêer genaamd CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> So dit is die tweede van twee lêer name wat blykbaar eindig in dot h. 864 00:40:14,970 --> 00:40:16,300 Kom ons rewind. 865 00:40:16,300 --> 00:40:19,360 Printf is 'n verklaring of funksie wat blykbaar druk iets 866 00:40:19,360 --> 00:40:20,580 aan die skerm. 867 00:40:20,580 --> 00:40:23,470 Maar jy het my nie sien implementeer printf, reg. 868 00:40:23,470 --> 00:40:26,360 Iemand jaar gelede geïmplementeer printf. 869 00:40:26,360 --> 00:40:30,420 In watter lêer sal jou verbintenis hy of sy die implementering 870 00:40:30,420 --> 00:40:34,270 vir printf, die kode vir printf? 871 00:40:34,270 --> 00:40:36,860 >> In 'n lêer genaamd standaard I / O.h. 872 00:40:36,860 --> 00:40:39,930 In werklikheid, is dit waarskynlik in twee lêers, standaard I / O.h, 873 00:40:39,930 --> 00:40:42,650 wat staan ​​vir kop lêer, en standaard I / O.c, 874 00:40:42,650 --> 00:40:44,060 wat staan ​​vir C bron-kode. 875 00:40:44,060 --> 00:40:48,220 Sodat hy of sy 'n paar jaar gelede plons die kode wat hulle geskryf het in daardie lêer 876 00:40:48,220 --> 00:40:51,240 sodat mense soos ons jaar later kan dit sluit, 877 00:40:51,240 --> 00:40:53,040 so te sê, in ons eie programme. 878 00:40:53,040 --> 00:40:56,320 >> En inderdaad, dit is wat die pond teken gevolg deur die woord sluit nie. 879 00:40:56,320 --> 00:41:00,250 Dit lyk op die plaaslike hardeskyf, bevind dat die lêer genaamd standaard I / O.h, 880 00:41:00,250 --> 00:41:03,840 en dan effektief afskrifte en plak dit in my eie lêer. 881 00:41:03,840 --> 00:41:07,210 So nou is my program weet hoe om te druk op die skerm. 882 00:41:07,210 --> 00:41:11,120 >> So deur daardie logika, waar word string gedefinieer? 883 00:41:11,120 --> 00:41:12,260 >> Publiek: 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 En inderdaad, dit is wat ons, die kern personeel, gedoen het nie. 886 00:41:15,540 --> 00:41:19,590 Ons het uitgevind 'n paar data tipes, om so te praat, soos 'n string, 887 00:41:19,590 --> 00:41:22,370 bykomend tot dié wat jy kry vir gratis, soos 'n int. 888 00:41:22,370 --> 00:41:26,010 En ons sal ander sien soos 'n kar vir 'n karakter en 'n paar meer. 889 00:41:26,010 --> 00:41:30,670 Binnekant van CS50.h blykbaar is ten minste 'n melding gemaak van tou. 890 00:41:30,670 --> 00:41:34,980 >> So nou laat my voort te gaan en tik make hallo-1. 891 00:41:34,980 --> 00:41:37,100 Ek sal vergroot weer en kruis my vingers. 892 00:41:37,100 --> 00:41:41,370 Nou deurdat hulle een gemaak verander ek vaste die meeste dinge. 893 00:41:41,370 --> 00:41:42,100 Maar damn dit. 894 00:41:42,100 --> 00:41:44,290 Meer Procenten as data argumente. 895 00:41:44,290 --> 00:41:45,980 Wat het ek verkeerd doen hierdie tyd? 896 00:41:45,980 --> 00:41:47,420 >> So dit is nog redelik kriptiese. 897 00:41:47,420 --> 00:41:51,560 Maar hierdie fout is op reël 7 en karakter 21. 898 00:41:51,560 --> 00:41:53,880 So laat ons gaan kyk hier. 899 00:41:53,880 --> 00:41:55,350 Dit is 'n bietjie subtiel. 900 00:41:55,350 --> 00:41:59,167 Maar as jy dink oor wat die fundamentele idees hier is, 901 00:41:59,167 --> 00:42:00,500 miskien kan ons hierdie terg uitmekaar. 902 00:42:00,500 --> 00:42:02,300 >> So printf is die naam van die funksie. 903 00:42:02,300 --> 00:42:04,960 Hakies, tot dusver, is net soos wat ons het rondom 904 00:42:04,960 --> 00:42:07,005 die dinge wat ons verby as insette tot 'n funksie. 905 00:42:07,005 --> 00:42:08,921 Alle reg, net 'n arbitrêre menslike konvensie. 906 00:42:08,921 --> 00:42:09,919 Gebruik hakies. 907 00:42:09,919 --> 00:42:12,460 Binnekant van die hakies ons het om dubbele aanhalingstekens, 908 00:42:12,460 --> 00:42:14,810 en dan 'n string soos "hallo wêreld." 909 00:42:14,810 --> 00:42:18,160 >> Maar in daardie vroeër byvoorbeeld baie kortliks het ons na met nuuts af. 910 00:42:18,160 --> 00:42:22,590 En ons het die persent d, wat anders was binnekant van die hakies 911 00:42:22,590 --> 00:42:23,730 dat ek uitgeroep mondelings? 912 00:42:23,730 --> 00:42:24,230 Ja. 913 00:42:24,230 --> 00:42:28,166 >> Publiek: So dit is wat jy neem [Onhoorbaar] vanuit [onhoorbaar] 914 00:42:28,166 --> 00:42:30,200 wat hierdie [onhoorbaar]? 915 00:42:30,200 --> 00:42:31,200 David J. Malan Presies. 916 00:42:31,200 --> 00:42:32,700 So het ons die persent d. 917 00:42:32,700 --> 00:42:36,620 Maar dan moet ons het noue quote, komma, toonbank. 918 00:42:36,620 --> 00:42:37,120 Right. 919 00:42:37,120 --> 00:42:40,680 Ons gespesifiseerde wat ons wil om te doen as die plekhouer. 920 00:42:40,680 --> 00:42:44,621 So wat ek gaan om hier te doen, is om komma, doen wat jy wil hê ek moet sit? 921 00:42:44,621 --> 00:42:45,120 Publiek: S. 922 00:42:45,120 --> 00:42:46,828 David J. Malan S, omdat s in hierdie geval 923 00:42:46,828 --> 00:42:48,700 is die naam van die stoor houer. 924 00:42:48,700 --> 00:42:50,180 Dit is die naam van die glas bak. 925 00:42:50,180 --> 00:42:53,610 Terwyl voordat dit was toonbank in daardie eenvoudige Scratch voorbeeld wat ons gekyk het. 926 00:42:53,610 --> 00:42:56,630 So nou het het twee veranderinge, laat my zoom in 927 00:42:56,630 --> 00:42:59,800 en probeer weer te stel hierdie program. 928 00:42:59,800 --> 00:43:01,596 >> Nou sien ek dat kriptiese lyn. 929 00:43:01,596 --> 00:43:03,470 Maar dit is eintlik die Naam van die samesteller. 930 00:43:03,470 --> 00:43:04,886 Klang is die naam van die samesteller. 931 00:43:04,886 --> 00:43:07,100 Maak net spaar my die hoofpyn van al 932 00:43:07,100 --> 00:43:09,830 tik dat die lang gek opdrag uit. 933 00:43:09,830 --> 00:43:14,900 So as ek nou streep dot nie hallo-1, Ek moet sien "hallo, David." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, al is, reg? 935 00:43:16,450 --> 00:43:18,158 Ons kon gedoen het dit 'n baie meer eenvoudig 936 00:43:18,158 --> 00:43:20,940 sonder om te praat oor die veranderlikes en CS50.h en al wat. 937 00:43:20,940 --> 00:43:23,080 So laat ons maak dit 'n bietjie meer interessant. 938 00:43:23,080 --> 00:43:31,010 >> Benewens CS50.h, met dinge soos string 939 00:43:31,010 --> 00:43:34,550 verklaar, die CS50 biblioteek het ook 'n paar funksies. 940 00:43:34,550 --> 00:43:38,520 So net soos jare gelede, het iemand geskryf printf en sit dit in 'n standaard I / O.h 941 00:43:38,520 --> 00:43:39,530 en 'n paar ander lêer. 942 00:43:39,530 --> 00:43:44,010 >> Ons, die CS50 personeel, het 'n funksie genoem getChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, en ons het die binnekant van 'n lêer 944 00:43:47,610 --> 00:43:49,890 genoem CS50.h en CS50.c. 945 00:43:49,890 --> 00:43:51,880 En ons het hulle binne van die CS50 toestel. 946 00:43:51,880 --> 00:43:53,880 En mense kan ook laai dit aanlyn as hulle 947 00:43:53,880 --> 00:43:55,880 wil sit hulle op hul eie rekenaars sowel. 948 00:43:55,880 --> 00:44:00,880 Wat is om te sê dat ons geskep funksies wat insette van die gebruiker. 949 00:44:00,880 --> 00:44:02,930 Ek weet nie wat al van hierdie data tipes is. 950 00:44:02,930 --> 00:44:06,490 GetInt is soort van maklik, soos kry 'n heelgetal een of ander manier van die gebruiker. 951 00:44:06,490 --> 00:44:09,980 En GetString is waarskynlik soos get 'n woord of 'n sin van die gebruiker. 952 00:44:09,980 --> 00:44:11,770 >> So laat ons fokus op dit. 953 00:44:11,770 --> 00:44:14,710 En ek gaan om terug te gaan na die apparaat en ek gaan om voort te gaan 954 00:44:14,710 --> 00:44:20,790 en stoor die, kom ons noem dit hallo-2.C as my tweede weergawe. 955 00:44:20,790 --> 00:44:23,030 En laat ons 'n paar veranderinge. 956 00:44:23,030 --> 00:44:25,800 >> Hierdie keer in plaas van hard kodering David, wat 957 00:44:25,800 --> 00:44:29,120 maak 'n ongelooflike strook maar underwhelming program, 958 00:44:29,120 --> 00:44:32,640 Wat gebeur as ek in plaas doen GetString? 959 00:44:32,640 --> 00:44:35,660 Nou sien GetString het 'n oop hakies, 960 00:44:35,660 --> 00:44:38,500 geslote hakies, want dit maak nie enige insette nodig. 961 00:44:38,500 --> 00:44:40,850 Dit is net gaan om te gaan kry 'n string van die gebruiker. 962 00:44:40,850 --> 00:44:42,460 >> En nou 'n woord oor die ander sintaksis. 963 00:44:42,460 --> 00:44:45,439 Kommapunte einde net 'n reël van die kode. 964 00:44:45,439 --> 00:44:46,730 Jy hoef dit nie oral. 965 00:44:46,730 --> 00:44:48,896 Maar dit beteken net ek is gedoen met hierdie lyn van kode. 966 00:44:48,896 --> 00:44:51,080 Laat my skuif na 'n ander verklaring of funksie. 967 00:44:51,080 --> 00:44:53,010 String verklaar 'n veranderlike. 968 00:44:53,010 --> 00:44:55,920 String is soos om te sê gee my 'n bak, asseblief. 969 00:44:55,920 --> 00:44:57,940 En laat ek 'n string in dit. 970 00:44:57,940 --> 00:44:59,430 >> En nou het die gelyk teken. 971 00:44:59,430 --> 00:45:03,510 Wat is die gelyke teken wese soortgelyk aan? 972 00:45:03,510 --> 00:45:04,500 >> GEHOOR: Ken. 973 00:45:04,500 --> 00:45:06,190 >> David J. Malan Ja, toeken van 'n waarde. 974 00:45:06,190 --> 00:45:09,872 So as ek, byvoorbeeld, call hierdie funksie GetString, 975 00:45:09,872 --> 00:45:12,830 en ons sal sien in 'n oomblik wat gaan die gebruiker vir 'n string te vinnig. 976 00:45:12,830 --> 00:45:17,810 Dit is soos die verhuring van my skryf dan D-'n-v-i-d op 'n stuk papier. 977 00:45:17,810 --> 00:45:21,060 En as ek sê string s gelyk GetString, 978 00:45:21,060 --> 00:45:24,140 gelyk nie regtig beteken gelyk in C-programmeertaal. 979 00:45:24,140 --> 00:45:27,880 Dit beteken toewys van die reg kant aan die linkerkant. 980 00:45:27,880 --> 00:45:29,510 >> So ek het gekry 'n string. 981 00:45:29,510 --> 00:45:32,785 En die gelyke teken beteken dit in die stoor houer genoem is. 982 00:45:32,785 --> 00:45:36,730 En dan slaag om dit uit te printf eintlik sy ding doen. 983 00:45:36,730 --> 00:45:39,790 >> So het die eindresultaat dan gaan om te kyk 'n bietjie anders. 984 00:45:39,790 --> 00:45:40,840 Kom ons maak hallo-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Óf kan werk. 987 00:45:45,260 --> 00:45:46,450 Jy volgende saam. 988 00:45:46,450 --> 00:45:47,940 Maak hallo-2 gewerk. 989 00:45:47,940 --> 00:45:52,640 Dot streep hallo-2, Tik. 990 00:45:52,640 --> 00:45:54,620 >> Dit lyk asof ek 'n oneindige te hê lus of iets. 991 00:45:54,620 --> 00:45:55,453 Niks gebeur. 992 00:45:55,453 --> 00:45:56,134 Hoekom? 993 00:45:56,134 --> 00:45:57,805 >> Publiek: Dit maak 'n oneindige lus. 994 00:45:57,805 --> 00:45:59,430 David J. MALAN: Dit is 'n oneindige lus. 995 00:45:59,430 --> 00:46:02,710 Dit is soort van wag vir my om te eintlik gee dit met 'n paar insette. 996 00:46:02,710 --> 00:46:05,800 So laat my gaan voort en tik Dawid, en druk Enter. 997 00:46:05,800 --> 00:46:07,230 En nou is dit sê "hallo, David." 998 00:46:07,230 --> 00:46:09,040 As ek loop dit weer. 999 00:46:09,040 --> 00:46:11,530 Kom ons tik in Rob, "hallo, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Nou is dit die ergste user ooit. 1001 00:46:13,900 --> 00:46:16,110 Die gebruiker is blykbaar veronderstel is om te weet wat om te doen nie. 1002 00:46:16,110 --> 00:46:17,120 Maar maak nie saak. 1003 00:46:17,120 --> 00:46:19,570 Die gebruik van hierdie dieselfde gebou blokke net soos in Scratch, 1004 00:46:19,570 --> 00:46:24,980 ons kan die probleem op te los en sê iets soos jou naam asseblief, kolon, 1005 00:46:24,980 --> 00:46:27,820 ruimte, gesluit quote, naby hakies, kommapunt. 1006 00:46:27,820 --> 00:46:30,680 So 'n baie weer dwaasheid met die sintaksis. 1007 00:46:30,680 --> 00:46:34,040 >> Maar let ek het net bygevoeg 'n legkaart stuk bo hierdie een 1008 00:46:34,040 --> 00:46:35,280 en behalwe hierdie een. 1009 00:46:35,280 --> 00:46:38,870 So nou as ek tik hierdie, hallo-2, Tik. 1010 00:46:38,870 --> 00:46:41,180 Wag 'n minuut. 1011 00:46:41,180 --> 00:46:41,830 Wat is verkeerd? 1012 00:46:41,830 --> 00:46:43,570 Dit is nie 'n tree verskillend. 1013 00:46:43,570 --> 00:46:44,200 Ja. 1014 00:46:44,200 --> 00:46:46,010 >> Publiek: Jy het nie weer uit te voer nie. 1015 00:46:46,010 --> 00:46:47,968 >> David J. Malan ek het nie loop om weer reg. 1016 00:46:47,968 --> 00:46:49,430 So ek het my bron-kode verander. 1017 00:46:49,430 --> 00:46:50,638 Maar weereens, daar is dat die vloei. 1018 00:46:50,638 --> 00:46:54,530 Bron-kode deur die opsteller gee jy 'n nuwe voorwerp kode, of 0'e en 1'e. 1019 00:46:54,530 --> 00:47:00,209 So ek moet eintlik tik make hallo-2 Tik. 1020 00:47:00,209 --> 00:47:01,750 OK, lyk iets om te gebeur. 1021 00:47:01,750 --> 00:47:04,220 Dot streep hallo-2. 1022 00:47:04,220 --> 00:47:05,390 Jou naam asseblief. 1023 00:47:05,390 --> 00:47:09,990 En nou duidelik te wees, hoekom is die wyser op dieselfde lyn? 1024 00:47:09,990 --> 00:47:10,490 Presies. 1025 00:47:10,490 --> 00:47:13,020 Ek het nie die agteroorskuinsstreep sit N hier in my kode. 1026 00:47:13,020 --> 00:47:16,110 So nou kan ek skryf iets soos Daven, Tik. 1027 00:47:16,110 --> 00:47:18,710 Ek kan dit weer uit te voer en tik iets soos Gabe, Tik, 1028 00:47:18,710 --> 00:47:22,250 en ons kry 'n ander program weer en weer en weer. 1029 00:47:22,250 --> 00:47:28,940 >> Nou uiteindelik gaan ons nodig 'n paar verskillende vermoëns te gebruik. 1030 00:47:28,940 --> 00:47:32,860 Ons moet uiteindelik 'n paar te stel voorwaardes dinge voorwaardelik doen. 1031 00:47:32,860 --> 00:47:35,550 Miskien loops, sodat ons kan doen dinge weer en weer. 1032 00:47:35,550 --> 00:47:38,220 >> Miskien sal dit lekker wees as ons ons eie funksies kan implementeer, 1033 00:47:38,220 --> 00:47:41,355 soos ons kan implementeer ons eie printf of ons eie weergawe van GetString 1034 00:47:41,355 --> 00:47:45,870 en GetFlow, want uiteindelik selfs die gebruik van hierdie opdrag lyn omgewing 1035 00:47:45,870 --> 00:47:49,780 kan ons doen om selfs die mees visueel interessante dinge. 1036 00:47:49,780 --> 00:47:51,950 >> Inderdaad ten slotte laat my dit doen. 1037 00:47:51,950 --> 00:47:54,020 Ek gaan om voort te gaan en sluit die vensters 1038 00:47:54,020 --> 00:47:57,400 en maak hierdie ikoon hier wat net 'n groter 1039 00:47:57,400 --> 00:48:00,020 weergawe van wat ingebed terminale venster. 1040 00:48:00,020 --> 00:48:02,329 So gedit het nie net die plek vir my kode, 1041 00:48:02,329 --> 00:48:05,620 maar ook 'n ingeboude in terminale venster, die swart en wit venster waar ek kan hardloop 1042 00:48:05,620 --> 00:48:06,230 beveel. 1043 00:48:06,230 --> 00:48:08,600 >> Ek het net gebeur om oop te maak 'n groter weergawe van hierdie. 1044 00:48:08,600 --> 00:48:11,170 En nou is ek gaan om te gaan na die gids wat ek reeds 1045 00:48:11,170 --> 00:48:13,150 sit vooruit op die kursus se webblad. 1046 00:48:13,150 --> 00:48:16,720 En ek gaan om voort te gaan en 'n lêer genaamd thadgavin.c oopmaak, 1047 00:48:16,720 --> 00:48:18,710 wat geskryf is deur iemand anders. 1048 00:48:18,710 --> 00:48:21,220 >> En as ons kyk na hierdie, Dit is nie die soort van die kode 1049 00:48:21,220 --> 00:48:24,370 ons sal skryf, aangesien Die doel van hierdie kode 1050 00:48:24,370 --> 00:48:28,450 was die mooiste te skryf soek kode wat hy of sy kan, 1051 00:48:28,450 --> 00:48:31,290 ongeag of 'n ander mens kan ooit 1052 00:48:31,290 --> 00:48:33,660 hierdie kode te verstaan. 1053 00:48:33,660 --> 00:48:37,050 >> Trouens, elke jaar is daar is wat genoem 'n verborge C-wedstryd, wat 1054 00:48:37,050 --> 00:48:39,570 is vir ware geeks wat skryf kode wat niemand anders kan lees, 1055 00:48:39,570 --> 00:48:42,050 maar dat iets óf werklik 'n eenvoudige of regtig ongelooflik. 1056 00:48:42,050 --> 00:48:43,890 En ons het gedink ons ​​sou sluit af met hierdie voorkoms 1057 00:48:43,890 --> 00:48:48,300 op iets wat redelik amazing jy dalk een keer vantevore gesien het. 1058 00:48:48,300 --> 00:48:52,650 Maar ons sal die einde van hierdie noot, dot streep thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Dit is dan wat wag. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Dit is dit vir CS50. 1062 00:48:58,500 --> 00:48:59,935 Ons sal jy sien op Woensdag. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Speel van musiek] 1065 00:49:10,016 --> 00:53:31,883