1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. Malan: Tak toto je CS50. 3 00:00:13,800 --> 00:00:18,970 A to bol CS50 vlastné Colton Ogden, viac o tom, kto je to hudba, ktorú môžete 4 00:00:18,970 --> 00:00:22,820 stiahnutie na soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Takže dnes sme sa zamerali všetci viac na umenie programovania. 6 00:00:26,690 --> 00:00:28,980 A my sme sa, kde sme z minulého týždňa, so zameraním 7 00:00:28,980 --> 00:00:31,660 na Scratch, ktorý bol tento grafický programovací jazyk. 8 00:00:31,660 --> 00:00:35,490 A brať veci dole na nižšej úrovni, použitie viac tradičné programovanie 9 00:00:35,490 --> 00:00:38,420 jazyk známy ako C. Ale na ceste, si uvedomil, 10 00:00:38,420 --> 00:00:40,730 že rovnaké myšlienky sme hovorili o minulého piatku 11 00:00:40,730 --> 00:00:44,390 bude opakovať nielen v tejto jazyk C, ale vo väčšine každý druhý 12 00:00:44,390 --> 00:00:46,350 ktoré sa pozrieme v tomto semestri. 13 00:00:46,350 --> 00:00:50,247 >> Tak sme nazvali túto vec tu to, čo minule? 14 00:00:50,247 --> 00:00:51,830 To je zástupca vyhlásenia. 15 00:00:51,830 --> 00:00:53,080 Tak sme volali toto vyhlásenie. 16 00:00:53,080 --> 00:00:54,100 A to niečo robí. 17 00:00:54,100 --> 00:00:56,910 Je to poučenie, že Počítač alebo Scratch môže vykonať. 18 00:00:56,910 --> 00:00:59,910 A ďalej, poďme tiež spustiť volá niečo také funkcie, 19 00:00:59,910 --> 00:01:02,070 z dôvodov, ktoré sa čoskoro uvidíme. 20 00:01:02,070 --> 00:01:03,681 >> Zatiaľ sme videli veci, ako je táto. 21 00:01:03,681 --> 00:01:05,680 A títo sú všeobecne známy ako čo konštrukt? 22 00:01:05,680 --> 00:01:06,240 >> DIVÁKOV: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. Malan: Takže slučka. 24 00:01:06,860 --> 00:01:07,943 Tak celkom jednoduché. 25 00:01:07,943 --> 00:01:09,470 Je doslova robí to, čo hovorí. 26 00:01:09,470 --> 00:01:12,210 A v Scratch, ak chcete napchať viac dieliky tam, 27 00:01:12,210 --> 00:01:13,950 kus bude rásť, aby sa zmestili to. 28 00:01:13,950 --> 00:01:16,790 A uvidíme, v C, ktoré môžeme urobiť to isté. 29 00:01:16,790 --> 00:01:20,000 >> Ďalším typom slučky, aj keď, V Scratch môže byť navždy, 30 00:01:20,000 --> 00:01:21,820 alebo tam je nejaké číslo iných prístupov. 31 00:01:21,820 --> 00:01:24,150 Ale poďme sa viac všeobecný vzhľad, s tvárou 32 00:01:24,150 --> 00:01:27,402 to je pravdepodobné, že dobre oboznámený, na slučky všeobecne. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: One vec, že ​​počítače 34 00:01:29,110 --> 00:01:31,860 sú naozaj dobré je opakovanie príkazov. 35 00:01:31,860 --> 00:01:33,910 Ako človek, mali by ste si naozaj nudiť, ak vás 36 00:01:33,910 --> 00:01:36,730 musel urobiť to isté mockrát v rade. 37 00:01:36,730 --> 00:01:40,530 Ale počítač môže urobiť to isté milióny alebo dokonca miliardy doby, 38 00:01:40,530 --> 00:01:43,290 a nie nudiť, a musí byť schopný vykonávať, že sa naozaj dobre. 39 00:01:43,290 --> 00:01:45,650 >> Tak napríklad, keď chcel popriať všetkým 40 00:01:45,650 --> 00:01:48,840 na Facebooku všetko najlepšie k narodeninám poslala im e-mail, 41 00:01:48,840 --> 00:01:51,550 ma to môže trvať dlhšie ako storočia skutočne zapísať 42 00:01:51,550 --> 00:01:53,000 všetky tie e-maily pre všetky. 43 00:01:53,000 --> 00:01:57,780 Ale len pár riadkov kódu, môžem má systém poslať e-mail pre všetkých 44 00:01:57,780 --> 00:01:59,930 na Facebooku, ktorý si želá im všetko najlepšie k narodeninám. 45 00:01:59,930 --> 00:02:02,730 Takže to je to, čo slučky a prečo sú cenné a niečo 46 00:02:02,730 --> 00:02:04,740 že počítače vie veľmi dobre. 47 00:02:04,740 --> 00:02:05,630 >> David J. Malan: Takže ak ste bol príjemcom 48 00:02:05,630 --> 00:02:07,820 niektorých CS50 je a Dropbox je priestor neskoro, 49 00:02:07,820 --> 00:02:10,590 to je vlastne presne to, čo sme áno, pomocou kódu celkom rád, že. 50 00:02:10,590 --> 00:02:12,600 Máme v podstate majú veľký tabuľka, do ktorej 51 00:02:12,600 --> 00:02:15,016 ľudia boli zadaním ich mená a e-mailové adresy. 52 00:02:15,016 --> 00:02:18,160 A napísal malý kus kódu, ktorý môžete iterovat cez tieto adresy 53 00:02:18,160 --> 00:02:21,860 a vypľuť jedinečné adresy Prípad niekto predložil viackrát. 54 00:02:21,860 --> 00:02:25,120 A potom, pošleme automatické e-maily z CS50 je topánka, 55 00:02:25,120 --> 00:02:27,190 vrátane kupon kód. 56 00:02:27,190 --> 00:02:29,290 >> Teraz sa tiež pozrel na Táto konštrukcia minule. 57 00:02:29,290 --> 00:02:33,100 A to je zvláštne príkladom toho, čo? 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ý zachytiť, že rovnako. 60 00:02:37,050 --> 00:02:39,966 Všetky tieto otázky tvorí true alebo false v Scratch 61 00:02:39,966 --> 00:02:41,590 bude vyzerať trochu niečo také. 62 00:02:41,590 --> 00:02:43,200 A hovoríme tomu Boolean výraz. 63 00:02:43,200 --> 00:02:46,170 To je skutočne pravda, alebo nie, áno alebo nie. 64 00:02:46,170 --> 00:02:49,150 Je to spôsob, ako odpovedať na otázku. 65 00:02:49,150 --> 00:02:52,420 >> A medzitým si môžete použiť tieto Boolean výrazy vnútri konštruktov 66 00:02:52,420 --> 00:02:54,720 ako tie, ktoré z Samozrejme, sú podmienky 67 00:02:54,720 --> 00:02:57,259 alebo pobočky, príslovečná vidličky na ceste. 68 00:02:57,259 --> 00:02:59,550 A môžu vyzerať nielen takto, ale môžu tiež 69 00:02:59,550 --> 00:03:02,080 sa elses sú s nimi spojené. 70 00:03:02,080 --> 00:03:05,820 A môžete mať v skutočnosti tri cestu rázcestí, alebo štvorcestný vidlica 71 00:03:05,820 --> 00:03:08,340 na ceste, jednoducho tým, že hniezdenia týchto vecí, 72 00:03:08,340 --> 00:03:10,510 ako uvidíte v Scratch ak ste tak už neurobili. 73 00:03:10,510 --> 00:03:13,550 A ako si môžete urobiť v C i. 74 00:03:13,550 --> 00:03:16,810 >> Zoberme si ďalší všeobecný pozrieť sa na alumnist, ako aj, ktorý 75 00:03:16,810 --> 00:03:21,490 môže predstavovať odlišný prístup k týmto veciam sa nazývajú podmienky. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Ľudia robia rozhodnutia každý deň. 77 00:03:24,060 --> 00:03:27,530 Napríklad predtým, než idete von vás druh mať, ak vyhlásenie, ktoré hovorí, 78 00:03:27,530 --> 00:03:31,480 ak prší a potom som sa Potrebujem, aby mi bundu. 79 00:03:31,480 --> 00:03:36,820 A počítače sú úžasné, akonáhle sa rozhodnúť tieto druhy výpisov, 80 00:03:36,820 --> 00:03:42,280 , Že sa môže spoľahlivo vykonať tie veci na neuveriteľnou rýchlosťou. 81 00:03:42,280 --> 00:03:48,240 A tak počítačový program naozaj je trochu matematiky a niektoré 82 00:03:48,240 --> 00:03:53,050 if ak to rozhodnutie dostane vyrobená. 83 00:03:53,050 --> 00:03:55,020 >> David J. Malan: Tak ako možno viete, je to 84 00:03:55,020 --> 00:03:57,880 ľudia ako Bill Gates, Paul Allen a ďalší 85 00:03:57,880 --> 00:04:00,240 že naozaj odštartovala takzvaný osobný počítač 86 00:04:00,240 --> 00:04:01,990 revolúcia pred niekoľkými rokmi. 87 00:04:01,990 --> 00:04:04,140 Myslel som, že predtým, než sa ponoríme do nejakej Administrivia, 88 00:04:04,140 --> 00:04:09,920 by sme sa týkajú príbeh z Albuquerque, New Mexico Museum of Natural History 89 00:04:09,920 --> 00:04:13,650 a veda, kde niektorí z Billa Gatesa " a Paul Allen najstaršie príbehy 90 00:04:13,650 --> 00:04:17,470 sa líči, ako máme teraz dnešné PC a Mac a ďalšie. 91 00:04:17,470 --> 00:04:22,390 K tomu však budeme potrebovať dva dobrovoľníkmi ktorí majú veľmi dobré rozprávanie hlasy 92 00:04:22,390 --> 00:04:23,735 čítať scenár nahlas. 93 00:04:23,735 --> 00:04:25,530 >> Dobre, a čo v tam. 94 00:04:25,530 --> 00:04:26,120 Poď hore. 95 00:04:26,120 --> 00:04:27,770 A čo pred tu. 96 00:04:27,770 --> 00:04:28,340 Poď dole. 97 00:04:28,340 --> 00:04:29,600 Vezmite si svoje miesta tu. 98 00:04:29,600 --> 00:04:32,444 Ako ste prišli, pár administratívnych oznámenia. 99 00:04:32,444 --> 00:04:34,360 krájanie, proces výberu sekcie, 100 00:04:34,360 --> 00:04:36,068 začne tento Stredy do piatku. 101 00:04:36,068 --> 00:04:38,400 Viac o tom tento rok V stredu v prednáške. 102 00:04:38,400 --> 00:04:41,770 >> Super sekcie, zatiaľ, sú niečo, čo ponúkame budúci týždeň 103 00:04:41,770 --> 00:04:45,310 pričom celá trieda je pozvaný k účasti v pomerne veľkom meradle 104 00:04:45,310 --> 00:04:47,690 oddiely, jeden pohodlný, jeden menej pohodlné. 105 00:04:47,690 --> 00:04:51,340 A budeme oznámiť údaje o tom, ako dobre, neskôr tento týždeň. 106 00:04:51,340 --> 00:04:53,310 >> Medzitým profily, samy o sebe, začne 107 00:04:53,310 --> 00:04:57,241 v troch kurzu týždňa, nulový index, čo znamená, že sú to pár týždňov 108 00:04:57,241 --> 00:04:57,740 von. 109 00:04:57,740 --> 00:04:58,450 Tak, aby sa nebála. 110 00:04:58,450 --> 00:05:01,014 Ešte ste sa minul niečo v tomto smere. 111 00:05:01,014 --> 00:05:03,930 Medzitým sa do tej doby, pokiaľ máte máte nejaké otázky administratívne, 112 00:05:03,930 --> 00:05:08,120 email seba a Devon a Gabe a Rob na tejto adrese tu. 113 00:05:08,120 --> 00:05:10,320 >> Konečne, nastavte problém 0 je, samozrejme, von. 114 00:05:10,320 --> 00:05:12,320 Možno ste si to všimol na internetových stránkach kurzu je. 115 00:05:12,320 --> 00:05:14,840 To by vám mal poskytnúť Všetky odpovede na otázky 116 00:05:14,840 --> 00:05:18,250 môžete mať na ceste k Začíname s problémom sady. 117 00:05:18,250 --> 00:05:21,430 Ale ak sa ocitnete potrebujú pomocnú ruku, 118 00:05:21,430 --> 00:05:25,020 všetkými prostriedkami, zúčastniť sa úradné hodiny, Pondelok, utorok, streda, štvrtok 119 00:05:25,020 --> 00:05:27,290 tohto týždňa vo večerných hodinách v štyroch jedálňach. 120 00:05:27,290 --> 00:05:31,650 Pozri túto adresu URL tam údajov kde úradné hodiny bude. 121 00:05:31,650 --> 00:05:34,000 >> Teraz sa poďme splniť naše Dvaja hostia tu dnes. 122 00:05:34,000 --> 00:05:34,740 Ako sa voláte? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> David J. Malan: Jay Paul, rád ťa spoznávam. 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 Teší ma tiež. 130 00:05:39,790 --> 00:05:42,123 Jay Paul a Hikari majú predné z nich na tieto hudobné 131 00:05:42,123 --> 00:05:45,100 stoja dva skripty, ktoré som vytlačených sa dnes ráno z Nového Mexika 132 00:05:45,100 --> 00:05:46,692 Múzeum prírodnej histórie a vedy. 133 00:05:46,692 --> 00:05:48,400 A to, čo som si myslel, Ja by som to na strope 134 00:05:48,400 --> 00:05:52,830 je sprevádzať svoje recitácii scenáre a táto história 135 00:05:52,830 --> 00:05:54,700 u niektorých vizuálnych obrazov, žiadne prekvapenie. 136 00:05:54,700 --> 00:05:57,512 >> A to, čo som urobil v predstihu je prehighlight na skriptu 137 00:05:57,512 --> 00:05:59,470 čo by ste mali čítať, a to, čo by ste si mali prečítať. 138 00:05:59,470 --> 00:06:00,920 A budeme v podstate len alternatívne odseku. 139 00:06:00,920 --> 00:06:03,211 Takže je to podobne ako by ste mohli urobili v anglickej triede. 140 00:06:03,211 --> 00:06:06,875 To je naozaj prinútiť publikum veriť v príbehu tu. 141 00:06:06,875 --> 00:06:07,600 Pôjdeme? 142 00:06:07,600 --> 00:06:13,272 Takže príbeh je tu, máme BASIC, a to začína v Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Bolo to v zime, 1974, v Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 kde zimy môže byť zima. 145 00:06:20,240 --> 00:06:22,800 Fúzy, dlhé vlasy vysokoškolský odpadlík menovaný 146 00:06:22,800 --> 00:06:27,280 Paul Allen bol vysiľujúce po Harvard Námestia, pohrúžený do svojich myšlienok. 147 00:06:27,280 --> 00:06:31,050 Jeho hlavným záujmom v týchto dňoch bolo, ako dostať svojho priateľa, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 opustiť školu a ísť do obchodu s ním. 149 00:06:34,974 --> 00:06:37,890 HIKARI: dvaja už preč prostredníctvom celého radu podnikateľských aktivít 150 00:06:37,890 --> 00:06:40,850 dohromady, začína na brehu jazera škola v Seattli kde 151 00:06:40,850 --> 00:06:45,220 boli vyplatené vo voľnom čase počítača sa otestovať počítač PDP-10 v miestnom čase 152 00:06:45,220 --> 00:06:46,580 zdieľanie spoločnosť. 153 00:06:46,580 --> 00:06:50,930 Najnovšie plán bol, aby prestal škola a tvorí softvérovú 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íľu, Gates sa rozhodol zostať s Harvarde. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Ten deň, cez Harvard Námestie, Allen zazrel januára, 157 00:07:02,080 --> 00:07:07,530 1975 vydanie populárnej elektroniky so Zemou zastavenie titulku, 158 00:07:07,530 --> 00:07:11,900 Ako prvý na svete minipočítače Kit súperiť Komerčné modely. 159 00:07:11,900 --> 00:07:14,430 Pod nadpis sa obrázok malej krabičke 160 00:07:14,430 --> 00:07:16,160 zdobia svetlami a spínačom. 161 00:07:16,160 --> 00:07:19,770 Hovorilo sa MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 A Allen vedel, že to, čo on hľadal. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: Days diskusia nasledovala. 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 Hovorili často o mikroprocesoroch 166 00:07:32,480 --> 00:07:35,250 a čakali, čo by byť vykonané s nimi. 167 00:07:35,250 --> 00:07:39,770 Teraz tam bol minipočítač kit na kryt Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Je to zrejme mal zatiaľ nemá žiadny softvér. 169 00:07:42,830 --> 00:07:46,830 Si predstavovali národ programátori zostupne na MITS. 170 00:07:46,830 --> 00:07:49,590 A tak nazvali Ed Roberts, šéf spoločnosti, 171 00:07:49,590 --> 00:07:53,330 vyhlasovať, že má verziu BASIC programovacieho jazyka takmer pripravený 172 00:07:53,330 --> 00:07:54,710 pre Altair. 173 00:07:54,710 --> 00:07:55,570 To sa nestalo. 174 00:07:55,570 --> 00:07:58,910 A Roberts musel vedieť, že nie. 175 00:07:58,910 --> 00:08:03,170 Začínal 10 hovorov denne od ľudia, ktorí mali BASIC takmer pripravený. 176 00:08:03,170 --> 00:08:05,570 A jeho odpoveď skladom bol "prvý človek 177 00:08:05,570 --> 00:08:11,090 kto sa ukáže s pracovnou BASIC dostane zmluvu. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates a Allen ešte nikdy nevidel Altair. 179 00:08:13,910 --> 00:08:17,600 Nikdy ešte nevidel 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 rokov skôr Allen písal program 182 00:08:21,470 --> 00:08:25,220 na mainframe, ktorý emulovanej prevádzka predchádzajúceho Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesor. 184 00:08:26,217 --> 00:08:28,300 A tentoraz oni by urobil to isté. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: s procesorom Intel 8080 ručný po jeho boku, 187 00:08:34,380 --> 00:08:37,770 Allen sa posadil na Harvard PDP-10 počítača 188 00:08:37,770 --> 00:08:42,010 a napísal emulátor a softvér nástroje potrebné k tomu programovania. 189 00:08:42,010 --> 00:08:45,820 Medzitým Gates prestal chodiť tried a venoval sa 190 00:08:45,820 --> 00:08:48,120 k návrhu BASIC, používať každý trik 191 00:08:48,120 --> 00:08:53,130 vedel, že sa veľkosť 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 so žiadosťou o informácie o tom, ako Altair zaobchádzať špecifické rutiny. 194 00:08:59,754 --> 00:09:01,170 Nikto sa nikdy nespýtal skôr. 195 00:09:01,170 --> 00:09:02,670 A Roberts začal byť záujem. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: S rozvojom nástroje a dizajn pripravený, 198 00:09:07,970 --> 00:09:10,780 Gates a Allen napísal kód na PDP-10, 199 00:09:10,780 --> 00:09:16,060 získavať ďalšie Harvard študenta, Monte Davidoff, písať matematické rutiny. 200 00:09:16,060 --> 00:09:19,450 Po záverečnej noci programovanie, Allen dostal do lietadla 201 00:09:19,450 --> 00:09:22,970 dodávať ich základné na MITS. 202 00:09:22,970 --> 00:09:25,800 Strávil lietadlo prečkať znepokojujúce. 203 00:09:25,800 --> 00:09:28,490 A späť do Cambridge Gates bol znepokojujúce. 204 00:09:28,490 --> 00:09:32,100 Boli testované ich základné a že pracoval na emulátora. 205 00:09:32,100 --> 00:09:35,444 Ale čo v prípade, že emulátor sa mýlil? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Ako v lietadle priblížil Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen si uvedomil, že ich BASIC, teraz úhľadne obsiahnutá 208 00:09:40,070 --> 00:09:42,460 na malé rolky dierovaný papierovú pásku, by 209 00:09:42,460 --> 00:09:44,970 k ničomu bez samostatnej Program, nazvaný nakladač, ktorý 210 00:09:44,970 --> 00:09:47,550 by sa povedať, Altair, ako čítať papier pásku 211 00:09:47,550 --> 00:09:49,620 privádza do teletype stroja. 212 00:09:49,620 --> 00:09:52,970 Vytiahol z vrecka zápisník a rýchlo načmáral nadol zavádzača programu 213 00:09:52,970 --> 00:09:56,819 v jazyku zhromaždení, a potom ručne preložil do 1s a 0s 214 00:09:56,819 --> 00:09:57,985 Altair bude rozumieť. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Allen čakal čistý, malý, high-tech spoločnosť 217 00:10:03,830 --> 00:10:05,470 beh muži v oblekoch. 218 00:10:05,470 --> 00:10:09,210 Takže on bol prekvapený, keď sa stretol Roberts ho na letisku vyzerá ako ranči 219 00:10:09,210 --> 00:10:10,270 hand. 220 00:10:10,270 --> 00:10:12,070 Roberts bol tiež prekvapený. 221 00:10:12,070 --> 00:10:16,340 Keď sa pustil Harvard programátor pri drahšie hotel, 222 00:10:16,340 --> 00:10:20,790 Allen musel priznať, že si nemohol dovoliť miestnosť. 223 00:10:20,790 --> 00:10:24,510 >> JAY Pavel: MITS, sama o sebe, bola Nachádza sa v prašnom pásu obchodaku. 224 00:10:24,510 --> 00:10:27,040 Vnútri na preplnená pracovný stôl bol Altair 225 00:10:27,040 --> 00:10:30,390 naložený s 5 kilobajtov pamäte a spojené káblom 226 00:10:30,390 --> 00:10:32,030 k ďalekopisu stroja. 227 00:10:32,030 --> 00:10:37,200 Roberts a hlavný inžinier, Bill Yates, čakal s očakávaním 228 00:10:37,200 --> 00:10:40,660 ako Allen prepínať svoje nakladač Program na Altair. 229 00:10:40,660 --> 00:10:44,980 Ďalekopisu začal šúpanie, ako to vytiahol papierovú pásku cez páskovú čitateľa. 230 00:10:44,980 --> 00:10:47,215 Trvalo to asi 15 minút nahrať program. 231 00:10:47,215 --> 00:10:52,110 Potom ďalekopisu náhle vytlačiť pamäť výzva, potom pripravená výzva, 232 00:10:52,110 --> 00:10:55,340 a Allen začal písať Príkazy niekoľko test. 233 00:10:55,340 --> 00:10:57,400 K všeobecnému úžasu, Pracoval softvér. 234 00:10:57,400 --> 00:10:58,525 Tam boli chyby, samozrejme. 235 00:10:58,525 --> 00:11:02,070 Ale hlavná vec je, že funguje. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Neskôr, na ich ceste k 3,00 dolárov obed v Pancho je, osa letel 237 00:11:06,570 --> 00:11:10,470 V okne vyzdvihnutie truck a pálili Allen na paži. 238 00:11:10,470 --> 00:11:13,070 Ale v tomto bode nič mohol pokaziť náladu. 239 00:11:13,070 --> 00:11:17,210 Altair mal teraz svoje základné, prvý komerčný softvér pre domáce 240 00:11:17,210 --> 00:11:23,260 počítač, natočil Paul Allen a Bill Gates, podnikajúca pod názvom Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. Malan: Veľa vďaka našim dvom čitateľom. 242 00:11:25,336 --> 00:11:30,690 >> [APPLAUSE] 243 00:11:30,690 --> 00:11:32,520 >> David J. Malan: Teraz máte možnosť voľby, 244 00:11:32,520 --> 00:11:35,880 pred odchodom, na iskrivý alebo žiara v dark-- oh, 245 00:11:35,880 --> 00:11:40,810 počkajte jednu sekundu, počkaj iskrivý a v tme 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, ďakujem. 248 00:11:43,450 --> 00:11:45,324 David J. Malan: All Dobre, ďakujem 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ý príbeh. 251 00:11:51,105 --> 00:11:54,380 To znamená, že všetky tieto stroje a ľahkosť, s ktorou sme 252 00:11:54,380 --> 00:11:56,270 použiť teraz a prijať za samozrejmosť, naozaj 253 00:11:56,270 --> 00:12:00,070 začal tu, len pár krokov Z tohto skutočného divadla. 254 00:12:00,070 --> 00:12:03,930 A teraz ešte dnes, ak ste neboli, To je Maxwell Dworkin, počítač 255 00:12:03,930 --> 00:12:05,810 vedy budova, aj za rohom. 256 00:12:05,810 --> 00:12:09,760 A na druhom poschodí tohto Budova nemá visieť tri stránky 257 00:12:09,760 --> 00:12:12,740 z pôvodného zdrojového kódu, ktoré Bill Gates a Paul Allen písal. 258 00:12:12,740 --> 00:12:14,770 V skutočnosti, ak použitie priblíženia na môžete vidieť nielen 259 00:12:14,770 --> 00:12:17,350 ich mená v Pôvodný typ, ale tiež 260 00:12:17,350 --> 00:12:22,100 ich podpisy, ktoré zdobili pár rokov späť, kedy poslednej návštevy. 261 00:12:22,100 --> 00:12:25,800 >> Ale čo bolo obzvlášť dôležité o to je to, čo je uvedené na to 262 00:12:25,800 --> 00:12:29,760 bolo napísať program, ktorý by umožniť ostatným ľuďom písať 263 00:12:29,760 --> 00:12:30,950 vlastné programy. 264 00:12:30,950 --> 00:12:34,280 V čase, keď všetko bolo s tento stroj Altair vyrobený MITS. 265 00:12:34,280 --> 00:12:40,020 A všetko, čo potreboval, bolo, nejaký spôsob, ako takže je ľahké pre fanatikov a ľudí, 266 00:12:40,020 --> 00:12:45,300 Páči sa nám v tejto miestnosti skutočne programu že bez nevyhnutne pochopenie 267 00:12:45,300 --> 00:12:49,060 Montáž kód, alebo stroj kód, alebo nedaj bože, 0s a 1s. 268 00:12:49,060 --> 00:12:51,190 My programátori, ako tie v tejto miestnosti sme 269 00:12:51,190 --> 00:12:54,070 chcú mať možnosť vyjadriť sami oveľa viac ako pseudo kód 270 00:12:54,070 --> 00:12:57,330 aj keď je to trochu niť vyberavý, než sme hovorili minulý týždeň. 271 00:12:57,330 --> 00:13:00,970 Nechceme písať kód, ako je toto, ktoré Paul Allen a Bill Gates urobil. 272 00:13:00,970 --> 00:13:04,850 My namiesto toho chcete napísať kód, ktorý vyzerá trochu viac užívateľsky prívetivé. 273 00:13:04,850 --> 00:13:07,150 >> Teraz to je jazyk známy ako BASIC. 274 00:13:07,150 --> 00:13:11,497 A čísla riadkov sú to, čo vás používať jednoducho číslovať riadky 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 dokonca ani to, že v týchto dňoch. 277 00:13:14,038 --> 00:13:16,060 Ale môžete vidieť tu ako PRINT "Hello, World" 278 00:13:16,060 --> 00:13:18,660 by totiž pravdepodobne tlačiť len to. 279 00:13:18,660 --> 00:13:22,710 A tak to, čo Bill a Paul urobil, bolo, umožniť ľuďom písať kód, ako je toto 280 00:13:22,710 --> 00:13:27,240 miesto of-- ak ste sa pozrieť na počítačovej vedy wall-- kód, ako je toto. 281 00:13:27,240 --> 00:13:29,290 >> V skutočnosti, v poslednej dobe CS50 mali príležitosť 282 00:13:29,290 --> 00:13:32,540 sadnúť si s profesorom Harry Lewis v informatike oddelení, ktorí 283 00:13:32,540 --> 00:13:34,640 vlastne učil Bill Gates pred niekoľkými rokmi, 284 00:13:34,640 --> 00:13:38,460 a stojí tu pred tieto tri strany výňatky. 285 00:13:38,460 --> 00:13:39,560 Poďme sa pozrieť. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Čo musíte tu výpis ranej kus softvéru 287 00:13:45,520 --> 00:13:50,240 napísal Bill Gates a Paul Allen, zakladatelia spoločnosti Microsoft. 288 00:13:50,240 --> 00:13:52,570 Takže kód je zaujímavý z dvoch dôvodov. 289 00:13:52,570 --> 00:13:55,480 Po prvé, to sa stalo Microsoft je prvý produkt, 290 00:13:55,480 --> 00:14:01,810 ktorý bol tlmočníkom BASIC programovacieho jazyka. 291 00:14:01,810 --> 00:14:04,940 A za druhé, je to jeden z prvých pokusov 292 00:14:04,940 --> 00:14:10,580 vytvoriť tlmočníka tak obyčajné ľudia mohli využívať osobné počítače. 293 00:14:10,580 --> 00:14:12,670 >> Takže Bill Gates bol vysokoškolák na Harvarde. 294 00:14:12,670 --> 00:14:14,820 Začala som vyučovať na Harvarde v roku 1974. 295 00:14:14,820 --> 00:14:16,560 To bolo vykonané v roku 1975. 296 00:14:16,560 --> 00:14:20,180 Tak to bolo čoskoro v jeho kariére a čoskoro vo svojej kariére. 297 00:14:20,180 --> 00:14:23,790 Vlastne som učil Billa Samozrejme okolo tohto času. 298 00:14:23,790 --> 00:14:27,130 Paul Allen nebol Harvard študent, ale 299 00:14:27,130 --> 00:14:31,020 bol na strednej škole spolužiak Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Ak sa prísť pozrieť v zozname, budete 301 00:14:33,740 --> 00:14:36,230 skutočne nájsť tretina meno, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 ktorý bol Gatesa spolužiak tu na Harvarde. 303 00:14:39,260 --> 00:14:41,340 >> OK, takže tu je zaujímavý komentár tu. 304 00:14:41,340 --> 00:14:47,150 To hovorí, že "Vo 4K môžete odstrániť odmocninu ale pre slučky by mal aj naďalej pracovať. " 305 00:14:47,150 --> 00:14:53,080 OK, takže to, čo to znamená, je to, že dva spôsoby, ako skompilovať tento program. 306 00:14:53,080 --> 00:14:57,860 Jeden z nich bol bežať na verziu tohto počítača Altair 307 00:14:57,860 --> 00:15:04,310 , Ktorá mala len 4K slová pamäť 4096 slov pamäti. 308 00:15:04,310 --> 00:15:07,050 Ale veľká verzia mala 8K. 309 00:15:07,050 --> 00:15:09,770 A tak, čo to hovorí, že je že vo verzii 4K 310 00:15:09,770 --> 00:15:12,770 ste museli odstrániť niektoré kód, aby bolo vhodné. 311 00:15:12,770 --> 00:15:14,790 A jedna z vecí, , Ktoré by boli odstránené 312 00:15:14,790 --> 00:15:16,290 by odmocnina rutina. 313 00:15:16,290 --> 00:15:20,360 Ale zrejme pre slučky by mal aj naďalej 314 00:15:20,360 --> 00:15:26,392 pracovať, aj keď ste zostavovanie dole pre len 4K verzie počítača. 315 00:15:26,392 --> 00:15:29,350 David J. Malan: Takže jednou z tém, ako uvidíme v informatike, 316 00:15:29,350 --> 00:15:31,430 je tento pojem vrstvenie a abstrakcie, 317 00:15:31,430 --> 00:15:34,670 a naozaj stojí na ramenách z ľudí, ktorí prišli pred nami, nie 318 00:15:34,670 --> 00:15:37,890 na rozdiel od niektorých z Billa Gatesa a Paul Allen rozprávanie tu. 319 00:15:37,890 --> 00:15:40,080 A čo to znamená, že dnes môžeme vziať na 320 00:15:40,080 --> 00:15:43,490 samozrejmé, že veci sú v skutočnosti pre nás ľahšie písať kód. 321 00:15:43,490 --> 00:15:47,170 Naozaj kód, ako sme si povedali v piatok, je viac technicky známy ako zdrojový kód. 322 00:15:47,170 --> 00:15:52,210 A to je to anglicky ako syntaxe to je viac, riadne a viac dobre definované 323 00:15:52,210 --> 00:15:55,480 než niečo ako pseudo kód, pre ktorý neexistuje žiadna formálna definícia. 324 00:15:55,480 --> 00:15:58,320 >> A dnes, čo budeme sústrediť sa na, je zdrojový kód 325 00:15:58,320 --> 00:16:01,010 že vyzerá, čo síce na prvý pohľad 326 00:16:01,010 --> 00:16:02,690 vyzerá úplne mystické. 327 00:16:02,690 --> 00:16:08,540 A úprimne povedané, je to spôsob, ako esteticky zložitejšie ako základný program. 328 00:16:08,540 --> 00:16:13,300 To všetko program robí, Pripomeňme, je to, čo sme si povedali? 329 00:16:13,300 --> 00:16:14,990 Je to jednoducho vytlačí "hello world". 330 00:16:14,990 --> 00:16:19,600 A napriek tomu sa na všetky veci, ktoré potrebujeme zabaliť okolo toho veľmi jednoduché frázy. 331 00:16:19,600 --> 00:16:21,750 Ale netrvalo dlho a všetci tieto riadky a viac 332 00:16:21,750 --> 00:16:24,800 bude oveľa lepší zmysel. 333 00:16:24,800 --> 00:16:26,940 >> A prietok je nasledujúci. 334 00:16:26,940 --> 00:16:31,220 Čo potrebujeme, máme k dispozícii je, aby sa kód, ako zdroj 335 00:16:31,220 --> 00:16:32,340 kód, ktorý sme práve videli. 336 00:16:32,340 --> 00:16:35,060 A my potrebujeme nový program spustíme ju prejsť. 337 00:16:35,060 --> 00:16:39,130 Potrebujeme algoritmy, ktoré môžu previesť zdrojový kód, ako 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 Inými slovami, to, čo budeme sa učiť ešte dnes 340 00:16:43,890 --> 00:16:46,620 je, ako to urobiť, napísať Zdrojový kód do hornej časti, 341 00:16:46,620 --> 00:16:49,930 odovzdať ho ako vstup na zvláštne Program známy ako kompilátor, 342 00:16:49,930 --> 00:16:52,140 a budeme produkovať objektový kód. 343 00:16:52,140 --> 00:16:54,600 Čo je len ozdobný spôsob, ako že by sme sa vziať niečo 344 00:16:54,600 --> 00:16:58,350 že vyzerá takto, odovzdať ju do programu s názvom kompilátor, 345 00:16:58,350 --> 00:17:01,210 produkovať objektový kód že vyzerá takto. 346 00:17:01,210 --> 00:17:04,720 >> Tak to sú doslova vzory 0s a 1s 347 00:17:04,720 --> 00:17:08,550 , Ktoré sú chápané Počítač Intel v týchto dňoch, 348 00:17:08,550 --> 00:17:12,480 že ak je vykladaný CPU, mozgy vnútri počítača, 349 00:17:12,480 --> 00:17:16,130 doslova vytlačiť, celkom jednoducho, "hello world". 350 00:17:16,130 --> 00:17:19,670 Teraz je tu spôsob, ako viac 0s a 1s, než vás dúfa, že by mohli byť potrebné pre to. 351 00:17:19,670 --> 00:17:22,520 Ale to je preto, že staviame o dobré riešenie zložitosti 352 00:17:22,520 --> 00:17:24,270 že môžeme naďalej brať ako samozrejmosť. 353 00:17:24,270 --> 00:17:27,869 Inými slovami, veľa chytrých ľudí dali nám veľa skvelých nástrojov 354 00:17:27,869 --> 00:17:32,480 a výkonný softvér, s ktorými Teraz môžete vykonať projekty sami. 355 00:17:32,480 --> 00:17:33,400 >> Takže začnime. 356 00:17:33,400 --> 00:17:36,640 Kým minulý piatok, a k problému Set 0 tento týždeň 357 00:17:36,640 --> 00:17:39,000 budete hrať v svet, ktorý vyzerá takto. 358 00:17:39,000 --> 00:17:42,180 Od dnešného dňa a problém Nastavte 1 budúci týždeň, kód 359 00:17:42,180 --> 00:17:45,410 bude trochu vyzerať mystický, ale funkčne je 360 00:17:45,410 --> 00:17:46,940 bude rovnaká. 361 00:17:46,940 --> 00:17:50,770 Tak oznámenia, vrchol je Scratch, dno je C. Úprimne Scratch 362 00:17:50,770 --> 00:17:52,780 je oveľa viac užívateľsky priateľská a prístupná. 363 00:17:52,780 --> 00:17:56,890 Ale ak ste sa porovnať vizuálne zhora dole, tam je celkom prostá 364 00:17:56,890 --> 00:17:59,690 korešpondencia medzi skladačky a jazyk 365 00:17:59,690 --> 00:18:00,870 sa chystáme hrať. 366 00:18:00,870 --> 00:18:04,420 Najmä, povedzme, modrý kúsok skladačky do top, 367 00:18:04,420 --> 00:18:08,370 je zrejme zodpovedá tomu, čo kľúčového slova alebo špeciálne frázy v tomto jazyku 368 00:18:08,370 --> 00:18:09,062 volal C? 369 00:18:09,062 --> 00:18:09,770 DIVÁKOV: 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ý tlač. 372 00:18:12,140 --> 00:18:15,240 A to je len fantázia spôsob, ako hovoriť printf v C 373 00:18:15,240 --> 00:18:18,615 bude príkaz alebo funkciu ktorá tlačí niečo na obrazovku. 374 00:18:18,615 --> 00:18:19,990 Čo to vytlačiť na obrazovku? 375 00:18:19,990 --> 00:18:23,627 Čokoľvek poviete, že sa vo vnútri úvodzoviek, vnútri zátvoriek. 376 00:18:23,627 --> 00:18:25,460 Takže znova, pravda, je tu veľa vecí, 377 00:18:25,460 --> 00:18:27,990 , Že musíte mať na pamäti, zátvorky, úvodzovky, bodkočiarka, 378 00:18:27,990 --> 00:18:28,656 a to všetko. 379 00:18:28,656 --> 00:18:30,600 Ale to všetko je trochu z vedľajšej. 380 00:18:30,600 --> 00:18:33,660 Zaujímavý stánok s jedlom teraz je to, že povedzme blok Scratch 381 00:18:33,660 --> 00:18:37,520 je do značnej miery ekvivalentné vyhlásenie printf v C. 382 00:18:37,520 --> 00:18:41,390 >> Medzitým, žltá skladačky do hornej časti, kedy zelená vlajka kliknutí 383 00:18:41,390 --> 00:18:44,736 je zrejme ekvivalentná k tomu, čo tu kľúčových slov? 384 00:18:44,736 --> 00:18:45,360 DIVÁKOV: 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žno, že pravý, možno neplatné. 387 00:18:47,410 --> 00:18:51,280 Ale hlavné druhy zvukov, ako je je to dôležité, a naozaj je to tak. 388 00:18:51,280 --> 00:18:54,080 Takže keď sa zelenou vlajkou kliknutie je opäť kúsok skladačky 389 00:18:54,080 --> 00:18:56,390 že začína Celý Scratch programu. 390 00:18:56,390 --> 00:19:02,140 Ale budeme sa začať volať že hlavné, táto funkcia známe ako hlavné. 391 00:19:02,140 --> 00:19:06,410 >> Teraz zatiaľ stretneme zovšeobecniť to nasledujúcim spôsobom. 392 00:19:06,410 --> 00:19:08,780 By sme mohli nazvať povedať funkciu. 393 00:19:08,780 --> 00:19:10,580 A to môže vyzerať konkrétne takto. 394 00:19:10,580 --> 00:19:11,770 No, a čo slučiek? 395 00:19:11,770 --> 00:19:16,540 Ak chceme začať konverziu alebo preklady viac Scratch na C, 396 00:19:16,540 --> 00:19:19,400 toto tu zrejme len hovorí, že "hello world" navždy. 397 00:19:19,400 --> 00:19:23,060 Takže ak spojíte tieto skripty s mačkou v Scratch, 398 00:19:23,060 --> 00:19:26,560 je to len ide, aby povedal v nejakom kreslenom bubliny, 399 00:19:26,560 --> 00:19:29,922 "Hello world, hello world, ahoj svet, "najmenších podrobností, navždy. 400 00:19:29,922 --> 00:19:33,130 Ak chceme urobiť niečo podobné v C, bude to vyzerať trochu záhadné. 401 00:19:33,130 --> 00:19:35,463 Ale môžeme dosiahnuť rovnaké výsledky, ako sme si nakoniec 402 00:19:35,463 --> 00:19:36,861 zistiť, syntax, ako je tento. 403 00:19:36,861 --> 00:19:39,360 Budem používať printf znovu, preto, že na konci dňa 404 00:19:39,360 --> 00:19:42,040 Chcem vytlačiť "Hello World". 405 00:19:42,040 --> 00:19:45,610 A ja som zrejme pomocou kľúčové slovo, ktoré nie je navždy. 406 00:19:45,610 --> 00:19:47,320 Je to miesto, kým slovo. 407 00:19:47,320 --> 00:19:49,650 Ale len sémanticky v Anglicky, zatiaľ čo druh 408 00:19:49,650 --> 00:19:52,120 navrhne nejaké slučke alebo cyklu. 409 00:19:52,120 --> 00:19:55,070 >> Tak, že sa stane, že kľúčové slovo, ktoré C používa. 410 00:19:55,070 --> 00:20:00,700 A aj keď pravda, prečo chvíľu pravda efektívne znamená navždy? 411 00:20:00,700 --> 00:20:04,240 No, keď, ako sme skoro vážiť viac, 412 00:20:04,240 --> 00:20:08,140 má túto v zátvorkách vedľa nej kde si môžete dať logický výraz. 413 00:20:08,140 --> 00:20:11,360 A tak dlho, ako je to výraz je pravdivý, tento kód, 414 00:20:11,360 --> 00:20:14,750 ako je označené medzi týmito dvoma zložené zátvorky, tak ako je to volanie, 415 00:20:14,750 --> 00:20:16,880 bude len držať znova a znova spustiť. 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 síce pravda prostriedky Len to navždy. 418 00:20:20,900 --> 00:20:23,480 Je to skoro hlúpe postaviť sa vyjadriť sám seba. 419 00:20:23,480 --> 00:20:26,590 Ale nebolo navždy kľúčové slovo v C. Bolo to. 420 00:20:26,590 --> 00:20:29,390 A tam bol veľmi jednoduchý Boolean výraz ako pravdivý. 421 00:20:29,390 --> 00:20:32,210 A tak to, uvidíme, dosahuje rovnaký výsledok. 422 00:20:32,210 --> 00:20:33,890 >> Ako inak by mohol implementovať slučku? 423 00:20:33,890 --> 00:20:36,980 No, Scratch by ste mohli pevný kód určitý počet 424 00:20:36,980 --> 00:20:39,430 iterácií v slučke tu. 425 00:20:39,430 --> 00:20:43,210 A tak to je presne to, čo sme mohli robiť v tejto verzii C, 426 00:20:43,210 --> 00:20:46,140 čím máme tzv pre slučku. 427 00:20:46,140 --> 00:20:49,850 A slučka sa tu deje iterovat trochu záhadne, 428 00:20:49,850 --> 00:20:54,100 z hodnoty 0 na up na, ale menej ako 10. 429 00:20:54,100 --> 00:20:55,955 >> Teraz premenné nuly. 430 00:20:55,955 --> 00:20:57,830 Možno nemal príležitosť na využitie týchto. 431 00:20:57,830 --> 00:21:02,516 Ale aký to má zmysel, všeobecne, premenné sme si povedali v minulom týždni? 432 00:21:02,516 --> 00:21:03,015 Čo je to? 433 00:21:03,015 --> 00:21:03,780 >> Divákov: Body. 434 00:21:03,780 --> 00:21:05,200 >> David J. Malan: na miesto? 435 00:21:05,200 --> 00:21:05,700 Oh, body. 436 00:21:05,700 --> 00:21:07,620 OK, sledovanie bodov, Napríklad, v hre. 437 00:21:07,620 --> 00:21:09,510 Alebo všeobecnejšie robí čo s premennou? 438 00:21:09,510 --> 00:21:10,450 Čo je to nástroj z nich? 439 00:21:10,450 --> 00:21:10,825 >> DIVÁKOV: 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 niečo, čo pre ukladanie. 442 00:21:13,000 --> 00:21:17,336 A tak nejako hlúpe vizuálne i použité Naposledy to bolo podobné sklenenej misy. 443 00:21:17,336 --> 00:21:19,710 A ak by sme chceli uložiť niečo vnútri premenné, 444 00:21:19,710 --> 00:21:21,918 Napríklad práve teraz hodnota je šesť, pretože tam 445 00:21:21,918 --> 00:21:23,450 šesť ping pong loptičky tu. 446 00:21:23,450 --> 00:21:26,158 Je to len nejaký druh skladovanie kontajner, ktorý pod kapotou 447 00:21:26,158 --> 00:21:30,030 je realizované s bitmi, 0s a 1s, ale počítač sa stane to urobiť. 448 00:21:30,030 --> 00:21:32,900 >> Takže v Scratch, keď sme Chcete mať premennú, 449 00:21:32,900 --> 00:21:34,840 môžeme použiť oranžový blok, ako je tento. 450 00:21:34,840 --> 00:21:37,050 Budeme volať, že počítadlo v tomto konkrétnom prípade. 451 00:21:37,050 --> 00:21:38,890 Inicializovaný som to 0. 452 00:21:38,890 --> 00:21:41,080 A to, čo som potom robiť? 453 00:21:41,080 --> 00:21:44,780 Navždy, hovorí čítač, ktorý v prípade, budete hrať s tým v Scratch, 454 00:21:44,780 --> 00:21:45,780 budete len vidieť Scratch. 455 00:21:45,780 --> 00:21:49,920 Mačka alebo čo kostým si na ním bude hovoriť číslo sa jedná. 456 00:21:49,920 --> 00:21:52,840 >> Zmena čítač 1 je ako je zvyšovanie o 1. 457 00:21:52,840 --> 00:21:56,580 A tak to bude počítať od tak čo, čo? 458 00:21:56,580 --> 00:21:59,114 Od 0 til nekonečna, alebo do Scratch prestávky, 459 00:21:59,114 --> 00:22:01,030 alebo kým sa trochu stratí záujem o sledovanie 460 00:22:01,030 --> 00:22:02,650 ako vysoko sa môže skutočne spoľahnúť. 461 00:22:02,650 --> 00:22:04,800 >> Tak ako môžeme previesť to C? 462 00:22:04,800 --> 00:22:06,480 Bude to vyzerať trochu záhadné. 463 00:22:06,480 --> 00:22:08,896 Ale na druhú stranu, keď sa pozriete na seba týchto riadkov jednotlivo 464 00:22:08,896 --> 00:22:10,410 že druh lineup všeobecne. 465 00:22:10,410 --> 00:22:13,526 Takže zrejme int bude mať nejaký zvláštny význam v C. 466 00:22:13,526 --> 00:22:14,400 Uvidíme znova. 467 00:22:14,400 --> 00:22:15,810 Mimochodom to znamená, že celé číslo. 468 00:22:15,810 --> 00:22:16,990 Tak to jednoducho znamená, že číslo. 469 00:22:16,990 --> 00:22:18,920 Tak to je druh sklenenej misy Chcem, jeden 470 00:22:18,920 --> 00:22:21,120 ktoré možno uložiť čísla, nie ping pong loptičky. 471 00:22:21,120 --> 00:22:25,520 A budem používať znamienko rovnosti tam priradiť jej hodnotu 0. 472 00:22:25,520 --> 00:22:29,440 Tak to je celkom ako sadu proti 0, ale v C. 473 00:22:29,440 --> 00:22:32,840 >> Medzitým, pričom platí, že je ekvivalent, samozrejme navždy, 474 00:22:32,840 --> 00:22:35,980 aj keď je to trochu záhadný, a potom vnútri zložených zátvoriek. 475 00:22:35,980 --> 00:22:39,188 A vy môžete myslieť na týchto zložených zátvorkách, ktoré si môžete písať na klávesnici, 476 00:22:39,188 --> 00:22:43,110 ako skutočne sú, ako je zakrivenie Tieto žlté slučky bloky nuly. 477 00:22:43,110 --> 00:22:45,700 To zahŕňa niekoľko riadkov kódu. 478 00:22:45,700 --> 00:22:48,120 >> Printf je stále Trochu teraz desivé, pretože som 479 00:22:48,120 --> 00:22:51,120 viď citácie nielen v zátvorkách. 480 00:22:51,120 --> 00:22:55,160 Ale čo iného je nové syntakticky v tomto prípade? 481 00:22:55,160 --> 00:22:57,300 Tam je percento d. 482 00:22:57,300 --> 00:22:58,551 A potom spätné lomítko n je tam. 483 00:22:58,551 --> 00:23:00,883 Sme vidieť, že pred aj aj keď som o tom nezmienil. 484 00:23:00,883 --> 00:23:01,886 Potom je tu čiarka. 485 00:23:01,886 --> 00:23:03,010 A potom je tu pult. 486 00:23:03,010 --> 00:23:05,010 >> Ale uvidíme v niekoľkých okamih, že toto je len 487 00:23:05,010 --> 00:23:09,080 štandardný spôsob, ako hovoriť vytlačiť "Desatinné číslo," citácie, koniec citátu, 488 00:23:09,080 --> 00:23:10,500 nejaké desatinné číslo. 489 00:23:10,500 --> 00:23:13,370 Ale ja som ti to povedať neskôr čo to desatinné číslo je. 490 00:23:13,370 --> 00:23:16,835 Takže na to, že tam je čiarka V tomto riadku hovorí, printf, 491 00:23:16,835 --> 00:23:18,710 znamená, že do toho pustite a tlač nejaké desatinné číslo. 492 00:23:18,710 --> 00:23:23,110 Jo, a mimochodom, je číslo Či už je hodnota tejto premennej. 493 00:23:23,110 --> 00:23:25,880 A tak, aby sa to viac jasné, uvidíme príklad 494 00:23:25,880 --> 00:23:30,930 onedlho zahŕňajúce presne printf v rámci reálneho C programov. 495 00:23:30,930 --> 00:23:33,472 >> Teraz už len stačí zabaliť niektoré z týchto konštruktov. 496 00:23:33,472 --> 00:23:36,680 Booleovské výrazy, nemusí mať príležitosť na využitie týchto vo vašom programe 497 00:23:36,680 --> 00:23:39,450 ale môžete veľmi dobre, najmä ak používate podmienok. 498 00:23:39,450 --> 00:23:43,460 A tak sa tieto dva príklady z Stieracie na mysli, ak x je menšie ako y, 499 00:23:43,460 --> 00:23:48,770 alebo ak x je menšie ako y a y je menej ako z, ako môžeme preložiť? 500 00:23:48,770 --> 00:23:50,810 >> No, v C je to len bude vyzerať takto. 501 00:23:50,810 --> 00:23:55,300 A trochu mystické, viac zátvorky, nejaké divné ampersand, ale v podstate 502 00:23:55,300 --> 00:23:59,160 myšlienky sú tak jednoduché, ako sú v puzzle kus sveta. 503 00:23:59,160 --> 00:24:02,690 Sme jednoducho kontrolovať, či niečo je menšia než niečo iné. 504 00:24:02,690 --> 00:24:03,910 >> Ako sa k podmienkam? 505 00:24:03,910 --> 00:24:09,710 Stručne povedané v angličtine, čo to kus Scratch kódu urobiť, hovoríte? 506 00:24:09,710 --> 00:24:11,050 >> Divákov: Porovná dve čísla. 507 00:24:11,050 --> 00:24:13,760 >> David J. Malan: Porovná dva čísla, a ak x je menšie ako y 508 00:24:13,760 --> 00:24:14,860 sa hovorí, že toľko. 509 00:24:14,860 --> 00:24:18,080 Ak x je väčšie ako y hovorí toľko, inak 510 00:24:18,080 --> 00:24:20,740 ak x je rovné y sa hovorí, že rovnako. 511 00:24:20,740 --> 00:24:22,180 Tak kde to x a y pochádzajú? 512 00:24:22,180 --> 00:24:22,680 Kto vie. 513 00:24:22,680 --> 00:24:25,380 Tento kus Scratch kód je vytrhnuté z kontextu. 514 00:24:25,380 --> 00:24:29,050 Ale to, čo chceme urobiť, je preložiť to len na chvíľu vidieť. 515 00:24:29,050 --> 00:24:31,660 >> Tak, ako sa dostanete pohodlne tento týždeň v Zadanie problému 516 00:24:31,660 --> 00:24:34,190 0 hrať v tomto svete na ľavej strane, si uvedomujú, 517 00:24:34,190 --> 00:24:36,940 že myšlienky sa nemení tento týždeň, alebo budúci, alebo mimo nej. 518 00:24:36,940 --> 00:24:38,690 Sme jednoducho bude začnite písať veci 519 00:24:38,690 --> 00:24:41,240 iným spôsobom s naším Klávesnice namiesto nášho myši. 520 00:24:41,240 --> 00:24:44,577 >> Takže, ak x je menšie ako y, a Je tam nejaké zátvorky, 521 00:24:44,577 --> 00:24:47,160 potom je tu nejaké zložené zátvorky Ďalším druhom zapouzdřit 522 00:24:47,160 --> 00:24:48,970 rovnako ako žlté skladačky robiť. 523 00:24:48,970 --> 00:24:53,000 A budem printf x je menšie ako y, a tak ďalej. 524 00:24:53,000 --> 00:24:56,540 >> Čo je pekné o C, ako môžete vidieť tu, 525 00:24:56,540 --> 00:25:00,480 je to, že nemusíte dostať túto hniezdenia, hniezdenia, hniezdenia je to nevyhnutne 526 00:25:00,480 --> 00:25:02,220 bude tlačiť svoj kód vpravo. 527 00:25:02,220 --> 00:25:04,990 Namiesto toho môžete mať všetko lineup úhľadne takhle. 528 00:25:04,990 --> 00:25:08,960 Ale to je len estetický detail uvidíme zase onedlho. 529 00:25:08,960 --> 00:25:09,660 >> V poriadku. 530 00:25:09,660 --> 00:25:13,290 Tak, že nás privádza späť k tento mystický hľadá programu. 531 00:25:13,290 --> 00:25:15,180 Poďme vlastne napísať nejaký kód. 532 00:25:15,180 --> 00:25:16,830 Teraz, ako sa vám ísť o písaní kódu? 533 00:25:16,830 --> 00:25:21,310 Všetky tie roky, ktoré ste vo vlastníctve Mac alebo PC, desktop alebo notebook, 534 00:25:21,310 --> 00:25:24,520 ste vlastne mal možnosť začať písať programový kód. 535 00:25:24,520 --> 00:25:27,050 Ale vy ste pravdepodobne chýba špeciálny typ programu. 536 00:25:27,050 --> 00:25:28,470 Určite môžete písať kód. 537 00:25:28,470 --> 00:25:30,740 Ale nemôžeš nutne, po vybalení z krabice, 538 00:25:30,740 --> 00:25:34,210 previesť, že zdrojový kód na strojovom kóde, 0s a 1s 539 00:25:34,210 --> 00:25:35,619 bez toho čo na vašom počítači? 540 00:25:35,619 --> 00:25:36,410 DIVÁKOV: 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 Teraz väčšina z vás asi nemajú vlastný kompilátor, 543 00:25:39,730 --> 00:25:41,259 Nikdy stiahli kompilátor. 544 00:25:41,259 --> 00:25:44,300 Ale uvidíte, môžete si ho stiahnuť rovnako ako väčšina iného kusu softvéru. 545 00:25:44,300 --> 00:25:47,470 Vo svete Mac OS, môžete stiahnuť alebo si stiahli už 546 00:25:47,470 --> 00:25:50,437 niečo, čo nazýva Xcode alebo GCC alebo Clang. 547 00:25:50,437 --> 00:25:52,270 Ak prídete od Svet Windows by sa vám mohlo 548 00:25:52,270 --> 00:25:56,190 stiahli Visual Studio, Visual Basic, prostredie, ako je to. 549 00:25:56,190 --> 00:25:59,200 Je tu desiatky prekladačov v týchto dňoch, ktoré môžete použiť. 550 00:25:59,200 --> 00:26:01,940 Ale tu krátke na to, je to, že by bolesť 551 00:26:01,940 --> 00:26:04,480 a, úprimne povedané, technologický nočná mora pre stovky 552 00:26:04,480 --> 00:26:07,680 ľudí s rôznymi počítačovej konfigurácie pre všetky 553 00:26:07,680 --> 00:26:09,800 konfigurovať svoje stroje rovnakým spôsobom, 554 00:26:09,800 --> 00:26:11,700 takže môžeme byť všetci na rovnakej stránke. 555 00:26:11,700 --> 00:26:15,240 >> Takže to, čo my, namiesto toho, robiť v CS50 je dáme vám 556 00:26:15,240 --> 00:26:18,349 štandardné prostredie, Linux prostredie, ktoré je 557 00:26:18,349 --> 00:26:20,140 bude vyzerať trochu niečo také. 558 00:26:20,140 --> 00:26:22,980 Uvidíte viac než to v Problém Set 1 špecifikácie, ktoré 559 00:26:22,980 --> 00:26:25,330 pôjde tento piatok v noci on-line. 560 00:26:25,330 --> 00:26:28,360 >> A čo to znamená je to, že odteraz 561 00:26:28,360 --> 00:26:32,060 sa bude môcť stiahnuť a nainštalovať program 562 00:26:32,060 --> 00:26:33,650 volal CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 A ak budete stiahnuť a nainštalovať ďalší program s názvom 564 00:26:36,275 --> 00:26:40,300 hypervisor, ktorý je len ozdobný spôsob, ako to dosiahnuť. 565 00:26:40,300 --> 00:26:44,600 Či už vlastníte Mac alebo PC alebo Linux alebo počítač Solaris, 566 00:26:44,600 --> 00:26:46,830 alebo čokoľvek blázon prevádzkové systém, ktorý používate, 567 00:26:46,830 --> 00:26:49,820 budete stiahnuť program nazýva hypervisor, ktorý je 568 00:26:49,820 --> 00:26:53,350 chystá spustiť CS50 Prístroj na vašom počítači 569 00:26:53,350 --> 00:26:55,430 bez ohľadu na to, čo je váš operačný systém. 570 00:26:55,430 --> 00:27:00,640 Hypervisor inými slovami prevádza naše veci na akomkoľvek jazyku, 571 00:27:00,640 --> 00:27:03,850 bez ohľadu na pokyny svojho vlastný počítač rozumie. 572 00:27:03,850 --> 00:27:04,962 >> Tak to je vrstvenie. 573 00:27:04,962 --> 00:27:06,920 A opäť, je to druh tematických v počítači 574 00:27:06,920 --> 00:27:08,722 veda, budova nad vecou. 575 00:27:08,722 --> 00:27:09,680 Môžete mať Windows. 576 00:27:09,680 --> 00:27:10,710 Môžete mať Mac OS. 577 00:27:10,710 --> 00:27:12,960 Ale od budúceho týždňa budete bude stiahli 578 00:27:12,960 --> 00:27:14,980 voľný kus softvéru nazýva hypervisor. 579 00:27:14,980 --> 00:27:17,800 Budeš si stiahli kus softvér s názvom CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Bude to beh na hypervisora, ktorý sa chystá spustiť na vašom počítači. 581 00:27:21,050 --> 00:27:23,030 A konečný výsledok je že každý z nás bude 582 00:27:23,030 --> 00:27:26,220 majú jednoduché okno, ako je to na vašom počítači Mac alebo PC 583 00:27:26,220 --> 00:27:30,160 ktoré nám dáva ilúziu všetky rovnaký operačný systém, 584 00:27:30,160 --> 00:27:32,800 bez akejkoľvek inej vplyv na vašom počítači. 585 00:27:32,800 --> 00:27:34,870 A môžete na celej obrazovke to a v podstate sa správajú 586 00:27:34,870 --> 00:27:37,550 ako keby sa systémom operačný systém s názvom Linux, 587 00:27:37,550 --> 00:27:40,270 , Ktorý je, čo CS50 Zariadenie je založené na. 588 00:27:40,270 --> 00:27:42,930 >> Takže poďme sa vlastne použiť teraz napísať program. 589 00:27:42,930 --> 00:27:45,450 Môžete napísať program pomocou aplikácie Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Môžete napísať program pomocou TextEdit alebo Poznámkový blok, 591 00:27:48,160 --> 00:27:51,880 alebo WordPad, alebo skoro žiadne slovo spracovanie programu ste niekedy používali. 592 00:27:51,880 --> 00:27:55,174 Ale skutočnosť je taká, nemali by ste používať naozaj niektorý z týchto programov. 593 00:27:55,174 --> 00:27:57,840 Určite nemali používať niečo ako Microsoft Word, ktorý 594 00:27:57,840 --> 00:28:01,120 má smelé obklad kurzívou, a väčšie fonty a menších písiem, 595 00:28:01,120 --> 00:28:03,560 pretože počítač nie je starostlivosť o nič z toho. 596 00:28:03,560 --> 00:28:05,600 Všetko je počítač bude sa starať o ich 597 00:28:05,600 --> 00:28:09,040 Angličtina ako inštrukcií napísaných v jazyku C. 598 00:28:09,040 --> 00:28:12,050 >> Takže, čo budeme robiť vo vnútri o CS50 spotrebiče 599 00:28:12,050 --> 00:28:14,290 je použiť program voľne k dispozícii, a to je 600 00:28:14,290 --> 00:28:17,360 predinštalovaná v tomto zariadenie, volal gedit. 601 00:28:17,360 --> 00:28:22,280 A gedit je proste super jednoduché textový editor, ako je Mac OS je TextEdit 602 00:28:22,280 --> 00:28:26,200 ako je Windows Poznámkový blok, čo sa deje na pozrite sa na niečo také. 603 00:28:26,200 --> 00:28:28,910 >> Takže to vlastne nie je pozrite sa na fotografie z tejto. 604 00:28:28,910 --> 00:28:32,580 Ale poďme skutočne ísť do samotné prostredie. 605 00:28:32,580 --> 00:28:36,090 Chystám sa ísť dopredu a prihlásiť, v tom druhom okne 606 00:28:36,090 --> 00:28:40,910 k môjmu CS50 Appliance, ktorý som pre-nainštalovaný na mojom notebooku tu. 607 00:28:40,910 --> 00:28:43,771 >> Všimnite si, že rovnako ako v systéme Windows a Mac OS, je to má nejaké ponuky. 608 00:28:43,771 --> 00:28:45,520 Rovnako ako Windows kladie je tam miesto 609 00:28:45,520 --> 00:28:47,020 Mac OS, čo ju radí tam. 610 00:28:47,020 --> 00:28:48,930 Ale realita je taká, že je to všetky druhy rovnaké. 611 00:28:48,930 --> 00:28:50,770 A tu je celý banda softvér. 612 00:28:50,770 --> 00:28:51,770 K dispozícii je Dropbox. 613 00:28:51,770 --> 00:28:54,780 Je tu celá partia príslušenstvo, grafické programy, ktoré budeme 614 00:28:54,780 --> 00:28:56,430 použiť neskôr v termíne pre problémové sady. 615 00:28:56,430 --> 00:28:59,650 K dispozícii je webový prehliadač postavený v tak že sa jedná o plnohodnotného počítača 616 00:28:59,650 --> 00:29:01,240 vnútri počítača. 617 00:29:01,240 --> 00:29:04,170 >> Ale budem Kliknutím na toto tlačidlo vľavo biela ikona tu 618 00:29:04,170 --> 00:29:05,890 čo je ikona Gedit. 619 00:29:05,890 --> 00:29:09,650 A bude to otvoriť okno , Že má tri panely k nemu, 620 00:29:09,650 --> 00:29:12,590 ľavá, horná jeden, a dole jeden. 621 00:29:12,590 --> 00:29:16,071 >> Teraz je to v tomto pravom hornom ten, ktorý Chystám sa vlastne napísať nejaký kód. 622 00:29:16,071 --> 00:29:16,820 Tak poďme na to,. 623 00:29:16,820 --> 00:29:19,040 Chystám sa ísť na Súbor, Uložiť. 624 00:29:19,040 --> 00:29:22,100 A možno nikdy vidieť tento konkrétny okno predtým. 625 00:29:22,100 --> 00:29:23,620 Ale je to ako Mac OS alebo Windows. 626 00:29:23,620 --> 00:29:25,490 Je to len okno sa všetky zložky 627 00:29:25,490 --> 00:29:27,290 že mám vnútri počítača. 628 00:29:27,290 --> 00:29:30,320 >> A ja budem šetriť súbor ako hello.c. 629 00:29:30,320 --> 00:29:32,690 A ja idem dopredu a kliknite na tlačidlo Uložiť. 630 00:29:32,690 --> 00:29:36,364 A teraz všimnúť mám kartu v ľavom hornom rohu s názvom hello.c. 631 00:29:36,364 --> 00:29:38,280 Takže asi dosť pozná, aj keď som sa 632 00:29:38,280 --> 00:29:40,240 ako použiť tento konkrétny program. 633 00:29:40,240 --> 00:29:44,890 >> A teraz budem písať v tých docela mystický postupnosť príkazov 634 00:29:44,890 --> 00:29:46,360 ktoré sme videli pred chvíľou. 635 00:29:46,360 --> 00:29:49,330 Patria štandardné I / O.h. 636 00:29:49,330 --> 00:29:50,600 Viac informácií o tom čoskoro. 637 00:29:50,600 --> 00:29:55,670 Int main void, otvorený kučeravé rovnátka, uzavretá zložená zátvorka. 638 00:29:55,670 --> 00:30:01,570 A potom vnútri som tam, že je kde sme mali "Hello World", bodkočiarka. 639 00:30:01,570 --> 00:30:03,100 A teraz uložiť. 640 00:30:03,100 --> 00:30:08,780 >> Takže toto je napísaný v jazyku C program, napísané, teda v zdrojovom kóde. 641 00:30:08,780 --> 00:30:10,720 Ale nemôžem len spustiť tento program. 642 00:30:10,720 --> 00:30:13,390 Som tak trochu chcel zdvojnásobiť kliknite na ikonu niekde, 643 00:30:13,390 --> 00:30:16,390 ale žiadny symbol neexistuje iný ako súbor zdrojového kódu. 644 00:30:16,390 --> 00:30:20,359 Čo zase, je proces, ktorý sa Musím spustiť tento súbor v? 645 00:30:20,359 --> 00:30:21,150 DIVÁKOV: 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ôznych počítačoch, urobiť rôznymi spôsobmi. 648 00:30:24,890 --> 00:30:27,480 Ale to, čo sme urobili tu v CS50 Appliance, ktoré je 649 00:30:27,480 --> 00:30:31,260 zástupcu o tom, ako by ste mohli to na mnohých rôznych systémoch to, 650 00:30:31,260 --> 00:30:34,036 je, že som jednoducho ísť do spustiť príkaz s názvom make. 651 00:30:34,036 --> 00:30:35,660 A Skontrolujte, či je doslova robiť, že. 652 00:30:35,660 --> 00:30:36,640 Urob mi program. 653 00:30:36,640 --> 00:30:39,060 >> Tak, aby sa chystá spustiť kompilátor pre mňa. 654 00:30:39,060 --> 00:30:42,160 A názov programu Chcem, aby ich pozdravil. 655 00:30:42,160 --> 00:30:43,510 Teraz, aby ich program. 656 00:30:43,510 --> 00:30:47,170 A aby je dosť šikovný Uvedomujem si, že keď poviem, aby ahoj, 657 00:30:47,170 --> 00:30:50,980 to bude vyzerať automaticky k súboru s názvom hello.c 658 00:30:50,980 --> 00:30:53,420 len preto, že je to spôsob, ako je nastavené. 659 00:30:53,420 --> 00:31:00,300 >> Takže keď teraz stlačíte klávesu Enter tu, to blázon mystický linka zrovna popravený. 660 00:31:00,300 --> 00:31:02,720 A ver mi, ako dlho, do niekoľkých dní, 661 00:31:02,720 --> 00:31:05,590 budete rozumieť tomu, čo všetko z toho nezmyslu prostriedkov. 662 00:31:05,590 --> 00:31:11,150 Ale teraz, len viem, že robiť spúšťané vykonávanie prekladača. 663 00:31:11,150 --> 00:31:13,290 Inými slovami, je zistené, prekladač na mojom počítači 664 00:31:13,290 --> 00:31:14,820 to je pre-nainštalované na CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 že budeme ruky, aby vám v probléme 1. sete. 666 00:31:16,560 --> 00:31:20,990 A potom vzal hello.c ako vstup, a produkoval zrejme 667 00:31:20,990 --> 00:31:23,040 0s a 1s ako výstup. 668 00:31:23,040 --> 00:31:29,410 >> A štandardne to, čo robí, je, že šetrí tie 0s a 1s do súboru s názvom Dobrý deň. 669 00:31:29,410 --> 00:31:33,180 A aj keď túto syntax tiež mohlo byť pre vás nové, jednoducho tým, bodka 670 00:31:33,180 --> 00:31:37,110 lomítko ahoj bude Spôsob, akým som spustiť tento program. 671 00:31:37,110 --> 00:31:40,360 >> Pre túto chvíľu, a aspoň na pár týždňov, takmer všetky programy 672 00:31:40,360 --> 00:31:44,230 píšeme sa bude v čiernej a bielej textové okná. 673 00:31:44,230 --> 00:31:47,006 Žiadna myš žiadny klikanie žiadna okná, žiadne ikony. 674 00:31:47,006 --> 00:31:49,630 Chystáme sa, aby to jednoduché a zamerať sa na základné myšlienky 675 00:31:49,630 --> 00:31:52,490 spočiatku, než sa dostaneme k niečomu vyššej úrovni, napríklad, 676 00:31:52,490 --> 00:31:56,410 ako vypuknúť hru, ktorú sme si rozprávali o v prvej prednáške minulý týždeň. 677 00:31:56,410 --> 00:32:00,820 >> Takže keď som stlačte klávesu Enter tu, je to ekvivalent v texte len prostredí 678 00:32:00,820 --> 00:32:03,272 zdvojnásobiť kliknutím na ikonu s názvom Dobrý deň. 679 00:32:03,272 --> 00:32:05,480 Čo si myslíte, že vôľa stane, keď stlačíte Enter a potom? 680 00:32:05,480 --> 00:32:07,120 >> Divákov: Bude to vypíše "Hello World". 681 00:32:07,120 --> 00:32:10,000 >> David J. Malan: Dúfajme, že to bude tlačiť "Hello World". 682 00:32:10,000 --> 00:32:11,370 A skutočne to urobil. 683 00:32:11,370 --> 00:32:13,690 Teraz tam bol nejaký mystický syntaxe tu. 684 00:32:13,690 --> 00:32:15,950 Poďme vzad len za moment, a uvidíme, či 685 00:32:15,950 --> 00:32:19,530 nemožno spustiť odvodzovať len tým, že hrať sa, snaží a ak nie je, 686 00:32:19,530 --> 00:32:21,130 o tom, čo sa tu deje. 687 00:32:21,130 --> 00:32:23,609 Čo keď som sa zbaviť spätného lomítka n? 688 00:32:23,609 --> 00:32:25,650 Teraz niektorí z vás, ktorí si naprogramovať pred asi 689 00:32:25,650 --> 00:32:27,054 okamžite vedieť, čo to znamená. 690 00:32:27,054 --> 00:32:29,220 Ale pre tých z vás, ktorí si Nikdy naprogramované, 691 00:32:29,220 --> 00:32:34,052 aspoň, že pre seba, čo sa deje zmeniť, keď som znova spustiť tento program? 692 00:32:34,052 --> 00:32:37,010 Takže som ísť späť do môjho malé čierne a biele okno, ktoré 693 00:32:37,010 --> 00:32:39,290 je okno, v ktorom Môžem zostaviť to. 694 00:32:39,290 --> 00:32:41,130 Idem prekompilovať ahoj. 695 00:32:41,130 --> 00:32:43,520 Chystáme sa vidieť rovnaký kryptické sekvencie príkazov. 696 00:32:43,520 --> 00:32:45,719 A ja budem robiť bodka lomítko ahoj. 697 00:32:45,719 --> 00:32:48,260 A teraz niekto, ak by, kto nikdy naprogramované, 698 00:32:48,260 --> 00:32:49,770 čo by mohlo byť tentoraz inak? 699 00:32:49,770 --> 00:32:50,020 Jo. 700 00:32:50,020 --> 00:32:51,840 >> Divákov: Nebude to zastaviť tlač "hello world". 701 00:32:51,840 --> 00:32:52,660 >> David J. Malan: Ide to na-- ľúto? 702 00:32:52,660 --> 00:32:54,210 >> Divákov: Nezastaví ho tlačiť? 703 00:32:54,210 --> 00:32:55,810 >> David J. Malan: nebude zastaviť tlač "hello world". 704 00:32:55,810 --> 00:32:56,560 Takže nie je zlý nápad. 705 00:32:56,560 --> 00:32:58,633 Ďalšie nápady? 706 00:32:58,633 --> 00:32:59,132 Jo. 707 00:32:59,132 --> 00:33:00,060 >> DIVÁKOV: Chybové hlásenie? 708 00:33:00,060 --> 00:33:01,750 >> David J. Malan: Chyba správy, OK, môže byť. 709 00:33:01,750 --> 00:33:02,250 Čo ešte? 710 00:33:02,250 --> 00:33:05,479 Divákov: To by mohlo vytlačiť držiak s bodkočiarkou, rovnako? 711 00:33:05,479 --> 00:33:08,270 David J. Malan: môže tlačiť držiak s bodkočiarkou rovnako. 712 00:33:08,270 --> 00:33:11,950 Takže možno, že spätné lomítko a potom je nejaká druh terminous to je dôležité. 713 00:33:11,950 --> 00:33:14,860 Akékoľvek iné myšlienky? 714 00:33:14,860 --> 00:33:16,412 >> Takže všetko dobré nápady. 715 00:33:16,412 --> 00:33:18,370 A v skutočnosti, to sa deje ako chybové hlásenie. 716 00:33:18,370 --> 00:33:20,400 To je asi najpravdepodobnejšia byť odpoveď všeobecne 717 00:33:20,400 --> 00:33:22,420 v najbližších niekoľkých týždňoch ako sa učíme kód tu. 718 00:33:22,420 --> 00:33:27,680 >> Ale teraz si uvedomiť, že počítače len to, čo poviete im to. 719 00:33:27,680 --> 00:33:30,400 Rovnako ako absurdné arašidy maslo a želé príklad. 720 00:33:30,400 --> 00:33:33,860 Naše ľudské počítače mali len robiť to, čo ste povedal, je k tomu. 721 00:33:33,860 --> 00:33:36,250 Takže v tomto prípade, ak nehovorte počítač 722 00:33:36,250 --> 00:33:41,190 pohybovať, aby blikajúci kurzor ďalší riadok, že to nebude robiť. 723 00:33:41,190 --> 00:33:45,390 Takže keď som spustiť tento program Teraz si všimnite rozdielu. 724 00:33:45,390 --> 00:33:46,900 >> Vyzerá to ako chyba. 725 00:33:46,900 --> 00:33:49,190 Je to estetický problém, snáď. 726 00:33:49,190 --> 00:33:53,310 Ale čo je iné na to Výstup proti posledná zrejme? 727 00:33:53,310 --> 00:33:53,810 Jo. 728 00:33:53,810 --> 00:33:54,920 >> Divákov: To neurobil nový riadok. 729 00:33:54,920 --> 00:33:56,586 >> David J. Malan: to neurobil nový riadok. 730 00:33:56,586 --> 00:33:58,740 Teraz tých z vás, ktorí majú možno uskutočnenej webové stránky 731 00:33:58,740 --> 00:34:01,910 predtým, možno viete o BR tag alebo tag odseku, 732 00:34:01,910 --> 00:34:03,120 veľmi podobné v duchu. 733 00:34:03,120 --> 00:34:06,680 Webový prehliadač bude ignorovať, kým to povedať, čo presne robiť. 734 00:34:06,680 --> 00:34:10,020 Podobne, je jazyk C len robiť to, čo ste to povedať, aby to. 735 00:34:10,020 --> 00:34:12,730 >> Tak z toho dôvodu, že Všetky tieto príklady, 736 00:34:12,730 --> 00:34:15,350 tak ďaleko, majú trochu mimochodom mal tento spätné lomítko 737 00:34:15,350 --> 00:34:18,560 tam, že je to prostriedok ktorú si vyjadriť sám seba 738 00:34:18,560 --> 00:34:21,380 ako znak nového riadku, aby som tak povedal. 739 00:34:21,380 --> 00:34:26,219 A môžete trochu oceniť, možno, že by to vyzerať trochu hlúpo 740 00:34:26,219 --> 00:34:27,070 keď už nič iné. 741 00:34:27,070 --> 00:34:29,150 Ak by som chcel nový riadok, len klávesy Enter a potom druh 742 00:34:29,150 --> 00:34:32,219 z porážať kód takého by naozaj trieť vám správnu cestu. 743 00:34:32,219 --> 00:34:33,830 A aj keď nie naozaj záleží na tomto mieste, 744 00:34:33,830 --> 00:34:35,830 budete si uvedomiť, že to nie je zvlášť 745 00:34:35,830 --> 00:34:37,870 dobre vyzerajúci kus kódu. 746 00:34:37,870 --> 00:34:39,969 >> A tak to, čo svet Pred rokmi sa rozhodli ich 747 00:34:39,969 --> 00:34:43,420 že ak chcete, aby kurzor na nový riadok výslovne, 748 00:34:43,420 --> 00:34:46,332 musíte explicitne povedať, nový riadok, spätné lomítko n. 749 00:34:46,332 --> 00:34:48,040 A je tu nejaký iný symboly, ako je to. 750 00:34:48,040 --> 00:34:50,719 Ale teraz už si len zamerať sa na spätné lomítko n. 751 00:34:50,719 --> 00:34:53,790 >> Teraz poďme, aby program trochu zaujímavejšie. 752 00:34:53,790 --> 00:34:59,200 Chystám sa ísť dopredu a Tentoraz otvoriť nový súbor. 753 00:34:59,200 --> 00:35:02,520 Idem uložiť ako ahoj-1.C. 754 00:35:02,520 --> 00:35:05,540 A len tak pre srandu, budem ísť dať do mojej zložky Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Ako uvidíte v CS50 dokumentáciu zariadenia, 756 00:35:09,030 --> 00:35:11,210 neskôr tento týždeň problém Nastavte 1, budeme podporovať 757 00:35:11,210 --> 00:35:13,230 použiť Dropbox alebo nejaký ekvivalent servis, 758 00:35:13,230 --> 00:35:15,430 pretože potom všetky vaše kód je bude automaticky zálohovať. 759 00:35:15,430 --> 00:35:17,830 A tak to je dôvod, prečo som išiel do tejto zložky tu. 760 00:35:17,830 --> 00:35:20,230 >> A teraz budem písať trochu iný program. 761 00:35:20,230 --> 00:35:24,740 Patria štandardné I / O.h, int main neplatné. 762 00:35:24,740 --> 00:35:29,660 A potom tu printf, Hello World, čo je presne rovnaký ako predtým. 763 00:35:29,660 --> 00:35:32,450 >> Ale teraz chcem niečo vytlačiť to je trochu inak. 764 00:35:32,450 --> 00:35:34,800 Chcem vytlačiť, povedal: "Dobrý deň, David." 765 00:35:34,800 --> 00:35:37,590 Tak jo, samozrejme, to by snáď 766 00:35:37,590 --> 00:35:40,360 sa stať, že keď som prekompilovať tento program, spustite ho, 767 00:35:40,360 --> 00:35:41,840 to bude hovoriť "Ahoj, David." 768 00:35:41,840 --> 00:35:45,160 >> Ale čo keď chcem predstaviť tento druh premenné, 769 00:35:45,160 --> 00:35:49,240 pojem kontajnera, ktorý sa deje pre uloženie D - v-i-d a nie je ťažké kód je 770 00:35:49,240 --> 00:35:50,600 do svojho programu. 771 00:35:50,600 --> 00:35:53,430 No, čo keby som začal niečo také? 772 00:35:53,430 --> 00:35:57,120 >> Reťazec s, takže to je variabilný. 773 00:35:57,120 --> 00:36:00,250 Ak chcete reťazec, tiež známy ako slovo alebo frázu. 774 00:36:00,250 --> 00:36:03,485 Postupnosť znakov je to, čo sme v programovaní zavolať reťazec. 775 00:36:03,485 --> 00:36:06,610 Sme len tak všeobecne volanie Je to, pretože je to pekný jednoduchý názov. 776 00:36:06,610 --> 00:36:08,010 Ale ja som to mohol hovoriť čokoľvek. 777 00:36:08,010 --> 00:36:12,920 >> Chystám sa povedať reťazec s rovná quote koniec citátu: "David," bodkočiarka. 778 00:36:12,920 --> 00:36:18,330 A teraz chcem vložiť D - v-i-d na to, čo som tlač. 779 00:36:18,330 --> 00:36:23,720 A ako sme videli ukážku na obrazovka niektoré špeciálne syntaxe 780 00:36:23,720 --> 00:36:26,050 ktorá nám umožnila náhradou v hodnote. 781 00:36:26,050 --> 00:36:29,250 Čo bolo zvláštne symbol pred pár diapozitívy? 782 00:36:29,250 --> 00:36:30,040 >> Tak percent. 783 00:36:30,040 --> 00:36:33,830 V tej dobe to bolo percento d na desatinné číslo. 784 00:36:33,830 --> 00:36:35,850 To nie je naozaj zdá, v tomto prípade relevantná. 785 00:36:35,850 --> 00:36:38,650 Ukázalo sa, že je tu ďalšie symbol percent, 786 00:36:38,650 --> 00:36:42,810 ktorý je s percent, čo je skratka pre zástupný reťazec. 787 00:36:42,810 --> 00:36:49,350 >> Takže teraz, veľmi jednoducho, že som ísť robiť ahoj-1, 788 00:36:49,350 --> 00:36:54,210 pretože tento súbor sa volá Dobrý deň, 1.c, a stlačte Enter. 789 00:36:54,210 --> 00:36:56,230 A ja som to pokašlal. 790 00:36:56,230 --> 00:36:57,394 Čo sa deje? 791 00:36:57,394 --> 00:37:00,560 No, tu je miesto, kde sa musíme začať uvedomiť, že sme v tomto príkaze 792 00:37:00,560 --> 00:37:02,810 line prostredie, tento Iba text životného prostredia. 793 00:37:02,810 --> 00:37:06,114 Niet kliknutí na ikony ako zložky práve teraz. 794 00:37:06,114 --> 00:37:07,280 A myslím, že späť pred chvíľou. 795 00:37:07,280 --> 00:37:10,740 V akej zložke som povedal Bol som záchranu môjho kódu? 796 00:37:10,740 --> 00:37:11,657 Takže zložky Dropbox. 797 00:37:11,657 --> 00:37:12,989 Mohol by boli povolaní nič. 798 00:37:12,989 --> 00:37:14,530 Ale to sa stane byť nazývaný Dropbox. 799 00:37:14,530 --> 00:37:18,380 Tak som sa nejako musieť dvakrát kliknite na že zložka Dropbox s cieľom získať 800 00:37:18,380 --> 00:37:21,657 do neho a dostať sa na mojej Kód volal ahoj-1.c. 801 00:37:21,657 --> 00:37:24,490 V skutočnosti, nechajte ma ísť dopredu a minimalizovať toto okno len na chvíľu. 802 00:37:24,490 --> 00:37:27,560 Rovnako ako Windows a Mac OS, sú zložky v Linuxe. 803 00:37:27,560 --> 00:37:29,410 K dispozícii sú zložky v CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Je to práve teraz sa obmedzovať aby sme sa tohto textového prostredia. 805 00:37:32,380 --> 00:37:34,700 >> Ale keď som sa dvakrát kliknite na Dropbox, všimnite si, že 806 00:37:34,700 --> 00:37:37,210 je súbor, ktorý chcem skompilovať. 807 00:37:37,210 --> 00:37:41,430 Ale musím to čierna a biela okno terminálu, aby som tak povedal. 808 00:37:41,430 --> 00:37:45,750 Ale ja potrebujem, preto sa pohybovať do tejto zložky alebo adresára. 809 00:37:45,750 --> 00:37:48,290 Tak trochu tajomný, ale zvyknete si na to taky. 810 00:37:48,290 --> 00:37:50,430 >> Vo svete Linuxu, čo je opäť prevádzkové 811 00:37:50,430 --> 00:37:54,860 Systém nám dochádza vnútri CS50 Spotrebič, je tu príkaz s názvom CD. 812 00:37:54,860 --> 00:37:58,310 Čo znamená, že môžete urobiť CD, priestor, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, zmena adresára. 814 00:37:59,900 --> 00:38:00,400 Presne tak. 815 00:38:00,400 --> 00:38:02,890 Späť v deň, kedy boli ľudia vynájsť počítače a prevádzku 816 00:38:02,890 --> 00:38:05,806 systémy, ako je toto, oni chceli typ Najmenej úhozy možné. 817 00:38:05,806 --> 00:38:08,760 Takže najjednoduchší spôsob, ako povedať, Zmeňte adresár bol CD. 818 00:38:08,760 --> 00:38:13,910 >> Takže keď som narazila CD, priestor Dropbox, Všimnite si, čo sa tu zmenilo. 819 00:38:13,910 --> 00:38:16,480 Vnútri zátvoriek Prístroj je druh 820 00:38:16,480 --> 00:38:19,360 o ma humoring a pripomína mi, kde som. 821 00:38:19,360 --> 00:38:21,480 Takže otvorená zložka Dropbox. 822 00:38:21,480 --> 00:38:24,950 Keby som teraz typ LS list, opäť stručné, 823 00:38:24,950 --> 00:38:27,540 pretože ľudia nechceli zadajte Späť v deň l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Takže sa namiesto toho robil to LS. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Všimnite si, vidím dve veci, ahoj-1.C, a potom to mystická vec, zdroj 1m. 827 00:38:35,740 --> 00:38:38,310 To je len môj spôsob, ako povedať Zdrojový kód pre týždeň 1 v pondelok. 828 00:38:38,310 --> 00:38:42,020 Je to zložka, Stiahol som si z Webové stránky CS50, že som sa dnes ráno 829 00:38:42,020 --> 00:38:43,990 a stačí dať do zariadení vopred. 830 00:38:43,990 --> 00:38:47,550 >> Ale teraz to jediné, čo máme starostlivosť o robí tento program. 831 00:38:47,550 --> 00:38:50,440 Takže keď som typ, aby ahoj-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Sakra. 833 00:38:51,320 --> 00:38:53,060 Niečo sa pokazilo. 834 00:38:53,060 --> 00:38:54,580 Takže poďme podpichovať to od seba. 835 00:38:54,580 --> 00:38:58,489 A bohužiaľ to je miesto, kde sa veci trochu stresujúce na prvý, 836 00:38:58,489 --> 00:39:00,280 aspoň pokiaľ ste Nikdy predtým naprogramovaný. 837 00:39:00,280 --> 00:39:00,980 >> Môj bože. 838 00:39:00,980 --> 00:39:04,990 Napísal som dva riadky programu a Mám štyri riadky chýb. 839 00:39:04,990 --> 00:39:07,180 Takže to, čo sa tu deje. 840 00:39:07,180 --> 00:39:11,370 V prvom rade vždy posúvať späť a nájsť prvé chybové hlásenie, 841 00:39:11,370 --> 00:39:15,730 pretože často prekladača len sa zmiasť tým, čo vy a ja. 842 00:39:15,730 --> 00:39:17,000 Prekladača sú dosť hlúpi. 843 00:39:17,000 --> 00:39:18,360 Budú robiť, čo len povedz im to. 844 00:39:18,360 --> 00:39:21,484 A ak si pomýliť, sú to len bude trochu hádzať svoje ruky 845 00:39:21,484 --> 00:39:25,010 a možno aj hodiť viac chybové správy než sú skutočne relevantné. 846 00:39:25,010 --> 00:39:26,380 >> Tak sa poďme pozrieť na prvú. 847 00:39:26,380 --> 00:39:27,540 Super mystický na prvom mieste. 848 00:39:27,540 --> 00:39:31,050 Ale oznámenia, tu je názov súbor, v ktorom som sa posral zrejme. 849 00:39:31,050 --> 00:39:36,570 Colon 5, dvojbodka 5 znamená len na linka 5 v piatom znaku. 850 00:39:36,570 --> 00:39:39,760 Takže piaty stĺpec znakov, ak chcete, chyba. 851 00:39:39,760 --> 00:39:41,870 Použitie nelegálnej identifikátora reťazca. 852 00:39:41,870 --> 00:39:43,120 Mali ste na mysli štandardné n? 853 00:39:43,120 --> 00:39:44,850 >> Nie, myslel som reťazec. 854 00:39:44,850 --> 00:39:47,640 A potom je to trochu kopírovanie a vkladanie 855 00:39:47,640 --> 00:39:50,700 to, čo som napísal naozaj kresliť môj pozornosť tam, kde som to posral. 856 00:39:50,700 --> 00:39:54,260 Takže z nejakého dôvodu C, alebo aspoň prekladač 857 00:39:54,260 --> 00:39:56,470 nerozumie slovo reťazec. 858 00:39:56,470 --> 00:39:57,890 A to preto, že sme si to. 859 00:39:57,890 --> 00:40:01,440 Takže reťazec neexistuje v C. Čo CS50 robí, 860 00:40:01,440 --> 00:40:03,380 Počas prvých niekoľkých týždňov iba triedy, 861 00:40:03,380 --> 00:40:05,700 Je nám poskytnúť nejaké školenie kolesá, aby som tak povedal. 862 00:40:05,700 --> 00:40:11,160 A dáme týchto koliesok vnútri špeciálneho súboru s názvom CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Takže toto je druhá z dvoch súboru názvy, ktoré zrejme skončí dot h. 864 00:40:14,970 --> 00:40:16,300 Poďme vzad. 865 00:40:16,300 --> 00:40:19,360 Printf je vyhlásenie alebo funkcia že zrejme tlačí niečo 866 00:40:19,360 --> 00:40:20,580 na obrazovku. 867 00:40:20,580 --> 00:40:23,470 Ale vy ste ma vidieť realizovať printf, vpravo. 868 00:40:23,470 --> 00:40:26,360 Niekto rokmi realizovaný printf. 869 00:40:26,360 --> 00:40:30,420 V akom súbore sa staviť on alebo si dať vykonávania 870 00:40:30,420 --> 00:40:34,270 pre printf, kód pre printf? 871 00:40:34,270 --> 00:40:36,860 >> V súbore s názvom Standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 V skutočnosti, je to pravdepodobne v dva súbory, štandardné I / O.h, 873 00:40:39,930 --> 00:40:42,650 čo je skratka pre hlavičky súborov a štandardné I / O.c, 874 00:40:42,650 --> 00:40:44,060 čo je skratka pre C zdrojového kódu. 875 00:40:44,060 --> 00:40:48,220 Takže on alebo ona pred niekoľkými rokmi zvalil kód, ktorý oni písali do tohto súboru 876 00:40:48,220 --> 00:40:51,240 takže ľudia ako my rokov neskôr mohol zahrnúť, 877 00:40:51,240 --> 00:40:53,040 aby som tak povedal, v našich vlastných programov. 878 00:40:53,040 --> 00:40:56,320 >> A vskutku, to je to, čo libry nasledované slovom patrí robí. 879 00:40:56,320 --> 00:41:00,250 Vyzerá to na miestnom pevnom disku, nájde súbor s názvom Standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 a potom účinne kópie a vloží ju do svojho vlastného súboru. 881 00:41:03,840 --> 00:41:07,210 Takže môj program vie ako tlačiť na obrazovku. 882 00:41:07,210 --> 00:41:11,120 >> Takže podľa tejto logiky, kde je reťazec definovaný? 883 00:41:11,120 --> 00:41:12,260 >> Divákov: 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, čo sme, jadro personál, urobil. 886 00:41:15,540 --> 00:41:19,590 Vymysleli sme niekoľko dátových typov, aby som tak povedal, ako reťazec, 887 00:41:19,590 --> 00:41:22,370 okrem tých, ktoré dostanete zadarmo, ako int. 888 00:41:22,370 --> 00:41:26,010 A uvidíme, iní ako char na charakter a pár ďalších. 889 00:41:26,010 --> 00:41:30,670 Vnútri CS50.h zrejme je aspoň nejaká zmienka reťazca. 890 00:41:30,670 --> 00:41:34,980 >> Takže teraz mi dovoľte pokračovať a znova spustite make ahoj-1. 891 00:41:34,980 --> 00:41:37,100 Budem priblížiť znova a cez prsty. 892 00:41:37,100 --> 00:41:41,370 Teraz by mať z jedného zmeniť Opravil som väčšinu vecí. 893 00:41:41,370 --> 00:41:42,100 Ale sakra. 894 00:41:42,100 --> 00:41:44,290 Viac percent, než dátové argumenty. 895 00:41:44,290 --> 00:41:45,980 Čo som urobil zle tentoraz? 896 00:41:45,980 --> 00:41:47,420 >> Takže je to stále dosť záhadné. 897 00:41:47,420 --> 00:41:51,560 Ale táto chyba je na riadok 7 a 21 znakov. 898 00:41:51,560 --> 00:41:53,880 Takže poďme sa pozrieť sem. 899 00:41:53,880 --> 00:41:55,350 Je to trochu jemnejšie. 900 00:41:55,350 --> 00:41:59,167 Ale ak si myslíte, že o tom, čo základné myšlienky sú tu, 901 00:41:59,167 --> 00:42:00,500 možno by sme mohli dráždiť to od seba. 902 00:42:00,500 --> 00:42:02,300 >> Takže printf je názov funkcie. 903 00:42:02,300 --> 00:42:04,960 Zátvorky, tak ďaleko, je rovnako ako to, čo sme dali okolo 904 00:42:04,960 --> 00:42:07,005 veci sme okolo ako vstupy do funkcie. 905 00:42:07,005 --> 00:42:08,921 V poriadku, len svojvoľné ľudskej konvencie. 906 00:42:08,921 --> 00:42:09,919 Použiť zátvorky. 907 00:42:09,919 --> 00:42:12,460 Vnútri týchto zátvorkách sme boli uvedení v úvodzovkách, 908 00:42:12,460 --> 00:42:14,810 a potom sa ako reťazec "Hello World". 909 00:42:14,810 --> 00:42:18,160 >> Ale v tom predchádzajúcom príklade veľmi krátko robil sa pozrieme na Scratch. 910 00:42:18,160 --> 00:42:22,590 A my sme mali percent d, čo ešte bol vo vnútri týchto zátvorkách 911 00:42:22,590 --> 00:42:23,730 že som zavolal ústne? 912 00:42:23,730 --> 00:42:24,230 Jo. 913 00:42:24,230 --> 00:42:28,166 >> Divákov: Tak to je to, čo ste s [Nepočuteľné] v rámci [nepočuteľné] 914 00:42:28,166 --> 00:42:30,200 čo to [nepočuteľné]? 915 00:42:30,200 --> 00:42:31,200 David J. Malan: Presne tak. 916 00:42:31,200 --> 00:42:32,700 Takže sme mali percent d. 917 00:42:32,700 --> 00:42:36,620 Ale potom sme mali blízko citácie, čiarka, čítač. 918 00:42:36,620 --> 00:42:37,120 Presne tak. 919 00:42:37,120 --> 00:42:40,680 Špecifikované sme, čo chceme robiť ako zástupný symbol. 920 00:42:40,680 --> 00:42:44,621 Takže to, čo budem robiť tu je čiarka, čo chceš, aby som dal? 921 00:42:44,621 --> 00:42:45,120 Divákov: S. 922 00:42:45,120 --> 00:42:46,828 David J. Malan: S, preto, že je v tomto prípade 923 00:42:46,828 --> 00:42:48,700 je názov zo zásobnej nádoby. 924 00:42:48,700 --> 00:42:50,180 To je názov tejto sklenenej misy. 925 00:42:50,180 --> 00:42:53,610 Zatiaľ čo predtým to bolo kontraproduktívne v tom, že Jednoduchý príklad Scratch sme sa pozreli na. 926 00:42:53,610 --> 00:42:56,630 Takže teraz, ktorý urobil dva zmeny, dovoľte mi, aby som priblížiť 927 00:42:56,630 --> 00:42:59,800 a skúste ešte raz skompilovať tento program. 928 00:42:59,800 --> 00:43:01,596 >> Teraz vidím, že tajomnú riadok. 929 00:43:01,596 --> 00:43:03,470 Ale to je vlastne meno prekladača. 930 00:43:03,470 --> 00:43:04,886 Clang je názov prekladača. 931 00:43:04,886 --> 00:43:07,100 Skontrolujte, či je mi to šetrí bolesť hlavy niekedy 932 00:43:07,100 --> 00:43:09,830 písať, že dlho šialený príkaz von. 933 00:43:09,830 --> 00:43:14,900 Takže teraz, keď sa mi bodka lomítko ahoj-1, Mal by som vidieť "Dobrý deň, David." 934 00:43:14,900 --> 00:43:16,450 >> Celkom nezaujatý, že jo? 935 00:43:16,450 --> 00:43:18,158 Mohli sme urobiť to oveľa jednoduchšie 936 00:43:18,158 --> 00:43:20,940 bez hovorí o premenných a CS50.h a všetko. 937 00:43:20,940 --> 00:43:23,080 Tak poďme, aby to trochu zaujímavejšie. 938 00:43:23,080 --> 00:43:31,010 >> Okrem CS50.h, s vecou, ​​ako je reťazec 939 00:43:31,010 --> 00:43:34,550 vyhlásil, knižnica CS50 má tiež niekoľko funkcií. 940 00:43:34,550 --> 00:43:38,520 Tak ako pred rokmi, niekto napísal printf a vložte ho do štandardnej I / O.h 941 00:43:38,520 --> 00:43:39,530 a nejaký iný súbor. 942 00:43:39,530 --> 00:43:44,010 >> My, zamestnanci CS50, napísal funkciu volal getchar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 Vezmi_int, GetLongLong, GetString, a dáme ti vnútri súboru 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 vnútri o CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 A ľudia môžu tiež stiahnuť on-line, ak 947 00:43:53,880 --> 00:43:55,880 chcem dať ich na ich vlastných počítačoch rovnako. 948 00:43:55,880 --> 00:44:00,880 Čo znamená, že sme vytvorili funkcie, ktoré sa dostanú vstup od užívateľa. 949 00:44:00,880 --> 00:44:02,930 Neviem, čo to všetko týchto údajov typy. 950 00:44:02,930 --> 00:44:06,490 Vezmi_int je celkom jednoduché, ako získať celé číslo nejako od užívateľa. 951 00:44:06,490 --> 00:44:09,980 A GetString je pravdepodobne ako get slovo alebo veta od užívateľa. 952 00:44:09,980 --> 00:44:11,770 >> Tak sa poďme zamerať na to. 953 00:44:11,770 --> 00:44:14,710 A ja idem späť do zariadení a budem pokračovať 954 00:44:14,710 --> 00:44:20,790 a tento súbor uložiť ako, povedzme je ahoj-2c ako moja druhá verzia. 955 00:44:20,790 --> 00:44:23,030 A poďme urobiť niekoľko zmien. 956 00:44:23,030 --> 00:44:25,800 >> Tentoraz namiesto tvrdé kódovanie David, ktorý 957 00:44:25,800 --> 00:44:29,120 je neuveriteľne konzistentný ale nezaujatý program 958 00:44:29,120 --> 00:44:32,640 Čo keby som namiesto toho robiť getString? 959 00:44:32,640 --> 00:44:35,660 Teraz všimnete getString má otvorenú zátvorku, 960 00:44:35,660 --> 00:44:38,500 uzavretá zátvorka, pretože nepotrebuje žiadny vstup. 961 00:44:38,500 --> 00:44:40,850 Je to len pôjde dostať reťazec od užívateľa. 962 00:44:40,850 --> 00:44:42,460 >> A teraz pár slov o druhej syntax. 963 00:44:42,460 --> 00:44:45,439 Bodkočiarkami iba ukončiť riadok kódu. 964 00:44:45,439 --> 00:44:46,730 Nemusíte ich všade. 965 00:44:46,730 --> 00:44:48,896 Ale to len znamená, že som vykonáva sa tento riadok kódu. 966 00:44:48,896 --> 00:44:51,080 Dovoľte mi, aby som presunúť na iný vyhlásenie alebo funkcie. 967 00:44:51,080 --> 00:44:53,010 String deklaruje premennú. 968 00:44:53,010 --> 00:44:55,920 String je ako tvrdiť, že daj mi misku, prosím. 969 00:44:55,920 --> 00:44:57,940 A dovoľte mi, aby som dal reťazec v ňom. 970 00:44:57,940 --> 00:44:59,430 >> A teraz znamienko rovnosti. 971 00:44:59,430 --> 00:45:03,510 Čo je to znamienko rovnosti v podstate rovnocenné? 972 00:45:03,510 --> 00:45:04,500 >> DIVÁKOV: Priradiť. 973 00:45:04,500 --> 00:45:06,190 >> David J. Malan: Jo, priradenie hodnoty. 974 00:45:06,190 --> 00:45:09,872 Takže keď som napríklad volanie Táto funkcia GetString, 975 00:45:09,872 --> 00:45:12,830 a uvidíme, v okamihu, keď je bude vyzve užívateľa na zadanie reťazca. 976 00:45:12,830 --> 00:45:17,810 To je ako nechať ma potom napísať D-a-v-i-d na kus papiera. 977 00:45:17,810 --> 00:45:21,060 A keď hovorím, že reťazec s rovná getString, 978 00:45:21,060 --> 00:45:24,140 rovná nie je naozaj rovná programovanie C. 979 00:45:24,140 --> 00:45:27,880 To znamená, že priradenie z pravej strany strane na ľavej strane. 980 00:45:27,880 --> 00:45:29,510 >> Tak som sa dostal reťazec. 981 00:45:29,510 --> 00:45:32,785 A znamienko rovnosti znamená dať pri skladovaní kontajnera s názvom s. 982 00:45:32,785 --> 00:45:36,730 A odovzdať túto funkciu vypnúť, aby printf skutočne robiť svoju vec. 983 00:45:36,730 --> 00:45:39,790 >> Takže konečný výsledok potom bude vyzerať trochu inak. 984 00:45:39,790 --> 00:45:40,840 Poďme robiť, aby ahoj-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Buď by mohlo fungovať. 987 00:45:45,260 --> 00:45:46,450 Ste po spolu. 988 00:45:46,450 --> 00:45:47,940 Urobiť 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á sa mi, mať nekonečný slučka alebo tak niečo. 991 00:45:54,620 --> 00:45:55,453 Nič sa nedeje. 992 00:45:55,453 --> 00:45:56,134 Prečo? 993 00:45:56,134 --> 00:45:57,805 >> Divákov: Je to robiť nekonečnej slučky. 994 00:45:57,805 --> 00:45:59,430 David J. Malan: Je to nekonečná slučka. 995 00:45:59,430 --> 00:46:02,710 Je to trochu na mňa čaká na v skutočnosti poskytnúť niektoré vstupné signály. 996 00:46:02,710 --> 00:46:05,800 Tak nechaj ma ísť napred a zadajte Davida, a stlačte Enter. 997 00:46:05,800 --> 00:46:07,230 A teraz sa hovorí, že "Dobrý deň, David." 998 00:46:07,230 --> 00:46:09,040 Ak mám ho spustiť znova. 999 00:46:09,040 --> 00:46:11,530 Poďme zadajte Rob: "Ahoj, Robe." 1000 00:46:11,530 --> 00:46:13,900 >> Teraz je to najhoršie užívateľské rozhranie vôbec. 1001 00:46:13,900 --> 00:46:16,110 Užívateľ je zrejme mal vedieť, čo má robiť. 1002 00:46:16,110 --> 00:46:17,120 Ale bez ohľadu na to. 1003 00:46:17,120 --> 00:46:19,570 Pomocou týchto rovnakej budove bloky rovnako ako v Scratch, 1004 00:46:19,570 --> 00:46:24,980 môžeme tento problém vyriešiť a povedať niečo ako vaše meno, prosím, hrubého čreva, 1005 00:46:24,980 --> 00:46:27,820 priestor, uzavretý citácie, v blízkosti zátvorka, bodkočiarka. 1006 00:46:27,820 --> 00:46:30,680 Takže opäť mnoho hlúposť so syntaxou. 1007 00:46:30,680 --> 00:46:34,040 >> Ale všimnite Práve som pridal skladač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 teraz, keď som opakovať to, ahoj-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Počkaj chvíľu. 1011 00:46:41,180 --> 00:46:41,830 Čo sa deje? 1012 00:46:41,830 --> 00:46:43,570 Nie je to správa inak ,. 1013 00:46:43,570 --> 00:46:44,200 Jo. 1014 00:46:44,200 --> 00:46:46,010 >> Divákov: nebol spustený, aby znova. 1015 00:46:46,010 --> 00:46:47,968 >> David J. Malan: Ja nie spustite ho znova, že jo. 1016 00:46:47,968 --> 00:46:49,430 Tak som zmenil svoj zdrojový kód. 1017 00:46:49,430 --> 00:46:50,638 Ale opäť je tu ten prúd. 1018 00:46:50,638 --> 00:46:54,530 Zdrojový kód pomocou kompilátora dáva ste nový objektový kód, alebo 0s a 1s. 1019 00:46:54,530 --> 00:47:00,209 Tak som potrebné skutočne opakovanie make ahoj-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, niečo, čo sa zdá, že sa 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 meno, prosím. 1023 00:47:05,390 --> 00:47:09,990 A teraz byť jasné, prečo je kurzor na rovnakom riadku? 1024 00:47:09,990 --> 00:47:10,490 Presne tak. 1025 00:47:10,490 --> 00:47:13,020 Nechcel som dať spätné lomítko n tu v mojom kóde. 1026 00:47:13,020 --> 00:47:16,110 Takže teraz môžem napísať niečo ako Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Môžem to spustiť znovu a zadajte niečo ako Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 a dostaneme iný program znovu a znovu a znovu. 1029 00:47:22,250 --> 00:47:28,940 >> Teraz nakoniec budeme potrebovať Ak chcete použiť niekoľko rôznych možností. 1030 00:47:28,940 --> 00:47:32,860 Musíme zaviesť nakoniec niektoré Podmienky, ktorých je robiť veci podmienečne. 1031 00:47:32,860 --> 00:47:35,550 Možno slučky, takže môžeme urobiť veci znova a znova. 1032 00:47:35,550 --> 00:47:38,220 >> Možno, že by bolo pekné, keby sme mohol realizovať svoje vlastné funkcie, 1033 00:47:38,220 --> 00:47:41,355 ako by sme mohli realizovať naše vlastné printf alebo naše vlastné verzie getString 1034 00:47:41,355 --> 00:47:45,870 a GetFlow, pretože v konečnom dôsledku aj Pomocou tohto príkazového riadka prostredia 1035 00:47:45,870 --> 00:47:49,780 môžeme urobiť aj tie vizuálne zaujímavé veci. 1036 00:47:49,780 --> 00:47:51,950 >> Naozaj na záver mi dovoľte to. 1037 00:47:51,950 --> 00:47:54,020 Chystám sa ísť dopredu a zavrieť tieto okná 1038 00:47:54,020 --> 00:47:57,400 a otvorte túto ikonu tu čo je len väčší 1039 00:47:57,400 --> 00:48:00,020 verzii, ktorý obsahoval okno terminálu. 1040 00:48:00,020 --> 00:48:02,329 Takže Gedit má nielen miesto pre môj kód, 1041 00:48:02,329 --> 00:48:05,620 ale tiež postavený v terminálovom okne, čierne a biele okno, kde by som mohol spustiť 1042 00:48:05,620 --> 00:48:06,230 príkazy. 1043 00:48:06,230 --> 00:48:08,600 >> Náhodou som sa otvoriť väčšia verzia tohto. 1044 00:48:08,600 --> 00:48:11,170 A teraz idem do zložka, ktorú som už 1045 00:48:11,170 --> 00:48:13,150 dať vopred na internetových stránkach kurzu je. 1046 00:48:13,150 --> 00:48:16,720 A ja idem do toho a otvoriť súbor s názvom thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 ktorý bol napísaný niekým iným. 1048 00:48:18,710 --> 00:48:21,220 >> A ak sa pozrieme na to, to nie je druh kódu 1049 00:48:21,220 --> 00:48:24,370 budeme písať, pretože Cieľom tohto kódu 1050 00:48:24,370 --> 00:48:28,450 bolo napísať najkrajší hľadá kód, ktorý on alebo ona by mohol, 1051 00:48:28,450 --> 00:48:31,290 bez ohľadu na to, či ďalší človek mohol niekedy 1052 00:48:31,290 --> 00:48:33,660 pochopiť tento kód. 1053 00:48:33,660 --> 00:48:37,050 >> V skutočnosti, každý rok je tu, čo je volal obfuscated C súťaž, ktorá 1054 00:48:37,050 --> 00:48:39,570 je pre skutočné mágov, ktorí píšu Kód, ktorý nikto iný nemôže čítať, 1055 00:48:39,570 --> 00:48:42,050 ale že robí niečo, čo buď veľmi jednoduché a naozaj úžasné. 1056 00:48:42,050 --> 00:48:43,890 A sme si mysleli by sme uzavrieť s týmto pohľadom 1057 00:48:43,890 --> 00:48:48,300 na niečo, čo je celkom úžasný ste mohli vidieť raz. 1058 00:48:48,300 --> 00:48:52,650 Ale my skončíme na to poznámka, bodka lomítko, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 To je teda to, čo vás čaká. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> To je pre CS50. 1062 00:48:58,500 --> 00:48:59,935 Uvidíme sa v stredu. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Prehrávanie hudby] 1065 00:49:10,016 --> 00:53:31,883