1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [VIDEOPŘEHRÁVÁNÍ] 3 00:00:16,626 --> 00:00:19,410 >> -A Triumf matematický a mechanické dovednosti 4 00:00:19,410 --> 00:00:23,270 Je to skvělá nová automatická Kalkulačka na Harvardově univerzitě. 5 00:00:23,270 --> 00:00:27,140 Složité problémy v matematice vložit do přístroje v kódované podobě 6 00:00:27,140 --> 00:00:31,710 na pásku jsou přesně řešeny v minuta zlomek požadované době 7 00:00:31,710 --> 00:00:32,819 pro lidskou výpočtu. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Navrženo pro urychlení všech forem matematické a vědecký výzkum, 10 00:00:48,220 --> 00:00:53,840 obří mechanický mozek bude pracovat pro námořnictvo Spojených států až do konce války. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END Přehrávání] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: To je CS50. 14 00:01:08,590 --> 00:01:10,590 Minulost byla magická místo, ale pokud jste někdy 15 00:01:10,590 --> 00:01:13,366 přemýšlel, co toto zařízení je v Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 to je opravdu součástí Harvard Mark I, a to je 17 00:01:16,150 --> 00:01:18,710 Na displeji se tam teď V posledních mnoho let. 18 00:01:18,710 --> 00:01:20,590 A to, co uvidíte vložené do Zadání problému 19 00:01:20,590 --> 00:01:24,416 jeden je pohled do zákulisí na to, co udělal, že zařízení, a dělá, 20 00:01:24,416 --> 00:01:27,540 profesora Harryho Lewise, který je v věda oddělení zde počítač. 21 00:01:27,540 --> 00:01:29,440 Tak o tom více v jen trochu. 22 00:01:29,440 --> 00:01:33,990 >> Ale dnes jsme začali přechod od minulého týdne k tomu, 23 00:01:33,990 --> 00:01:37,290 a budeme přinášet zmínku na jedné fotografii zde 24 00:01:37,290 --> 00:01:38,630 to je vlastně docela slavný. 25 00:01:38,630 --> 00:01:42,270 Ví někdo, co to zde je zobrazeno na obrazovce? 26 00:01:42,270 --> 00:01:43,880 Alespoň podle mýtu. 27 00:01:43,880 --> 00:01:44,837 Jo. 28 00:01:44,837 --> 00:01:45,920 Diváků: První virus. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Takže to byl pravděpodobně úplně první skutečný problém v počítači. 30 00:01:49,570 --> 00:01:52,490 Nyní ve skutečnosti slovo chyba, za chybu v programu, 31 00:01:52,490 --> 00:01:55,250 byl s námi pro některé čas ve fyzickém světě, 32 00:01:55,250 --> 00:01:58,190 a to byl jeden z prvních zdokumentované období, kdy někdo skutečně 33 00:01:58,190 --> 00:02:02,280 utrhl velký můra z Mark Počítačový II, vložte jej do pojiva, 34 00:02:02,280 --> 00:02:05,006 a pak ji zaznamenal jako první známá chyba 35 00:02:05,006 --> 00:02:06,630 aby byly skutečně nalezeny fyzicky. 36 00:02:06,630 --> 00:02:10,104 Takže takto byl zadán že do dnešní tradice. 37 00:02:10,104 --> 00:02:12,020 Vše od poslední týden je k dispozici on-line. 38 00:02:12,020 --> 00:02:14,840 V konkrétních zdrojů, které byste mohli ne nutně všimnout, zejména 39 00:02:14,840 --> 00:02:15,881 pokud sem osobně. 40 00:02:15,881 --> 00:02:20,230 Takže jeden z vyučovacích chlapíků každý rok dělá kanonický soubor poznámek, 41 00:02:20,230 --> 00:02:22,010 takže se nemusíte držet hlavu dolů, snažil 42 00:02:22,010 --> 00:02:24,410 přepsat téměř všechno že by se mohlo stát tady ve třídě. 43 00:02:24,410 --> 00:02:25,940 Takže si uvědomit, že ti, tzv [? Scribd?] Poznámky 44 00:02:25,940 --> 00:02:29,350 jsou on-line, určitě diapozitivy a zdrojový kód, který budeme používat ve třídě. 45 00:02:29,350 --> 00:02:31,436 Vyrábíme plné texty přepisy také k dispozici. 46 00:02:31,436 --> 00:02:34,310 Takže pokud si matně vzpomínám některé termín, a chcete se podívat to málo 47 00:02:34,310 --> 00:02:37,280 snadněji, si uvědomit, že všechny z toho je vyhledávání online. 48 00:02:37,280 --> 00:02:38,930 Stejně jako průchody stejně. 49 00:02:38,930 --> 00:02:42,710 Opravdu, dnes začneme se dívat na nižší programovací jazyk na úrovni, 50 00:02:42,710 --> 00:02:45,290 brzy být známý nám jako C, a to je velmi snadné 51 00:02:45,290 --> 00:02:48,820 se nějak ztratit po několika momenty čas, a pak nějak údivu 52 00:02:48,820 --> 00:02:52,370 jak jsme se vlastně dostali k nějaké další komplexní příklad z nejjednodušších. 53 00:02:52,370 --> 00:02:54,975 A tak si uvědomit, my budeme třešeň vyzvednout během vyučování nějakým 54 00:02:54,975 --> 00:02:57,850 reprezentativních příkladů, ale Uvědomuji si, že mnohem víc je také 55 00:02:57,850 --> 00:03:01,140 k dispozici on-line, takže můžete pracovat přes to svým vlastním tempem, 56 00:03:01,140 --> 00:03:02,950 Nicméně jste nejpohodlnější. 57 00:03:02,950 --> 00:03:05,200 >> Ale my jsme přestali s programy, které byly právě tento. 58 00:03:05,200 --> 00:03:09,690 Tak jsem klikněte na zelenou vlajku, a co tento program dělá? 59 00:03:09,690 --> 00:03:10,710 Říká, ahoj, svět. 60 00:03:10,710 --> 00:03:13,180 To je kočka říká ahoj ve svém malém světě 61 00:03:13,180 --> 00:03:15,990 na horní levé straně uživatelského rozhraní Scratch je. 62 00:03:15,990 --> 00:03:18,810 Ale začali jsme zavádět některé terminologie minulý týden. 63 00:03:18,810 --> 00:03:23,614 A tak, takové věci, co jsme říkali? 64 00:03:23,614 --> 00:03:25,280 Co by mohlo být obecný termín pro to? 65 00:03:25,280 --> 00:03:26,266 Jo. 66 00:03:26,266 --> 00:03:28,210 Způsob nebo prohlášení. 67 00:03:28,210 --> 00:03:29,280 Jistě, je to akce. 68 00:03:29,280 --> 00:03:30,140 Udělej to. 69 00:03:30,140 --> 00:03:32,400 A přesto tam byli jiné tvary na zelené louce, 70 00:03:32,400 --> 00:03:35,360 Kromě těchto tzv prohlášení, oni byli také 71 00:03:35,360 --> 00:03:38,221 věci, jako je tento, které jsme říkali, co? 72 00:03:38,221 --> 00:03:38,720 Jo. 73 00:03:38,720 --> 00:03:39,634 Takže smyčka. 74 00:03:39,634 --> 00:03:42,050 A v tomto případě, tahle věc opakuje, samozřejmě, 10 krát. 75 00:03:42,050 --> 00:03:43,040 Je tu navždy blok. 76 00:03:43,040 --> 00:03:44,164 Je tu pár dalších. 77 00:03:44,164 --> 00:03:48,309 A dnes budeme vidět, jak se přeložit do více moderního světa, 78 00:03:48,309 --> 00:03:50,850 chcete-li, i když je to bude vypadat na první pohled 79 00:03:50,850 --> 00:03:52,024 být mnohem tajemné. 80 00:03:52,024 --> 00:03:53,190 Ale to byly opravdu smyčky. 81 00:03:53,190 --> 00:03:56,182 A pak máme věci jako to, který měl tento tvar, 82 00:03:56,182 --> 00:03:57,515 a v podstatě dotazy. 83 00:03:57,515 --> 00:03:58,890 A my odkazoval se na tyto jako co? 84 00:03:58,890 --> 00:03:59,762 >> Diváků: logický výraz. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Jo. 86 00:04:00,320 --> 00:04:01,340 Logický výraz. 87 00:04:01,340 --> 00:04:04,502 Něco, co je buď pravdivé nebo false, ano nebo ne, jedno nebo nula, 88 00:04:04,502 --> 00:04:05,960 však budete chtít na svět. 89 00:04:05,960 --> 00:04:08,335 Ale jsme nazvali ty Boolean výrazy, a my připojte je 90 00:04:08,335 --> 00:04:09,900 do podmínek, nebo pobočkami. 91 00:04:09,900 --> 00:04:12,170 A ve světě Scratch, všechno pěkně 92 00:04:12,170 --> 00:04:15,460 blokovací zařízení, pokud jde o jeho tvaru, pokud to má logický smysl, aby tak učinily, 93 00:04:15,460 --> 00:04:18,490 ale nemusíte zastavit na jen dělat jednu věc podmíněně, 94 00:04:18,490 --> 00:04:20,450 můžete mít příslovečná rozcestí 95 00:04:20,450 --> 00:04:24,040 a to buď to, nebo že v případě, podmínkou je pravda nebo ne. 96 00:04:24,040 --> 00:04:26,040 A pak, jak uvidíte, pokud jste tak již neučinili, 97 00:04:26,040 --> 00:04:27,480 Můžete dokonce hnízdo tyto bloky. 98 00:04:27,480 --> 00:04:32,110 Takže Scratch roste vyplnit tvary že budete chtít vložit do něj, 99 00:04:32,110 --> 00:04:35,330 takže se můžete skutečně vyjádřit většinu logika, které budete chtít dělat. 100 00:04:35,330 --> 00:04:38,220 >> Nyní pár slov oznámení pro oba tady a New Haven. 101 00:04:38,220 --> 00:04:39,370 Takže krájení začíná dnes. 102 00:04:39,370 --> 00:04:42,120 Adresa URL pro toto je na kurz je webové stránky, pro ty, kteří neznají. 103 00:04:42,120 --> 00:04:43,970 Sekce bude příležitost dát dohromady 104 00:04:43,970 --> 00:04:46,553 v mnohem intimnější prostředí než [? Sanders?] Umožňuje, 105 00:04:46,553 --> 00:04:50,347 s 10 až 20 spolužáků majících výuky kolega na různých tratích, 106 00:04:50,347 --> 00:04:51,930 a různých kroků, pokud se tak rozhodnete. 107 00:04:51,930 --> 00:04:54,080 Opravdu Kurz poskytuje různé úseky 108 00:04:54,080 --> 00:04:57,340 pro ty méně pohodlné více, pohodlné, a někde mezi tím, 109 00:04:57,340 --> 00:04:59,860 a role palce tady, je neexistuje žádná formální definice, 110 00:04:59,860 --> 00:05:04,600 ale pokud jste méně pohodlné, tak nějak to vědí. 111 00:05:04,600 --> 00:05:07,470 Jsi trochu neohrožený o Myšlenka na posílení nohou, snad zpět 112 00:05:07,470 --> 00:05:10,130 ve třídě, nebo zobrazení a to až do mezi sekce. 113 00:05:10,130 --> 00:05:12,770 Pokud jste byli programování od vás bylo šest let, pohodlnější, 114 00:05:12,770 --> 00:05:13,400 Možná na vás. 115 00:05:13,400 --> 00:05:16,150 A jestli je to jakýsi přehazovat-up, to je přesně to, co mezi tím 116 00:05:16,150 --> 00:05:17,190 má být. 117 00:05:17,190 --> 00:05:18,410 >> Nyní, do té doby, pro třídu této velikosti, 118 00:05:18,410 --> 00:05:21,326 to trvá nám nějakou dobu sekce všichni, takže jsme takzvaný, 119 00:05:21,326 --> 00:05:24,030 flash sekce, přijde to víkend a začátkem příštího týdne, 120 00:05:24,030 --> 00:05:26,570 tak se podívat na webové stránky Course pro ty, které jsou samozřejmě široké, 121 00:05:26,570 --> 00:05:28,610 a také filmoval pro ty, kteří nemohou dělat je. 122 00:05:28,610 --> 00:05:33,470 A profily sami začnou v týdnu tři CS50 nula indexu. 123 00:05:33,470 --> 00:05:35,880 Problém nastavena 0 je již na internetových stránkách Course. 124 00:05:35,880 --> 00:05:40,010 A uvědomit si, že máte devět pozdní dní tento semestr. 125 00:05:40,010 --> 00:05:43,240 Takže se jedná o upgrade z poslední rok, kdy jsme měli pět pozdní dní. 126 00:05:43,240 --> 00:05:46,210 >> Takže pokud jste zvědaví, Máme devět problém sady. 127 00:05:46,210 --> 00:05:53,200 Máte devět pozdní dnů, přičemž každé z nich můžete jen strávit jeden za týden dál. 128 00:05:53,200 --> 00:05:56,089 To účinně je všechny Problém nastavuje kvůli Pátek, 129 00:05:56,089 --> 00:05:58,630 ale cílem je dát trochu bit psychologického tlaku 130 00:05:58,630 --> 00:06:01,100 na vás, aby se pokusili dostat věci v ve čtvrtek 131 00:06:01,100 --> 00:06:03,960 protože jak brzy zjistíte, k lepšímu nebo k horšímu, většina 132 00:06:03,960 --> 00:06:07,820 vše, co ve světě softwaru skončí přičemž mnohem déle, než očekáváte. 133 00:06:07,820 --> 00:06:10,620 Takže zvažte to druh příležitostí pomoci 134 00:06:10,620 --> 00:06:13,880 sami na cílové čtvrtek, ale útěchu v tom, že ano, 135 00:06:13,880 --> 00:06:14,950 všechno je kvůli pátek. 136 00:06:14,950 --> 00:06:17,590 A pokud si předložit je na Čtvrtek, to je skvělé. 137 00:06:17,590 --> 00:06:21,020 Neexistuje žádné bonusové body nebo další úvěr pro splnění této lhůty. 138 00:06:21,020 --> 00:06:23,250 Je to má být jen berle. 139 00:06:23,250 --> 00:06:25,810 >> A úřední hodiny, a to jak tady a v New Haven, 140 00:06:25,810 --> 00:06:28,840 osobně, pokud chcete setkat se s některou z našich kurzů 141 00:06:28,840 --> 00:06:31,060 výuky kolegy a certifikační autority pro pomoc. 142 00:06:31,060 --> 00:06:31,640 >> Dobře. 143 00:06:31,640 --> 00:06:33,110 Takže teď, pojďme aby to reálnější. 144 00:06:33,110 --> 00:06:35,470 A na chvíli, že to bude začátek se trochu víc tajemný, ale velmi 145 00:06:35,470 --> 00:06:37,310 rychle v pátek a Příští týden budeme 146 00:06:37,310 --> 00:06:41,230 schopný dělat mnohem víc, než jsme mohli doposud v Scratch. 147 00:06:41,230 --> 00:06:44,350 Proto jsme zavedli kód poslední týden, i když pictoral. 148 00:06:44,350 --> 00:06:45,620 Bylo to dílky puzzle. 149 00:06:45,620 --> 00:06:48,800 A my formalizovaná, že je něco, co nazývá zdrojový kód, 150 00:06:48,800 --> 00:06:50,330 ale bude to vypadat? 151 00:06:50,330 --> 00:06:52,550 No, vypadalo to trochu něco takového. 152 00:06:52,550 --> 00:06:55,410 A ve skutečnosti, jen aby druhu škádlit kam můžeme jít s tím. 153 00:06:55,410 --> 00:06:57,800 Chystám se jít dopředu a otevřít okno tady, 154 00:06:57,800 --> 00:06:59,810 a já jsem prostě jít volit nový soubor. 155 00:06:59,810 --> 00:07:03,200 A budu tento soubor uložit něco jako ahoj dot C. 156 00:07:03,200 --> 00:07:05,700 Více informací o tomto výběru slova v chvilku. 157 00:07:05,700 --> 00:07:08,630 A to je to, jak by se někdo mohl jít o psaní programu. 158 00:07:08,630 --> 00:07:13,990 Zahrnout Standard I / O bodů h, int main neplatné, a potom otevřete složená závorka, v blízkosti 159 00:07:13,990 --> 00:07:19,430 složená závorka, printf ahoj čárka world, zpětné lomítko n, středník, Uložit, hotovo. 160 00:07:19,430 --> 00:07:19,930 DOBŘE. 161 00:07:19,930 --> 00:07:21,670 Napsal jsem můj první Program, ale to se děje 162 00:07:21,670 --> 00:07:23,878 být neuvěřitelně chladnou protože když jsem vlastně 163 00:07:23,878 --> 00:07:27,352 spustit tento program, samozřejmě, od první písemné dělat ahoj, 164 00:07:27,352 --> 00:07:30,310 a pak dot lomítko ahoj, a my projít to mnohem podrobněji 165 00:07:30,310 --> 00:07:31,730 ve chvíli, to je vše, co dělá. 166 00:07:31,730 --> 00:07:33,270 Neobjeví otevřená všechna okna. 167 00:07:33,270 --> 00:07:35,070 To nic nedělá zejména fantazie. 168 00:07:35,070 --> 00:07:38,830 Vše, co to udělá, je to, co jsem řekl, to ano, ale jak se dostaneme na to? 169 00:07:38,830 --> 00:07:40,560 A jak jsme se stavět na to? 170 00:07:40,560 --> 00:07:43,430 Dobře, pojďme představit několik odlišné pojmy zde. 171 00:07:43,430 --> 00:07:47,170 >> Takže jeden, my jsme asi na začátku používat program s názvem kompilátor. 172 00:07:47,170 --> 00:07:51,470 Kompilátor existuje pro Mac OS, Windows, Linux, libovolný počet operačních systémů, 173 00:07:51,470 --> 00:07:54,540 a my brzy představí na prostředí, které budeme používat, 174 00:07:54,540 --> 00:07:57,410 ale kompilátor je jen obecný termín pro kus softwaru 175 00:07:57,410 --> 00:08:01,940 který bere zdrojový kód a vyrábí objektový kód z něj. 176 00:08:01,940 --> 00:08:03,940 Jinými slovy, pokud mají jako vstupní zdroj 177 00:08:03,940 --> 00:08:08,250 kód, něco jako to, co jsem právě napsal, to nakonec produkuje objektový kód. 178 00:08:08,250 --> 00:08:11,780 A objektový kód je opravdu jen ozdobný způsob, jak říkat, že výstupy 179 00:08:11,780 --> 00:08:12,926 nul a jeden je. 180 00:08:12,926 --> 00:08:14,800 Jinými slovy, zdroj kód, i když je to 181 00:08:14,800 --> 00:08:17,240 bude vypadat trochu tajemné, a trochu méně přátelský 182 00:08:17,240 --> 00:08:19,590 Scratch než na první pohled, je to aspoň něco 183 00:08:19,590 --> 00:08:21,120 že my lidé mohou rozumět. 184 00:08:21,120 --> 00:08:24,360 Je to trochu vypadá a zní jako Angličtina, i když je to velmi stručná. 185 00:08:24,360 --> 00:08:28,040 Vzhledem k tomu, programování v nul a něčí, jako naši předkové museli udělat, 186 00:08:28,040 --> 00:08:30,920 Před několika lety, nebylo Zvláště zábava výzva. 187 00:08:30,920 --> 00:08:33,710 A přesto, to je to, co počítač stále chápe. 188 00:08:33,710 --> 00:08:37,010 Takže kompilátor nás dostane z Zdrojový kód objektového kódu. 189 00:08:37,010 --> 00:08:39,860 Je to jako otevření souboru s kompilátor, a když ji uložíte, 190 00:08:39,860 --> 00:08:41,419 dostanete ty nuly a jedničky. 191 00:08:41,419 --> 00:08:43,419 Tak uvidíme, jak to udělat že za chvíli. 192 00:08:43,419 --> 00:08:47,400 >> Ale vraťme se nyní pokusí poskytnout most mezi minulý týden a to, 193 00:08:47,400 --> 00:08:50,660 takže i když jsme se zavěsil na věci, jako je složené závorky, 194 00:08:50,660 --> 00:08:54,100 a středníky a závorky, a všechny tyto intelektuálně zajímavé 195 00:08:54,100 --> 00:08:57,620 aspekty programování, které velmi pochopitelně výlet lidi na začátku, 196 00:08:57,620 --> 00:09:00,930 si uvědomit, že všechny myšlenky Dnes, jsou stejné, jako poslední. 197 00:09:00,930 --> 00:09:03,975 Takže poslední, viděli jsme tento příklad tady, Hello World programu. 198 00:09:03,975 --> 00:09:07,500 No, začíná dnes, pokud chceme, k provedení tohoto stejného programu, 199 00:09:07,500 --> 00:09:10,800 to bude vypadat Trochu něco takového. 200 00:09:10,800 --> 00:09:14,040 A budeme vysvětlovat před dlouhou, co int, a hlavní, a neplatné, a to vše 201 00:09:14,040 --> 00:09:18,770 je, ale aspoň vidím zde již známý Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Mezitím, věci, jako je funkce, řekněme ahoj, 203 00:09:20,860 --> 00:09:23,570 je velmi jednoduše Bude to velmi prosté konstatování jako je tento. 204 00:09:23,570 --> 00:09:26,930 Printf hello world, s některými cituje, se zpětným lomítkem, 205 00:09:26,930 --> 00:09:29,780 středníkem, ale Více o tom přijít. 206 00:09:29,780 --> 00:09:34,066 Smyčky, zatím, je to, že smyčka, Samozřejmě, říká ahoj svět navždy, 207 00:09:34,066 --> 00:09:36,690 a ten to bude vypadat málo podivnější, než v posledním, 208 00:09:36,690 --> 00:09:39,530 ale když řeknu něco stejně jako, když pravda, já 209 00:09:39,530 --> 00:09:44,050 pak můžete vytisknout Hello World znovu a znovu a znovu a znovu. 210 00:09:44,050 --> 00:09:46,660 A pak, jak můžete laskavý při zahájení odvodit tady, 211 00:09:46,660 --> 00:09:49,070 Tato úmluva použití složené závorky je druh 212 00:09:49,070 --> 00:09:52,050 jako se objímat členité řádek kódu tam. 213 00:09:52,050 --> 00:09:55,840 Printf řádek kódu podobně jako žluté kousek skládačky nahoře. 214 00:09:55,840 --> 00:09:58,740 Takže nebudeme říkat navždy, budeme říkat, když pravda, 215 00:09:58,740 --> 00:10:01,020 ale uvidíme, proč tomu tak je v jen trochu. 216 00:10:01,020 --> 00:10:04,210 >> Mezitím, máme-li smyčku jako je tento, kde si zopakovat něco konečných 217 00:10:04,210 --> 00:10:07,730 číslo časy, to taky, že je to bude trvat trochu zvykat 218 00:10:07,730 --> 00:10:12,820 , ale bude to říci int i dostane nula, i méně než 10, i ++, 219 00:10:12,820 --> 00:10:14,056 a pak printf znovu. 220 00:10:14,056 --> 00:10:15,430 Ale tam to bude vzory. 221 00:10:15,430 --> 00:10:18,434 A pro ty z vás znají s AP informatiky, nebo Java, 222 00:10:18,434 --> 00:10:21,100 nebo libovolný počet jiných jazyků, téměř všechny z těchto konstruktů 223 00:10:21,100 --> 00:10:23,820 tak daleko by měl vypadat většinou povědomý. 224 00:10:23,820 --> 00:10:24,680 >> Tak variabilní. 225 00:10:24,680 --> 00:10:29,270 Takže tady je jednoduchý Scratch výňatek, že nastaví proměnnou s názvem čítač na nulu, 226 00:10:29,270 --> 00:10:33,150 a pak navždy říká pult, a pak se změní čítač o jednu. 227 00:10:33,150 --> 00:10:37,030 Tak začíná nulou, a pak jeden, dva, tři. 228 00:10:37,030 --> 00:10:42,560 Tak, jak by jsme se představit, že v tento nový jazyk trochu podobně? 229 00:10:42,560 --> 00:10:45,460 Int counter rovná nula, zatímco pravý, což 230 00:10:45,460 --> 00:10:48,100 je to, že stejná myšlenka před rokem dělat něco navždy, 231 00:10:48,100 --> 00:10:49,530 a já jsem prostě jít do printf. 232 00:10:49,530 --> 00:10:53,310 A teď je to stále trochu divné, procent i, ale o tom přijít, 233 00:10:53,310 --> 00:10:55,140 ale tyto myšlenky jsou naprosto stejné. 234 00:10:55,140 --> 00:10:58,820 Máme teď musí dodržovat syntaxe, zda je počítač 235 00:10:58,820 --> 00:11:00,010 bude vyžadovat z nás. 236 00:11:00,010 --> 00:11:04,620 >> Logický výraz, něco jako sx méně než y, popřípadě x menší než y, 237 00:11:04,620 --> 00:11:06,354 a y méně než z. 238 00:11:06,354 --> 00:11:09,270 Bude to vypadat něco málo takhle, s závorky jen 239 00:11:09,270 --> 00:11:13,020 stejně jako v matematice pro dobrou opatření, které jen zajistit, že pořadí operací 240 00:11:13,020 --> 00:11:14,750 je, jak jsme v úmyslu. 241 00:11:14,750 --> 00:11:15,600 A teď, podmínky. 242 00:11:15,600 --> 00:11:21,220 Takže pokud x menší než y, řekněme x je méně než y, else if x je větší než y, 243 00:11:21,220 --> 00:11:26,020 říci, x je větší než y, jinak logicky, x musí být rovno y. 244 00:11:26,020 --> 00:11:28,710 Takže byste mohli realizovat něco takového v Scratch, 245 00:11:28,710 --> 00:11:31,230 nebo byste mohli realizovat že v této syntaxi. 246 00:11:31,230 --> 00:11:35,090 A opět, složené závorky jsou druh což nám dává stejný tvar jako puzzle 247 00:11:35,090 --> 00:11:40,750 kusy, ale syntaxe, teď, je možná začínají následovat nějaké vzory. 248 00:11:40,750 --> 00:11:42,910 >> Takže, co to dá nám tady? 249 00:11:42,910 --> 00:11:45,260 Takže jsme zase pak na našeho hlavního programu. 250 00:11:45,260 --> 00:11:47,930 Pojďme ve skutečnosti, teď, udělat něco s ním. 251 00:11:47,930 --> 00:11:50,660 Takže v tomto velmi nejprve linka vidíme ostrý patří, 252 00:11:50,660 --> 00:11:53,160 Standardní I / O, tečka h, a pak nějaký divný úhel 253 00:11:53,160 --> 00:11:57,330 závorky níže, že. int main neplatné, a pak printf hello world. 254 00:11:57,330 --> 00:11:58,200 Takže jen krok. 255 00:11:58,200 --> 00:12:02,440 Někdo, kdo nikdy předtím naprogramované, alespoň vysvětlit jednoho z těchto řádků. 256 00:12:02,440 --> 00:12:04,490 Použití možná některé z žargon z minulého týdne. 257 00:12:04,490 --> 00:12:06,942 Co je printf, například? 258 00:12:06,942 --> 00:12:07,442 Jo. 259 00:12:07,442 --> 00:12:08,410 >> Diváků: [Neslyšitelné] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Jo. 261 00:12:08,610 --> 00:12:11,380 Je to funkce, nebo prohlášení, od terminologie minulý týden. 262 00:12:11,380 --> 00:12:13,470 A je to akční to je něco dělat. 263 00:12:13,470 --> 00:12:15,855 Nyní je tato funkce, nebo toto prohlášení, dělá 264 00:12:15,855 --> 00:12:17,550 Zdá se, že to trvat nějaký vstup? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 A v jakém smyslu to dělá Zdá se, aby se vstup, pokud ano,? 267 00:12:24,380 --> 00:12:26,180 Vstup, co mám na mysli, že? 268 00:12:26,180 --> 00:12:26,720 Jo. 269 00:12:26,720 --> 00:12:27,595 >> Diváků: [Neslyšitelné] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Jo. 272 00:12:31,440 --> 00:12:34,890 Takže Scratch na několik skládačky kde můžete nastavit parametry jej. 273 00:12:34,890 --> 00:12:37,980 Dalo by se říci, opakování blokovat kolikrát opakovat, 274 00:12:37,980 --> 00:12:40,320 tak, aby byl vstup druhy, a stejně jako Scratch 275 00:12:40,320 --> 00:12:43,060 měl malý bílý zástupný symbol pro číslo byste typu v, 276 00:12:43,060 --> 00:12:45,810 takže máme použít v tomto Text svět závorky 277 00:12:45,810 --> 00:12:49,910 dát nám, že kruhový tvar do kterých můžeme zapojit naše vstup. 278 00:12:49,910 --> 00:12:53,180 Koneckonců, desítky lety pokud tento jazyk, nazvaný C, 279 00:12:53,180 --> 00:12:55,950 byl vynalezen nikdo Předpokládá se, že je to jeden z nás, 280 00:12:55,950 --> 00:12:59,420 Tyto o několik let později, měli bychom Chcete-funkci, která říká ahoj. 281 00:12:59,420 --> 00:12:59,920 Je to tak? 282 00:12:59,920 --> 00:13:02,880 Bylo by hezké, kdyby tam bylo kousek skládačky, nebo jen klíčových slov, 283 00:13:02,880 --> 00:13:05,502 tomu se říká ahoj, že doslova říká ahoj. 284 00:13:05,502 --> 00:13:06,460 Ale my nepotřebujeme to. 285 00:13:06,460 --> 00:13:09,320 Můžeme mít něco mnohem nižší úroveň, jako generické potiskem 286 00:13:09,320 --> 00:13:12,760 Příkaz, který bere vstup, a tisky, co chceme. 287 00:13:12,760 --> 00:13:14,960 Takže si všimnout teď vzor že začne objevovat. 288 00:13:14,960 --> 00:13:19,310 Otevřené paren, v blízkosti je paren zřejmě zahrnující vstup, 289 00:13:19,310 --> 00:13:21,770 a pak vidím double cituje na obou koncích. 290 00:13:21,770 --> 00:13:25,110 Stále je divné zpětné lomítko n, ale doufejme, že teď jste 291 00:13:25,110 --> 00:13:29,900 můžete začít představit alespoň, že printf bere v nějaké formě vstupu. 292 00:13:29,900 --> 00:13:31,850 Ne tak uživatelsky přívětivý jako Scratch, ale je to jen 293 00:13:31,850 --> 00:13:34,920 jako když zapojen tam nějakou hodnotu. 294 00:13:34,920 --> 00:13:38,306 >> Dobře, teď se to vlastně udělat něco s tím. 295 00:13:38,306 --> 00:13:40,930 Takže někteří z vás možná znají z mají před nakupoval třídu, 296 00:13:40,930 --> 00:13:42,638 povídali s přáteli, , že po mnoho let 297 00:13:42,638 --> 00:13:44,590 jsme použili něco, co nazývá CS50 spotřebiče. 298 00:13:44,590 --> 00:13:49,160 Jednalo se o termín, který popisuje technologii volal virtuální stroj, který 299 00:13:49,160 --> 00:13:51,870 je kus softwaru, který předchůdci by stažení off 300 00:13:51,870 --> 00:13:53,360 Webové stránky Kurz je zdarma. 301 00:13:53,360 --> 00:13:56,550 Oni by také zdarma stáhnout kus software nazvaný hypervisor, 302 00:13:56,550 --> 00:14:00,590 něco, co nazývá jako VMware, nebo VirtualBox, nebo libovolný počet 303 00:14:00,590 --> 00:14:04,450 dalších nástrojů, a na jejich PC nebo Mac nebo co počítač měli v loňském roce 304 00:14:04,450 --> 00:14:06,620 a v minulých letech, oni by poklepat na ikonu 305 00:14:06,620 --> 00:14:08,860 pro spuštění tohoto softwaru volal hypervisor. 306 00:14:08,860 --> 00:14:12,220 A pak se uvnitř tohoto programu oni by otevřel CS50 přístroj. 307 00:14:12,220 --> 00:14:14,710 A efekt byl, že zda předchůdce tvůj 308 00:14:14,710 --> 00:14:17,780 se systémem Mac OS nebo Windows, on nebo ona pak 309 00:14:17,780 --> 00:14:22,910 následovně měl nové okno na jejich Obrazovka spuštění prostředí CS50 je. 310 00:14:22,910 --> 00:14:27,370 Takže virtuální stroj umožňuje spustit jeden operační systém uvnitř druhého, 311 00:14:27,370 --> 00:14:28,785 a to je přesně to, co jsme udělali. 312 00:14:28,785 --> 00:14:31,410 Skrz většinu z samozřejmě používat operační systém nazvaný 313 00:14:31,410 --> 00:14:34,070 Linux, konkrétně Ubuntu Linux, a to 314 00:14:34,070 --> 00:14:37,590 je velmi příjemný způsob, jak v minulých letech z ujistěte se, že všichni v průběhu 315 00:14:37,590 --> 00:14:38,840 prostě musel stejné prostředí. 316 00:14:38,840 --> 00:14:41,339 A můžete použít jakýkoli druh počítač, který skutečně chtějí. 317 00:14:41,339 --> 00:14:43,930 Mezi nevýhody, i když, bylo to jako dva gigabajty 318 00:14:43,930 --> 00:14:45,480 stáhnout tuto věc. 319 00:14:45,480 --> 00:14:50,310 To přece nemusí nutně fungovat výborný dobře lidé, jejichž počítače, že možná pouze 320 00:14:50,310 --> 00:14:54,570 měl koncert nebo tak RAM, nebo ne příliš mnoho gigahertz rychlosti procesoru, 321 00:14:54,570 --> 00:14:56,750 a tak tento rok, pro toto a jiné důvody, 322 00:14:56,750 --> 00:14:59,140 máme již přechod do tohoto prostředí. 323 00:14:59,140 --> 00:15:03,730 Takzvaný CS50 IDE, který je založen na open source software, 324 00:15:03,730 --> 00:15:07,380 a podporované platformy že společnost s názvem Cloud9 325 00:15:07,380 --> 00:15:11,110 podporuje v Evropě, že nám umožňuje mít v podstatě 326 00:15:11,110 --> 00:15:15,770 že přesně stejné prostředí jako v minulých letech, ale v tzv mrak. 327 00:15:15,770 --> 00:15:17,532 >> Takže to, co je cloud? 328 00:15:17,532 --> 00:15:20,480 Pravděpodobně jste klikli jeho ikona na vašem počítači Mac nebo PC. 329 00:15:20,480 --> 00:15:22,210 Co je cloud? 330 00:15:22,210 --> 00:15:22,709 Jo? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Trochu hlasitěji. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Jo. 335 00:15:31,010 --> 00:15:33,770 Je to jen banda počítačů jinde, které ukládají data a běh 336 00:15:33,770 --> 00:15:34,880 software a podobně. 337 00:15:34,880 --> 00:15:39,390 Takže je to opravdu jen ke slovu DE jure popisující [? pronajímatelné?] 338 00:15:39,390 --> 00:15:40,930 Počítače, které žijí jinde. 339 00:15:40,930 --> 00:15:42,810 To jsi ty, sám, nemusí nutně vlastnit. 340 00:15:42,810 --> 00:15:45,256 Takže když vaše data, nebo Váš programy, jsou v cloudu, 341 00:15:45,256 --> 00:15:47,630 znamená to pouze, že je to na někoho jiného počítače jinde, 342 00:15:47,630 --> 00:15:50,510 a ne, s největší pravděpodobností, na svých fyzický notebook nebo desktop. 343 00:15:50,510 --> 00:15:52,990 A tak to je to, co CS50 IDE je nyní. 344 00:15:52,990 --> 00:15:55,670 >> Od nynějška budete chodit do určité URL, které vás seznámí 345 00:15:55,670 --> 00:16:00,090 se v problému sada 1, v průběhu tohoto týden, které budou následně, po přihlášení, 346 00:16:00,090 --> 00:16:01,480 vám toto prostředí. 347 00:16:01,480 --> 00:16:03,896 A podobně jako Scratch měl několik různých panely zapojeny, 348 00:16:03,896 --> 00:16:06,030 tak dělá IDE CS50 mají přesně to. 349 00:16:06,030 --> 00:16:09,480 Na horní levé ruky tady, ty jsi uvidí známou prohlížeč souborů. 350 00:16:09,480 --> 00:16:11,930 Takže některý ze souborů, které jste do tohoto prostředí 351 00:16:11,930 --> 00:16:13,346 se právě chystá by měly být uvedeny zde. 352 00:16:13,346 --> 00:16:14,350 Soubory a složky. 353 00:16:14,350 --> 00:16:16,790 Na vrcholu tady, budete vidět místo, 354 00:16:16,790 --> 00:16:18,420 kde si můžete skutečně napsat svůj kód. 355 00:16:18,420 --> 00:16:21,860 Zpočátku v C, později v termín v PHP a JavaScript, 356 00:16:21,860 --> 00:16:24,739 a, možná pro konečné Projekty, Ruby nebo Java nebo Python 357 00:16:24,739 --> 00:16:27,280 nebo libovolný počet jazyků jsou podporována v tomto prostředí. 358 00:16:27,280 --> 00:16:30,130 Není to vůbec svázaný na CS50 konkrétně. 359 00:16:30,130 --> 00:16:33,390 >> A pak se v dolním rohu tady, zvláště pro ty, pohodlnější, 360 00:16:33,390 --> 00:16:35,590 máte něco nazývá okno terminálu. 361 00:16:35,590 --> 00:16:38,770 A to okno terminálu umožňuje můžete spustit libovolný příkaz, který vám 362 00:16:38,770 --> 00:16:40,860 chtějí v tomto prostředí cloudu. 363 00:16:40,860 --> 00:16:42,860 To umožňuje instalaci jakýkoli další software 364 00:16:42,860 --> 00:16:46,810 že chcete, protože jste takzvaný kořen, nebo správce oprávnění. 365 00:16:46,810 --> 00:16:49,930 Takže jinými slovy, i když toto je nakonec hostil v cloudu, 366 00:16:49,930 --> 00:16:52,400 a přestože máme zjednodušil do určité míry 367 00:16:52,400 --> 00:16:57,110 Ve výchozím nastavení je doslova zavedení, díky Dan Armendariz, a Dino, 368 00:16:57,110 --> 00:17:01,070 a Dan Bradley na CS50 týmu Over The v minulosti mnoho měsíců, méně pohodlný 369 00:17:01,070 --> 00:17:05,140 Režim, který skrývá mnoho z zpočátku matoucí rozptýlení. 370 00:17:05,140 --> 00:17:10,119 Vše, co existuje na představují typický počítačový systém 371 00:17:10,119 --> 00:17:12,319 které můžete použít v reálném světě. 372 00:17:12,319 --> 00:17:15,640 >> Takže co to všechno znamená, a co můžeme skutečně udělat s ním? 373 00:17:15,640 --> 00:17:19,124 Pojďme skutečně nahlédnout na programu. 374 00:17:19,124 --> 00:17:21,290 Takže já jdu otevřít Skutečná prostředí tady, 375 00:17:21,290 --> 00:17:23,894 což je jen naše Chrome browser, který by mohl být Firefox, 376 00:17:23,894 --> 00:17:26,640 může být Internet Explorer, nebo nějaký jiný prohlížeč stejně. 377 00:17:26,640 --> 00:17:28,400 Je to tu plné screening pro tuto chvíli. 378 00:17:28,400 --> 00:17:31,580 A já chci, aby skutečně dráždit kromě toho, co tento program byl. 379 00:17:31,580 --> 00:17:36,170 Takže pojďme se podívat, přiblížením nahoru začátek, na to, co jsem udělal, a jak jsem se sem dostal. 380 00:17:36,170 --> 00:17:38,315 Tak tady je těch, přesný Stejné řádků kódu. 381 00:17:38,315 --> 00:17:40,440 Takže toto je prohlášení, jak jste zmínil dříve. 382 00:17:40,440 --> 00:17:42,580 Funkce, která říká, ahoj. 383 00:17:42,580 --> 00:17:45,870 Složené závorky, na linka čtyři a linka šest, 384 00:17:45,870 --> 00:17:49,290 pravděpodobně druh obalové že linka je sdružovat 385 00:17:49,290 --> 00:17:50,890 s podstatou mého programu. 386 00:17:50,890 --> 00:17:54,890 Takže ve skutečnosti, toto klíčové slovo hlavní, že to tam nahoře na lince tři, 387 00:17:54,890 --> 00:17:59,450 si můžete myslet, že jako rovnocenné , že když zelenou vlajkou klepnutí, 388 00:17:59,450 --> 00:18:01,080 blokovat Scratch. 389 00:18:01,080 --> 00:18:05,280 Tak to je všechno, co máme tady, je, když zelenou vlajkou klikli, vytisknout, nebo říkat, 390 00:18:05,280 --> 00:18:06,700 Ahoj světe. 391 00:18:06,700 --> 00:18:11,210 >> Ale pojďme se hádat, teď, na to, co tato první, ještě tajemný řádek, je. 392 00:18:11,210 --> 00:18:15,100 Sharp patří, otevřený úhlová Držák, standardní I / O bod h, 393 00:18:15,100 --> 00:18:17,320 zavřít úhlový držák. 394 00:18:17,320 --> 00:18:19,850 Co je to snad dělá, zejména pokud jste naprogramován 395 00:18:19,850 --> 00:18:21,390 předtím, než v nějakém jiném jazyce. 396 00:18:21,390 --> 00:18:21,890 Jo? 397 00:18:21,890 --> 00:18:22,765 >> Diváků: [Neslyšitelné] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Jo. 400 00:18:25,970 --> 00:18:26,470 Přesně tak. 401 00:18:26,470 --> 00:18:29,455 Tak to dává vám přístup k knihovna, abych tak řekl, funkcí. 402 00:18:29,455 --> 00:18:31,830 A knihovna funkcí je funkce, které někdo jiný 403 00:18:31,830 --> 00:18:34,406 napsal, a to buď v poslední době nebo už dávno, takže si 404 00:18:34,406 --> 00:18:35,780 Nemusíte znovu vynalézat kolo. 405 00:18:35,780 --> 00:18:39,020 Například, my ne musí vědět, v roce 2015, 406 00:18:39,020 --> 00:18:42,280 jak psát kód, který klade charakter na mé obrazovce. 407 00:18:42,280 --> 00:18:44,820 Někdo přišel na které out s funkcí printf 408 00:18:44,820 --> 00:18:47,280 takže můžu třídit abstraktní od toho, nebo vrstva 409 00:18:47,280 --> 00:18:49,350 Na vrcholu jeho nebo její kódu, a teď jen se 410 00:18:49,350 --> 00:18:52,760 za samozřejmé, že každý program, který jsem napsat lze tisknout něco na obrazovku. 411 00:18:52,760 --> 00:18:58,150 Takže toto první řádek tam v jednom kroku zahrnuje tzv hlavičkový soubor 412 00:18:58,150 --> 00:18:59,980 pro standardní knihovny. 413 00:18:59,980 --> 00:19:02,630 Tak vidíte, jazyk v který nyní pracujeme 414 00:19:02,630 --> 00:19:05,010 měl standardní knihovny se spoustou funkcí. 415 00:19:05,010 --> 00:19:07,240 Printf je jedním z nich, a že první řádek kódu 416 00:19:07,240 --> 00:19:10,040 znamená, dej mi přístup k ty funkce, abych 417 00:19:10,040 --> 00:19:12,300 Nemusíte znovu vynalézat kolo, že. 418 00:19:12,300 --> 00:19:15,940 >> A teď pojďme do dolního okna a dělat přesně to, co jsem udělal předtím. 419 00:19:15,940 --> 00:19:18,520 Před chvílí, když jsem byl svištění prostřednictvím kódu, 420 00:19:18,520 --> 00:19:24,540 psát to poprvé, Velmi rychle jsem napsal, aby ahoj. 421 00:19:24,540 --> 00:19:28,250 Co to všechno bylo by hádat? 422 00:19:28,250 --> 00:19:29,150 Co jsem dělal? 423 00:19:29,150 --> 00:19:29,649 Jo? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Nevadí. 426 00:19:32,310 --> 00:19:32,970 Je to v pohodě. 427 00:19:32,970 --> 00:19:33,492 Jo. 428 00:19:33,492 --> 00:19:34,450 Diváků: Kompilace jej. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Jo. 430 00:19:34,700 --> 00:19:35,770 To bylo prostě kompilaci to. 431 00:19:35,770 --> 00:19:36,270 Je to tak? 432 00:19:36,270 --> 00:19:39,280 I když je to zcela neznámé pro vás, je to docela anglicky jako. 433 00:19:39,280 --> 00:19:41,155 To určitě ne nuly a ty, takže jsem pořád 434 00:19:41,155 --> 00:19:44,220 je třeba jej spustit přes to takzvaná Program, kompilátor, který se děje 435 00:19:44,220 --> 00:19:46,060 vzít to jako vstup a produkovat výstup. 436 00:19:46,060 --> 00:19:48,270 A alespoň pro tuto chvíli, v toto prostředí Linux, 437 00:19:48,270 --> 00:19:51,030 ale toto není předpokladem, To je právě tam, kde začneme, 438 00:19:51,030 --> 00:19:53,960 je obvykle komunikovat s počítačové systémy, jako je tento 439 00:19:53,960 --> 00:19:55,770 pomocí tzv příkazového řádku. 440 00:19:55,770 --> 00:19:57,790 Takže s blikajícím rychlé a klávesnice, 441 00:19:57,790 --> 00:20:01,630 a ne tolik vaše myš, a nikoli tolik oken a ikony a nabídky, 442 00:20:01,630 --> 00:20:02,980 spíš všechno je textový. 443 00:20:02,980 --> 00:20:06,180 A i když to cítí, nejprve pohled, možná, jako krok zpět, 444 00:20:06,180 --> 00:20:08,437 je to ve skutečnosti mnohem silný a expresivní způsob, 445 00:20:08,437 --> 00:20:10,270 ovládání počítače zejména jako vy, 446 00:20:10,270 --> 00:20:12,950 sami, se více pohodlná od méně. 447 00:20:12,950 --> 00:20:16,790 Bude to vám umožní udělat hodně více věcí, než jen to, co Microsoft 448 00:20:16,790 --> 00:20:20,390 nebo Apple vám umožňuje dělat s jejich grafické operační systém. 449 00:20:20,390 --> 00:20:23,270 >> Takže když jsem stiskněte klávesu Enter, nyní, nic se neděje, tentokrát 450 00:20:23,270 --> 00:20:25,960 protože zřejmě Program ahoj je aktuální. 451 00:20:25,960 --> 00:20:28,250 A jaký byl povel Běžel jsem po tom? 452 00:20:28,250 --> 00:20:32,370 Dot lomítko Dobrý den, i hello world. 453 00:20:32,370 --> 00:20:34,350 Nyní se pojďme krok zpět na chvilku. 454 00:20:34,350 --> 00:20:39,510 Ukazuje se, že dělat ahoj je jen zjednodušený způsob sestavování programu. 455 00:20:39,510 --> 00:20:41,670 Pojďme se jen představit jeden kus žargonu, 456 00:20:41,670 --> 00:20:43,470 ale pak se vzdálit z ní, protože to není 457 00:20:43,470 --> 00:20:46,640 vše, co zajímavé pro dnešní účely. 458 00:20:46,640 --> 00:20:51,000 Překladač budeme začít používat se nazývá Clang, pro jazyk C. 459 00:20:51,000 --> 00:20:54,280 A to je program, který je právě spuštěn jako jsme to udělali v tam příkazovém řádku. 460 00:20:54,280 --> 00:20:56,580 A tak, když chci sestavit program, který jsem 461 00:20:56,580 --> 00:21:00,790 psali v souboru s názvem ahoj tečka c, jsem doslova stačí zadat zvonění ahoj c 462 00:21:00,790 --> 00:21:02,100 vstoupit. 463 00:21:02,100 --> 00:21:04,880 >> Legrační je, z historických důvodů 464 00:21:04,880 --> 00:21:07,750 když nemám zadat Název programu 465 00:21:07,750 --> 00:21:11,690 že chci, aby výstup, když to neudělám zadejte název souboru pro ty nuly 466 00:21:11,690 --> 00:21:14,990 a ty, velmi podivné Před úmluva byla přijata let 467 00:21:14,990 --> 00:21:17,390 kde se cítil tak trochu Dobrá odpověď v té době, 468 00:21:17,390 --> 00:21:21,650 no řekněme libovolně volat První program jsme sestavit tečku ven. 469 00:21:21,650 --> 00:21:22,900 Je na prvním místě v abecedě. 470 00:21:22,900 --> 00:21:23,920 Out, je to výstup. 471 00:21:23,920 --> 00:21:26,210 Takže budeme nazývat program Ve výchozím nastavení je tečka ven. 472 00:21:26,210 --> 00:21:29,550 A to je v pořádku, protože když budu chtít spustit program v tomto textu na bázi 473 00:21:29,550 --> 00:21:33,590 životní prostředí, jen jsem typ dot lomítko tečku ven vstoupit. 474 00:21:33,590 --> 00:21:35,250 A bylo by v přesně tak jako dříve. 475 00:21:35,250 --> 00:21:36,880 Tak uvidíme, že opravdu rychle. 476 00:21:36,880 --> 00:21:40,370 >> Takže když se vrátím k mému Zdrojový kód v CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 a já místo toho to, řinčet ahoj dětská postýlka c vstoupit, oznámení se zdánlivě nic neděje, 478 00:21:47,860 --> 00:21:49,790 ale téměř vždy v toto prostředí Linux, 479 00:21:49,790 --> 00:21:53,310 Když se nic špatného nestane se zdá, že znamená, že něco dobrého vlastně stalo. 480 00:21:53,310 --> 00:21:56,270 Pokud nevidíte chybu poselství, všechno je asi dobře. 481 00:21:56,270 --> 00:22:01,930 A skutečně, když jsem teď dělat tečka lomítko tečku out vstoupí, jsem běžet můj stejný program. 482 00:22:01,930 --> 00:22:04,610 Stále mám program Hello z dříve, protože ve skutečnosti, že je to 483 00:22:04,610 --> 00:22:07,430 Bude tak mnohem hezčí jen typ, aby namísto vzpomínání 484 00:22:07,430 --> 00:22:10,240 tyto zaklínání na příkazy, ale uvidíme, jak jsme 485 00:22:10,240 --> 00:22:12,890 může zvýšit na to, nicméně. 486 00:22:12,890 --> 00:22:15,340 >> Takže, to je příkaz kompilovat kód. 487 00:22:15,340 --> 00:22:19,100 Toto je příkaz ke spuštění potom zkompilovaný kód. 488 00:22:19,100 --> 00:22:20,546 Jak lze zadat název souboru? 489 00:22:20,546 --> 00:22:22,670 No řekněme, představit jeden kus žargonu. 490 00:22:22,670 --> 00:22:24,461 Když jste v této prostředí založené na textu, 491 00:22:24,461 --> 00:22:27,400 budete chtít zadat věci zvané argumenty příkazového řádku. 492 00:22:27,400 --> 00:22:31,380 Což je jen fantazie způsob, jak říkat, jiná slova na řádku, který 493 00:22:31,380 --> 00:22:33,860 vyladit chování bez ohledu Program vedete. 494 00:22:33,860 --> 00:22:37,320 Takže konkrétně program, já jsem běh, zadáním názvu řinčení, 495 00:22:37,320 --> 00:22:38,504 je program s názvem Clang. 496 00:22:38,504 --> 00:22:40,920 Tak to je, nebo staré školy ekvivalent dvojkliku 497 00:22:40,920 --> 00:22:42,860 Microsoft Word nebo ikonu nějakého programu. 498 00:22:42,860 --> 00:22:46,360 Já jsem místo toho jen zadáním jeho názvu, ale v této verzi příkazu, 499 00:22:46,360 --> 00:22:51,334 Pak mám pomlčka ö prostor ahoj ahoj prostor tečka c. 500 00:22:51,334 --> 00:22:53,500 Takže i když jste nikdy hrál v tomto světě dříve, 501 00:22:53,500 --> 00:22:58,160 stačí se hádat, co se pomlčka o ahoj dělat? 502 00:22:58,160 --> 00:23:00,620 Nebo co to říct, řinčení dělat? 503 00:23:00,620 --> 00:23:01,386 Jo. 504 00:23:01,386 --> 00:23:02,455 >> Diváků: [Neslyšitelné] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Jo. 506 00:23:03,330 --> 00:23:08,614 Je to jen nastaví výstup souboru být ahoj namísto hloupější tečka ven. 507 00:23:08,614 --> 00:23:09,780 A opravdu, zkusme to. 508 00:23:09,780 --> 00:23:14,250 Takže když jsem se teď dělat, nejprve jdeme na to, r m ahoj. 509 00:23:14,250 --> 00:23:15,590 To je odebrat. 510 00:23:15,590 --> 00:23:18,450 A to bude říkat odstranit běžný soubor ahoj, který 511 00:23:18,450 --> 00:23:22,210 je zbytečně tajemný, ale to jen prostředky chcete smazat soubor, 512 00:23:22,210 --> 00:23:23,230 I a Napište A pro Ano. 513 00:23:23,230 --> 00:23:27,340 A všimněte si, pokud jste byli s pohledem na vrcholu doleva, to se zmizí ze tam. 514 00:23:27,340 --> 00:23:32,180 Dovolte mi nyní dělat zazvoněním pomlčka o, a Chystám se jít dál a dělat ahoj, 515 00:23:32,180 --> 00:23:34,890 ve všech velkých písmenech, ahoj tečka c. 516 00:23:34,890 --> 00:23:37,775 A teď, když jsem dělat dot lomítko Dobrý den, co by jste čekali? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Možná je to velká a malá písmena. 519 00:23:42,430 --> 00:23:43,070 Možná to není. 520 00:23:43,070 --> 00:23:44,030 Uvidíme. 521 00:23:44,030 --> 00:23:45,230 Žádný takový soubor nebo adresář. 522 00:23:45,230 --> 00:23:47,438 A můžeme trochu podvádět tím jen při pohledu na levém horním rohu. 523 00:23:47,438 --> 00:23:49,630 Co jsem samozřejmě uložit program jako? 524 00:23:49,630 --> 00:23:51,070 Všechny čepice ahoj. 525 00:23:51,070 --> 00:23:53,020 Takže ve skutečnosti, že to jde aby rozdíl. 526 00:23:53,020 --> 00:23:54,540 Takže teď ahoj svět je zpět. 527 00:23:54,540 --> 00:23:56,969 Teď je to všechno v pořádku a dobré, a všichni velmi mysli-znecitlivující, 528 00:23:56,969 --> 00:23:59,760 na druhu zabřednout v těchto detaily, ale jejich pochopení 529 00:23:59,760 --> 00:24:00,500 je dobrý. 530 00:24:00,500 --> 00:24:02,675 >> Psaní z těchto stále dlouhé zaklínání 531 00:24:02,675 --> 00:24:05,980 se nebude zvlášť zábava, takže lidé ve světě 532 00:24:05,980 --> 00:24:08,260 vynalezl jiný program, Před několika lety, nazvaný 533 00:24:08,260 --> 00:24:12,190 dělat, že jednoduše umožňuje psát make, 534 00:24:12,190 --> 00:24:14,530 název programu chcete provést, a aby 535 00:24:14,530 --> 00:24:18,580 je chytrý v tom, že to bude vypadat v aktuální složka, alias adresáře, 536 00:24:18,580 --> 00:24:21,440 a pokud máte soubor volal ahoj dot c, 537 00:24:21,440 --> 00:24:25,800 že je soubor, to bude sestavovat pro vás do programu s názvem ahoj. 538 00:24:25,800 --> 00:24:29,950 Takže je to mnohem jednodušší způsob, jak dělat více mystické příkazy 539 00:24:29,950 --> 00:24:30,800 že jsme dělali dříve. 540 00:24:30,800 --> 00:24:34,080 A my jsme přednastaven CS50 IDE vědět 541 00:24:34,080 --> 00:24:38,560 že by měl činit pomlčka na o a řadu jiné vlajky, nebo argumenty příkazového řádku, 542 00:24:38,560 --> 00:24:40,670 že uvidíme zanedlouho. 543 00:24:40,670 --> 00:24:43,700 >> Ale pojďme teď vlastně dělat něco zajímavější. 544 00:24:43,700 --> 00:24:46,950 Jen psát out hello world vše Čas není vše, co přesvědčivé. 545 00:24:46,950 --> 00:24:52,280 Tak nech mě jít dopředu a změna tento program a říkají, ahoj David. 546 00:24:52,280 --> 00:24:54,120 Teď budu jít sem dolů. 547 00:24:54,120 --> 00:24:57,360 Chystám se jít dál a dělat, aby pozdrav. 548 00:24:57,360 --> 00:25:00,652 A teď zase vidíte aby se zobrazující delší 549 00:25:00,652 --> 00:25:03,360 sekvence příkazů, které je dělá proto, že jsme předem nakonfigurované 550 00:25:03,360 --> 00:25:05,200 to tak, ale my Nemusíte se bát teď 551 00:25:05,200 --> 00:25:10,735 co to dělá jiný, než je shrnujících dot lomítko Ahoj, ahoj svět. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Co je špatně? 554 00:25:15,510 --> 00:25:16,177 Jo. 555 00:25:16,177 --> 00:25:17,370 >> Diváků: [Neslyšitelné] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Ano. 557 00:25:18,203 --> 00:25:19,600 Takže, noobie chyba. 558 00:25:19,600 --> 00:25:22,394 Všiml jsem si, to je super jemný, ale hvězdička tady, na kartě, 559 00:25:22,394 --> 00:25:25,060 jen znamená, že jste to chytá, a prohlížeče a další programy 560 00:25:25,060 --> 00:25:25,930 to občas stává. 561 00:25:25,930 --> 00:25:27,939 Takže ovládání s nebo příkaz s to měli šetřit. 562 00:25:27,939 --> 00:25:29,730 Nyní mi dovolte jít napřed a re-spustit program. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Recompiled. 565 00:25:34,260 --> 00:25:36,050 Správně, takže je to proces, multi-krok. 566 00:25:36,050 --> 00:25:39,400 Žádný z nichž je obzvláště složité, ale kdykoli jsme se změnit soubor, 567 00:25:39,400 --> 00:25:43,450 musíme změnit výsledný nul a jedniček, a tečka lomítko ahoj. 568 00:25:43,450 --> 00:25:43,950 Wow. 569 00:25:43,950 --> 00:25:46,450 Tak to je velmi nezaujatý že jsme prostě vytisknout tohle. 570 00:25:46,450 --> 00:25:48,360 Pojďme dělat věci trochu dynamičtější, teď. 571 00:25:48,360 --> 00:25:52,280 >> No to dopadá, že rád Scratch, C podporuje proměnné. 572 00:25:52,280 --> 00:25:54,790 A ukazuje se, pokud chcete, mít proměnná, která ukládá, 573 00:25:54,790 --> 00:25:57,300 není číslo, jako my typicky udělal s Scratch, 574 00:25:57,300 --> 00:26:01,300 ale jako slovo, nebo fráze, nebo název, vy 575 00:26:01,300 --> 00:26:04,837 Můžete zadat proměnné být typu string. 576 00:26:04,837 --> 00:26:06,670 Tak uvidíme více ty za chvíli, 577 00:26:06,670 --> 00:26:09,090 ale ukázalo se, že C, a mnoho jazyků, jako je to, 578 00:26:09,090 --> 00:26:11,240 mají velmi specifické typy proměnných. 579 00:26:11,240 --> 00:26:13,810 Není to stejně jako algebra, kde dostanete X, Y a Z 580 00:26:13,810 --> 00:26:16,940 a to jsou právě vždy čísla, v programovacím jazyce 581 00:26:16,940 --> 00:26:20,030 můžete uložit čísla, můžete ukládat jednotlivé znaky, 582 00:26:20,030 --> 00:26:24,619 můžete uložit celých slov, byste mohli ukládat celé obrázky, celé zvukové soubory, 583 00:26:24,619 --> 00:26:25,160 a podobně. 584 00:26:25,160 --> 00:26:28,362 Proto musíme upřesnit, co typ naší proměnné je. 585 00:26:28,362 --> 00:26:31,570 A konvencí budu volat mé variabilní to jen proto, že je stručné, 586 00:26:31,570 --> 00:26:33,510 a s znamená řetězec. 587 00:26:33,510 --> 00:26:36,400 >> A pak budu ukládat uvnitř této proměnné, 588 00:26:36,400 --> 00:26:39,570 Stejně jako u Scratch při použití set bloku, 589 00:26:39,570 --> 00:26:41,950 Budu používat Operátor přiřazení v C, 590 00:26:41,950 --> 00:26:45,290 což dost dobře je rovna podepsat, ale rovnítko to dělá. 591 00:26:45,290 --> 00:26:53,220 Pohybuje se něco z pravé strany do levá strana výrazu. 592 00:26:53,220 --> 00:26:57,170 Takže to, co jsem udělal, aby bylo jasné, v linka pět, je já jsem deklaroval proměnnou. 593 00:26:57,170 --> 00:27:01,284 Řekl jsem počítač, dej mi paměť pro proměnnou, říkají to, 594 00:27:01,284 --> 00:27:03,950 a vědět předem, že budu k uvedení řetězec v něm. 595 00:27:03,950 --> 00:27:05,950 A řetězec je jen posloupnost znaků. 596 00:27:05,950 --> 00:27:09,190 Je to slovo, nebo fráze, nebo bod, ale je to posloupnost znaků. 597 00:27:09,190 --> 00:27:10,610 Není to čísla. 598 00:27:10,610 --> 00:27:13,800 Co string mám to bude uvedení do této proměnné? 599 00:27:13,800 --> 00:27:16,185 No, zřejmě citovat konec citátu, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Nyní Všimněte si vzor, ​​který je nově vznikající. 601 00:27:17,810 --> 00:27:19,260 K dispozici je levá ruka výraz. 602 00:27:19,260 --> 00:27:21,810 Je tu pravá ruka výraz, odděleny rovnítkem. 603 00:27:21,810 --> 00:27:24,390 A stačí se hádat, pokud neznámé nicméně, 604 00:27:24,390 --> 00:27:27,430 s tím, co středník je dělá. 605 00:27:27,430 --> 00:27:28,865 Co to pravděpodobně dělá pro nás? 606 00:27:28,865 --> 00:27:29,365 Jo? 607 00:27:29,365 --> 00:27:29,840 >> Diváků: [Neslyšitelné] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Jo. 609 00:27:29,980 --> 00:27:31,170 Je to jen o zastavení linky. 610 00:27:31,170 --> 00:27:31,669 Je to tak? 611 00:27:31,669 --> 00:27:34,260 Počítače chtějí být bez obalu Řekl doslova, co má dělat. 612 00:27:34,260 --> 00:27:36,343 Stejně jako arašídové máslo a želé sendvič příklad, 613 00:27:36,343 --> 00:27:39,360 pokud nezadáte přesně to, co máte v úmyslu, 614 00:27:39,360 --> 00:27:42,190 to by mohlo být ponechána na úsudku nebo chybou. 615 00:27:42,190 --> 00:27:44,890 Středník prostředky, to je pro tento příkaz. 616 00:27:44,890 --> 00:27:48,310 Je to být mimořádně přesné, a je to velmi jednoduchá věc, odejít pryč. 617 00:27:48,310 --> 00:27:52,240 Takže teď tento program se nezdá se chová jinak, než já 618 00:27:52,240 --> 00:27:53,500 aby bylo více dynamické. 619 00:27:53,500 --> 00:27:57,107 Takže spíše než tvrdě mohl můj vlastní jméno, dovolte mi, abych dal hodnotu zástupný. 620 00:27:57,107 --> 00:28:00,190 A ukázalo se, že, a já vím, že to od mít, přečtěte si dokumentaci, 621 00:28:00,190 --> 00:28:04,080 a použili funkci léta, že printf byl navržen tak, aby dynamický. 622 00:28:04,080 --> 00:28:07,510 Nemusíte znát předem jaká slova chcete dát v něm. 623 00:28:07,510 --> 00:28:11,290 Místo toho můžete mít symbol, jako procent s, což 624 00:28:11,290 --> 00:28:15,500 se chystá říct, počítač, dát řetězec zde. 625 00:28:15,500 --> 00:28:17,740 >> Jaké řetězec chceme tam dát? 626 00:28:17,740 --> 00:28:22,430 Will Ukazuje se, že mezi nimi závorky, které pamatují, vymezit 627 00:28:22,430 --> 00:28:28,020 vstup do funkce, pokud máte oddělených čárkou seznam věcí, které zde, 628 00:28:28,020 --> 00:28:31,790 jsme vlastně předat násobku vstupy do funkce. 629 00:28:31,790 --> 00:28:33,901 Takže stejně jako nějaký Scratch bloky, možná ne 630 00:28:33,901 --> 00:28:36,150 hráli s nimi Vaše projekty ještě, nebo vůbec, 631 00:28:36,150 --> 00:28:38,250 Stírací některé bloky mají dva vstupy. 632 00:28:38,250 --> 00:28:41,220 Dvě bílé krabice můžete zadávat čísla nebo slova do. 633 00:28:41,220 --> 00:28:45,210 Takže nemá C má funkce, jako je printf, které může trvat dva vstupy. 634 00:28:45,210 --> 00:28:48,050 A opět, to čárka je oddělit je. 635 00:28:48,050 --> 00:28:51,070 Takže v angličtině, i když znovu jste nikdy předtím naprogramován, 636 00:28:51,070 --> 00:28:55,320 se tím, že logika printf je funkce, trvá dva vstupy, z nichž jedna 637 00:28:55,320 --> 00:28:58,810 je zástupný symbol, co byste doufat, printf bude dělat s tímto vstupem? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Bude to pozdravit Hannah, doufejme. 640 00:29:03,220 --> 00:29:05,274 Takže to udělat, musíme ji uložit. 641 00:29:05,274 --> 00:29:06,190 Jdu oddálit. 642 00:29:06,190 --> 00:29:10,701 Chystám se jít sem dolů a říkají, aby ahoj vstoupit. 643 00:29:10,701 --> 00:29:11,200 Aha. 644 00:29:11,200 --> 00:29:14,830 Něco je špatně, a vlastně je to docela zdrcující. 645 00:29:14,830 --> 00:29:18,400 Mám šest řádky kódu a jako 12 řádků chyb. 646 00:29:18,400 --> 00:29:22,120 Takže, těšíme se na to. 647 00:29:22,120 --> 00:29:24,260 Takže to, co se tady děje? 648 00:29:24,260 --> 00:29:27,370 Takže to nejlepší pravidlo platí, zvláště když začínáte ven, 649 00:29:27,370 --> 00:29:29,370 nenechte se zmást Věci na dně. 650 00:29:29,370 --> 00:29:31,220 Ve skutečnosti jsem velmi uváženě jen rolovat nahoru 651 00:29:31,220 --> 00:29:33,930 proto, že velmi často, je počítač není všechno, že jasné z přístroje. 652 00:29:33,930 --> 00:29:35,054 Bude to zmást. 653 00:29:35,054 --> 00:29:37,220 Považuje-li to jedna věc, která nerozumí, 654 00:29:37,220 --> 00:29:40,030 to by mohlo splést ostatní řádky kódu jako nesprávné, 655 00:29:40,030 --> 00:29:41,649 i když jsou naprosto v pořádku. 656 00:29:41,649 --> 00:29:43,940 Takže chcete vždy pracovat nahoru dolů chyby. 657 00:29:43,940 --> 00:29:47,850 A sice to je Super Arcane v tuto chvíli. 658 00:29:47,850 --> 00:29:50,830 >> Chyba, využití nehlášené Řetězec identifikátoru. 659 00:29:50,830 --> 00:29:52,130 Už jsem na mysli standard v? 660 00:29:52,130 --> 00:29:53,720 Ne, myslel jsem řetězec. 661 00:29:53,720 --> 00:29:55,830 A je to ukázal na, možná je to překlep. 662 00:29:55,830 --> 00:30:00,570 Něco jako, kontrolu pravopisu v velmi geeky způsob, ale důvod, proč tady, 663 00:30:00,570 --> 00:30:02,840 a budete vědět to jen praxí, je 664 00:30:02,840 --> 00:30:06,390 že se ukáže, že řetězec neexistuje v C. Ve skutečnosti, C 665 00:30:06,390 --> 00:30:08,820 je zvláště starý jazyk, a to je velmi nízké úrovni, 666 00:30:08,820 --> 00:30:11,361 a to není mnoho funkcí které by vás mohly vyrostli 667 00:30:11,361 --> 00:30:14,620 , jestliže máte ve skutečnosti, naprogramované v Javě, jak někteří z vás, 668 00:30:14,620 --> 00:30:16,980 ale můžete učit nové věci. 669 00:30:16,980 --> 00:30:20,900 A skutečně, jsme udělali tuto CS50, i když na konci semestru, 670 00:30:20,900 --> 00:30:23,512 všech těchto koleček bude muset být vzlétlo, 671 00:30:23,512 --> 00:30:25,220 co děláme v těchto Prvních pár týdnů 672 00:30:25,220 --> 00:30:29,830 zpočátku je máme také zahrnout CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Což je soubor záhlaví. 674 00:30:31,230 --> 00:30:32,440 Více o tom v budoucnosti. 675 00:30:32,440 --> 00:30:36,430 >> Je to soubor, který obsahuje funkce že jsme napsali pro vás. 676 00:30:36,430 --> 00:30:39,180 A mezi těmito funkcemi je Funkce pro získání vstupu 677 00:30:39,180 --> 00:30:43,520 od uživatele, jako struny, a čísla a reálná čísla, a další. 678 00:30:43,520 --> 00:30:45,550 Ale také má několik zkratek. 679 00:30:45,550 --> 00:30:48,200 Definuje logickou hodnotu jako typ dat. 680 00:30:48,200 --> 00:30:50,340 C nemá true nebo false. 681 00:30:50,340 --> 00:30:53,880 Ale můžeme dát pojmu true nebo false prostřednictvím této knihovny. 682 00:30:53,880 --> 00:30:57,670 A to také nemá řetězec postavený v roce dokud tento řádek. 683 00:30:57,670 --> 00:31:01,090 Takže tento řádek kódu říká, kompilátor, hej, Clang, podívej 684 00:31:01,090 --> 00:31:03,570 v tomto souboru pro celek banda kódu, který CS50 685 00:31:03,570 --> 00:31:06,330 napsal tak, aby kohokoliv, kdo používá tento soubor 686 00:31:06,330 --> 00:31:09,330 může vzít za samozřejmost rysy, které jste přidali. 687 00:31:09,330 --> 00:31:11,220 >> Takže teď nech mě jít napřed a vyčistit obrazovku, 688 00:31:11,220 --> 00:31:14,178 a je-li zvědaví Já jen říkám, kontrolu l pokaždé vyčistit obrazovku, 689 00:31:14,178 --> 00:31:15,500 nebo můžete zadat jasné. 690 00:31:15,500 --> 00:31:19,220 Já jsem prostě jít do toho pusťte a teď typ dělat ahoj, a všechno je v pořádku. 691 00:31:19,220 --> 00:31:22,550 Stále tajemné výstup, ale není to chybná zpráva. 692 00:31:22,550 --> 00:31:28,300 Teď, když mám dot lomítko ahoj, a jako stranou, tečka lomítkem je neznámá pro většinu. 693 00:31:28,300 --> 00:31:30,430 Znamená to jen, dot prostředky aktuální adresář. 694 00:31:30,430 --> 00:31:33,120 Takže pokud jste někdy používali DOS, nebo Linux, Unix nebo 695 00:31:33,120 --> 00:31:35,410 jsi mohl udělat něco jako jsou CD dot dot, kde 696 00:31:35,410 --> 00:31:39,220 dot dot znamená jít zpět v čas, nebo jít zpět, nebo výš 697 00:31:39,220 --> 00:31:40,370 v adresáři. 698 00:31:40,370 --> 00:31:43,090 Dot prostě znamená podívat aktuální adresář. 699 00:31:43,090 --> 00:31:45,670 Chci ahoj, což je tady. 700 00:31:45,670 --> 00:31:47,750 A skutečně, teď říká ahoj Hannah. 701 00:31:47,750 --> 00:31:51,120 A když jsem to zase změnit Marii, překompilovat 702 00:31:51,120 --> 00:31:55,650 bylo by Dobrý den, dot lomítko Dobrý den, program se neustále mění. 703 00:31:55,650 --> 00:31:58,060 >> Ale to je ještě pěkně hloupé programu. 704 00:31:58,060 --> 00:32:00,972 Pokud chci, aby loď tento program, nebo dát do přátel 705 00:32:00,972 --> 00:32:03,430 nebo to dát Maria nebo Hannah když na to přijde, je to v pořádku. 706 00:32:03,430 --> 00:32:07,300 Mohu přizpůsobit ji pro oba, ale to nikdy nebude dynamický. 707 00:32:07,300 --> 00:32:10,870 Nemohou to změnit, jakmile je to zkompilovaný dolů do těch nul a jedniček. 708 00:32:10,870 --> 00:32:12,350 Takže to, co jsme udělali něco chytřejší? 709 00:32:12,350 --> 00:32:17,100 Co kdyby místo hard-kódování do programu jméno této osoby, 710 00:32:17,100 --> 00:32:20,890 Co když jsme jen dostat řetězec na požádání? 711 00:32:20,890 --> 00:32:22,430 >> Takže jinými slovy, nech mě to udělat. 712 00:32:22,430 --> 00:32:24,030 Chystám se překompilovat tento program. 713 00:32:24,030 --> 00:32:25,710 A dovolte mi přiblížit na dně teď. 714 00:32:25,710 --> 00:32:29,920 Udělat ahoj tečka lomítko ahoj. 715 00:32:29,920 --> 00:32:31,710 Nyní se nic neděje. 716 00:32:31,710 --> 00:32:35,860 Můžeme získat rychlý dobrovolníka aby se něco stalo? 717 00:32:35,860 --> 00:32:36,360 Pojď nahoru. 718 00:32:36,360 --> 00:32:37,020 Jak se jmenuješ? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Malan: Pacho? 721 00:32:38,361 --> 00:32:39,609 Pojď nahoru. 722 00:32:39,609 --> 00:32:42,150 Jakmile se dostanete sem, je to bude velmi nezaujatý, 723 00:32:42,150 --> 00:32:44,060 ale je to mnohem zajímavější než já napsáním. 724 00:32:44,060 --> 00:32:49,007 Chcete-li pokračovat a napište jméno, udělal jsem tento program právě pro vás. 725 00:32:49,007 --> 00:32:49,840 Stačí zadat své jméno. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Wonderful. 729 00:32:54,489 --> 00:32:55,780 Dobře, děkuji vám. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Velice vám děkuji. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: OK. 732 00:32:57,636 --> 00:32:59,028 >> [APPLAUSE] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> To bylo velmi laskavý. 735 00:33:01,840 --> 00:33:03,145 Tady máš. 736 00:33:03,145 --> 00:33:03,770 Co budeme dělat? 737 00:33:03,770 --> 00:33:05,930 Tak jsme konečně, alespoň, dělal tento program dynamický. 738 00:33:05,930 --> 00:33:08,400 Teď je to ještě určitě podle návrhu nezaujatý, 739 00:33:08,400 --> 00:33:11,480 ale konečně máme schopnost Nyní psát kód v předstihu, hodně 740 00:33:11,480 --> 00:33:13,770 jako autoři printf, a pak dynamicky 741 00:33:13,770 --> 00:33:17,550 ADAPT založený na vstupu jsme předal, a to buď programátorem, 742 00:33:17,550 --> 00:33:20,610 nebo u člověka, který je vlastně interakci s programem. 743 00:33:20,610 --> 00:33:22,990 Takže teď pojďme skutečně snaží udělat několik dalších konstrukty 744 00:33:22,990 --> 00:33:26,625 a uvidíme, jestli nemůžeme dělat programy sami sofistikovanější. 745 00:33:26,625 --> 00:33:29,250 Tak pojďme do toho a místo psaní této úplně od začátku, 746 00:33:29,250 --> 00:33:31,540 Chystám se jít do dnešní zdrojový kód, a to vše 747 00:33:31,540 --> 00:33:34,290 je k dispozici na kurz je webové stránky, a můžete jej přetáhněte 748 00:33:34,290 --> 00:33:36,590 do svého prostředí přijde v pátek jednou problému 749 00:33:36,590 --> 00:33:38,506 set 1 vám dává instrukce, nebo byste mohli 750 00:33:38,506 --> 00:33:41,200 to na příkazovém řádku jako dobře, ale ještě přijít v p set 1. 751 00:33:41,200 --> 00:33:44,940 >> Podívejme se, co je v tomto programu sem volal, zmije dot c. 752 00:33:44,940 --> 00:33:47,970 Teď už jsem poznamenal, to, ale co je nového? 753 00:33:47,970 --> 00:33:51,230 Na první pohled, co linka kódu je naprosto nového? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Pravděpodobně ne zásadně neznámé teď. 756 00:33:56,780 --> 00:33:58,417 >> Diváků: [Neslyšitelné] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Jo, takže int x rovná se dostat n. 758 00:34:00,250 --> 00:34:03,760 Nikdy jsme neviděli nic z toho dříve, ale int je pravděpodobně 759 00:34:03,760 --> 00:34:08,179 symbol pro jaký druh variabilní, [? z?] celé číslo. 760 00:34:08,179 --> 00:34:09,040 Takže int na celé číslo. 761 00:34:09,040 --> 00:34:11,420 Je to prostě být více stručné. x je jen libovolný. 762 00:34:11,420 --> 00:34:13,920 x a y a z jsou stále docela rozumné pro čísla, 763 00:34:13,920 --> 00:34:16,790 ale obecně my budeme používat slova jednou Naše programy získat složitější. 764 00:34:16,790 --> 00:34:18,940 Get int, samozřejmě, podobně jako get řetězec, 765 00:34:18,940 --> 00:34:21,629 pravděpodobně dostane int od uživatele, 766 00:34:21,629 --> 00:34:23,670 a pak budeme udělat to samé s y. 767 00:34:23,670 --> 00:34:27,610 A zdá se, že i když to Poslední řádek, 24, vypadá složitější, 768 00:34:27,610 --> 00:34:32,679 to bude říkat součet tohoto a že to je další věc. 769 00:34:32,679 --> 00:34:35,840 >> A Oznámení procent i pravděpodobně znamená co? 770 00:34:35,840 --> 00:34:38,190 Jakou roli hraje procent i zdánlivě sloužit? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Je to jen zástupné. 773 00:34:41,719 --> 00:34:42,219 Je to tak? 774 00:34:42,219 --> 00:34:45,149 Procento s byl pro řetězec, procent i je na celé číslo. 775 00:34:45,149 --> 00:34:47,690 Tam to bude procent f pro plovoucí bodovou hodnotu, která 776 00:34:47,690 --> 00:34:49,273 je jen číslo s desetinnou čárkou. 777 00:34:49,273 --> 00:34:50,590 Jinými slovy, je reálné číslo. 778 00:34:50,590 --> 00:34:55,270 Takže pojďme se vlastně tato kompilace programovat velice rychle a dělat, aby zmije. 779 00:34:55,270 --> 00:34:57,962 Jejda. 780 00:34:57,962 --> 00:34:58,670 Dobrá příležitost. 781 00:34:58,670 --> 00:35:02,970 Takže tady si všimnout, celou tu dobu své uživatelské jmenovat je tento účet jharvard. 782 00:35:02,970 --> 00:35:06,620 Jsem CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 A teď tady modrá, je zmínka, ale z prostředí, kde jsem. 784 00:35:11,030 --> 00:35:16,050 A ve skutečnosti, když jsem zoom až na vrchol Zde si všimněte, že mám IDE50 785 00:35:16,050 --> 00:35:19,490 a vidím toto slovo, pokud jste druh otočit hlavu na stranu, pracovní prostor. 786 00:35:19,490 --> 00:35:23,890 Stručně řečeno, skutečnost, že Vidím tilda lomítko pracovní prostor 787 00:35:23,890 --> 00:35:26,910 Znamená to, že v tomto textu na základě příkazu prostředí, 788 00:35:26,910 --> 00:35:32,300 Já jsem do textového ekvivalentu Toto grafické složky sem. 789 00:35:32,300 --> 00:35:35,730 Takže když jsem si dot lomítko zmije, je to říkat žádné pravidlo 790 00:35:35,730 --> 00:35:37,372 aby cílové výbavu zastavit. 791 00:35:37,372 --> 00:35:39,830 Já nevím, co to znamená, ale je to špatné pro nějakého důvodu. 792 00:35:39,830 --> 00:35:43,310 Žádný takový soubor nebo adresář je ještě jasnější. 793 00:35:43,310 --> 00:35:45,670 Kde je to tedy? 794 00:35:45,670 --> 00:35:47,820 O tom, kde jsem klikl na bázi otevřete soubor dříve. 795 00:35:47,820 --> 00:35:49,442 Tam, kde to může být? 796 00:35:49,442 --> 00:35:52,050 >> Je to pravděpodobně v zdroji 1 W, na středu, 797 00:35:52,050 --> 00:35:53,960 a já to vidím, opravdu, pokud otevřu, že až. 798 00:35:53,960 --> 00:35:57,220 Tam je sčítačka dot c, ale v Tento text-based prostředí, 799 00:35:57,220 --> 00:35:59,380 Znovu musím být super explicitní. 800 00:35:59,380 --> 00:36:03,950 Pokud chci změnit adresáře do source jednu Středa, musím psát, 801 00:36:03,950 --> 00:36:07,210 cd prostor zdroj jedním Středa vstoupit a teď 802 00:36:07,210 --> 00:36:09,810 moje výzva změny dej mi vizuální podnět, který 803 00:36:09,810 --> 00:36:12,330 Jsem opravdu, jinde v mém prostředí, 804 00:36:12,330 --> 00:36:15,710 ale teď můžu dělat, aby zmije, zdá se, že práce, 805 00:36:15,710 --> 00:36:18,190 dot lomítko výbavu, dej mi celé číslo. 806 00:36:18,190 --> 00:36:19,080 One. 807 00:36:19,080 --> 00:36:20,070 Dva. 808 00:36:20,070 --> 00:36:21,630 Součet jedním a dva jsou tři. 809 00:36:21,630 --> 00:36:24,140 Ale když nebudu spolupracovat, pojďme se podívat, co si dělá int. 810 00:36:24,140 --> 00:36:25,200 Dej mi celé číslo. 811 00:36:25,200 --> 00:36:26,590 Ne. 812 00:36:26,590 --> 00:36:27,350 Opakovat. 813 00:36:27,350 --> 00:36:29,060 DOBŘE. 814 00:36:29,060 --> 00:36:30,520 Dobře. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Dobře. 818 00:36:33,010 --> 00:36:34,055 Takže to nakonec spolupracuje. 819 00:36:34,055 --> 00:36:36,430 A to je některé z funkce, které tyto funkce 820 00:36:36,430 --> 00:36:37,760 mohou mít postavena v roce pro vás. 821 00:36:37,760 --> 00:36:43,330 >> Tak uvnitř provádění z dostat int, co programování 822 00:36:43,330 --> 00:36:47,990 postavit z minulého týdne je pravděpodobně v tam nutit toto chování opakování, 823 00:36:47,990 --> 00:36:49,962 opakovat, opakovat? 824 00:36:49,962 --> 00:36:51,670 Jo, je to asi nějaký druh smyčky. 825 00:36:51,670 --> 00:36:54,160 Bude to vypadat syntakticky odlišné od bloků Scratch je, 826 00:36:54,160 --> 00:36:55,880 ale to je opravdu co je uvnitř souboru. 827 00:36:55,880 --> 00:36:58,505 A za pár týdnů potkáme ve skutečnosti se podívat na knihovně CS50 828 00:36:58,505 --> 00:37:02,000 pokud jde o to, co je uvnitř, ale je tu smyčky uložení přesně to. 829 00:37:02,000 --> 00:37:04,840 >> Pojďme si zahrát malou hloupou Hra zde s tímto souborem. 830 00:37:04,840 --> 00:37:06,550 Stav nula tečka c. 831 00:37:06,550 --> 00:37:08,960 Jsme jen tak všeobecně začne počítat od nuly. 832 00:37:08,960 --> 00:37:11,220 A pořád rolování minulost některé věci v horní části. 833 00:37:11,220 --> 00:37:15,390 V modré tady, ohraničená se všemi z těchto hvězd a lomítek, 834 00:37:15,390 --> 00:37:17,310 ty z vás, kteří programovat předtím, co to je? 835 00:37:17,310 --> 00:37:18,690 Proč se máme držet skákání přes to? 836 00:37:18,690 --> 00:37:19,110 Cože? 837 00:37:19,110 --> 00:37:19,490 >> Diváků: Je to comment. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Jo. 839 00:37:19,800 --> 00:37:20,633 Je to jen poznámka. 840 00:37:20,633 --> 00:37:24,160 Toto je komentář pro lidi číst, která v našem případě, 841 00:37:24,160 --> 00:37:27,120 nám říká, co název souboru je, kdo to napsal, a co dělá, 842 00:37:27,120 --> 00:37:28,610 takže nemáte číst prostřednictvím kódu 843 00:37:28,610 --> 00:37:30,110 vědět, co tento soubor je vše kolem. 844 00:37:30,110 --> 00:37:33,110 Je to jen popis, ale funkčně je to irelevantní. 845 00:37:33,110 --> 00:37:35,930 A já si dokonce odstranit z můj soubor a nemá žádný vliv. 846 00:37:35,930 --> 00:37:38,740 Tyto linky jsou tyto šťavnaté První dvě tady a teď. 847 00:37:38,740 --> 00:37:41,405 int main void je ekvivalentní našeho když zelenou vlajkou klepnutí, 848 00:37:41,405 --> 00:37:44,030 takže budeme nechat to být pro dnešek, a vrátíme se, 849 00:37:44,030 --> 00:37:46,940 Nakonec, pokud jde o to, co int a neplatné jsou, ale nyní, 850 00:37:46,940 --> 00:37:49,500 Všimněte si, co jsem udělal i zde, můžete také, 851 00:37:49,500 --> 00:37:51,736 pokud máte v řadě komentovat, pokud máte 852 00:37:51,736 --> 00:37:54,670 myšlenka chcete sdílet o konkrétní řádek kódu, 853 00:37:54,670 --> 00:37:58,910 konvence v C je udělat lomítko lomítko, a pak několik stručné slova 854 00:37:58,910 --> 00:38:01,500 ne plný trest, obecně není bod, 855 00:38:01,500 --> 00:38:05,310 že právě vysvětluje na vás, nebo vaše TF nebo jiné čtečky nebo kolegy, 856 00:38:05,310 --> 00:38:06,990 co váš kód dělá. 857 00:38:06,990 --> 00:38:10,150 Takže spíše než se dívat na to a vyvodit z linek 858 00:38:10,150 --> 00:38:12,550 devět a 10, co je to dělá, v souladu osmi 859 00:38:12,550 --> 00:38:14,945 Jen jsem dát komentář k požádejte uživatele o celé číslo, 860 00:38:14,945 --> 00:38:17,820 pak nemám myslet příliš tvrdý o čem linky devět a 10 jsou. 861 00:38:17,820 --> 00:38:19,720 Já jen vím, že to je to, co kolektivně dělají. 862 00:38:19,720 --> 00:38:20,460 >> Jak na to? 863 00:38:20,460 --> 00:38:22,060 No, tady je to výzva. 864 00:38:22,060 --> 00:38:23,610 Tady je dostat na int. 865 00:38:23,610 --> 00:38:25,984 A na základě předchozí chování, vypadá to, že get int 866 00:38:25,984 --> 00:38:29,080 je dost chytrý, aby se ujistil, že lidské spolupracuje a dává ho 867 00:38:29,080 --> 00:38:30,090 celé číslo. 868 00:38:30,090 --> 00:38:32,270 Ale teď to vidíme. 869 00:38:32,270 --> 00:38:33,740 A to je připomínající Scratch. 870 00:38:33,740 --> 00:38:36,140 Já jsem tvrdil, že jsem analyzovat vstup uživatele, 871 00:38:36,140 --> 00:38:39,050 ale poněkud nepřesně. 872 00:38:39,050 --> 00:38:43,200 A to zřejmě v C je, jak vyjadřujeme if jinde, pobočky, 873 00:38:43,200 --> 00:38:46,320 vidlice na silnici, ale já říkají poněkud nepřesně. 874 00:38:46,320 --> 00:38:50,470 Co je to chyba v tomto programu? 875 00:38:50,470 --> 00:38:51,610 O další záda? 876 00:38:51,610 --> 00:38:52,223 Jo. 877 00:38:52,223 --> 00:38:53,150 >> Diváků: [neslyšitelný] nulu. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Jo. 879 00:38:54,025 --> 00:38:57,630 Takže když jsem psát v nule, uvažujme přesně ten případ, nebo rohová případ, 880 00:38:57,630 --> 00:38:58,450 chcete-li. 881 00:38:58,450 --> 00:39:02,790 Takže když jsem psát v nule, což z Bloky se chystá zřejmě uchopit? 882 00:39:02,790 --> 00:39:04,660 If nebo jinak? 883 00:39:04,660 --> 00:39:07,340 Část else, a to bude říkat, sis vybrala záporné číslo. 884 00:39:07,340 --> 00:39:10,476 A skutečně, nula se nepředpokládá být pozitivní nebo negativní, 885 00:39:10,476 --> 00:39:11,850 a tak, že by byl chybně. 886 00:39:11,850 --> 00:39:12,930 To by byla chyba. 887 00:39:12,930 --> 00:39:14,580 Tak jak můžeme opravit? 888 00:39:14,580 --> 00:39:16,360 Někdo, kdo nikdy předtím naprogramované? 889 00:39:16,360 --> 00:39:16,570 Chceš-- 890 00:39:16,570 --> 00:39:17,480 >> Diváků: [Neslyšitelné] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: Vyjetí? 892 00:39:17,990 --> 00:39:18,570 >> Diváků: [Neslyšitelné] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: Ach, vy máte? 894 00:39:18,930 --> 00:39:20,350 Někdo, kdo nikdy předtím naprogramován. 895 00:39:20,350 --> 00:39:21,750 Chcete si vyzkoušet si ruku na to, v červené košili? 896 00:39:21,750 --> 00:39:22,600 Pojď nahoru. 897 00:39:22,600 --> 00:39:25,320 Ach jo, no tak se, pokud vám to nevadí. 898 00:39:25,320 --> 00:39:27,586 Takže nikdy naprogramování předtím, Jak se jmenujete? 899 00:39:27,586 --> 00:39:28,210 Lauren: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Malan: Lauren, v pořádku. 901 00:39:29,626 --> 00:39:31,150 Takže opravit tuto chybu pro nás. 902 00:39:31,150 --> 00:39:35,070 Vy jste neviděl C, pravděpodobně, a pravděpodobně žádný jiný jazyk. 903 00:39:35,070 --> 00:39:38,380 Takže opravit tento program pro nás. 904 00:39:38,380 --> 00:39:39,100 Nice to meet ya. 905 00:39:39,100 --> 00:39:39,615 Žádný tlak. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Jo. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Ale opět, pokud je to hazard půjde podle plánu, 909 00:39:46,270 --> 00:39:48,350 stánek s jídlem zde bude být, prostě opět na začátek 910 00:39:48,350 --> 00:39:51,080 všímat vzory a vyvodit z existující syntaxe 911 00:39:51,080 --> 00:39:55,420 jak jinak byste mohli vyjádřit sami, žádná slovní hříčka určena, aby 912 00:39:55,420 --> 00:39:58,410 zachytit některé další scénář. 913 00:39:58,410 --> 00:39:59,603 Takže říkáme else if. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, dobře. 916 00:40:05,230 --> 00:40:09,120 A všimněte si s CS50 IDE, a frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 je zkratka pro integrované Vývojové prostředí. 918 00:40:11,110 --> 00:40:14,110 Je to jen fantazie způsob, jak říkat program, který vám pomůže program. 919 00:40:14,110 --> 00:40:16,779 To dělá věci, jako je uživatelsky přívětivý když zadáte jeden závorky, 920 00:40:16,779 --> 00:40:18,320 To vám dává automaticky druhé. 921 00:40:18,320 --> 00:40:20,760 Předpoklad je, že jste nakonec bude chtít psát, že, 922 00:40:20,760 --> 00:40:22,400 a to také dělá to s uvozovkami. 923 00:40:22,400 --> 00:40:24,190 >> Takže jsem rád linka 23. 924 00:40:24,190 --> 00:40:26,400 99% tam na cestě. 925 00:40:26,400 --> 00:40:29,920 Někdo chce přizvukovat špičkou? 926 00:40:29,920 --> 00:40:31,420 Slyšel jsem, že středník z publika. 927 00:40:31,420 --> 00:40:32,080 Dobře. 928 00:40:32,080 --> 00:40:33,260 Tak, že dokončí to. 929 00:40:33,260 --> 00:40:37,930 A teď, jen jsem trochu zděšení se řádku 21. 930 00:40:37,930 --> 00:40:41,370 Jak chceme vyjádřit to? 931 00:40:41,370 --> 00:40:43,370 Jakou otázku chceme se zeptat, co myslíte? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Takže předtím jsme se zeptali na otázku, pokud n je větší než nula, to udělat. 934 00:40:50,330 --> 00:40:51,870 Else, to udělat. 935 00:40:51,870 --> 00:40:54,317 Proto musíme zvolit na něco zeptat zde. 936 00:40:54,317 --> 00:40:55,192 Diváků: [Neslyšitelné] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Dobrý. 938 00:40:56,530 --> 00:40:58,290 Takže v případě, n se rovná nule. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Výborně. 941 00:41:02,100 --> 00:41:03,080 Takže pojďme pozastavit zde. 942 00:41:03,080 --> 00:41:04,850 Děkuji moc za Vzdorovat toto. 943 00:41:04,850 --> 00:41:10,890 Dovolte mi, abych vám trochu zasloužený stres míček, snad. 944 00:41:10,890 --> 00:41:11,900 Tak, že jsme skoro tam. 945 00:41:11,900 --> 00:41:14,790 Ve skutečnosti, Lauren, pokud nemáte mysl, dovolte mi, abych jednu štípnout tady, 946 00:41:14,790 --> 00:41:17,850 jen aby byly v souladu is to, co jsme viděli v Scratch, co 947 00:41:17,850 --> 00:41:21,080 dělat, co chci dělat s linkami 21 a 24, jen opět založeno 948 00:41:21,080 --> 00:41:23,290 o tom, jak jsme to udělali v Scratch, snad? 949 00:41:23,290 --> 00:41:24,230 >> Diváků: Pohyb nahoru. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Jo, přesuňte jej nahoru. 951 00:41:25,605 --> 00:41:30,260 Takže stav jinak, třetí, nebo čtvrtý, nebo pátý, nebo konečné větev, 952 00:41:30,260 --> 00:41:34,100 by měl skutečně přijít později, A to je jen konvencí, 953 00:41:34,100 --> 00:41:36,047 jen proto, že chcete-li. 954 00:41:36,047 --> 00:41:37,380 Tak jsem si třeba, aby se Tento trik. 955 00:41:37,380 --> 00:41:39,660 A já potřebuji, aby můj složená závorka zpátky. 956 00:41:39,660 --> 00:41:42,700 A teď, bude tento program zkompilovat. 957 00:41:42,700 --> 00:41:46,140 Jsme tak blízko, ale je tu velmi, velmi jemné chyba. 958 00:41:46,140 --> 00:41:47,200 Podívejme se, co se stane. 959 00:41:47,200 --> 00:41:49,660 >> Nejprve mi dovolte, abych do toho pusťte a oddálení. 960 00:41:49,660 --> 00:41:53,405 Chystám se jít dopředu a zadejte vytvořit stav nula. 961 00:41:53,405 --> 00:41:55,070 Oh, lhal jsem. 962 00:41:55,070 --> 00:41:58,760 Nyní je kompilátor vlastně docela chytrý. 963 00:41:58,760 --> 00:42:00,950 A nemám opravdu pochopit, to je chybová zpráva. 964 00:42:00,950 --> 00:42:04,310 Použití výsledek přiřazení jako stav bez závorek, 965 00:42:04,310 --> 00:42:05,740 je zřejmě špatné. 966 00:42:05,740 --> 00:42:07,100 Ale co to znamená? 967 00:42:07,100 --> 00:42:10,860 >> Tak ještě jednou, hledá vzory V kódu, který jsme viděli dříve, 968 00:42:10,860 --> 00:42:16,640 co je linka 17 ve skutečnosti dělá, i když Lauren mírně určeny 969 00:42:16,640 --> 00:42:18,790 jinak? 970 00:42:18,790 --> 00:42:19,290 Jo. 971 00:42:19,290 --> 00:42:21,565 >> Diváků: [Neslyšitelné] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Jo. 973 00:42:22,440 --> 00:42:26,610 Takže nezapomeňte rovnítko, zřejmě jak jsme používali to dříve, není rovná. 974 00:42:26,610 --> 00:42:29,240 Jeho úkol, zprava doleva. 975 00:42:29,240 --> 00:42:33,810 Takže řádek 17 v okamžiku, kdy je stav, a to je 976 00:42:33,810 --> 00:42:37,890 spuštění kódu v závorkách, ale když ten kód spustí, 977 00:42:37,890 --> 00:42:42,140 co se děje na hodnotu nula? 978 00:42:42,140 --> 00:42:45,250 To, co se děje na hodnotu n? 979 00:42:45,250 --> 00:42:46,810 Stát se nule. 980 00:42:46,810 --> 00:42:50,520 Takže pokud n je stále nula, a znovu, podle minulého týdne, 981 00:42:50,520 --> 00:42:54,690 jsme se obecně říci, že nula je falešný a jeden je pravda, 982 00:42:54,690 --> 00:42:57,410 nebo ano, je jeden a není je nula. 983 00:42:57,410 --> 00:42:59,590 Tak true a false, jedno a 0. 984 00:42:59,590 --> 00:43:06,090 Pokud je n od řádku 17 je s ohledem na hodnotu 0, je nula pravda? 985 00:43:06,090 --> 00:43:06,590 Ne. 986 00:43:06,590 --> 00:43:08,280 Podle definice, nula je falešný. 987 00:43:08,280 --> 00:43:10,860 To je konvence, že jsme bude lpět na posun vpřed. 988 00:43:10,860 --> 00:43:17,320 Takže budou linky 18, 19 a 20 někdy se teď, logicky? 989 00:43:17,320 --> 00:43:18,320 Oni nemohou. 990 00:43:18,320 --> 00:43:21,640 Takže jsme se zeptali na otázku avšak ne zcela přesně, 991 00:43:21,640 --> 00:43:25,620 a nebudete vědět, pokud to není jste viděli to, řešení v C 992 00:43:25,620 --> 00:43:29,610 je, když chcete vyjádřit rovnost, říkáte rovná rovná. 993 00:43:29,610 --> 00:43:33,140 Takže rovnítko byl již vyčerpali postoupením, zprava doleva. 994 00:43:33,140 --> 00:43:35,110 Rovná se rovná znamená rovný s rovným. 995 00:43:35,110 --> 00:43:37,950 A pokud opravdu chcete svou mysl ohýbané, v JavaScriptu a PHP, 996 00:43:37,950 --> 00:43:40,490 tam je rovná rovná se rovná, což znamenat něco jiného dohromady, 997 00:43:40,490 --> 00:43:41,990 ale dostaneme se, že zanedlouho. 998 00:43:41,990 --> 00:43:45,760 >> Takže tohle je jednoduchý fix, ale uvědomit, super snadné dělat tuto chybu, 999 00:43:45,760 --> 00:43:48,700 a pak se divit a boj pro minuty, ne-li za hodinu, 1000 00:43:48,700 --> 00:43:51,490 Proč je můj kód není provádění, jak jsem v úmyslu? 1001 00:43:51,490 --> 00:43:54,140 Je to proto, že jste neřekl je to přesně to, co jste měl na mysli. 1002 00:43:54,140 --> 00:43:56,450 Tak to bylo téměř perfektní, a to bylo skvělé 1003 00:43:56,450 --> 00:44:00,760 že narazil na tyto dvě malé věci, protože teď když jsme je opravit, 1004 00:44:00,760 --> 00:44:06,240 a mám dělat Nula podmínky dot lomítko stav nula, 1005 00:44:06,240 --> 00:44:07,490 Chtěl bych celé číslo, prosím. 1006 00:44:07,490 --> 00:44:08,090 Uvidíme. 1007 00:44:08,090 --> 00:44:09,160 Ne. 1008 00:44:09,160 --> 00:44:10,740 Bude to mě donutit to udělat. 1009 00:44:10,740 --> 00:44:11,990 Tak 42. 1010 00:44:11,990 --> 00:44:13,590 Vybral jsem kladné číslo. 1011 00:44:13,590 --> 00:44:16,470 Takže teď jak to mám dokázat, tento program správně? 1012 00:44:16,470 --> 00:44:19,990 Pokud jste matematik, nemůžete Opravdu to dokázal metodou pokusu a omylu, 1013 00:44:19,990 --> 00:44:20,490 v pořádku? 1014 00:44:20,490 --> 00:44:23,180 Můžete nejen důkaz o příklad, ale přinejmenším 1015 00:44:23,180 --> 00:44:25,494 jako programátor nejsme bude snažit dokázat teď 1016 00:44:25,494 --> 00:44:27,660 , že je to ve skutečnosti správné, ale já měl asi 1017 00:44:27,660 --> 00:44:29,470 otestovat některé reprezentativní případy. 1018 00:44:29,470 --> 00:44:31,070 >> Testoval jsem 42. 1019 00:44:31,070 --> 00:44:33,030 Mohl bych vyzkoušet 43. 1020 00:44:33,030 --> 00:44:34,910 Mohl bych vyzkoušet 44. 1021 00:44:34,910 --> 00:44:35,640 Test 45. 1022 00:44:35,640 --> 00:44:36,140 Je to tak? 1023 00:44:36,140 --> 00:44:37,860 Ale já jsem se to mohlo opravdu dlouho dělat. 1024 00:44:37,860 --> 00:44:39,925 Jaká by měla být asi více zajímavé případy to zkusit? 1025 00:44:39,925 --> 00:44:41,050 Diváků: [neslyšitelný] nulu. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Takže nula. 1027 00:44:41,740 --> 00:44:42,297 Jistě. 1028 00:44:42,297 --> 00:44:44,880 A hodně, máme to tentokrát, díky novému kodexu Lauren. 1029 00:44:44,880 --> 00:44:46,213 Co je další dobrý případ to zkusit? 1030 00:44:46,213 --> 00:44:47,320 Diváků: negativní. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: negativní, a možná něco trochu větší, 1032 00:44:50,070 --> 00:44:52,617 takže možná negativní 42, ale obecně, pokud 1033 00:44:52,617 --> 00:44:54,450 testování vašich programů kupředu, ty jsi 1034 00:44:54,450 --> 00:44:56,325 bude chtít myslet k sobě, jako to, co 1035 00:44:56,325 --> 00:44:58,050 jsou základními různé případy. 1036 00:44:58,050 --> 00:45:01,720 A troufám si říci, negativní věci, pozitivní případ, a nula případ 1037 00:45:01,720 --> 00:45:03,365 do značné míry doplňuje tyto ven. 1038 00:45:03,365 --> 00:45:04,990 Pojďme se podívat na variantě tohoto ačkoli. 1039 00:45:04,990 --> 00:45:06,930 Podmínky on. 1040 00:45:06,930 --> 00:45:11,224 To je správné řešení tady, takže uvidíte dva a on-line, 1041 00:45:11,224 --> 00:45:13,390 pokud budete procházet návody, obecně 1042 00:45:13,390 --> 00:45:18,090 přírůstek těchto krocích, dokud dostanete přesně ten správný přístup. 1043 00:45:18,090 --> 00:45:20,070 Co kdybychom chtěli zeptat, dvě otázky najednou? 1044 00:45:20,070 --> 00:45:22,200 >> Dovolte mi, abych otevřít toto místo. 1045 00:45:22,200 --> 00:45:26,740 Non-switch, z důvodů, uvidíme jindy. 1046 00:45:26,740 --> 00:45:29,610 Co je nového syntakticky tady? 1047 00:45:29,610 --> 00:45:32,760 Já jsem v současné době hraní hry kde je počítač říká 1048 00:45:32,760 --> 00:45:35,550 mě, dej mi celé číslo mezi jedním a 10, 1049 00:45:35,550 --> 00:45:37,180 a pak jsem soudit vstup uživatele. 1050 00:45:37,180 --> 00:45:39,180 V angličtině, na základě kód, který najdete zde 1051 00:45:39,180 --> 00:45:41,530 v modrém, co se tento program dělá? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 Diváků: [Neslyšitelné] vybral velký nebo malý počet. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Jo. 1055 00:45:46,484 --> 00:45:49,450 Je to prostě rozhodování, zda Vybral jsem velký, nebo médium, 1056 00:45:49,450 --> 00:45:53,900 nebo malé množství na základě velmi libovolná definice malých, středních, 1057 00:45:53,900 --> 00:45:58,510 a tady velký, ale oznámení syntaxe je to nové, je to. 1058 00:45:58,510 --> 00:46:02,340 Není méně než int nebo rovno podepsat, nebo větší než nebo rovno podepsat, 1059 00:46:02,340 --> 00:46:05,430 z nichž jeden je nad druhým, že vy může vyjádřit jako je Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Takže v programovacím jazyce, obvykle prostě dva znaky, 1061 00:46:08,180 --> 00:46:09,450 jedna po druhé. 1062 00:46:09,450 --> 00:46:12,695 A co to pravděpodobně představují, ampersand ampersand. 1063 00:46:12,695 --> 00:46:13,570 Diváků: [Neslyšitelné] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Jo. 1065 00:46:13,680 --> 00:46:16,910 To jen znamená, a proto, že Ukazuje se, že autoři C 1066 00:46:16,910 --> 00:46:19,120 použit jeden ampersand, který byste si mohli myslet 1067 00:46:19,120 --> 00:46:22,430 by bylo ideální pro pojmu a, je již vyčerpána, 1068 00:46:22,430 --> 00:46:27,300 takže ampersand ampersand vlastně zachycuje případ vlastně chceme. 1069 00:46:27,300 --> 00:46:30,610 >> Takže pojďme se teď narazí dvě věci. 1070 00:46:30,610 --> 00:46:32,640 Nech mě jít dopředu a otevřít jeden. 1071 00:46:32,640 --> 00:46:36,590 Něco, co je trochu znepokojující. 1072 00:46:36,590 --> 00:46:37,970 Nepřesnost tečka c. 1073 00:46:37,970 --> 00:46:40,260 Dovolte mi představit dvě věci zde. 1074 00:46:40,260 --> 00:46:44,720 Za prvé, všimněte si, že můžeme dělat matematika, as stejně jako předtím, když 1075 00:46:44,720 --> 00:46:47,797 jsme a ze dvou čísel, x a y. 1076 00:46:47,797 --> 00:46:49,380 Co je tento program zřejmě dělá? 1077 00:46:49,380 --> 00:46:52,140 Já jsem to komentoval to ještě, a já jsem představil procent f, 1078 00:46:52,140 --> 00:46:55,720 ale rychle jsem řekl dříve f procent znamená, že s plovoucí řádovou čárkou 1079 00:46:55,720 --> 00:46:56,970 hodnota, která je reálné číslo. 1080 00:46:56,970 --> 00:46:59,520 Něco se desetinná bod, který není celým číslem. 1081 00:46:59,520 --> 00:47:02,270 Co si myslíte, že tento program je Snaží se mě ukázat na obrazovce? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Jo? 1084 00:47:06,050 --> 00:47:07,550 Diváků: Výsledek jednoho nad 10 let. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Jo. 1086 00:47:07,780 --> 00:47:09,680 Jaký je výsledek jednoho děleno 10. 1087 00:47:09,680 --> 00:47:12,721 Jasně, protože všechny z vás má pravděpodobně vyrůstala s vědomím, že jeden přes 10 1088 00:47:12,721 --> 00:47:14,502 je co? 1089 00:47:14,502 --> 00:47:16,220 Jo, je to jen desetina nebo 0,1. 1090 00:47:16,220 --> 00:47:16,720 Je to tak? 1091 00:47:16,720 --> 00:47:19,010 Takže pojďme se podívat, co to vlastně je. 1092 00:47:19,010 --> 00:47:21,010 Tak nech mě jít dopředu a uložit toto. 1093 00:47:21,010 --> 00:47:21,970 Nech mě jít sem dolů. 1094 00:47:21,970 --> 00:47:26,360 Udělat nepřesnost dot lomítko nepřesnost, a oznámení, příliš, 1095 00:47:26,360 --> 00:47:29,380 v prostředí systému Linux, nemáte muset zadat ven nepřesnost a brát 1096 00:47:29,380 --> 00:47:30,010 celý den. 1097 00:47:30,010 --> 00:47:32,910 Obecně, pokud Tab hit, to dokončí své myšlenky pro vás, 1098 00:47:32,910 --> 00:47:36,660 na základě slov, která jsou k dispozici v aktuálním adresáři. 1099 00:47:36,660 --> 00:47:37,160 DOBŘE. 1100 00:47:37,160 --> 00:47:37,970 Takže jste měl pravdu. 1101 00:47:37,970 --> 00:47:41,239 Jeden děleno 10 je, ve skutečnosti, 0,1. 1102 00:47:41,239 --> 00:47:42,280 Ale já jsem trochu zvědavý. 1103 00:47:42,280 --> 00:47:44,196 A ukázalo se, printf podporuje některé funkce 1104 00:47:44,196 --> 00:47:48,700 přičemž můžete určit více než Výchozí počet desetinných míst. 1105 00:47:48,700 --> 00:47:52,140 Takže pokud chci vidět 10 desetinné místo body, co můžu udělat procent, 1106 00:47:52,140 --> 00:47:55,510 pro symbol zástupný symbol, dot 10 pro, dej mi 10 desetinných míst, 1107 00:47:55,510 --> 00:47:58,140 a pak ještě plovoucí desetinnou čárkou hodnota, a, jak stranou, 1108 00:47:58,140 --> 00:48:01,550 Co je to zpětné lomítko n zřejmě jsme udržet pomocí? 1109 00:48:01,550 --> 00:48:03,450 Ukazuje se, že je to symbol pro nový řádek. 1110 00:48:03,450 --> 00:48:05,970 Je to velmi explicitní cesta říkat k počítači, 1111 00:48:05,970 --> 00:48:08,759 přesuňte kurzor na další řádek po máte hotovo. 1112 00:48:08,759 --> 00:48:10,800 A uvidíme, co se stane když neděláme to. 1113 00:48:10,800 --> 00:48:12,430 >> Dovolte mi, abych překompilovat, aby nepřesnost. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Nyní dot lomítko nepřesnost. 1116 00:48:18,356 --> 00:48:18,930 DOBŘE. 1117 00:48:18,930 --> 00:48:19,780 Stále v pořádku. 1118 00:48:19,780 --> 00:48:21,512 Jeden děleno 10. 1119 00:48:21,512 --> 00:48:23,220 Teď začíná být trochu zvědavý, ačkoli. 1120 00:48:23,220 --> 00:48:27,599 Co když se podívám 20 desetinné místo poukazuje na to, překompilovat, opakování, 1121 00:48:27,599 --> 00:48:29,390 a jak stranou pro rychlost, můžete také použít 1122 00:48:29,390 --> 00:48:31,800 Váš šipky nahoru a dolů se procházet historii, 1123 00:48:31,800 --> 00:48:35,476 takže se nemusíte držet přepisování těchto příkazů, zadejte. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Nevěděl jsem, že učit na základní škole. 1126 00:48:39,220 --> 00:48:43,260 Dobře, tak ať mě vidět jako 29 míst ven. 1127 00:48:43,260 --> 00:48:44,300 Možná je to jen náhoda. 1128 00:48:44,300 --> 00:48:46,907 Možná, že můj počítač se chová divně. 1129 00:48:46,907 --> 00:48:47,990 To není věc, že ​​jo? 1130 00:48:47,990 --> 00:48:50,300 Je to něco deterministicky. 1131 00:48:50,300 --> 00:48:53,410 Tak, aby nepřesnost. 1132 00:48:53,410 --> 00:48:54,890 OK, to je zpackal. 1133 00:48:54,890 --> 00:48:57,620 Takže to, co se děje? 1134 00:48:57,620 --> 00:49:00,160 >> Takže zřejmě Váš Učitel byl ležící 1135 00:49:00,160 --> 00:49:03,900 pro vás všechny tyto doby pro Důvody, které uvidíme zanedlouho. 1136 00:49:03,900 --> 00:49:05,569 Ale pojďme skončit s jedním dalším programem. 1137 00:49:05,569 --> 00:49:07,860 To je trochu programy někdo napsal před několika lety, 1138 00:49:07,860 --> 00:49:08,990 a je to vlastně část soutěže. 1139 00:49:08,990 --> 00:49:11,198 Nikdo vlastně píše kód jako je toto, a pokud ano, 1140 00:49:11,198 --> 00:49:12,880 to je stylisticky problém. 1141 00:49:12,880 --> 00:49:14,660 Ale lidé to pro vychloubání práv. 1142 00:49:14,660 --> 00:49:17,260 Chcete-li psát nejvíce matoucí hledáte program, který 1143 00:49:17,260 --> 00:49:19,110 přesto dělá něco zajímavého. 1144 00:49:19,110 --> 00:49:23,930 A poznámka jsem si myslel, bychom nechat na dnes, než nás Colton hraje tady, 1145 00:49:23,930 --> 00:49:27,840 je ke spuštění tohoto programu, které i v jen pomocí 1146 00:49:27,840 --> 00:49:31,450 C v tento text-based životní prostředí, nám to dává. 1147 00:49:31,450 --> 00:49:32,264 Sakra. 1148 00:49:32,264 --> 00:49:34,930 >> [SMÍCH] 1149 00:49:34,930 --> 00:49:36,800 >> Připravit. 1150 00:49:36,800 --> 00:49:39,340 [Neslyšitelný] c pomlčka l m. 1151 00:49:39,340 --> 00:49:42,885 Budeš vidět magické zaříkadlo, že uvidíme zanedlouho. 1152 00:49:42,885 --> 00:49:45,780 [Neslyšitelný] V pořádku. 1153 00:49:45,780 --> 00:49:51,592 A teď můžete dokonce dělat věci, jako je tento. 1154 00:49:51,592 --> 00:49:52,340 To je to. 1155 00:49:52,340 --> 00:49:56,410 Pro CS50 my, uvidíte v pátek. 1156 00:49:56,410 --> 00:49:58,910 >> [Přehrávání hudby] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [APPLAUSE] 1159 00:52:41,440 --> 00:52:42,812