1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Dakle, ovo je CS50. 3 00:00:13,800 --> 00:00:18,970 A to je CS50 vlastiti Colton Ogden, više o tome tko je glazba možete 4 00:00:18,970 --> 00:00:22,820 preuzeti na soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Dakle, danas ćemo se usredotočiti sve više na umjetnost programiranja. 6 00:00:26,690 --> 00:00:28,980 I mi smo se gdje smo ostavili off prošlog tjedna, s naglaskom 7 00:00:28,980 --> 00:00:31,660 na očekivanoj razini, što je to grafički programski jezik. 8 00:00:31,660 --> 00:00:35,490 I uzeti stvari dolje na nižu razinu, korištenjem više tradicionalni programiranje 9 00:00:35,490 --> 00:00:38,420 jezik poznat kao C. No, usput, shvativši 10 00:00:38,420 --> 00:00:40,730 da je ista ideja mi govorio o prošlog petka 11 00:00:40,730 --> 00:00:44,390 neće se ponoviti, ne samo u ovom jezik C, ali u većini svaki drugi 12 00:00:44,390 --> 00:00:46,350 kako mi gledamo na tom semestru. 13 00:00:46,350 --> 00:00:50,247 >> Tako smo nazvali ovu stvar Ovdje ono zadnji put? 14 00:00:50,247 --> 00:00:51,830 To prikazuje priopćenju. 15 00:00:51,830 --> 00:00:53,080 Tako smo se zove ova izjava. 16 00:00:53,080 --> 00:00:54,100 I to ne nešto. 17 00:00:54,100 --> 00:00:56,910 To je upute da Računalo ili Scratch moglo izvršiti. 18 00:00:56,910 --> 00:00:59,910 A sada, neka je početi nazivajući nešto ovako funkcija, 19 00:00:59,910 --> 00:01:02,070 iz razloga što je prije ćemo vidjeti. 20 00:01:02,070 --> 00:01:03,681 >> U međuvremenu, vidjeli smo stvari kao što je ovaj. 21 00:01:03,681 --> 00:01:05,680 A to su u pravilu poznat i kao što izgraditi? 22 00:01:05,680 --> 00:01:06,240 >> PUBLIKA: Petlja. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Pa petlje. 24 00:01:06,860 --> 00:01:07,943 Dakle, prilično jednostavan. 25 00:01:07,943 --> 00:01:09,470 To doslovno čini ono što kaže. 26 00:01:09,470 --> 00:01:12,210 A u nule, ako želite nagurati više slagalice tamo, 27 00:01:12,210 --> 00:01:13,950 Komad će narasti na to stane. 28 00:01:13,950 --> 00:01:16,790 I vidjet ćemo u C koji možemo učiniti istu stvar. 29 00:01:16,790 --> 00:01:20,000 >> Druga vrsta petlje, ipak, u Scratch moglo biti zauvijek, 30 00:01:20,000 --> 00:01:21,820 ili postoji bilo koji broj od drugih pristupa. 31 00:01:21,820 --> 00:01:24,150 No, uzmimo više generalist izgled, s lica 32 00:01:24,150 --> 00:01:27,402 to je vjerojatno prilično upoznat, kod petlje općenito. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Jedan stvar da računala 34 00:01:29,110 --> 00:01:31,860 su stvarno dobri u je ponavljanje naredbe. 35 00:01:31,860 --> 00:01:33,910 Kao osoba, što biste dobili stvarno je dosadno, ako vas 36 00:01:33,910 --> 00:01:36,730 morao učiniti istu stvar puno puta za redom. 37 00:01:36,730 --> 00:01:40,530 No, računalo može učiniti istu stvar milijune ili čak milijarde puta, 38 00:01:40,530 --> 00:01:43,290 a ne dosadi, i biti u mogućnosti nositi da se jako dobro. 39 00:01:43,290 --> 00:01:45,650 >> Tako na primjer, ako ja Htio bih svima 40 00:01:45,650 --> 00:01:48,840 Facebook sretan rođendan slanjem e-pošte, 41 00:01:48,840 --> 00:01:51,550 možda mi se više nego stoljeća zapravo zapisati 42 00:01:51,550 --> 00:01:53,000 sve te e-mailove svima. 43 00:01:53,000 --> 00:01:57,780 No, sa samo nekoliko linija koda, što mogu imaju sustav pošaljite e-mail svima 44 00:01:57,780 --> 00:01:59,930 na Facebook želi im sretan rođendan. 45 00:01:59,930 --> 00:02:02,730 Dakle, to je ono što su petlje i zašto oni su vrijedni i nešto 46 00:02:02,730 --> 00:02:04,740 da računala mogu učiniti vrlo dobro. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Dakle, ako ti si bio primatelj 48 00:02:05,630 --> 00:02:07,820 nekih od CS50-a i Dropbox je prostor kasno, 49 00:02:07,820 --> 00:02:10,590 to je zapravo upravo ono što smo učiniti, pomoću koda sasvim tako. 50 00:02:10,590 --> 00:02:12,600 Mi u biti imamo veliki proračunske tablice u koje 51 00:02:12,600 --> 00:02:15,016 ljudi su bili unosom njihova imena i adrese e-pošte. 52 00:02:15,016 --> 00:02:18,160 I pisali smo mali dio koda koji može ponoviti preko te adrese 53 00:02:18,160 --> 00:02:21,860 i ispljunuti jedinstvene adrese u Slučaj netko podnio više puta. 54 00:02:21,860 --> 00:02:25,120 A nakon toga, šaljemo automatizirani e-mail od CS50 je bot, 55 00:02:25,120 --> 00:02:27,190 uključujući i kupon. 56 00:02:27,190 --> 00:02:29,290 >> Sada smo i pogledao to izgraditi zadnji put. 57 00:02:29,290 --> 00:02:33,100 A to je posebno primjer čega? 58 00:02:33,100 --> 00:02:35,050 Dakle, da, logički izraz. 59 00:02:35,050 --> 00:02:37,050 I oblik je značilo uhvatiti to kao dobro. 60 00:02:37,050 --> 00:02:39,966 Svi takvi pitanja tvore točno ili netočno u Scratch 61 00:02:39,966 --> 00:02:41,590 će izgledati malo nešto poput ovoga. 62 00:02:41,590 --> 00:02:43,200 I mi to nazivamo logički izraz. 63 00:02:43,200 --> 00:02:46,170 To je doista istinita ili lažna, da ili ne. 64 00:02:46,170 --> 00:02:49,150 To je način da odgovorite na pitanje. 65 00:02:49,150 --> 00:02:52,420 >> A u međuvremenu možete koristiti ove Boolean izrazi unutar konstrukata 66 00:02:52,420 --> 00:02:54,720 poput ove, koja je od Naravno, uvjeti 67 00:02:54,720 --> 00:02:57,259 ili grane, poslovična vilice na cesti. 68 00:02:57,259 --> 00:02:59,550 I oni mogu tražiti ne samo kao što je ovaj, ali oni također mogu 69 00:02:59,550 --> 00:03:02,080 su drukčije povezani s njima. 70 00:03:02,080 --> 00:03:05,820 A zapravo možete imati tri put vilica na cesti ili četiri način vilica 71 00:03:05,820 --> 00:03:08,340 na cesti, jednostavnim gniježđenje ove stvari, 72 00:03:08,340 --> 00:03:10,510 kao što ćete vidjeti u Scratch Ako to već niste učinili. 73 00:03:10,510 --> 00:03:13,550 I kao što se može učiniti u C kao dobro. 74 00:03:13,550 --> 00:03:16,810 >> Uzmimo još jedan općem Pogledajmo alumnist, kao i, koji 75 00:03:16,810 --> 00:03:21,490 mogli predstaviti drugačiji pristup na takve stvari nazivaju uvjeti. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Ljudi čine odluke svaki dan. 77 00:03:24,060 --> 00:03:27,530 Na primjer, prije nego što idete van tebe vrste imaju IF, 78 00:03:27,530 --> 00:03:31,480 ako pada kiša onda sam potreban da bi jaknu. 79 00:03:31,480 --> 00:03:36,820 I računala su nevjerojatna jednom vas odlučite one vrste izvještaja, 80 00:03:36,820 --> 00:03:42,280 da se pouzdano može izvršiti te stvari na nevjerojatnom brzinom. 81 00:03:42,280 --> 00:03:48,240 I tako je računalni program uistinu je malo matematike i neke 82 00:03:48,240 --> 00:03:53,050 ako je izjava gdje Odluka dobiva napravio. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Dakle, kao što možda znate, to je bio 84 00:03:55,020 --> 00:03:57,880 ljudi poput Billa Gatesa, Paul Allen, a drugi 85 00:03:57,880 --> 00:04:00,240 da je uistinu započeo Takozvani osobno računalo 86 00:04:00,240 --> 00:04:01,990 Revolucija prije nekoliko godina. 87 00:04:01,990 --> 00:04:04,140 Mislio sam, prije nego što zaronite u neku Administrativno, 88 00:04:04,140 --> 00:04:09,920 mi bismo se odnose na priču iz Albuquerquea, Novi Meksiko Prirodoslovni muzej 89 00:04:09,920 --> 00:04:13,650 i znanosti, gdje su neki od Billa Gatesa ' i Paul Allen je najraniji priče 90 00:04:13,650 --> 00:04:17,470 pripovijedaju kako smo sada današnja računala i Macove i više. 91 00:04:17,470 --> 00:04:22,390 Za to, međutim, moramo dva volontera koji imaju vrlo dobre naracije glasove 92 00:04:22,390 --> 00:04:23,735 čitati skriptu naglas. 93 00:04:23,735 --> 00:04:25,530 >> Dobro, o tome kako se u tamo. 94 00:04:25,530 --> 00:04:26,120 Dođi gore. 95 00:04:26,120 --> 00:04:27,770 A što je ispred ovdje. 96 00:04:27,770 --> 00:04:28,340 Dođi dolje. 97 00:04:28,340 --> 00:04:29,600 Zauzmite svoja mjesta ovdje. 98 00:04:29,600 --> 00:04:32,444 Kao što ste vi došli gore, par administrativnih najave. 99 00:04:32,444 --> 00:04:34,360 secira proces odabira sekciju, 100 00:04:34,360 --> 00:04:36,068 će započeti ove Srijeda u petak. 101 00:04:36,068 --> 00:04:38,400 Više o tome ovaj dolazak U srijedu u predavanju. 102 00:04:38,400 --> 00:04:41,770 >> Super sekcije, u međuvremenu, su nešto što nudimo sljedeći tjedan 103 00:04:41,770 --> 00:04:45,310 pri čemu cijeli razred je pozvan sudjelovati u prilično velikim razmjerima 104 00:04:45,310 --> 00:04:47,690 sekcije, jedan više udoban, jedan manje ugodno. 105 00:04:47,690 --> 00:04:51,340 A mi ćemo objaviti pojedinosti toga, kao i, kasnije ovog tjedna. 106 00:04:51,340 --> 00:04:53,310 >> U međuvremenu sekcije, sami, će početi 107 00:04:53,310 --> 00:04:57,241 U tjedan dana tri tečaja, nula indeks, što znači da su to dva tjedna 108 00:04:57,241 --> 00:04:57,740 van. 109 00:04:57,740 --> 00:04:58,450 Tako da se ne brinem. 110 00:04:58,450 --> 00:05:01,014 Niste propustili ništa u tom smjeru. 111 00:05:01,014 --> 00:05:03,930 U međuvremenu, u međuvremenu, ako vas Za sva pitanja administrativno, 112 00:05:03,930 --> 00:05:08,120 ja i Devon i Gabea e-mail i Rob na ovoj adresi ovdje. 113 00:05:08,120 --> 00:05:10,320 >> Konačno, problema postaviti 0 je, naravno, se. 114 00:05:10,320 --> 00:05:12,320 Možda ste to primijetili na web stranici tečaja je. 115 00:05:12,320 --> 00:05:14,840 To bi trebalo pružiti Svi odgovori na pitanja 116 00:05:14,840 --> 00:05:18,250 možda ste na putu za kako započeti s problemom setu. 117 00:05:18,250 --> 00:05:21,430 Ali, ako se nađete u potrebi za ruku pomoći, 118 00:05:21,430 --> 00:05:25,020 svim sredstvima prisustvuju radno vrijeme, Ponedjeljak, utorak, srijeda, četvrtak 119 00:05:25,020 --> 00:05:27,290 od ovog tjedna u večernjim satima u četiri blagovaona dvoranama. 120 00:05:27,290 --> 00:05:31,650 Pogledajte taj URL tamo pojedinostima gdje radno vrijeme mora biti. 121 00:05:31,650 --> 00:05:34,000 >> Sada ćemo u skladu s našim dva gosta danas ovdje. 122 00:05:34,000 --> 00:05:34,740 Koje je tvoje 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 Pavao, lijepo da zadovolji vas. 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 Drago mi je što je dobro. 130 00:05:39,790 --> 00:05:42,123 Jay Paul i Hikari imati u Ispred njih na ovim glazbe 131 00:05:42,123 --> 00:05:45,100 stoji dvije skripte koje sam ispisane jutros iz Novog Meksika 132 00:05:45,100 --> 00:05:46,692 Prirodoslovni muzej i znanosti. 133 00:05:46,692 --> 00:05:48,400 I ono što sam mislio Ja bih to na pretek 134 00:05:48,400 --> 00:05:52,830 je pratiti recitiranje skripte i ove povijesti 135 00:05:52,830 --> 00:05:54,700 s nekim vizualnim slikama, bez iznenađenja. 136 00:05:54,700 --> 00:05:57,512 >> I ono što sam učinio u unaprijed je prehighlight na vašem pismu 137 00:05:57,512 --> 00:05:59,470 ono što bi trebao pročitati, a ono što bi trebao pročitati. 138 00:05:59,470 --> 00:06:00,920 A mi ćemo biti Samo Alternativna stavci. 139 00:06:00,920 --> 00:06:03,211 Dakle, to je slično kao što bi mogao učinili na engleskom klasi. 140 00:06:03,211 --> 00:06:06,875 To je stvarno natjerati publiku da vjeruju u svoj priči ovdje. 141 00:06:06,875 --> 00:06:07,600 Hoćemo li? 142 00:06:07,600 --> 00:06:13,272 Dakle, priča je ovdje, imamo BASIC, a počinje u Cambridgeu. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Bila je zima, 1974, u Cambridgeu, Massachusetts 144 00:06:18,750 --> 00:06:20,240 gdje su zime može biti hladno. 145 00:06:20,240 --> 00:06:22,800 Bradat, duge kose koledž ispad nazvana 146 00:06:22,800 --> 00:06:27,280 Paul Allen je drudging preko Harvardu Trg, zaokupljen svojim mislima. 147 00:06:27,280 --> 00:06:31,050 Njegova glavna preokupacija u tim danima je kako se njegov prijatelj, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 napustiti školu i otići u poslovanju s njim. 149 00:06:34,974 --> 00:06:37,890 Hikari: dvojica već otišao kroz brojne poslovne pothvate 150 00:06:37,890 --> 00:06:40,850 zajedno, s početkom u Lakeside Škola u Seattleu gdje je 151 00:06:40,850 --> 00:06:45,220 su isplaćene u slobodno vrijeme računala na testirati PDP-10 računala na lokalnoj vrijeme 152 00:06:45,220 --> 00:06:46,580 dijeljenje tvrtku. 153 00:06:46,580 --> 00:06:50,930 Najnovija plan bio je da prestanu Škola i formira softversku tvrtku. 154 00:06:50,930 --> 00:06:53,440 Allen je napustio Washington Državno sveučilište. 155 00:06:53,440 --> 00:06:58,380 No, u posljednji trenutak, Gates odlučio staviti sa Harvarda. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Tog dana, prelazeći s Harvarda Trg, Allen uočio siječnja, 157 00:07:02,080 --> 00:07:07,530 1975 Pitanje Popular Electronics s naslovom Zemlja zaustavljanja, 158 00:07:07,530 --> 00:07:11,900 Prvi svjetski miniračunalne Kit konkurirati komercijalnim modelima. 159 00:07:11,900 --> 00:07:14,430 Ispod naslov bio slika maloj kutiji 160 00:07:14,430 --> 00:07:16,160 ukrašena svjetlima i prekidačima. 161 00:07:16,160 --> 00:07:19,770 To je bio nazvan MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 I Allen je znao da je to ono što on je tražio. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Dani rasprave slijedio. 164 00:07:26,350 --> 00:07:30,170 Allen i Gates razumio Značaj Altair. 165 00:07:30,170 --> 00:07:32,480 Oni su razgovarali često O mikroprocesora 166 00:07:32,480 --> 00:07:35,250 i čekali da vide što će biti učinjeno s njima. 167 00:07:35,250 --> 00:07:39,770 A bilo je Miniračunalo kit na cover popularnog elektroniku. 168 00:07:39,770 --> 00:07:42,830 To očito nije imao softver još. 169 00:07:42,830 --> 00:07:46,830 Oni su zamislili nacija programeri silaznom na rukavice. 170 00:07:46,830 --> 00:07:49,590 I tako su zvali Ed Roberts, šef tvrtke, 171 00:07:49,590 --> 00:07:53,330 tvrdeći da ima verziju Osnovni programski jezik gotovo spreman 172 00:07:53,330 --> 00:07:54,710 za Altair. 173 00:07:54,710 --> 00:07:55,570 Nisu. 174 00:07:55,570 --> 00:07:58,910 I Roberts morao znati da nije. 175 00:07:58,910 --> 00:08:03,170 On je dobivao 10 poziva dnevno od ljudi koji su imali OSNOVNI gotovo spreman. 176 00:08:03,170 --> 00:08:05,570 I njegov dioničko odgovor je, "prva osoba 177 00:08:05,570 --> 00:08:11,090 koji se pojavi sa rad OSNOVNA dobiva ugovor. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates i Allen nikada nije vidio Altair. 179 00:08:13,910 --> 00:08:17,600 Oni nikada nisu ni vidjeli Intel 8080 mikroprocesor 180 00:08:17,600 --> 00:08:19,060 u srcu Altair. 181 00:08:19,060 --> 00:08:21,470 No, nekoliko godina ranije Allen je napisao program 182 00:08:21,470 --> 00:08:25,220 na mainframe računala koja simuliranom Rad prethodnog Intelom 183 00:08:25,220 --> 00:08:26,217 mikroprocesora. 184 00:08:26,217 --> 00:08:28,300 I ovaj put oni će učiniti istu stvar. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: S Intelom 8080 upotrebu na njegovoj strani, 187 00:08:34,380 --> 00:08:37,770 Allen je sjeo na Harvard PDP-10 računala 188 00:08:37,770 --> 00:08:42,010 i napisao emulator i softver alate potrebne za napraviti programiranje. 189 00:08:42,010 --> 00:08:45,820 U međuvremenu Gates zaustavio ide na nastavu i posvetio 190 00:08:45,820 --> 00:08:48,120 za projektiranje osnovne, korištenjem svaki trik 191 00:08:48,120 --> 00:08:53,130 Znao je da se veličina dolje ispod 4 kilobajta. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out u Albuquerque, Ed Roberts dobila je poziv od Gatesa 193 00:08:55,870 --> 00:08:59,754 molba za detalje o tome kako Altair obrađene određene rutine. 194 00:08:59,754 --> 00:09:01,170 Nitko nikada nije zatražio da se prije. 195 00:09:01,170 --> 00:09:02,670 I Roberts je počeo da se zainteresirani. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: S razvojem alati i dizajn spremni, 198 00:09:07,970 --> 00:09:10,780 Gates i Allen je napisao Kod na PDP-10, 199 00:09:10,780 --> 00:09:16,060 angažiranja još jedan student s Harvarda, Monte Davidoff, pisati matematičke rutine. 200 00:09:16,060 --> 00:09:19,450 Nakon pravomoćne noći programiranje, Allen je dobio na avion 201 00:09:19,450 --> 00:09:22,970 dostaviti Njihov temeljni na rukavice. 202 00:09:22,970 --> 00:09:25,800 Proveo je zrakoplov voziti se brinuti. 203 00:09:25,800 --> 00:09:28,490 I još u Cambridgeu Gates je zabrinjavajuće. 204 00:09:28,490 --> 00:09:32,100 Oni su testirali njihovim osnovnim i to je radio na emulator. 205 00:09:32,100 --> 00:09:35,444 No, što ako emulator je bio u krivu? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Kako je u zrakoplovu prilazi Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen je shvatio da je njihova BASIC, sada uredno sadržane 208 00:09:40,070 --> 00:09:42,460 na maloj role bušena papirna traka, bi 209 00:09:42,460 --> 00:09:44,970 biti beskoristan bez zasebna Program pod nazivom punjača, koji 210 00:09:44,970 --> 00:09:47,550 će reći kako Altair čitati papirna traka biće 211 00:09:47,550 --> 00:09:49,620 plasirao u teleprinter stroj. 212 00:09:49,620 --> 00:09:52,970 On je izvadio svoju bilježnicu i brzo pisao niz programa za učitavanje 213 00:09:52,970 --> 00:09:56,819 u Skupštini jeziku, a zatim ručno prevedene da u 1s i 0s 214 00:09:56,819 --> 00:09:57,985 Altair bi razumjeli. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen je očekivao čista, mala, high-tech tvrtke 217 00:10:03,830 --> 00:10:05,470 trčanje po muškaraca u poslovnim odijelima. 218 00:10:05,470 --> 00:10:09,210 Dakle, on je bio iznenađen kada je Roberts upoznao ga je u zračnoj luci izgleda kao ranču 219 00:10:09,210 --> 00:10:10,270 ruka. 220 00:10:10,270 --> 00:10:12,070 Roberts je bio iznenađen. 221 00:10:12,070 --> 00:10:16,340 Kad je pao na Harvard programer na skup hotel, 222 00:10:16,340 --> 00:10:20,790 Allen je morao priznati da nije mogao priuštiti sobu. 223 00:10:20,790 --> 00:10:24,510 >> JAY Pavla: MITS, sama po sebi, bio je nalazi u prašnjavim trgovački centar. 224 00:10:24,510 --> 00:10:27,040 Unutra se na pretrpan radni stol bio Altair 225 00:10:27,040 --> 00:10:30,390 učitan s 5 kilobajta od memorije i povezan kabelom 226 00:10:30,390 --> 00:10:32,030 na teleprinter stroj. 227 00:10:32,030 --> 00:10:37,200 Roberts i glavni inženjer, Bill Yates, čekao iščekivanjem 228 00:10:37,200 --> 00:10:40,660 kao što je Allen izabiru svoje utovarivač Program u Altair. 229 00:10:40,660 --> 00:10:44,980 Teleprinter počeo chugging kako se izvukao Papirna traka preko trake čitatelja. 230 00:10:44,980 --> 00:10:47,215 To je možda i 15 minuta za učitavanje programa. 231 00:10:47,215 --> 00:10:52,110 Zatim teleprinter naglo tiskana memorije redak, a zatim spremni brz, 232 00:10:52,110 --> 00:10:55,340 Allen i počeo tipkati Nekoliko ispitivanja naredbe. 233 00:10:55,340 --> 00:10:57,400 Za svačiji čuđenje, Softver je radio. 234 00:10:57,400 --> 00:10:58,525 Bilo je bugova, naravno. 235 00:10:58,525 --> 00:11:02,070 Ali glavna stvar je to radio. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Kasnije, na putu prema 3,00 dolara ručak kod Pavla, osa letio 237 00:11:06,570 --> 00:11:10,470 u prozoru kamioneta kamiona i ubola Allen na ruci. 238 00:11:10,470 --> 00:11:13,070 No, u tom trenutku ništa mogao pokvariti raspoloženje. 239 00:11:13,070 --> 00:11:17,210 Altair je sada imao svoj osnovni, Prvi komercijalni softver za dom 240 00:11:17,210 --> 00:11:23,260 Računalo, izradio Paul Allen i Bill Gates, posluju kao Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Mnogi Zahvaljujući našim čitateljima dva. 242 00:11:25,336 --> 00:11:30,690 >> [Pljesak] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Sada imate izbor, 244 00:11:32,520 --> 00:11:35,880 Prije nego što napustite, od svjetlucavi ili sjaj u dark-- Oh, 245 00:11:35,880 --> 00:11:40,810 pričekajte jednu sek, wait-- svjetlucavi i svijetle u mraku slona 246 00:11:40,810 --> 00:11:42,534 iz CS50 vlastite Cheng Gonga. 247 00:11:42,534 --> 00:11:43,450 Hikari: Ah, hvala ti. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: Sve U redu, hvala vam toliko. 249 00:11:45,324 --> 00:11:49,855 [Pljesak] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Tako istinita priča. 251 00:11:51,105 --> 00:11:54,380 To će reći da je sve to strojevi i lakoća s kojom smo 252 00:11:54,380 --> 00:11:56,270 koristiti ih sada i uzeti zdravo za gotovo, stvarno 253 00:11:56,270 --> 00:12:00,070 počelo ovdje, samo nekoliko koraka iz tog stvarnog kazališta. 254 00:12:00,070 --> 00:12:03,930 A sada je danas, ako ne sam, ovo je Maxwell Dworkin, računalo 255 00:12:03,930 --> 00:12:05,810 Zgrada znanosti, također iza ugla. 256 00:12:05,810 --> 00:12:09,760 A na drugom katu ova Zgrada se objesiti tri stranice 257 00:12:09,760 --> 00:12:12,740 iz izvornog koda koji Bill Gates i Paul Allen je napisao. 258 00:12:12,740 --> 00:12:14,770 U stvari, ako je uporaba zumirate u možete vidjeti ne samo 259 00:12:14,770 --> 00:12:17,350 njihova imena Izvorni tipa, ali 260 00:12:17,350 --> 00:12:22,100 njihovi potpisi da su ukrašavale Nekoliko godina unatrag kada su zadnji put posjetili. 261 00:12:22,100 --> 00:12:25,800 >> No, ono što je posebno uvjerljiv O to je ono što su krenuli raditi 262 00:12:25,800 --> 00:12:29,760 bio je napisati program koji će bi ostali korisnici mogli pisati 263 00:12:29,760 --> 00:12:30,950 vlastite programe. 264 00:12:30,950 --> 00:12:34,280 U to vrijeme sve je bilo s to Altair stroj izrađen od strane rukavice. 265 00:12:34,280 --> 00:12:40,020 A sve što im je potrebno je neki način što ga čini lako za hobisti i ljudi 266 00:12:40,020 --> 00:12:45,300 Sviđa nam se u ovoj sobi zapravo Program da ne mora nužno razumijevanje 267 00:12:45,300 --> 00:12:49,060 Kod skupština, ili stroj broj, ili ne daj Bože, 0s i 1s. 268 00:12:49,060 --> 00:12:51,190 Mi programeri, kao što su oni u ovoj sobi, mi 269 00:12:51,190 --> 00:12:54,070 želim biti u mogućnosti izraziti i sami mnogo više kao pseudo kodu 270 00:12:54,070 --> 00:12:57,330 čak i ako je malo više gnjida izbirljiva nego što smo razgovarali prošlog tjedna. 271 00:12:57,330 --> 00:13:00,970 Mi ne želimo pisati kod ovako, koja Paul Allen i Bill Gates učinio. 272 00:13:00,970 --> 00:13:04,850 Mi, umjesto toga, želim napisati kod koji izgleda malo više user friendly. 273 00:13:04,850 --> 00:13:07,150 >> Sada je to jezik poznat kao BASIC. 274 00:13:07,150 --> 00:13:11,497 A brojeve redaka postoje ono što vas koristiti za jednostavno numeriranje redaka koda 275 00:13:11,497 --> 00:13:12,330 da pišete. 276 00:13:12,330 --> 00:13:14,038 Mi čak ne moraju to učiniti ovih dana. 277 00:13:14,038 --> 00:13:16,060 No, možete vidjeti ovdje Kako PRINT "Zdravo, svijete" 278 00:13:16,060 --> 00:13:18,660 bi doista vjerojatno ispisati upravo to. 279 00:13:18,660 --> 00:13:22,710 I tako ono što Bill i Pavao učinio je osnažiti ljude da pisati kod ovako 280 00:13:22,710 --> 00:13:27,240 umjesto of-- ako pogledamo informatika wall-- kod ovako. 281 00:13:27,240 --> 00:13:29,290 >> Naime, nedavno je CS50 imali priliku 282 00:13:29,290 --> 00:13:32,540 sjesti s profesorom Harryjem Lewis u Computer Science odjela, koji 283 00:13:32,540 --> 00:13:34,640 zapravo učio Bill Gates je prije nekoliko godina, 284 00:13:34,640 --> 00:13:38,460 i stoji ovdje pred te tri stranice izvadaka. 285 00:13:38,460 --> 00:13:39,560 Idemo pogledati. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Ono što imamo ovdje je popis ranoj komad softvera 287 00:13:45,520 --> 00:13:50,240 napisao je Bill Gates i Paul Allen, osnivači Microsoft. 288 00:13:50,240 --> 00:13:52,570 Dakle kod je zanimljiva iz dva razloga. 289 00:13:52,570 --> 00:13:55,480 Prije svega, on postaje Microsoft prvi proizvod, 290 00:13:55,480 --> 00:14:01,810 koji je bio tumač za osnovni programski jezik. 291 00:14:01,810 --> 00:14:04,940 A kao drugo, ovo je bio jedan od prvih pokušaja 292 00:14:04,940 --> 00:14:10,580 stvoriti tumača tako obična ljudi bi mogli koristiti osobna računala. 293 00:14:10,580 --> 00:14:12,670 >> Dakle, Bill Gates je preddiplomskog studija na Harvardu. 294 00:14:12,670 --> 00:14:14,820 Počela sam predavao na Harvardu 1974. 295 00:14:14,820 --> 00:14:16,560 To je učinjeno u 1975. 296 00:14:16,560 --> 00:14:20,180 Tako je bilo rano u svojoj karijeri i rano u svojoj karijeri. 297 00:14:20,180 --> 00:14:23,790 Ja sam zapravo učio Billa Naravno, u ovo vrijeme. 298 00:14:23,790 --> 00:14:27,130 Paul Allen nije bio Harvardski student, ali on 299 00:14:27,130 --> 00:14:31,020 je bio u srednjoj školi kolegica Billa Gatesa. 300 00:14:31,020 --> 00:14:33,740 Ako ste došli i tražiti na popisu, vi ćete 301 00:14:33,740 --> 00:14:36,230 zapravo pronaći treći ime, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 koji je Gates je kolegica ovdje na Harvardu. 303 00:14:39,260 --> 00:14:41,340 >> U redu, pa evo Zanimljiv komentar ovdje. 304 00:14:41,340 --> 00:14:47,150 On kaže: "U 4K možete izbrisati korijen ali za petlje treba i dalje raditi. " 305 00:14:47,150 --> 00:14:53,080 U redu, pa što to znači da postoji su dva načina da se prevedu ovaj program. 306 00:14:53,080 --> 00:14:57,860 Jedan je bio za rad na verziji ove Altair računala 307 00:14:57,860 --> 00:15:04,310 koji je imao samo 4K riječi memorije, 4.096 riječi memorije. 308 00:15:04,310 --> 00:15:07,050 No, velika verzija imala 8K. 309 00:15:07,050 --> 00:15:09,770 I stoga, što to govori je da je u verziji 4K 310 00:15:09,770 --> 00:15:12,770 morali ste izbrisali neki kod kako bi ga stane. 311 00:15:12,770 --> 00:15:14,790 A jedna od stvari da će se brisati 312 00:15:14,790 --> 00:15:16,290 bi korijen rutinu. 313 00:15:16,290 --> 00:15:20,360 No, očito za petlje i dalje treba 314 00:15:20,360 --> 00:15:26,392 raditi čak i kad ste u sastavljanju dolje za samo 4K verziji računalu. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Dakle, jedna od tema, kao što ćemo vidjeti u računalnoj znanosti, 316 00:15:29,350 --> 00:15:31,430 je taj pojam raslojavanje i apstrakcija, 317 00:15:31,430 --> 00:15:34,670 i stvarno stoji na ramenima od ljudi koji su došli prije nas, a ne 318 00:15:34,670 --> 00:15:37,890 za razliku od nekih od Billa Gatesa i Paul Allen narativni ovdje. 319 00:15:37,890 --> 00:15:40,080 A što to znači da danas možemo uzeti za 320 00:15:40,080 --> 00:15:43,490 gotovo da su stvari zapravo lakše za nas da pisanje koda. 321 00:15:43,490 --> 00:15:47,170 Doista broj, kao što smo rekli, u petak, je više tehnički poznat kao izvornog koda. 322 00:15:47,170 --> 00:15:52,210 I to je taj engleski kao sintakse to je više pravilan i dobro definirana 323 00:15:52,210 --> 00:15:55,480 nego nešto poput pseudo kodu, za što ne postoji formalna definicija. 324 00:15:55,480 --> 00:15:58,320 >> I danas je ono što ćemo da se usredotočite na je izvorni kod 325 00:15:58,320 --> 00:16:01,010 da izgleda ovako, što doduše na prvi pogled 326 00:16:01,010 --> 00:16:02,690 izgleda potpuno zagonetan. 327 00:16:02,690 --> 00:16:08,540 I iskreno, to je daleko više estetski složeniji nego temeljni program. 328 00:16:08,540 --> 00:16:13,300 Sve to program radi, Podsjetimo, je ono što smo rekli? 329 00:16:13,300 --> 00:16:14,990 To samo ispisuje "Pozdrav svijetu". 330 00:16:14,990 --> 00:16:19,600 A ipak pogledati sve stvari trebamo omotati oko tog vrlo jednostavnog izraza. 331 00:16:19,600 --> 00:16:21,750 Ali ne zadugo sve ove linije i više 332 00:16:21,750 --> 00:16:24,800 učinit će puno bolji osjećaj za vas. 333 00:16:24,800 --> 00:16:26,940 >> A protok je kako slijedi. 334 00:16:26,940 --> 00:16:31,220 Ono što nam je potrebno na raspolaganju je da se kod, kao izvor 335 00:16:31,220 --> 00:16:32,340 kod koje smo upravo vidjeli. 336 00:16:32,340 --> 00:16:35,060 I mi trebamo novi program da ga pokrenuti kroz. 337 00:16:35,060 --> 00:16:39,130 Trebamo algoritme koji mogu pretvoriti izvorni kod, kao što je ovaj, 338 00:16:39,130 --> 00:16:41,932 u objektnom kodu, 0s i 1s. 339 00:16:41,932 --> 00:16:43,890 Drugim riječima, ono što ćemo saznati danas 340 00:16:43,890 --> 00:16:46,620 je kako to učiniti, pisati Izvorni kod do vrha, 341 00:16:46,620 --> 00:16:49,930 to prođe kao ulaz u poseban Program poznat kao prevodilac, 342 00:16:49,930 --> 00:16:52,140 i mi ćemo proizvoditi objekt kod. 343 00:16:52,140 --> 00:16:54,600 Koji je samo fancy način rekavši da će se nešto 344 00:16:54,600 --> 00:16:58,350 da izgleda ovako, to prođe u programu pod nazivom prevodilac, 345 00:16:58,350 --> 00:17:01,210 proizvodnju objekt kod da izgleda ovako. 346 00:17:01,210 --> 00:17:04,720 >> Dakle, to su doslovno obrasci 0s i 1s 347 00:17:04,720 --> 00:17:08,550 koje razumiju Intel računalo ovih dana, 348 00:17:08,550 --> 00:17:12,480 da, ako tumači CPU, mozak unutar računala, 349 00:17:12,480 --> 00:17:16,130 Doslovno će ispisati, vrlo jednostavno, "Pozdrav svijetu". 350 00:17:16,130 --> 00:17:19,670 Sada postoji način više 0s i 1s od tebe bi se nadamo da će biti potrebno za to. 351 00:17:19,670 --> 00:17:22,520 Ali to je zato što gradimo na podosta složenosti 352 00:17:22,520 --> 00:17:24,270 da smo od sada može uzeti zdravo za gotovo. 353 00:17:24,270 --> 00:17:27,869 Drugim riječima, puno pametnih ljudi su nam dali puno cool alata 354 00:17:27,869 --> 00:17:32,480 i moćan softver s kojim smo Sada možete napraviti projekte naše. 355 00:17:32,480 --> 00:17:33,400 >> Pa počnimo. 356 00:17:33,400 --> 00:17:36,640 Dok je prošlog petka, i Problem za Set 0 ovaj tjedan, 357 00:17:36,640 --> 00:17:39,000 vi ćete se igrati u svijet koji izgleda ovako. 358 00:17:39,000 --> 00:17:42,180 Počevši od danas, a za problem Set 1 sljedećeg tjedna, kod 359 00:17:42,180 --> 00:17:45,410 će izgledati malo više tajanstven, ali funkcionalno je 360 00:17:45,410 --> 00:17:46,940 će biti isti. 361 00:17:46,940 --> 00:17:50,770 Dakle obavijest, vrh je ispočetka, Dno je C. Iskreno Scratch 362 00:17:50,770 --> 00:17:52,780 je puno više user prijateljski i pristupačan. 363 00:17:52,780 --> 00:17:56,890 Ali ako sada usporediti vizualno vrha do Dno, tu je vrsta jedan prema jedan 364 00:17:56,890 --> 00:17:59,690 podudarnost između slagalice i jezik 365 00:17:59,690 --> 00:18:00,870 Uskoro igrati. 366 00:18:00,870 --> 00:18:04,420 Konkretno, kažu, plava zagonetka komad do vrha, 367 00:18:04,420 --> 00:18:08,370 je očito ekvivalent kojoj ključnu riječ ili posebni izraz u tom jeziku 368 00:18:08,370 --> 00:18:09,062 pod nazivom C? 369 00:18:09,062 --> 00:18:09,770 PUBLIKA: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 To znači formatirani ispis. 372 00:18:12,140 --> 00:18:15,240 A to je samo fantazija način govoreći printf u C 373 00:18:15,240 --> 00:18:18,615 će biti izjava ili funkciju koji ispisuje nešto na zaslonu. 374 00:18:18,615 --> 00:18:19,990 Što se ispisati na ekranu? 375 00:18:19,990 --> 00:18:23,627 Što god vam reći da unutar citati, unutar zagrada. 376 00:18:23,627 --> 00:18:25,460 Pa opet, doduše, postoji puno stvari 377 00:18:25,460 --> 00:18:27,990 da imate na umu, zagrade, citati, zarezom, 378 00:18:27,990 --> 00:18:28,656 i sve to. 379 00:18:28,656 --> 00:18:30,600 No, sve to je vrsta od bespredmetno. 380 00:18:30,600 --> 00:18:33,660 Zanimljivo takeaway za sada je da je recimo blok u Scratch 381 00:18:33,660 --> 00:18:37,520 je prilično ekvivalentno printf izjavu u C 382 00:18:37,520 --> 00:18:41,390 >> U međuvremenu, žuta zagonetka komad do vrha, kada je zelena zastava kliknuli, 383 00:18:41,390 --> 00:18:44,736 Vjerojatno je ekvivalent onome što Ključna riječ ovdje? 384 00:18:44,736 --> 00:18:45,360 PUBLIKA: Glavni. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Pa glavni. 386 00:18:46,359 --> 00:18:47,410 Možda int, možda nevažeće. 387 00:18:47,410 --> 00:18:51,280 No, glavna vrsta zvukova kao što su važno je, i doista je. 388 00:18:51,280 --> 00:18:54,080 Dakle, kada zelena zastava kliknuli je, opet, zagonetka komad 389 00:18:54,080 --> 00:18:56,390 koji započinje Cijeli Scratch programu. 390 00:18:56,390 --> 00:19:02,140 No, mi ćemo sada početi zovete da je glavni, ova funkcija poznat kao glavna. 391 00:19:02,140 --> 00:19:06,410 >> Sada je u međuvremenu ćemo se generalizirati to na sljedeći način. 392 00:19:06,410 --> 00:19:08,780 Bismo mogli nazvati reći funkciju. 393 00:19:08,780 --> 00:19:10,580 I to može izgledati posebno kao što je ovaj. 394 00:19:10,580 --> 00:19:11,770 Pa, što je s petlje? 395 00:19:11,770 --> 00:19:16,540 Ako želimo pokrenuti pretvaranje ili prevodio više u Scratch do C, 396 00:19:16,540 --> 00:19:19,400 ova stvar ovdje očito samo kaže: "Pozdrav svijetu" zauvijek. 397 00:19:19,400 --> 00:19:23,060 Dakle, ako ste to povezati skripte s mačkom u Scratch, 398 00:19:23,060 --> 00:19:26,560 To samo će zadržati govoreći u nekoj vrsti crtani mjehura, 399 00:19:26,560 --> 00:19:29,922 "Pozdrav svijetu, Pozdrav svijetu, Pozdrav Svijet, "ad nauseum, zauvijek. 400 00:19:29,922 --> 00:19:33,130 Ako želimo napraviti nešto slično u C, to će izgledati pomalo zagonetan. 401 00:19:33,130 --> 00:19:35,463 Ali možemo postići isti rezultata, jer ćemo na kraju 402 00:19:35,463 --> 00:19:36,861 saznati, sa sintaksom kao što je ovaj. 403 00:19:36,861 --> 00:19:39,360 Ja ću opet koristiti printf, jer je na kraju dan 404 00:19:39,360 --> 00:19:42,040 Želim ispisati "Pozdrav svijetu". 405 00:19:42,040 --> 00:19:45,610 I ja sam očito pomoću ključna riječ koja se ne zauvijek. 406 00:19:45,610 --> 00:19:47,320 To je umjesto riječi dok. 407 00:19:47,320 --> 00:19:49,650 Ali samo semantički u Engleski, dok je vrsta 408 00:19:49,650 --> 00:19:52,120 sugerira neku vrstu petlje ili ciklusa. 409 00:19:52,120 --> 00:19:55,070 >> Tako da se događa da se ključna riječ koja C koristi. 410 00:19:55,070 --> 00:20:00,700 I dok je istina, zašto vrijeme Istina učinkovito znači zauvijek? 411 00:20:00,700 --> 00:20:04,240 Pa, dok su, kao i mi uskoro Cijenim sve više, 412 00:20:04,240 --> 00:20:08,140 ima tu zagradi pored njega gdje možete staviti Boolean izraza. 413 00:20:08,140 --> 00:20:11,360 I tako dugo dok to Izraz je istina, ovaj broj, 414 00:20:11,360 --> 00:20:14,750 koji je označen između ove dvije kovrčava aparatić kao i mi ćemo ih nazvati, 415 00:20:14,750 --> 00:20:16,880 samo će se držati i opet radi. 416 00:20:16,880 --> 00:20:18,410 >> Dakle, istina je istina. 417 00:20:18,410 --> 00:20:20,900 Dakle, dok pravih sredstava Upravo to zauvijek. 418 00:20:20,900 --> 00:20:23,480 To je gotovo glupo izgraditi izraziti sebe. 419 00:20:23,480 --> 00:20:26,590 No, tu nije bio zauvijek ključna riječ u C. Tu je bio dok. 420 00:20:26,590 --> 00:20:29,390 A tu je bila vrlo jednostavna Logički izraz kao što je istina. 421 00:20:29,390 --> 00:20:32,210 I tako to, vidjet ćemo, postiže isti rezultat. 422 00:20:32,210 --> 00:20:33,890 >> Kako inače možda provesti petlju? 423 00:20:33,890 --> 00:20:36,980 Pa, u Scratch možda ćete Teško kod određeni broj 424 00:20:36,980 --> 00:20:39,430 iteracija u petlji ovdje. 425 00:20:39,430 --> 00:20:43,210 I to je upravo ono što smo mogao učiniti u ovoj verziji C, 426 00:20:43,210 --> 00:20:46,140 pri čemu imamo tzv for petlje. 427 00:20:46,140 --> 00:20:49,850 I za petlju ovdje će kako bi ponoviti, nešto skriveno, 428 00:20:49,850 --> 00:20:54,100 od vrijednosti 0 Na gore da, ali manje od 10. 429 00:20:54,100 --> 00:20:55,955 >> Sada varijable u nule. 430 00:20:55,955 --> 00:20:57,830 Vi ne bi imali Povod za korištenje tih. 431 00:20:57,830 --> 00:21:02,516 No, ono što je poanta, u cjelini, varijable smo rekli prošli tjedan? 432 00:21:02,516 --> 00:21:03,015 Što je to? 433 00:21:03,015 --> 00:21:03,780 >> Publika: Bodovi. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: Za istaknuti? 435 00:21:05,200 --> 00:21:05,700 Oh, ističe. 436 00:21:05,700 --> 00:21:07,620 U redu, praćenje točaka, Na primjer, u igri. 437 00:21:07,620 --> 00:21:09,510 Ili općenito rade što je s varijablom? 438 00:21:09,510 --> 00:21:10,450 Koja je korist od njih? 439 00:21:10,450 --> 00:21:10,825 >> PUBLIKA: memorije. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Da, tako memorije. 441 00:21:11,750 --> 00:21:13,000 To je za spremanje nešto. 442 00:21:13,000 --> 00:21:17,336 I vrsta glupog vizualnog sam koristio Posljednji put je bio poput ove staklene zdjele. 443 00:21:17,336 --> 00:21:19,710 A ako smo htjeli pohraniti nešto unutar varijable, 444 00:21:19,710 --> 00:21:21,918 primjerice upravo sada Vrijednost je šest, jer postoji 445 00:21:21,918 --> 00:21:23,450 Šest je ping pong loptice u ovdje. 446 00:21:23,450 --> 00:21:26,158 To je samo neka vrsta pohrane Kontejner da se ispod haube 447 00:21:26,158 --> 00:21:30,030 provodi se s bitova, 0s i 1s, Međutim, računalo će se dogoditi za to. 448 00:21:30,030 --> 00:21:32,900 >> Tako je u nule, ako smo Želite imati varijablu, 449 00:21:32,900 --> 00:21:34,840 možemo koristiti naranče blok kao što je ovaj. 450 00:21:34,840 --> 00:21:37,050 Nazvat ćemo taj brojač u ovom konkretnom slučaju. 451 00:21:37,050 --> 00:21:38,890 Ja ga inicijalno 0. 452 00:21:38,890 --> 00:21:41,080 I ono što sam tada učiniti? 453 00:21:41,080 --> 00:21:44,780 Zauvijek, kažu brojač, koji, ako igrate s tim u Scratch, 454 00:21:44,780 --> 00:21:45,780 samo ćete vidjeti nule. 455 00:21:45,780 --> 00:21:49,920 Mačka ili bilo kostim ste stavili na on će govoriti broj u pitanju. 456 00:21:49,920 --> 00:21:52,840 >> Promjena brojač za 1 je kao i povećavati za 1. 457 00:21:52,840 --> 00:21:56,580 I tako to ide računati s Pa što što? 458 00:21:56,580 --> 00:21:59,114 Od 0 til beskonačnosti, ili do nule pauze, 459 00:21:59,114 --> 00:22:01,030 ili dok ne vrsta gube interes za promatranje 460 00:22:01,030 --> 00:22:02,650 koliko visoko on zapravo može računati. 461 00:22:02,650 --> 00:22:04,800 >> Pa kako bismo mogli pretvoriti u C? 462 00:22:04,800 --> 00:22:06,480 To će izgledati malo zagonetan. 463 00:22:06,480 --> 00:22:08,896 Ali opet, ako pogledate svako ovih redaka pojedinačno 464 00:22:08,896 --> 00:22:10,410 oni vrsta lineup općenito. 465 00:22:10,410 --> 00:22:13,526 Dakle, očito int će imaju neki poseban smisao u C 466 00:22:13,526 --> 00:22:14,400 Mi ćemo opet vidjeti. 467 00:22:14,400 --> 00:22:15,810 Kao na stranu, to znači cijeli broj. 468 00:22:15,810 --> 00:22:16,990 Dakle, to samo znači broj. 469 00:22:16,990 --> 00:22:18,920 Dakle, to je vrsta staklene zdjele želim, jedan 470 00:22:18,920 --> 00:22:21,120 koji može pohraniti brojeve, Ne ping pong loptice. 471 00:22:21,120 --> 00:22:25,520 A ja ću koristiti znak jednakosti tamo je dodijeliti vrijednost 0. 472 00:22:25,520 --> 00:22:29,440 Tako da je sasvim kao set brojač na 0, ali u C. 473 00:22:29,440 --> 00:22:32,840 >> U međuvremenu, dok je istina, to je bilo ekvivalent, naravno, da se zauvijek, 474 00:22:32,840 --> 00:22:35,980 iako je pomalo zagonetan, a onda unutar vitičastih zagrada. 475 00:22:35,980 --> 00:22:39,188 A možete se sjetiti tih vitičastim zagradama, koji možete upisati na tipkovnici, 476 00:22:39,188 --> 00:22:43,110 kao što je stvarno bio poput zakrivljenosti u ove žute blokove petlja u nule. 477 00:22:43,110 --> 00:22:45,700 On obuhvaća više linija koda. 478 00:22:45,700 --> 00:22:48,120 >> Printf je dobivanje pomalo zastrašujuće sada jer sam 479 00:22:48,120 --> 00:22:51,120 vidjeti ne samo citati u zagradama. 480 00:22:51,120 --> 00:22:55,160 No, ono što je još novo sintaktički u ovom primjeru? 481 00:22:55,160 --> 00:22:57,300 Postoji posto d. 482 00:22:57,300 --> 00:22:58,551 A onda Obrnuta kosa crta n postoji. 483 00:22:58,551 --> 00:23:00,883 Nismo prije vidjeli da je, čak i iako nisam to spomenuo. 484 00:23:00,883 --> 00:23:01,886 Zatim tu je zarez. 485 00:23:01,886 --> 00:23:03,010 A tu je i brojač. 486 00:23:03,010 --> 00:23:05,010 >> No, vidjet ćemo u samo Trenutak da je to samo 487 00:23:05,010 --> 00:23:09,080 standardni način govoreći ispisati "Decimalni broj", citat, završiti citat, 488 00:23:09,080 --> 00:23:10,500 Neki decimalni broj. 489 00:23:10,500 --> 00:23:13,370 Ali ja ću ti poslije što to decimale broj. 490 00:23:13,370 --> 00:23:16,835 Dakle, činjenica da postoji zarez U ovoj liniji izreka printf, 491 00:23:16,835 --> 00:23:18,710 znači ići naprijed i ispis Neki decimalni broj. 492 00:23:18,710 --> 00:23:23,110 Oh, i usput, broj bez obzira na vrijednost ove varijable. 493 00:23:23,110 --> 00:23:25,880 I tako da bi se ova više Jasno, mi ćemo vidjeti primjer 494 00:23:25,880 --> 00:23:30,930 prije dugo uključuje točno printf U kontekstu stvarnom C programa. 495 00:23:30,930 --> 00:23:33,472 >> Sada samo završiti neke od tih konstrukata. 496 00:23:33,472 --> 00:23:36,680 Boolean izrazi, možda nećete imati Povod za korištenje ove u svom programu 497 00:23:36,680 --> 00:23:39,450 ali možda vrlo dobro, pogotovo ako koristite uvjete. 498 00:23:39,450 --> 00:23:43,460 I tako ta dva primjera iz Zagrebite znači ako je x manji od y, 499 00:23:43,460 --> 00:23:48,770 ili ako je x manja od y i y je manja od z, kako bismo mogli prevesti to? 500 00:23:48,770 --> 00:23:50,810 >> Pa, u C to je samo će izgledati ovako. 501 00:23:50,810 --> 00:23:55,300 A mali grobni, više zagrade, neke čudne znakove za, ali u osnovi 502 00:23:55,300 --> 00:23:59,160 Ideje su jednostavne kao što su u puzzle komad svijeta. 503 00:23:59,160 --> 00:24:02,690 Mi jednostavno provjere da li se nešto manji je od nečeg drugog. 504 00:24:02,690 --> 00:24:03,910 >> Kako o uvjetima? 505 00:24:03,910 --> 00:24:09,710 U Ukratko na engleskom jeziku, što čini komad Scratch koda ne biste rekli? 506 00:24:09,710 --> 00:24:11,050 >> PUBLIKA: Uspoređuje dva broja. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: Uspoređuje dva te, ako je x manja od y 508 00:24:13,760 --> 00:24:14,860 to govori koliko. 509 00:24:14,860 --> 00:24:18,080 Ako je x veći od y ona kaže koliko, inače 510 00:24:18,080 --> 00:24:20,740 ako je x jednak y ona kaže koliko. 511 00:24:20,740 --> 00:24:22,180 Sada gdje je X i Y dolaze iz? 512 00:24:22,180 --> 00:24:22,680 Tko zna. 513 00:24:22,680 --> 00:24:25,380 Ovaj komad ispočetka kod je izvan konteksta. 514 00:24:25,380 --> 00:24:29,050 No, ono što želimo učiniti sada je prevesti to samo na trenutak vidjeti. 515 00:24:29,050 --> 00:24:31,660 >> Dakle, kao što ste dobili udobna ovaj tjedan u problem Set 516 00:24:31,660 --> 00:24:34,190 0 igranja u ovom svijetu na lijevoj strani, shvatite 517 00:24:34,190 --> 00:24:36,940 da se ideje ne mijenjaju ovaj tjedan ili sljedeći ili izvan nje. 518 00:24:36,940 --> 00:24:38,690 Mi jednostavno idemo u početi pisati stvari 519 00:24:38,690 --> 00:24:41,240 na drugačiji način s našim tipkovnica umjesto našeg miša. 520 00:24:41,240 --> 00:24:44,577 >> Dakle, ako je x manji od y, a postoji neki zagrade tamo, 521 00:24:44,577 --> 00:24:47,160 onda postoji neki vitičastim zagradama opet na neki način ga zatvoriti u kućište 522 00:24:47,160 --> 00:24:48,970 baš kao i žuta slagalice učiniti. 523 00:24:48,970 --> 00:24:53,000 A ja ću printf x manji od Y i tako dalje. 524 00:24:53,000 --> 00:24:56,540 >> Što je lijepo o C, kao što možete vidjeti ovdje, 525 00:24:56,540 --> 00:25:00,480 je da ne dobijete tu se gnijezdi, gniježđenje, gniježđenje to je nužno 526 00:25:00,480 --> 00:25:02,220 će gurati svoj kod na desnoj strani. 527 00:25:02,220 --> 00:25:04,990 Umjesto toga možete imati sve postava uredno sviđa. 528 00:25:04,990 --> 00:25:08,960 No, to je samo estetski Detalj ćemo opet vidjeti prije dugo. 529 00:25:08,960 --> 00:25:09,660 >> U redu. 530 00:25:09,660 --> 00:25:13,290 Dakle, što nas vraća na ovaj grobni potrazi programa. 531 00:25:13,290 --> 00:25:15,180 Idemo zapravo pisati neki kod. 532 00:25:15,180 --> 00:25:16,830 Sada kako idete o pisanju koda? 533 00:25:16,830 --> 00:25:21,310 Sve ove godine kada ste u vlasništvu Mac ili PC, stolno ili prijenosno računalo, 534 00:25:21,310 --> 00:25:24,520 ste zapravo imali sposobnost za početak pisanja programskog koda. 535 00:25:24,520 --> 00:25:27,050 Ali ste vjerojatno nedostaje posebna vrsta programa. 536 00:25:27,050 --> 00:25:28,470 Vi naravno možete pisati kod. 537 00:25:28,470 --> 00:25:30,740 Ali ne možete nužno, iz kutije, 538 00:25:30,740 --> 00:25:34,210 pretvoriti taj izvorni kod u odredišni kod, 0s i 1s 539 00:25:34,210 --> 00:25:35,619 bez čega na računalu? 540 00:25:35,619 --> 00:25:36,410 PUBLIKA: prevodilac. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Dakle, prevodilac, zar ne. 542 00:25:37,630 --> 00:25:39,730 Sada većina vas vjerojatno ne posjedujete prevodilac, 543 00:25:39,730 --> 00:25:41,259 nikada nisu preuzeli prevodilac. 544 00:25:41,259 --> 00:25:44,300 No, vidjet ćete možete ga preuzeti kao i većina bilo koji drugi komad softvera. 545 00:25:44,300 --> 00:25:47,470 U svijetu Mac OS, možda ćete preuzimanje ili su već preuzeli 546 00:25:47,470 --> 00:25:50,437 nešto što se zove Xcode ili GCC i jeka. 547 00:25:50,437 --> 00:25:52,270 Ako dolazite iz Windows vam svijet mogao 548 00:25:52,270 --> 00:25:56,190 preuzeli Visual Studio, Visual Basic, okruženja kao što je to. 549 00:25:56,190 --> 00:25:59,200 Postoji deseci prevodiocima ovih dana da bi moglo koristiti. 550 00:25:59,200 --> 00:26:01,940 No, kratko je to ovdje je da bi bilo boli 551 00:26:01,940 --> 00:26:04,480 i, iskreno govoreći, tehnološki noćna mora za stotine 552 00:26:04,480 --> 00:26:07,680 osoba s različitim računalnih konfiguracija svima 553 00:26:07,680 --> 00:26:09,800 podesiti strojeve na isti način 554 00:26:09,800 --> 00:26:11,700 tako da svi možemo biti na istoj stranici. 555 00:26:11,700 --> 00:26:15,240 >> Dakle, ono što mi, umjesto toga, učinite u CS50 se možemo vam dati 556 00:26:15,240 --> 00:26:18,349 standardni okoliš, Linux okruženje koje je 557 00:26:18,349 --> 00:26:20,140 će izgledati malo nešto kao što je ovaj. 558 00:26:20,140 --> 00:26:22,980 Vidjet ćete više o tome u Problem Set 1 specifikacije koje 559 00:26:22,980 --> 00:26:25,330 će ići online ovog petka navečer. 560 00:26:25,330 --> 00:26:28,360 >> A što to znači je da ubuduće 561 00:26:28,360 --> 00:26:32,060 će biti u stanju preuzeti i instalirati program 562 00:26:32,060 --> 00:26:33,650 nazvao CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 I vi ćete preuzeti i instalirate neki drugi program koji se zove 564 00:26:36,275 --> 00:26:40,300 hipervizor, što je samo fancy način postizanja toga. 565 00:26:40,300 --> 00:26:44,600 Bilo da posjedujete Mac ili PC ili Linux računalo ili Solaris računalo, 566 00:26:44,600 --> 00:26:46,830 ili što god luda operativnog Sustav radite, 567 00:26:46,830 --> 00:26:49,820 ti ćeš skinuti program zove hypervisor koji je 568 00:26:49,820 --> 00:26:53,350 će pokrenuti CS50 Uređaj se na računalu 569 00:26:53,350 --> 00:26:55,430 bez obzira na vaš operativni sustav. 570 00:26:55,430 --> 00:27:00,640 Hipervizor drugim riječima pretvara naše stvari da se bez obzira na jezik, 571 00:27:00,640 --> 00:27:03,850 bez obzira na upute svog vlastito računalo razumije. 572 00:27:03,850 --> 00:27:04,962 >> Dakle, ovo je raslojavanje. 573 00:27:04,962 --> 00:27:06,920 I opet, to je neka vrsta tematskih u računalu 574 00:27:06,920 --> 00:27:08,722 znanost, zgrada na vrhu stvari. 575 00:27:08,722 --> 00:27:09,680 Možda ste Windows. 576 00:27:09,680 --> 00:27:10,710 Možda ste Mac OS. 577 00:27:10,710 --> 00:27:12,960 No, početkom idućeg tjedna si će se skinuti 578 00:27:12,960 --> 00:27:14,980 besplatni komad softvera zove hipervizor. 579 00:27:14,980 --> 00:27:17,800 Ti ćeš se skinuti komad softvera zove CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> To će se izvoditi u hypervisor, koji će se izvoditi na vašem računalu. 581 00:27:21,050 --> 00:27:23,030 A krajnji rezultat je da svatko od nas će se 582 00:27:23,030 --> 00:27:26,220 imaju jednostavan prozor poput ovo na vašem Mac ili PC 583 00:27:26,220 --> 00:27:30,160 koje nam daje iluziju sve i isti operacijski sustav, 584 00:27:30,160 --> 00:27:32,800 bez bilo koje druge Utjecaj na vašem računalu. 585 00:27:32,800 --> 00:27:34,870 A možete preko cijelog zaslona to i bitno se ponašati 586 00:27:34,870 --> 00:27:37,550 kao da radite operativni sustav pod nazivom Linux, 587 00:27:37,550 --> 00:27:40,270 što je ono što CS50 Uređaj je temeljen na. 588 00:27:40,270 --> 00:27:42,930 >> Tako ćemo zapravo koristiti taj sada napisati program. 589 00:27:42,930 --> 00:27:45,450 Možete napisati program korištenjem Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Možete napisati program korištenjem TextEdit, ili Notepad, 591 00:27:48,160 --> 00:27:51,880 ili WordPad, ili prilično mnogo bilo riječi Program za obradu ste ikada koristili. 592 00:27:51,880 --> 00:27:55,174 No, stvarnost je da ne bi trebali koristiti stvarno bilo koji od tih programa. 593 00:27:55,174 --> 00:27:57,840 Vi sigurno ne bi trebao koristiti nešto poput Microsoft Word, koji 594 00:27:57,840 --> 00:28:01,120 ima podebljano s kojima se suočavaju i kurziv i veće fontove i manje fontove, 595 00:28:01,120 --> 00:28:03,560 jer računalo ne stalo bilo koji od toga. 596 00:28:03,560 --> 00:28:05,600 Sve računalo će se stalo je 597 00:28:05,600 --> 00:28:09,040 Engleski kao i upute pisane u C 598 00:28:09,040 --> 00:28:12,050 >> Pa što ćemo učiniti unutar od CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 se koristiti program slobodno na raspolaganju, a to je 600 00:28:14,290 --> 00:28:17,360 unaprijed instaliran u ovom Uređaj, nazvan gedit. 601 00:28:17,360 --> 00:28:22,280 I gedit je samo super jednostavna tekst editor kao što je Mac OS-a TextEdit, 602 00:28:22,280 --> 00:28:26,200 kao što je Windows Notepad da će se to izgleda malo nešto ovako. 603 00:28:26,200 --> 00:28:28,910 >> Tako ćemo zapravo i nije pogled na slajdovima od toga. 604 00:28:28,910 --> 00:28:32,580 Ali neka se zapravo ide u Sama okolina. 605 00:28:32,580 --> 00:28:36,090 Ja ću ići naprijed i prijavite se, u ovom drugom prozoru, 606 00:28:36,090 --> 00:28:40,910 mom CS50 Appliance, što sam unaprijed instaliran na laptopu ovdje. 607 00:28:40,910 --> 00:28:43,771 >> Uočite da, kao što su Windows i Mac OS, to je dobio neki od izbornika. 608 00:28:43,771 --> 00:28:45,520 Kao i Windows stavlja je tamo dolje, umjesto 609 00:28:45,520 --> 00:28:47,020 Mac OS, što ga stavlja tamo dolje. 610 00:28:47,020 --> 00:28:48,930 No, stvarnost je da je sve vrste isto. 611 00:28:48,930 --> 00:28:50,770 I ovdje je cijeli Hrpa softvera. 612 00:28:50,770 --> 00:28:51,770 Tu je Dropbox. 613 00:28:51,770 --> 00:28:54,780 Postoji cijela hrpa pribora, grafički programi koji ćemo 614 00:28:54,780 --> 00:28:56,430 koristiti kasnije u roku za problematične setovima. 615 00:28:56,430 --> 00:28:59,650 Tu je web preglednik izgrađen u tako da je to punopravnog računalo 616 00:28:59,650 --> 00:29:01,240 unutar računala. 617 00:29:01,240 --> 00:29:04,170 >> Ali ću kliknite ovaj leftmost bijelu ikonu ovdje, 618 00:29:04,170 --> 00:29:05,890 koji je simbol za gedit. 619 00:29:05,890 --> 00:29:09,650 I to će se otvoriti prozor koji ima tri panela na njega, 620 00:29:09,650 --> 00:29:12,590 lijeva, gornja jedan, a dno je jedan. 621 00:29:12,590 --> 00:29:16,071 >> Sada je u tom gornjem desnom onaj koji Idem zapravo pisati neki kod. 622 00:29:16,071 --> 00:29:16,820 Tako ćemo to učiniti ,. 623 00:29:16,820 --> 00:29:19,040 Ja ću ići na File, Save. 624 00:29:19,040 --> 00:29:22,100 A možda ne ikada vidjeli Prije nego ovaj prozor. 625 00:29:22,100 --> 00:29:23,620 No, to je kao Mac OS ili Windows. 626 00:29:23,620 --> 00:29:25,490 To je samo prozor sa svim mapama 627 00:29:25,490 --> 00:29:27,290 da imam unutar ovog računala. 628 00:29:27,290 --> 00:29:30,320 >> A ja ću spasiti Datoteka kao hello.c. 629 00:29:30,320 --> 00:29:32,690 I ja ću otići naprijed i kliknite Spremi. 630 00:29:32,690 --> 00:29:36,364 I sada primijetiti imam karticu u gornjem lijevom zove hello.c. 631 00:29:36,364 --> 00:29:38,280 Dakle, vjerojatno prilično upoznati, čak i ako ste ne 632 00:29:38,280 --> 00:29:40,240 iskorišten ovaj program prije. 633 00:29:40,240 --> 00:29:44,890 >> A sada ću upisati u onima prilično zagonetan niz naredbi 634 00:29:44,890 --> 00:29:46,360 kako smo vidjeli maloprije. 635 00:29:46,360 --> 00:29:49,330 Uključiti, standardni ja / O.h. 636 00:29:49,330 --> 00:29:50,600 Više o tome uskoro. 637 00:29:50,600 --> 00:29:55,670 Int main void, otvoren kovrčava Brace, zatvorena kovrčavu braće. 638 00:29:55,670 --> 00:30:01,570 I onda unutar postoji ja mislim da je gdje smo imali "Pozdrav svijetu", sa zarezom. 639 00:30:01,570 --> 00:30:03,100 I sad spremili. 640 00:30:03,100 --> 00:30:08,780 >> Dakle, ovo je program napisan u C, napisao, dakle, u izvornom kodu. 641 00:30:08,780 --> 00:30:10,720 Ali ja ne mogu samo pokrenuti ovaj program. 642 00:30:10,720 --> 00:30:13,390 Nekako mi želimo udvostručiti kliknite na ikonu negdje, 643 00:30:13,390 --> 00:30:16,390 ali ne postoji druga ikona od izvornog koda datoteke. 644 00:30:16,390 --> 00:30:20,359 Što, opet, je proces sada da Moram pokrenuti ovu datoteku putem? 645 00:30:20,359 --> 00:30:21,150 PUBLIKA: prevodilac. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Pa prevodilac. 647 00:30:22,399 --> 00:30:24,890 Dakle, u različitim računalima ste učinite to na različite načine. 648 00:30:24,890 --> 00:30:27,480 Ali ono što smo učinili ovdje u CS50 Appliance to je 649 00:30:27,480 --> 00:30:31,260 Predstavnik kako biste mogli to učiniti na mnogo različitih sustava, 650 00:30:31,260 --> 00:30:34,036 Ja se jednostavno ću pokrenuti naredbu zove marka. 651 00:30:34,036 --> 00:30:35,660 I napraviti doslovno će to učiniti. 652 00:30:35,660 --> 00:30:36,640 Učini me programa. 653 00:30:36,640 --> 00:30:39,060 >> Tako da će se pokrenuti prevodilac za mene. 654 00:30:39,060 --> 00:30:42,160 A ime programa Želim da se pozdravi. 655 00:30:42,160 --> 00:30:43,510 Sada bi je program. 656 00:30:43,510 --> 00:30:47,170 A da je dovoljno da se pametna shvatiti da ako kažem da pozdravi, 657 00:30:47,170 --> 00:30:50,980 to će izgledati automatski za datoteke zove hello.c 658 00:30:50,980 --> 00:30:53,420 Upravo zato što je način na koji je konfiguriran. 659 00:30:53,420 --> 00:31:00,300 >> Dakle, kad sam sad pogodio Enter ovdje, ovo luda grobni linija upravo je dobio pogubljeni. 660 00:31:00,300 --> 00:31:02,720 I vjerujte mi, prije dugo, u roku od samo nekoliko dana, 661 00:31:02,720 --> 00:31:05,590 vi ćete shvatiti što sve od te gluposti sredstvima. 662 00:31:05,590 --> 00:31:11,150 No, za sada, samo znam da bi Pokrenute izvršenje prevodilac. 663 00:31:11,150 --> 00:31:13,290 Drugim riječima, utvrdio prevodilac na mom računalu 664 00:31:13,290 --> 00:31:14,820 to je unaprijed instaliran na CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 da ćemo predati vama u problem Set 1. 666 00:31:16,560 --> 00:31:20,990 I onda je hello.c kao ulaz, a producirao očito 667 00:31:20,990 --> 00:31:23,040 0s i 1s kao izlaz. 668 00:31:23,040 --> 00:31:29,410 >> I po defaultu što je to ipak štedi ti 0s i 1s u datoteku pod nazivom Pozdrav. 669 00:31:29,410 --> 00:31:33,180 I premda ove sintakse također mogu biti novo za vas, jednostavno govoreći točku 670 00:31:33,180 --> 00:31:37,110 slash Pozdrav će biti znači kojim sam pokrenuti ovaj program. 671 00:31:37,110 --> 00:31:40,360 >> Za sada i za barem par tjedana, gotovo sve programe 672 00:31:40,360 --> 00:31:44,230 Pišemo će biti u crno-bijeli tekst prozora. 673 00:31:44,230 --> 00:31:47,006 Ne miševi, ne klikanje, nema prozora, nema ikone. 674 00:31:47,006 --> 00:31:49,630 Mi ćemo i dalje ostane jednostavan i usredotočiti se na temeljne ideje 675 00:31:49,630 --> 00:31:52,490 početku prije nego dođemo do nečega višoj razini, na primjer, 676 00:31:52,490 --> 00:31:56,410 poput break out igre koji smo razgovarali o je u prvom predavanju prošlog tjedna. 677 00:31:56,410 --> 00:32:00,820 >> Dakle, kada sam pogodio Enter ovdje, to je ekvivalent u tekstu samo okoliša 678 00:32:00,820 --> 00:32:03,272 udvostručiti klikom na ikonu pod nazivom Pozdrav. 679 00:32:03,272 --> 00:32:05,480 Što očekujete volju dogoditi kad sam udario Unesite onda? 680 00:32:05,480 --> 00:32:07,120 >> PUBLIKA: To će ispisati "Pozdrav svijetu". 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Nadam to će ispisati "Pozdrav svijetu". 682 00:32:10,000 --> 00:32:11,370 I doista je to učinio. 683 00:32:11,370 --> 00:32:13,690 Sada je došlo do neke grobni sintakse ovdje. 684 00:32:13,690 --> 00:32:15,950 Idemo natrag za samo trenutak i vidjeti možemo li 685 00:32:15,950 --> 00:32:19,530 Ne mogu početi zaključiti samo po petljaju, težak i pogreške, 686 00:32:19,530 --> 00:32:21,130 o tome što se ovdje događa. 687 00:32:21,130 --> 00:32:23,609 Što ako se osloboditi od obrnute kose crte n? 688 00:32:23,609 --> 00:32:25,650 Sada neki od vas koji ste programirani prije vjerojatno 689 00:32:25,650 --> 00:32:27,054 znam odmah što to znači. 690 00:32:27,054 --> 00:32:29,220 No, za one od vas koji ste Nikada prije programirani, 691 00:32:29,220 --> 00:32:34,052 barem mislim na sebe što se događa za promjenu, kada sam ponovno održati ovaj program? 692 00:32:34,052 --> 00:32:37,010 Tako da ću se vratiti dolje na mom Malo crno-bijeli prozor, koji 693 00:32:37,010 --> 00:32:39,290 je prozor u kojem Ja mogu sastaviti to. 694 00:32:39,290 --> 00:32:41,130 Idem rekompilirati zdravo. 695 00:32:41,130 --> 00:32:43,520 Idemo vidjeti ista grobni niz naredbi. 696 00:32:43,520 --> 00:32:45,719 A ja ću učiniti dot crta pozdraviti. 697 00:32:45,719 --> 00:32:48,260 I sada netko, ako bi, tko nikada nije programiran prije, 698 00:32:48,260 --> 00:32:49,770 Što bi moglo biti drugačije ovaj put? 699 00:32:49,770 --> 00:32:50,020 Da. 700 00:32:50,020 --> 00:32:51,840 >> PUBLIKA: To neće zaustaviti ispis "Pozdrav svijetu". 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: To se događa to-- žao? 702 00:32:52,660 --> 00:32:54,210 >> PUBLIKA: To neće zaustaviti ga ispisujete? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: Neće zaustavljanje ispisa "Pozdrav svijetu". 704 00:32:55,810 --> 00:32:56,560 Dakle, nije loša ideja. 705 00:32:56,560 --> 00:32:58,633 Ostale ideje? 706 00:32:58,633 --> 00:32:59,132 Da. 707 00:32:59,132 --> 00:33:00,060 >> PUBLIKA: Poruka o pogrešci? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Greška Poruka, u redu, mogao biti. 709 00:33:01,750 --> 00:33:02,250 Što još? 710 00:33:02,250 --> 00:33:05,479 PUBLIKA: To bi moglo ispisati nosač sa zarezom, kao i? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: Možda ispis nosač sa zarezom, kao i. 712 00:33:08,270 --> 00:33:11,950 Pa možda da Obrnuta kosa crta onda je neki vrsta čena i to je važno. 713 00:33:11,950 --> 00:33:14,860 Bilo koji drugi misli? 714 00:33:14,860 --> 00:33:16,412 >> Dakle, sve dobre ideje. 715 00:33:16,412 --> 00:33:18,370 A u stvari, to se događa se poruka o pogrešci. 716 00:33:18,370 --> 00:33:20,400 To je vjerojatno najvjerojatnije biti odgovor u cjelini 717 00:33:20,400 --> 00:33:22,420 u idućih nekoliko tjedana kao što smo saznali da se kod ovdje. 718 00:33:22,420 --> 00:33:27,680 >> No, za sada ne zaboravite da računala samo ne ono što im kažem. 719 00:33:27,680 --> 00:33:30,400 Slično kao i smiješnim kikirikija maslac i žele primjer. 720 00:33:30,400 --> 00:33:33,860 Naša ljudska računala su samo trebali učiniti ono što im je činiti. 721 00:33:33,860 --> 00:33:36,250 Dakle, u ovom slučaju, ako nemojte reći računalo 722 00:33:36,250 --> 00:33:41,190 za pomicanje kursora na to treptanje Sljedeći linija, to neće to učiniti. 723 00:33:41,190 --> 00:33:45,390 Dakle, kada sam pokrenuti ovaj program Sada, primijetiti razliku. 724 00:33:45,390 --> 00:33:46,900 >> Izgleda kao kukac. 725 00:33:46,900 --> 00:33:49,190 To je estetski bug, možda. 726 00:33:49,190 --> 00:33:53,310 No, ono što je drugačije o tome izlaz u odnosu na posljednji očito? 727 00:33:53,310 --> 00:33:53,810 Da. 728 00:33:53,810 --> 00:33:54,920 >> PUBLIKA: To nije učinio novu liniju. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: To nije učinio novu liniju. 730 00:33:56,586 --> 00:33:58,740 Sada one od vas koji ima možda napravio web stranice 731 00:33:58,740 --> 00:34:01,910 prije, možda znate BR oznaku ili stavka oznaka, 732 00:34:01,910 --> 00:34:03,120 vrlo slični u duhu. 733 00:34:03,120 --> 00:34:06,680 Web preglednik će vas ignorirati dok ti to točno reći što učiniti. 734 00:34:06,680 --> 00:34:10,020 Slično tome, je jezik poput C samo će učiniti ono što vam reći da učinite. 735 00:34:10,020 --> 00:34:12,730 >> Dakle, iz razloga što sve ove primjere, 736 00:34:12,730 --> 00:34:15,350 Do sada, imamo vrsta ležerno je ovu kosu crtu 737 00:34:15,350 --> 00:34:18,560 tamo, to je sredstva kojim se izraziti 738 00:34:18,560 --> 00:34:21,380 kao novi redak karakter, da se tako izrazim. 739 00:34:21,380 --> 00:34:26,219 A možete vrsta cijeniti, možda, da će to izgledati glupo 740 00:34:26,219 --> 00:34:27,070 ako ništa drugo. 741 00:34:27,070 --> 00:34:29,150 Ako sam htjela novu liniju, samo tipke Enter, a zatim vrsta 742 00:34:29,150 --> 00:34:32,219 od klanja kod kao što je to Ne treba stvarno trljati vam na pravi način. 743 00:34:32,219 --> 00:34:33,830 A čak i ako ne stvarno briga u ovom trenutku, 744 00:34:33,830 --> 00:34:35,830 shvatit ćete da to nije posebno 745 00:34:35,830 --> 00:34:37,870 dobro izgleda dio koda. 746 00:34:37,870 --> 00:34:39,969 >> I tako ono što svijet Prije odlučili godina je 747 00:34:39,969 --> 00:34:43,420 da kada želite staviti kursor na novoj liniji izrijekom, 748 00:34:43,420 --> 00:34:46,332 morate izričito reći Nova linija, Obrnuta kosa crta n. 749 00:34:46,332 --> 00:34:48,040 I tu je neki drugi simboli poput toga. 750 00:34:48,040 --> 00:34:50,719 No, za sada samo ćemo usredotočiti se na obrnute kose crte n. 751 00:34:50,719 --> 00:34:53,790 >> Sada ćemo napraviti program Malo više zanimljiv. 752 00:34:53,790 --> 00:34:59,200 Ja ću ići naprijed i ovaj put otvoriti novu datoteku. 753 00:34:59,200 --> 00:35:02,520 Ja ću spasiti ovu kao HELLO-1.c. 754 00:35:02,520 --> 00:35:05,540 I samo za slatkiš, idem idi stavi ga u moju Dropbox mapu. 755 00:35:05,540 --> 00:35:09,030 >> Kao što ćete vidjeti u CS50 Dokumentacija za aparat, 756 00:35:09,030 --> 00:35:11,210 kasnije ovaj tjedan za problem Set 1, mi ćemo poticati 757 00:35:11,210 --> 00:35:13,230 li koristiti Dropbox ili Neki ekvivalent usluga, 758 00:35:13,230 --> 00:35:15,430 jer tada sve vaše Kodeksa će biti podupirač gore automatski. 759 00:35:15,430 --> 00:35:17,830 I to je razlog zašto sam otišao u tu mapu ovdje. 760 00:35:17,830 --> 00:35:20,230 >> A sada ću napisati malo drugačiji program. 761 00:35:20,230 --> 00:35:24,740 Uključiti, standardni ja / O.h, int main void. 762 00:35:24,740 --> 00:35:29,660 I onda ovdje printf, Pozdrav svijetu, što je točno isto kao i prije. 763 00:35:29,660 --> 00:35:32,450 >> Ali sada želim ispisati nešto to je malo drugačije. 764 00:35:32,450 --> 00:35:34,800 Želim ispisati, kažu, "Halo, je David." 765 00:35:34,800 --> 00:35:37,590 U redu, tako očito, što bi trebao, nadamo 766 00:35:37,590 --> 00:35:40,360 biti slučaj da ako sam kompilirati Ovaj program, repriza ga, 767 00:35:40,360 --> 00:35:41,840 to će reći: "Zdravo, Davida." 768 00:35:41,840 --> 00:35:45,160 >> Ali što ako želim uvesti ova vrsta varijable, 769 00:35:45,160 --> 00:35:49,240 pojam kontejner koji će pohraniti D--V-I-D i nije teško kod ga 770 00:35:49,240 --> 00:35:50,600 u mom programu. 771 00:35:50,600 --> 00:35:53,430 Pa što ako sam početak radi nešto poput ovoga? 772 00:35:53,430 --> 00:35:57,120 >> Gudački e, pa to je promjenjiva. 773 00:35:57,120 --> 00:36:00,250 Ako želite niz, a.k.a. riječ ili frazu. 774 00:36:00,250 --> 00:36:03,485 Redoslijed likova je što smo u programiranju nazvati niz. 775 00:36:03,485 --> 00:36:06,610 Samo ćemo se općenito poziva to je zato što je lijepo jednostavan naziv. 776 00:36:06,610 --> 00:36:08,010 Ali mogu ga nazvati ništa. 777 00:36:08,010 --> 00:36:12,920 >> Ja ću reći String s dosegne Citat završiti citat, "David", zarez. 778 00:36:12,920 --> 00:36:18,330 A sada želim da ubacite D--V-I-d u ono što sam tisak. 779 00:36:18,330 --> 00:36:23,720 I prije nego što smo vidjeli teaser na Ekran neke posebne sintakse 780 00:36:23,720 --> 00:36:26,050 koje nam je omogućilo da zamjena u vrijednosti. 781 00:36:26,050 --> 00:36:29,250 Ono što je posebna Simbol nekoliko slajdova prije? 782 00:36:29,250 --> 00:36:30,040 >> Dakle posto. 783 00:36:30,040 --> 00:36:33,830 U to vrijeme je bilo posto d za decimalni broj. 784 00:36:33,830 --> 00:36:35,850 To zapravo ne čini relevantnom ovdje. 785 00:36:35,850 --> 00:36:38,650 Ispostavilo se da postoji još jedan odsto simbol, 786 00:36:38,650 --> 00:36:42,810 što je s odsto, što je kratica za rezervirano mjesto za nizu. 787 00:36:42,810 --> 00:36:49,350 >> Tako sada, vrlo jednostavno, ja sam ići napraviti Hello-1, 788 00:36:49,350 --> 00:36:54,210 jer ova datoteka se zove Pozdrav-1.c, i pritisnite Enter. 789 00:36:54,210 --> 00:36:56,230 I sam zeznuo. 790 00:36:56,230 --> 00:36:57,394 Što se događa? 791 00:36:57,394 --> 00:37:00,560 Pa, evo gdje moramo početi Cijenimo da smo u ovom naredbom 792 00:37:00,560 --> 00:37:02,810 Linija okruženje, ovo Samo tekst okoliš. 793 00:37:02,810 --> 00:37:06,114 Nema klikom na ikone kao što je mapa sada. 794 00:37:06,114 --> 00:37:07,280 I mislim natrag trenutak prije. 795 00:37:07,280 --> 00:37:10,740 U ono mapu sam ti rekao Bio sam spas moj broj? 796 00:37:10,740 --> 00:37:11,657 Tako Dropbox mapu. 797 00:37:11,657 --> 00:37:12,989 Mogao biti pozvan ništa. 798 00:37:12,989 --> 00:37:14,530 No, to će se dogoditi da se zove Dropbox. 799 00:37:14,530 --> 00:37:18,380 Tako sam nekako potrebno je dvostrukim klikom na da Dropbox mapu kako bi dobili 800 00:37:18,380 --> 00:37:21,657 u njega i doći kod mene Kod naziva Hello-1.c. 801 00:37:21,657 --> 00:37:24,490 Zapravo, neka mi ići naprijed i smanjili Ovaj prozor samo na trenutak. 802 00:37:24,490 --> 00:37:27,560 Baš kao i Windows i Mac OS, tu su mape u Linuxu. 803 00:37:27,560 --> 00:37:29,410 Postoje mape u CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 To je samo sada smo ograničavajućeg da nas ovaj tekst okruženju. 805 00:37:32,380 --> 00:37:34,700 >> Ali, ako sam dvaput kliknite na Dropbox, primijetit postoji 806 00:37:34,700 --> 00:37:37,210 je datoteka koja želim sastaviti. 807 00:37:37,210 --> 00:37:41,430 Ali, moram to crno-bijelo terminala prozor, da se tako izrazim. 808 00:37:41,430 --> 00:37:45,750 Ali moram, dakle, da se presele u tu mapu ili katalog. 809 00:37:45,750 --> 00:37:48,290 Tako nešto kompliciranih, ali ćete se naviknuti na ovo previše. 810 00:37:48,290 --> 00:37:50,430 >> U svijetu Linuxa, što opet je operativni 811 00:37:50,430 --> 00:37:54,860 Sustav vodimo unutar CS50 Aparati, postoji naredba zove cd. 812 00:37:54,860 --> 00:37:58,310 Što znači da možete napraviti CD, prostor, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD-a, promjena imenik. 814 00:37:59,900 --> 00:38:00,400 Točno. 815 00:38:00,400 --> 00:38:02,890 Natrag u dan, kada su ljudi bili izmišljanje računala i operativni 816 00:38:02,890 --> 00:38:05,806 Sustavi kao što je ovaj, oni su htjeli Upišite Najmanje tipke moguće. 817 00:38:05,806 --> 00:38:08,760 Dakle, najlakši način za reći Uđite bio cd. 818 00:38:08,760 --> 00:38:13,910 >> Dakle, ako sam pogodio CD, svemirska Dropbox, primijetiti ono što je ovdje promijenio. 819 00:38:13,910 --> 00:38:16,480 Unutar zagrada Uređaj je vrsta 820 00:38:16,480 --> 00:38:19,360 od mene na ruku i podsjećajući me gdje sam ja. 821 00:38:19,360 --> 00:38:21,480 Dakle, otvorena mapa Dropbox. 822 00:38:21,480 --> 00:38:24,950 Ako ja sada upisati ls za Popis, opet jasna, 823 00:38:24,950 --> 00:38:27,540 jer ljudi nisu htjeli upišite natrag u dan L-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Tako su umjesto toga napravio je LS. 825 00:38:29,300 --> 00:38:30,110 >> Unesite. 826 00:38:30,110 --> 00:38:35,740 Obavijest vidim dvije stvari, HELLO-1.c, i onda je to zagonetan stvar, izvor 1m. 827 00:38:35,740 --> 00:38:38,310 To je samo moj način da se kaže izvorni kod za tjedan 1 u ponedjeljak. 828 00:38:38,310 --> 00:38:42,020 To je mapa sam skinuti s CS50 stranice koje sam napravio ranije danas 829 00:38:42,020 --> 00:38:43,990 i samo ga stavite u Uređaj unaprijed. 830 00:38:43,990 --> 00:38:47,550 >> No, za sada jedino što možemo stalo je stvaranje ovog programa. 831 00:38:47,550 --> 00:38:50,440 Dakle, kada sam tip da pozdravi-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Dovraga. 833 00:38:51,320 --> 00:38:53,060 Nešto je pošlo po zlu. 834 00:38:53,060 --> 00:38:54,580 Tako ćemo zafrkavati ovaj apart. 835 00:38:54,580 --> 00:38:58,489 I na žalost, ovo je mjesto gdje se stvari dobiti malo stresno na početku, 836 00:38:58,489 --> 00:39:00,280 barem ako ste Nikada prije programirani. 837 00:39:00,280 --> 00:39:00,980 >> Moj Bože. 838 00:39:00,980 --> 00:39:04,990 Napisao sam program za dvije linije i Imam četiri linije pogreške. 839 00:39:04,990 --> 00:39:07,180 Dakle, ono što se ovdje događa. 840 00:39:07,180 --> 00:39:11,370 Prvo i najvažnije je uvijek dođite natrag i naći prvu poruku o pogrešci, 841 00:39:11,370 --> 00:39:15,730 jer nerijetko prevodiocima samo dajte se zbuniti ono što i ja. 842 00:39:15,730 --> 00:39:17,000 Sastavljači su prilično glupi. 843 00:39:17,000 --> 00:39:18,360 Oni će raditi samo ono što reci im da rade. 844 00:39:18,360 --> 00:39:21,484 A ako ih zbuniti, oni su samo će vrsta povratiti svoje ruke 845 00:39:21,484 --> 00:39:25,010 a možda i baciti više poruka o pogrešci nego što su zapravo relevantno. 846 00:39:25,010 --> 00:39:26,380 >> Pa pogledajmo prvo. 847 00:39:26,380 --> 00:39:27,540 Super grobni na prvom mjestu. 848 00:39:27,540 --> 00:39:31,050 No, obavijest, ovdje je ime Datoteka u kojoj sam zeznuo očito. 849 00:39:31,050 --> 00:39:36,570 Colon 5, kolona 5 samo znači da se na Linija 5 na petom karaktera. 850 00:39:36,570 --> 00:39:39,760 Dakle, peta kolona od likova, ako hoćete, pogreška. 851 00:39:39,760 --> 00:39:41,870 Korištenje neprijavljenog identifikator string. 852 00:39:41,870 --> 00:39:43,120 Jeste li mislili standardni n? 853 00:39:43,120 --> 00:39:44,850 >> Ne, mislio sam niz. 854 00:39:44,850 --> 00:39:47,640 A onda je to vrsta kopiranje i lijepljenje 855 00:39:47,640 --> 00:39:50,700 ono što sam upisali stvarno privući moju pozornost na mjesto gdje sam se zeznuo. 856 00:39:50,700 --> 00:39:54,260 Dakle, iz nekog razloga C, ili barem prevodilac 857 00:39:54,260 --> 00:39:56,470 ne razumijem riječi string. 858 00:39:56,470 --> 00:39:57,890 A to je zato što smo ga čine. 859 00:39:57,890 --> 00:40:01,440 Dakle string ne postoji u C Što CS50 radi, 860 00:40:01,440 --> 00:40:03,380 za prvih nekoliko tjedana samo u klasi, 861 00:40:03,380 --> 00:40:05,700 se možemo dati neki trening kotači, da se tako izrazim. 862 00:40:05,700 --> 00:40:11,160 I stavili smo osposobljavanja kotačima unutar posebne datoteke zove CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Dakle, ovo je drugi od dva datoteke Imena koja očito završavaju dot h. 864 00:40:14,970 --> 00:40:16,300 Idemo natrag. 865 00:40:16,300 --> 00:40:19,360 Printf je izjava ili funkcija da je očito nešto ispisuje 866 00:40:19,360 --> 00:40:20,580 na zaslonu. 867 00:40:20,580 --> 00:40:23,470 Ali niste me vidjeli provedbu printf, zar ne. 868 00:40:23,470 --> 00:40:26,360 Netko je prije nekoliko godina provedena printf. 869 00:40:26,360 --> 00:40:30,420 U ono slika bi li on kladiti ili ona stavi provedbu 870 00:40:30,420 --> 00:40:34,270 za printf, koda za printf? 871 00:40:34,270 --> 00:40:36,860 >> U datoteci se zove standardni Ja / O.h. 872 00:40:36,860 --> 00:40:39,930 U stvari, to je vjerojatno u dvije datoteke, standardni I / O.h, 873 00:40:39,930 --> 00:40:42,650 koja se zalaže za zaglavlju datoteke, i standardna i / O.c, 874 00:40:42,650 --> 00:40:44,060 koja se zalaže za C izvorni kod. 875 00:40:44,060 --> 00:40:48,220 Dakle, on ili ona je nekoliko godina prije ubacio kod koje su napisali u tu datoteku 876 00:40:48,220 --> 00:40:51,240 tako da ljudi poput nas godina kasnije ga možete uključiti, 877 00:40:51,240 --> 00:40:53,040 da se tako izrazim, u našim vlastitim programima. 878 00:40:53,040 --> 00:40:56,320 >> I doista, to je ono što funta znak te riječ su se. 879 00:40:56,320 --> 00:41:00,250 Izgleda na lokalnom tvrdom disku, pronalazi datoteku pod nazivom standardni Ja / O.h, 880 00:41:00,250 --> 00:41:03,840 a zatim učinkovito primjeraka i lijepi se unutar moje vlastite datoteke. 881 00:41:03,840 --> 00:41:07,210 Tako sada moj program zna kako ispisati na zaslon. 882 00:41:07,210 --> 00:41:11,120 >> Dakle, po toj logici, gdje je niz definira? 883 00:41:11,120 --> 00:41:12,260 >> PUBLIKA: 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 I doista, to je ono što mi, Jezgra osoblje, učinili. 886 00:41:15,540 --> 00:41:19,590 Mi smo izmislili nekoliko vrsta podataka, da se tako izrazim, poput niza, 887 00:41:19,590 --> 00:41:22,370 osim onih koje dobiti besplatno, poput int. 888 00:41:22,370 --> 00:41:26,010 I vidjet ćemo drugima kao char za karakter i malo više. 889 00:41:26,010 --> 00:41:30,670 Unutar CS50.h očito je bar neki spomen niza. 890 00:41:30,670 --> 00:41:34,980 >> Pa sad neka mi ići naprijed i ponovno napraviti Hello-1. 891 00:41:34,980 --> 00:41:37,100 Ja ću povećavanje opet i prelaze prstima. 892 00:41:37,100 --> 00:41:41,370 Sada su nakon što je jedan promijeniti fiksna sam većinu stvari. 893 00:41:41,370 --> 00:41:42,100 Ali, dovraga. 894 00:41:42,100 --> 00:41:44,290 Više postotaka od podatkovnih argumenata. 895 00:41:44,290 --> 00:41:45,980 Ono što sam učinio u krivu ovaj put? 896 00:41:45,980 --> 00:41:47,420 >> Dakle, to je još uvijek prilično zagonetan. 897 00:41:47,420 --> 00:41:51,560 No, to je pogreška na Linija 7 i 21 znakova. 898 00:41:51,560 --> 00:41:53,880 Dakle, idemo pogledati ovdje. 899 00:41:53,880 --> 00:41:55,350 To je malo suptilniji. 900 00:41:55,350 --> 00:41:59,167 No, ako mislite o tome temeljne ideje ovdje su, 901 00:41:59,167 --> 00:42:00,500 Možda možemo zafrkavati ovo osim. 902 00:42:00,500 --> 00:42:02,300 >> Dakle printf je naziv funkcije. 903 00:42:02,300 --> 00:42:04,960 Zagrade, do sada, je baš kao što smo stavili oko 904 00:42:04,960 --> 00:42:07,005 stvari mi prolaze kao ulazi u funkciji. 905 00:42:07,005 --> 00:42:08,921 U redu, samo proizvoljna ljudska konvencija. 906 00:42:08,921 --> 00:42:09,919 Koristite zagrade. 907 00:42:09,919 --> 00:42:12,460 Unutar tih zagrada mi smo bili stavljajući dvostruke navodnike, 908 00:42:12,460 --> 00:42:14,810 a zatim niz poput "Pozdrav svijetu". 909 00:42:14,810 --> 00:42:18,160 >> No, u tom ranijem primjeru vrlo Kratko je gledamo s nule. 910 00:42:18,160 --> 00:42:22,590 I mi smo imali posto d, što drugo bio je unutar tih zagrada 911 00:42:22,590 --> 00:42:23,730 da sam pozvao verbalno? 912 00:42:23,730 --> 00:42:24,230 Da. 913 00:42:24,230 --> 00:42:28,166 >> PUBLIKE: Dakle, to je ono što ste uzimajući [Nečujan] unutar [nečujan] 914 00:42:28,166 --> 00:42:30,200 što je to [nečujan]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Točno. 916 00:42:31,200 --> 00:42:32,700 Tako smo imali posto d. 917 00:42:32,700 --> 00:42:36,620 No, tada smo imali bliski citat, zarez, brojač. 918 00:42:36,620 --> 00:42:37,120 Točno. 919 00:42:37,120 --> 00:42:40,680 Specificirano smo ono što želimo raditi kao rezervirano mjesto. 920 00:42:40,680 --> 00:42:44,621 Dakle, ono što ću učiniti je ovdje zarez, ono što želiš staviti? 921 00:42:44,621 --> 00:42:45,120 PUBLIKA: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, zato i je u ovom slučaju 923 00:42:46,828 --> 00:42:48,700 je naziv spremniku. 924 00:42:48,700 --> 00:42:50,180 To je ime tog staklene zdjele. 925 00:42:50,180 --> 00:42:53,610 Budući da prije nego što je bio obrnuto, da Jednostavan Scratch primjer smo pogledali. 926 00:42:53,610 --> 00:42:56,630 Dakle, sada nakon što je dva Promjene, neka mi uvećali 927 00:42:56,630 --> 00:42:59,800 i pokušati još jednom sastaviti ovaj program. 928 00:42:59,800 --> 00:43:01,596 >> Sada vidim da je grobni liniju. 929 00:43:01,596 --> 00:43:03,470 Ali, to je zapravo naziv prevodilac. 930 00:43:03,470 --> 00:43:04,886 Zveket je naziv prevodilac. 931 00:43:04,886 --> 00:43:07,100 Napravite samo mi uštedu glavobolje ikad 932 00:43:07,100 --> 00:43:09,830 tipkanje tu dugo ludu naredbu van. 933 00:43:09,830 --> 00:43:14,900 Pa sad, ako sam ne slash dot 'bok-1, Ja bi trebao vidjeti "Zdravo, David." 934 00:43:14,900 --> 00:43:16,450 >> Prilično underwhelming, zar ne? 935 00:43:16,450 --> 00:43:18,158 Mogli smo učinili to puno jednostavnije 936 00:43:18,158 --> 00:43:20,940 ne govorimo o varijabli i CS50.h i sve to. 937 00:43:20,940 --> 00:43:23,080 Tako ćemo učiniti Malo više zanimljiv. 938 00:43:23,080 --> 00:43:31,010 >> Osim CS50.h, ima stvari poput niza 939 00:43:31,010 --> 00:43:34,550 proglašena, CS50 knjižnica također ima nekoliko funkcija. 940 00:43:34,550 --> 00:43:38,520 Prije Dakle, baš kao i godina, netko je napisao printf i staviti ga u standardnoj I / O.h 941 00:43:38,520 --> 00:43:39,530 i neke druge datoteke. 942 00:43:39,530 --> 00:43:44,010 >> Mi, djelatnici CS50, napisao je funkciju zove GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, i mi stavili one unutar datoteke 944 00:43:47,610 --> 00:43:49,890 nazvao CS50.h i CS50.c. 945 00:43:49,890 --> 00:43:51,880 I mi smo ih stavili unutar od CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 I ljudi također mogu preuzeti ih online, ako oni 947 00:43:53,880 --> 00:43:55,880 žele ih staviti na svoje vlastita računala, kao dobro. 948 00:43:55,880 --> 00:44:00,880 Što će reći da smo stvorili Funkcije koje dobivaju informacije od korisnika. 949 00:44:00,880 --> 00:44:02,930 Ne znam što je sve tih podataka tipovi. 950 00:44:02,930 --> 00:44:06,490 GetInt je vrsta jednostavna, kao što su dobiti cijeli broj nekako od korisnika. 951 00:44:06,490 --> 00:44:09,980 I GetString je vjerojatno kao što je get riječ ili rečenica iz korisnika. 952 00:44:09,980 --> 00:44:11,770 >> Tako ćemo se usredotočiti na to. 953 00:44:11,770 --> 00:44:14,710 A ja ću se vratiti u aparata, a ja ću ići naprijed 954 00:44:14,710 --> 00:44:20,790 i spremiti ovu sliku kao, nazovimo to Halo-2.c kao moj drugoj verziji. 955 00:44:20,790 --> 00:44:23,030 I neka je napraviti nekoliko promjena. 956 00:44:23,030 --> 00:44:25,800 >> Ovaj put umjesto Teško kodiranja David, koji je 957 00:44:25,800 --> 00:44:29,120 čini nevjerojatno dosljedna ali underwhelming programa, 958 00:44:29,120 --> 00:44:32,640 Što ako sam umjesto toga napraviti GetString? 959 00:44:32,640 --> 00:44:35,660 Sada primijetiti GetString ima otvorenu zagradu, 960 00:44:35,660 --> 00:44:38,500 zatvorena zagrada, jer ne treba nikakav ulaz. 961 00:44:38,500 --> 00:44:40,850 To samo će ići dobiti Niz od korisnika. 962 00:44:40,850 --> 00:44:42,460 >> A sada riječ o drugoj sintakse. 963 00:44:42,460 --> 00:44:45,439 Zarezom samo kraj liniju koda. 964 00:44:45,439 --> 00:44:46,730 Ne trebate ih posvuda. 965 00:44:46,730 --> 00:44:48,896 No, to samo znači da sam učinjeno s ove linije koda. 966 00:44:48,896 --> 00:44:51,080 Dopustite mi da se presele na drugo Izjava ili funkcija. 967 00:44:51,080 --> 00:44:53,010 Gudački deklarira varijablu. 968 00:44:53,010 --> 00:44:55,920 Gudački kao što je rekao daj mi zdjelu, molim te. 969 00:44:55,920 --> 00:44:57,940 I neka mi stavi niz u njemu. 970 00:44:57,940 --> 00:44:59,430 >> A sada znak jednakosti. 971 00:44:59,430 --> 00:45:03,510 Što je znak jednakosti biti jednak? 972 00:45:03,510 --> 00:45:04,500 >> PUBLIKA: Dodjela. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Da, dodjeljivanje vrijednosti. 974 00:45:06,190 --> 00:45:09,872 Dakle, ako ja, na primjer, poziv ova funkcija GetString, 975 00:45:09,872 --> 00:45:12,830 pa ćemo vidjeti u trenutku koji je će brz korisnik za niz. 976 00:45:12,830 --> 00:45:17,810 To je kao da ste me onda pisati D--V-I-d na komad papira. 977 00:45:17,810 --> 00:45:21,060 A kad kažem string a jednako GetString, 978 00:45:21,060 --> 00:45:24,140 jednaka zapravo ne znači jednaka u C programiranje. 979 00:45:24,140 --> 00:45:27,880 To znači dodijeliti s desne strane bočno na lijevoj strani. 980 00:45:27,880 --> 00:45:29,510 >> Tako sam dobio niz. 981 00:45:29,510 --> 00:45:32,785 A znak jednakosti znači da ga stavi u spremnik za pohranu i naziva. 982 00:45:32,785 --> 00:45:36,730 A onda će proći ovaj off printf zapravo raditi svoj stvar. 983 00:45:36,730 --> 00:45:39,790 >> Dakle, krajnji rezultat onda ide gledati malo drugačije. 984 00:45:39,790 --> 00:45:40,840 Idemo to napraviti Hello-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Ili bi mogao raditi. 987 00:45:45,260 --> 00:45:46,450 Vi ste sljedeće zajedno. 988 00:45:46,450 --> 00:45:47,940 Make-Halo 2 radio. 989 00:45:47,940 --> 00:45:52,640 Dot Slash bok-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Čini mi se da ima beskonačan petlje ili nešto. 991 00:45:54,620 --> 00:45:55,453 Ništa se nije događalo. 992 00:45:55,453 --> 00:45:56,134 Zašto? 993 00:45:56,134 --> 00:45:57,805 >> PUBLIKA: To što beskonačnu petlju. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: To je beskonačna petlja. 995 00:45:59,430 --> 00:46:02,710 To je vrsta čeka za mene zapravo dati ga s nekim ulaz. 996 00:46:02,710 --> 00:46:05,800 Pa neka mi ići naprijed i upišite u Davidu, i pritisnite Enter. 997 00:46:05,800 --> 00:46:07,230 I sada se kaže "Zdravo, David." 998 00:46:07,230 --> 00:46:09,040 Ako sam ga ponovo pokrenuti. 999 00:46:09,040 --> 00:46:11,530 Idemo upisati Rob, "Bok, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> A ovo je najgora korisničko sučelje ikada. 1001 00:46:13,900 --> 00:46:16,110 Korisnik je očito trebao bi znati što učiniti. 1002 00:46:16,110 --> 00:46:17,120 No, bez obzira na to. 1003 00:46:17,120 --> 00:46:19,570 Korištenje tih istih zgrada blokovi baš kao u Scratch, 1004 00:46:19,570 --> 00:46:24,980 možemo riješiti taj problem i reći: nešto poput tvoje ime molim te, debelog crijeva, 1005 00:46:24,980 --> 00:46:27,820 prostor, zatvoren citat, u neposrednoj blizini zagrada, točka i zarez. 1006 00:46:27,820 --> 00:46:30,680 Dakle, opet puno gluposti s sintakse. 1007 00:46:30,680 --> 00:46:34,040 >> No primijetite Upravo sam dodao zagonetka komad iznad ovoga 1008 00:46:34,040 --> 00:46:35,280 i iznad ove. 1009 00:46:35,280 --> 00:46:38,870 Pa sad, ako sam to ponoviti, zdravo-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Čekaj malo. 1011 00:46:41,180 --> 00:46:41,830 Što ne valja? 1012 00:46:41,830 --> 00:46:43,570 Nije bilo drugačije ponaša. 1013 00:46:43,570 --> 00:46:44,200 Da. 1014 00:46:44,200 --> 00:46:46,010 >> PUBLIKA: Niste instalirali napraviti opet. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Nisam pokrenuti bi ponovno, zar ne. 1016 00:46:47,968 --> 00:46:49,430 Tako sam promijenio moj izvorni kod. 1017 00:46:49,430 --> 00:46:50,638 Ali opet, tu je da protok. 1018 00:46:50,638 --> 00:46:54,530 Izvorni kod kroz prevodilac daje ti novi objekt kôd, ili 0s i 1s. 1019 00:46:54,530 --> 00:47:00,209 Dakle, trebam zapravo ponoviti make bok-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 U redu, nešto čini da se dogodilo. 1021 00:47:01,750 --> 00:47:04,220 Dot Slash HELLO-2. 1022 00:47:04,220 --> 00:47:05,390 Vaše ime molim te. 1023 00:47:05,390 --> 00:47:09,990 I da bude jasno sad, zašto je kursor na istoj liniji? 1024 00:47:09,990 --> 00:47:10,490 Točno. 1025 00:47:10,490 --> 00:47:13,020 Nisam staviti kosu crtu n ovdje u mom kodu. 1026 00:47:13,020 --> 00:47:16,110 Tako da sada mogu pisati nešto poput Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Mogu ga ponovno pokrenuti i upišite nešto poput Gabea, Enter, 1028 00:47:18,710 --> 00:47:22,250 a mi smo dobili neki drugi program opet i opet i opet. 1029 00:47:22,250 --> 00:47:28,940 >> Sada konačno ćemo morati koristiti nekoliko različitih mogućnosti. 1030 00:47:28,940 --> 00:47:32,860 Moramo uvesti neke konačnici Uvjeti za napraviti stvari uvjetno. 1031 00:47:32,860 --> 00:47:35,550 Možda petlje tako da možemo napraviti uvijek iznova stvari. 1032 00:47:35,550 --> 00:47:38,220 >> Možda bi bilo lijepo da smo mogao provoditi svoje funkcije, 1033 00:47:38,220 --> 00:47:41,355 kao što smo mogli provesti naše vlastite printf ili naša vlastita verzija GetString 1034 00:47:41,355 --> 00:47:45,870 i GetFlow, jer u konačnici čak i Korištenjem ove naredbe okoliš 1035 00:47:45,870 --> 00:47:49,780 možemo učiniti čak i većina vizualno zanimljivi stvari. 1036 00:47:49,780 --> 00:47:51,950 >> Doista se u zaključku neka mi to učiniti. 1037 00:47:51,950 --> 00:47:54,020 Ja ću ići naprijed i zatvorite prozore te 1038 00:47:54,020 --> 00:47:57,400 i otvoriti ovu ikonu ovdje, što je samo veći 1039 00:47:57,400 --> 00:48:00,020 verzija da je ugrađen Terminal prozor. 1040 00:48:00,020 --> 00:48:02,329 Dakle gedit ima ne samo mjesto za moj broj, 1041 00:48:02,329 --> 00:48:05,620 , ali je također izgrađen u prozor terminala, crno-bijeli prozor gdje mogu izvoditi 1042 00:48:05,620 --> 00:48:06,230 naredbe. 1043 00:48:06,230 --> 00:48:08,600 >> Upravo sam se dogodilo da otvorite veća verzija toga. 1044 00:48:08,600 --> 00:48:11,170 A sada ću ići u mapa koje sam već 1045 00:48:11,170 --> 00:48:13,150 staviti u unaprijed na web stranici tečaja je. 1046 00:48:13,150 --> 00:48:16,720 I ja ću ići naprijed i otvoriti datoteku pod nazivom thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 koji je napisao netko drugi. 1048 00:48:18,710 --> 00:48:21,220 >> A ako pogledamo to, to nije vrsta koda 1049 00:48:21,220 --> 00:48:24,370 ćemo pisati, jer Cilj ovog koda 1050 00:48:24,370 --> 00:48:28,450 bio napisati najljepši potrazi kôd koji on ili ona može, 1051 00:48:28,450 --> 00:48:31,290 bez obzira na to jesu li ili ne drugo ljudsko biće ikada mogli 1052 00:48:31,290 --> 00:48:33,660 razumiju ovaj kod. 1053 00:48:33,660 --> 00:48:37,050 >> Zapravo, svake godine tu je ono što je zove nerazumljivi C natjecanje, koje 1054 00:48:37,050 --> 00:48:39,570 je za prave geeks koji pišu Kod da nitko drugi ne može pročitati, 1055 00:48:39,570 --> 00:48:42,050 ali da se nešto bilo stvarno jednostavan ili stvarno nevjerojatna. 1056 00:48:42,050 --> 00:48:43,890 I mislili smo da ćemo zaključiti s ovim izgledom 1057 00:48:43,890 --> 00:48:48,300 na nešto što je prilično iznenađujuće možda ste vidjeli jednom prije. 1058 00:48:48,300 --> 00:48:52,650 No, mi ćemo završiti na tome napomena, dot slash, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 To je dakle ono što čeka. 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 Mi ćemo vas vidjeti u srijedu. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Muziciranja] 1065 00:49:10,016 --> 00:53:31,883