1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Torej to je CS50. 3 00:00:13,800 --> 00:00:18,970 In to je bil CS50 lastne Colton Ogden, več o tem, kdo je glasba, ki jo lahko 4 00:00:18,970 --> 00:00:22,820 prenesti na soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Torej, danes smo se bolj o umetnosti programiranja. 6 00:00:26,690 --> 00:00:28,980 In smo kjer smo pustili off zadnjem tednu, ki se osredotočajo 7 00:00:28,980 --> 00:00:31,660 na nič, kar je bilo to Grafični programski jezik. 8 00:00:31,660 --> 00:00:35,490 In da se stvari navzdol na nižjo raven, uporabo bolj tradicionalno programiranje 9 00:00:35,490 --> 00:00:38,420 jezik znan kot C. Vendar poti, zavedajoč 10 00:00:38,420 --> 00:00:40,730 da iste ideje, govorili prejšnji petek 11 00:00:40,730 --> 00:00:44,390 ponovil ne samo v tem jezik C, vendar v večini vsak drugi 12 00:00:44,390 --> 00:00:46,350 da gledamo na ta semester. 13 00:00:46,350 --> 00:00:50,247 >> Zato smo poklicali to stvar tu kaj zadnji čas? 14 00:00:50,247 --> 00:00:51,830 To je predstavnik izjavi. 15 00:00:51,830 --> 00:00:53,080 Zato smo to izjavo se imenuje. 16 00:00:53,080 --> 00:00:54,100 In to naredi nekaj. 17 00:00:54,100 --> 00:00:56,910 To je navodilo, da računalnik ali Scratch lahko izvrši. 18 00:00:56,910 --> 00:00:59,910 In poslej, pa tudi zagon kliče kaj takega funkcija, 19 00:00:59,910 --> 00:01:02,070 zaradi razlogov, bomo kmalu videli. 20 00:01:02,070 --> 00:01:03,681 >> Medtem smo videli stvari, kot je ta. 21 00:01:03,681 --> 00:01:05,680 In to so na splošno znano, kaj zgraditi? 22 00:01:05,680 --> 00:01:06,240 >> OBČINSTVO: Loop. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Torej zanka. 24 00:01:06,860 --> 00:01:07,943 Torej precej preprosta. 25 00:01:07,943 --> 00:01:09,470 Dobesedno ne, kaj piše. 26 00:01:09,470 --> 00:01:12,210 In v nič, če želite, da strpati več kosov sestavljanke tam, 27 00:01:12,210 --> 00:01:13,950 kos bo rasla, tako da bo. 28 00:01:13,950 --> 00:01:16,790 In bomo videli, v C, ki lahko storimo enako. 29 00:01:16,790 --> 00:01:20,000 >> Druga vrsta zanke, čeprav V Scratch lahko večno, 30 00:01:20,000 --> 00:01:21,820 ali je kakšna številka drugih pristopov. 31 00:01:21,820 --> 00:01:24,150 Vendar vzemimo več splošnih zdravnikov pogled, z obrazom 32 00:01:24,150 --> 00:01:27,402 to je verjetno precej seznanjeni, V zanki na splošno. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: One stvar, da računalniki 34 00:01:29,110 --> 00:01:31,860 so res dobri, je ponavljanje ukazov. 35 00:01:31,860 --> 00:01:33,910 Kot oseba, ki ste jo dobili res dolgčas, če vas 36 00:01:33,910 --> 00:01:36,730 moral storiti isto stvar veliko krat zapored. 37 00:01:36,730 --> 00:01:40,530 Ampak računalnik lahko storite isto stvar milijone ali celo milijarde časih, 38 00:01:40,530 --> 00:01:43,290 in ne bo dolgčas, in biti sposoben za izvedbo, ki izvajajo zelo dobro. 39 00:01:43,290 --> 00:01:45,650 >> Torej za primer, če bi želel, da želim vsem 40 00:01:45,650 --> 00:01:48,840 na Facebooku vesel rojstni dan tako da jim pošljete e-pošto, 41 00:01:48,840 --> 00:01:51,550 to bi mi lahko traja tudi več kot stoletja dejansko napišete 42 00:01:51,550 --> 00:01:53,000 vse te e-pošte za vsakogar. 43 00:01:53,000 --> 00:01:57,780 Vendar z le nekaj vrstic kode, ne morem ima sistem za pošiljanje e-pošte za vsakogar 44 00:01:57,780 --> 00:01:59,930 on Facebook želi jim vse najboljše. 45 00:01:59,930 --> 00:02:02,730 Torej, to je tisto, zanke in zakaj oni so dragocene in nekaj 46 00:02:02,730 --> 00:02:04,740 da lahko računalniki zelo dobro. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Torej, če ste bili prejemnik 48 00:02:05,630 --> 00:02:07,820 nekaterih CS50 in Dropbox je prostor pozno, 49 00:02:07,820 --> 00:02:10,590 Ravno to je pravzaprav tisto, kar smo storite z uporabo kode čisto tako. 50 00:02:10,590 --> 00:02:12,600 Smo v bistvu imeli velik preglednico, v katero 51 00:02:12,600 --> 00:02:15,016 ljudje so bili vnašanjem njihovih imena in e-poštne naslove. 52 00:02:15,016 --> 00:02:18,160 In mi je napisal majhen košček kode, ki lahko izbirate preko te naslove 53 00:02:18,160 --> 00:02:21,860 in izpljunila edinstvene naslove v vsak primer predložen večkrat. 54 00:02:21,860 --> 00:02:25,120 In potem, bomo poslali avtomatizirano e-pošto od CS50 je bot, 55 00:02:25,120 --> 00:02:27,190 vključno s kodo kupona. 56 00:02:27,190 --> 00:02:29,290 >> Zdaj smo preučevali tudi ta konstrukt zadnjič. 57 00:02:29,290 --> 00:02:33,100 In to je zlasti primer kaj? 58 00:02:33,100 --> 00:02:35,050 Torej, ja, logični izraz. 59 00:02:35,050 --> 00:02:37,050 In je oblika mišljen da zajame tudi to. 60 00:02:37,050 --> 00:02:39,966 Vsi taki vprašanja tvorijo true ali false v Scratch 61 00:02:39,966 --> 00:02:41,590 bo videti malo kaj takega. 62 00:02:41,590 --> 00:02:43,200 In pravimo to logični izraz. 63 00:02:43,200 --> 00:02:46,170 To je res, ali ne drži, da ali ne. 64 00:02:46,170 --> 00:02:49,150 To je način, da bi odgovorili na vprašanje. 65 00:02:49,150 --> 00:02:52,420 >> In Medtem lahko uporabite te Boolean izrazi znotraj gradnikov 66 00:02:52,420 --> 00:02:54,720 kot ti, ki se od Seveda so pogoji 67 00:02:54,720 --> 00:02:57,259 ali podružnice, pregovorno vilice v cestnem prometu. 68 00:02:57,259 --> 00:02:59,550 In jih je mogoče videti ne le kot je ta, lahko pa so tudi 69 00:02:59,550 --> 00:03:02,080 so elses povezane z njimi. 70 00:03:02,080 --> 00:03:05,820 In lahko dejansko imajo tri tako vilice v cestnem prometu ali štiri način vilice 71 00:03:05,820 --> 00:03:08,340 na cesti, preprosto gnezdenja te stvari, 72 00:03:08,340 --> 00:03:10,510 kot boste videli v Scratch če že ni. 73 00:03:10,510 --> 00:03:13,550 In kot lahko to storite v C, kot tudi. 74 00:03:13,550 --> 00:03:16,810 >> Vzemimo še en generalističnega poglej na alumnist, kot tudi, kdo 75 00:03:16,810 --> 00:03:21,490 lahko predstavlja drugačen pristop da te stvari imenovanih pogoji. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Ljudje delajo Odločitve vsak dan. 77 00:03:24,060 --> 00:03:27,530 Na primer, preden greste ven vas vrste imajo, če izjavo, ki pravi, 78 00:03:27,530 --> 00:03:31,480 če dežuje, potem sem potrebujete za mojo jakno. 79 00:03:31,480 --> 00:03:36,820 In računalniki so neverjetne, ko vas odločijo tiste vrste izjav, 80 00:03:36,820 --> 00:03:42,280 da se lahko zanesljivo izvedbo te stvari na neverjetno hitrostjo. 81 00:03:42,280 --> 00:03:48,240 Tako računalniški program res je malo matematike in nekaj 82 00:03:48,240 --> 00:03:53,050 če izkazov, če Odločitev dobi je. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Da morda veste, da je 84 00:03:55,020 --> 00:03:57,880 ljudje, kot so Bill Gates, Paul Allen in drugi 85 00:03:57,880 --> 00:04:00,240 da resnično sprožil tako imenovani osebni računalnik 86 00:04:00,240 --> 00:04:01,990 Revolucija je pred nekaj leti. 87 00:04:01,990 --> 00:04:04,140 Mislil sem, preden smo potopili v nekaj administrivia, 88 00:04:04,140 --> 00:04:09,920 sva pripovedujejo zgodbo iz Albuquerque, New Mexico muzej Prirodoslovni 89 00:04:09,920 --> 00:04:13,650 in znanosti, kjer nekateri Bill Gates " in Prve zgodbe Paula Allena 90 00:04:13,650 --> 00:04:17,470 je pripovedoval, kako imamo zdaj današnji računalniki in Maci in še več. 91 00:04:17,470 --> 00:04:22,390 Za to pa smo potrebovali dva prostovoljca ki imajo zelo dobre pripovedi glasove 92 00:04:22,390 --> 00:04:23,735 prebrati scenarij naglas. 93 00:04:23,735 --> 00:04:25,530 >> V redu, kaj pa v tam. 94 00:04:25,530 --> 00:04:26,120 Pridi gor. 95 00:04:26,120 --> 00:04:27,770 In kako približno pred tukaj. 96 00:04:27,770 --> 00:04:28,340 Pridi dol. 97 00:04:28,340 --> 00:04:29,600 Svoja mesta tukaj. 98 00:04:29,600 --> 00:04:32,444 Kot fantje prišli, par upravnih obvestil. 99 00:04:32,444 --> 00:04:34,360 delilna, proces izbire odsek, 100 00:04:34,360 --> 00:04:36,068 se bo začela ta Sreda do petka. 101 00:04:36,068 --> 00:04:38,400 Več o tem, da prihajajo Sredo v predavanju. 102 00:04:38,400 --> 00:04:41,770 >> Super oddelki, medtem, so nekaj, kar vam ponujamo naslednji teden 103 00:04:41,770 --> 00:04:45,310 pri čemer je celotna skupina povabljen da sodelujejo v dokaj velikem obsegu 104 00:04:45,310 --> 00:04:47,690 profili, ena bolj udoben, ena manj udoben. 105 00:04:47,690 --> 00:04:51,340 In bomo objavljali podatke tega, kakor tudi kasneje ta teden. 106 00:04:51,340 --> 00:04:53,310 >> Oddelki Medtem, sami, se bo začela 107 00:04:53,310 --> 00:04:57,241 v treh tečaja tednu, nič kazalo, kar pomeni, da tisti, so nekaj tednov 108 00:04:57,241 --> 00:04:57,740 ven. 109 00:04:57,740 --> 00:04:58,450 Torej, ne skrbite. 110 00:04:58,450 --> 00:05:01,014 Niste še zamudili kaj v tej smeri. 111 00:05:01,014 --> 00:05:03,930 Medtem pa v tem času, če vas Za vsa vprašanja administrativno, 112 00:05:03,930 --> 00:05:08,120 sebe in Devon in Gabe email in Rob na tem naslovu tukaj. 113 00:05:08,120 --> 00:05:10,320 >> Nazadnje, problem nastaviti 0 je, seveda, ven. 114 00:05:10,320 --> 00:05:12,320 Morda ste opazili, na spletni strani seveda je. 115 00:05:12,320 --> 00:05:14,840 To vam bi moral zagotoviti vsi odgovori na vprašanja 116 00:05:14,840 --> 00:05:18,250 imate morda na poti za kako začeti s problemskega sklopa. 117 00:05:18,250 --> 00:05:21,430 Ampak, če se znajdete potrebujejo roko pomoči, 118 00:05:21,430 --> 00:05:25,020 z vsemi sredstvi udeležujejo uradnih ur, Ponedeljek, torek, sreda, četrtek 119 00:05:25,020 --> 00:05:27,290 tega tedna v večernih urah v štirih jedilnih dvoranah. 120 00:05:27,290 --> 00:05:31,650 Oglejte si ta URL tam za podatke kje so uradne ure bo. 121 00:05:31,650 --> 00:05:34,000 >> Zdaj Spoznajmo naše dva gosta danes. 122 00:05:34,000 --> 00:05:34,740 Kako ti je ime? 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, lepo, da sva se spoznala. 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 Lepo vas je videti, kot dobro. 130 00:05:39,790 --> 00:05:42,123 Jay Paul in Hikari imajo Pred njimi na teh glasbi 131 00:05:42,123 --> 00:05:45,100 stoji dve skripte, ki sem natisnjene od danes zjutraj iz Nove Mehike 132 00:05:45,100 --> 00:05:46,692 Muzej naravne zgodovine in znanosti. 133 00:05:46,692 --> 00:05:48,400 In tisto, kar sem mislil, Jaz bi naredil v zgornjem 134 00:05:48,400 --> 00:05:52,830 se spremljajo svoje recitacijo scenarija in s tem zgodovino 135 00:05:52,830 --> 00:05:54,700 z nekaj vizualnih podob, brez presenečenj. 136 00:05:54,700 --> 00:05:57,512 >> In kaj sem naredil vnaprej je prehighlight vašem scenariju 137 00:05:57,512 --> 00:05:59,470 kaj bi morali prebrati, in kaj bi morali prebrati. 138 00:05:59,470 --> 00:06:00,920 In bomo v bistvu samo nadomestne točke. 139 00:06:00,920 --> 00:06:03,211 Torej, to je veliko, kot si morda storili v angleškem razredu. 140 00:06:03,211 --> 00:06:06,875 To je res prisilijo občinstvo verjeti v pravljice tukaj. 141 00:06:06,875 --> 00:06:07,600 Prav? 142 00:06:07,600 --> 00:06:13,272 Torej zgodba tu imamo BASIC, in se začne v Cambridgeu. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Bilo je pozimi leta 1974, v Cambridgeu, Massachusetts 144 00:06:18,750 --> 00:06:20,240 kjer je pozimi mrzlo. 145 00:06:20,240 --> 00:06:22,800 Bradati, dolgolasi kolegij osipa imenom 146 00:06:22,800 --> 00:06:27,280 Paul Allen je drudging čez Harvardu Square, zatopljen v svoje misli. 147 00:06:27,280 --> 00:06:31,050 Njegova glavna skrb v teh dneh je, kako priti do svojega prijatelja, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 zapustiti šolo in iti v poslovanju z njim. 149 00:06:34,974 --> 00:06:37,890 Hikari: dva sta že odšla s pomočjo številnih poslovnih podvigov 150 00:06:37,890 --> 00:06:40,850 skupaj, z začetkom ob Lakeside šoli v Seattlu, kjer je 151 00:06:40,850 --> 00:06:45,220 so bili plačani v prostem času računalniškem preizkusite PDP-10 računalnik po lokalnem času 152 00:06:45,220 --> 00:06:46,580 delitev podjetja. 153 00:06:46,580 --> 00:06:50,930 Je bil najnovejši načrt za izhod šolo in tvorijo programsko podjetje. 154 00:06:50,930 --> 00:06:53,440 Allen je zapustil Washington State University. 155 00:06:53,440 --> 00:06:58,380 Ampak v zadnjem trenutku, Gates odločil, da se držijo z Harvardu. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Tisti dan, prečkanje Harvard Square, Allen opazil januar, 157 00:07:02,080 --> 00:07:07,530 1975 vprašanje Popular Electronics z zemljo ustavljanja vrv, 158 00:07:07,530 --> 00:07:11,900 Prvi svetovni miniračunalniku Kit tekmec poslovni modeli. 159 00:07:11,900 --> 00:07:14,430 Pod je bil naslov slika majhne škatle 160 00:07:14,430 --> 00:07:16,160 okrašena z luči in stikal. 161 00:07:16,160 --> 00:07:19,770 To je bil imenovan MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 Allen je vedel da je to tisto, kar ga je iskal. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Dnevi razpravi sledili. 164 00:07:26,350 --> 00:07:30,170 Allen in Gates razume Pomen Altair. 165 00:07:30,170 --> 00:07:32,480 Ti so pogosto govorili O mikroprocesorjev 166 00:07:32,480 --> 00:07:35,250 in čakala, da vidim, kaj bi bilo treba storiti z njimi. 167 00:07:35,250 --> 00:07:39,770 Zdaj je bil kit Minikompjuter na pokrov Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Je očitno imela še nobene programske opreme. 169 00:07:42,830 --> 00:07:46,830 Jih zamislili narod programerji spušča Mits. 170 00:07:46,830 --> 00:07:49,590 In tako so pozvali Ed Roberts, vodja podjetja, 171 00:07:49,590 --> 00:07:53,330 trdijo, da so različice BASIC programski jezik skoraj pripravljena 172 00:07:53,330 --> 00:07:54,710 za Altair. 173 00:07:54,710 --> 00:07:55,570 Niso. 174 00:07:55,570 --> 00:07:58,910 Roberts je moral znani niso. 175 00:07:58,910 --> 00:08:03,170 Bil je že 10 klicev na dan od ljudje, ki so imeli BASIC skoraj pripravljena. 176 00:08:03,170 --> 00:08:05,570 In njegov odgovor zalogi je bil "prva oseba 177 00:08:05,570 --> 00:08:11,090 ki se pokaže z delovanjem BASIC dobi pogodbo. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates in Allen še nikoli ni videl Altair. 179 00:08:13,910 --> 00:08:17,600 Niso nikoli niti videl Intel 8080 mikroprocesor 180 00:08:17,600 --> 00:08:19,060 V središču Altair. 181 00:08:19,060 --> 00:08:21,470 Vendar je nekaj let prej Allen je napisal program 182 00:08:21,470 --> 00:08:25,220 na glavnem računalniku, ki posnemajo delovanje prejšnje Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesor. 184 00:08:26,217 --> 00:08:28,300 In tokrat so bi naredil isto. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Z Intel 8080 priročnik na njegovi strani, 187 00:08:34,380 --> 00:08:37,770 Allen usedel Harvard PDP-10 računalnik 188 00:08:37,770 --> 00:08:42,010 in napisal emulator in programske opreme orodja, ki so potrebni, da to programiranje. 189 00:08:42,010 --> 00:08:45,820 Medtem Gates ustavil dogaja za razrede in se posvetil 190 00:08:45,820 --> 00:08:48,120 za oblikovanje osnovne, uporabljajo vsak trik 191 00:08:48,120 --> 00:08:53,130 vedel je, da bi dobili velikost spodaj 4 kilobajtov. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out v Albuquerque, Ed Roberts dobila klic od Gates 193 00:08:55,870 --> 00:08:59,754 prosi za informacije o tem, kako Altair obravnavajo posebne rutine. 194 00:08:59,754 --> 00:09:01,170 Nihče ni nikoli zahteval, da pred tem. 195 00:09:01,170 --> 00:09:02,670 Roberts je začela zanimati. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: Z razvojem orodja in zasnova pripravljena, 198 00:09:07,970 --> 00:09:10,780 Gates in Allen napisal koda na PDP-10, 199 00:09:10,780 --> 00:09:16,060 novačenja še študent Harvarda, Monte Davidoff, da napišete math rutino. 200 00:09:16,060 --> 00:09:19,450 Po zaključnem večeru programiranje, Allen dobil na letalu 201 00:09:19,450 --> 00:09:22,970 za zagotavljanje njihovega BASIC za Mits. 202 00:09:22,970 --> 00:09:25,800 On je preživel letalo vozi ven zaskrbljujoče. 203 00:09:25,800 --> 00:09:28,490 In nazaj v Cambridgeu Gates je zaskrbljujoče. 204 00:09:28,490 --> 00:09:32,100 Ki so jih testirali njihovih osnovnih in je delal na emulator. 205 00:09:32,100 --> 00:09:35,444 Toda kaj, če je emulator narobe? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Kot ravnini približal Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen spoznali, da njihova BASIC, zdaj lepo vsebovala 208 00:09:40,070 --> 00:09:42,460 na majhnem zvitka udaril papir trak, bi 209 00:09:42,460 --> 00:09:44,970 neuporabna brez samostojne Program, ki se imenuje nakladač, ki 210 00:09:44,970 --> 00:09:47,550 bi povedati, kako Altair prebrati počutje papirnatega traku 211 00:09:47,550 --> 00:09:49,620 dovaja v Dalekopisač stroj. 212 00:09:49,620 --> 00:09:52,970 Vzel je ven svojo beležko in hitro pisal določitvi programa nakladač 213 00:09:52,970 --> 00:09:56,819 v jeziku skupščine, nato ročno prevesti, da v 1s in 0s 214 00:09:56,819 --> 00:09:57,985 Altair bi razumel. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen je pričakoval čisto malo, visokotehnološko podjetje 217 00:10:03,830 --> 00:10:05,470 moških v poslovnih oblekah teči. 218 00:10:05,470 --> 00:10:09,210 Torej je bil presenečen, ko Roberts izpolnjeni ga na letališču, ki je videti kot ranču 219 00:10:09,210 --> 00:10:10,270 ročno. 220 00:10:10,270 --> 00:10:12,070 Roberts je bil tudi presenečen. 221 00:10:12,070 --> 00:10:16,340 Ko je padla na Harvard programer je drago hotelu, 222 00:10:16,340 --> 00:10:20,790 Allen je moral priznati, da ni mogel privoščiti sobe. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS sama, je bilo se nahaja v prašnem strip mall. 224 00:10:24,510 --> 00:10:27,040 Inside na nered Delovna miza je Altair 225 00:10:27,040 --> 00:10:30,390 naložen z 5 kilobajtov pomnilnik in povezana s kablom 226 00:10:30,390 --> 00:10:32,030 na Dalekopisač stroju. 227 00:10:32,030 --> 00:10:37,200 Roberts in glavni inženir, Bill Yates, čakala pričakujoče 228 00:10:37,200 --> 00:10:40,660 kot Allen preklopiti svoj nakladač Program v Altair. 229 00:10:40,660 --> 00:10:44,980 Dalekopisač začel chugging kot je potegnil trak papirja prek čitalca traku. 230 00:10:44,980 --> 00:10:47,215 Trajalo je morda 15 minut naložiti program. 231 00:10:47,215 --> 00:10:52,110 Potem Dalekopisač nenadoma natisnjen spomin hitro, nato pripravljeni hitro, 232 00:10:52,110 --> 00:10:55,340 Allen in začel tipkati Nekaj ​​preizkus ukaze. 233 00:10:55,340 --> 00:10:57,400 Za veliko presenečenje vseh je, software delal. 234 00:10:57,400 --> 00:10:58,525 Bilo bugs, seveda. 235 00:10:58,525 --> 00:11:02,070 Ampak glavna stvar je bila, da je delovalo. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Kasneje, na poti do 3,00 $ kosilo Goba, osa priletela 237 00:11:06,570 --> 00:11:10,470 v oknu Pickup tovornjak in pičil Allen na roko. 238 00:11:10,470 --> 00:11:13,070 Toda na tej točki nič lahko pokvari razpoloženje. 239 00:11:13,070 --> 00:11:17,210 Altair zdaj imela svojo osnovno, Prva komercialna programska oprema za dom 240 00:11:17,210 --> 00:11:23,260 računalnik, ki ga Paul Allen in Bill Gates, ki poslujejo kot Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Veliko zaradi naših dveh bralcev. 242 00:11:25,336 --> 00:11:30,690 >> [APLAVZ] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Zdaj imate možnost izbire, 244 00:11:32,520 --> 00:11:35,880 preden greš, od iskriv ali sijaj v dark-- oh, 245 00:11:35,880 --> 00:11:40,810 počakajte eno sekundo, wait-- iskriv in sij v temni slona 246 00:11:40,810 --> 00:11:42,534 od CS50 lastne Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 Hikari: Ah, hvala vam. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: All V redu, hvala lepa. 249 00:11:45,324 --> 00:11:49,855 [APLAVZ] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Torej resnična zgodba. 251 00:11:51,105 --> 00:11:54,380 To pomeni, da vse te stroji in enostavnost, s katero smo 252 00:11:54,380 --> 00:11:56,270 jih uporabljajo zdaj in sprejeti za samoumevno, v resnici 253 00:11:56,270 --> 00:12:00,070 začel tu, le nekaj korakov stran od tega dejanskega gledališča. 254 00:12:00,070 --> 00:12:03,930 In zdaj je danes, če si ne bi bilo, to je Maxwell Dworkin, računalnik 255 00:12:03,930 --> 00:12:05,810 Znanost stavba, tudi za vogalom. 256 00:12:05,810 --> 00:12:09,760 In na drugem nadstropju tem Stavba ne visi tri strani 257 00:12:09,760 --> 00:12:12,740 od prvotne izvorne kode, ki Bill Gates in Paul Allen napisal. 258 00:12:12,740 --> 00:12:14,770 V bistvu, če uporaba povečate leta si lahko ogledate ne samo 259 00:12:14,770 --> 00:12:17,350 njihova imena v prvotna tipa, ampak tudi 260 00:12:17,350 --> 00:12:22,100 njihovi podpisi, ki jih krasijo Nekaj ​​let nazaj, ko so nazadnje obiskali. 261 00:12:22,100 --> 00:12:25,800 >> Toda kaj je bilo še posebej prepričljiv O tem je tisto, kar so si zadali, da storijo 262 00:12:25,800 --> 00:12:29,760 je bil napisati program, ki bi omogočajo druge ljudi, da napišete 263 00:12:29,760 --> 00:12:30,950 svoje programe. 264 00:12:30,950 --> 00:12:34,280 V času vse, kar je bilo z to Altair stroj, ki ga Mits. 265 00:12:34,280 --> 00:12:40,020 In vse, kar so potrebovali je bil nek način zaradi česar je enostaven za hobi in ljudi 266 00:12:40,020 --> 00:12:45,300 nam je všeč v tej sobi, da se dejansko program, da ni nujno, da razumevanje 267 00:12:45,300 --> 00:12:49,060 Koda skupščina, ali stroj code, ali bog ne daj, 0S in 1s. 268 00:12:49,060 --> 00:12:51,190 Mi programerji, kot tistih, ki v tem prostoru, smo 269 00:12:51,190 --> 00:12:54,070 želijo biti sposoben izraziti sami veliko več kot psevdo kodo 270 00:12:54,070 --> 00:12:57,330 tudi če je malo bolj nit izbirčen, kot smo se pogovarjali prejšnji teden. 271 00:12:57,330 --> 00:13:00,970 Ne želimo, da napišete kodo, kot je ta, ki je naredil Paul Allen in Bill Gates. 272 00:13:00,970 --> 00:13:04,850 Mi namesto tega želeli napisati kodo, ki zgleda malo bolj prijazen do uporabnika. 273 00:13:04,850 --> 00:13:07,150 >> Zdaj je to jezik, znan kot BASIC. 274 00:13:07,150 --> 00:13:11,497 In številke vrstic ni tisto, kar vas uporabite za preprosto oštevilčiti vrstic kode 275 00:13:11,497 --> 00:13:12,330 da pišeš. 276 00:13:12,330 --> 00:13:14,038 Nimamo niti za storiti, da v teh dneh. 277 00:13:14,038 --> 00:13:16,060 Vendar pa si lahko ogledate tukaj kako print "Hello, world" 278 00:13:16,060 --> 00:13:18,660 res verjetno bi natisniti samo to. 279 00:13:18,660 --> 00:13:22,710 Pa kaj, Bill in Paul naredil, je bilo usposobiti ljudi, da napišete kodo, kot je ta 280 00:13:22,710 --> 00:13:27,240 Namesto o-- če ste vzeli pogled na računalništvo wall-- kodo, kot je ta. 281 00:13:27,240 --> 00:13:29,290 >> V bistvu, CS50 nedavno imeli priložnost 282 00:13:29,290 --> 00:13:32,540 usesti s profesorjem Harry Lewis v Computer Science oddelka, ki je 283 00:13:32,540 --> 00:13:34,640 pravzaprav učil Bill Gates je pred nekaj leti, 284 00:13:34,640 --> 00:13:38,460 in stoji tu pred te tri strani odlomkih. 285 00:13:38,460 --> 00:13:39,560 Oglejmo pogled. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Kaj ste tu seznam zgodnji kos programske opreme 287 00:13:45,520 --> 00:13:50,240 Bill Gates in Paul napisal Allen, ustanovitelji Microsoft. 288 00:13:50,240 --> 00:13:52,570 Torej koda je zanimiva iz dveh razlogov. 289 00:13:52,570 --> 00:13:55,480 Najprej, je postalo Prvi Microsoftov izdelek, 290 00:13:55,480 --> 00:14:01,810 ki je bil tolmač za BASIC programski jezik. 291 00:14:01,810 --> 00:14:04,940 In drugič, da je to eden prvih poskusov 292 00:14:04,940 --> 00:14:10,580 ustvariti tolmača, tako navadne ljudje lahko uporabljajo osebne računalnike. 293 00:14:10,580 --> 00:14:12,670 >> Torej je bil Bill Gates dodiplomski na Harvardu. 294 00:14:12,670 --> 00:14:14,820 Začel sem poučeval na Harvardu leta 1974. 295 00:14:14,820 --> 00:14:16,560 To je bilo narejeno leta 1975. 296 00:14:16,560 --> 00:14:20,180 Tako je bilo v začetku svoje kariere in zgodaj v moji karieri. 297 00:14:20,180 --> 00:14:23,790 Pravzaprav sem učil Billa Seveda v tem času. 298 00:14:23,790 --> 00:14:27,130 Paul Allen ni bilo Harvard študent, vendar je 299 00:14:27,130 --> 00:14:31,020 je bila visoka šola sošolec Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Če prideš in poglej na kotacijo, boste 301 00:14:33,740 --> 00:14:36,230 dejansko našli tretji Ime, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 ki je bil Gates sošolec Tukaj na Harvardu. 303 00:14:39,260 --> 00:14:41,340 >> OK, tako da tukaj je Zanimiv komentar tukaj. 304 00:14:41,340 --> 00:14:47,150 Piše "V 4K mogoče izbrisati kvadratnega korena vendar bi morale zanke še vedno dela. " 305 00:14:47,150 --> 00:14:53,080 OK, kaj to pomeni, da obstaja sta dva načina, kako zbrati ta program. 306 00:14:53,080 --> 00:14:57,860 Ena je bila, da deluje na različici te računalnik Altair 307 00:14:57,860 --> 00:15:04,310 da je imel le 4K besede spomin, 4096 besede spomina. 308 00:15:04,310 --> 00:15:07,050 Ampak velika različica imel 8k. 309 00:15:07,050 --> 00:15:09,770 In kaj to pove, je , ki v različici 4K 310 00:15:09,770 --> 00:15:12,770 si moral zbrisati nekaj koda, da bi bilo primerno. 311 00:15:12,770 --> 00:15:14,790 In ena od stvari, da bi se črta 312 00:15:14,790 --> 00:15:16,290 bi kvadratni koren rutina. 313 00:15:16,290 --> 00:15:20,360 Ampak očitno za zanke, naj še 314 00:15:20,360 --> 00:15:26,392 deluje, tudi ko ste zbiranje navzdol za samo različico 4K računalnika. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Torej, ena od tem, kot bomo videli v računalništvu, 316 00:15:29,350 --> 00:15:31,430 je ta pojem plastenje in abstrakcija, 317 00:15:31,430 --> 00:15:34,670 in res stoji na ramenih od ljudi, ki so prišli pred nami, ne 318 00:15:34,670 --> 00:15:37,890 za razliko od nekaterih Bill Gates in Paul Allen pripoved tukaj. 319 00:15:37,890 --> 00:15:40,080 In kaj to pomeni, je da danes lahko za 320 00:15:40,080 --> 00:15:43,490 samoumevno, da so stvari v resnici lažje za nas, za pisanje kode. 321 00:15:43,490 --> 00:15:47,170 Dejansko kodo, kot smo rekli v petek, je tehnično bolj znan kot izvorne kode. 322 00:15:47,170 --> 00:15:52,210 In to je to, kot je angleški skladnji da je bolj pravilno in bolj natančno opredeljena 323 00:15:52,210 --> 00:15:55,480 kot nekaj podobnega psevdo kodo za ki ne obstaja formalna definicija. 324 00:15:55,480 --> 00:15:58,320 >> In danes, kaj bomo osredotočiti na je izvorna koda 325 00:15:58,320 --> 00:16:01,010 da je videti tako, ki sicer na prvi pogled 326 00:16:01,010 --> 00:16:02,690 Izgleda popolnoma nejasen. 327 00:16:02,690 --> 00:16:08,540 In odkrito povedano, da je pot bolj estetsko zapleten kot osnovni program. 328 00:16:08,540 --> 00:16:13,300 Vse to ne počne, odpoklic, je tisto, kar smo rekli? 329 00:16:13,300 --> 00:16:14,990 Samo natisne "zdravo svet". 330 00:16:14,990 --> 00:16:19,600 In še pogled na vse stvari, ki jih potrebujete da se ovije okoli tega zelo preprostega stavka. 331 00:16:19,600 --> 00:16:21,750 Vendar je kmalu vse te vrstice in več 332 00:16:21,750 --> 00:16:24,800 bo veliko boljši občutek za vas. 333 00:16:24,800 --> 00:16:26,940 >> In tok je, kot sledi. 334 00:16:26,940 --> 00:16:31,220 Kaj moramo na razpolago je, da kodo, kot vir 335 00:16:31,220 --> 00:16:32,340 kodo, ki smo pravkar videli. 336 00:16:32,340 --> 00:16:35,060 In potrebujemo nov program da bi sistem deloval skozi. 337 00:16:35,060 --> 00:16:39,130 Potrebujemo algoritme, ki lahko pretvorbo izvorne kode, kot je ta, 338 00:16:39,130 --> 00:16:41,932 v kodi, 0s in 1s. 339 00:16:41,932 --> 00:16:43,890 Z drugimi besedami, kaj bomo naučili danes 340 00:16:43,890 --> 00:16:46,620 je, kako to storiti, pisati Izvorna koda up top, 341 00:16:46,620 --> 00:16:49,930 dajati kot prispevek k posebni Program znan kot prevajalnik, 342 00:16:49,930 --> 00:16:52,140 in da bomo za izdelavo predmeta kodo. 343 00:16:52,140 --> 00:16:54,600 Ki je samo fancy način rekel, da se bo nekaj 344 00:16:54,600 --> 00:16:58,350 da je videti takole, ga posredovati v program, imenovan prevajalnik, 345 00:16:58,350 --> 00:17:01,210 proizvaja objektno kodo da je videti takole. 346 00:17:01,210 --> 00:17:04,720 >> Torej, to so dobesedno vzorci 0s in 1s 347 00:17:04,720 --> 00:17:08,550 da se razume Intel računalnik v teh dneh, 348 00:17:08,550 --> 00:17:12,480 da če CPU razlaga, možgani v notranjosti računalnika, 349 00:17:12,480 --> 00:17:16,130 bo dobesedno izpisal, preprosto, "zdravo svet". 350 00:17:16,130 --> 00:17:19,670 Zdaj obstaja način, več 0S in 1s od tebe upam, da bo morda potrebna za to. 351 00:17:19,670 --> 00:17:22,520 Ampak to je zato, ker gradimo na dobro kupčijo zahtevnosti 352 00:17:22,520 --> 00:17:24,270 da bomo lahko odslej jemljemo za samoumevno. 353 00:17:24,270 --> 00:17:27,869 Z drugimi besedami, veliko pametnih ljudi so nam dali veliko kul orodij 354 00:17:27,869 --> 00:17:32,480 in zmogljiva programska oprema, s katero smo lahko zdaj projektov naše. 355 00:17:32,480 --> 00:17:33,400 >> Torej, začnimo. 356 00:17:33,400 --> 00:17:36,640 Ker je prejšnji petek, in Za Problem Set 0 ta teden, 357 00:17:36,640 --> 00:17:39,000 igral boš v svet, ki izgleda takole. 358 00:17:39,000 --> 00:17:42,180 Od danes naprej in za Problem Set 1 naslednji teden kodo 359 00:17:42,180 --> 00:17:45,410 bo pogledati malo bolj skrivnosten, vendar je funkcionalno 360 00:17:45,410 --> 00:17:46,940 bo enaka. 361 00:17:46,940 --> 00:17:50,770 Tako obvestilo, top je Scratch, Dno je C. Odkrito Scratch 362 00:17:50,770 --> 00:17:52,780 je veliko bolj uporabniku prijazen in dostopen. 363 00:17:52,780 --> 00:17:56,890 Ampak, če ste zdaj primerjavo vizualno top za dno, da je nekako enega za drugim 364 00:17:56,890 --> 00:17:59,690 korespondenca med kosov sestavljanke in jezik 365 00:17:59,690 --> 00:18:00,870 smo na tem, da igrajo z. 366 00:18:00,870 --> 00:18:04,420 Zlasti pravijo, blue puzzle piece up top, 367 00:18:04,420 --> 00:18:08,370 očitno ustreza, kaj ključne ali posebni izraz v tem jeziku 368 00:18:08,370 --> 00:18:09,062 imenovano C? 369 00:18:09,062 --> 00:18:09,770 OBČINSTVO: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 To pomeni, formatirano tiskanje. 372 00:18:12,140 --> 00:18:15,240 In to je samo fancy način rekel printf v C 373 00:18:15,240 --> 00:18:18,615 se bo izjavo ali funkcijo da natisne nekaj zaslonu. 374 00:18:18,615 --> 00:18:19,990 Kaj natisniti na zaslonu? 375 00:18:19,990 --> 00:18:23,627 Karkoli vam je povedal, da se v notranjosti od citatov, znotraj oklepajev. 376 00:18:23,627 --> 00:18:25,460 Torej še enkrat, seveda, tam je veliko stvari 377 00:18:25,460 --> 00:18:27,990 da moraš imeti v mislih, oklepaji, narekovaji, podpičja, 378 00:18:27,990 --> 00:18:28,656 in vse to. 379 00:18:28,656 --> 00:18:30,600 Ampak vse to je neke o poleg točke. 380 00:18:30,600 --> 00:18:33,660 Zanimivo takeaway za zdaj je, da recimo blok v Scratch 381 00:18:33,660 --> 00:18:37,520 je precej enakovredna Izjava printf v C. 382 00:18:37,520 --> 00:18:41,390 >> Medtem, rumena puzzle piece do vrha, ko je zelena zastava kliknili, 383 00:18:41,390 --> 00:18:44,736 je verjetno ekvivalent na tisto, kar ključno besedo tukaj? 384 00:18:44,736 --> 00:18:45,360 OBČINSTVO: Main. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Torej glavni. 386 00:18:46,359 --> 00:18:47,410 Mogoče int, morda neveljaven. 387 00:18:47,410 --> 00:18:51,280 Ampak glavna vrsta zveni kot je pomembno, in res je. 388 00:18:51,280 --> 00:18:54,080 Torej, ko zelena zastava kliknili je, še enkrat, puzzle piece 389 00:18:54,080 --> 00:18:56,390 da začenja Celoten program Scratch. 390 00:18:56,390 --> 00:19:02,140 Vendar se bomo zdaj začeli kliče da je bil glavni, ta funkcija znana kot glavna. 391 00:19:02,140 --> 00:19:06,410 >> Zdaj medtem se bomo posplošitev to, kot sledi. 392 00:19:06,410 --> 00:19:08,780 Kličemo lahko rekli funkcijo. 393 00:19:08,780 --> 00:19:10,580 In bi bilo videti posebej, kot je ta. 394 00:19:10,580 --> 00:19:11,770 No, kaj pa zank? 395 00:19:11,770 --> 00:19:16,540 Če želimo, da začnete pretvorbo ali prevajanje bolj v Scratch do C, 396 00:19:16,540 --> 00:19:19,400 ta stvar tukaj očitno le pravi, "zdravo svet" za vedno. 397 00:19:19,400 --> 00:19:23,060 Torej, če ste povezali ti skripte z mačko v Scratch, 398 00:19:23,060 --> 00:19:26,560 to je le, da bo kar naprej govorijo v neke vrste risanih balona, 399 00:19:26,560 --> 00:19:29,922 "Zdravo svet, zdravo svet, zdravo svet, "ad nauseum, vedno. 400 00:19:29,922 --> 00:19:33,130 Če želimo narediti nekaj podobnega C, da se dogaja, da si malce skrivnosten. 401 00:19:33,130 --> 00:19:35,463 Vendar pa lahko dosežemo enako rezultati, saj se bomo na koncu 402 00:19:35,463 --> 00:19:36,861 izvedeti, s sintakso, kot je ta. 403 00:19:36,861 --> 00:19:39,360 Bom ponovno uporabiti printf, ker na koncu dneva 404 00:19:39,360 --> 00:19:42,040 Želim print "Hello World". 405 00:19:42,040 --> 00:19:45,610 In jaz sem očitno s pomočjo ključna beseda, ki je ni večno. 406 00:19:45,610 --> 00:19:47,320 To je namesto besede, medtem ko. 407 00:19:47,320 --> 00:19:49,650 Ampak samo v semantično Angleščina, medtem ko vrsta 408 00:19:49,650 --> 00:19:52,120 predlaga neke vrste zanke ali cikla. 409 00:19:52,120 --> 00:19:55,070 >> Tako da se zgodi, da bo Ključna beseda, ki uporablja C. 410 00:19:55,070 --> 00:20:00,700 In čeprav je res, zakaj ne časa Res dejansko pomeni za vedno? 411 00:20:00,700 --> 00:20:04,240 No, medtem ko je, kot bomo kmalu cenimo toliko bolj, 412 00:20:04,240 --> 00:20:08,140 ima ta oklepajih poleg nje kjer si lahko dal logični izraz. 413 00:20:08,140 --> 00:20:11,360 In tako dolgo, kot da izraz je res, to kodo, 414 00:20:11,360 --> 00:20:14,750 kot je to navedeno med tema dvema zavitimi oklepaji, kot smo jih bom poklical, 415 00:20:14,750 --> 00:20:16,880 bo kar naprej znova in znova zagnati. 416 00:20:16,880 --> 00:20:18,410 >> Torej, res je res. 417 00:20:18,410 --> 00:20:20,900 Torej, medtem ko pravih sredstev Samo to storijo vedno. 418 00:20:20,900 --> 00:20:23,480 To je skoraj neumno zgraditi za izražanje sebe. 419 00:20:23,480 --> 00:20:26,590 Ampak ni bilo vedno Ključna beseda v C. Ni bilo časa. 420 00:20:26,590 --> 00:20:29,390 In tam je bil zelo preprost Logični izraz, kot je res. 421 00:20:29,390 --> 00:20:32,210 In tako je to, bomo videli, doseže enak rezultat. 422 00:20:32,210 --> 00:20:33,890 >> Kako pa boste morda izvesti zanko? 423 00:20:33,890 --> 00:20:36,980 No, v Scratch boste morda hard code določeno število 424 00:20:36,980 --> 00:20:39,430 iteracij v zanko tukaj. 425 00:20:39,430 --> 00:20:43,210 In to je točno tisto, kar smo lahko storite v tej različici C, 426 00:20:43,210 --> 00:20:46,140 pri čemer imamo tako imenovane zanke. 427 00:20:46,140 --> 00:20:49,850 In zanke tukaj se dogaja Ponovil bi, nekoliko cryptically, 428 00:20:49,850 --> 00:20:54,100 od vrednosti 0 na gor do, vendar manj kot 10. 429 00:20:54,100 --> 00:20:55,955 >> Zdaj spremenljivk v nič. 430 00:20:55,955 --> 00:20:57,830 Si morda ne bi imel priložnost uporabljati. 431 00:20:57,830 --> 00:21:02,516 Toda kaj je točka, na splošno, spremenljivke smo rekli prejšnji teden? 432 00:21:02,516 --> 00:21:03,015 Kaj je to? 433 00:21:03,015 --> 00:21:03,780 >> Ciljna publika: Točke. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: Da bi izpostavili? 435 00:21:05,200 --> 00:21:05,700 Oh, poudarja. 436 00:21:05,700 --> 00:21:07,620 OK, sledenja točk, na primer, v igri. 437 00:21:07,620 --> 00:21:09,510 Ali bolj na splošno počne kaj s spremenljivko? 438 00:21:09,510 --> 00:21:10,450 Kakšna je korist od njih? 439 00:21:10,450 --> 00:21:10,825 >> OBČINSTVO: Memory. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Ja, tako spomin. 441 00:21:11,750 --> 00:21:13,000 To je za shranjevanje nekaj. 442 00:21:13,000 --> 00:21:17,336 In nekako neumno vizualne I uporablja zadnji čas je bil, kot je ta stekleno skledo. 443 00:21:17,336 --> 00:21:19,710 In če bomo želeli, da shranite nekaj v spremenljivke, 444 00:21:19,710 --> 00:21:21,918 na primer zdaj vrednost je šest ker tam 445 00:21:21,918 --> 00:21:23,450 šest ping pong žogice v tukaj. 446 00:21:23,450 --> 00:21:26,158 To je samo nekakšna shranjevanje posoda, ki pod pokrovom 447 00:21:26,158 --> 00:21:30,030 se izvaja s bitov, 0s in 1s, pa računalnik se zgodi, da to storim. 448 00:21:30,030 --> 00:21:32,900 >> Torej, v nič, če bomo želeli imeti spremenljivko 449 00:21:32,900 --> 00:21:34,840 lahko uporabimo oranžen blok, kot je ta. 450 00:21:34,840 --> 00:21:37,050 Poklicali bomo, da se števec v tem primeru. 451 00:21:37,050 --> 00:21:38,890 Sem ga inicializiran na 0. 452 00:21:38,890 --> 00:21:41,080 In kaj sem potem naredil? 453 00:21:41,080 --> 00:21:44,780 Forever, recimo števec, ki bi, če igrate s tem v nič, 454 00:21:44,780 --> 00:21:45,780 boste šele videli praske. 455 00:21:45,780 --> 00:21:49,920 Mačka ali karkoli kostum si dal na mu bo govoril številko v vprašanju. 456 00:21:49,920 --> 00:21:52,840 >> Spremeni števec za 1, je kot povečevanje za 1. 457 00:21:52,840 --> 00:21:56,580 In tako bo to štejte od kar tako, kaj? 458 00:21:56,580 --> 00:21:59,114 Od 0 til neskončnost, ali dokler odmori Scratch, 459 00:21:59,114 --> 00:22:01,030 oziroma dokler vas nekako izgubijo zanimanje za gledanje 460 00:22:01,030 --> 00:22:02,650 kako visoko je dejansko lahko računamo. 461 00:22:02,650 --> 00:22:04,800 >> Torej, kako bi lahko pretvorili v C? 462 00:22:04,800 --> 00:22:06,480 To se dogaja, poglej malo skrivnosten. 463 00:22:06,480 --> 00:22:08,896 Ampak še enkrat, če pogledaš na vsakem teh vrstic posamično 464 00:22:08,896 --> 00:22:10,410 so nekako postavitvijo splošno. 465 00:22:10,410 --> 00:22:13,526 Torej očitno int bo nekaj poseben pomen v C 466 00:22:13,526 --> 00:22:14,400 Bomo spet videli. 467 00:22:14,400 --> 00:22:15,810 Kot prahi, to pomeni celo število. 468 00:22:15,810 --> 00:22:16,990 Torej to pomeni le številko. 469 00:22:16,990 --> 00:22:18,920 Torej, to je vrsta steklene posode želim, ena 470 00:22:18,920 --> 00:22:21,120 da lahko shranite številke, ne ping pong žogice. 471 00:22:21,120 --> 00:22:25,520 In bom uporabila enačaj tam, da mu dodeli vrednost 0. 472 00:22:25,520 --> 00:22:29,440 Tako da je precej podobno niz števec na 0, ampak v C. 473 00:22:29,440 --> 00:22:32,840 >> Medtem, medtem ko velja, da je enakovredno, seveda, za večno, 474 00:22:32,840 --> 00:22:35,980 čeprav je malo nejasen, in nato v notranjosti od zavitimi oklepaji. 475 00:22:35,980 --> 00:22:39,188 In lahko si misliš o teh zavitimi oklepaji, ki jih lahko vtipkate na tipkovnici, 476 00:22:39,188 --> 00:22:43,110 kot res da kot ukrivljenosti v ti rumenih blokov zanke v nič. 477 00:22:43,110 --> 00:22:45,700 To zajema več vrstic kode. 478 00:22:45,700 --> 00:22:48,120 >> Printf postaja Malo zdaj strašljivo, ker I 479 00:22:48,120 --> 00:22:51,120 glej navaja ne le v oklepajih. 480 00:22:51,120 --> 00:22:55,160 Ampak kaj je novega skladenjsko v tem primeru? 481 00:22:55,160 --> 00:22:57,300 Tam odstotkov d. 482 00:22:57,300 --> 00:22:58,551 In nato poševnica nazaj n je tam. 483 00:22:58,551 --> 00:23:00,883 Smo videli, da je pred celo čeprav ga nisem omenil. 484 00:23:00,883 --> 00:23:01,886 Potem je vejica. 485 00:23:01,886 --> 00:23:03,010 In potem je števec. 486 00:23:03,010 --> 00:23:05,010 >> Ampak bomo videli v pravkar Trenutek, da je to le 487 00:23:05,010 --> 00:23:09,080 standardni način rekel natisnete "Decimalno številko", citiram, konec citata, 488 00:23:09,080 --> 00:23:10,500 nekateri decimalno število. 489 00:23:10,500 --> 00:23:13,370 Ampak jaz ti bom kasneje povedal, kaj je to decimalno število je. 490 00:23:13,370 --> 00:23:16,835 Torej dejstvo, da obstaja vejica V skladu s tem razmišljali printf, 491 00:23:16,835 --> 00:23:18,710 pomeni iti naprej in print nekateri decimalno število. 492 00:23:18,710 --> 00:23:23,110 Oh, in mimogrede, številka ne glede na vrednost te spremenljivke. 493 00:23:23,110 --> 00:23:25,880 In tako, da bo ta bolj Jasno, bomo videli zgled 494 00:23:25,880 --> 00:23:30,930 Pred dolgo, ki vključuje natančno printf v okviru programov realnem C. 495 00:23:30,930 --> 00:23:33,472 >> Zdaj pa samo zaviti nekateri teh konstruktov. 496 00:23:33,472 --> 00:23:36,680 Logične izraze, morda nimate priložnost uporabiti v svojem programu 497 00:23:36,680 --> 00:23:39,450 lahko pa bi zelo dobro, še posebej, če uporabljate pogoje. 498 00:23:39,450 --> 00:23:43,460 In tako sta ti dve primeri iz Scratch pomeni, če je x manj kot y, 499 00:23:43,460 --> 00:23:48,770 ali če je x manj kot y in y je manj kot z, kako bi lahko to prevedli? 500 00:23:48,770 --> 00:23:50,810 >> No, v C pa je samo bo izgledala takole. 501 00:23:50,810 --> 00:23:55,300 Malo kriptirni, več oklepaji, nekatere čudne ampersands, vendar bistveno 502 00:23:55,300 --> 00:23:59,160 ideje so tako enostavno, kot so so v svetu puzzle kos. 503 00:23:59,160 --> 00:24:02,690 Mi smo enostavno preverjanje, če se kaj manj kot kaj drugega. 504 00:24:02,690 --> 00:24:03,910 >> Kaj pa pogoji? 505 00:24:03,910 --> 00:24:09,710 Na kratko v angleščini, kaj to kos Scratch kode ne bi rekel? 506 00:24:09,710 --> 00:24:11,050 >> OBČINSTVO: Primerja dve številki. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: Primerja dva številke, in če je x manj kot y 508 00:24:13,760 --> 00:24:14,860 piše toliko. 509 00:24:14,860 --> 00:24:18,080 Če je x večji od y se pravi toliko, ostalo 510 00:24:18,080 --> 00:24:20,740 če je x enak y pravi toliko. 511 00:24:20,740 --> 00:24:22,180 Zdaj, ko je x in y prišel? 512 00:24:22,180 --> 00:24:22,680 Kdo ve. 513 00:24:22,680 --> 00:24:25,380 Ta kos Scratch koda je izven konteksta. 514 00:24:25,380 --> 00:24:29,050 Ampak, kaj hočemo storiti zdaj je translate to samo za trenutek videti. 515 00:24:29,050 --> 00:24:31,660 >> Torej, kot ste dobili udobno ta teden Problem Set 516 00:24:31,660 --> 00:24:34,190 0 igranje na tem svetu na levi strani, spoznali 517 00:24:34,190 --> 00:24:36,940 da se ideje ne spreminja ta teden ali naslednji ali še dlje. 518 00:24:36,940 --> 00:24:38,690 Mi preprosto bo začnite pisati stvari 519 00:24:38,690 --> 00:24:41,240 na drugačen način z našimi tipkovnico namesto naše miši. 520 00:24:41,240 --> 00:24:44,577 >> Torej, če je x manj kot y, in tam je nekaj oklepaje tam, 521 00:24:44,577 --> 00:24:47,160 potem je tu še nekaj zavitimi oklepaji spet nekako zaobjeti 522 00:24:47,160 --> 00:24:48,970 tako kot rumeno kosov sestavljanke storiti. 523 00:24:48,970 --> 00:24:53,000 In bom printf x je manj kot y in tako naprej. 524 00:24:53,000 --> 00:24:56,540 >> Kaj je lepo o C, kot lahko vidite tukaj, 525 00:24:56,540 --> 00:25:00,480 je, da ne boste dobili to gnezdenje, gnezdenje, gnezdenje, da je nujno 526 00:25:00,480 --> 00:25:02,220 gre za potiskanje kodo na desni. 527 00:25:02,220 --> 00:25:04,990 Lahko namesto tega imate vse lineup lepo všeč. 528 00:25:04,990 --> 00:25:08,960 Ampak to je samo estetska Podatek, da bomo spet videli kmalu. 529 00:25:08,960 --> 00:25:09,660 >> V redu. 530 00:25:09,660 --> 00:25:13,290 Torej, to nas pripelje nazaj do To skrivnostno videti programa. 531 00:25:13,290 --> 00:25:15,180 Kaj je dejansko napisati nekaj kode. 532 00:25:15,180 --> 00:25:16,830 Zdaj, kako si šel o pisanju kode? 533 00:25:16,830 --> 00:25:21,310 Vsa ta leta, ki ste jih v lasti Mac ali PC, namizni ali prenosni računalnik, 534 00:25:21,310 --> 00:25:24,520 da ste dejansko imeli zmožnost , da začnete pisati programsko kodo. 535 00:25:24,520 --> 00:25:27,050 Vendar ste verjetno manjka posebna vrsta programa. 536 00:25:27,050 --> 00:25:28,470 Lahko zagotovo napisati kodo. 537 00:25:28,470 --> 00:25:30,740 Ampak ne moreš pa nujno, iz škatle, 538 00:25:30,740 --> 00:25:34,210 pretvarjati, da je izvorno kodo v kodi, 0s in 1s 539 00:25:34,210 --> 00:25:35,619 ne da bi kaj na vašem računalniku? 540 00:25:35,619 --> 00:25:36,410 OBČINSTVO: Compiler. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Torej prevajalnik, kajne. 542 00:25:37,630 --> 00:25:39,730 Zdaj večina od vas verjetno ne lastno prevajalnik, 543 00:25:39,730 --> 00:25:41,259 nikoli prenesli prevajalnik. 544 00:25:41,259 --> 00:25:44,300 Ampak boste videli, ga lahko prenesete kot najbolj koli drugi kos opreme. 545 00:25:44,300 --> 00:25:47,470 V svetu Mac OS, boste morda prenesete ali so prenesli že 546 00:25:47,470 --> 00:25:50,437 nekaj, kar se imenuje Xcode ali GCC ali Jek. 547 00:25:50,437 --> 00:25:52,270 Če prihajate iz Windows svetu, boste morda 548 00:25:52,270 --> 00:25:56,190 so prenesli Visual Studio, Visual Basic, okolja, kot je to. 549 00:25:56,190 --> 00:25:59,200 Obstaja ducate prevajalniki v teh dneh, ki jih lahko uporabite. 550 00:25:59,200 --> 00:26:01,940 Ampak kratko o tem tukaj je, da bi bilo bolečina 551 00:26:01,940 --> 00:26:04,480 in, odkrito povedano, tehnološki nočna mora za sto 552 00:26:04,480 --> 00:26:07,680 ljudi z različnimi Računalniške konfiguracije vsem 553 00:26:07,680 --> 00:26:09,800 nastaviti svoje stroje na enak način, 554 00:26:09,800 --> 00:26:11,700 tako da smo lahko vsi na isti strani. 555 00:26:11,700 --> 00:26:15,240 >> Torej, kaj smo, namesto, naredite v CS50 se vam dajejo 556 00:26:15,240 --> 00:26:18,349 standardni okolje, Linux okolje, ki je 557 00:26:18,349 --> 00:26:20,140 bo izgledalo malo kaj takega. 558 00:26:20,140 --> 00:26:22,980 Videli boste več o tem v Problem Set 1 specifikacija, ki 559 00:26:22,980 --> 00:26:25,330 bo šel na spletu v petek zvečer. 560 00:26:25,330 --> 00:26:28,360 >> In kaj to pomeni je, da odslej 561 00:26:28,360 --> 00:26:32,060 se bo sposoben prenesti in namestiti program 562 00:26:32,060 --> 00:26:33,650 imenovano CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 In ti boš, da prenesete in namestiti drug program, imenovan 564 00:26:36,275 --> 00:26:40,300 Hypervisor, ki je le fancy način za dosego tega cilja. 565 00:26:40,300 --> 00:26:44,600 Ali ste lastnik Mac ali PC-ju ali Linux računalnik ali računalnik Solaris, 566 00:26:44,600 --> 00:26:46,830 ali karkoli noro poslovanja Sistem tečete, 567 00:26:46,830 --> 00:26:49,820 boš, da prenesete program imenuje hypervisor, ki je 568 00:26:49,820 --> 00:26:53,350 tekoč teči CS50 Naprava na vašem računalniku 569 00:26:53,350 --> 00:26:55,430 ne glede na to, kaj je vaš operacijski sistem. 570 00:26:55,430 --> 00:27:00,640 Hipervizor z drugimi besedami pretvarja naša roba do kakršnega koli jeziku, 571 00:27:00,640 --> 00:27:03,850 ne glede na navodila, ki vam lasten računalnik razume. 572 00:27:03,850 --> 00:27:04,962 >> Torej je to plastenje. 573 00:27:04,962 --> 00:27:06,920 In še enkrat, to je nekako tematskega v računalniku 574 00:27:06,920 --> 00:27:08,722 znanost, stavba na vrhu stvari. 575 00:27:08,722 --> 00:27:09,680 Morda imate Windows. 576 00:27:09,680 --> 00:27:10,710 Morda imate Mac OS. 577 00:27:10,710 --> 00:27:12,960 Vendar pa se začne naslednji teden, da si dogaja, da so prenesli 578 00:27:12,960 --> 00:27:14,980 brezplačno kos programske opreme imenovano Hipervizor. 579 00:27:14,980 --> 00:27:17,800 Boste prenesli kos programske opreme, ki se imenuje CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> To se dogaja, da delujejo v hipervizor, , ki se bo izvajal na vašem računalniku. 581 00:27:21,050 --> 00:27:23,030 In končni rezultat je da bomo vsi 582 00:27:23,030 --> 00:27:26,220 imajo preprosto okno kot to na vašem Mac ali PC 583 00:27:26,220 --> 00:27:30,160 ki nam daje iluzijo vse izvajajo isti operacijski sistem, 584 00:27:30,160 --> 00:27:32,800 brez kakršnega koli drugega Vpliv na vašem računalniku. 585 00:27:32,800 --> 00:27:34,870 In lahko celoten zaslon to in v bistvu se obnašajo 586 00:27:34,870 --> 00:27:37,550 kot da tečeš operacijski sistem, imenovan Linux, 587 00:27:37,550 --> 00:27:40,270 ki je tisto, kar CS50 Naprava temelji na. 588 00:27:40,270 --> 00:27:42,930 >> Torej, kaj je dejansko uporablja to Zdaj napisati program. 589 00:27:42,930 --> 00:27:45,450 Lahko napišete program uporabljate Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Lahko napišete program uporabo TextEdit ali beležnici 591 00:27:48,160 --> 00:27:51,880 ali WordPad, ali precej koli beseda Program, ki ste jih kdaj uporabili za predelavo. 592 00:27:51,880 --> 00:27:55,174 Vi, ampak realnost je, ne bi smeli uporabiti resnično katero koli od teh programov. 593 00:27:55,174 --> 00:27:57,840 Vi zagotovo ne bi smela uporabljati nekaj podobnega Microsoft Word, ki 594 00:27:57,840 --> 00:28:01,120 ima krepko sooča, in ležeče in Večje pisave in manjših pisav, 595 00:28:01,120 --> 00:28:03,560 ker računalnik ne skrbi me, da je. 596 00:28:03,560 --> 00:28:05,600 Vse računalnik dogaja, da skrbi, je 597 00:28:05,600 --> 00:28:09,040 Angleščina kot navodila napisana v C. 598 00:28:09,040 --> 00:28:12,050 >> Torej, kaj bomo naredili v notranjosti od CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 se uporabi program prosto na voljo, in to je 600 00:28:14,290 --> 00:28:17,360 vnaprej nameščen v tem naprava, imenovana gedit. 601 00:28:17,360 --> 00:28:22,280 In gedit je samo super enostavna urejevalnik besedila, kot Mac OS je TextEdit, 602 00:28:22,280 --> 00:28:26,200 kot Windows Beležnica, ki se dogaja, da poglej malo kaj takega. 603 00:28:26,200 --> 00:28:28,910 >> Torej Dovolite dejansko ne poglej diapozitivov to. 604 00:28:28,910 --> 00:28:32,580 Ampak kaj je dejansko šel v okolje sama. 605 00:28:32,580 --> 00:28:36,090 Jaz grem naprej in prijavi, v tem drugem oknu 606 00:28:36,090 --> 00:28:40,910 mojemu CS50 Appliance, ki sem jih vnaprej nameščen na moj laptop tukaj. 607 00:28:40,910 --> 00:28:43,771 >> Opazimo, da, tako kot Windows in Mac OS, to je dobil nekatere menije. 608 00:28:43,771 --> 00:28:45,520 Kot so Windows postavlja je tam namesto 609 00:28:45,520 --> 00:28:47,020 Mac OS, ki ga postavi tja. 610 00:28:47,020 --> 00:28:48,930 Ampak realnost je, da je vse vrste enaka. 611 00:28:48,930 --> 00:28:50,770 In tu je cela kup opreme. 612 00:28:50,770 --> 00:28:51,770 Tam je Dropbox. 613 00:28:51,770 --> 00:28:54,780 Obstaja cel kup dodatkov, grafične programe, da bomo 614 00:28:54,780 --> 00:28:56,430 uporabite pozneje v izraz za problematičnih sklopov. 615 00:28:56,430 --> 00:28:59,650 Obstaja spletni brskalnik zgrajena tako, da je to v celoti razvit računalnik 616 00:28:59,650 --> 00:29:01,240 znotraj računalnika. 617 00:29:01,240 --> 00:29:04,170 >> Ampak bom kliknite to Skrajna leva belo ikono tukaj, 618 00:29:04,170 --> 00:29:05,890 ki je ikona za gedit. 619 00:29:05,890 --> 00:29:09,650 In to se dogaja, da se odpre okno da ima tri plošče z njim, 620 00:29:09,650 --> 00:29:12,590 leva, vrh enega, in spodaj en. 621 00:29:12,590 --> 00:29:16,071 >> Zdaj je v tem zgornjem desnem tisti, ki Bom dejansko napisati nekaj kode. 622 00:29:16,071 --> 00:29:16,820 Torej, kaj je to storiti ,. 623 00:29:16,820 --> 00:29:19,040 Jaz grem na File, Save. 624 00:29:19,040 --> 00:29:22,100 In ne boš nikoli videl to posebno okno, preden. 625 00:29:22,100 --> 00:29:23,620 Ampak to je tako kot Mac OS ali Windows. 626 00:29:23,620 --> 00:29:25,490 To je samo okno z vse mape 627 00:29:25,490 --> 00:29:27,290 da imam znotraj tega računalnika. 628 00:29:27,290 --> 00:29:30,320 >> In bom, da shranite Datoteka kot hello.c. 629 00:29:30,320 --> 00:29:32,690 In jaz grem naprej in kliknite Shrani. 630 00:29:32,690 --> 00:29:36,364 In zdaj sem opazil še jeziček V zgornjem levem kotu se imenuje hello.c. 631 00:29:36,364 --> 00:29:38,280 Tako da verjetno precej seznanjeni tudi če ste ne 632 00:29:38,280 --> 00:29:40,240 Pred uporablja ta program. 633 00:29:40,240 --> 00:29:44,890 >> In zdaj bom tip v tiste precej skrivnosten zaporedje ukazov 634 00:29:44,890 --> 00:29:46,360 da smo videli pred nekaj trenutki. 635 00:29:46,360 --> 00:29:49,330 Vključujejo standardne I / O.h. 636 00:29:49,330 --> 00:29:50,600 Več o tem kmalu. 637 00:29:50,600 --> 00:29:55,670 Int main nična, odprt curly brace, zaprta skodrane opornico. 638 00:29:55,670 --> 00:30:01,570 In nato v notranjosti pa mislim, da je kjer smo imeli "Hello World", podpičje. 639 00:30:01,570 --> 00:30:03,100 In zdaj shranite. 640 00:30:03,100 --> 00:30:08,780 >> Torej, to je program napisan v C, napisano, torej v izvorni kodi. 641 00:30:08,780 --> 00:30:10,720 Vendar ne morem zagnati ta program. 642 00:30:10,720 --> 00:30:13,390 Nekako želite podvojiti kliknite na ikono nekje, 643 00:30:13,390 --> 00:30:16,390 vendar ne icon obstajajo drugi kot izvorno kodo datoteke. 644 00:30:16,390 --> 00:30:20,359 Kaj, še enkrat, je postopek sedaj, Moram teči to datoteko skozi? 645 00:30:20,359 --> 00:30:21,150 OBČINSTVO: Compiler. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Torej prevajalnik. 647 00:30:22,399 --> 00:30:24,890 Torej, v različnih računalnikih, ki jih To storite na različne načine. 648 00:30:24,890 --> 00:30:27,480 Toda kaj smo tukaj naredili v CS50 Appliance, ki je 649 00:30:27,480 --> 00:30:31,260 Predstavnik kako lahko To storite na več različnih sistemov, 650 00:30:31,260 --> 00:30:34,036 se bom enostavno na zagnati ukaz, imenovan make. 651 00:30:34,036 --> 00:30:35,660 In da je dobesedno to storili. 652 00:30:35,660 --> 00:30:36,640 Naredi me programa. 653 00:30:36,640 --> 00:30:39,060 >> Torej, da se dogaja, da teči prevajalnik za mene. 654 00:30:39,060 --> 00:30:42,160 In ime programa Hočem, da je zdravo. 655 00:30:42,160 --> 00:30:43,510 Zdaj bi se programa. 656 00:30:43,510 --> 00:30:47,170 In da je dovolj pameten Zavedam se, da če rečem, da pozdravi, 657 00:30:47,170 --> 00:30:50,980 se dogaja, da samodejno poiščete za datoteke imenovane hello.c 658 00:30:50,980 --> 00:30:53,420 samo zato, ker je to Tako je bilo nastavljeno. 659 00:30:53,420 --> 00:31:00,300 >> Torej, ko sem zdaj zadeti nastopiti tukaj, to crazy Grobni linija je pravkar usmrtili. 660 00:31:00,300 --> 00:31:02,720 In verjemite mi, preden dolga, v le nekaj dni, 661 00:31:02,720 --> 00:31:05,590 boste razumeli, kaj vse od tega neumnosti sredstvi. 662 00:31:05,590 --> 00:31:11,150 Ampak za zdaj, samo vem, da bi triggering izvršitev prevajalnik. 663 00:31:11,150 --> 00:31:13,290 Z drugimi besedami, ugotovljeno prevajalnik na mojem računalniku 664 00:31:13,290 --> 00:31:14,820 , ki je vnaprej nameščena na CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 da bomo roko, da vas v Problem Set 1. 666 00:31:16,560 --> 00:31:20,990 In nato je trajalo hello.c kot input, in proizvaja navidezno 667 00:31:20,990 --> 00:31:23,040 0s in 1s kot izhod. 668 00:31:23,040 --> 00:31:29,410 >> In privzeto, kaj počne, je, da prihrani ti 0s in 1s v datoteko, imenovano zdravo. 669 00:31:29,410 --> 00:31:33,180 In čeprav to sintakso tudi morda je novo za vas, preprosto izgovorite pika 670 00:31:33,180 --> 00:31:37,110 poševnica pozdravite se bo sredstva, s katerimi sem teči ta program. 671 00:31:37,110 --> 00:31:40,360 >> Za zdaj in za vsaj nekaj tednov, skoraj vse programe 672 00:31:40,360 --> 00:31:44,230 zapisujemo se bodo v črni in beli text okna. 673 00:31:44,230 --> 00:31:47,006 Ne miši, ne klikanje brez oken, brez ikon. 674 00:31:47,006 --> 00:31:49,630 Bomo, da ga bo enostavno in se osredotočiti na osnovnih idejah 675 00:31:49,630 --> 00:31:52,490 na začetku, preden bomo prišli do nečesa višji nivo, na primer, 676 00:31:52,490 --> 00:31:56,410 kot odmor od igre, ki smo govorili pa je v prvem predavanju prejšnji teden. 677 00:31:56,410 --> 00:32:00,820 >> Torej, ko sem zadeti nastopiti tukaj, to je ekvivalent v besedilu le okolju 678 00:32:00,820 --> 00:32:03,272 podvojiti s klikom na ikono, imenovano zdravo. 679 00:32:03,272 --> 00:32:05,480 Kaj pričakujete volje zgodilo, ko sem zadeti nastopiti potem? 680 00:32:05,480 --> 00:32:07,120 >> OBČINSTVO: Vse bo print "Hello World". 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Upajmo bo print "Hello World". 682 00:32:10,000 --> 00:32:11,370 In res se je. 683 00:32:11,370 --> 00:32:13,690 Zdaj je bilo nekaj Grobni sintakso tukaj. 684 00:32:13,690 --> 00:32:15,950 Pojdimo previjanje za samo trenutek, in videli, če bomo 685 00:32:15,950 --> 00:32:19,530 Ne moreš začeti sklepali samo po krpanje, poskuša in če, 686 00:32:19,530 --> 00:32:21,130 o tem, kaj se dogaja tukaj. 687 00:32:21,130 --> 00:32:23,609 Kaj pa, če znebim Nagibnica n? 688 00:32:23,609 --> 00:32:25,650 Zdaj pa nekateri med vami, ki ste programirano pred verjetno 689 00:32:25,650 --> 00:32:27,054 veš takoj, kaj to pomeni. 690 00:32:27,054 --> 00:32:29,220 Toda za tiste, ki ste jih nikoli programirana pred, 691 00:32:29,220 --> 00:32:34,052 vsaj mislim, da si, kaj se dogaja spremeniti, ko sem ponovila ta program? 692 00:32:34,052 --> 00:32:37,010 Tako da bom šel nazaj na moj malo črno-belo okno, ki 693 00:32:37,010 --> 00:32:39,290 je okno, v katerem To lahko zbere. 694 00:32:39,290 --> 00:32:41,130 Bom prevesti zdravo. 695 00:32:41,130 --> 00:32:43,520 Bomo videli isto Grobni zaporedje ukazov. 696 00:32:43,520 --> 00:32:45,719 In bom naredil dot poševnica zdravo. 697 00:32:45,719 --> 00:32:48,260 In zdaj nekdo, če bi, ki ni nikoli programirana pred, 698 00:32:48,260 --> 00:32:49,770 kaj bi bilo tokrat drugače? 699 00:32:49,770 --> 00:32:50,020 Ja. 700 00:32:50,020 --> 00:32:51,840 >> OBČINSTVO: To ne bo ustavilo tiskanje "zdravo svet". 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: To se dogaja da-- žal? 702 00:32:52,660 --> 00:32:54,210 >> OBČINSTVO: To ne bo ustavilo tiskanjem? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: To ne bo ustavite tiskanje "zdravo svet". 704 00:32:55,810 --> 00:32:56,560 Torej, ni slaba ideja. 705 00:32:56,560 --> 00:32:58,633 Druge ideje? 706 00:32:58,633 --> 00:32:59,132 Ja. 707 00:32:59,132 --> 00:33:00,060 >> OBČINSTVO: Sporočilo o napaki? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Napaka sporočilo, v redu, bi lahko. 709 00:33:01,750 --> 00:33:02,250 Kaj še? 710 00:33:02,250 --> 00:33:05,479 OBČINSTVO: Lahko natisnete nosilec s podpičjem, kot tudi? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: Lahko natisnete nosilec s podpičjem, kot tudi. 712 00:33:08,270 --> 00:33:11,950 Mogoče, da poševnica nazaj, potem je nekaj nekako prekrivata, da je to pomembno. 713 00:33:11,950 --> 00:33:14,860 Kakršne koli druge misli? 714 00:33:14,860 --> 00:33:16,412 >> Tako da vse dobre ideje. 715 00:33:16,412 --> 00:33:18,370 In v resnici gre da se sporočilo o napaki. 716 00:33:18,370 --> 00:33:20,400 To je verjetno najbolj verjetno da je odgovor na splošno 717 00:33:20,400 --> 00:33:22,420 Za naslednjih nekaj tednih kot smo izvedeli, da sem kodo. 718 00:33:22,420 --> 00:33:27,680 >> Ampak za zdaj ne pozabite, da računalniki samo, da tisto, kar si jim povedal, da naredim. 719 00:33:27,680 --> 00:33:30,400 Podobno kot smešno arašide maslo in žele primer. 720 00:33:30,400 --> 00:33:33,860 Naši človekovih računalniki so samo domneva da to, kar jim je povedal, da storiti. 721 00:33:33,860 --> 00:33:36,250 Torej, v tem primeru, če ne povej računalnik 722 00:33:36,250 --> 00:33:41,190 premakniti, da utripajočega kazalca Naslednja postavka, da je ne bo, da to storite. 723 00:33:41,190 --> 00:33:45,390 Torej, ko sem teči ta program sedaj opazili razliko. 724 00:33:45,390 --> 00:33:46,900 >> Izgleda kot hrošča. 725 00:33:46,900 --> 00:33:49,190 To je estetsko napako, morda. 726 00:33:49,190 --> 00:33:53,310 Toda kaj je drugačno o tem Izhodna primerjavi zadnjega očitno? 727 00:33:53,310 --> 00:33:53,810 Ja. 728 00:33:53,810 --> 00:33:54,920 >> OBČINSTVO: To ni naredil novo linijo. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: To ni naredil novo linijo. 730 00:33:56,586 --> 00:33:58,740 Zdaj pa tisti, ki ste imajo morda izdelane spletne strani 731 00:33:58,740 --> 00:34:01,910 prej, morda veste o BR tag ali odstavek tag, 732 00:34:01,910 --> 00:34:03,120 Zelo podobno v duhu. 733 00:34:03,120 --> 00:34:06,680 Spletni brskalnik vas bo ignorirala dokler vam povedati točno, kaj naj naredim. 734 00:34:06,680 --> 00:34:10,020 Podobno je jezik kot C, samo dogaja, da to, kar vam je povedal, da storiti. 735 00:34:10,020 --> 00:34:12,730 >> Torej razlog, da vsi ti primeri, 736 00:34:12,730 --> 00:34:15,350 Do sedaj so nekako mimogrede imel to poševnico nazaj 737 00:34:15,350 --> 00:34:18,560 tam, to je sredstva , s katerimi si izraziti sebe 738 00:34:18,560 --> 00:34:21,380 kot nove linije značaja, tako rekoč. 739 00:34:21,380 --> 00:34:26,219 In lahko nekako cenim, morda, da bi bilo to videti nekako neumno 740 00:34:26,219 --> 00:34:27,070 če nič drugega. 741 00:34:27,070 --> 00:34:29,150 Če bi želel novo črto, pritisnete tipko Enter in nato nekako 742 00:34:29,150 --> 00:34:32,219 od butchering kodo takega vam res ne bi smeli zbadanje v napačno smer. 743 00:34:32,219 --> 00:34:33,830 In tudi če ne briga na tej točki, 744 00:34:33,830 --> 00:34:35,830 boste spoznali, da to ni posebej 745 00:34:35,830 --> 00:34:37,870 Lep del kode. 746 00:34:37,870 --> 00:34:39,969 >> In kaj svet Pred leti so se odločili, 747 00:34:39,969 --> 00:34:43,420 da, če želite, da dajo kazalec na novi liniji eksplicitno, 748 00:34:43,420 --> 00:34:46,332 morate izrecno povedati, Nova linija, poševnica nazaj n. 749 00:34:46,332 --> 00:34:48,040 In tu je nekaj drugega simboli, kot je ta. 750 00:34:48,040 --> 00:34:50,719 Ampak za zdaj bom samo osredotočiti na poševnica nazaj n. 751 00:34:50,719 --> 00:34:53,790 >> Zdaj pa bo program malo bolj zanimivo. 752 00:34:53,790 --> 00:34:59,200 Jaz grem naprej in tokrat odpreti novo datoteko. 753 00:34:59,200 --> 00:35:02,520 Bom shranite Hello-1.C. 754 00:35:02,520 --> 00:35:05,540 In samo za brcne, bom za iti jo položi v mojo Dropbox mapo. 755 00:35:05,540 --> 00:35:09,030 >> Kot boste videli v CS50 Dokumentacija za napravo, 756 00:35:09,030 --> 00:35:11,210 kasneje ta teden Problem Set 1, bomo spodbujali 757 00:35:11,210 --> 00:35:13,230 vas, da uporabite Dropbox ali nekateri enakovredno storitev, 758 00:35:13,230 --> 00:35:15,430 ker potem vsa vaša koda je bo treba podpreti samodejno. 759 00:35:15,430 --> 00:35:17,830 In da je, zakaj imam šli v to mapo tukaj. 760 00:35:17,830 --> 00:35:20,230 >> In zdaj bom napisati nekoliko drugačen programa. 761 00:35:20,230 --> 00:35:24,740 Vključujejo standardne I / O.h, int main neveljavne. 762 00:35:24,740 --> 00:35:29,660 In potem je tukaj printf, Hello World, ki je povsem enako kot prej. 763 00:35:29,660 --> 00:35:32,450 >> Ampak zdaj hočem natisniti nekaj to je malo drugačna. 764 00:35:32,450 --> 00:35:34,800 Želim natisniti, rekel: "Zdravo, David." 765 00:35:34,800 --> 00:35:37,590 V redu, torej je očitno, bi morala upajmo 766 00:35:37,590 --> 00:35:40,360 se zgodi, da če sem prevedem ta program, ga zaženite, 767 00:35:40,360 --> 00:35:41,840 to bo rekel "Zdravo, David." 768 00:35:41,840 --> 00:35:45,160 >> Kaj pa, če želim, da uvedejo Ta vrsta spremenljivke, 769 00:35:45,160 --> 00:35:49,240 Pojem posodo, ki se dogaja Shranjevanje D-proti-i-d, in ni težko koda je 770 00:35:49,240 --> 00:35:50,600 v mojem programu. 771 00:35:50,600 --> 00:35:53,430 Pa kaj, če začnem počne kaj takega? 772 00:35:53,430 --> 00:35:57,120 >> Niz je, da je ta spremenljivka. 773 00:35:57,120 --> 00:36:00,250 Če želite niz, alias besedo ali frazo. 774 00:36:00,250 --> 00:36:03,485 Zaporedje znakov je, kaj smo v programskem pokličite niz. 775 00:36:03,485 --> 00:36:06,610 Mi smo le, da bo na splošno klic je to, ker je to lepo, preprosto ime. 776 00:36:06,610 --> 00:36:08,010 Vendar bi jaz poklical karkoli. 777 00:36:08,010 --> 00:36:12,920 >> Jaz bom rekel, String s enaka quote citata: "David," podpičje. 778 00:36:12,920 --> 00:36:18,330 In zdaj bi rad, da vstavite D-a-v-i-d v to, kar sem tiskanje. 779 00:36:18,330 --> 00:36:23,720 In preden smo videli teaser na zaslon kakšnega posebnega sintakse 780 00:36:23,720 --> 00:36:26,050 , ki nam je omogočilo, da nadomestek v vrednosti. 781 00:36:26,050 --> 00:36:29,250 Kaj je bilo posebnega Simbol nekaj diapozitivov nazaj? 782 00:36:29,250 --> 00:36:30,040 >> Torej odstotkov. 783 00:36:30,040 --> 00:36:33,830 Takrat je bilo odstotka d za decimalno številko. 784 00:36:33,830 --> 00:36:35,850 Da v resnici ne zdi pomembno tukaj. 785 00:36:35,850 --> 00:36:38,650 Izkazalo se je tam drugo odstotka simbol, 786 00:36:38,650 --> 00:36:42,810 ki je odstotka e, ki stoji za ogrado za niz. 787 00:36:42,810 --> 00:36:49,350 >> Torej, zdaj, zelo enostavno, sem šel bi zdravo-1, 788 00:36:49,350 --> 00:36:54,210 ker ta datoteka imenuje Zdravo-1.c in pritisnite tipko Enter. 789 00:36:54,210 --> 00:36:56,230 In jaz sem zamočil. 790 00:36:56,230 --> 00:36:57,394 Kaj se dogaja? 791 00:36:57,394 --> 00:37:00,560 No, tukaj je, kjer moramo začeti cenili, da smo v tem ukazu 792 00:37:00,560 --> 00:37:02,810 linija okolje, to Samo besedilo okolje. 793 00:37:02,810 --> 00:37:06,114 Ni klikom na ikone kot mapah zdaj. 794 00:37:06,114 --> 00:37:07,280 In pomislite na trenutek nazaj. 795 00:37:07,280 --> 00:37:10,740 V kakšnem mapa nisem rekel, Sem rešil kodo? 796 00:37:10,740 --> 00:37:11,657 Torej mapo Dropbox. 797 00:37:11,657 --> 00:37:12,989 Bi lahko bil imenovan ničesar. 798 00:37:12,989 --> 00:37:14,530 Ampak to se zgodi, da se imenuje Dropbox. 799 00:37:14,530 --> 00:37:18,380 Tako sem nekako morali dvakrat kliknite na da Dropbox mapo, da bi dobili 800 00:37:18,380 --> 00:37:21,657 vanjo in se na moje code imenovano zdravo-1.c. 801 00:37:21,657 --> 00:37:24,490 V bistvu, mi gremo naprej in zmanjša okno za trenutek. 802 00:37:24,490 --> 00:37:27,560 Tako kot Windows in Mac OS, obstajajo mape v Linuxu. 803 00:37:27,560 --> 00:37:29,410 Obstajajo mape v CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 To je samo zdaj smo omejili da bomo to besedilno okolje. 805 00:37:32,380 --> 00:37:34,700 >> Ampak, če sem dvakrat kliknite na Dropbox, opazili pa 806 00:37:34,700 --> 00:37:37,210 je datoteka, ki želim, da pripravijo. 807 00:37:37,210 --> 00:37:41,430 Vendar moram to črno-belo terminal okno, če se tako izrazim. 808 00:37:41,430 --> 00:37:45,750 Ampak moram zato, da se premaknete v to mapo ali imenik. 809 00:37:45,750 --> 00:37:48,290 Torej nekoliko starinski, vendar boste navaditi na to preveč. 810 00:37:48,290 --> 00:37:50,430 >> V svetu Linuxa, ki je spet operativna 811 00:37:50,430 --> 00:37:54,860 Sistem smo teče v notranjosti CS50 Appliance, tam je ukaz, CD. 812 00:37:54,860 --> 00:37:58,310 Kar pomeni, da ne morem narediti CD, prostor, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, sprememba imenika. 814 00:37:59,900 --> 00:38:00,400 Prav. 815 00:38:00,400 --> 00:38:02,890 Nazaj na dan, ko so bili ljudje izumljanja računalnikov in deluje 816 00:38:02,890 --> 00:38:05,806 Sistemi, kot je ta, so želeli tip mogoče Najmanj pritiskov na tipke. 817 00:38:05,806 --> 00:38:08,760 Tako najlažje reči Imenik sprememba je CD. 818 00:38:08,760 --> 00:38:13,910 >> Torej, če sem udaril CD, prostor Dropbox, opazili, kaj se je tu spremenilo. 819 00:38:13,910 --> 00:38:16,480 Znotraj oklepajev Aparat je nekako 820 00:38:16,480 --> 00:38:19,360 da mi ugajajo in me spomnila, kje sem. 821 00:38:19,360 --> 00:38:21,480 Tako odprta mapa Dropbox. 822 00:38:21,480 --> 00:38:24,950 Če bom sedaj tip LS Seznam, spet kratka, 823 00:38:24,950 --> 00:38:27,540 ker ljudje niso želeli tip nazaj v dan l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Torej, namesto tega je bilo ls. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Opazil sem, vidim dve stvari, Hello-1.C, in potem ta skrivnosten stvar, vir 1m. 827 00:38:35,740 --> 00:38:38,310 To je samo moj način rekel Izvorna koda za teden 1 ponedeljek. 828 00:38:38,310 --> 00:38:42,020 To je mapa, ki sem jo prenesel iz Spletna stran CS50, da sem danes prej iz 829 00:38:42,020 --> 00:38:43,990 in jo pravkar postavili v aparat vnaprej. 830 00:38:43,990 --> 00:38:47,550 >> Ampak za zdaj edino stvar, ki smo mar se bi ta program. 831 00:38:47,550 --> 00:38:50,440 Torej, ko sem tipa, da pozdravi-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Prekleto. 833 00:38:51,320 --> 00:38:53,060 Nekaj ​​je šlo narobe. 834 00:38:53,060 --> 00:38:54,580 Torej, kaj je to draži narazen. 835 00:38:54,580 --> 00:38:58,489 In na žalost to je, če se stvari malo stresno na prvi, 836 00:38:58,489 --> 00:39:00,280 vsaj če ste nikoli programirana prej. 837 00:39:00,280 --> 00:39:00,980 >> Moj bog. 838 00:39:00,980 --> 00:39:04,990 Napisal sem program za dva linije in Imam štiri vrstice napak. 839 00:39:04,990 --> 00:39:07,180 Torej, kaj se dogaja tukaj. 840 00:39:07,180 --> 00:39:11,370 Najprej in predvsem vedno pomaknete nazaj in najti prvo sporočilo o napaki, 841 00:39:11,370 --> 00:39:15,730 ker velikokrat prevajalnika samo zbunjeni s tem, kar sem naredil. 842 00:39:15,730 --> 00:39:17,000 Prevajalniki so precej neumno. 843 00:39:17,000 --> 00:39:18,360 Naredili bodo le kaj povej jim, da storijo. 844 00:39:18,360 --> 00:39:21,484 In če jih zmedlo, oni so samo bo nekako vrgel svoje roke 845 00:39:21,484 --> 00:39:25,010 in morda vrgel več sporočil o napakah kot so dejansko pomembne. 846 00:39:25,010 --> 00:39:26,380 >> Torej, poglejmo najprej. 847 00:39:26,380 --> 00:39:27,540 Super Grobni na prvi. 848 00:39:27,540 --> 00:39:31,050 Ampak obvestilo, tukaj je ime Datoteka, v kateri sem zamočil očitno. 849 00:39:31,050 --> 00:39:36,570 Colon 5, kolona 5 pomeni le na linija 5 na peti značaja. 850 00:39:36,570 --> 00:39:39,760 Torej peta kolona znakov, če hočete, napaka. 851 00:39:39,760 --> 00:39:41,870 Uporaba neprijavljenega identifikator niza. 852 00:39:41,870 --> 00:39:43,120 Ali ste mislili standardni n? 853 00:39:43,120 --> 00:39:44,850 >> Ne, mislil sem niz. 854 00:39:44,850 --> 00:39:47,640 In potem je nekako kopiranje in lepljenje 855 00:39:47,640 --> 00:39:50,700 kaj sem tipkal res pripravi my pozornost, ko sem zamočil. 856 00:39:50,700 --> 00:39:54,260 Torej, iz neznanega razloga C, ali vsaj prevajalnik 857 00:39:54,260 --> 00:39:56,470 ne razume besedo niz. 858 00:39:56,470 --> 00:39:57,890 In to zato, ker smo si jo je izmislil. 859 00:39:57,890 --> 00:40:01,440 Torej niz ne obstaja v C. Kaj CS50 počne, 860 00:40:01,440 --> 00:40:03,380 za prvih nekaj tednih le razreda, 861 00:40:03,380 --> 00:40:05,700 je ponujamo nekaj usposabljanj kolesa, tako rekoč. 862 00:40:05,700 --> 00:40:11,160 In mi dal ta kolesa vadbenih notranjost posebni datoteki imenovani CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Torej je to drugi dveh datoteke Imena, ki očitno končajo v dot h. 864 00:40:14,970 --> 00:40:16,300 Pojdimo nazaj. 865 00:40:16,300 --> 00:40:19,360 Printf je izjava ali funkcija da očitno natisne nekaj 866 00:40:19,360 --> 00:40:20,580 na zaslonu. 867 00:40:20,580 --> 00:40:23,470 Vendar me niste videli izvajati printf, prav. 868 00:40:23,470 --> 00:40:26,360 Nekdo pred leti izvajal printf. 869 00:40:26,360 --> 00:40:30,420 V kakšnem slika bi on stavil ali pa si je nadela izvajanja 870 00:40:30,420 --> 00:40:34,270 za printf, kode za printf? 871 00:40:34,270 --> 00:40:36,860 >> V datoteki z imenom Standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 Dejstvo je, da je verjetno v dve datoteki, standardne I / O.h, 873 00:40:39,930 --> 00:40:42,650 ki stoji za glavo Datoteka, in standardni I / O.c, 874 00:40:42,650 --> 00:40:44,060 ki stoji za C izvorne kode. 875 00:40:44,060 --> 00:40:48,220 Torej on ali ona pred nekaj leti plopped kodo, ki so pisali v to datoteko 876 00:40:48,220 --> 00:40:51,240 tako da ljudje, kot smo mi let kasneje lahko vključite, 877 00:40:51,240 --> 00:40:53,040 tako rekoč, v naših programih. 878 00:40:53,040 --> 00:40:56,320 >> In res, to je tisto, lojtra sledi beseda vključujejo počne. 879 00:40:56,320 --> 00:41:00,250 Videti je na lokalnem trdem disku, najde datoteko z imenom Standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 in nato učinkovito izvodov in jo prilepi v notranjosti moje datoteke. 881 00:41:03,840 --> 00:41:07,210 Torej, zdaj moj program ve kako natisniti na zaslon. 882 00:41:07,210 --> 00:41:11,120 >> Torej s to logiko, kjer je niz opredeljen? 883 00:41:11,120 --> 00:41:12,260 >> OBČINSTVO: 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 In res, da je to, kar smo, Jedro osebje, so storili. 886 00:41:15,540 --> 00:41:19,590 Mi smo izumili nekaj vrst podatkov, tako rekoč, kot niz, 887 00:41:19,590 --> 00:41:22,370 poleg tistih, ki jih dobili zastonj, tako kot int. 888 00:41:22,370 --> 00:41:26,010 In bomo videli, druge kot char za znak in nekaj več. 889 00:41:26,010 --> 00:41:30,670 Znotraj CS50.h očitno je vsaj nekaj omenjena niza. 890 00:41:30,670 --> 00:41:34,980 >> Torej, zdaj mi daj in ponovitev make zdravo-1. 891 00:41:34,980 --> 00:41:37,100 Bom povečate znova in čez prste. 892 00:41:37,100 --> 00:41:41,370 Zdaj v izdelavi enega spremenite Popravil sem večino stvari. 893 00:41:41,370 --> 00:41:42,100 Ampak prekleto. 894 00:41:42,100 --> 00:41:44,290 Več procenti od argumentov podatkov. 895 00:41:44,290 --> 00:41:45,980 Kaj sem naredil narobe tokrat? 896 00:41:45,980 --> 00:41:47,420 >> Torej je še vedno zelo skrivnosten. 897 00:41:47,420 --> 00:41:51,560 Ampak ta napaka je na vrstica 7 in 21 znakov. 898 00:41:51,560 --> 00:41:53,880 Torej, pojdimo poglej tukaj. 899 00:41:53,880 --> 00:41:55,350 To je malo subtilno. 900 00:41:55,350 --> 00:41:59,167 Ampak, če mislite, da o tem, kaj temeljne ideje so tukaj, 901 00:41:59,167 --> 00:42:00,500 morda lahko to draži narazen. 902 00:42:00,500 --> 00:42:02,300 >> Torej printf je ime funkcije. 903 00:42:02,300 --> 00:42:04,960 Oklepaje, tako daleč, je tako kot tisto, kar smo se namenili okrog 904 00:42:04,960 --> 00:42:07,005 stvari bomo mimo kot vložka v funkciji. 905 00:42:07,005 --> 00:42:08,921 V redu, samo samovoljno človek konvencija. 906 00:42:08,921 --> 00:42:09,919 Uporabljajte oklepaje. 907 00:42:09,919 --> 00:42:12,460 Znotraj teh oklepajih smo bili dajanje dvojne narekovaje, 908 00:42:12,460 --> 00:42:14,810 nato pa niz, kot je "Hello World". 909 00:42:14,810 --> 00:42:18,160 >> Toda v tej zgodnejši primer zelo Na kratko si bomo ogledali, z Scratch. 910 00:42:18,160 --> 00:42:22,590 In smo imeli odstotkov d, kaj je znotraj teh oklepajih 911 00:42:22,590 --> 00:42:23,730 da sem zaklical verbalno? 912 00:42:23,730 --> 00:42:24,230 Ja. 913 00:42:24,230 --> 00:42:28,166 >> OBČINSTVO: Torej, to je tisto, kar ste ob [Neslišno] od znotraj [neslišno] 914 00:42:28,166 --> 00:42:30,200 kaj ti [neslišno]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Točno tako. 916 00:42:31,200 --> 00:42:32,700 Torej smo imeli odstotkov d. 917 00:42:32,700 --> 00:42:36,620 Potem pa smo imeli blizu quote, vejica, števec. 918 00:42:36,620 --> 00:42:37,120 Prav. 919 00:42:37,120 --> 00:42:40,680 Določeno smo, kaj želimo narediti kot ogrado. 920 00:42:40,680 --> 00:42:44,621 Torej, kaj bom storiti, je tu vejica, kaj hočeš dati? 921 00:42:44,621 --> 00:42:45,120 OBČINSTVO: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, ker je v tem primeru 923 00:42:46,828 --> 00:42:48,700 je ime shranjevalne posode. 924 00:42:48,700 --> 00:42:50,180 To je ime te stekleno skledo. 925 00:42:50,180 --> 00:42:53,610 Ker je, preden je bila v nasprotju s tem, da Preprost primer Scratch smo pogledal. 926 00:42:53,610 --> 00:42:56,630 Torej, zdaj, ko je dva Spremembe, naj povečavo 927 00:42:56,630 --> 00:42:59,800 in poskusite še enkrat zbere ta program. 928 00:42:59,800 --> 00:43:01,596 >> Zdaj pa vidim, da je prikrit linijo. 929 00:43:01,596 --> 00:43:03,470 Ampak to je pravzaprav ime sestavljalca. 930 00:43:03,470 --> 00:43:04,886 Jek je ime prevajalnik. 931 00:43:04,886 --> 00:43:07,100 Da se mi samo varčevanje glavobol kdaj 932 00:43:07,100 --> 00:43:09,830 tipkanje, da dolgo nor ukaz ven. 933 00:43:09,830 --> 00:43:14,900 Torej, zdaj, če mi dot poševnica zdravo-1, Moral bi videti "zdravo, David." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, kajne? 935 00:43:16,450 --> 00:43:18,158 Smo lahko naredili to veliko bolj preprosto 936 00:43:18,158 --> 00:43:20,940 ne govorim o spremenljivkah in CS50.h in vse to. 937 00:43:20,940 --> 00:43:23,080 Torej bi bilo malo bolj zanimivo. 938 00:43:23,080 --> 00:43:31,010 >> Poleg CS50.h, imajo stvari kot niz 939 00:43:31,010 --> 00:43:34,550 izjavil, knjižnica CS50 ima tudi nekaj funkcij. 940 00:43:34,550 --> 00:43:38,520 Pred tako preprosto, kot let, je nekdo napisal printf in ga dal v standardni I / O.h 941 00:43:38,520 --> 00:43:39,530 in nekatere druge datoteke. 942 00:43:39,530 --> 00:43:44,010 >> Mi, osebje CS50, napisal funkcijo imenovano GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, in mi dal tiste v datoteko 944 00:43:47,610 --> 00:43:49,890 imenovano CS50.h in CS50.c. 945 00:43:49,890 --> 00:43:51,880 In mi jih dal noter od CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 In ljudje lahko tudi jih naložite na spletu, če 947 00:43:53,880 --> 00:43:55,880 želijo, da jih na njihovo lastnih računalnikih, kot tudi. 948 00:43:55,880 --> 00:44:00,880 Kar pomeni, da smo ustvarili Funkcije, ki so dobili prispevek od uporabnika. 949 00:44:00,880 --> 00:44:02,930 Ne vem, kaj vse teh podatkov so vrste. 950 00:44:02,930 --> 00:44:06,490 GetInt je nekako enostavno, kot dobili celo nekako od uporabnika. 951 00:44:06,490 --> 00:44:09,980 In GetString je verjetno kot get beseda ali stavek od uporabnika. 952 00:44:09,980 --> 00:44:11,770 >> Torej, dajmo se osredotočiti na to. 953 00:44:11,770 --> 00:44:14,710 In jaz grem nazaj v aparat in bom, da gredo naprej 954 00:44:14,710 --> 00:44:20,790 in shranite to datoteko kot, recimo je zdravo-2.c kot moj drugi različici. 955 00:44:20,790 --> 00:44:23,030 In naredimo nekaj sprememb. 956 00:44:23,030 --> 00:44:25,800 >> Tokrat namesto težko kodiranje David, ki 957 00:44:25,800 --> 00:44:29,120 naredi neverjetno skladni vendar underwhelming program 958 00:44:29,120 --> 00:44:32,640 Kaj pa, če namesto tega GetString? 959 00:44:32,640 --> 00:44:35,660 Zdaj obvestilo GetString ima odprto oklepajev, 960 00:44:35,660 --> 00:44:38,500 zaprti oklepaj, ker ne potrebuje nobenega vnosa. 961 00:44:38,500 --> 00:44:40,850 To bo le pojdi niz od uporabnika. 962 00:44:40,850 --> 00:44:42,460 >> In sedaj beseda o drugih skladnje. 963 00:44:42,460 --> 00:44:45,439 Podpičja šele na koncu vrstico kode. 964 00:44:45,439 --> 00:44:46,730 Jih ne potrebujemo povsod. 965 00:44:46,730 --> 00:44:48,896 Ampak to samo pomeni, da sem storiti s to vrstico kode. 966 00:44:48,896 --> 00:44:51,080 Dovolite mi, da se premaknete na drugo izjavo ali funkcijo. 967 00:44:51,080 --> 00:44:53,010 String izjavlja spremenljivko. 968 00:44:53,010 --> 00:44:55,920 String je, kot pravi daj mi skledo, prosim. 969 00:44:55,920 --> 00:44:57,940 In mi dal niz v njem. 970 00:44:57,940 --> 00:44:59,430 >> In zdaj enačaj. 971 00:44:59,430 --> 00:45:03,510 Kaj je enačaj v bistvu ustreza? 972 00:45:03,510 --> 00:45:04,500 >> OBČINSTVO: Dodeli. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Ja, dodelitev vrednosti. 974 00:45:06,190 --> 00:45:09,872 Torej, če se, na primer, klic ta funkcija GetString, 975 00:45:09,872 --> 00:45:12,830 in bomo videli, v trenutku, ki je bo poziv uporabniku za niz. 976 00:45:12,830 --> 00:45:17,810 To je kot dajanje v najem mi potem napisali D-proti-i-d na kos papirja. 977 00:45:17,810 --> 00:45:21,060 In ko rečem niz je enaka GetString, 978 00:45:21,060 --> 00:45:24,140 enako v resnici ne pomeni enako C programiranja. 979 00:45:24,140 --> 00:45:27,880 To pomeni, da dodelite z desne roko stran na levi strani. 980 00:45:27,880 --> 00:45:29,510 >> Tako sem dobil niz. 981 00:45:29,510 --> 00:45:32,785 In enačaj pomeni ga v zalogovnikom imenovano e. 982 00:45:32,785 --> 00:45:36,730 In potem prenese ta off printf dejansko pa svojo stvar. 983 00:45:36,730 --> 00:45:39,790 >> Torej, končni rezultat pa se bo pogledati malo drugačen. 984 00:45:39,790 --> 00:45:40,840 Naredimo lahko pozdravi-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Ali bi lahko delali. 987 00:45:45,260 --> 00:45:46,450 Ste po skupaj. 988 00:45:46,450 --> 00:45:47,940 Da pozdravi-2 delal. 989 00:45:47,940 --> 00:45:52,640 Dot poševnica zdravo-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Zdi se mi, da imajo neskončno zanka ali kaj podobnega. 991 00:45:54,620 --> 00:45:55,453 Nič se ne dogaja. 992 00:45:55,453 --> 00:45:56,134 Zakaj? 993 00:45:56,134 --> 00:45:57,805 >> OBČINSTVO: To je tako neskončno zanko. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: To je neskončna zanka. 995 00:45:59,430 --> 00:46:02,710 To je nekako me čaka, da dejansko priskrbel nekaj vhodu. 996 00:46:02,710 --> 00:46:05,800 Zato naj gredo naprej in vnesite v Davidovem, in pritisnite tipko Enter. 997 00:46:05,800 --> 00:46:07,230 In zdaj je pravi "zdravo, David." 998 00:46:07,230 --> 00:46:09,040 Če sem ga ponovno zaženite. 999 00:46:09,040 --> 00:46:11,530 Kaj je tip v Rob, "Zdravo, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Zdaj je to najslabša uporabniški vmesnik doslej. 1001 00:46:13,900 --> 00:46:16,110 Uporabnik je očitno naj bi vedel, kaj naj naredim. 1002 00:46:16,110 --> 00:46:17,120 Pa ni važno. 1003 00:46:17,120 --> 00:46:19,570 Z uporabo te isti stavbi bloki, tako kot v nič, 1004 00:46:19,570 --> 00:46:24,980 bomo lahko rešili ta problem in pravijo, nekaj takega kot vaše ime prosim, debelega črevesa, 1005 00:46:24,980 --> 00:46:27,820 prostor, zaprt quote, close oklepaj, podpičje. 1006 00:46:27,820 --> 00:46:30,680 Torej, veliko več norčavosti s sintakso. 1007 00:46:30,680 --> 00:46:34,040 >> Opazil sem samo dodal puzzle piece zgoraj tale 1008 00:46:34,040 --> 00:46:35,280 in nad tem. 1009 00:46:35,280 --> 00:46:38,870 Torej, zdaj, če sem ponovila to, zdravo-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Počakaj malo. 1011 00:46:41,180 --> 00:46:41,830 Kaj je narobe? 1012 00:46:41,830 --> 00:46:43,570 To se ne obnašajo nič drugače. 1013 00:46:43,570 --> 00:46:44,200 Ja. 1014 00:46:44,200 --> 00:46:46,010 >> OBČINSTVO: Niste teči znova narediti. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Nisem teči znova narediti, kajne. 1016 00:46:47,968 --> 00:46:49,430 Tako sem spremenil moje izvorno kodo. 1017 00:46:49,430 --> 00:46:50,638 Ampak še enkrat, da je to tok. 1018 00:46:50,638 --> 00:46:54,530 Izvorna koda skozi prevajalnik daje ste nov objektni kodi ali 0s in 1s. 1019 00:46:54,530 --> 00:47:00,209 Tako da moram dejansko ponovitev make zdravo-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, se zdi, kaj se je zgodilo. 1021 00:47:01,750 --> 00:47:04,220 Dot poševnica Hello-2. 1022 00:47:04,220 --> 00:47:05,390 Vaše ime, prosim. 1023 00:47:05,390 --> 00:47:09,990 In da je zdaj jasno, zakaj je kazalec na isti liniji? 1024 00:47:09,990 --> 00:47:10,490 Točno tako. 1025 00:47:10,490 --> 00:47:13,020 Nisem dal poševnico nazaj n tu gor v mojo kodo. 1026 00:47:13,020 --> 00:47:16,110 Torej, zdaj znam nekaj podobnega Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Lahko ga ponovno zaženite in tip nekaj podobnega Gabe, Enter 1028 00:47:18,710 --> 00:47:22,250 in smo dobili drug program znova in znova in znova. 1029 00:47:22,250 --> 00:47:28,940 >> Zdaj na koncu bomo morali uporabljati nekaj različnih zmogljivosti. 1030 00:47:28,940 --> 00:47:32,860 Moramo uvesti končno nekaj Pogoji delati stvari pogojno. 1031 00:47:32,860 --> 00:47:35,550 Mogoče zank, tako da lahko vedno znova stvari. 1032 00:47:35,550 --> 00:47:38,220 >> Mogoče bi bilo lepo, če bi lahko izvaja lastne funkcije, 1033 00:47:38,220 --> 00:47:41,355 kot smo lahko izvaja lastne printf ali lastna različica GetString 1034 00:47:41,355 --> 00:47:45,870 in GetFlow, ker na koncu celo uporabljate to ukazno vrstico okolje 1035 00:47:45,870 --> 00:47:49,780 lahko storimo tudi najbolj vizualno zanimive stvari. 1036 00:47:49,780 --> 00:47:51,950 >> Dejansko na koncu mi je to naredil. 1037 00:47:51,950 --> 00:47:54,020 Jaz grem naprej in zapiranje teh oken 1038 00:47:54,020 --> 00:47:57,400 in odprite to ikono tukaj, ki je samo večji 1039 00:47:57,400 --> 00:48:00,020 Različica, ki vgrajenih terminal window. 1040 00:48:00,020 --> 00:48:02,329 Torej gedit nima le prostor za mojo kodo, 1041 00:48:02,329 --> 00:48:05,620 ampak tudi vgrajen v terminalnem oknu črno-belo okno, kjer lahko tečem 1042 00:48:05,620 --> 00:48:06,230 ukaze. 1043 00:48:06,230 --> 00:48:08,600 >> Pravkar sem se je zgodilo, da se odpre večja različica tega. 1044 00:48:08,600 --> 00:48:11,170 In zdaj bom šel v mape, ki sem jih že 1045 00:48:11,170 --> 00:48:13,150 dal vnaprej na spletni strani seveda je. 1046 00:48:13,150 --> 00:48:16,720 In jaz grem naprej in Datoteko odprete tako imenovano thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 ki ga je napisal nekdo drug. 1048 00:48:18,710 --> 00:48:21,220 >> In če se ozremo na to, to ni vrsta kode 1049 00:48:21,220 --> 00:48:24,370 bomo lahko pisati, ker Cilj tega kodeksa 1050 00:48:24,370 --> 00:48:28,450 je bil napisati najlepše iščete kodo, ki je on ali ona bi lahko, 1051 00:48:28,450 --> 00:48:31,290 ali je ali ni drugo človeško bitje lahko kdaj 1052 00:48:31,290 --> 00:48:33,660 razumeli to kodo. 1053 00:48:33,660 --> 00:48:37,050 >> Dejansko, vsako leto pa je tisto, kar je imenovano obfuscated tekmovanje C, ki 1054 00:48:37,050 --> 00:48:39,570 je za prave geeke, ki pišejo koda, da nihče drug ne more prebrati, 1055 00:48:39,570 --> 00:48:42,050 ampak, da naredi nekaj, bodisi zelo enostavna, ali res neverjetno. 1056 00:48:42,050 --> 00:48:43,890 In smo menili, da bi skleniti s tem videzom 1057 00:48:43,890 --> 00:48:48,300 na nekaj, kar je precej neverjetno ste morda opazili že enkrat prej. 1058 00:48:48,300 --> 00:48:52,650 Vendar pa bomo na koncu o tem note, pika slash, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 To pa je tisto, kar čaka. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> To je to za CS50. 1062 00:48:58,500 --> 00:48:59,935 Vas bomo videli v sredo. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Predvajanje glasbe] 1065 00:49:10,016 --> 00:53:31,883