1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. Malan: Tak tohle je CS50. 3 00:00:13,800 --> 00:00:18,970 A to byl CS50 vlastní Colton Ogden, více o tom, kdo je to hudba, kterou můžete 4 00:00:18,970 --> 00:00:22,820 stažení na soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Takže dnes jsme se zaměřili všichni více na umění programování. 6 00:00:26,690 --> 00:00:28,980 A my jsme se, kde jsme z minulého týdne, se zaměřením 7 00:00:28,980 --> 00:00:31,660 na Scratch, který byl tento grafický programovací jazyk. 8 00:00:31,660 --> 00:00:35,490 A brát věci dolů na nižší úrovni, použití více tradiční programování 9 00:00:35,490 --> 00:00:38,420 jazyk známý jako C. Ale na cestě, si uvědomil, 10 00:00:38,420 --> 00:00:40,730 že stejné myšlenky jsme mluvili o minulého pátku 11 00:00:40,730 --> 00:00:44,390 bude opakovat nejen v této jazyk C, ale ve většině každý druhý 12 00:00:44,390 --> 00:00:46,350 které se podíváme v tomto semestru. 13 00:00:46,350 --> 00:00:50,247 >> Tak jsme nazvali tuto věc zde to, co minule? 14 00:00:50,247 --> 00:00:51,830 To je zástupce prohlášení. 15 00:00:51,830 --> 00:00:53,080 Tak jsme volali toto prohlášení. 16 00:00:53,080 --> 00:00:54,100 A to něco dělá. 17 00:00:54,100 --> 00:00:56,910 Je to poučení, že Počítač nebo Scratch může vykonat. 18 00:00:56,910 --> 00:00:59,910 A dále, pojďme také spustit volá něco takového funkce, 19 00:00:59,910 --> 00:01:02,070 z důvodů, které se brzy uvidíme. 20 00:01:02,070 --> 00:01:03,681 >> Zatím jsme viděli věci, jako je tato. 21 00:01:03,681 --> 00:01:05,680 A tito jsou obecně známý jako co konstrukt? 22 00:01:05,680 --> 00:01:06,240 >> DIVÁKŮ: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. Malan: Takže smyčka. 24 00:01:06,860 --> 00:01:07,943 Tak docela jednoduché. 25 00:01:07,943 --> 00:01:09,470 Je doslova dělá to, co říká. 26 00:01:09,470 --> 00:01:12,210 A v Scratch, chcete-li nacpat více dílky tam, 27 00:01:12,210 --> 00:01:13,950 kus bude růst, aby se vešly to. 28 00:01:13,950 --> 00:01:16,790 A uvidíme, v C, které můžeme udělat totéž. 29 00:01:16,790 --> 00:01:20,000 >> Dalším typem smyčky, i když, V Scratch může být navždy, 30 00:01:20,000 --> 00:01:21,820 nebo tam je nějaké číslo jiných přístupů. 31 00:01:21,820 --> 00:01:24,150 Ale pojďme se více všeobecný vzhled, s tváří 32 00:01:24,150 --> 00:01:27,402 to je pravděpodobné, že dobře obeznámen, na smyčky obecně. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: One věc, že ​​počítače 34 00:01:29,110 --> 00:01:31,860 jsou opravdu dobré je opakování příkazů. 35 00:01:31,860 --> 00:01:33,910 Jako člověk, měli byste si opravdu nudit, pokud vás 36 00:01:33,910 --> 00:01:36,730 musel udělat totéž mockrát v řadě. 37 00:01:36,730 --> 00:01:40,530 Ale počítač může udělat totéž miliony nebo dokonce miliardy doby, 38 00:01:40,530 --> 00:01:43,290 a ne nudit, a musí být schopen provádět, že se opravdu dobře. 39 00:01:43,290 --> 00:01:45,650 >> Tak například, když chtěl popřát všem 40 00:01:45,650 --> 00:01:48,840 na Facebooku všechno nejlepší k narozeninám zaslala jim e-mail, 41 00:01:48,840 --> 00:01:51,550 mě to může trvat déle než století skutečně zapsat 42 00:01:51,550 --> 00:01:53,000 všechny ty e-maily pro všechny. 43 00:01:53,000 --> 00:01:57,780 Ale jen pár řádků kódu, mohu má systém poslat e-mail pro všechny 44 00:01:57,780 --> 00:01:59,930 na Facebooku, který si přeje jim všechno nejlepší k narozeninám. 45 00:01:59,930 --> 00:02:02,730 Takže to je to, co smyčky a proč jsou cenné a něco 46 00:02:02,730 --> 00:02:04,740 že počítače umí velmi dobře. 47 00:02:04,740 --> 00:02:05,630 >> David J. Malan: Takže pokud jste byl příjemcem 48 00:02:05,630 --> 00:02:07,820 některých CS50 je a Dropbox je prostor pozdě, 49 00:02:07,820 --> 00:02:10,590 to je vlastně přesně to, co jsme ano, pomocí kódu docela rád, že. 50 00:02:10,590 --> 00:02:12,600 Máme v podstatě mají velký tabulka, do které 51 00:02:12,600 --> 00:02:15,016 lidé byli zadáním jejich jména a e-mailové adresy. 52 00:02:15,016 --> 00:02:18,160 A napsal malý kus kódu, který můžete iterovat přes tyto adresy 53 00:02:18,160 --> 00:02:21,860 a vyplivnout jedinečné adresy Případ někdo předložil vícekrát. 54 00:02:21,860 --> 00:02:25,120 A poté, pošleme automatické e-maily z CS50 je bota, 55 00:02:25,120 --> 00:02:27,190 včetně kupon kód. 56 00:02:27,190 --> 00:02:29,290 >> Nyní se také podíval na Tato konstrukce minule. 57 00:02:29,290 --> 00:02:33,100 A to je zvláštní příkladem toho, co? 58 00:02:33,100 --> 00:02:35,050 Tak jo, Boolean výraz. 59 00:02:35,050 --> 00:02:37,050 A tvar je určen zachytit, že stejně. 60 00:02:37,050 --> 00:02:39,966 Všechny tyto otázky tvoří true nebo false v Scratch 61 00:02:39,966 --> 00:02:41,590 bude vypadat trochu něco takového. 62 00:02:41,590 --> 00:02:43,200 A říkáme tomu Boolean výraz. 63 00:02:43,200 --> 00:02:46,170 To je skutečně pravda, nebo ne, ano nebo ne. 64 00:02:46,170 --> 00:02:49,150 Je to způsob, jak odpovědět na otázku. 65 00:02:49,150 --> 00:02:52,420 >> A mezitím si můžete použít tyto Boolean výrazy uvnitř konstruktů 66 00:02:52,420 --> 00:02:54,720 jako ty, které z Samozřejmě, jsou podmínky 67 00:02:54,720 --> 00:02:57,259 nebo pobočky, příslovečná vidličky na silnici. 68 00:02:57,259 --> 00:02:59,550 A mohou vypadat nejen takhle, ale mohou také 69 00:02:59,550 --> 00:03:02,080 se elses jsou s nimi spojeny. 70 00:03:02,080 --> 00:03:05,820 A můžete mít ve skutečnosti tři cestu rozcestí, nebo čtyřcestný vidlice 71 00:03:05,820 --> 00:03:08,340 na cestě, jednoduše tím, že hnízdění těchto věcí, 72 00:03:08,340 --> 00:03:10,510 jak uvidíte v Scratch pokud jste tak již neučinili. 73 00:03:10,510 --> 00:03:13,550 A jak si můžete udělat v C i. 74 00:03:13,550 --> 00:03:16,810 >> Vezměme si další všeobecný podívat se na alumnist, jakož i, který 75 00:03:16,810 --> 00:03:21,490 může představovat odlišný přístup k těmto věcem se nazývají podmínky. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Lidé dělají rozhodnutí každý den. 77 00:03:24,060 --> 00:03:27,530 Například předtím, než jdete ven vás druh mít, jestliže prohlášení, které říká, 78 00:03:27,530 --> 00:03:31,480 pokud prší a pak jsem se Potřebuji, aby mi bundu. 79 00:03:31,480 --> 00:03:36,820 A počítače jsou úžasné, jakmile se rozhodnout tyto druhy výpisů, 80 00:03:36,820 --> 00:03:42,280 , že se může spolehlivě provést ty věci na neuvěřitelnou rychlostí. 81 00:03:42,280 --> 00:03:48,240 A tak počítačový program opravdu je trochu matematiky a některé 82 00:03:48,240 --> 00:03:53,050 if-li to rozhodnutí dostane vyrobena. 83 00:03:53,050 --> 00:03:55,020 >> David J. Malan: Tak jako možná víte, je to 84 00:03:55,020 --> 00:03:57,880 lidé jako Bill Gates, Paul Allen a další 85 00:03:57,880 --> 00:04:00,240 že opravdu odstartovala takzvaný osobní počítač 86 00:04:00,240 --> 00:04:01,990 revoluce před několika lety. 87 00:04:01,990 --> 00:04:04,140 Myslel jsem, že předtím, než se ponoříme do nějaké Administrivia, 88 00:04:04,140 --> 00:04:09,920 bychom se týkají příběh z Albuquerque, New Mexico Museum of Natural History 89 00:04:09,920 --> 00:04:13,650 a věda, kde někteří z Billa Gatese " a Paul Allen nejstarší příběhy 90 00:04:13,650 --> 00:04:17,470 se líčí, jak máme nyní dnešní PC a Mac a další. 91 00:04:17,470 --> 00:04:22,390 K tomu však budeme potřebovat dva dobrovolníky kteří mají velmi dobré vyprávění hlasy 92 00:04:22,390 --> 00:04:23,735 číst scénář nahlas. 93 00:04:23,735 --> 00:04:25,530 >> Dobře, a co v tam. 94 00:04:25,530 --> 00:04:26,120 Pojď nahoru. 95 00:04:26,120 --> 00:04:27,770 A co před zde. 96 00:04:27,770 --> 00:04:28,340 Pojď dolů. 97 00:04:28,340 --> 00:04:29,600 Vezměte si svá místa zde. 98 00:04:29,600 --> 00:04:32,444 Jak jste přišli, pár administrativních oznámení. 99 00:04:32,444 --> 00:04:34,360 krájení, proces výběru sekce, 100 00:04:34,360 --> 00:04:36,068 začne tento Středy do pátku. 101 00:04:36,068 --> 00:04:38,400 Více o tom letos Ve středu v přednášce. 102 00:04:38,400 --> 00:04:41,770 >> Super sekce, zatím, jsou něco, co nabízíme příští týden 103 00:04:41,770 --> 00:04:45,310 přičemž celá třída je pozván k účasti v poměrně velkém měřítku 104 00:04:45,310 --> 00:04:47,690 oddíly, jeden pohodlný, jeden méně pohodlné. 105 00:04:47,690 --> 00:04:51,340 A budeme oznámit údaje o tom, jak dobře, později tento týden. 106 00:04:51,340 --> 00:04:53,310 >> Mezitím profily, samy o sobě, začne 107 00:04:53,310 --> 00:04:57,241 ve třech kurzu týdne, nulový index, což znamená, že jsou to pár týdnů 108 00:04:57,241 --> 00:04:57,740 ven. 109 00:04:57,740 --> 00:04:58,450 Tak, aby se nebála. 110 00:04:58,450 --> 00:05:01,014 Ještě jste se minul něco v tomto směru. 111 00:05:01,014 --> 00:05:03,930 Mezitím se do té doby, pokud máte máte nějaké dotazy administrativní, 112 00:05:03,930 --> 00:05:08,120 email sebe a Devon a Gabe a Rob na této adrese zde. 113 00:05:08,120 --> 00:05:10,320 >> Konečně, nastavte problém 0 je, samozřejmě, ven. 114 00:05:10,320 --> 00:05:12,320 Možná jste si toho všiml na internetových stránkách kursu je. 115 00:05:12,320 --> 00:05:14,840 To by vám měl poskytnout Všechny odpovědi na otázky 116 00:05:14,840 --> 00:05:18,250 můžete mít na cestě k Začínáme s problémem sady. 117 00:05:18,250 --> 00:05:21,430 Ale pokud se ocitnete potřebují pomocnou ruku, 118 00:05:21,430 --> 00:05:25,020 všemi prostředky, účastnit se úřední hodiny, Pondělí, úterý, středa, čtvrtek 119 00:05:25,020 --> 00:05:27,290 tohoto týdne ve večerních hodinách ve čtyřech jídelnách. 120 00:05:27,290 --> 00:05:31,650 Viz tuto adresu URL tam údajů kde úřední hodiny bude. 121 00:05:31,650 --> 00:05:34,000 >> Nyní se pojďme splnit naše Dva hosté zde dnes. 122 00:05:34,000 --> 00:05:34,740 Jak se jmenujete? 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 Paule, rád tě poznávám. 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 Těší mě také. 130 00:05:39,790 --> 00:05:42,123 Jay Paul a Hikari mají přední z nich na tyto hudební 131 00:05:42,123 --> 00:05:45,100 stojí dva skripty, které jsem vytištěných se dnes ráno z Nového Mexika 132 00:05:45,100 --> 00:05:46,692 Muzeum přírodní historie a vědy. 133 00:05:46,692 --> 00:05:48,400 A to, co jsem si myslel, Já bych to na stropě 134 00:05:48,400 --> 00:05:52,830 je doprovázet své recitaci scénáře a tato historie 135 00:05:52,830 --> 00:05:54,700 u některých vizuálních obrazů, žádné překvapení. 136 00:05:54,700 --> 00:05:57,512 >> A to, co jsem udělal v předstihu je prehighlight na skriptu 137 00:05:57,512 --> 00:05:59,470 co byste měli číst, a to, co byste si měli přečíst. 138 00:05:59,470 --> 00:06:00,920 A budeme v podstatě jen alternativní odstavce. 139 00:06:00,920 --> 00:06:03,211 Takže je to podobně jako byste mohli udělali v anglické třídě. 140 00:06:03,211 --> 00:06:06,875 To je opravdu přimět publikum věřit v příběhu zde. 141 00:06:06,875 --> 00:06:07,600 Půjdeme? 142 00:06:07,600 --> 00:06:13,272 Takže příběh je zde, máme BASIC, a to začíná v Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Bylo to v zimě, 1974, v Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 kde zimy může být zima. 145 00:06:20,240 --> 00:06:22,800 Vousy, dlouhé vlasy vysokoškolský odpadlík jmenován 146 00:06:22,800 --> 00:06:27,280 Paul Allen byl vysilující po Harvard Náměstí, pohroužen do svých myšlenek. 147 00:06:27,280 --> 00:06:31,050 Jeho hlavním zájmem v těchto dnech bylo, jak dostat svého přítele, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 opustit školu a jít do obchodu s ním. 149 00:06:34,974 --> 00:06:37,890 HIKARI: dva už pryč prostřednictvím celé řady podnikatelských aktivit 150 00:06:37,890 --> 00:06:40,850 dohromady, začíná na břehu jezera škola v Seattlu kde 151 00:06:40,850 --> 00:06:45,220 byly vyplaceny ve volném čase počítače se otestovat počítač PDP-10 v místním čase 152 00:06:45,220 --> 00:06:46,580 sdílení společnost. 153 00:06:46,580 --> 00:06:50,930 Nejnovější plán byl, aby přestal škola a tvoří softwarovou firmu. 154 00:06:50,930 --> 00:06:53,440 Allen opustil Washington State University. 155 00:06:53,440 --> 00:06:58,380 Ale na poslední chvíli, Gates se rozhodl zůstat s Harvardu. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Ten den, přes Harvard Náměstí, Allen zahlédl ledna, 157 00:07:02,080 --> 00:07:07,530 1975 vydání populární elektroniky se Zemí zastavení titulku, 158 00:07:07,530 --> 00:07:11,900 Jako první na světě minipočítače Kit soupeřit Komerční modely. 159 00:07:11,900 --> 00:07:14,430 Pod nadpis se obrázek malé krabičce 160 00:07:14,430 --> 00:07:16,160 zdobí světly a spínačem. 161 00:07:16,160 --> 00:07:19,770 Říkalo se MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 A Allen věděl, že to, co on hledal. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: Days diskuse následovala. 164 00:07:26,350 --> 00:07:30,170 Allen a Gates pochopil Význam Altair. 165 00:07:30,170 --> 00:07:32,480 Mluvili často o mikroprocesorech 166 00:07:32,480 --> 00:07:35,250 a čekali, co by být provedeno s nimi. 167 00:07:35,250 --> 00:07:39,770 Teď tam byl minipočítač kit na kryt Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Je to zřejmě měl zatím nemá žádný software. 169 00:07:42,830 --> 00:07:46,830 Si představovali národ programátoři sestupně na MITS. 170 00:07:46,830 --> 00:07:49,590 A tak nazvali Ed Roberts, šéf společnosti, 171 00:07:49,590 --> 00:07:53,330 prohlašovat, že má verzi BASIC programovacího jazyka téměř připraven 172 00:07:53,330 --> 00:07:54,710 pro Altair. 173 00:07:54,710 --> 00:07:55,570 To se nestalo. 174 00:07:55,570 --> 00:07:58,910 A Roberts musel vědět, že ne. 175 00:07:58,910 --> 00:08:03,170 Začínal 10 hovorů denně od lidé, kteří měli BASIC téměř připraven. 176 00:08:03,170 --> 00:08:05,570 A jeho odpověď skladem byl "první člověk 177 00:08:05,570 --> 00:08:11,090 kdo se ukáže s pracovní BASIC dostane smlouvu. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates a Allen ještě nikdy neviděl Altair. 179 00:08:13,910 --> 00:08:17,600 Nikdy ještě neviděl Intel 8080 mikroprocesor 180 00:08:17,600 --> 00:08:19,060 v srdci Altair. 181 00:08:19,060 --> 00:08:21,470 Ale o pár let dříve Allen psal program 182 00:08:21,470 --> 00:08:25,220 na sálovém počítači, který emulované provoz předchozího Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesor. 184 00:08:26,217 --> 00:08:28,300 A tentokrát oni by udělal totéž. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: s procesorem Intel 8080 ruční po jeho boku, 187 00:08:34,380 --> 00:08:37,770 Allen se posadil na Harvard PDP-10 počítače 188 00:08:37,770 --> 00:08:42,010 a napsal emulátor a software nástroje potřebné k tomu programování. 189 00:08:42,010 --> 00:08:45,820 Mezitím Gates přestal chodit tříd a věnoval se 190 00:08:45,820 --> 00:08:48,120 k návrhu BASIC, používat každý trik 191 00:08:48,120 --> 00:08:53,130 věděl, že se velikost dole 4 KB. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: V Albuquerque, Ed Roberts zavolal Gates 193 00:08:55,870 --> 00:08:59,754 s žádostí o informace o tom, jak Altair zacházet specifické rutiny. 194 00:08:59,754 --> 00:09:01,170 Nikdo se nikdy nezeptal dřív. 195 00:09:01,170 --> 00:09:02,670 A Roberts začal být zájem. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: S rozvojem nástroje a design připravený, 198 00:09:07,970 --> 00:09:10,780 Gates a Allen napsal kód na PDP-10, 199 00:09:10,780 --> 00:09:16,060 získávat další Harvard studenta, Monte Davidoff, psát matematické rutiny. 200 00:09:16,060 --> 00:09:19,450 Po závěrečné noci programování, Allen dostal do letadla 201 00:09:19,450 --> 00:09:22,970 dodávat jejich základní na MITS. 202 00:09:22,970 --> 00:09:25,800 Strávil letadlo přečkat znepokojující. 203 00:09:25,800 --> 00:09:28,490 A zpět do Cambridge Gates byl znepokojující. 204 00:09:28,490 --> 00:09:32,100 Byli testovány jejich základní a že pracoval na emulátoru. 205 00:09:32,100 --> 00:09:35,444 Ale co v případě, že emulátor se mýlil? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Jako v letadle přiblížil Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen si uvědomil, že jejich BASIC, nyní úhledně obsažena 208 00:09:40,070 --> 00:09:42,460 na malé role děrovaný papírovou pásku, by 209 00:09:42,460 --> 00:09:44,970 k ničemu bez samostatné Program, nazvaný nakladač, který 210 00:09:44,970 --> 00:09:47,550 by se říct, Altair, jak číst papír pásku 211 00:09:47,550 --> 00:09:49,620 přivádí do teletype stroje. 212 00:09:49,620 --> 00:09:52,970 Vytáhl z kapsy zápisník a rychle načmáral dolů zavaděče programu 213 00:09:52,970 --> 00:09:56,819 v jazyce shromáždění, a pak ručně přeložil do 1s a 0s 214 00:09:56,819 --> 00:09:57,985 Altair bude rozumět. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Allen čekal čistý, malý, high-tech společnost 217 00:10:03,830 --> 00:10:05,470 běh muži v oblecích. 218 00:10:05,470 --> 00:10:09,210 Takže on byl překvapen, když se setkal Roberts ho na letišti vypadá jako ranči 219 00:10:09,210 --> 00:10:10,270 hand. 220 00:10:10,270 --> 00:10:12,070 Roberts byl také překvapen. 221 00:10:12,070 --> 00:10:16,340 Když se pustil Harvard programátor při dražší hotel, 222 00:10:16,340 --> 00:10:20,790 Allen musel přiznat, že si nemohl dovolit místnost. 223 00:10:20,790 --> 00:10:24,510 >> JAY Pavel: MITS, sama o sobě, byla Nachází se v prašném pásu obchoďáku. 224 00:10:24,510 --> 00:10:27,040 Uvnitř na přeplněná pracovní stůl byl Altair 225 00:10:27,040 --> 00:10:30,390 naloženo s 5 kilobajtů paměti a spojeny kabelem 226 00:10:30,390 --> 00:10:32,030 k dálnopisu stroje. 227 00:10:32,030 --> 00:10:37,200 Roberts a hlavní inženýr, Bill Yates, čekal s očekáváním 228 00:10:37,200 --> 00:10:40,660 jako Allen přepínat své nakladač Program na Altair. 229 00:10:40,660 --> 00:10:44,980 Dálnopisu začal supění, jak to vytáhl papírovou pásku přes páskovou čtenáře. 230 00:10:44,980 --> 00:10:47,215 Trvalo to asi 15 minut nahrát program. 231 00:10:47,215 --> 00:10:52,110 Pak dálnopisu náhle vytisknout paměť výzva, pak připravena výzva, 232 00:10:52,110 --> 00:10:55,340 a Allen začal psát Příkazy několik test. 233 00:10:55,340 --> 00:10:57,400 K všeobecnému úžasu, Pracoval software. 234 00:10:57,400 --> 00:10:58,525 Tam byly chyby, samozřejmě. 235 00:10:58,525 --> 00:11:02,070 Ale hlavní věc je, že funguje. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Později, na jejich cestě k 3,00 dolarů oběd v Pancho je, vosa letěl 237 00:11:06,570 --> 00:11:10,470 V okně vyzvednutí truck a pálily Allen na paži. 238 00:11:10,470 --> 00:11:13,070 Ale v tomto bodě nic mohl zkazit náladu. 239 00:11:13,070 --> 00:11:17,210 Altair měl nyní své základní, první komerční software pro domácí 240 00:11:17,210 --> 00:11:23,260 počítač, natočil Paul Allen a Bill Gates, podnikající pod názvem Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. Malan: Mnoho díky našim dvěma čtenářům. 242 00:11:25,336 --> 00:11:30,690 >> [APPLAUSE] 243 00:11:30,690 --> 00:11:32,520 >> David J. Malan: Teď máte možnost volby, 244 00:11:32,520 --> 00:11:35,880 před odjezdem, na jiskřivý nebo záře v dark-- oh, 245 00:11:35,880 --> 00:11:40,810 vyčkejte jednu sekundu, počkej jiskřivý a ve tmě slona 246 00:11:40,810 --> 00:11:42,534 od CS50 vlastní Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 HIKARI: Aw, děkuji. 248 00:11:43,450 --> 00:11:45,324 David J. Malan: All Dobře, děkuji moc. 249 00:11:45,324 --> 00:11:49,855 [APPLAUSE] 250 00:11:49,855 --> 00:11:51,105 David J. Malan: Tak pravdivý příběh. 251 00:11:51,105 --> 00:11:54,380 To znamená, že všechny tyto stroje a snadnost, s níž jsme 252 00:11:54,380 --> 00:11:56,270 použít nyní a přijmout za samozřejmost, opravdu 253 00:11:56,270 --> 00:12:00,070 začal tady, jen pár kroků Z tohoto skutečného divadla. 254 00:12:00,070 --> 00:12:03,930 A teď ještě dnes, pokud jste nebyli, To je Maxwell Dworkin, počítač 255 00:12:03,930 --> 00:12:05,810 vědy budova, i za rohem. 256 00:12:05,810 --> 00:12:09,760 A ve druhém patře tohoto Budova nemá viset tři stránky 257 00:12:09,760 --> 00:12:12,740 z původního zdrojového kódu, které Bill Gates a Paul Allen psal. 258 00:12:12,740 --> 00:12:14,770 Ve skutečnosti, pokud použití přiblížení na můžete vidět nejen 259 00:12:14,770 --> 00:12:17,350 jejich jména v Původní typ, ale také 260 00:12:17,350 --> 00:12:22,100 jejich podpisy, které zdobily pár let zpátky, kdy poslední návštěvy. 261 00:12:22,100 --> 00:12:25,800 >> Ale co bylo obzvlášť důležité o to je to, co je uvedeno na to 262 00:12:25,800 --> 00:12:29,760 bylo napsat program, který by umožnit ostatním lidem psát 263 00:12:29,760 --> 00:12:30,950 vlastní programy. 264 00:12:30,950 --> 00:12:34,280 V době, kdy vše bylo s tento stroj Altair vyroben MITS. 265 00:12:34,280 --> 00:12:40,020 A vše, co potřeboval, bylo, nějaký způsob, jak takže je snadné pro fandy a lidi, 266 00:12:40,020 --> 00:12:45,300 Líbí se nám v této místnosti skutečně programu že aniž by nutně pochopení 267 00:12:45,300 --> 00:12:49,060 Montáž kód, nebo stroj kód, nebo nedej bože, 0s a 1s. 268 00:12:49,060 --> 00:12:51,190 My programátoři, jako ty v této místnosti jsme 269 00:12:51,190 --> 00:12:54,070 chtějí mít možnost vyjádřit sami mnohem více jako pseudo kód 270 00:12:54,070 --> 00:12:57,330 i když je to trochu nit vybíravý, než jsme mluvili minulý týden. 271 00:12:57,330 --> 00:13:00,970 Nechceme psát kód, jako je toto, které Paul Allen a Bill Gates udělal. 272 00:13:00,970 --> 00:13:04,850 My místo toho chcete napsat kód, který vypadá trochu více uživatelsky přívětivé. 273 00:13:04,850 --> 00:13:07,150 >> Teď to je jazyk známý jako BASIC. 274 00:13:07,150 --> 00:13:11,497 A čísla řádků jsou to, co vás používat jednoduše číslovat řádky kódu 275 00:13:11,497 --> 00:13:12,330 že píšete. 276 00:13:12,330 --> 00:13:14,038 Nemáme dokonce ani to, že v těchto dnech. 277 00:13:14,038 --> 00:13:16,060 Ale můžete vidět zde jak PRINT "Hello, World" 278 00:13:16,060 --> 00:13:18,660 by totiž pravděpodobně tisknout jen to. 279 00:13:18,660 --> 00:13:22,710 A tak to, co Bill a Paul udělal, bylo, umožnit lidem psát kód, jako je toto 280 00:13:22,710 --> 00:13:27,240 místo of-- pokud jste se podívat na počítačové vědy wall-- kód, jako je toto. 281 00:13:27,240 --> 00:13:29,290 >> Ve skutečnosti, v poslední době CS50 měli příležitost 282 00:13:29,290 --> 00:13:32,540 sednout si s profesorem Harry Lewis v informatice oddělení, kteří 283 00:13:32,540 --> 00:13:34,640 vlastně učil Bill Gates před několika lety, 284 00:13:34,640 --> 00:13:38,460 a stojí zde před tyto tři strany výňatky. 285 00:13:38,460 --> 00:13:39,560 Pojďme se podívat. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Co musíte zde výpis rané kus softwaru 287 00:13:45,520 --> 00:13:50,240 napsal Bill Gates a Paul Allen, zakladatelé společnosti Microsoft. 288 00:13:50,240 --> 00:13:52,570 Takže kód je zajímavý ze dvou důvodů. 289 00:13:52,570 --> 00:13:55,480 Za prvé, to se stalo Microsoft je první produkt, 290 00:13:55,480 --> 00:14:01,810 který byl tlumočníkem BASIC programovacího jazyka. 291 00:14:01,810 --> 00:14:04,940 A za druhé, je to jeden z prvních pokusů 292 00:14:04,940 --> 00:14:10,580 vytvořit tlumočníka tak obyčejné lidé mohli využívat osobní počítače. 293 00:14:10,580 --> 00:14:12,670 >> Takže Bill Gates byl vysokoškolák na Harvardu. 294 00:14:12,670 --> 00:14:14,820 Začala jsem vyučovat na Harvardu v roce 1974. 295 00:14:14,820 --> 00:14:16,560 To bylo provedeno v roce 1975. 296 00:14:16,560 --> 00:14:20,180 Tak to bylo brzy v jeho kariéře a brzy ve své kariéře. 297 00:14:20,180 --> 00:14:23,790 Vlastně jsem učil Billa Samozřejmě kolem tohoto času. 298 00:14:23,790 --> 00:14:27,130 Paul Allen nebyl Harvard student, ale 299 00:14:27,130 --> 00:14:31,020 byl na střední škole spolužák Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Pokud se přijít podívat v seznamu, budete 301 00:14:33,740 --> 00:14:36,230 skutečně najít třetina jméno, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 který byl Gatese spolužák tady na Harvardu. 303 00:14:39,260 --> 00:14:41,340 >> OK, takže tady je zajímavý komentář tady. 304 00:14:41,340 --> 00:14:47,150 To říká, že "Ve 4K můžete odstranit odmocninu ale pro smyčky by měl i nadále pracovat. " 305 00:14:47,150 --> 00:14:53,080 OK, takže to, co to znamená, je to, že dva způsoby, jak zkompilovat tento program. 306 00:14:53,080 --> 00:14:57,860 Jeden z nich byl běžet na verzi tohoto počítače Altair 307 00:14:57,860 --> 00:15:04,310 , která měla jen 4K slova paměť 4096 slov paměti. 308 00:15:04,310 --> 00:15:07,050 Ale velká verze měla 8K. 309 00:15:07,050 --> 00:15:09,770 A tak, co to říká, že je že ve verzi 4K 310 00:15:09,770 --> 00:15:12,770 jste museli odstranit některé kód, aby bylo vhodné. 311 00:15:12,770 --> 00:15:14,790 A jedna z věcí, , které by byly odstraněny 312 00:15:14,790 --> 00:15:16,290 by odmocnina rutina. 313 00:15:16,290 --> 00:15:20,360 Ale zřejmě pro smyčky by měl i nadále 314 00:15:20,360 --> 00:15:26,392 pracovat, i když jste sestavování dolů pro jen 4K verze počítače. 315 00:15:26,392 --> 00:15:29,350 David J. Malan: Takže jedním z témat, jak uvidíme v informatice, 316 00:15:29,350 --> 00:15:31,430 je tento pojem vrstvení a abstrakce, 317 00:15:31,430 --> 00:15:34,670 a opravdu stojí na ramenou z lidí, kteří přišli před námi, ne 318 00:15:34,670 --> 00:15:37,890 na rozdíl od některých z Billa Gatese a Paul Allen vyprávění zde. 319 00:15:37,890 --> 00:15:40,080 A co to znamená, že dnes můžeme vzít na 320 00:15:40,080 --> 00:15:43,490 samozřejmé, že věci jsou ve skutečnosti pro nás snazší psát kód. 321 00:15:43,490 --> 00:15:47,170 Opravdu kód, jak jsme si řekli v pátek, je více technicky známý jako zdrojový kód. 322 00:15:47,170 --> 00:15:52,210 A to je to anglicky jako syntaxe to je víc, řádné a více dobře definované 323 00:15:52,210 --> 00:15:55,480 než něco jako pseudo kód, pro který neexistuje žádná formální definice. 324 00:15:55,480 --> 00:15:58,320 >> A dnes, co budeme soustředit se na, je zdrojový kód 325 00:15:58,320 --> 00:16:01,010 že vypadá, což sice na první pohled 326 00:16:01,010 --> 00:16:02,690 vypadá úplně mystické. 327 00:16:02,690 --> 00:16:08,540 A upřímně řečeno, je to způsob, jak esteticky složitější než základní program. 328 00:16:08,540 --> 00:16:13,300 To vše program dělá, Připomeňme, je to, co jsme si řekli? 329 00:16:13,300 --> 00:16:14,990 Je to prostě vytiskne "hello world". 330 00:16:14,990 --> 00:16:19,600 A přesto se na všechny věci, které potřebujeme zabalit kolem toho velmi jednoduché fráze. 331 00:16:19,600 --> 00:16:21,750 Ale netrvalo dlouho a všichni tyto řádky a více 332 00:16:21,750 --> 00:16:24,800 bude mnohem lepší smysl. 333 00:16:24,800 --> 00:16:26,940 >> A průtok je následující. 334 00:16:26,940 --> 00:16:31,220 Co potřebujeme, máme k dispozici je, aby se kód, jako zdroj 335 00:16:31,220 --> 00:16:32,340 kód, který jsme právě viděli. 336 00:16:32,340 --> 00:16:35,060 A my potřebujeme nový program spustíme ji projít. 337 00:16:35,060 --> 00:16:39,130 Potřebujeme algoritmy, které mohou převést zdrojový kód, jako je tento, 338 00:16:39,130 --> 00:16:41,932 do objektového kódu, 0s a 1s. 339 00:16:41,932 --> 00:16:43,890 Jinými slovy, to, co budeme se učit ještě dnes 340 00:16:43,890 --> 00:16:46,620 je, jak to udělat, napsat Zdrojový kód do horní části, 341 00:16:46,620 --> 00:16:49,930 předat ho jako vstup na zvláštní Program známý jako kompilátor, 342 00:16:49,930 --> 00:16:52,140 a budeme produkovat objektový kód. 343 00:16:52,140 --> 00:16:54,600 Což je jen ozdobný způsob, jak že bychom se vzít něco 344 00:16:54,600 --> 00:16:58,350 že vypadá takhle, předat ji do programu s názvem kompilátor, 345 00:16:58,350 --> 00:17:01,210 produkovat objektový kód že vypadá takhle. 346 00:17:01,210 --> 00:17:04,720 >> Tak to jsou doslova vzory 0s a 1s 347 00:17:04,720 --> 00:17:08,550 , které jsou chápány Počítač Intel v těchto dnech, 348 00:17:08,550 --> 00:17:12,480 že pokud je vykládán CPU, mozky uvnitř počítače, 349 00:17:12,480 --> 00:17:16,130 doslova vytisknout, docela jednoduše, "hello world". 350 00:17:16,130 --> 00:17:19,670 Nyní je tu způsob, jak více 0s a 1s, než vás doufá, že by mohly být nezbytné pro to. 351 00:17:19,670 --> 00:17:22,520 Ale to je proto, že stavíme o dobré řešení složitosti 352 00:17:22,520 --> 00:17:24,270 že můžeme nadále brát jako samozřejmost. 353 00:17:24,270 --> 00:17:27,869 Jinými slovy, mnoho chytrých lidí dali nám spoustu skvělých nástrojů 354 00:17:27,869 --> 00:17:32,480 a výkonný software, s nimiž Nyní můžete provést projekty sami. 355 00:17:32,480 --> 00:17:33,400 >> Takže začněme. 356 00:17:33,400 --> 00:17:36,640 Zatímco minulý pátek, a k problému Set 0 tento týden 357 00:17:36,640 --> 00:17:39,000 budete hrát v svět, který vypadá takto. 358 00:17:39,000 --> 00:17:42,180 Od dnešního dne a problém Nastavte 1 příští týden, kód 359 00:17:42,180 --> 00:17:45,410 bude trochu vypadat mystický, ale funkčně je 360 00:17:45,410 --> 00:17:46,940 bude stejná. 361 00:17:46,940 --> 00:17:50,770 Tak oznámení, vrchol je Scratch, dno je C. Upřímně Scratch 362 00:17:50,770 --> 00:17:52,780 je mnohem více uživatelsky přátelská a přístupná. 363 00:17:52,780 --> 00:17:56,890 Ale pokud jste se porovnat vizuálně shora dole, tam je docela prostá 364 00:17:56,890 --> 00:17:59,690 korespondence mezi skládačky a jazyk 365 00:17:59,690 --> 00:18:00,870 se chystáme hrát. 366 00:18:00,870 --> 00:18:04,420 Zejména, řekněme, modrý kousek skládačky do top, 367 00:18:04,420 --> 00:18:08,370 je zřejmě odpovídá tomu, co klíčového slova nebo speciální fráze v tomto jazyce 368 00:18:08,370 --> 00:18:09,062 volal C? 369 00:18:09,062 --> 00:18:09,770 DIVÁKŮ: printf. 370 00:18:09,770 --> 00:18:10,728 David J. Malan: printf. 371 00:18:10,728 --> 00:18:12,140 To znamená, že formátovaný tisk. 372 00:18:12,140 --> 00:18:15,240 A to je jen fantazie způsob, jak říkat printf v C 373 00:18:15,240 --> 00:18:18,615 bude příkaz nebo funkci která tiskne něco na obrazovku. 374 00:18:18,615 --> 00:18:19,990 Co to vytisknout na obrazovku? 375 00:18:19,990 --> 00:18:23,627 Cokoliv řeknete, že se uvnitř uvozovek, uvnitř závorek. 376 00:18:23,627 --> 00:18:25,460 Takže znovu, pravda, je tu spousta věcí, 377 00:18:25,460 --> 00:18:27,990 , že musíte mít na paměti, závorky, uvozovky, středníky, 378 00:18:27,990 --> 00:18:28,656 a to vše. 379 00:18:28,656 --> 00:18:30,600 Ale to všechno je trochu z vedlejší. 380 00:18:30,600 --> 00:18:33,660 Zajímavý stánek s jídlem teď je to, že řekněme blok Scratch 381 00:18:33,660 --> 00:18:37,520 je do značné míry ekvivalentní prohlášení printf v C. 382 00:18:37,520 --> 00:18:41,390 >> Mezitím, žlutá skládačky do horní části, kdy zelená vlajka kliknutí 383 00:18:41,390 --> 00:18:44,736 je zřejmě ekvivalentní k tomu, co tady klíčových slov? 384 00:18:44,736 --> 00:18:45,360 DIVÁKŮ: Main. 385 00:18:45,360 --> 00:18:46,359 David J. Malan: Tak hlavní. 386 00:18:46,359 --> 00:18:47,410 Možná, že pravý, možná neplatné. 387 00:18:47,410 --> 00:18:51,280 Ale hlavní druhy zvuků, jako je je to důležité, a opravdu je to tak. 388 00:18:51,280 --> 00:18:54,080 Takže když se zelenou vlajkou klepnutí je opět kousek skládačky 389 00:18:54,080 --> 00:18:56,390 že začíná Celý Scratch programu. 390 00:18:56,390 --> 00:19:02,140 Ale budeme se začít volat že hlavní, tato funkce známé jako hlavní. 391 00:19:02,140 --> 00:19:06,410 >> Teď zatím potkáme zobecnit to následujícím způsobem. 392 00:19:06,410 --> 00:19:08,780 Bychom mohli nazvat říci funkci. 393 00:19:08,780 --> 00:19:10,580 A to může vypadat konkrétně takhle. 394 00:19:10,580 --> 00:19:11,770 No, a co smyček? 395 00:19:11,770 --> 00:19:16,540 Chceme-li začít konverzi nebo překlady více Scratch na C, 396 00:19:16,540 --> 00:19:19,400 tohle tu zřejmě jen říká, že "hello world" navždy. 397 00:19:19,400 --> 00:19:23,060 Takže pokud spojíte tyto skripty s kočkou v Scratch, 398 00:19:23,060 --> 00:19:26,560 je to jen jde, aby řekl v nějakém kresleném bubliny, 399 00:19:26,560 --> 00:19:29,922 "Hello world, hello world, ahoj svět, "ad nauseum, navždy. 400 00:19:29,922 --> 00:19:33,130 Chceme-li udělat něco podobného v C, bude to vypadat trochu záhadné. 401 00:19:33,130 --> 00:19:35,463 Ale můžeme dosáhnout stejné výsledky, jak jsme si nakonec 402 00:19:35,463 --> 00:19:36,861 zjistit, syntax, jako je tento. 403 00:19:36,861 --> 00:19:39,360 Budu používat printf znovu, proto, že na konci dne 404 00:19:39,360 --> 00:19:42,040 Chci vytisknout "Hello World". 405 00:19:42,040 --> 00:19:45,610 A já jsem zřejmě pomocí klíčové slovo, které není navždy. 406 00:19:45,610 --> 00:19:47,320 Je to místo, zatímco slovo. 407 00:19:47,320 --> 00:19:49,650 Ale jen sémanticky v Anglicky, zatímco druh 408 00:19:49,650 --> 00:19:52,120 navrhne nějaké smyčce nebo cyklu. 409 00:19:52,120 --> 00:19:55,070 >> Tak, že se stane, že klíčové slovo, které C používá. 410 00:19:55,070 --> 00:20:00,700 A i když pravda, proč chvíli pravda efektivně znamená navždy? 411 00:20:00,700 --> 00:20:04,240 No, když, jak jsme brzy vážit více, 412 00:20:04,240 --> 00:20:08,140 má tuto v závorkách vedle ní kde si můžete dát logický výraz. 413 00:20:08,140 --> 00:20:11,360 A tak dlouho, jak je to výraz je pravdivý, tento kód, 414 00:20:11,360 --> 00:20:14,750 jak je označeno mezi těmito dvěma složené závorky, tak jak je to volání, 415 00:20:14,750 --> 00:20:16,880 bude jen držet znovu a znovu spustit. 416 00:20:16,880 --> 00:20:18,410 >> Takže pravda je pravda. 417 00:20:18,410 --> 00:20:20,900 Takže je sice pravda prostředky Jen to navždy. 418 00:20:20,900 --> 00:20:23,480 Je to skoro hloupé postavit se vyjádřit sám sebe. 419 00:20:23,480 --> 00:20:26,590 Ale nebylo navždy klíčové slovo v C. Bylo to. 420 00:20:26,590 --> 00:20:29,390 A tam byl velmi jednoduchý Boolean výraz jako pravdivý. 421 00:20:29,390 --> 00:20:32,210 A tak to, uvidíme, dosahuje stejného výsledku. 422 00:20:32,210 --> 00:20:33,890 >> Jak jinak by mohl implementovat smyčku? 423 00:20:33,890 --> 00:20:36,980 No, Scratch byste mohli pevný kód určitý počet 424 00:20:36,980 --> 00:20:39,430 iterací ve smyčce zde. 425 00:20:39,430 --> 00:20:43,210 A tak to je přesně to, co jsme mohli dělat v této verzi C, 426 00:20:43,210 --> 00:20:46,140 čímž máme tzv pro smyčku. 427 00:20:46,140 --> 00:20:49,850 A smyčka se zde děje iterovat poněkud záhadně, 428 00:20:49,850 --> 00:20:54,100 z hodnoty 0 na up na, ale méně než 10. 429 00:20:54,100 --> 00:20:55,955 >> Nyní proměnné nuly. 430 00:20:55,955 --> 00:20:57,830 Možná neměl příležitost k využití těchto. 431 00:20:57,830 --> 00:21:02,516 Ale jaký to má smysl, obecně, proměnné jsme si řekli v minulém týdnu? 432 00:21:02,516 --> 00:21:03,015 Co je to? 433 00:21:03,015 --> 00:21:03,780 >> Diváků: Body. 434 00:21:03,780 --> 00:21:05,200 >> David J. Malan: na místo? 435 00:21:05,200 --> 00:21:05,700 Oh, body. 436 00:21:05,700 --> 00:21:07,620 OK, sledování bodů, Například, ve hře. 437 00:21:07,620 --> 00:21:09,510 Nebo obecněji dělá co s proměnnou? 438 00:21:09,510 --> 00:21:10,450 Co je to nástroj z nich? 439 00:21:10,450 --> 00:21:10,825 >> DIVÁKŮ: Memory. 440 00:21:10,825 --> 00:21:11,750 >> David J. Malan: Jo, tak paměť. 441 00:21:11,750 --> 00:21:13,000 Je to něco, co pro ukládání. 442 00:21:13,000 --> 00:21:17,336 A tak nějak hloupé vizuální i použité Naposledy to bylo podobné skleněné mísy. 443 00:21:17,336 --> 00:21:19,710 A pokud bychom chtěli uložit něco uvnitř proměnné, 444 00:21:19,710 --> 00:21:21,918 Například právě teď hodnota je šest, protože tam 445 00:21:21,918 --> 00:21:23,450 šest ping pong míčky zde. 446 00:21:23,450 --> 00:21:26,158 Je to jen nějaký druh skladování kontejner, který pod kapotou 447 00:21:26,158 --> 00:21:30,030 je realizováno s bity, 0s a 1s, ale počítač se stane to udělat. 448 00:21:30,030 --> 00:21:32,900 >> Takže v Scratch, když jsme Chcete mít proměnnou, 449 00:21:32,900 --> 00:21:34,840 můžeme použít oranžový blok, jako je tento. 450 00:21:34,840 --> 00:21:37,050 Budeme volat, že počítadlo v tomto konkrétním případě. 451 00:21:37,050 --> 00:21:38,890 Inicializován jsem to 0. 452 00:21:38,890 --> 00:21:41,080 A to, co jsem pak dělat? 453 00:21:41,080 --> 00:21:44,780 Navždy, říká čítač, který v případě, budete hrát s tím v Scratch, 454 00:21:44,780 --> 00:21:45,780 budete jen vidět Scratch. 455 00:21:45,780 --> 00:21:49,920 Kočka nebo co kostým si na ním bude mluvit číslo se jedná. 456 00:21:49,920 --> 00:21:52,840 >> Změna čítač 1 je jako je zvyšování o 1. 457 00:21:52,840 --> 00:21:56,580 A tak to bude počítat od tak co, co? 458 00:21:56,580 --> 00:21:59,114 Od 0 til nekonečna, nebo do Scratch přestávky, 459 00:21:59,114 --> 00:22:01,030 nebo dokud se trochu ztratí zájem o sledování 460 00:22:01,030 --> 00:22:02,650 jak vysoko se může skutečně spolehnout. 461 00:22:02,650 --> 00:22:04,800 >> Tak jak můžeme převést to C? 462 00:22:04,800 --> 00:22:06,480 Bude to vypadat trochu záhadné. 463 00:22:06,480 --> 00:22:08,896 Ale na druhou stranu, když se podíváte na sebe těchto řádků jednotlivě 464 00:22:08,896 --> 00:22:10,410 že druh lineup obecně. 465 00:22:10,410 --> 00:22:13,526 Takže zřejmě int bude mít nějaký zvláštní význam v C. 466 00:22:13,526 --> 00:22:14,400 Uvidíme znovu. 467 00:22:14,400 --> 00:22:15,810 Mimochodem to znamená, že celé číslo. 468 00:22:15,810 --> 00:22:16,990 Tak to prostě znamená, že číslo. 469 00:22:16,990 --> 00:22:18,920 Tak to je druh skleněné mísy Chci, jeden 470 00:22:18,920 --> 00:22:21,120 které lze uložit čísla, ne ping pong míčky. 471 00:22:21,120 --> 00:22:25,520 A budu používat rovnítko tam přiřadit jí hodnotu 0. 472 00:22:25,520 --> 00:22:29,440 Tak to je docela jako sadu proti 0, ale v C. 473 00:22:29,440 --> 00:22:32,840 >> Mezitím, přičemž platí, že je ekvivalent, samozřejmě navždy, 474 00:22:32,840 --> 00:22:35,980 i když je to trochu záhadný, a pak uvnitř složených závorek. 475 00:22:35,980 --> 00:22:39,188 A vy můžete myslet na těchto složených závorkách, které si můžete psát na klávesnici, 476 00:22:39,188 --> 00:22:43,110 jak skutečně jsou, jako je zakřivení Tyto žluté smyčky bloky nuly. 477 00:22:43,110 --> 00:22:45,700 To zahrnuje několik řádků kódu. 478 00:22:45,700 --> 00:22:48,120 >> Printf je stále Trochu teď děsivé, protože jsem 479 00:22:48,120 --> 00:22:51,120 viz citace nejen v závorkách. 480 00:22:51,120 --> 00:22:55,160 Ale co jiného je nového syntakticky v tomto případě? 481 00:22:55,160 --> 00:22:57,300 Tam je procento d. 482 00:22:57,300 --> 00:22:58,551 A pak zpětné lomítko n je tam. 483 00:22:58,551 --> 00:23:00,883 Jsme vidět, že před i i když jsem o tom nezmínil. 484 00:23:00,883 --> 00:23:01,886 Pak je tu čárka. 485 00:23:01,886 --> 00:23:03,010 A pak je tu pult. 486 00:23:03,010 --> 00:23:05,010 >> Ale uvidíme v několika okamžik, že toto je jen 487 00:23:05,010 --> 00:23:09,080 standardní způsob, jak říkat vytisknout "Desetinné číslo," citace, konec citátu, 488 00:23:09,080 --> 00:23:10,500 nějaké desetinné číslo. 489 00:23:10,500 --> 00:23:13,370 Ale já jsem ti to říct později co to desetinné číslo je. 490 00:23:13,370 --> 00:23:16,835 Takže k tomu, že tam je čárka V tomto řádku říká, printf, 491 00:23:16,835 --> 00:23:18,710 znamená, že do toho pusťte a tisk nějaké desetinné číslo. 492 00:23:18,710 --> 00:23:23,110 Jo, a mimochodem, je číslo Ať už je hodnota této proměnné. 493 00:23:23,110 --> 00:23:25,880 A tak, aby se to více jasné, uvidíme příklad 494 00:23:25,880 --> 00:23:30,930 zanedlouho zahrnující přesně printf v rámci reálného C programů. 495 00:23:30,930 --> 00:23:33,472 >> Teď už jen stačí zabalit některé z těchto konstruktů. 496 00:23:33,472 --> 00:23:36,680 Booleovské výrazy, nemusí mít příležitost k využití těchto ve vašem programu 497 00:23:36,680 --> 00:23:39,450 ale můžete velmi dobře, zejména pokud používáte podmínek. 498 00:23:39,450 --> 00:23:43,460 A tak se tyto dva příklady z Stírací na mysli, pokud x je menší než y, 499 00:23:43,460 --> 00:23:48,770 nebo jestliže x je menší než y a y je méně než z, jak můžeme přeložit? 500 00:23:48,770 --> 00:23:50,810 >> No, v C je to jen bude vypadat takto. 501 00:23:50,810 --> 00:23:55,300 A trochu mystické, více závorky, nějaké divné ampersandy, ale v podstatě 502 00:23:55,300 --> 00:23:59,160 myšlenky jsou tak jednoduché, jak jsou v puzzle kus světa. 503 00:23:59,160 --> 00:24:02,690 Jsme prostě kontrolovat, zda něco je menší než něco jiného. 504 00:24:02,690 --> 00:24:03,910 >> Jak se k podmínkám? 505 00:24:03,910 --> 00:24:09,710 Stručně řečeno v angličtině, co to kus Scratch kódu udělat, říkáte? 506 00:24:09,710 --> 00:24:11,050 >> Diváků: Porovná dvě čísla. 507 00:24:11,050 --> 00:24:13,760 >> David J. Malan: Porovná dva čísla, a pokud x je menší než y 508 00:24:13,760 --> 00:24:14,860 se říká, že tolik. 509 00:24:14,860 --> 00:24:18,080 Jestliže x je větší než y říká tolik, jinak 510 00:24:18,080 --> 00:24:20,740 jestliže x je rovno y se říká, že stejně. 511 00:24:20,740 --> 00:24:22,180 Tak kde to x a y pocházejí? 512 00:24:22,180 --> 00:24:22,680 Kdo ví. 513 00:24:22,680 --> 00:24:25,380 Tento kus Scratch kód je vytržené z kontextu. 514 00:24:25,380 --> 00:24:29,050 Ale to, co chceme udělat, je přeložit to jen na chvíli vidět. 515 00:24:29,050 --> 00:24:31,660 >> Tak, jak se dostanete pohodlně tento týden v Zadání problému 516 00:24:31,660 --> 00:24:34,190 0 hrát v tomto světě na levé straně, si uvědomují, 517 00:24:34,190 --> 00:24:36,940 že myšlenky se nemění tento týden, nebo příští, nebo mimo ni. 518 00:24:36,940 --> 00:24:38,690 Jsme prostě bude začněte psát věci 519 00:24:38,690 --> 00:24:41,240 jiným způsobem s naším Klávesnice místo našeho myši. 520 00:24:41,240 --> 00:24:44,577 >> Takže, pokud x je menší než y, a Je tam nějaké závorky, 521 00:24:44,577 --> 00:24:47,160 pak je tu nějaké složené závorky Dalším druhem zapouzdřit 522 00:24:47,160 --> 00:24:48,970 stejně jako žluté skládačky dělat. 523 00:24:48,970 --> 00:24:53,000 A budu printf x je menší než y, a tak dále. 524 00:24:53,000 --> 00:24:56,540 >> Co je hezké o C, jak můžete vidět zde, 525 00:24:56,540 --> 00:25:00,480 je to, že nemusíte dostat tuto hnízdění, hnízdění, hnízdění je to nezbytně 526 00:25:00,480 --> 00:25:02,220 bude tlačit svůj kód vpravo. 527 00:25:02,220 --> 00:25:04,990 Místo toho můžete mít vše lineup úhledně takhle. 528 00:25:04,990 --> 00:25:08,960 Ale to je jen estetický detail uvidíme zase zanedlouho. 529 00:25:08,960 --> 00:25:09,660 >> V pořádku. 530 00:25:09,660 --> 00:25:13,290 Tak, že nás přivádí zpět k tento mystický hledá programu. 531 00:25:13,290 --> 00:25:15,180 Pojďme vlastně napsat nějaký kód. 532 00:25:15,180 --> 00:25:16,830 Nyní, jak se vám jít o psaní kódu? 533 00:25:16,830 --> 00:25:21,310 Všechny ty roky, které jste ve vlastnictví Mac nebo PC, desktop nebo notebook, 534 00:25:21,310 --> 00:25:24,520 jste vlastně měl možnost začít psát programový kód. 535 00:25:24,520 --> 00:25:27,050 Ale vy jste pravděpodobně chybí speciální typ programu. 536 00:25:27,050 --> 00:25:28,470 Určitě můžete psát kód. 537 00:25:28,470 --> 00:25:30,740 Ale nemůžeš nutně, po vybalení z krabice, 538 00:25:30,740 --> 00:25:34,210 převést, že zdrojový kód na strojovém kódu, 0s a 1s 539 00:25:34,210 --> 00:25:35,619 aniž co na vašem počítači? 540 00:25:35,619 --> 00:25:36,410 DIVÁKŮ: Compiler. 541 00:25:36,410 --> 00:25:37,630 David J. Malan: Takže kompilátor, že jo. 542 00:25:37,630 --> 00:25:39,730 Nyní většina z vás asi nemají vlastní kompilátor, 543 00:25:39,730 --> 00:25:41,259 Nikdy stáhli kompilátor. 544 00:25:41,259 --> 00:25:44,300 Ale uvidíte, můžete si jej stáhnout stejně jako většina jiného kusu softwaru. 545 00:25:44,300 --> 00:25:47,470 Ve světě Mac OS, můžete stáhnout nebo si stáhli již 546 00:25:47,470 --> 00:25:50,437 něco, co nazývá Xcode nebo GCC nebo Clang. 547 00:25:50,437 --> 00:25:52,270 Přijedete-li od Svět Windows by se vám mohlo 548 00:25:52,270 --> 00:25:56,190 stáhli Visual Studio, Visual Basic, prostředí, jako je to. 549 00:25:56,190 --> 00:25:59,200 Je tu desítky překladačů v těchto dnech, které můžete použít. 550 00:25:59,200 --> 00:26:01,940 Ale tady krátké na to, je to, že by bolest 551 00:26:01,940 --> 00:26:04,480 a, upřímně řečeno, technologický noční můra pro stovky 552 00:26:04,480 --> 00:26:07,680 lidí s různými počítačové konfigurace pro všechny 553 00:26:07,680 --> 00:26:09,800 konfigurovat své stroje stejným způsobem, 554 00:26:09,800 --> 00:26:11,700 takže můžeme být všichni na stejné stránce. 555 00:26:11,700 --> 00:26:15,240 >> Takže to, co my, místo toho, dělat v CS50 je dáme vám 556 00:26:15,240 --> 00:26:18,349 standardní prostředí, Linux prostředí, které je 557 00:26:18,349 --> 00:26:20,140 bude vypadat trochu něco takového. 558 00:26:20,140 --> 00:26:22,980 Uvidíte víc než to v Problém Set 1 specifikace, které 559 00:26:22,980 --> 00:26:25,330 půjde tento pátek v noci on-line. 560 00:26:25,330 --> 00:26:28,360 >> A co to znamená je to, že od nynějška 561 00:26:28,360 --> 00:26:32,060 se bude moci stáhnout a nainstalovat program 562 00:26:32,060 --> 00:26:33,650 volal CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 A budete-li stáhnout a nainstalovat další program s názvem 564 00:26:36,275 --> 00:26:40,300 hypervisor, který je jen ozdobný způsob, jak toho dosáhnout. 565 00:26:40,300 --> 00:26:44,600 Ať už vlastníte Mac nebo PC nebo Linux nebo počítač Solaris, 566 00:26:44,600 --> 00:26:46,830 nebo cokoliv blázen provozní systém, který používáte, 567 00:26:46,830 --> 00:26:49,820 budete stáhnout program nazývá hypervisor, který je 568 00:26:49,820 --> 00:26:53,350 chystá spustit CS50 Přístroj na vašem počítači 569 00:26:53,350 --> 00:26:55,430 bez ohledu na to, co je váš operační systém. 570 00:26:55,430 --> 00:27:00,640 Hypervizor jinými slovy převádí naše věci na jakémkoliv jazyce, 571 00:27:00,640 --> 00:27:03,850 bez ohledu na pokyny svého vlastní počítač rozumí. 572 00:27:03,850 --> 00:27:04,962 >> Tak to je vrstvení. 573 00:27:04,962 --> 00:27:06,920 A opět, je to druh tematických v počítači 574 00:27:06,920 --> 00:27:08,722 věda, budova nad věcí. 575 00:27:08,722 --> 00:27:09,680 Můžete mít Windows. 576 00:27:09,680 --> 00:27:10,710 Můžete mít Mac OS. 577 00:27:10,710 --> 00:27:12,960 Ale od příštího týdne budete bude stáhli 578 00:27:12,960 --> 00:27:14,980 volný kus softwaru nazývá hypervisor. 579 00:27:14,980 --> 00:27:17,800 Budeš si stáhli kus software s názvem CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Bude to běh na hypervisoru, který se chystá spustit na vašem počítači. 581 00:27:21,050 --> 00:27:23,030 A konečný výsledek je že každý z nás bude 582 00:27:23,030 --> 00:27:26,220 mají jednoduché okno, jako je to na vašem počítači Mac nebo PC 583 00:27:26,220 --> 00:27:30,160 které nám dává iluzi všechny stejný operační systém, 584 00:27:30,160 --> 00:27:32,800 bez jakékoli jiné dopad na vašem počítači. 585 00:27:32,800 --> 00:27:34,870 A můžete na celé obrazovce to a v podstatě se chovají 586 00:27:34,870 --> 00:27:37,550 jako kdyby se systémem operační systém s názvem Linux, 587 00:27:37,550 --> 00:27:40,270 , který je, co CS50 Zařízení je založeno na. 588 00:27:40,270 --> 00:27:42,930 >> Takže pojďme se vlastně použít teď napsat program. 589 00:27:42,930 --> 00:27:45,450 Můžete napsat program pomocí aplikace Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Můžete napsat program pomocí TextEditu nebo Poznámkový blok, 591 00:27:48,160 --> 00:27:51,880 nebo WordPad, nebo skoro žádné slovo zpracování programu jste někdy používali. 592 00:27:51,880 --> 00:27:55,174 Ale skutečnost je taková, neměli byste používat opravdu některý z těchto programů. 593 00:27:55,174 --> 00:27:57,840 Určitě neměli používat něco jako Microsoft Word, který 594 00:27:57,840 --> 00:28:01,120 má smělé obklad kurzívou, a větší fonty a menších písem, 595 00:28:01,120 --> 00:28:03,560 protože počítač není péče o nic z toho. 596 00:28:03,560 --> 00:28:05,600 Vše je počítač bude se starat o je 597 00:28:05,600 --> 00:28:09,040 Angličtina jako instrukcí napsaných v jazyce C. 598 00:28:09,040 --> 00:28:12,050 >> Takže, co budeme dělat uvnitř o CS50 spotřebiče 599 00:28:12,050 --> 00:28:14,290 je použít program volně k dispozici, a to je 600 00:28:14,290 --> 00:28:17,360 předinstalovaná v tomto zařízení, volal gedit. 601 00:28:17,360 --> 00:28:22,280 A gedit je prostě super jednoduché textový editor, jako je Mac OS je TextEdit, 602 00:28:22,280 --> 00:28:26,200 jako je Windows Poznámkový blok, co se děje na podívejte se na něco takového. 603 00:28:26,200 --> 00:28:28,910 >> Takže to vlastně není podívejte se na snímky z této. 604 00:28:28,910 --> 00:28:32,580 Ale pojďme skutečně jít do samotné prostředí. 605 00:28:32,580 --> 00:28:36,090 Chystám se jít dopředu a přihlásit, v tom druhém okně 606 00:28:36,090 --> 00:28:40,910 k mému CS50 Appliance, který jsem pre-nainstalován na mém notebooku zde. 607 00:28:40,910 --> 00:28:43,771 >> Všimněte si, že stejně jako v systému Windows a Mac OS, je to má nějaké nabídky. 608 00:28:43,771 --> 00:28:45,520 Stejně jako Windows klade je tam místo 609 00:28:45,520 --> 00:28:47,020 Mac OS, což ji řadí tam. 610 00:28:47,020 --> 00:28:48,930 Ale realita je taková, že je to všechny druhy stejné. 611 00:28:48,930 --> 00:28:50,770 A tady je celý banda software. 612 00:28:50,770 --> 00:28:51,770 K dispozici je Dropbox. 613 00:28:51,770 --> 00:28:54,780 Je tu celá parta příslušenství, grafické programy, které budeme 614 00:28:54,780 --> 00:28:56,430 použít později v termínu pro problémové sady. 615 00:28:56,430 --> 00:28:59,650 K dispozici je webový prohlížeč postavený v tak že se jedná o plnohodnotného počítače 616 00:28:59,650 --> 00:29:01,240 uvnitř počítače. 617 00:29:01,240 --> 00:29:04,170 >> Ale budu Klepnutím na toto tlačítko vlevo bílá ikona zde 618 00:29:04,170 --> 00:29:05,890 což je ikona Gedit. 619 00:29:05,890 --> 00:29:09,650 A bude to otevřít okno , že má tři panely k němu, 620 00:29:09,650 --> 00:29:12,590 levá, horní jeden, a dole jeden. 621 00:29:12,590 --> 00:29:16,071 >> Teď je to v tomto pravém horním ten, který Chystám se vlastně napsat nějaký kód. 622 00:29:16,071 --> 00:29:16,820 Tak pojďme na to ,. 623 00:29:16,820 --> 00:29:19,040 Chystám se jít na Soubor, Uložit. 624 00:29:19,040 --> 00:29:22,100 A možná nikdy vidět tento konkrétní okno předtím. 625 00:29:22,100 --> 00:29:23,620 Ale je to jako Mac OS nebo Windows. 626 00:29:23,620 --> 00:29:25,490 Je to jen okno se všechny složky 627 00:29:25,490 --> 00:29:27,290 že mám uvnitř počítače. 628 00:29:27,290 --> 00:29:30,320 >> A já budu šetřit soubor jako hello.c. 629 00:29:30,320 --> 00:29:32,690 A já jdu dopředu a klepněte na tlačítko Uložit. 630 00:29:32,690 --> 00:29:36,364 A teď všimnout mám kartu v levém horním rohu s názvem hello.c. 631 00:29:36,364 --> 00:29:38,280 Takže asi dost zná, i když jsem se 632 00:29:38,280 --> 00:29:40,240 než použít tento konkrétní program. 633 00:29:40,240 --> 00:29:44,890 >> A teď budu psát v těch docela mystický posloupnost příkazů 634 00:29:44,890 --> 00:29:46,360 které jsme viděli před chvílí. 635 00:29:46,360 --> 00:29:49,330 Patří standardní I / O.h. 636 00:29:49,330 --> 00:29:50,600 Více informací o tom brzy. 637 00:29:50,600 --> 00:29:55,670 Int main void, otevřený kudrnaté rovnátka, uzavřená složená závorka. 638 00:29:55,670 --> 00:30:01,570 A pak uvnitř jsem tam, že je kde jsme měli "Hello World", středník. 639 00:30:01,570 --> 00:30:03,100 A nyní uložit. 640 00:30:03,100 --> 00:30:08,780 >> Takže tohle je napsán v jazyce C program, psáno, tedy ve zdrojovém kódu. 641 00:30:08,780 --> 00:30:10,720 Ale nemůžu jen spustit tento program. 642 00:30:10,720 --> 00:30:13,390 Jsem tak trochu chtěl zdvojnásobit klikněte na ikonu někde, 643 00:30:13,390 --> 00:30:16,390 ale žádný symbol neexistuje jiný než soubor zdrojového kódu. 644 00:30:16,390 --> 00:30:20,359 Co zase, je proces, který se Musím spustit tento soubor v? 645 00:30:20,359 --> 00:30:21,150 DIVÁKŮ: Compiler. 646 00:30:21,150 --> 00:30:22,399 David J. Malan: Takže kompilátor. 647 00:30:22,399 --> 00:30:24,890 Takže v různých počítačích, udělat různými způsoby. 648 00:30:24,890 --> 00:30:27,480 Ale to, co jsme udělali tady v CS50 Appliance, které je 649 00:30:27,480 --> 00:30:31,260 zástupce o tom, jak byste mohli to na mnoha různých systémech to, 650 00:30:31,260 --> 00:30:34,036 je, že jsem prostě jít do spustit příkaz s názvem make. 651 00:30:34,036 --> 00:30:35,660 A Zkontrolujte, zda je doslova dělat, že. 652 00:30:35,660 --> 00:30:36,640 Udělej mi program. 653 00:30:36,640 --> 00:30:39,060 >> Tak, aby se chystá spustit kompilátor pro mě. 654 00:30:39,060 --> 00:30:42,160 A název programu Chci, aby je pozdravil. 655 00:30:42,160 --> 00:30:43,510 Nyní, aby je program. 656 00:30:43,510 --> 00:30:47,170 A aby je dost chytrý Uvědomuji si, že když řeknu, aby ahoj, 657 00:30:47,170 --> 00:30:50,980 to bude vypadat automaticky k souboru s názvem hello.c 658 00:30:50,980 --> 00:30:53,420 jen proto, že je to způsob, jak je nastaveno. 659 00:30:53,420 --> 00:31:00,300 >> Takže když teď stisknete klávesu Enter tady, to blázen mystický linka zrovna popraven. 660 00:31:00,300 --> 00:31:02,720 A věř mi, než dlouho, do několika dní, 661 00:31:02,720 --> 00:31:05,590 budete rozumět tomu, co všechno z toho nesmyslu prostředků. 662 00:31:05,590 --> 00:31:11,150 Ale teď, jen vím, že dělat spouštěné provádění překladače. 663 00:31:11,150 --> 00:31:13,290 Jinými slovy, je zjištěno, překladač na mém počítači 664 00:31:13,290 --> 00:31:14,820 to je pre-nainstalovány na CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 že budeme ruce, aby vám v problému 1. setu. 666 00:31:16,560 --> 00:31:20,990 A pak vzal hello.c jako vstup, a produkoval zřejmě 667 00:31:20,990 --> 00:31:23,040 0s a 1s jako výstup. 668 00:31:23,040 --> 00:31:29,410 >> A standardně to, co dělá, je, že šetří ty 0s a 1s do souboru s názvem Dobrý den. 669 00:31:29,410 --> 00:31:33,180 A i když tuto syntaxi také mohlo být pro vás nové, jednoduše tím, tečka 670 00:31:33,180 --> 00:31:37,110 lomítko ahoj bude Způsob, jakým jsem spustit tento program. 671 00:31:37,110 --> 00:31:40,360 >> Pro tuto chvíli, a alespoň na pár týdnů, téměř všechny programy 672 00:31:40,360 --> 00:31:44,230 píšeme se bude v černé a bílé textové okna. 673 00:31:44,230 --> 00:31:47,006 Žádná myš, žádný klikání žádná okna, žádné ikony. 674 00:31:47,006 --> 00:31:49,630 Chystáme se, aby to jednoduché a zaměřit se na základní myšlenky 675 00:31:49,630 --> 00:31:52,490 zpočátku, než se dostaneme k něčemu vyšší úrovni, například, 676 00:31:52,490 --> 00:31:56,410 jako vypuknout hru, kterou jsme si povídali o v první přednášce minulý týden. 677 00:31:56,410 --> 00:32:00,820 >> Takže když jsem stiskněte klávesu Enter tady, je to ekvivalent v textu pouze prostředí 678 00:32:00,820 --> 00:32:03,272 zdvojnásobit kliknutím na ikonu s názvem Dobrý den. 679 00:32:03,272 --> 00:32:05,480 Co si myslíte, že vůle stane, když stisknete Enter a pak? 680 00:32:05,480 --> 00:32:07,120 >> Diváků: Bude to vypíše "Hello World". 681 00:32:07,120 --> 00:32:10,000 >> David J. Malan: Doufejme, že to bude tisknout "Hello World". 682 00:32:10,000 --> 00:32:11,370 A skutečně to udělal. 683 00:32:11,370 --> 00:32:13,690 Teď tam byl nějaký mystický syntaxe zde. 684 00:32:13,690 --> 00:32:15,950 Pojďme vzad jen za moment, a uvidíme, jestli 685 00:32:15,950 --> 00:32:19,530 nelze spustit odvozovat jen tím, že hrát si, snaží a není-li, 686 00:32:19,530 --> 00:32:21,130 o tom, co se tady děje. 687 00:32:21,130 --> 00:32:23,609 Co když jsem se zbavit zpětného lomítka n? 688 00:32:23,609 --> 00:32:25,650 Nyní někteří z vás, kteří si naprogramovat před asi 689 00:32:25,650 --> 00:32:27,054 okamžitě vědět, co to znamená. 690 00:32:27,054 --> 00:32:29,220 Ale pro ty z vás, kteří si Nikdy naprogramováno, 691 00:32:29,220 --> 00:32:34,052 alespoň, že pro sebe, co se děje změnit, když jsem znovu spustit tento program? 692 00:32:34,052 --> 00:32:37,010 Takže jsem jít zpátky do mého malé černé a bílé okno, které 693 00:32:37,010 --> 00:32:39,290 je okno, ve kterém Mohu sestavit to. 694 00:32:39,290 --> 00:32:41,130 Jdu překompilovat ahoj. 695 00:32:41,130 --> 00:32:43,520 Chystáme se vidět stejný kryptické sekvence příkazů. 696 00:32:43,520 --> 00:32:45,719 A já budu dělat tečka lomítko ahoj. 697 00:32:45,719 --> 00:32:48,260 A teď někdo, pokud by, kdo nikdy naprogramováno, 698 00:32:48,260 --> 00:32:49,770 co by mohlo být tentokrát jinak? 699 00:32:49,770 --> 00:32:50,020 Jo. 700 00:32:50,020 --> 00:32:51,840 >> Diváků: Nebude to zastavit tisk "hello world". 701 00:32:51,840 --> 00:32:52,660 >> David J. Malan: Jde to na-- líto? 702 00:32:52,660 --> 00:32:54,210 >> Diváků: Nezastaví ho tisknout? 703 00:32:54,210 --> 00:32:55,810 >> David J. Malan: nebude zastavit tisk "hello world". 704 00:32:55,810 --> 00:32:56,560 Takže není špatný nápad. 705 00:32:56,560 --> 00:32:58,633 Další nápady? 706 00:32:58,633 --> 00:32:59,132 Jo. 707 00:32:59,132 --> 00:33:00,060 >> DIVÁKŮ: Chybová zpráva? 708 00:33:00,060 --> 00:33:01,750 >> David J. Malan: Chyba zprávy, OK, může být. 709 00:33:01,750 --> 00:33:02,250 Co ještě? 710 00:33:02,250 --> 00:33:05,479 Diváků: To by mohlo vytisknout držák s středníkem, stejně? 711 00:33:05,479 --> 00:33:08,270 David J. Malan: může tisknout držák s středníkem stejně. 712 00:33:08,270 --> 00:33:11,950 Takže možná, že zpětné lomítko a pak je nějaká druh terminous to je důležité. 713 00:33:11,950 --> 00:33:14,860 Jakékoliv jiné myšlenky? 714 00:33:14,860 --> 00:33:16,412 >> Takže všechno dobré nápady. 715 00:33:16,412 --> 00:33:18,370 A ve skutečnosti, to se děje jako chybové hlášení. 716 00:33:18,370 --> 00:33:20,400 To je asi nejpravděpodobnější být odpověď obecně 717 00:33:20,400 --> 00:33:22,420 v příštích několika týdnech jak se učíme kód zde. 718 00:33:22,420 --> 00:33:27,680 >> Ale teď si uvědomit, že počítače jen to, co řeknete jim to. 719 00:33:27,680 --> 00:33:30,400 Stejně jako absurdní arašídy máslo a želé příklad. 720 00:33:30,400 --> 00:33:33,860 Naše lidské počítače měly jen dělat to, co jste řekl, je k tomu. 721 00:33:33,860 --> 00:33:36,250 Takže v tomto případě, pokud neříkejte počítač 722 00:33:36,250 --> 00:33:41,190 pohybovat, aby blikající kurzor další řádek, že to nebude dělat. 723 00:33:41,190 --> 00:33:45,390 Takže když jsem spustit tento program Nyní si všimněte rozdílu. 724 00:33:45,390 --> 00:33:46,900 >> Vypadá to jako chyba. 725 00:33:46,900 --> 00:33:49,190 Je to estetický problém, snad. 726 00:33:49,190 --> 00:33:53,310 Ale co je jiného na to Výstup proti poslední zřejmě? 727 00:33:53,310 --> 00:33:53,810 Jo. 728 00:33:53,810 --> 00:33:54,920 >> Diváků: To neudělal nový řádek. 729 00:33:54,920 --> 00:33:56,586 >> David J. Malan: to neudělal nový řádek. 730 00:33:56,586 --> 00:33:58,740 Teď ty z vás, kteří mají možná provedené webové stránky 731 00:33:58,740 --> 00:34:01,910 předtím, možná víte o BR tag nebo tag odstavce, 732 00:34:01,910 --> 00:34:03,120 velmi podobné v duchu. 733 00:34:03,120 --> 00:34:06,680 Webový prohlížeč bude ignorovat, dokud to říct, co přesně dělat. 734 00:34:06,680 --> 00:34:10,020 Podobně, je jazyk C pouze dělat to, co jste to říct, aby to. 735 00:34:10,020 --> 00:34:12,730 >> Tak z toho důvodu, že Všechny tyto příklady, 736 00:34:12,730 --> 00:34:15,350 tak daleko, mají trochu mimochodem měl tento zpětné lomítko 737 00:34:15,350 --> 00:34:18,560 tam, že je to prostředek kterou si vyjádřit sám sebe 738 00:34:18,560 --> 00:34:21,380 jako znak nového řádku, abych tak řekl. 739 00:34:21,380 --> 00:34:26,219 A můžete trochu ocenit, možná, že by to vypadat trochu hloupě 740 00:34:26,219 --> 00:34:27,070 když už nic jiného. 741 00:34:27,070 --> 00:34:29,150 Pokud bych chtěl nový řádek, jen klávesy Enter a pak druh 742 00:34:29,150 --> 00:34:32,219 z porážet kód takového by opravdu třít vám správnou cestu. 743 00:34:32,219 --> 00:34:33,830 A i když ne opravdu záleží na tomto místě, 744 00:34:33,830 --> 00:34:35,830 budete si uvědomit, že to není zvlášť 745 00:34:35,830 --> 00:34:37,870 dobře vypadající kus kódu. 746 00:34:37,870 --> 00:34:39,969 >> A tak to, co svět Před lety se rozhodli je 747 00:34:39,969 --> 00:34:43,420 že pokud chcete, aby kurzor na nový řádek výslovně, 748 00:34:43,420 --> 00:34:46,332 musíte explicitně říci, nový řádek, zpětné lomítko n. 749 00:34:46,332 --> 00:34:48,040 A je tu nějaký jiný symboly, jako je to. 750 00:34:48,040 --> 00:34:50,719 Ale teď už si jen zaměřit se na zpětné lomítko n. 751 00:34:50,719 --> 00:34:53,790 >> Teď pojďme, aby program trochu zajímavější. 752 00:34:53,790 --> 00:34:59,200 Chystám se jít dopředu a Tentokrát otevřít nový soubor. 753 00:34:59,200 --> 00:35:02,520 Jdu uložit jako ahoj-1.C. 754 00:35:02,520 --> 00:35:05,540 A jen tak pro legraci, budu jít dát do mé složky Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Jak uvidíte v CS50 dokumentaci k zařízení, 756 00:35:09,030 --> 00:35:11,210 později tento týden problém Nastavte 1, budeme podporovat 757 00:35:11,210 --> 00:35:13,230 použít Dropbox nebo nějaký ekvivalent servis, 758 00:35:13,230 --> 00:35:15,430 protože pak všechny vaše kód je bude automaticky zálohovat. 759 00:35:15,430 --> 00:35:17,830 A tak to je důvod, proč jsem šel do této složky zde. 760 00:35:17,830 --> 00:35:20,230 >> A teď budu psát trochu jiný program. 761 00:35:20,230 --> 00:35:24,740 Patří standardní I / O.h, int main neplatné. 762 00:35:24,740 --> 00:35:29,660 A pak tady printf, Hello World, což je přesně stejný jako předtím. 763 00:35:29,660 --> 00:35:32,450 >> Ale teď chci něco vytisknout to je trochu jinak. 764 00:35:32,450 --> 00:35:34,800 Chci vytisknout, řekl: "Dobrý den, Davide." 765 00:35:34,800 --> 00:35:37,590 Tak jo, samozřejmě, to by snad 766 00:35:37,590 --> 00:35:40,360 se stát, že když jsem překompilovat tento program, spusťte jej, 767 00:35:40,360 --> 00:35:41,840 to bude říkat "Ahoj, Davide." 768 00:35:41,840 --> 00:35:45,160 >> Ale co když chci představit tento druh proměnné, 769 00:35:45,160 --> 00:35:49,240 pojem kontejneru, který se děje pro uložení D--v-i-d a není těžké kód je 770 00:35:49,240 --> 00:35:50,600 do svého programu. 771 00:35:50,600 --> 00:35:53,430 No, co kdybych začal něco takového? 772 00:35:53,430 --> 00:35:57,120 >> Řetězec s, takže to je variabilní. 773 00:35:57,120 --> 00:36:00,250 Chcete-li řetězec, také známý jako slovo nebo frázi. 774 00:36:00,250 --> 00:36:03,485 Posloupnost znaků je to, co jsme v programování zavolat řetězec. 775 00:36:03,485 --> 00:36:06,610 Jsme jen tak obecně volání Je to, protože je to pěkný jednoduchý název. 776 00:36:06,610 --> 00:36:08,010 Ale já jsem to mohl říkat cokoli. 777 00:36:08,010 --> 00:36:12,920 >> Chystám se říct řetězec s rovná quote konec citátu: "Davide," středník. 778 00:36:12,920 --> 00:36:18,330 A teď chci vložit D--v-i-d na to, co jsem tisk. 779 00:36:18,330 --> 00:36:23,720 A než jsme viděli ukázku na obrazovka některé speciální syntaxe 780 00:36:23,720 --> 00:36:26,050 která nám umožnila náhradou v hodnotě. 781 00:36:26,050 --> 00:36:29,250 Co bylo zvláštní symbol před pár diapozitivy? 782 00:36:29,250 --> 00:36:30,040 >> Tak procent. 783 00:36:30,040 --> 00:36:33,830 V té době to bylo procento d na desetinné číslo. 784 00:36:33,830 --> 00:36:35,850 To není opravdu zdá, v projednávaném případě relevantní. 785 00:36:35,850 --> 00:36:38,650 Ukázalo se, že je tu další symbol procent, 786 00:36:38,650 --> 00:36:42,810 který je s procent, což je zkratka pro zástupný řetězec. 787 00:36:42,810 --> 00:36:49,350 >> Takže teď, velmi jednoduše, že jsem jít dělat ahoj-1, 788 00:36:49,350 --> 00:36:54,210 protože tento soubor se jmenuje Dobrý den, 1.c, a stiskněte klávesu Enter. 789 00:36:54,210 --> 00:36:56,230 A já jsem to podělal. 790 00:36:56,230 --> 00:36:57,394 Co se děje? 791 00:36:57,394 --> 00:37:00,560 No, tady je místo, kde se musíme začít uvědomit, že jsme v tomto příkazu 792 00:37:00,560 --> 00:37:02,810 line prostředí, tento Pouze text životního prostředí. 793 00:37:02,810 --> 00:37:06,114 Není kliknutí na ikony jako složky právě teď. 794 00:37:06,114 --> 00:37:07,280 A myslím, že zpět před chvílí. 795 00:37:07,280 --> 00:37:10,740 V jaké složce jsem řekl Byl jsem záchranu mého kódu? 796 00:37:10,740 --> 00:37:11,657 Takže složky Dropbox. 797 00:37:11,657 --> 00:37:12,989 Mohl by byli povoláni nic. 798 00:37:12,989 --> 00:37:14,530 Ale to se stane být nazýván Dropbox. 799 00:37:14,530 --> 00:37:18,380 Tak jsem se nějak muset dvakrát klikněte na že složka Dropbox s cílem získat 800 00:37:18,380 --> 00:37:21,657 do něj a dostat se na mé Kód volal ahoj-1.c. 801 00:37:21,657 --> 00:37:24,490 Ve skutečnosti, nechte mě jít dopředu a minimalizovat toto okno jen na chvíli. 802 00:37:24,490 --> 00:37:27,560 Stejně jako Windows a Mac OS, jsou složky v Linuxu. 803 00:37:27,560 --> 00:37:29,410 K dispozici jsou složky v CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Je to právě teď se omezovat abychom se tohoto textového prostředí. 805 00:37:32,380 --> 00:37:34,700 >> Ale když jsem se dvakrát klikněte na Dropbox, všimněte si, že 806 00:37:34,700 --> 00:37:37,210 je soubor, který chci zkompilovat. 807 00:37:37,210 --> 00:37:41,430 Ale musím to černá a bílá okno terminálu, abych tak řekl. 808 00:37:41,430 --> 00:37:45,750 Ale já potřebuji, proto se pohybovat do této složky nebo adresáře. 809 00:37:45,750 --> 00:37:48,290 Tak trochu tajemný, ale zvyknete si na to taky. 810 00:37:48,290 --> 00:37:50,430 >> Ve světě Linuxu, což je opět provozní 811 00:37:50,430 --> 00:37:54,860 Systém nám dochází uvnitř CS50 Spotřebič, je tu příkaz s názvem CD. 812 00:37:54,860 --> 00:37:58,310 Což znamená, že můžete udělat CD, prostor, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, změna adresáře. 814 00:37:59,900 --> 00:38:00,400 Přesně tak. 815 00:38:00,400 --> 00:38:02,890 Zpět v den, kdy byli lidé vynalézat počítače a provoz 816 00:38:02,890 --> 00:38:05,806 systémy, jako je toto, oni chtěli typ Nejméně úhozy možné. 817 00:38:05,806 --> 00:38:08,760 Takže nejjednodušší způsob, jak říct, Změňte adresář byl CD. 818 00:38:08,760 --> 00:38:13,910 >> Takže když jsem narazila CD, prostor Dropbox, Všimněte si, co se tu změnilo. 819 00:38:13,910 --> 00:38:16,480 Uvnitř závorek Přístroj je druh 820 00:38:16,480 --> 00:38:19,360 o mě humoring a připomíná mi, kde jsem. 821 00:38:19,360 --> 00:38:21,480 Takže otevřená složka Dropbox. 822 00:38:21,480 --> 00:38:24,950 Kdybych teď typ LS list, opět stručné, 823 00:38:24,950 --> 00:38:27,540 protože lidé nechtěli zadejte Zpět v den l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Takže se místo toho dělal to LS. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Všimněte si, vidím dvě věci, ahoj-1.C, a pak to mystická věc, zdroj 1m. 827 00:38:35,740 --> 00:38:38,310 To je jen můj způsob, jak říct Zdrojový kód pro týden 1 v pondělí. 828 00:38:38,310 --> 00:38:42,020 Je to složka, Stáhnul jsem si z Webové stránky CS50, že jsem se dnes ráno 829 00:38:42,020 --> 00:38:43,990 a stačí dát do zařízení předem. 830 00:38:43,990 --> 00:38:47,550 >> Ale teď to jediné, co máme péče o dělá tento program. 831 00:38:47,550 --> 00:38:50,440 Takže když jsem typ, aby ahoj-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Sakra. 833 00:38:51,320 --> 00:38:53,060 Něco se pokazilo. 834 00:38:53,060 --> 00:38:54,580 Takže pojďme škádlit to od sebe. 835 00:38:54,580 --> 00:38:58,489 A bohužel to je místo, kde se věci trochu stresující na první, 836 00:38:58,489 --> 00:39:00,280 alespoň pokud jste Nikdy předtím naprogramován. 837 00:39:00,280 --> 00:39:00,980 >> Můj bože. 838 00:39:00,980 --> 00:39:04,990 Napsal jsem dva řádky programu a Mám čtyři řádky chyb. 839 00:39:04,990 --> 00:39:07,180 Takže to, co se tady děje. 840 00:39:07,180 --> 00:39:11,370 V první řadě vždy posouvat zpět a najít první chybová zpráva, 841 00:39:11,370 --> 00:39:15,730 protože často překladače jen se zmást tím, co vy a já. 842 00:39:15,730 --> 00:39:17,000 Překladače jsou dost hloupí. 843 00:39:17,000 --> 00:39:18,360 Budou dělat, co jen řekni jim to. 844 00:39:18,360 --> 00:39:21,484 A pokud si splést, jsou to jen bude trochu házet své ruce 845 00:39:21,484 --> 00:39:25,010 a možná i hodit více chybové zprávy než jsou skutečně relevantní. 846 00:39:25,010 --> 00:39:26,380 >> Tak se pojďme podívat na první. 847 00:39:26,380 --> 00:39:27,540 Super mystický na prvním místě. 848 00:39:27,540 --> 00:39:31,050 Ale oznámení, tady je název soubor, ve kterém jsem se posral zřejmě. 849 00:39:31,050 --> 00:39:36,570 Colon 5, dvojtečka 5 znamená jen na linka 5 v pátém znaku. 850 00:39:36,570 --> 00:39:39,760 Takže pátý sloupec znaků, chcete-li, chyba. 851 00:39:39,760 --> 00:39:41,870 Použití nehlášené identifikátoru řetězce. 852 00:39:41,870 --> 00:39:43,120 Měli jste na mysli standardní n? 853 00:39:43,120 --> 00:39:44,850 >> Ne, myslel jsem řetězec. 854 00:39:44,850 --> 00:39:47,640 A pak je to trochu kopírování a vkládání 855 00:39:47,640 --> 00:39:50,700 to, co jsem napsal opravdu kreslit můj pozornost tam, kde jsem to zvoral. 856 00:39:50,700 --> 00:39:54,260 Takže z nějakého důvodu C, nebo alespoň překladač 857 00:39:54,260 --> 00:39:56,470 nerozumí slovo řetězec. 858 00:39:56,470 --> 00:39:57,890 A to proto, že jsme si to. 859 00:39:57,890 --> 00:40:01,440 Takže řetězec neexistuje v C. Co CS50 dělá, 860 00:40:01,440 --> 00:40:03,380 Během prvních několika týdnů pouze třídy, 861 00:40:03,380 --> 00:40:05,700 Je nám poskytnout nějaké školení kola, abych tak řekl. 862 00:40:05,700 --> 00:40:11,160 A dáme těchto koleček uvnitř speciálního souboru s názvem CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Takže toto je druhá ze dvou souboru názvy, které zřejmě skončí dot h. 864 00:40:14,970 --> 00:40:16,300 Pojďme vzad. 865 00:40:16,300 --> 00:40:19,360 Printf je prohlášení nebo funkce že zřejmě tiskne něco 866 00:40:19,360 --> 00:40:20,580 na obrazovku. 867 00:40:20,580 --> 00:40:23,470 Ale vy jste mě vidět realizovat printf, vpravo. 868 00:40:23,470 --> 00:40:26,360 Někdo lety realizován printf. 869 00:40:26,360 --> 00:40:30,420 V jakém souboru se vsadit on nebo si dát provádění 870 00:40:30,420 --> 00:40:34,270 pro printf, kód pro printf? 871 00:40:34,270 --> 00:40:36,860 >> V souboru s názvem Standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 Ve skutečnosti, je to pravděpodobně v dva soubory, standardní I / O.h, 873 00:40:39,930 --> 00:40:42,650 což je zkratka pro záhlaví souborů a standardní I / O.c, 874 00:40:42,650 --> 00:40:44,060 což je zkratka pro C zdrojového kódu. 875 00:40:44,060 --> 00:40:48,220 Takže on nebo ona před několika lety svalil kód, který oni psali do tohoto souboru 876 00:40:48,220 --> 00:40:51,240 takže lidé jako my let později mohl zahrnout, 877 00:40:51,240 --> 00:40:53,040 abych tak řekl, v našich vlastních programů. 878 00:40:53,040 --> 00:40:56,320 >> A vskutku, to je to, co libry následované slovem patří dělá. 879 00:40:56,320 --> 00:41:00,250 Vypadá to na místním pevném disku, najde soubor s názvem Standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 a poté účinně kopie a vloží ji do svého vlastního souboru. 881 00:41:03,840 --> 00:41:07,210 Takže můj program ví jak tisknout na obrazovku. 882 00:41:07,210 --> 00:41:11,120 >> Takže podle této logiky, kde je řetězec definovaný? 883 00:41:11,120 --> 00:41:12,260 >> Diváků: 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 A vskutku, to je to, co jsme, jádro personál, udělal. 886 00:41:15,540 --> 00:41:19,590 Vymysleli jsme několik datových typů, abych tak řekl, jako řetězec, 887 00:41:19,590 --> 00:41:22,370 kromě těch, které dostanete zdarma, jako int. 888 00:41:22,370 --> 00:41:26,010 A uvidíme, jiní jako char na charakter a pár dalších. 889 00:41:26,010 --> 00:41:30,670 Uvnitř CS50.h zřejmě je alespoň nějaká zmínka řetězce. 890 00:41:30,670 --> 00:41:34,980 >> Takže teď mi dovolte pokračovat a znovu spusťte make ahoj-1. 891 00:41:34,980 --> 00:41:37,100 Budu přiblížit znovu a přes prsty. 892 00:41:37,100 --> 00:41:41,370 Nyní by mít z jednoho změnit Opravil jsem většinu věcí. 893 00:41:41,370 --> 00:41:42,100 Ale sakra. 894 00:41:42,100 --> 00:41:44,290 Více procent, než datové argumenty. 895 00:41:44,290 --> 00:41:45,980 Co jsem udělal špatně tentokrát? 896 00:41:45,980 --> 00:41:47,420 >> Takže je to stále dost záhadné. 897 00:41:47,420 --> 00:41:51,560 Ale tato chyba je na řádek 7 a 21 znaků. 898 00:41:51,560 --> 00:41:53,880 Takže pojďme se podívat sem. 899 00:41:53,880 --> 00:41:55,350 Je to trochu jemnější. 900 00:41:55,350 --> 00:41:59,167 Ale pokud si myslíte, že o tom, co základní myšlenky jsou zde, 901 00:41:59,167 --> 00:42:00,500 možná bychom mohli dráždit to od sebe. 902 00:42:00,500 --> 00:42:02,300 >> Takže printf je název funkce. 903 00:42:02,300 --> 00:42:04,960 Závorky, tak daleko, je stejně jako to, co jsme dali kolem 904 00:42:04,960 --> 00:42:07,005 věci jsme kolem jako vstupy do funkce. 905 00:42:07,005 --> 00:42:08,921 V pořádku, jen svévolné lidské konvence. 906 00:42:08,921 --> 00:42:09,919 Použít závorky. 907 00:42:09,919 --> 00:42:12,460 Uvnitř těchto závorkách jsme byli uvedení v uvozovkách, 908 00:42:12,460 --> 00:42:14,810 a pak se jako řetězec "Hello World". 909 00:42:14,810 --> 00:42:18,160 >> Ale v tom předchozím příkladu velmi krátce dělal se podíváme na Scratch. 910 00:42:18,160 --> 00:42:22,590 A my jsme měli procent d, co ještě byl uvnitř těchto závorkách 911 00:42:22,590 --> 00:42:23,730 že jsem zavolal ústně? 912 00:42:23,730 --> 00:42:24,230 Jo. 913 00:42:24,230 --> 00:42:28,166 >> Diváků: Tak to je to, co jste s [Neslyšitelné] v rámci [neslyšitelné] 914 00:42:28,166 --> 00:42:30,200 co to [neslyšitelné]? 915 00:42:30,200 --> 00:42:31,200 David J. Malan: Přesně tak. 916 00:42:31,200 --> 00:42:32,700 Takže jsme měli procent d. 917 00:42:32,700 --> 00:42:36,620 Ale pak jsme měli blízko citace, čárka, čítač. 918 00:42:36,620 --> 00:42:37,120 Přesně tak. 919 00:42:37,120 --> 00:42:40,680 Specifikováno jsme, co chceme dělat jako zástupný symbol. 920 00:42:40,680 --> 00:42:44,621 Takže to, co budu dělat tady je čárka, co chceš, abych dal? 921 00:42:44,621 --> 00:42:45,120 Diváků: S. 922 00:42:45,120 --> 00:42:46,828 David J. Malan: S, proto, že je v tomto případě 923 00:42:46,828 --> 00:42:48,700 je název ze zásobní nádoby. 924 00:42:48,700 --> 00:42:50,180 To je název této skleněné mísy. 925 00:42:50,180 --> 00:42:53,610 Zatímco dříve to bylo kontraproduktivní v tom, že Jednoduchý příklad Scratch jsme se podívali na. 926 00:42:53,610 --> 00:42:56,630 Takže teď, který učinil dva změny, dovolte mi, abych přiblížit 927 00:42:56,630 --> 00:42:59,800 a zkuste ještě jednou zkompilovat tento program. 928 00:42:59,800 --> 00:43:01,596 >> Teď vidím, že tajemnou řádek. 929 00:43:01,596 --> 00:43:03,470 Ale to je vlastně jméno překladače. 930 00:43:03,470 --> 00:43:04,886 Clang je název překladače. 931 00:43:04,886 --> 00:43:07,100 Zkontrolujte, zda je mi to šetří bolest hlavy někdy 932 00:43:07,100 --> 00:43:09,830 psát, že dlouho šílený příkaz ven. 933 00:43:09,830 --> 00:43:14,900 Takže teď, když se mi tečka lomítko ahoj-1, Měl bych vidět "Dobrý den, Davide." 934 00:43:14,900 --> 00:43:16,450 >> Docela nezaujatý, že jo? 935 00:43:16,450 --> 00:43:18,158 Mohli jsme udělat to mnohem jednodušeji 936 00:43:18,158 --> 00:43:20,940 bez mluví o proměnných a CS50.h a všechno. 937 00:43:20,940 --> 00:43:23,080 Tak pojďme, aby to trochu zajímavější. 938 00:43:23,080 --> 00:43:31,010 >> Kromě CS50.h, s věcí, jako je řetězec 939 00:43:31,010 --> 00:43:34,550 prohlásil, knihovna CS50 má také několik funkcí. 940 00:43:34,550 --> 00:43:38,520 Tak jako před lety, někdo napsal printf a vložte jej do standardní I / O.h 941 00:43:38,520 --> 00:43:39,530 a nějaký jiný soubor. 942 00:43:39,530 --> 00:43:44,010 >> My, zaměstnanci CS50, napsal funkci volal GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 Vezmi_int, GetLongLong, GetString, a dáme ti uvnitř souboru 944 00:43:47,610 --> 00:43:49,890 volal CS50.h a CS50.c. 945 00:43:49,890 --> 00:43:51,880 A dáme je uvnitř o CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 A lidé mohou také stáhnout on-line, pokud 947 00:43:53,880 --> 00:43:55,880 chci dát je na jejich vlastních počítačích stejně. 948 00:43:55,880 --> 00:44:00,880 Což znamená, že jsme vytvořili funkce, které se dostanou vstup od uživatele. 949 00:44:00,880 --> 00:44:02,930 Nevím, co to všechno těchto údajů typy. 950 00:44:02,930 --> 00:44:06,490 Vezmi_int je docela jednoduché, jako získat celé číslo nějak od uživatele. 951 00:44:06,490 --> 00:44:09,980 A GetString je pravděpodobně jako get slovo nebo věta od uživatele. 952 00:44:09,980 --> 00:44:11,770 >> Tak se pojďme zaměřit na to. 953 00:44:11,770 --> 00:44:14,710 A já jdu zpátky do zařízení a budu pokračovat 954 00:44:14,710 --> 00:44:20,790 a tento soubor uložit jako, řekněme je ahoj-2c jako moje druhá verze. 955 00:44:20,790 --> 00:44:23,030 A pojďme udělat několik změn. 956 00:44:23,030 --> 00:44:25,800 >> Tentokrát namísto tvrdé kódování David, který 957 00:44:25,800 --> 00:44:29,120 je neuvěřitelně konzistentní ale nezaujatý program 958 00:44:29,120 --> 00:44:32,640 Co kdybych místo toho dělat getString? 959 00:44:32,640 --> 00:44:35,660 Nyní všimnete getString má otevřenou závorku, 960 00:44:35,660 --> 00:44:38,500 uzavřená závorka, protože nepotřebuje žádný vstup. 961 00:44:38,500 --> 00:44:40,850 Je to jen půjde dostat řetězec od uživatele. 962 00:44:40,850 --> 00:44:42,460 >> A nyní pár slov o druhé syntaxi. 963 00:44:42,460 --> 00:44:45,439 Středníky pouze ukončit řádek kódu. 964 00:44:45,439 --> 00:44:46,730 Nemusíte je všude. 965 00:44:46,730 --> 00:44:48,896 Ale to jen znamená, že jsem provádí se tento řádek kódu. 966 00:44:48,896 --> 00:44:51,080 Dovolte mi, abych přesunout na jiný prohlášení nebo funkce. 967 00:44:51,080 --> 00:44:53,010 String deklaruje proměnnou. 968 00:44:53,010 --> 00:44:55,920 String je jako tvrdit, že dej mi misku, prosím. 969 00:44:55,920 --> 00:44:57,940 A dovolte mi, abych dal řetězec v něm. 970 00:44:57,940 --> 00:44:59,430 >> A teď rovnítko. 971 00:44:59,430 --> 00:45:03,510 Co je to rovnítko v podstatě rovnocenné? 972 00:45:03,510 --> 00:45:04,500 >> DIVÁKŮ: Přiřadit. 973 00:45:04,500 --> 00:45:06,190 >> David J. Malan: Jo, přiřazení hodnoty. 974 00:45:06,190 --> 00:45:09,872 Takže když jsem například volání Tato funkce GetString, 975 00:45:09,872 --> 00:45:12,830 a uvidíme, v okamžiku, kdy je bude vyzve uživatele k zadání řetězce. 976 00:45:12,830 --> 00:45:17,810 To je jako nechat mě pak napsat D-a-v-i-d na kus papíru. 977 00:45:17,810 --> 00:45:21,060 A když říkám, že řetězec s rovná getString, 978 00:45:21,060 --> 00:45:24,140 rovná není doopravdy rovná programování C. 979 00:45:24,140 --> 00:45:27,880 To znamená, že přiřazení z pravé strany straně na levé straně. 980 00:45:27,880 --> 00:45:29,510 >> Tak jsem se dostal řetězec. 981 00:45:29,510 --> 00:45:32,785 A rovnítko znamená dát při skladování kontejneru s názvem s. 982 00:45:32,785 --> 00:45:36,730 A předat tuto funkci vypnout, aby printf skutečně dělat svou věc. 983 00:45:36,730 --> 00:45:39,790 >> Takže konečný výsledek pak bude vypadat trochu jinak. 984 00:45:39,790 --> 00:45:40,840 Pojďme dělat, aby ahoj-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Buď by mohlo fungovat. 987 00:45:45,260 --> 00:45:46,450 Jste po spolu. 988 00:45:46,450 --> 00:45:47,940 Udělat ahoj-2 pracuje. 989 00:45:47,940 --> 00:45:52,640 Dot lomítko ahoj-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Zdá se mi, mít nekonečný smyčka nebo tak něco. 991 00:45:54,620 --> 00:45:55,453 Nic se neděje. 992 00:45:55,453 --> 00:45:56,134 Proč? 993 00:45:56,134 --> 00:45:57,805 >> Diváků: Je to dělat nekonečné smyčky. 994 00:45:57,805 --> 00:45:59,430 David J. Malan: Je to nekonečná smyčka. 995 00:45:59,430 --> 00:46:02,710 Je to trochu na mě čeká na ve skutečnosti poskytnout některé vstupní signály. 996 00:46:02,710 --> 00:46:05,800 Tak nech mě jít napřed a zadejte Davida, a stiskněte klávesu Enter. 997 00:46:05,800 --> 00:46:07,230 A teď se říká, že "Dobrý den, Davide." 998 00:46:07,230 --> 00:46:09,040 Mám-li jej spustit znovu. 999 00:46:09,040 --> 00:46:11,530 Pojďme zadejte Rob: "Ahoj, Robe." 1000 00:46:11,530 --> 00:46:13,900 >> Nyní je to nejhorší uživatelské rozhraní vůbec. 1001 00:46:13,900 --> 00:46:16,110 Uživatel je zřejmě měl vědět, co má dělat. 1002 00:46:16,110 --> 00:46:17,120 Ale bez ohledu na to. 1003 00:46:17,120 --> 00:46:19,570 Pomocí těchto stejné budově bloky stejně jako v Scratch, 1004 00:46:19,570 --> 00:46:24,980 můžeme tento problém vyřešit a říct něco jako vaše jméno, prosím, tlustého střeva, 1005 00:46:24,980 --> 00:46:27,820 prostor, uzavřený citace, v blízkosti závorka, středník. 1006 00:46:27,820 --> 00:46:30,680 Takže opět mnoho hloupost se syntaxí. 1007 00:46:30,680 --> 00:46:34,040 >> Ale všimněte Právě jsem přidal skládačky Nad tímto 1008 00:46:34,040 --> 00:46:35,280 a nad tento. 1009 00:46:35,280 --> 00:46:38,870 Takže teď, když jsem opakovat to, ahoj-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Počkej chvíli. 1011 00:46:41,180 --> 00:46:41,830 Co se děje? 1012 00:46:41,830 --> 00:46:43,570 Není to chová jinak,. 1013 00:46:43,570 --> 00:46:44,200 Jo. 1014 00:46:44,200 --> 00:46:46,010 >> Diváků: nebyl spuštěn, aby znovu. 1015 00:46:46,010 --> 00:46:47,968 >> David J. Malan: Já ne spusťte jej znovu, že jo. 1016 00:46:47,968 --> 00:46:49,430 Tak jsem změnil svůj zdrojový kód. 1017 00:46:49,430 --> 00:46:50,638 Ale opět je tu ten proud. 1018 00:46:50,638 --> 00:46:54,530 Zdrojový kód pomocí kompilátoru dává jste nový objektový kód, nebo 0s a 1s. 1019 00:46:54,530 --> 00:47:00,209 Tak jsem třeba skutečně opakování make ahoj-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, něco, co se zdá, že se stalo. 1021 00:47:01,750 --> 00:47:04,220 Dot lomítko ahoj-2. 1022 00:47:04,220 --> 00:47:05,390 Vaše jméno, prosím. 1023 00:47:05,390 --> 00:47:09,990 A teď být jasné, proč je kurzor na stejném řádku? 1024 00:47:09,990 --> 00:47:10,490 Přesně tak. 1025 00:47:10,490 --> 00:47:13,020 Nechtěl jsem dát zpětné lomítko n tady v mém kódu. 1026 00:47:13,020 --> 00:47:16,110 Takže teď můžu napsat něco jako Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Můžu to spustit znovu a zadejte něco jako Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 a dostaneme jiný program znovu a znovu a znovu. 1029 00:47:22,250 --> 00:47:28,940 >> Teď nakonec budeme potřebovat Chcete-li použít několik různých možností. 1030 00:47:28,940 --> 00:47:32,860 Musíme zavést nakonec některé Podmínky, kterých je dělat věci podmíněně. 1031 00:47:32,860 --> 00:47:35,550 Možná smyčky, takže můžeme udělat věci znovu a znovu. 1032 00:47:35,550 --> 00:47:38,220 >> Možná, že by bylo hezké, kdybychom mohl realizovat své vlastní funkce, 1033 00:47:38,220 --> 00:47:41,355 jako bychom mohli realizovat naše vlastní printf nebo naše vlastní verze getString 1034 00:47:41,355 --> 00:47:45,870 a GetFlow, protože v konečném důsledku i Pomocí tohoto příkazového řádku prostředí 1035 00:47:45,870 --> 00:47:49,780 můžeme udělat i ty vizuálně zajímavé věci. 1036 00:47:49,780 --> 00:47:51,950 >> Opravdu na závěr mi dovolte to. 1037 00:47:51,950 --> 00:47:54,020 Chystám se jít dopředu a zavřít tato okna 1038 00:47:54,020 --> 00:47:57,400 a otevřete tuto ikonu zde což je jen větší 1039 00:47:57,400 --> 00:48:00,020 verzi, který obsahoval okno terminálu. 1040 00:48:00,020 --> 00:48:02,329 Takže Gedit má nejen místo pro můj kód, 1041 00:48:02,329 --> 00:48:05,620 ale také postaven v terminálovém okně, černé a bílé okno, kde bych mohl spustit 1042 00:48:05,620 --> 00:48:06,230 příkazy. 1043 00:48:06,230 --> 00:48:08,600 >> Náhodou jsem se otevřít větší verze tohoto. 1044 00:48:08,600 --> 00:48:11,170 A teď jdu do složka, kterou jsem již 1045 00:48:11,170 --> 00:48:13,150 dát předem na internetových stránkách kursu je. 1046 00:48:13,150 --> 00:48:16,720 A já jdu do toho a otevřít soubor s názvem thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 který byl napsán někým jiným. 1048 00:48:18,710 --> 00:48:21,220 >> A pokud se podíváme na to, to není druh kódu 1049 00:48:21,220 --> 00:48:24,370 budeme psát, protože Cílem tohoto kódu 1050 00:48:24,370 --> 00:48:28,450 bylo napsat nejhezčí hledá kód, který on nebo ona by mohl, 1051 00:48:28,450 --> 00:48:31,290 bez ohledu na to, zda další člověk mohl někdy 1052 00:48:31,290 --> 00:48:33,660 pochopit tento kód. 1053 00:48:33,660 --> 00:48:37,050 >> Ve skutečnosti, každý rok je tu, co je volal obfuscated C soutěž, která 1054 00:48:37,050 --> 00:48:39,570 je pro skutečné mágů, kteří píší Kód, který nikdo jiný nemůže číst, 1055 00:48:39,570 --> 00:48:42,050 ale že dělá něco, co buď velmi jednoduché a opravdu úžasné. 1056 00:48:42,050 --> 00:48:43,890 A jsme si mysleli bychom uzavřít s tímto pohledem 1057 00:48:43,890 --> 00:48:48,300 na něco, co je docela úžasný jste mohli vidět jednou. 1058 00:48:48,300 --> 00:48:52,650 Ale my skončíme na to poznámka, tečka lomítko, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 To je tedy to, co vás čeká. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> To je pro CS50. 1062 00:48:58,500 --> 00:48:59,935 Uvidíme se ve středu. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Přehrávání hudby] 1065 00:49:10,016 --> 00:53:31,883