1 00:00:00,000 --> 00:00:01,500 >> [Přehrávání hudby] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Tak to je CS50 a to je konec jednoho týdne. 4 00:00:16,110 --> 00:00:20,760 Takže bych vám představit můj bývalý advisee, Anděl Duff, nejen to, kdo dělá 5 00:00:20,760 --> 00:00:25,460 iPhone 5 stojí, stejně jako to řečnický pult, on také dělá auta. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Jak to jde, všichni? 8 00:00:29,510 --> 00:00:31,980 Chci jen říct něco něco o Formula SAE, které jsem 9 00:00:31,980 --> 00:00:32,604 jsem kapitán. 10 00:00:32,604 --> 00:00:33,437 Je to tým z MIT. 11 00:00:33,437 --> 00:00:35,520 Chci jen říct, kluci trochu o tom 12 00:00:35,520 --> 00:00:37,520 a doufejme, že vytvářet nějaký zájem. 13 00:00:37,520 --> 00:00:41,590 >> Takže jen projít pár věcí, o našem týmu. 14 00:00:41,590 --> 00:00:43,640 Takže jsme zcela Student běh, ve kterém všechny 15 00:00:43,640 --> 00:00:47,300 o návrhu členů, simulovat, test, a výrobce subsystém 16 00:00:47,300 --> 00:00:48,090 vozu. 17 00:00:48,090 --> 00:00:51,240 Máme vlastní dílnu a garáží, a N52-- nebo líto, 18 00:00:51,240 --> 00:00:54,140 N51-- což je stejné budově jako MIT Science Museum. 19 00:00:54,140 --> 00:00:55,990 A my jsme lidé že řídit auto. 20 00:00:55,990 --> 00:00:58,340 Tam je národní soutěž na začátku léta, 21 00:00:58,340 --> 00:01:01,215 a pak tam jsou menší přestřelka soutěže v průběhu celého roku. 22 00:01:01,215 --> 00:01:04,400 A pak budeme dělat školení řidičů dní, aby se noví členové seznámeni. 23 00:01:04,400 --> 00:01:08,280 >> Naše sestavení dny jsou na V sobotu od 11 hodin do 8 hodin. 24 00:01:08,280 --> 00:01:11,060 Obědy a večeře se starají z, z Bertucci je a Beantown 25 00:01:11,060 --> 00:01:12,130 resp. 26 00:01:12,130 --> 00:01:15,260 Máme týdenní setkání a Seminář, který je na zápočet. 27 00:01:15,260 --> 00:01:18,560 Což je nového od tohoto semestru, a to bude také pro další pololetí, 28 00:01:18,560 --> 00:01:19,940 takže si můžete přes-REG na to. 29 00:01:19,940 --> 00:01:22,960 A pak tu máme projektování, obchod, a CAD dny v týdnu, 30 00:01:22,960 --> 00:01:26,870 zatímco členové samostatně CAD díly, aby akciové et cetera. 31 00:01:26,870 --> 00:01:29,200 >> Takže pro elektrické engineering týmu 32 00:01:29,200 --> 00:01:31,110 máme tažné, vysokého napětí systému, 33 00:01:31,110 --> 00:01:33,390 který běží na nominální 300 V, která obsahuje 34 00:01:33,390 --> 00:01:35,360 motory, regulátory motorů, a akumulátory. 35 00:01:35,360 --> 00:01:37,235 Pak jsme horší napětí systému, který běží 36 00:01:37,235 --> 00:01:40,180 na 12 voltů, což zahrnuje kontroly, CAN uzly, mozek 37 00:01:40,180 --> 00:01:41,570 box, a palubní deska. 38 00:01:41,570 --> 00:01:43,890 Co se týče CS jde, děláme má správa www stránek 39 00:01:43,890 --> 00:01:47,940 že musíme udělat pro události, členství změny, nové obrázky a PR materiály. 40 00:01:47,940 --> 00:01:51,540 A pak máme kód, který kontroluje auto pro naše kontroly trakce, zahájení 41 00:01:51,540 --> 00:01:55,750 kontrola, kontrola pomlčka, točivý moment vektorování, a regenerační brzdové systémy, které 42 00:01:55,750 --> 00:01:59,170 běží typicky v MATLABu, Simulink a LabView. 43 00:01:59,170 --> 00:02:00,910 >> Řeknu vám něco o autě. 44 00:02:00,910 --> 00:02:02,470 Takže je to asi 500 liber. 45 00:02:02,470 --> 00:02:04,285 Je to pravidla omezena na 85 kw. 46 00:02:04,285 --> 00:02:08,310 To má 2 EMRAX 207 motorů v zpět, jeden pro každé zadní kolo. 47 00:02:08,310 --> 00:02:11,880 Má vlastní vestavěné akumulátory od Hranolové A123 sáčku buněk, 48 00:02:11,880 --> 00:02:14,780 v celkové výši 300 voltů a 5,6 kw hodin. 49 00:02:14,780 --> 00:02:17,950 A to je přímý pohon s 2,64-1 drive poměr. 50 00:02:17,950 --> 00:02:20,970 Zde je několik fotografií my se o tom v soutěži. 51 00:02:20,970 --> 00:02:25,820 Tady je zpět, kužel, a tady jsou motory, 52 00:02:25,820 --> 00:02:29,682 ty velké černé disky pod et pánské Manus. 53 00:02:29,682 --> 00:02:32,140 Zde je snímek, který jsem vytáhl z našeho programu soutěže. 54 00:02:32,140 --> 00:02:35,389 A to je jen srovnání naší auto několik komerčně dostupných automobilů, 55 00:02:35,389 --> 00:02:38,380 jako KTM XBOW, Ariel Atom a Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Pokud jste obeznámeni s cenou, moc táhnout váhu dolarů na koňských sil, 57 00:02:42,110 --> 00:02:44,930 dolarů na točivý moment, a naše auto fouká všechny z vody. 58 00:02:44,930 --> 00:02:47,520 Pokud máte nějaké dotazy, zapisovat tuto e-mailovou adresu. 59 00:02:47,520 --> 00:02:50,800 Střílet nám e-mail na fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Jsme rádi, že mluvit o něco, co bys chtěl. 61 00:02:53,350 --> 00:02:55,600 Harvard studenti jsou druh menšiny v týmu. 62 00:02:55,600 --> 00:02:58,350 Máte-li jakékoli dotazy týkající se že prosím, střílet nám e-mail, 63 00:02:58,350 --> 00:03:00,810 šťastný mluvit, a já jdu na hlavu zpátky k Davidovi. 64 00:03:00,810 --> 00:03:01,550 Díky. 65 00:03:01,550 --> 00:03:02,466 Vážím si toho, chlapi. 66 00:03:02,466 --> 00:03:03,615 [APPLAUSE] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel strávil léto zde s námi spolupracuje na akademické půdě v CS50 69 00:03:10,980 --> 00:03:11,480 letos v létě. 70 00:03:11,480 --> 00:03:13,505 A navíc k práci na věci jako binární žárovky 71 00:03:13,505 --> 00:03:16,090 on vlastně opravdu otevřeli eyes-- a důl v particular-- 72 00:03:16,090 --> 00:03:20,535 na co se opravdu na křižovatce ne hardwaru a softwaru může být. 73 00:03:20,535 --> 00:03:23,410 Ve skutečnosti je hodně věcí, které jen cestoval jste po jsou v konečném důsledku 74 00:03:23,410 --> 00:03:26,030 nejprve vytvořit v softwaru, a pak nakonec vymyslel 75 00:03:26,030 --> 00:03:27,299 v reálném světě v hardwaru. 76 00:03:27,299 --> 00:03:29,590 Takže pokud máte zájem zkoumání tohoto křižovatku, 77 00:03:29,590 --> 00:03:31,430 třeba přijmout tuto skupinu. 78 00:03:31,430 --> 00:03:34,140 >> Nyní mezitím ti z vás, kteří jsou fanoušky technologií, 79 00:03:34,140 --> 00:03:36,140 a produkty Apple v zejména vědět, že existuje 80 00:03:36,140 --> 00:03:37,860 bylo pár oznámení včera. 81 00:03:37,860 --> 00:03:39,776 Ale mysleli jsme si, že bychom ukázat si ten, který vyšel 82 00:03:39,776 --> 00:03:43,590 pár dní před, že jste možná ještě neviděl. 83 00:03:43,590 --> 00:03:46,150 >> Jörgen EGHAMMER: Víte, jednou za čas něco 84 00:03:46,150 --> 00:03:49,540 přijde, že mění způsob, jakým žijeme. 85 00:03:49,540 --> 00:03:53,479 Zařízení tak jednoduché a intuitivní používat to cítí téměř povědomé. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Představujeme 2015 katalog IKEA. 88 00:04:04,138 --> 00:04:10,420 Není to digitální kniha nebo e-kniha, je to kniha, kniha. 89 00:04:10,420 --> 00:04:14,440 >> První věc, kterou si uvědomit, není kabely ani napájecí kabel. 90 00:04:14,440 --> 00:04:18,519 2015 Katalog IKEA je plně nabitá, 91 00:04:18,519 --> 00:04:20,550 a životnost baterie je věčný. 92 00:04:20,550 --> 00:04:27,300 Rozhraní je 7,5 od 8 palce, ale lze rozšířit na 15 o 8 centimetrů. 93 00:04:27,300 --> 00:04:32,410 Navigace je založena na taktilní dotek Technologie, které můžete skutečně cítit. 94 00:04:32,410 --> 00:04:37,120 >> Obsah je dodáván s předinstalovaným přes 328 stránek s vysokým rozlišením 95 00:04:37,120 --> 00:04:40,180 inspirativních bytový nápady. 96 00:04:40,180 --> 00:04:43,740 Chcete-li zahájit procházení stačí stisknout a táhnout. 97 00:04:43,740 --> 00:04:50,870 Zprava doleva se pohybovat vpřed, zleva doprava se pohybovat dozadu. 98 00:04:50,870 --> 00:04:52,770 >> Všimněte si něco jiného? 99 00:04:52,770 --> 00:04:53,780 To je pravda. 100 00:04:53,780 --> 00:04:55,190 Žádné zpoždění. 101 00:04:55,190 --> 00:04:58,400 Každý křišťálově čistá strana zatížení okamžitě, 102 00:04:58,400 --> 00:05:00,586 bez ohledu na to, jak rychle se pohybovat. 103 00:05:00,586 --> 00:05:03,710 Chcete-li získat rychlý přehled, jen držet ji v dlani, 104 00:05:03,710 --> 00:05:06,816 a pouze pomocí palcem, rychlost procházení obsahu. 105 00:05:06,816 --> 00:05:10,930 >> Pokud zjistíte něco, co chcete uložit na později, můžete jednoduše vytvořit záložku. 106 00:05:10,930 --> 00:05:17,620 A i když zavřete aplikaci, můžete snadno najít záložku znovu. 107 00:05:17,620 --> 00:05:18,490 Amazing. 108 00:05:18,490 --> 00:05:20,434 >> [SMÍCH] 109 00:05:20,434 --> 00:05:21,406 [APPLAUSE] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Takže to nás přivádí k Konec jednoho týdne. 112 00:05:29,870 --> 00:05:31,760 Již několik oznámení. 113 00:05:31,760 --> 00:05:33,440 Takže řezů je nyní ve vývoji. 114 00:05:33,440 --> 00:05:36,860 Přejděte na tuto adresu URL zde někdejší mezi podnikem a pátek v poledne 115 00:05:36,860 --> 00:05:39,960 skutečně určit, zda jste Mezi ty méně příjemné, více 116 00:05:39,960 --> 00:05:41,690 pohodlné, nebo něco mezi tím. 117 00:05:41,690 --> 00:05:44,511 >> To je obvykle jednou z těch, věci, které jen tak vědět. 118 00:05:44,511 --> 00:05:47,510 A ve skutečnosti ty z vás, kteří jsou méně komfortní asi víte tolik, 119 00:05:47,510 --> 00:05:49,634 ti z vás, kteří jsou více komfortní vědět co nejvíce, 120 00:05:49,634 --> 00:05:54,960 a znovu, pokud si nejste zcela jisti, který z těch lopat se dostanou do jste 121 00:05:54,960 --> 00:05:56,210 asi někde mezi. 122 00:05:56,210 --> 00:05:59,810 Ale buďte ujištěni, můžete vyměnit Po několika týdnech, pokud to bude nutné. 123 00:05:59,810 --> 00:06:02,620 >> Mezitím se na příští týden nezačneme části samy o sobě, 124 00:06:02,620 --> 00:06:04,760 ale flash oddíly, které jsou otevřené pro všechny studenty. 125 00:06:04,760 --> 00:06:08,220 Tuto neděli na místě, aby zveřejněny na webových stránkách kurzu 126 00:06:08,220 --> 00:06:10,190 budeme mít jeden pro ty méně příjemné, 127 00:06:10,190 --> 00:06:12,470 jakož i jedna pro ty pohodlnější. 128 00:06:12,470 --> 00:06:15,460 A ti, někde mezi Můžete si vybrat, který z těch dvou, 129 00:06:15,460 --> 00:06:17,360 nebo obojí, pokud chcete, aby sit-in na. 130 00:06:17,360 --> 00:06:19,630 A zaměření těch, bude nakonec na C, 131 00:06:19,630 --> 00:06:22,440 které budeme pokračovat v naší rozhovor dnes. 132 00:06:22,440 --> 00:06:25,070 >> Problém nastavení 0 je mezitím doufejme, že ve vašich rukou. 133 00:06:25,070 --> 00:06:27,500 Oficiálně kvůli zítra, Čtvrtek v poledne. 134 00:06:27,500 --> 00:06:29,490 Pokud hotovost v jednom Vašich pět pozdních dnech, 135 00:06:29,490 --> 00:06:31,780 které by přivést ji až v pátek v poledne. 136 00:06:31,780 --> 00:06:34,420 Problém set 1 zatím bude zveřejněny na internetových stránkách kursu je. 137 00:06:34,420 --> 00:06:37,381 A tohle bude naše první nájezd jako třída do C. 138 00:06:37,381 --> 00:06:40,630 A to je problém nastavit spec, která vás přes mnoho mechaniky, co 139 00:06:40,630 --> 00:06:43,960 jsme začali mluvit o pondělí, a budeme pokračovat v rozhovoru o dnes. 140 00:06:43,960 --> 00:06:46,770 C, Linux, CS50 zařízení, to vše 141 00:06:46,770 --> 00:06:48,990 bude na vás čekají ve specifikaci. 142 00:06:48,990 --> 00:06:52,840 >> Úřední hodiny zatím probíhají, v pregraduální jídelně. 143 00:06:52,840 --> 00:06:56,240 Vydejte se na této adrese zde vidět naplánovat pro dnešek a zítřek, 144 00:06:56,240 --> 00:06:57,930 pokud byste chtěli podílet. 145 00:06:57,930 --> 00:07:01,920 Otázky Mezitím, aby vás mít možnost klást otázky 146 00:07:01,920 --> 00:07:05,860 asynchronně, 24/7, uvědomit si, že jste nejsou omezeny na oddíly a kanceláře 147 00:07:05,860 --> 00:07:09,530 hodin, ale spíše tento nástroj zde CS50 Diskutujte na této adrese 148 00:07:09,530 --> 00:07:12,150 Bude kurzu je on-line bulletin board software, přes který 149 00:07:12,150 --> 00:07:15,030 můžete klást otázky spolužáci a také personál. 150 00:07:15,030 --> 00:07:18,492 Takže mějte na paměti, že zdroje stejně. 151 00:07:18,492 --> 00:07:20,200 Zatím tradice začíná tento pátek. 152 00:07:20,200 --> 00:07:23,200 Jak jste možná zahlédli od Minulou středu je teaser video, 153 00:07:23,200 --> 00:07:25,510 Máme tradici nejvíce každý pátek během funkčního období 154 00:07:25,510 --> 00:07:28,750 braní asi 50 studentů a personál místní restaurace zvané 155 00:07:28,750 --> 00:07:31,510 Oheň a led, na který jsme obvykle spojeny některé absolventy 156 00:07:31,510 --> 00:07:33,850 nebo přátelé z průmyslu obecně usilovat 157 00:07:33,850 --> 00:07:35,780 , aby se velké třídy pocit menší. 158 00:07:35,780 --> 00:07:37,560 Takže je to naprosto neformální oběd. 159 00:07:37,560 --> 00:07:40,160 Parta z nás, personál zejména bude hrát škatule, hejbejte se 160 00:07:40,160 --> 00:07:43,360 a popovídat si se studenty o 50, život mimo 50, 161 00:07:43,360 --> 00:07:46,510 život v budoucnu, reálný svět, Mluvím o pracovních příležitostech 162 00:07:46,510 --> 00:07:47,680 s přáteli v průmyslu. 163 00:07:47,680 --> 00:07:51,110 >> Takže pokud byste se k nám připojit tento pátek, zamiřte do této adrese zde. 164 00:07:51,110 --> 00:07:54,180 Počet míst je omezen, ale my to uděláme recurringly po celou dobu. 165 00:07:54,180 --> 00:07:57,380 Zamiřte tam cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 A pokud se nechcete dostat do tentokrát, ne se bát. 167 00:07:59,380 --> 00:08:02,390 Uděláme to znovu následujících týdnech také. 168 00:08:02,390 --> 00:08:05,434 >> Tak to je ten obrázek jsme malovali minulý týden, 169 00:08:05,434 --> 00:08:07,350 a pravděpodobně jste byli pustily do tak daleko. 170 00:08:07,350 --> 00:08:10,360 Ale zkusme se připojit teď na to, co budeme dělat dnes 171 00:08:10,360 --> 00:08:11,440 a dál. 172 00:08:11,440 --> 00:08:14,760 Mohl bych mít jeden dobrovolník? 173 00:08:14,760 --> 00:08:16,000 V pořádku, nebo více. 174 00:08:16,000 --> 00:08:18,460 A co tady na konec, v modré košili. 175 00:08:18,460 --> 00:08:20,329 Pojď nahoru, Jak se jmenujete? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 Takže Alana, jen za moment-- nice to meet ty-- 179 00:08:25,100 --> 00:08:28,260 bude hrát roli této funkce zde. 180 00:08:28,260 --> 00:08:31,290 Fialový blok máme nazývá se tak daleko funkce. 181 00:08:31,290 --> 00:08:34,830 Takže to, co já jdu dopředu tady a nabídnout Alana 182 00:08:34,830 --> 00:08:38,380 je trochu jmenovku, aby se jasné, jakou roli hrajete. 183 00:08:38,380 --> 00:08:39,753 >> Takže si bude říkat blok. 184 00:08:39,753 --> 00:08:41,419 Chcete-li jít dopředu a dát si to. 185 00:08:41,419 --> 00:08:43,169 A jdeme na udržet tento super jednoduché. 186 00:08:43,169 --> 00:08:46,180 V případě, že cílem v ruce je prostě nyní realizovat se Alana, 187 00:08:46,180 --> 00:08:49,710 Tento takzvaný říkají blok, Zde je návod, jak to bude fungovat. 188 00:08:49,710 --> 00:08:52,574 I have-- nazvěme ji argument nebo parametr, 189 00:08:52,574 --> 00:08:54,240 je to opravdu jen prázdný list papíru. 190 00:08:54,240 --> 00:08:57,239 A je to bílá až trochu připomínat na bílém poli, do kterého jste 191 00:08:57,239 --> 00:08:58,080 můžete psát slova. 192 00:08:58,080 --> 00:09:00,660 >> Mezitím jsem jdu sem. 193 00:09:00,660 --> 00:09:06,560 Chystám se jít dopředu a napsat H-E-L-L-O čárkou svět. 194 00:09:06,560 --> 00:09:09,972 A teď, jak říká programátor, ne skutečně vědí, jak něco říct. 195 00:09:09,972 --> 00:09:12,180 Můžu přijít se slovy, ale ne nutně 196 00:09:12,180 --> 00:09:15,220 vědět, jak vyjádřit sám sebe ústně nebo na obrazovce. 197 00:09:15,220 --> 00:09:17,280 A tak to, co budu udělat, je tento kus 198 00:09:17,280 --> 00:09:21,157 funkčnosti, jehož input-- Argument nebo, jak my říkáme, 199 00:09:21,157 --> 00:09:23,990 Napsal jsem o tomto kousku paper-- a budu ji zadávat. 200 00:09:23,990 --> 00:09:26,831 >> A opravdu to je role, která funkce v programovacím jazyce 201 00:09:26,831 --> 00:09:27,330 může hrát. 202 00:09:27,330 --> 00:09:29,246 Něco jako Say Blok může být externě 203 00:09:29,246 --> 00:09:32,074 pro někoho, kdo opravdu ví, to, co on nebo ona mluví. 204 00:09:32,074 --> 00:09:33,990 Takže pokud budete krok po Zde jen na chvíli, 205 00:09:33,990 --> 00:09:40,092 Chystám se předat tento vstup Alana, a zeptejte se, že říkáte, tento vstup. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hello, world. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: To je ono. 208 00:09:42,160 --> 00:09:43,326 Tak, že je funkce. 209 00:09:43,326 --> 00:09:46,556 Nyní můžeme vzít to trochu víc, můžeme vzít krok vpřed zde. 210 00:09:46,556 --> 00:09:48,180 Vzhledem k tomu, že bylo jasně nezaujatý. 211 00:09:48,180 --> 00:09:51,670 Takže pojďme se nyní převést toto něco trochu sofistikovanější. 212 00:09:51,670 --> 00:09:53,630 >> Tak to je samozřejmě naše C verze. 213 00:09:53,630 --> 00:09:56,760 Takže teď, pokud chcete, aby se to jednorázové, že název značky vypnout, 214 00:09:56,760 --> 00:09:58,530 a pojďme si na nový název. 215 00:09:58,530 --> 00:10:00,850 Ale v podstatě jste hraje stejnou roli, 216 00:10:00,850 --> 00:10:03,400 to jen tak se stane, být nazýván printf teď. 217 00:10:03,400 --> 00:10:06,930 >> Příběh je, samozřejmě, bude pravděpodobně bylo-- 218 00:10:06,930 --> 00:10:09,317 stejně jako je underwhelming-- bude následující. 219 00:10:09,317 --> 00:10:10,650 Ty jsou nyní funkce printf. 220 00:10:10,650 --> 00:10:13,300 Jsem volající, nebo programátor, který chce 221 00:10:13,300 --> 00:10:15,745 stát na ramenou lidé v minulosti, jako jste vy, 222 00:10:15,745 --> 00:10:18,670 který už přišel na to, jak skutečně něco napsat dolů. 223 00:10:18,670 --> 00:10:20,650 A tak tentokrát, spíše než, že to pojďme 224 00:10:20,650 --> 00:10:22,255 skutečně používat naši obrazovku sem. 225 00:10:22,255 --> 00:10:24,130 Takže pokud byste chtěli krok sem, já jdu 226 00:10:24,130 --> 00:10:27,196 znovu to vydávat za Vstup do mého printf příteli. 227 00:10:27,196 --> 00:10:29,320 Pokud byste mohli jít dopředu a tisku, že na obrazovce, 228 00:10:29,320 --> 00:10:31,611 jednoduše tím, že kreslí s vaším prst na černé obrazovce. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Výborně. 231 00:10:44,180 --> 00:10:47,350 Dobře, takže spousta napětí pro jak to bude hrát ven. 232 00:10:47,350 --> 00:10:51,390 >> Takže teď pojďme vzít věci do jednoho konečné zářez, kdybychom mohli takto. 233 00:10:51,390 --> 00:10:53,980 Tak to je program v jazyce C jak jsme řekli minule. 234 00:10:53,980 --> 00:10:57,460 A to jen dělá to, co jste udělal, to vypíše na obrazovku, Hello, world. 235 00:10:57,460 --> 00:11:00,290 I když tam je jasně hodně na rušivé věci tam. 236 00:11:00,290 --> 00:11:03,630 Ale pojďme vzít věci do zářezu a zavést tuto verzi, která připomínají 237 00:11:03,630 --> 00:11:06,160 byl třetí verze, která jsme skončili s minule. 238 00:11:06,160 --> 00:11:09,120 >> A teď je tu jasně dvě použití printf. 239 00:11:09,120 --> 00:11:12,280 K dispozici je 2 hovory na Alana v tomto případě pro printf, 240 00:11:12,280 --> 00:11:14,740 ale je tu i výzva na jinou funkci. 241 00:11:14,740 --> 00:11:17,150 Co je to funkce jasně? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> Můžeme dostat ještě jeden dobrovolník? 244 00:11:18,980 --> 00:11:20,980 OK, pojď nahoru. 245 00:11:20,980 --> 00:11:21,805 Jak se jmenujete? 246 00:11:21,805 --> 00:11:22,990 >> Javier: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, pojď nahoru. 248 00:11:24,750 --> 00:11:27,270 Takže role Javier je na tento kus papíru. 249 00:11:27,270 --> 00:11:28,860 Které budu volat obecně s. 250 00:11:28,860 --> 00:11:32,250 Teď to je variabilní, je to typu string, jak vyplývá 251 00:11:32,250 --> 00:11:34,290 tímto druhým řádku tam uprostřed. 252 00:11:34,290 --> 00:11:36,540 A rád bych, abys šel se mi řetězec. 253 00:11:36,540 --> 00:11:40,120 Konkrétně hlavou dolů do orchestru část a dejte mi jméno někoho, 254 00:11:40,120 --> 00:11:43,142 a vrátit se s proměnnou obsahující tuto hodnotu. 255 00:11:43,142 --> 00:11:44,225 Může to být kdokoliv chcete. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Jdeme na to. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 V pořádku, je Javier napíše jméno. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 V pořádku. 262 00:12:03,280 --> 00:12:05,740 Můžeme se všichni asi tušíte, jak to bude hrát ven. 263 00:12:05,740 --> 00:12:07,489 Jsme snad hašteřit místo toho, co 264 00:12:07,489 --> 00:12:10,320 funkce je dělá, ale Přesto moc děkuji. 265 00:12:10,320 --> 00:12:13,890 >> Takže Javier se vrátil tento řetězec tu, která si není úplně vidět, 266 00:12:13,890 --> 00:12:15,800 Jonathan je řetězec , které jsme dostali. 267 00:12:15,800 --> 00:12:18,330 Takže teď, co jsem vlastně děje poskytnout Alana když 268 00:12:18,330 --> 00:12:20,150 je něco trochu jiného. 269 00:12:20,150 --> 00:12:23,800 Vzhledem k tomu, v této verzi program, první je tam uvést své jméno. 270 00:12:23,800 --> 00:12:26,160 Takže úplně první argument Musím poskytnout Alana 271 00:12:26,160 --> 00:12:33,030 se bude doslova uvést své jméno. 272 00:12:33,030 --> 00:12:35,280 Dobře, tak jednoduché, jak to Chtěl bych předat vám to. 273 00:12:35,280 --> 00:12:36,730 A jak jsem se sepsat Následující argument, pokud máte 274 00:12:36,730 --> 00:12:39,230 chcete pokračovat a psát to na palubě, pojďme do toho 275 00:12:39,230 --> 00:12:42,659 a to poslední příklad zde, aby se jasné, co se nakonec dostal k tomu dojde. 276 00:12:42,659 --> 00:12:44,450 Takže uvést své jméno, napište ji k vrcholu 277 00:12:44,450 --> 00:12:47,220 pokud vám to nevadí, jen proto, aby máme pokoj pro jednu druhém řádku. 278 00:12:47,220 --> 00:12:52,890 Vzhledem k tomu, to poslední, co budu se nyní poskytnout vám není jedno, 279 00:12:52,890 --> 00:12:57,220 ale dva kusy papíru. 280 00:12:57,220 --> 00:12:58,074 >> V pořádku. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O čárka a pak prázdný řádek. 282 00:13:01,920 --> 00:13:04,780 Takže to, co se chystám předat Alana teď je něco trochu jiného. 283 00:13:04,780 --> 00:13:08,600 Nejen, že je to stále to, kde vyplnit prázdné představuje 284 00:13:08,600 --> 00:13:12,050 že percent-- to, co bylo zástupný jsme používali? 285 00:13:12,050 --> 00:13:13,890 Jo, to procento s. 286 00:13:13,890 --> 00:13:16,530 Mezitím jdu projít jí ve druhém argumentu, který 287 00:13:16,530 --> 00:13:19,290 je přesně to, co Javier získat od Jonathana. 288 00:13:19,290 --> 00:13:20,534 >> Takže dovolte mi, abych vám tyhle dva. 289 00:13:20,534 --> 00:13:22,575 Pokud byste chtěli, jděte do toho a tisku, že efekt. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Co se nakonec stalo nyní je, Alana znovu 292 00:13:28,130 --> 00:13:29,410 hraje roli printf. 293 00:13:29,410 --> 00:13:32,160 Javier hrál role getString. 294 00:13:32,160 --> 00:13:34,700 Tak, že bude váš suvenýr. 295 00:13:34,700 --> 00:13:39,910 A nakonec, co se děje, a to navzdory tento hello-- yep jít dopředu a čárka. 296 00:13:39,910 --> 00:13:41,410 ALANA: jsem obdržel to ještě, nebo ne? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Jo, ty přijal oba najednou. 298 00:13:43,451 --> 00:13:45,740 Takže představa, že vás Nyní můžete otočit stránku 299 00:13:45,740 --> 00:13:50,000 pro zpracování druhé z těchto dvou vstupů. 300 00:13:50,000 --> 00:13:53,280 Takže je to jen na kladivo domů upozornit, že vzhledem k tomu, Alana popraven 301 00:13:53,280 --> 00:13:55,830 tato zelená čára tady, a pak se Javier udělal pro nás 302 00:13:55,830 --> 00:13:57,820 a vrátit se ke mně něco zavoláme s, ale to bylo opravdu 303 00:13:57,820 --> 00:13:59,520 jen, že kus papíru vlastní. 304 00:13:59,520 --> 00:14:02,320 A teď Alana udělal tento třetí řádek. 305 00:14:02,320 --> 00:14:06,010 >> A i když to všechno vypadá tak neuvěřitelně mystické možná 306 00:14:06,010 --> 00:14:08,870 na první pohled, je to opravdu je tak jednoduché, jak to. 307 00:14:08,870 --> 00:14:11,390 Předávání vstupy kolem, získání výstupy, a to buď 308 00:14:11,390 --> 00:14:14,560 byl fyzicky předán zpět něco, nebo vidět vedlejší účinky, jako je tento. 309 00:14:14,560 --> 00:14:17,170 Něco vizuálně napsáno na obrazovce. 310 00:14:17,170 --> 00:14:19,990 Tak pojďme do toho a Děkuji Alana a Javier, 311 00:14:19,990 --> 00:14:25,012 který byl tady, na nám připojila zde. 312 00:14:25,012 --> 00:14:25,934 >> [APPLAUSE] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Takže teď pojďme za samozřejmost, jak přímočarý všechny, které by mohly být. 315 00:14:33,480 --> 00:14:36,775 A pojďme pokračovat ve skutečnosti dělat něco skutečného kódu. 316 00:14:36,775 --> 00:14:40,620 Takže na obrazovce je zde screenshot z takzvaného CS50 spotřebiče. 317 00:14:40,620 --> 00:14:43,980 A pokud jste měl na, as 14:00 ve středu odpoledne, 318 00:14:43,980 --> 00:14:46,602 vysvětlit nějaký příteli co CS50 spotřebič, 319 00:14:46,602 --> 00:14:48,185 jak byste to definovat ve větě? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Každý jednou větou? 322 00:14:53,240 --> 00:14:54,876 Jo? 323 00:14:54,876 --> 00:14:57,334 STUDENT: Je to jako program že je počítač každého 324 00:14:57,334 --> 00:14:58,460 běh se stejným systémem. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Dobrý! 326 00:14:59,210 --> 00:15:02,810 Je to program, který umožňuje všem je počítač běžet stejným systémem. 327 00:15:02,810 --> 00:15:04,920 Je to tak nějak sami kopie provozních 328 00:15:04,920 --> 00:15:07,540 systém, který se stane být nazýván Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 A běží efektivně uvnitř okno na vašem počítači Mac nebo PC, 330 00:15:11,070 --> 00:15:15,080 tak, že tento způsob přímo ven z brány v 1. týdnu, všichni tady ve třídě 331 00:15:15,080 --> 00:15:17,590 má přístup ke stejným nástrojů, stejné uspořádání, 332 00:15:17,590 --> 00:15:21,250 a neexistuje žádný specifický zaučení na Mac nebo PC, zejména. 333 00:15:21,250 --> 00:15:25,620 >> Nyní jsme otevřeli, uvnitř CS50 spotřebič v pondělí, tento program zde. 334 00:15:25,620 --> 00:15:27,040 Stává se to nazvat gedit. 335 00:15:27,040 --> 00:15:29,050 Ale to je opravdu jen grafický editor. 336 00:15:29,050 --> 00:15:33,170 Je to něco jako Poznámkový blok nebo Text Úprava na Windows nebo Mac OS, resp. 337 00:15:33,170 --> 00:15:36,720 A navrhl jsem, že tam bylo opravdu tři důležité části této obrazovky. 338 00:15:36,720 --> 00:15:39,560 Vrchní strana je místo, kde vás by se napsat svůj kód. 339 00:15:39,560 --> 00:15:44,080 A to je místo, kde jsme strávili většinu našeho tři příklady v pondělní přednášky. 340 00:15:44,080 --> 00:15:47,650 Spodní říkáme, co, tato černá okna, jo? 341 00:15:47,650 --> 00:15:48,640 >> STUDENT: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compiler jsme přistupovat prostřednictvím tohoto okna. 343 00:15:51,500 --> 00:15:53,040 Ale obecně. 344 00:15:53,040 --> 00:15:54,540 Jo, to bylo jen okno terminálu. 345 00:15:54,540 --> 00:15:57,780 To je věk starý termín, který právě popisuje v podstatě blikání 346 00:15:57,780 --> 00:16:01,910 výzva, která před lety býval na jeden z těch velkých monitorů CRT stylu. 347 00:16:01,910 --> 00:16:04,300 Ale v dnešní době je to trochu virtuálního v softwaru. 348 00:16:04,300 --> 00:16:06,710 A terminál okna ať je nám psát příkazy. 349 00:16:06,710 --> 00:16:11,750 Je to trochu zjednodušené verze uživatelského rozhraní nebo rozhraní. 350 00:16:11,750 --> 00:16:14,060 Není to grafický uživatelské rozhraní, nebo GUI, 351 00:16:14,060 --> 00:16:17,250 Je to rozhraní založené na textu nebo rozhraní příkazového řádku. 352 00:16:17,250 --> 00:16:20,770 >> A opravdu to je místo, kde nakonec Byl jsem schopen napsat nějaký kód. 353 00:16:20,770 --> 00:16:24,200 Poté, co jsem napsal nějaký kód i když, Připomínám, že jsem použil tento příkaz. 354 00:16:24,200 --> 00:16:26,210 A jak to jméno druh naznačuje, toto 355 00:16:26,210 --> 00:16:29,860 umožňuje, abych program s názvem Dobrý den. 356 00:16:29,860 --> 00:16:33,400 Ale co to opravdu dělá? 357 00:16:33,400 --> 00:16:36,180 No make bral můj vstup, můj zdrojový kód, 358 00:16:36,180 --> 00:16:39,380 a převedením na to, co nakonec? 359 00:16:39,380 --> 00:16:40,060 >> Kód objektu. 360 00:16:40,060 --> 00:16:42,790 A objektový kód je jen fantazie způsob, jak říkat nul a jedniček. 361 00:16:42,790 --> 00:16:46,420 A pak, když jsem chtěl spustit tento kód objektu, 362 00:16:46,420 --> 00:16:50,940 Jednou jsem chtěl projít jako vstup těchto nuly a jedničky do mého počítače 363 00:16:50,940 --> 00:16:54,430 mozku, takzvaný CPU nebo centrální procesorová jednotka, 364 00:16:54,430 --> 00:16:55,730 Musel jsem spustit program. 365 00:16:55,730 --> 00:16:59,042 Ale nebylo to jednoduché, v pondělí jak jen dvojklikem nějakou ikonku. 366 00:16:59,042 --> 00:17:01,375 Co místo toho jsem musel dělat, aby se spustit program? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Co to bylo druhý příkaz? 369 00:17:07,890 --> 00:17:09,619 Slyším trochu lomítka? 370 00:17:09,619 --> 00:17:10,544 Ano, ano? 371 00:17:10,544 --> 00:17:12,474 >> STUDENT: Dot lomítko a název programu. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Přesně tak. 373 00:17:13,349 --> 00:17:15,030 Dot lomítko a název programu. 374 00:17:15,030 --> 00:17:16,210 A teď, co to znamená? 375 00:17:16,210 --> 00:17:19,470 No tečka je jen způsob, jak tajemný říkat aktuální adresář. 376 00:17:19,470 --> 00:17:23,440 Ať už jste ve složce je uváděný jako, je reprezentován jako tečka. 377 00:17:23,440 --> 00:17:26,680 Lomítkem je přesně to, co jste viděli v systémech Mac OS a Windows pro let, 378 00:17:26,680 --> 00:17:30,329 je oddělovač mezi adresáři nebo složku a zbytek nějaké jméno. 379 00:17:30,329 --> 00:17:32,620 Ve Windows se to stane jít dozadu, Linux a Mac 380 00:17:32,620 --> 00:17:34,210 OS se to stane, jít dopředu. 381 00:17:34,210 --> 00:17:37,560 Ale je to jen oddělovač, takže je to jen nezajímavé syntaktická detail. 382 00:17:37,560 --> 00:17:40,440 >> Šťavnaté Součástí kurzu je název programu, Dobrý den. 383 00:17:40,440 --> 00:17:42,650 A to je to, co dělají vytvořena pro nás. 384 00:17:42,650 --> 00:17:44,910 Je to výstup tento soubor pro nás. 385 00:17:44,910 --> 00:17:46,700 Ale jak jsme se dostali do tohoto bodu? 386 00:17:46,700 --> 00:17:48,870 Pojďme se tedy zeptat, otázka, co bylo ve skutečnosti 387 00:17:48,870 --> 00:17:52,470 děje, alespoň ohledem na některé z těchto syntaxe? 388 00:17:52,470 --> 00:17:57,000 >> Takže ve větě, nebo tak, jak jsme se vysvětlit 389 00:17:57,000 --> 00:17:59,020 tato první linie, která je zvýrazněny zeleně? 390 00:17:59,020 --> 00:18:02,998 Co to bylo za první řádek dělá, s ohledem na můj program? 391 00:18:02,998 --> 00:18:03,974 Jo? 392 00:18:03,974 --> 00:18:05,067 >> STUDENT: [neslyšitelné]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Řekni to ještě jednou? 394 00:18:06,150 --> 00:18:08,734 STUDENT: Včetně a stahování Posledních funkce [neslyšitelné]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Dobrý. 396 00:18:09,483 --> 00:18:11,900 Včetně, nebudu říkat stahování, ale řekněme, že 397 00:18:11,900 --> 00:18:15,500 včetně funkcí, které lidé psali v minulosti. 398 00:18:15,500 --> 00:18:18,260 A tyto funkce jsou implementovány někde v mém počítači. 399 00:18:18,260 --> 00:18:20,470 Někdo napsal soubor před lety, a tento soubor 400 00:18:20,470 --> 00:18:23,490 je někde uvnitř CS50 zařízení, nebo na mém pevném disku 401 00:18:23,490 --> 00:18:24,480 obecněji. 402 00:18:24,480 --> 00:18:27,810 A tak tato linka je v podstatě říká, jít zjistit, že soubor, standardní I / O bod 403 00:18:27,810 --> 00:18:31,740 h, a kopírovat a vložit jeho obsah tady na vrcholu mého souboru 404 00:18:31,740 --> 00:18:33,860 takže nemám na udělat ručně sám. 405 00:18:33,860 --> 00:18:40,970 >> A mezi nejšťavnatější kousky uvnitř na tento soubor jsme tvrdili, bylo to, co funguje? 406 00:18:40,970 --> 00:18:45,740 Jaké funkce si řekneme byla vyhlášena nebo je uvedeno ve standardním I / O dot h 407 00:18:45,740 --> 00:18:47,120 s největší pravděpodobností? 408 00:18:47,120 --> 00:18:47,900 Printf, že jo? 409 00:18:47,900 --> 00:18:50,797 Nechtěli jsme napsat printf na Pondělí, prostě neexistoval. 410 00:18:50,797 --> 00:18:52,880 Stejně jako Alana právě přišel na jevišti a ona jen 411 00:18:52,880 --> 00:18:55,540 existoval a věděl, jak k tomu něco na obrazovce, 412 00:18:55,540 --> 00:18:58,660 takže se po mnoho let printf existují. 413 00:18:58,660 --> 00:19:00,240 A tak to je, jak se k němu dostaneme. 414 00:19:00,240 --> 00:19:03,280 Nyní, když jsme se přesunout na tu, Hlavní bylo analogické jsme 415 00:19:03,280 --> 00:19:06,620 řekl puzzle volána, když zelená vlajka klepnutí 416 00:19:06,620 --> 00:19:07,620 ve světě Scratch. 417 00:19:07,620 --> 00:19:10,130 Je to jen trochu výchozí jméno, které lidé 418 00:19:10,130 --> 00:19:13,340 rozhodl se představují výchozí vstupní bod do programu. 419 00:19:13,340 --> 00:19:16,540 Kus programového kódu že dostane popraven jako první. 420 00:19:16,540 --> 00:19:19,700 >> Zatím jsou tyto složené závorky jsou něco jako zakřivený tvar 421 00:19:19,700 --> 00:19:21,410 z mnoha těchto žlutých poškrábání kusů. 422 00:19:21,410 --> 00:19:24,860 Jsou druh zapouzdřit celou banda pokynů společně. 423 00:19:24,860 --> 00:19:28,350 Tak to jen tak spojuje některé související funkce. 424 00:19:28,350 --> 00:19:33,750 printf samozřejmě je funkce, která vytiskne na obrazovku, jak to udělal. 425 00:19:33,750 --> 00:19:35,190 >> Co o těchto závorkách? 426 00:19:35,190 --> 00:19:38,770 Jak byste define-- i když jste nikdy naprogramované dříve, ale jen na základě 427 00:19:38,770 --> 00:19:41,320 nyní na rostoucí doufejme, že intuice, co 428 00:19:41,320 --> 00:19:43,290 jsou závorky tady pro nás? 429 00:19:43,290 --> 00:19:45,450 Nebo co se jim okolí? 430 00:19:45,450 --> 00:19:46,360 Jo? 431 00:19:46,360 --> 00:19:49,360 >> STUDENT: Říkají, že to, co budete tisknout pomocí printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Jo, říkají, co budete tisknout pomocí printf. 433 00:19:52,401 --> 00:19:56,260 Nebo obecněji, jsou obklopující vstupy do funkce. 434 00:19:56,260 --> 00:19:58,530 Takže můžete téměř myslet z těchto závorkách 435 00:19:58,530 --> 00:20:01,620 jako například kov klip na této schránky. 436 00:20:01,620 --> 00:20:05,940 To je to, co drží, je to to, co je děje, které mají být použity na argumenty 437 00:20:05,940 --> 00:20:08,500 do funkce, která v v tomto případě se nazývá printf. 438 00:20:08,500 --> 00:20:12,390 >> Takže obecně téměř každý Doba nazýváme funkci, 439 00:20:12,390 --> 00:20:14,280 budeme vidět dvojici závorek. 440 00:20:14,280 --> 00:20:17,000 Možná, že něco v něm, jako teď, v tom snad nic není. 441 00:20:17,000 --> 00:20:19,770 Ale to je místo, kde byste dát vstupy nebo takzvané argumenty 442 00:20:19,770 --> 00:20:20,680 na funkci. 443 00:20:20,680 --> 00:20:22,470 >> Zde je jeden takový argument. 444 00:20:22,470 --> 00:20:24,467 Jsem zvýrazní vše mezi uvozovkami, 445 00:20:24,467 --> 00:20:26,300 , protože se ukazuje, v tomto jazyce s názvem 446 00:20:26,300 --> 00:20:29,950 C, pokud chcete reprezentovat string--, že je slovo nebo fráze 447 00:20:29,950 --> 00:20:33,470 nebo dokonce paragraph-- musíte uzavřete ho do uvozovek. 448 00:20:33,470 --> 00:20:35,420 Není jednoduché uvozovky, dvojité uvozovky. 449 00:20:35,420 --> 00:20:37,460 A to je přesně to, co jsem tady udělal. 450 00:20:37,460 --> 00:20:39,900 >> Zatím tam je funky symbol směrem tam do konce. 451 00:20:39,900 --> 00:20:41,600 Zpětné lomítko n. 452 00:20:41,600 --> 00:20:43,460 Co jsme si řekli, že představoval? 453 00:20:43,460 --> 00:20:44,093 Jo? 454 00:20:44,093 --> 00:20:44,980 >> STUDENT: nová řada. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nová řada. 456 00:20:45,896 --> 00:20:47,910 Jasně, že ne obvykle stisknutím klávesy Enter, pokud 457 00:20:47,910 --> 00:20:50,430 chcete program vyplivnout nový řádek. 458 00:20:50,430 --> 00:20:54,210 Spíše to říct explicitně s tímto sice tajemné kus 459 00:20:54,210 --> 00:20:58,770 syntaxe, znak zpětného lomítka n, že Chcete nový řádek tam jít. 460 00:20:58,770 --> 00:20:59,810 Nakonec středník. 461 00:20:59,810 --> 00:21:01,560 Neměli jsme mluvit příliš mnoho o tom, 462 00:21:01,560 --> 00:21:04,893 a pokud to bude prokletím některých vaší existence na první problém 463 00:21:04,893 --> 00:21:07,990 nastavení, když jste právě neuvědomil jste zapomněli něco jako hloupý 464 00:21:07,990 --> 00:21:08,614 jako středníkem. 465 00:21:08,614 --> 00:21:11,600 A obecně je uvedení tam bude opravit tento problém. 466 00:21:11,600 --> 00:21:13,511 Ale co to dělá Pro nás by to řekl? 467 00:21:13,511 --> 00:21:15,670 >> STUDENT: [neslyšitelné]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Sorry? 469 00:21:17,484 --> 00:21:18,532 >> STUDENT: [neslyšitelné]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Dokončovací prohlášení. 471 00:21:19,990 --> 00:21:22,770 Je to něco jako období na konec anglické věty, 472 00:21:22,770 --> 00:21:25,790 že v tomto jazyce C je to konec prohlášení. 473 00:21:25,790 --> 00:21:29,250 Výuka programování kód, který si jen chcete říct, 474 00:21:29,250 --> 00:21:30,500 Skončil jsem s tím. 475 00:21:30,500 --> 00:21:32,240 Nyní si všimněte, že je zde jediná. 476 00:21:32,240 --> 00:21:34,614 Takže nechcete se dostat do zvyk uvedení středníky 477 00:21:34,614 --> 00:21:36,190 po každé uzavřené závorkách. 478 00:21:36,190 --> 00:21:38,610 Například tam nic není další močit, a budeme 479 00:21:38,610 --> 00:21:40,430 vrátit v budoucnu na to, co znamená neplatné. 480 00:21:40,430 --> 00:21:44,080 Ale v tomto případě, že váš printf je funkce, nebo prohlášení používán, 481 00:21:44,080 --> 00:21:47,420 a tak chceme, aby toto terminus na samém konci. 482 00:21:47,420 --> 00:21:50,980 >> A já jsem záměrně výběrem na C a upřímně řečeno, mnoho jazyků, jako je C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, a libovolný počet Jiné jazyky mají hodně z nich 484 00:21:55,000 --> 00:21:56,730 druh syntaktických detailů. 485 00:21:56,730 --> 00:22:00,120 Jistě, že pokud jste na nové programování je skutečně podrazit vás. 486 00:22:00,120 --> 00:22:02,307 A vy, označte můj slovy, že někteří z vás 487 00:22:02,307 --> 00:22:04,140 tuto zkušenost v úředních hodinách nebo pozdě 488 00:22:04,140 --> 00:22:07,554 v noci pracuje na nějakém p-set, kde váš zatracený program pouze neshromažďuje, 489 00:22:07,554 --> 00:22:09,470 neběží, budete muset ani ponětí, co se děje, 490 00:22:09,470 --> 00:22:11,513 Zdá se, že zcela logicky správný pro vás. 491 00:22:11,513 --> 00:22:13,596 A je to proto, že jste zapomněli něco jako bít 492 00:22:13,596 --> 00:22:15,250 středník na konci určité linie. 493 00:22:15,250 --> 00:22:17,590 >> Ale to jsou druhy, co jste nablízku bude okamžitě naučit vidět. 494 00:22:17,590 --> 00:22:20,048 A opravdu to jsou věci, To, že CA a TF mají 495 00:22:20,048 --> 00:22:23,210 byl trochu trénoval se, aby vidět mnohem rychleji než vy. 496 00:22:23,210 --> 00:22:26,610 A tak je to jen říci, jak Ponořte se do problému nastavení 1, zejména, 497 00:22:26,610 --> 00:22:28,217 nechápu frustrovaný této věci. 498 00:22:28,217 --> 00:22:30,050 Jakmile se trochu aklimatizovat na celém světě, je 499 00:22:30,050 --> 00:22:35,130 začnete vidět věci, které jste možná ještě viz na první pohled to první týden. 500 00:22:35,130 --> 00:22:37,440 >> Takže zdrojový kód je něco takového. 501 00:22:37,440 --> 00:22:40,370 Chceme, aby to projít do tzv kompilátor. 502 00:22:40,370 --> 00:22:42,850 A že kompilátor jako jsme si řekli, poskytuje výkon 503 00:22:42,850 --> 00:22:45,660 známý jako objektový kód, takzvané nuly a jedničky. 504 00:22:45,660 --> 00:22:47,747 Ale odtud, co to nám dá? 505 00:22:47,747 --> 00:22:49,080 No to nám dává tyto vzory. 506 00:22:49,080 --> 00:22:52,020 A opět počítač, Váš Intel uvnitř, 507 00:22:52,020 --> 00:22:54,350 chápe tyto vzory nul a jedniček. 508 00:22:54,350 --> 00:22:57,300 A někdy vzor představuje skutečné číslo v desítkové soustavě 509 00:22:57,300 --> 00:22:59,770 jak jsme viděli minulý týden, někdy představuje písmeno 510 00:22:59,770 --> 00:23:02,730 jako jsme viděli minulý týden, někdy představuje instrukci, 511 00:23:02,730 --> 00:23:05,460 jako je tisk něco na obrazovku. 512 00:23:05,460 --> 00:23:08,782 >> Takže printf pro instance-- ale spíše, dovolte mi, abych vzad. 513 00:23:08,782 --> 00:23:11,240 Byli jsme s samozřejmost že ty nuly a jedničky jsou 514 00:23:11,240 --> 00:23:14,200 vytvořený tímto příkazem make. 515 00:23:14,200 --> 00:23:16,050 Ale make není kompilátor. 516 00:23:16,050 --> 00:23:19,370 Ujistěte se, není věc ve středu to je produkovat nul a jedniček. 517 00:23:19,370 --> 00:23:23,780 Spíše udělat, je jen velmi výhodnou jmenoval program, jehož smysl života 518 00:23:23,780 --> 00:23:27,267 je v podstatě zjistit, jak sestavit svůj program. 519 00:23:27,267 --> 00:23:29,350 A my ho použít v těchto První týdny, protože to prostě 520 00:23:29,350 --> 00:23:30,910 ušetří nám spoustu problémů. 521 00:23:30,910 --> 00:23:34,080 >> Ale to, co udělat, je opravdu dělat při kompilaci Dobrý den, 522 00:23:34,080 --> 00:23:36,690 je, jak jsme řekli minule, je to hledat na pevném disku 523 00:23:36,690 --> 00:23:40,620 nebo v aktuální složce pro Soubor s názvem, co, zdá se? 524 00:23:40,620 --> 00:23:41,815 Hello.c, že ​​jo? 525 00:23:41,815 --> 00:23:43,190 To je jen trochu úmluvy. 526 00:23:43,190 --> 00:23:45,620 To je libovolná, ale To je způsob, jak se věci mají. 527 00:23:45,620 --> 00:23:48,620 Ujistěte se, jestli stačí zadat jméno programu, který ještě neexistuje, 528 00:23:48,620 --> 00:23:52,200 to bude vypadat na zdrojový kód v souboru, ve výchozím nastavení znamená hello.c. 529 00:23:52,200 --> 00:23:53,530 A pokud najde, skvělé. 530 00:23:53,530 --> 00:23:56,650 Bude to převést tento zdroj Kód do objektového kódu pro vás. 531 00:23:56,650 --> 00:23:59,670 >> Ale pokaždé, když jsem stiskněte klávesu Enter po spuštění provést Dobrý den, 532 00:23:59,670 --> 00:24:03,560 Vzpomínáte si viděl poslední době poměrně dlouhý a mystické sekvence 533 00:24:03,560 --> 00:24:06,430 jiných bílými písmeny a znaky na obrazovce? 534 00:24:06,430 --> 00:24:11,220 No, to byl skutečný příkaz, skutečný kompilátor, který byl spuštěn. 535 00:24:11,220 --> 00:24:15,500 Takže skutečný kompilátor budeme používat většinu semestr je něco, co nazývá zvonění. 536 00:24:15,500 --> 00:24:19,280 Někteří z vás mohou být použita Visual Studio před, nebo GCC, 537 00:24:19,280 --> 00:24:21,340 nebo libovolný počet jiných kompilátorů. 538 00:24:21,340 --> 00:24:22,620 Budeme používat řinčení. 539 00:24:22,620 --> 00:24:26,950 >> A řinčení nám umožňuje skutečně převést že zdrojový kód objektového kódu. 540 00:24:26,950 --> 00:24:29,430 Co to vlastně znamená v praxi? 541 00:24:29,430 --> 00:24:33,390 Tak nech mě jít do jednoho z Mé složky z minulého času. 542 00:24:33,390 --> 00:24:35,760 Uvnitř CS50 spotřebiče. 543 00:24:35,760 --> 00:24:42,080 A nech mě jít dopředu a vytvořit tento Stejný soubor obsahuje standardní I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int main neplatné. 545 00:24:42,875 --> 00:24:46,000 A vrátíme se v budoucnu jako na to, co int znamená a jaké void prostředky. 546 00:24:46,000 --> 00:24:49,130 Ale teď pojďme dělat hello world zpětné lomítko n, 547 00:24:49,130 --> 00:24:50,500 stejně jako jsme to udělali na palubě. 548 00:24:50,500 --> 00:24:53,930 >> Dovolte mi, abych tento soubor uložit s názvem hello.c. 549 00:24:53,930 --> 00:24:58,280 A teď, když chci zkompilovat I mohli-- dovolte mi přiblížit v-- běh 550 00:24:58,280 --> 00:25:00,450 aby ahoj vstoupit. 551 00:25:00,450 --> 00:25:02,645 A to byl opět že velmi záhadné linie. 552 00:25:02,645 --> 00:25:05,120 Ale nyní alespoň jedno slovo pravděpodobně vyskočí na vás. 553 00:25:05,120 --> 00:25:07,087 Clang je, že vedení jsme viděli předtím. 554 00:25:07,087 --> 00:25:10,420 Teď je tu spousta dalších věcí upřímně že budeme mávat rukou na pro dnešek. 555 00:25:10,420 --> 00:25:14,020 Ale je tu několik podskupin, několik znaků zde 556 00:25:14,020 --> 00:25:14,907 které jsou předmětem zájmu. 557 00:25:14,907 --> 00:25:16,490 Ale já jdu do toho a to. 558 00:25:16,490 --> 00:25:18,281 Jdu na první spuštění Dobrý den, jen aby dokázal, 559 00:25:18,281 --> 00:25:20,320 že toto funguje, jak to bylo v pondělí. 560 00:25:20,320 --> 00:25:22,330 Ale teď jdu vymazat program. 561 00:25:22,330 --> 00:25:25,870 A stejně jako jsme měli tito krátké názvy Minule 562 00:25:25,870 --> 00:25:29,787 Příkaz pro odstraňování něco rm, odstranit, zadejte. 563 00:25:29,787 --> 00:25:31,870 Budeš získat některé docela mystické otázky. 564 00:25:31,870 --> 00:25:35,210 Těžko uvěřit, že můžete dělat i na tuto otázku těžké pochopit. 565 00:25:35,210 --> 00:25:38,100 Ale odstranit pravidelné souboru ahoj jen znamená to, že chcete smazat ahoj. 566 00:25:38,100 --> 00:25:42,650 >> A můžu jít dál a typ Y pro ano, Enter, a teď je to pryč. 567 00:25:42,650 --> 00:25:45,130 Co to znamená, že nyní, pokud mohu vymazat obrazovku, 568 00:25:45,130 --> 00:25:47,301 je, že namísto dělá make hello-- vás 569 00:25:47,301 --> 00:25:48,800 Víte co, já jsem stále dobrý. 570 00:25:48,800 --> 00:25:50,690 Chystám se spustit kompilátor sám. 571 00:25:50,690 --> 00:25:53,330 Nepotřebuji nějaký program pro zjistit, co můj soubor se nazývá. 572 00:25:53,330 --> 00:25:55,370 Napsal jsem hello.c jsem vědět, jak se jmenuje, 573 00:25:55,370 --> 00:25:57,640 Jsem jednoznačně schopen psát, že. 574 00:25:57,640 --> 00:26:02,620 Takže budu pokračovat a to zvonit hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Zdá se, že se do práce. 576 00:26:03,264 --> 00:26:05,930 A neexistuje žádný dodatečný výstup, protože zvonění je kompilátor. 577 00:26:05,930 --> 00:26:08,590 To je to, co je konverze Zdrojový kód nul a jedniček. 578 00:26:08,590 --> 00:26:12,870 Takže když jsem teď udělat tečku lomítko ahoj Zadejte, hm. 579 00:26:12,870 --> 00:26:14,630 New chybová zpráva dnes. 580 00:26:14,630 --> 00:26:17,610 Takže bash je jen název blikání výzvy, která jsme pomocí. 581 00:26:17,610 --> 00:26:20,360 To je hrubým zjednodušením, ale teď to je všechno, co je, 582 00:26:20,360 --> 00:26:21,401 je to bliká řádek. 583 00:26:21,401 --> 00:26:22,880 A to je důvod, proč je to křičí na nás. 584 00:26:22,880 --> 00:26:25,690 >> Žádný takový soubor nebo adresář trochu jednodušší. 585 00:26:25,690 --> 00:26:28,190 Ale určitě jsem, že objektový kód. 586 00:26:28,190 --> 00:26:30,930 Ale úlovek je, že kdybych zadejte příkaz 587 00:26:30,930 --> 00:26:34,650 zobrazit obsah této adresář, což je to, co? 588 00:26:34,650 --> 00:26:36,210 ls pro seznam. 589 00:26:36,210 --> 00:26:39,332 Je tu spousta věcí tady, z nichž některé přišel s přístrojem, 590 00:26:39,332 --> 00:26:42,040 jako můj složky Desktop, ke stažení složka, složka Dropbox, a všechny 591 00:26:42,040 --> 00:26:42,850 ty věci. 592 00:26:42,850 --> 00:26:45,410 Ale co je zajímavé, je hello.c, který 593 00:26:45,410 --> 00:26:47,286 Vytvořil jsem před chvílí s gedit. 594 00:26:47,286 --> 00:26:49,160 A co je nejdivnější hledá jméno zde, 595 00:26:49,160 --> 00:26:53,110 Možná, že ne viz poslední době vůbec? 596 00:26:53,110 --> 00:26:54,710 >> a.out, že jo? 597 00:26:54,710 --> 00:26:56,920 Takže zpět v den, to Právě se rozhodl, že když 598 00:26:56,920 --> 00:26:58,760 kompilaci programu poprvé, 599 00:26:58,760 --> 00:27:02,360 a neurčíte název souboru, nazvěme to je. 600 00:27:02,360 --> 00:27:05,800 A a.out prostě znamená to výstup kompilátoru. 601 00:27:05,800 --> 00:27:07,790 Takže je to hrozný název programu. 602 00:27:07,790 --> 00:27:12,820 Ale do té logiky, tečka lomítko pro aktuální adresář, lomítko a.out, 603 00:27:12,820 --> 00:27:16,102 by mělo znamenat, že je to ve skutečnosti můj hello world programu. 604 00:27:16,102 --> 00:27:17,560 Teď trochu zahřát cvičení, taky. 605 00:27:17,560 --> 00:27:20,420 Pokud budu chtít přejmenovat tento soubor, ukázalo se, že vás 606 00:27:20,420 --> 00:27:23,000 přesunout soubor z jednoho jména k druhému. 607 00:27:23,000 --> 00:27:28,750 Takže mv a.out, a pak jsem může říkat ahoj Enter. 608 00:27:28,750 --> 00:27:30,940 Tak to je příkaz Linux. 609 00:27:30,940 --> 00:27:34,370 DOS měl před lety, Windows má terminálové okno 610 00:27:34,370 --> 00:27:36,460 nějakého druhu, který vypadá jako je tento, Linux a Mac 611 00:27:36,460 --> 00:27:38,140 počítače mají tuto blikající řádek. 612 00:27:38,140 --> 00:27:41,490 I když většina z nás pravděpodobně zřídka, pokud vůbec, použijte ji. 613 00:27:41,490 --> 00:27:44,590 >> Ale to, co jsem udělal je provozován Program, jehož jméno je mv, 614 00:27:44,590 --> 00:27:47,900 a já jsem za předpokladu, s dva argumenty, abych tak řekl. 615 00:27:47,900 --> 00:27:48,630 Dva vstupy. 616 00:27:48,630 --> 00:27:50,260 a.out je původní název. 617 00:27:50,260 --> 00:27:51,630 Dobrý den, je nový název. 618 00:27:51,630 --> 00:27:55,670 Takže když jsem teď dělat tečka lomítko Dobrý den, zadejte, že existuje. 619 00:27:55,670 --> 00:28:00,770 A když to udělám dot lomítko a.out, to, co si myslíte, že bych měl vidět? 620 00:28:00,770 --> 00:28:02,250 >> Bash, žádný takový soubor nebo adresář. 621 00:28:02,250 --> 00:28:03,350 Protože jsem přejmenoval ji. 622 00:28:03,350 --> 00:28:04,975 Tak to trvá trochu zvykat. 623 00:28:04,975 --> 00:28:06,977 Ale problém set 1 specifikace bude skutečně 624 00:28:06,977 --> 00:28:08,810 držet za ruku přes některé z těchto minutae. 625 00:28:08,810 --> 00:28:11,050 Protože se jedná o kompletní duševního rozptýlení 626 00:28:11,050 --> 00:28:12,966 od zajímavější nápady na ruce, které 627 00:28:12,966 --> 00:28:15,310 je ve skutečnosti vytvoření něco z kódu. 628 00:28:15,310 --> 00:28:18,830 Ale pojďme udělat jednu změnu Nyní k tomuto programu. 629 00:28:18,830 --> 00:28:23,150 >> Připomeňme si, že minule jsem udělal něco, co takhle, printf uvést své jméno. 630 00:28:23,150 --> 00:28:25,790 A opravdu jsme právě udělali na velké obrazovce támhle. 631 00:28:25,790 --> 00:28:30,640 A pak jsem se řetězec s dostane GetString otevřené závorka, v blízkosti závorka. 632 00:28:30,640 --> 00:28:33,430 A závorka jen zkratka zápis pro závorkách. 633 00:28:33,430 --> 00:28:36,460 Takže to GetString žádné argumenty? 634 00:28:36,460 --> 00:28:38,440 Žádné vstupy Ne, ale potřebuje závorky, 635 00:28:38,440 --> 00:28:41,830 protože to je to, co vymezuje volání funkce. 636 00:28:41,830 --> 00:28:46,440 >> Takže budu pokračovat a pokusit se spuštění kompilátoru k tomuto programu nyní. 637 00:28:46,440 --> 00:28:50,774 Zvonění hello.c, protože jsem nezměnila svůj název pro tuto chvíli. 638 00:28:50,774 --> 00:28:51,940 A já mám spoustu chyb. 639 00:28:51,940 --> 00:28:53,570 Pojďme oddálit zde. 640 00:28:53,570 --> 00:28:55,420 Mám-li procházet znovu nahoru, jak jsem řekl minule, 641 00:28:55,420 --> 00:28:58,420 na první, stejné chyby že jsem minule. 642 00:28:58,420 --> 00:29:04,210 Na řádku 6 hello.c jsem měl načerno Řetězec identifikátoru, 643 00:29:04,210 --> 00:29:05,590 jsem na mysli standard v? 644 00:29:05,590 --> 00:29:06,750 Já ne. 645 00:29:06,750 --> 00:29:10,050 Protože to, co jsem udělal chybu mají v tomto programu, pokud si vzpomenete, od minule? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Ano, potřebujeme takzvané tréninkové kola 648 00:29:15,010 --> 00:29:16,510 že budeme jen používat po dobu několika týdnů. 649 00:29:16,510 --> 00:29:19,480 Ale musím upřesnit, že také někde uvnitř spotřebiče, 650 00:29:19,480 --> 00:29:22,720 je soubor, který jsme napsali pár lety. 651 00:29:22,720 --> 00:29:26,500 Uvnitř které jsou funkcí jako zjevně getString. 652 00:29:26,500 --> 00:29:35,160 Takže teď, když jsem jít sem dolů, přiblížit, a re-run zvonění hello.c. 653 00:29:35,160 --> 00:29:36,500 Sakra, další chyba. 654 00:29:36,500 --> 00:29:38,590 Ale my jsme nikdy neviděl tenhle. 655 00:29:38,590 --> 00:29:41,900 >> To je trochu víc esoterický zjistit. 656 00:29:41,900 --> 00:29:46,910 Ale to je záměrně na obrazovce, protože jsme chtěli vyprávět tento příběh. 657 00:29:46,910 --> 00:29:51,280 Při kompilaci hello.c, stejně jako obrázek z dříve navrhl, 658 00:29:51,280 --> 00:29:54,650 jste jen převod, který Zdrojový kód nul a jedniček. 659 00:29:54,650 --> 00:30:00,340 Nyní zaměstnanci CS50 před několika lety napsal CS50.h a odpovídající soubor, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 A my jsme před několika lety, sestaveny soubory 662 00:30:04,490 --> 00:30:07,290 do souboru, který se stane být nazýván CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Nebo to může být přejmenován několik různých věcí. 664 00:30:09,180 --> 00:30:11,054 Ale to je jednoduchý způsob, jak přemýšlení o tom. 665 00:30:11,054 --> 00:30:14,960 Takže jsme sestavili CS50'S knihovna do nul a jedniček. 666 00:30:14,960 --> 00:30:20,340 Ale nikde jsem je uvedeno že chci spojit své nuly 667 00:30:20,340 --> 00:30:24,030 a ty na mém hello world Program se nul a jedniček 668 00:30:24,030 --> 00:30:29,760 že CS50 zaměstnanci vytvořili několik let před do jednoho kompletního programu. 669 00:30:29,760 --> 00:30:34,100 Všechno, co jsem specifikován písemně řinčet hello.c je sestavit hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Já jsem neřekl, řinčení se odkaz do nul a jedniček 671 00:30:38,380 --> 00:30:41,650 že CS50 personál vytvořil pro vás před časem. 672 00:30:41,650 --> 00:30:48,280 Takže je to snadné opravit, pomlčka l na odkaz, CS50. 673 00:30:48,280 --> 00:30:52,600 A budeme opět vidět Netrvalo dlouho a znovu a znovu. 674 00:30:52,600 --> 00:30:54,420 Povšimněme si ale teď tam byl žádné stížnosti. 675 00:30:54,420 --> 00:30:59,770 Takže teď, když spustím tečka lomítko Dobrý den, teď to funguje. 676 00:30:59,770 --> 00:31:03,840 I když je to trochu zavádějící, protože jsem znovu, co soubor? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Tak ať mi přetočit na chvíli. 679 00:31:07,930 --> 00:31:10,900 Program, který jsme právě sestaven má tři řádky kódu. 680 00:31:10,900 --> 00:31:14,710 Když jsem běžel Hello World, ahoj moment Před Neviděl jsem uvést své jméno. 681 00:31:14,710 --> 00:31:17,080 A to proto, že jsem běžel starou verzi programu. 682 00:31:17,080 --> 00:31:22,700 Ale jestli opravdu spustit tečka lomítko a.out Zadejte, uveďte své jméno, Rob, ahoj, 683 00:31:22,700 --> 00:31:23,370 svět. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Je to druh chyby. 686 00:31:26,110 --> 00:31:28,560 Asi chtěl říct Roba, že jo? 687 00:31:28,560 --> 00:31:30,997 Takže to, co je oprava tady v kódu. 688 00:31:30,997 --> 00:31:31,872 STUDENT: [neslyšitelné]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Přesně tak. 691 00:31:39,290 --> 00:31:43,160 Tak jsem třeba, aby se toto konečné vyladit tak, že jsem kolem v zástupném symbolu, 692 00:31:43,160 --> 00:31:45,690 jako vyplnit prázdné, jako jsme to udělali před chvílí. 693 00:31:45,690 --> 00:31:47,870 Ale procent s je nyní že vyplnit prázdné. 694 00:31:47,870 --> 00:31:52,100 Tak konečně pojďme odhalit jeden poslední detail, takže tam žádné kouzlo. 695 00:31:52,100 --> 00:31:54,090 Chystám se jít dopředu a zbavit Halo. 696 00:31:54,090 --> 00:31:56,070 Chystám se jít dopředu a zbavit a.out. 697 00:31:56,070 --> 00:31:58,410 Takže teď nemám žádné programy, jen můj zdrojový kód. 698 00:31:58,410 --> 00:32:01,100 A já budu běžet mírně delší příkaz, zvonění 699 00:32:01,100 --> 00:32:05,650 uhánět o Hello hello.c přístrojovou LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Teď to začíná trochu jet jedním uchem tam a druhým ven možná. 701 00:32:08,700 --> 00:32:10,366 Ale jen odhalit, co to dělá. 702 00:32:10,366 --> 00:32:14,910 Clang je kompilátor, pomlčka LCS50 záměrně na samém konci 703 00:32:14,910 --> 00:32:18,330 dělá to, co ve větě? 704 00:32:18,330 --> 00:32:19,607 Odkazy na knihovny CS50. 705 00:32:19,607 --> 00:32:21,440 Chytne nuly a ty, které zaměstnanci z 706 00:32:21,440 --> 00:32:23,310 a crams je do svého vlastního programu. 707 00:32:23,310 --> 00:32:27,040 Takže poslední otázka po ruce je, co je pomlčka o ahoj pravděpodobně 708 00:32:27,040 --> 00:32:30,530 dělá, i když jste nikdy viděl tuto syntaxi? 709 00:32:30,530 --> 00:32:34,920 >> Výstup programu, který je ne pojmenovaný výchozí a.out. 710 00:32:34,920 --> 00:32:37,330 Spíše je to s názvem Dobrý den. 711 00:32:37,330 --> 00:32:39,460 Takže teď není a.out. 712 00:32:39,460 --> 00:32:42,660 Žádný takový soubor nebo adresář, protože jsem výslovně řekl, 713 00:32:42,660 --> 00:32:46,720 tento program volání Dobrý den, tak, že Nyní mohu zadat název takového 714 00:32:46,720 --> 00:32:47,790 a mají se chová. 715 00:32:47,790 --> 00:32:50,180 >> Teď upřímně, chlapec, je to, že nezajímavé mít 716 00:32:50,180 --> 00:32:52,170 mít na paměti, to vše málo markant, že jo? 717 00:32:52,170 --> 00:32:54,180 Tak pojďme do toho a se opět zbavit ahoj. 718 00:32:54,180 --> 00:32:57,880 A pojďme se vrátit do světa, ve které stačí říct, aby ahoj. 719 00:32:57,880 --> 00:33:00,410 Ale to je kouzlo, které Zkontrolujte, zda je dělá pro vás, 720 00:33:00,410 --> 00:33:02,320 to je nuda, že to dělá pro vás. 721 00:33:02,320 --> 00:33:04,630 A jak naše programy a problémy dostat složitější, 722 00:33:04,630 --> 00:33:06,142 jak bude skutečně váš přítel. 723 00:33:06,142 --> 00:33:07,850 Vzhledem k tomu, ne příliš dlouho od této chvíle budeme 724 00:33:07,850 --> 00:33:11,150 mít programy, které jsou napsané ne s jedním souborem, ale několik souborů, 725 00:33:11,150 --> 00:33:16,310 a aby se automatizovat proces sestavování všechno pro nás dohromady. 726 00:33:16,310 --> 00:33:20,620 >> Takže teď tisknout. 727 00:33:20,620 --> 00:33:24,960 printf je uvnitř tohoto souboru, standardní I / O bod h, že jsme neviděli, 728 00:33:24,960 --> 00:33:26,980 ale je tu víc než to printf. 729 00:33:26,980 --> 00:33:30,482 K dispozici je zpětné lomítko n, ale je tu také spoustu dalších escape sekvencí. 730 00:33:30,482 --> 00:33:32,940 A escape sekvence je jen ozdobný způsob, jak říkat něco 731 00:33:32,940 --> 00:33:35,990 který začíná zpětným lomítkem, není lomítko, zpětné lomítko, 732 00:33:35,990 --> 00:33:37,920 a dělá nějaký zvláštní věc. 733 00:33:37,920 --> 00:33:43,770 A nebudeme zabývat většina z nich, ale proč je tam zpětné lomítko dvojité uvozovky, 734 00:33:43,770 --> 00:33:44,830 myslíš? 735 00:33:44,830 --> 00:33:48,010 Proč je to divný sled znaky, zpětné lomítko dvojité uvozovky, 736 00:33:48,010 --> 00:33:50,505 proč by to mohlo být užitečné? 737 00:33:50,505 --> 00:33:51,380 STUDENT: [neslyšitelné]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Přesně tak, jo? 740 00:33:57,760 --> 00:34:01,830 Vzpomeňte si na naše hello world programu že jsme viděli docela několikrát teď, 741 00:34:01,830 --> 00:34:05,880 pokaždé, když jsme viděli, že hello world Program jsme měli dvojité uvozovky uvnitř 742 00:34:05,880 --> 00:34:08,210 který je ahoj čárka svět zpětné lomítko n. 743 00:34:08,210 --> 00:34:10,070 Ale myslíte, že se na sebe, Co vás, jestli skutečně 744 00:34:10,070 --> 00:34:12,520 chtěl vytisknout uvozovky? 745 00:34:12,520 --> 00:34:16,100 Váš první instinkt může být, vůbec se mi nelíbí vědět, proč jsem chtít do-- zde 746 00:34:16,100 --> 00:34:18,780 můžeme být trochu pasivní agresivní, hello friend. 747 00:34:18,780 --> 00:34:21,350 Mohli bychom udělat něco takového. 748 00:34:21,350 --> 00:34:25,230 >> Ale proč je to teď problematické? 749 00:34:25,230 --> 00:34:28,730 Ignorování kudrnaté citace stranou, která keynote automaticky z nás. 750 00:34:28,730 --> 00:34:29,730 Proč je to problematické? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Přesně tak. 753 00:34:37,270 --> 00:34:39,022 Protože máme jako 4 uvozovkách. 754 00:34:39,022 --> 00:34:41,230 No první, kdo pravděpodobně jde s druhou, 755 00:34:41,230 --> 00:34:43,271 a možná i čtvrtý jde s třetí, 756 00:34:43,271 --> 00:34:46,170 nebo, myslím, že jsem si ani jistý, ani počítač bude. 757 00:34:46,170 --> 00:34:48,352 Počítače znovu, překladače znovu, jsou docela hloupé. 758 00:34:48,352 --> 00:34:50,060 Budou dělat, co jen řekni jim to. 759 00:34:50,060 --> 00:34:54,270 A pokud si nejste jednoznačné, že se pravděpodobně bude hodit chybu. 760 00:34:54,270 --> 00:34:57,700 >> Pokud si nejste jednoznačné, jak se udělat arašídové máslo a želé sendvič 761 00:34:57,700 --> 00:34:59,510 podivné věci může přijít. 762 00:34:59,510 --> 00:35:00,580 Je to stejný nápad. 763 00:35:00,580 --> 00:35:03,100 Nyní stačí, když řeknu, že je to některé další escape sekvence, 764 00:35:03,100 --> 00:35:04,820 ale my přijdeme k těm zanedlouho. 765 00:35:04,820 --> 00:35:07,410 V podstatě to útěk sekvence představují něco 766 00:35:07,410 --> 00:35:10,480 , že nemusí být schopni příliš snadno na klávesnici, 767 00:35:10,480 --> 00:35:12,010 bez matoucích počítače. 768 00:35:12,010 --> 00:35:15,733 >> Teď zatím máme zástupné symboly v printf. 769 00:35:15,733 --> 00:35:19,630 Procent d, která může být také psáno téměř ve všech případech jako procento i, 770 00:35:19,630 --> 00:35:21,610 je zástupný symbol pro jaký typ dat? 771 00:35:21,610 --> 00:35:23,920 Jaký typ hodnoty? 772 00:35:23,920 --> 00:35:24,920 Desetinné číslo. 773 00:35:24,920 --> 00:35:27,234 Takže vlastně začneme pomocí procent i proto, že je 774 00:35:27,234 --> 00:35:28,650 Trochu jednodušší, stejně jako celé číslo. 775 00:35:28,650 --> 00:35:29,550 Procenta i. 776 00:35:29,550 --> 00:35:31,320 Číslo, které se stane být desetinná. 777 00:35:31,320 --> 00:35:35,690 >> Procent s už řekl, že zástupný řetězec. 778 00:35:35,690 --> 00:35:38,630 Což je jen slovo, fráze, odstavec, esej, cokoliv. 779 00:35:38,630 --> 00:35:40,830 To je sled znaky určité délky. 780 00:35:40,830 --> 00:35:42,820 A uvidíme zanedlouho některé z těchto druhých. 781 00:35:42,820 --> 00:35:45,950 Ale procent c je pro jeden znak. 782 00:35:45,950 --> 00:35:48,500 Procent f je pro číslo s plovoucí čárkou, 783 00:35:48,500 --> 00:35:50,860 jako reálné číslo, které má desetinná tečka v ní, což 784 00:35:50,860 --> 00:35:52,550 samozřejmě není celé číslo. 785 00:35:52,550 --> 00:35:54,670 A je tu celá banda i ostatním. 786 00:35:54,670 --> 00:35:56,990 >> Mezitím v C, a v mnoha jazycích, 787 00:35:56,990 --> 00:35:58,650 máme různé datové typy. 788 00:35:58,650 --> 00:36:00,650 Různé typy skleněné mísy, pokud chcete. 789 00:36:00,650 --> 00:36:03,830 Mísa jsem použil minule bylo pro ping pong míčky, 790 00:36:03,830 --> 00:36:06,990 ale můžeme také ukládat různé hodnoty, jako jsou znaky a řetězce 791 00:36:06,990 --> 00:36:10,820 a celá čísla v kontejneru, jako proměnné a C má ty. 792 00:36:10,820 --> 00:36:14,020 Char je typ dat, typ proměnné, 793 00:36:14,020 --> 00:36:15,700 ve kterém můžete uložit znak. 794 00:36:15,700 --> 00:36:19,560 Plovák je typ proměnné v které si můžete uložit reálné číslo. 795 00:36:19,560 --> 00:36:21,220 >> Int je samozřejmě pro int. 796 00:36:21,220 --> 00:36:23,760 A poněkud směšně jmenoval long long 797 00:36:23,760 --> 00:36:26,830 je místo, kde si můžete uložit v podstatě opravdu dlouhé číslo, s ještě 798 00:36:26,830 --> 00:36:29,930 více čísel pak Typický int síla obchod. 799 00:36:29,930 --> 00:36:32,420 Ale vrátíme se k tomu zanedlouho. 800 00:36:32,420 --> 00:36:35,520 >> V CS50 dot h mezitím jiný soubor záhlaví 801 00:36:35,520 --> 00:36:37,630 že jsme viděli pár krát v použití, tam je 802 00:36:37,630 --> 00:36:41,350 Další dva typy dat, které ne v C existují obvykle. 803 00:36:41,350 --> 00:36:45,000 Jedním z nich je řetězec, a uvidíme, v pár týdnů co řetězce opravdu 804 00:36:45,000 --> 00:36:46,610 jsou pod kapotou. 805 00:36:46,610 --> 00:36:47,950 A jeden je bool. 806 00:36:47,950 --> 00:36:51,650 A bool je proměnná, která se může uskutečnit pouze na určité hodnoty. 807 00:36:51,650 --> 00:36:54,370 A právě na základě minulý týden vysvětlení Scratch, 808 00:36:54,370 --> 00:36:56,680 a v poslední době, C, co byste asi 809 00:36:56,680 --> 00:37:01,770 jsou dvě možné hodnoty pro nějaký kontejner, který je typu bool? 810 00:37:01,770 --> 00:37:02,860 >> Ano i ne. 811 00:37:02,860 --> 00:37:03,870 Jedna a nula. 812 00:37:03,870 --> 00:37:04,502 True nebo false. 813 00:37:04,502 --> 00:37:07,460 A opravdu je to poslední, který má tendenci být konvenční v programování 814 00:37:07,460 --> 00:37:10,030 jazyk, říká něco jako true nebo false. 815 00:37:10,030 --> 00:37:13,160 >> Mezitím knihovna CS50 přichází s partou funkcí 816 00:37:13,160 --> 00:37:16,640 že zaměstnanci napsal pro vás, kromě toho jen dostat řetězec. 817 00:37:16,640 --> 00:37:20,910 Psali jsme v pokročilých funkcí, které může získat celé číslo od uživatele, 818 00:37:20,910 --> 00:37:22,990 získání jednoho znaku, se plovák, který 819 00:37:22,990 --> 00:37:25,160 je jen číslo s desetinnou čárkou. 820 00:37:25,160 --> 00:37:28,290 Získat long long, opravdu Velkou hodnotu od uživatele. 821 00:37:28,290 --> 00:37:30,930 Takže jsme jen svědky v akce v podobě getString. 822 00:37:30,930 --> 00:37:33,230 Ale prostřednictvím těchto funkcí brzy bude schopen napsat 823 00:37:33,230 --> 00:37:36,070 Programy, které se dostanou vstup od uživatele. 824 00:37:36,070 --> 00:37:39,230 >> Zatím to považují programu, a zvážit 825 00:37:39,230 --> 00:37:42,600 jak se nyní může začít přidávat k tomu s novými konstrukcemi. 826 00:37:42,600 --> 00:37:44,530 Rychlý vichřice tour a pak se podíváme 827 00:37:44,530 --> 00:37:47,340 na některé písemné některé programy ručně sami. 828 00:37:47,340 --> 00:37:49,700 Od té doby, pokud chceme realizovat stav, 829 00:37:49,700 --> 00:37:52,790 že to nebude vypadat jako pěkný malý pěkný kousek skládačky. 830 00:37:52,790 --> 00:37:54,460 Bude to vypadat trochu tajemný. 831 00:37:54,460 --> 00:37:57,620 Ale to je kanonický Struktura stavu v C. 832 00:37:57,620 --> 00:38:00,380 >> Slovo, pokud, dva závorky, uvnitř které 833 00:38:00,380 --> 00:38:02,590 bude nějaká o logický výraz. 834 00:38:02,590 --> 00:38:04,999 Nyní lomítko lomítko ve středu, to je 835 00:38:04,999 --> 00:38:07,290 v okamžiku, kdy něco jako pseudokód kód zástupný symbol. 836 00:38:07,290 --> 00:38:11,576 Ale přesněji každý řádek kódu v jazyce C, který začíná lomítkem lomítkem 837 00:38:11,576 --> 00:38:12,850 je komentář. 838 00:38:12,850 --> 00:38:15,920 >> Je to jako rychlé poznámky, které vám mohou kladen na esej, vytištěné na papíře. 839 00:38:15,920 --> 00:38:17,290 To je poznámka pro sebe. 840 00:38:17,290 --> 00:38:20,100 To nemá žádný funkční dopad na programu. 841 00:38:20,100 --> 00:38:23,580 Je to něco jako připomenutí, že je to vaše vlastní dokumentace o tom, co se děje. 842 00:38:23,580 --> 00:38:25,720 Tak to v současné době je jakýsi zástupný symbol 843 00:38:25,720 --> 00:38:27,560 pro co je uvnitř těchto složených závorek 844 00:38:27,560 --> 00:38:29,810 nakonec bude něco dělat. 845 00:38:29,810 --> 00:38:35,160 >> Zatím máte dvě vidličky v silnice, pokud ještě postavit takhle. 846 00:38:35,160 --> 00:38:37,024 Můžete-li, elseif, jinak. 847 00:38:37,024 --> 00:38:39,690 Teď je to stojí za zmínku, a to zejména pokud jste googling kolem 848 00:38:39,690 --> 00:38:42,480 online zdrojů mimo zvědavost, nebo pokud si vyzvednout 849 00:38:42,480 --> 00:38:44,575 jeden kurz je Doporučené knihy o C, 850 00:38:44,575 --> 00:38:48,430 uvidíte, že lidé mají spoustu z různých preferencí, jak 851 00:38:48,430 --> 00:38:50,510 vyjádřit se v kódu. 852 00:38:50,510 --> 00:38:53,800 Někteří lidé chtěli, aby složené závorky, jak jsem to udělal tady. 853 00:38:53,800 --> 00:38:57,760 Někteří lidé chtěli, aby se kudrnaté šle například tady. 854 00:38:57,760 --> 00:39:01,700 >> Někteří lidé chtěli, aby elses sem a pak to sem. 855 00:39:01,700 --> 00:39:05,120 Je nějaká řada způsobů, jak psát kód, a žádný z nich 856 00:39:05,120 --> 00:39:06,566 pravdu o sobě. 857 00:39:06,566 --> 00:39:08,440 Ačkoli tam je několik že jsou dost špatné. 858 00:39:08,440 --> 00:39:11,315 Ale jsou tu ne--, pokud je to v konečném důsledku velmi náboženský diskuse. 859 00:39:11,315 --> 00:39:13,940 Ve skutečnosti, jeden z nejvíce obtěžující věci, o informatice 860 00:39:13,940 --> 00:39:16,310 je, jak tvrdohlavý počítačoví odborníci mohou být. 861 00:39:16,310 --> 00:39:19,880 A zjistíte, že v průběhu času dokonce si vytvořit osobní preference 862 00:39:19,880 --> 00:39:22,130 o tom, jak váš kód by měl vypadat. 863 00:39:22,130 --> 00:39:27,162 >> Není to jen chovat, ne jen vytvořit výstup, ale jak by to vypadalo esteticky. 864 00:39:27,162 --> 00:39:30,120 Takže to, co budeme dělat, je vás po způsob, jak se k, alespoň prozatím, 865 00:39:30,120 --> 00:39:34,825 standardní CS50 stylu, že alespoň udržuje věci jednotný a snadno čitelné. 866 00:39:34,825 --> 00:39:37,330 Ale o těch, rozdíly před dlouho. 867 00:39:37,330 --> 00:39:41,830 >> Boolean výraz v C, pokud máte chtěl říci, zda je tato podmínka pravdivá 868 00:39:41,830 --> 00:39:44,650 a ta druhá podmínka je pravda, nemusíte napsat slovo 869 00:39:44,650 --> 00:39:46,610 a jak byste v angličtině. 870 00:39:46,610 --> 00:39:50,580 Můžete použít místo ampersand ampersand, z důvodů, vrátíme se. 871 00:39:50,580 --> 00:39:54,520 Pokud chcete říct, nebo můžete použít dvě vertikální pruhy, které se na klávesnici v USA 872 00:39:54,520 --> 00:39:57,650 je obecně vyšší Enter Klíčem vedle zpětného lomítka. 873 00:39:57,650 --> 00:40:03,080 A to právě znamená, že pokud tuto podmínku nebo ta druhá podmínka je pravda to. 874 00:40:03,080 --> 00:40:05,210 >> Zatím tam je to šílená věc, která 875 00:40:05,210 --> 00:40:07,760 budete mít příležitost jednou použít na chvíli. 876 00:40:07,760 --> 00:40:10,390 Ale je to jen alternativa způsob, jak vyjádřit sám sebe. 877 00:40:10,390 --> 00:40:12,400 To teď, pojďme stanoveno, že je to jen 878 00:40:12,400 --> 00:40:16,880 další funky způsob, jak vyjádřit pokud elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Je to jen ve formátu, pokud jde případů, kdy vás doslova 880 00:40:19,720 --> 00:40:23,420 výčet hodnot, které možná budete chtít zkontrolovat. 881 00:40:23,420 --> 00:40:24,410 >> Zatím smyčky. 882 00:40:24,410 --> 00:40:26,842 Viděli jsme srovnání Stírací smyčkou. 883 00:40:26,842 --> 00:40:29,550 A já budu mávat mou ruku na co každá z těchto věcí znamená. 884 00:40:29,550 --> 00:40:33,520 Ale všimněte si, že smyčka bude velmi často začínají s klíčového slova. 885 00:40:33,520 --> 00:40:36,350 Nebo to bude začínat klíčovým slovem chvíli. 886 00:40:36,350 --> 00:40:41,360 Nebo to bude začínat klíčovým slovem dělat, a končí klíčovým slovem chvíli. 887 00:40:41,360 --> 00:40:43,920 >> Ale to, co se chystáme vidět je věcí další, jako je tento. 888 00:40:43,920 --> 00:40:47,950 Tady je obecně v C, jak byste mohli deklarovat proměnnou a dát mu hodnotu. 889 00:40:47,950 --> 00:40:50,610 V jazyce C to nestačí, jako v Scratch, stačí 890 00:40:50,610 --> 00:40:52,810 říkají mi dát proměnnou s názvem něco. 891 00:40:52,810 --> 00:40:55,960 Musíš říct, C, a řekni váš kompilátor, konkrétněji, 892 00:40:55,960 --> 00:40:58,680 jaký typ hodnoty, kterou do chcete dát do skleněné mísy. 893 00:40:58,680 --> 00:40:59,610 >> Je to číslo? 894 00:40:59,610 --> 00:41:02,210 Pokud ano, budete muset Doslova řekl int a pak 895 00:41:02,210 --> 00:41:04,220 název proměnné, pak středník. 896 00:41:04,220 --> 00:41:08,050 Pokud místo toho chtěl řetězec a vyzval Je to, jako jsem to udělal můj kód zde dnes, 897 00:41:08,050 --> 00:41:10,920 byste řekl řetězci s středník. 898 00:41:10,920 --> 00:41:14,200 Pokud chcete opravdu dát mu hodnotu pak můžete použít rovnítko, 899 00:41:14,200 --> 00:41:16,211 jinak známý jako Operátor přiřazení. 900 00:41:16,211 --> 00:41:17,960 A všimněte si, jak každý z těchto řádků kódu 901 00:41:17,960 --> 00:41:20,650 má středník na konci. 902 00:41:20,650 --> 00:41:22,550 >> Ale upřímně řečeno, to jen vypadá trochu ošklivé. 903 00:41:22,550 --> 00:41:26,580 Proč se nemohu říci k počítači, aby me variabilní a inicializovat na nulu. 904 00:41:26,580 --> 00:41:28,380 To je, dej mi prázdnou skleněnou mísu. 905 00:41:28,380 --> 00:41:28,980 I když můžete. 906 00:41:28,980 --> 00:41:32,250 A tak jeden z rozsudku hovory budete muset stylisticky v průběhu času 907 00:41:32,250 --> 00:41:36,290 je, že píšete kód, jako je tento, nebo si trochu vyčistit a zapůsobit 908 00:41:36,290 --> 00:41:39,040 lidé od psaní dva řádky jen jako jeden. 909 00:41:39,040 --> 00:41:41,830 A to by bylo považováno obecně více elegantní způsob, jak 910 00:41:41,830 --> 00:41:43,870 psaní kódu stylisticky. 911 00:41:43,870 --> 00:41:45,200 >> Funkce jsme samozřejmě vidět. 912 00:41:45,200 --> 00:41:46,340 Chystají se v tomto formátu. 913 00:41:46,340 --> 00:41:48,881 Název funkce, některé závorky, a pak možná nějaký 914 00:41:48,881 --> 00:41:49,910 věci uvnitř. 915 00:41:49,910 --> 00:41:52,540 Nebo můžete vidět použití více funkcí na straně 916 00:41:52,540 --> 00:41:55,980 sebe, jako něco, jako je tohle. 917 00:41:55,980 --> 00:41:59,390 Nyní jako tangens, dělá Tento vtip teď smysl? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [SMÍCH] 920 00:42:04,960 --> 00:42:09,360 To neznamená, že je to vtipné, ale je to to snad udělat trochu větší smysl. 921 00:42:09,360 --> 00:42:12,140 Takže teď pojďme do CS50 přístroj na chvíli. 922 00:42:12,140 --> 00:42:14,640 A dovolte mi, abych otevřela jednu ukázku zde. 923 00:42:14,640 --> 00:42:17,470 >> A skutečně jedním z důvodů, pro zavedení Katalog IKEA 924 00:42:17,470 --> 00:42:20,080 a blikající obraz z iPhone před trochu 925 00:42:20,080 --> 00:42:24,700 bylo ve skutečnosti navazují spolu Skutečnost, že jen před několika lety, v roce 2007, 926 00:42:24,700 --> 00:42:26,540 tento kus kódu byl uvolní, který byl 927 00:42:26,540 --> 00:42:29,820 jeden z prvního provedení z kusu softwaru 928 00:42:29,820 --> 00:42:31,494 , že dělá to, co se nazývá Jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Pro ty neznámé, jailbreaking něco jako telefon nebo iPhone 930 00:42:34,410 --> 00:42:37,680 znamená, že v podstatě zjišťuje na to, jak dělat věci 931 00:42:37,680 --> 00:42:39,864 s tím, že společnost kdo dělal to neměl v úmyslu. 932 00:42:39,864 --> 00:42:42,780 Jako chcete nainstalovat určitý software, který není v App Store, 933 00:42:42,780 --> 00:42:45,405 jailbreaking telefon, který dělat věci, jako že i více. 934 00:42:45,405 --> 00:42:47,447 Ale to, co bylo zábavné v 2007-- a tam to bylo 935 00:42:47,447 --> 00:42:49,780 desítky různých verzích z těchto věcí od té doby, 936 00:42:49,780 --> 00:42:53,540 ve všech druzích z languages-- je, že Tento program zde, nazvaný iUnlock, 937 00:42:53,540 --> 00:42:57,036 byl vlastně napsán v C a tak jsem vytáhl zdrojový kód k tomu, 938 00:42:57,036 --> 00:42:59,910 jen trochu ukázat některé podobnosti s konstrukcí 939 00:42:59,910 --> 00:43:01,450 jsme diskutovali tak daleko. 940 00:43:01,450 --> 00:43:05,150 Nyní je tu mnohem více složitost zde než jsme viděli už ve třídě. 941 00:43:05,150 --> 00:43:07,160 Dovolte mi, abych rolovat nahoru jen trochu tady. 942 00:43:07,160 --> 00:43:11,520 >> Ale všimněte these-- také můžeme všimnout několika věci-- nevšimnout tyto řádky zde, 943 00:43:11,520 --> 00:43:14,090 včetně standardní I / O dot h. 944 00:43:14,090 --> 00:43:17,660 A all-- linka 24, please-- Všimněte si, standardní I / O 945 00:43:17,660 --> 00:43:21,380 dot h a celá parta z jiných Soubory, které zřejmě jiní lidé 946 00:43:21,380 --> 00:43:22,160 psali. 947 00:43:22,160 --> 00:43:24,850 A pokud se procházejte to málo libovolně, 948 00:43:24,850 --> 00:43:27,910 Všiml jsem si, nevím, jak psát to vše ještě sám nutně, 949 00:43:27,910 --> 00:43:28,880 ale je-li. 950 00:43:28,880 --> 00:43:30,400 Takže zřejmě to má pobočku. 951 00:43:30,400 --> 00:43:33,210 >> A kdybych přejděte dolů trochu Dále je tu ještě jeden, pokud. 952 00:43:33,210 --> 00:43:38,210 Mám-li rolovat nahoru, myslím, že kolem řádku 100 jsem viděl. 953 00:43:38,210 --> 00:43:40,020 Tak si nejsem zcela jist, jak to funguje ještě, 954 00:43:40,020 --> 00:43:43,180 ale to je pro smyčce, co se děje na dovolte mi, abych opakovat určitý počet opakování. 955 00:43:43,180 --> 00:43:45,230 A když jsem procházet všechny cesta na dno 956 00:43:45,230 --> 00:43:51,020 Vidím, že je tu fungovat sem volal 957 00:43:51,020 --> 00:43:54,570 Hlavní, a některé další úvěry pro vaše potěšení čtení. 958 00:43:54,570 --> 00:43:57,830 >> Takže to je jen say-- a dáme Tento on-line mezi zdroji stránce kurzu 959 00:43:57,830 --> 00:44:01,480 Kód today--, že i některé z nich zařízení, které bereme jako samozřejmost, 960 00:44:01,480 --> 00:44:05,130 Na konci dne si pořád Pomocí těchto základních konstruktů, které jsme 961 00:44:05,130 --> 00:44:07,430 bylo zavedení již tak daleko. 962 00:44:07,430 --> 00:44:08,620 To je dost, že jeden. 963 00:44:08,620 --> 00:44:11,480 Dobře, takže teď pojďme skutečně něco postavit. 964 00:44:11,480 --> 00:44:15,640 >> Pojďme za něco hello.c a otevřít to, 965 00:44:15,640 --> 00:44:17,170 pojďme napsat tento program zde. 966 00:44:17,170 --> 00:44:19,850 Chystám se jít dopředu a napsat program s názvem adder.c, 967 00:44:19,850 --> 00:44:23,310 jehož smyslem života bude jako moje první super jednoduché kalkulačky 968 00:44:23,310 --> 00:44:24,840 že jen přidává pár čísel. 969 00:44:24,840 --> 00:44:27,050 Ne proto, že je to těžké problém, ale proto, že 970 00:44:27,050 --> 00:44:29,390 umožňuje mi nyní svázat dohromady několik věcí. 971 00:44:29,390 --> 00:44:33,100 Takže budu pokračovat a zahrnují Standardní I / O bod h a CS50 tečka h. 972 00:44:33,100 --> 00:44:34,670 Já jsem chtěl říct, int main neplatné. 973 00:44:34,670 --> 00:44:36,545 A v budoucnu znovu vrátíme se k němu 974 00:44:36,545 --> 00:44:38,560 na v tomto kontextu a prázdnými prostředky. 975 00:44:38,560 --> 00:44:43,340 >> A teď něco říct jako printf, dej mi číslo. 976 00:44:43,340 --> 00:44:47,610 A teď se na mém druhém řádku, Jak mohu vyjádřit sám sebe, jako 977 00:44:47,610 --> 00:44:50,980 že chci deklarovat proměnnou že to bude ukládat int? 978 00:44:50,980 --> 00:44:55,470 Doslova to, co mám psát, když chci, aby vytvořit proměnnou, která ukládá int 979 00:44:55,470 --> 00:44:58,270 byste řekli? 980 00:44:58,270 --> 00:44:59,650 int rovná vezmi_int. 981 00:44:59,650 --> 00:45:00,485 Jasně, tak to funguje. 982 00:45:00,485 --> 00:45:02,360 A právě konzistence s kódem, budete 983 00:45:02,360 --> 00:45:04,485 viz on-line, ať mi změna to x, jen proto, že x 984 00:45:04,485 --> 00:45:06,830 je společný název proměnné použít, alespoň v algebře. 985 00:45:06,830 --> 00:45:08,720 Nyní mi dovolte pokračovat a to printf znovu. 986 00:45:08,720 --> 00:45:10,692 Dej mi ještě číslo. 987 00:45:10,692 --> 00:45:12,900 A teď budu druhu o učit se od tohoto vzoru, 988 00:45:12,900 --> 00:45:14,490 Já jsem chtěl říct, int y dostane do vezmi_int. 989 00:45:14,490 --> 00:45:16,340 >> A my jsme se použít Vezmi_int dříve, ale jen 990 00:45:16,340 --> 00:45:19,860 jako GetString jde a dostane řetězec, jako Javier udělal z publika, 991 00:45:19,860 --> 00:45:22,780 podobně dělá vezmi_int začne blikat na řádku. 992 00:45:22,780 --> 00:45:26,750 A účinně čekání uživatele aby to celé číslo, zadáním do 993 00:45:26,750 --> 00:45:27,900 a stisknutím klávesy Enter. 994 00:45:27,900 --> 00:45:30,850 Teď konečně budu dělat to, printf součet of-- 995 00:45:30,850 --> 00:45:36,080 a dovolte mi, abych se fantazie teď-- procent i a procenta i je přítomen 996 00:45:36,080 --> 00:45:39,270 i vykřičník zpětné lomítko n. 997 00:45:39,270 --> 00:45:42,750 A co si myslíte, že budu dát do teď jako další vstupy 998 00:45:42,750 --> 00:45:44,620 printf? 999 00:45:44,620 --> 00:45:47,380 >> Nechci říci, doslovně citovat konec citátu x. 1000 00:45:47,380 --> 00:45:52,210 Chci do třídy X a pak, a teď pojďme fantazie 1001 00:45:52,210 --> 00:45:54,420 a pojďme se jen předpokládat, můžeme dělat, co chceme. 1002 00:45:54,420 --> 00:45:56,330 Co chcete říct dál? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 A opravdu to bude fungovat. 1005 00:45:58,520 --> 00:46:01,760 Je to minimálně programovací jazyky to pochopit základní aritmetické operace, 1006 00:46:01,760 --> 00:46:03,500 a tak by to ve skutečnosti práce. 1007 00:46:03,500 --> 00:46:06,730 >> Tak nech mě jít dopředu a dělat, aby zmije v mé černé a bílé okně 1008 00:46:06,730 --> 00:46:08,090 sem, Enter. 1009 00:46:08,090 --> 00:46:10,830 Cryptic linka, ale žádná chyba zprávy, tak to je dobrý. 1010 00:46:10,830 --> 00:46:14,410 Dot lomítko výbavu, dej mi celé číslo, 1. 1011 00:46:14,410 --> 00:46:16,230 Dej mi ještě celé číslo, 2. 1012 00:46:16,230 --> 00:46:18,770 Součet 1 a 2 je 3. 1013 00:46:18,770 --> 00:46:21,730 >> Dobře, takže docela triviální programu, ale co to dělá? 1014 00:46:21,730 --> 00:46:25,680 Je mi umožnilo použít funkci sem volat, volat jinou funkci zde, 1015 00:46:25,680 --> 00:46:29,260 dva hovory na vezmi_int, A Třetí výzva k printf, 1016 00:46:29,260 --> 00:46:30,720 a pak pomocí těchto zástupných symbolů. 1017 00:46:30,720 --> 00:46:33,160 Takže je to trochu víc sofistikovanější, než minule. 1018 00:46:33,160 --> 00:46:35,260 Ale co když chci trochu milovník? 1019 00:46:35,260 --> 00:46:38,900 >> Nech mě jít napřed a teď tohle. 1020 00:46:38,900 --> 00:46:42,890 Nech mě jít napřed a vytvořit nový soubor s názvem podmínky nulu. 1021 00:46:42,890 --> 00:46:44,890 A já budu šetřit nějaký čas pro kategorie zájmu 1022 00:46:44,890 --> 00:46:48,260 a stačí vložit v tom, že kód jako výchozí bod. 1023 00:46:48,260 --> 00:46:51,510 A teď jen tak dal něco nového tady uprostřed. 1024 00:46:51,510 --> 00:46:55,889 Takže printf bych celé číslo, prosím. 1025 00:46:55,889 --> 00:46:58,180 A to vše kód je k dispozici na internetových stránkách kursu je, 1026 00:46:58,180 --> 00:47:00,556 nemusíte psát to všechno ve třídě, pokud nechcete. 1027 00:47:00,556 --> 00:47:02,638 int, a teď jdu použití, místo toho, aby X a Y 1028 00:47:02,638 --> 00:47:05,270 Chystám se použít n, což je Pravděpodobně nejčastější název 1029 00:47:05,270 --> 00:47:09,220 k je celé číslo v počítačovém programu. 1030 00:47:09,220 --> 00:47:12,060 A teď chci udělat málo rozsudek zde. 1031 00:47:12,060 --> 00:47:15,460 Jdu zjistit, jestli n je větší než 0, potom 1032 00:47:15,460 --> 00:47:23,670 Chystám se říct printf-- Jejda, printf-- si vybral kladné číslo, 1033 00:47:23,670 --> 00:47:25,370 vykřičník zpětné lomítko n. 1034 00:47:25,370 --> 00:47:26,460 Ukončete to. 1035 00:47:26,460 --> 00:47:33,150 Jinak jdu vytisknout printf jste si vybral záporné číslo. 1036 00:47:33,150 --> 00:47:35,377 >> Teď před vámi na mě křičet, pojďme spustit tento program. 1037 00:47:35,377 --> 00:47:36,210 Nech mě jít sem. 1038 00:47:36,210 --> 00:47:40,730 A jak mám sestavit program volal podmínky pomlčka 0? 1039 00:47:40,730 --> 00:47:42,300 Vytvářet podmínky pomlčka 0. 1040 00:47:42,300 --> 00:47:45,560 Trochu hloupé jméno, ale-- sakra. 1041 00:47:45,560 --> 00:47:47,560 OK, dobré vyučování moment. 1042 00:47:47,560 --> 00:47:48,410 Proč se to zlomit? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Co jsem náhodou zavolat tento soubor? 1045 00:47:54,710 --> 00:47:56,876 Můžete trochu odvodit Na kartě tady. 1046 00:47:56,876 --> 00:47:58,750 Takže to není špatné, že jsem to udělal, protože to 1047 00:47:58,750 --> 00:48:00,208 se stane, možná některé z vás. 1048 00:48:00,208 --> 00:48:03,880 Tak jsem se náhodou jmenoval můj Zdrojový kód stavu 0. 1049 00:48:03,880 --> 00:48:09,950 Ale můj zdrojový kód podle úmluvy by měla být v souboru s názvem stav 0 pomlčka c, 1050 00:48:09,950 --> 00:48:11,720 nebo cokoliv tečka c. 1051 00:48:11,720 --> 00:48:12,610 >> Takže dovolte mi, abych tento problém odstranit. 1052 00:48:12,610 --> 00:48:16,880 Stejně jako Microsoft Word můžu jít nahoru na příkaz Uložit jako a dělat stav 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Teď už jen stačí, aby byl pořádek, že jsem jít dopředu a vyjměte 1054 00:48:20,100 --> 00:48:23,020 stav 0, což byla moje stará verze. 1055 00:48:23,020 --> 00:48:26,550 A teď pojďme dělat, aby stav 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, se zdá být dobré. 1057 00:48:27,870 --> 00:48:29,510 >> Stav 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Rád bych celé číslo, prosím, 50, jste si vybral kladné číslo. 1059 00:48:33,530 --> 00:48:35,390 Nyní, jak o negativní 50? 1060 00:48:35,390 --> 00:48:37,660 Jste si vybral záporné číslo. 1061 00:48:37,660 --> 00:48:39,605 Jak teď, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Jsem si jistý, 0 to není negativní. 1064 00:48:45,350 --> 00:48:47,780 >> Tak to je docela logické chyby. 1065 00:48:47,780 --> 00:48:50,680 Jak mohu tento problém vyřešit? 1066 00:48:50,680 --> 00:48:57,260 Jinak, pokud n je menší než 0, to, jinak provést můžeme mít třícestného větev tady, 1067 00:48:57,260 --> 00:49:01,740 printf sis vybral 0. 1068 00:49:01,740 --> 00:49:06,150 Takže teď, když jsem znovu spustit tento program po kompilaci ji 1069 00:49:06,150 --> 00:49:10,790 opět s make, a teď znovu spustit stav 0, co uvidím tady 1070 00:49:10,790 --> 00:49:14,570 0 mi dává tento výstup. 1071 00:49:14,570 --> 00:49:16,280 Tak kam jedeme s tím? 1072 00:49:16,280 --> 00:49:18,930 >> No, je to velmi snadné ztratit ze zřetele v lese mezi stromy. 1073 00:49:18,930 --> 00:49:23,590 A tak lze usuzovat, s tímto 2 a 1/2 minuty videa 1074 00:49:23,590 --> 00:49:25,710 že v konečném důsledku je to trochu z reklamy od společnosti Google, 1075 00:49:25,710 --> 00:49:28,850 ale je to opravdu svědčí o co i pomocí těchto základních stavebních 1076 00:49:28,850 --> 00:49:33,020 bloky se můžeme nakonec udělat jednou máme trochu programování 1077 00:49:33,020 --> 00:49:34,463 znalým pod našimi pásy. 1078 00:49:34,463 --> 00:49:35,150 >> [Přehrávání hudby] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO BRIERLEY (HLAS): Bylo to před 26 lety, 1081 00:49:40,540 --> 00:49:42,470 a já jsem se chystal otočit 5. 1082 00:49:42,470 --> 00:49:45,465 Dostali jsme se na nádraží a jsme nastoupili naši vlaku spolu. 1083 00:49:45,465 --> 00:49:48,010 Můj bratr právě řekl, budu zůstat tady a já se vrátím. 1084 00:49:48,010 --> 00:49:51,140 A já jsem si myslel, dobře víte, Bych mohl stejně dobře spát 1085 00:49:51,140 --> 00:49:52,690 a on si jen mě vzbudit. 1086 00:49:52,690 --> 00:49:55,145 A když jsem se probudil další den, celý vozík 1087 00:49:55,145 --> 00:49:59,125 byla prázdná na splašený vlak, duch Vlak mě bereš nevím kde. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Jsem byl přijat se do Austrálie, australské rodiny. 1090 00:50:06,280 --> 00:50:09,710 A máma se zdobí můj pokoj s mapou Indie, 1091 00:50:09,710 --> 00:50:11,950 která položila vedle mé postele. 1092 00:50:11,950 --> 00:50:15,830 Probudil jsem se každé ráno viděl tu mapu, a proto 1093 00:50:15,830 --> 00:50:18,530 to nějak stále vzpomínky naživu. 1094 00:50:18,530 --> 00:50:20,530 Lidé by řekli, že jste se snaží najít jehlu 1095 00:50:20,530 --> 00:50:23,560 v kupce sena, Saroo nikdy najít. 1096 00:50:23,560 --> 00:50:28,540 >> Já bych se zablesklo z míst, které jsem chodil, bliká mé rodiny 1097 00:50:28,540 --> 00:50:29,890 tváře. 1098 00:50:29,890 --> 00:50:34,060 Tam byl obraz mé matky, sedět s nohama zkříženýma 1099 00:50:34,060 --> 00:50:35,740 jen sledoval její výkřik. 1100 00:50:35,740 --> 00:50:38,160 Život je to tak těžké. 1101 00:50:38,160 --> 00:50:41,237 To byl můj poklad. 1102 00:50:41,237 --> 00:50:44,320 A já jsem se díval na Google mapy a si uvědomil, že je Google Earth stejně. 1103 00:50:44,320 --> 00:50:48,140 Ve světě, kde byste mohli přiblížit, Začal jsem mít všechny z těchto myšlenek 1104 00:50:48,140 --> 00:50:51,500 a jaké možnosti že to pro mě mohl udělat. 1105 00:50:51,500 --> 00:50:54,890 Řekl jsem si, víte, vy jste mám všechny ty fotografické vzpomínky 1106 00:50:54,890 --> 00:50:58,590 a památek, kde jsi, a Víte, co město vypadá. 1107 00:50:58,590 --> 00:51:03,060 To by mohla být aplikace, která můžete použít k najít cestu zpět. 1108 00:51:03,060 --> 00:51:06,720 >> Myslel jsem si, dobře, že jsem si dal tečka na nádraží Kalkata, 1109 00:51:06,720 --> 00:51:10,890 a poloměr linka, víte, že vás by měla být vyhledávání kolem této oblasti. 1110 00:51:10,890 --> 00:51:13,750 Tak nějak jsem narazil na Tyto koleje. 1111 00:51:13,750 --> 00:51:18,160 A začal jsem po to, a Přišel jsem na nádraží, které 1112 00:51:18,160 --> 00:51:22,228 odráží stejný obrázek to bylo v mých vzpomínkách. 1113 00:51:22,228 --> 00:51:23,707 Všechno uzavřeno. 1114 00:51:23,707 --> 00:51:27,950 Myslel jsem, že jo, já vědět, kam jdu. 1115 00:51:27,950 --> 00:51:30,116 Já jsem jen tak nechat Mapa, že mám v hlavě 1116 00:51:30,116 --> 00:51:33,080 veď mě a vem mě zpět do mého rodného města. 1117 00:51:33,080 --> 00:51:36,420 >> Přišel jsem až ke dveřím dům, který jsem se narodil. 1118 00:51:36,420 --> 00:51:39,140 A chodil asi 15 metrů za rohem, 1119 00:51:39,140 --> 00:51:42,980 tam byly tři dámy stojící mimo, vedle sebe. 1120 00:51:42,980 --> 00:51:47,830 A prostřední krok vpřed, a Jen jsem si myslel, je to tvoje matka. 1121 00:51:47,830 --> 00:51:53,450 Přišla dopředu, mě objala a byli jsme tam asi pět minut. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Popadla mě za ruku a ona mě vzala do domu 1124 00:51:59,000 --> 00:52:02,450 a dostal se na telefonu, kde se zavolal mou sestru a mého bratra 1125 00:52:02,450 --> 00:52:05,600 říci, že víte, tvůj bratr má jen 1126 00:52:05,600 --> 00:52:09,340 Najednou se objevil jako duch. 1127 00:52:09,340 --> 00:52:12,440 A pak byla rodina opět sešel. 1128 00:52:12,440 --> 00:52:15,110 Všechno je dobré, Pomohl jsem svou matku ven, 1129 00:52:15,110 --> 00:52:17,110 že nemusí být zotročení pryč. 1130 00:52:17,110 --> 00:52:19,555 Ona může žít po zbytek svého života v klidu. 1131 00:52:19,555 --> 00:52:23,460 >> Byla to jehla v kupce sena, ale jehla tam byl. 1132 00:52:23,460 --> 00:52:24,400 Všechno, co tam je. 1133 00:52:24,400 --> 00:52:28,260 Vše, co se ve světě je na ťuknutí na tlačítko. 1134 00:52:28,260 --> 00:52:32,010 Ale musíš mít vůli a odhodlání, kteří chtějí to. 1135 00:52:32,010 --> 00:52:32,950 >> [Přehrávání hudby] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Nádherně sweet posudek 1138 00:52:38,170 --> 00:52:40,540 jen to, co můžete Nyní to s technikou. 1139 00:52:40,540 --> 00:52:43,390 Uvidíme se příští týden. 1140 00:52:43,390 --> 00:52:44,374