1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Malan: To je CS50, a to je začiatok týždňa 1. 2 00:00:12,200 --> 00:00:15,520 Čo sme si mysleli, že to dnes, je pozrieť sa späť na 3 00:00:15,520 --> 00:00:18,290 niečo, čo mnohí z vás pravdepodobne chodil minulosti pre niektoré 4 00:00:18,290 --> 00:00:20,570 Teraz a môže vyzerať trochu povedomý. 5 00:00:20,570 --> 00:00:23,720 To, čo tu, to je samozrejme v - 6 00:00:23,720 --> 00:00:24,155 Divákov: Science. 7 00:00:24,155 --> 00:00:26,030 DAVID Malan: Vedecké centrum. 8 00:00:26,030 --> 00:00:28,940 Takže to je vlastne jeden z prvých počítačov 9 00:00:28,940 --> 00:00:30,220 Späť z roku 1940. 10 00:00:30,220 --> 00:00:33,790 To bol jeden z prvých elektromechanických počítačov 11 00:00:33,790 --> 00:00:35,730 že bol schopný obzvlášť dlhé, 12 00:00:35,730 --> 00:00:38,450 samostatných výpočty, a to, čo sme vlastne vidieť v 13 00:00:38,450 --> 00:00:41,580 veda mesta je len malý kúsok tejto veci. 14 00:00:41,580 --> 00:00:44,170 Čo sme si mysleli, že to potom, je pozrieť sa späť na video 15 00:00:44,170 --> 00:00:46,670 , Ktorá bola vykonaná pred časom, ktorým tento 16 00:00:46,670 --> 00:00:47,520 vec na svete. 17 00:00:47,520 --> 00:00:50,200 A uvidíte z hudby a hlasu, ktorý naozaj ti 18 00:00:50,200 --> 00:00:52,070 boli veľmi šťastné časy. 19 00:00:54,885 --> 00:00:59,700 >> [PREHRÁVANIE] 20 00:00:59,700 --> 00:01:02,490 -Triumf matematické a mechanické zručnosti, je to 21 00:01:02,490 --> 00:01:06,340 skvelé nové automatické kalkulačka na Harvardovej univerzite. 22 00:01:06,340 --> 00:01:08,620 Zložité problémy v matematike, dal prostredníctvom 23 00:01:08,620 --> 00:01:12,420 Stroj v kódovanej forme na pásku, sú presne riešené 24 00:01:12,420 --> 00:01:15,200 minút zlomok času potrebného na ľudskú 25 00:01:15,200 --> 00:01:16,450 Výpočet. 26 00:01:27,050 --> 00:01:30,600 Navrhnuté pre urýchlenie všetkých foriem matematické a prírodovedné 27 00:01:30,600 --> 00:01:34,610 výskumu, bude obrie mechanický mozog pracovať pre Spojené 28 00:01:34,610 --> 00:01:36,570 Štáty Navy až do konca vojny. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Malan: Takže to, čo možno neviete je, že to bolo v 30 00:01:52,980 --> 00:01:56,310 to isté zariadenie, ktoré obdobie sme všetci teraz sa celkom veľa 31 00:01:56,310 --> 00:01:59,300 za samozrejmé bol vytvorený, to chyba. 32 00:01:59,300 --> 00:02:01,140 Takže jeden z inžinierov pracuje v tomto počítači 33 00:02:01,140 --> 00:02:05,280 doslova našiel malý mora v počítači, ktorý vyústil 34 00:02:05,280 --> 00:02:07,580 v niektorých nesprávnych výpočtov. 35 00:02:07,580 --> 00:02:10,410 A ako príbeh pokračuje, že mora bola nahrávaná do tohto protokolu 36 00:02:10,410 --> 00:02:14,180 časopis tu, späť od 9. do 1940-niečo, 37 00:02:14,180 --> 00:02:16,550 a tak sa narodil na svet termín "chyba". 38 00:02:16,550 --> 00:02:19,880 Takže odteraz budeme považovať chyby za nejaký druh chýb v 39 00:02:19,880 --> 00:02:23,290 programy, či už umelých alebo, v tomto prípade, hmyz. 40 00:02:23,290 --> 00:02:25,030 >> Takže niekoľko oznámení, ako budeme postupovať. 41 00:02:25,030 --> 00:02:29,160 Takže CS50 má tradíciu ponúkať balíčky z druhov na 42 00:02:29,160 --> 00:02:31,600 väčšina piatok v priebehu semestra, kde sme sa vziať 30 až 43 00:02:31,600 --> 00:02:34,650 40 študentov do ohňa a ľadu na námestí pre príležitostné 44 00:02:34,650 --> 00:02:36,390 táranie, hovoriť o počítačovej vedy, 45 00:02:36,390 --> 00:02:37,420 hovoriť o budúcnosti. 46 00:02:37,420 --> 00:02:40,000 Pozývame Spolok absolventov a priateľov z priemyslu ukecať 47 00:02:40,000 --> 00:02:40,690 študentov i 48 00:02:40,690 --> 00:02:44,020 Naozaj smerom k ukončeniu robiť čo je pomerne veľká trieda 49 00:02:44,020 --> 00:02:46,740 tým viac intímne, najmenej raz za kým 50 00:02:46,740 --> 00:02:47,710 podmnožiny študentov. 51 00:02:47,710 --> 00:02:50,940 Takže ak by ste sa k nám pripojiť tento piatok, 13:15, prejdite na 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch na RSVP. 53 00:02:53,340 --> 00:02:55,840 A urobíme to recurringly, tak nie sa báť, ak si nie ste 54 00:02:55,840 --> 00:02:57,930 medzi prvých 30 alebo tak tento týždeň. 55 00:02:57,930 --> 00:02:59,070 >> Tak pisár poznámky. 56 00:02:59,070 --> 00:03:01,500 Slovo na zdroje, ktoré budú teraz začať byť k dispozícii 57 00:03:01,500 --> 00:03:03,040 pre študentov v triede. 58 00:03:03,040 --> 00:03:05,540 Tak, aby vaše hlavy nemusí byť dolu počas prednášok 59 00:03:05,540 --> 00:03:08,560 klikiháky dole všetko, čo som povedal, a tak ďalej, čo robíme 60 00:03:08,560 --> 00:03:10,765 namiesto toho ich poskytne z učiteľov 61 00:03:10,765 --> 00:03:11,920 kánonický súbor poznámok. 62 00:03:11,920 --> 00:03:14,850 Takže máme jeden z našich výukových chlapíkov, Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 kto si sadne každý týždeň, preskúmava videa, a potom 64 00:03:17,830 --> 00:03:19,730 zapisuje to, čo si myslíme, že je docela 65 00:03:19,730 --> 00:03:21,840 autoritatívne súbor poznámok. 66 00:03:21,840 --> 00:03:24,180 A Andrew je fond, tiež uvedenie Snark poznámky pod čiarou v 67 00:03:24,180 --> 00:03:24,820 spodné. 68 00:03:24,820 --> 00:03:27,300 Takže budete snáď teraz títo ako referenčná príručka pre 69 00:03:27,300 --> 00:03:30,230 zábavy, a tiež, príde kvíz čas, rovnako ako príležitosť k preskúmaniu 70 00:03:30,230 --> 00:03:31,830 čo sa stalo v jednotlivých prednášok. 71 00:03:31,830 --> 00:03:33,580 Takže tie sú spojené na prednášky stránke. 72 00:03:33,580 --> 00:03:35,300 >> Problém set 0, zatiaľ, je vonku. 73 00:03:35,300 --> 00:03:37,470 A pokiaľ ide o zdroje ktoré máte k dispozícii - 74 00:03:37,470 --> 00:03:38,020 návod. 75 00:03:38,020 --> 00:03:39,730 Milo viedol prvý na piatok. 76 00:03:39,730 --> 00:03:41,470 To bolo natočené, vložte on-line v sobotu. 77 00:03:41,470 --> 00:03:44,030 A tak si uvedomiť, ak si nie ste naozaj istí, kde začať, 78 00:03:44,030 --> 00:03:47,280 pre tento alebo budúci p-sady, vždy sa najprv obrátiť na 79 00:03:47,280 --> 00:03:49,300 návod alebo video nariadenia. 80 00:03:49,300 --> 00:03:52,950 Krájanie prebieha, v cs50.net/section je miesto, kde si 81 00:03:52,950 --> 00:03:54,540 by mal predložiť svoje preferencie, ak nemáte 82 00:03:54,540 --> 00:03:55,880 už tým, že dnes. 83 00:03:55,880 --> 00:03:58,140 Vzhľadom k tomu, sekcia začne tento rok v nedeľu, pondelok, 84 00:03:58,140 --> 00:03:58,760 a utorok. 85 00:03:58,760 --> 00:04:02,470 Robíme body tieto tri dni, každý týždeň z 86 00:04:02,470 --> 00:04:03,870 semester z väčšej časti. 87 00:04:03,870 --> 00:04:06,600 A my tiež zaviesť, opäť rôzne skladby. 88 00:04:06,600 --> 00:04:08,270 Takže budete opýtaný na tomto vnútornému členenie forme, ak ste 89 00:04:08,270 --> 00:04:10,350 Nevidel ju už, ak ste medzi tými menej 90 00:04:10,350 --> 00:04:12,800 pohodlné, oveľa pohodlnejšie, alebo niečo medzi tým. 91 00:04:12,800 --> 00:04:14,960 A ak ste trochu na plot, všeobecne niekde v 92 00:04:14,960 --> 00:04:18,160 medzi je to, čo väčšina študentov končí kontrolu. 93 00:04:18,160 --> 00:04:19,579 Úradné hodiny začína dnes večer. 94 00:04:19,579 --> 00:04:23,020 >> Takže Scratch je pomerne nízka kľúč, aj keď je to úplne prirodzené, 95 00:04:23,020 --> 00:04:25,300 bežať do rôznych chýb, alebo byť neistí ohľadom toho, ako 96 00:04:25,300 --> 00:04:26,550 vykonávať niečo. 97 00:04:26,550 --> 00:04:28,880 Takže si uvedomiť, že začneme ordinačné hodiny tento týždeň. 98 00:04:28,880 --> 00:04:30,500 Budú na Annenberg pondelok, utorok, streda, 99 00:04:30,500 --> 00:04:34,300 Štvrtok, 20:00 - 23:00 počas mozgu prestávke. 100 00:04:34,300 --> 00:04:38,160 Horná classmen môže dostať dovnútra, a keď budete mať problémy dostať 101 00:04:38,160 --> 00:04:40,720 vo dverách, pretože oni budú biť, len hovoriť svoju cestu 102 00:04:40,720 --> 00:04:42,560 v a vysvetliť, že si s CS50. 103 00:04:42,560 --> 00:04:45,230 Typicky 20 až 30 z nás na zamestnanca tam bude pomáhať 104 00:04:45,230 --> 00:04:46,190 ste jeden na jedného. 105 00:04:46,190 --> 00:04:48,980 >> Po príchode myšlienka je táto: budete priniesť svoj notebook, 106 00:04:48,980 --> 00:04:51,300 budete mať nabíjačku, budeme mať ďalšie napájacej šnúry, 107 00:04:51,300 --> 00:04:53,320 najmä pozdĺž južnej stene Annenberg, kde 108 00:04:53,320 --> 00:04:55,080 je tu veľa elektrických zásuviek. 109 00:04:55,080 --> 00:04:59,290 A hlavný vstupný bod do kancelárie hodín Q & A je ísť do 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss a, aby ste mohli písať 111 00:05:01,690 --> 00:05:02,580 Váš dotaz tu. 112 00:05:02,580 --> 00:05:05,600 A označiť ho PSet 0 alebo PSet 1, bez ohľadu na týždeň 113 00:05:05,600 --> 00:05:06,810 by sa mohlo stať, že je. 114 00:05:06,810 --> 00:05:09,240 A potom to, čo budeme robiť, je mať tabuľku vyučovacích štipendistov 115 00:05:09,240 --> 00:05:12,040 a priebeh asistenti, všeobecne 8 alebo 10 alebo tak z nás, 116 00:05:12,040 --> 00:05:14,430 prechádza, pozorne sledovať na palube, a 117 00:05:14,430 --> 00:05:16,810 šklbanie off otázky naozaj tak rýchlo, ako len môžeme, 118 00:05:16,810 --> 00:05:19,600 odkazuje vás miest súvisiacich, ak ste našiel tie 119 00:05:19,600 --> 00:05:22,220 sami, on-line odkazy, podľa potreby. 120 00:05:22,220 --> 00:05:24,280 A potom, ak sa vyskytnú problémy, pretože nevyhnutne 121 00:05:24,280 --> 00:05:27,190 bude, alebo to proste dáva väčší zmysel, aby sa posadili jeden na jedného, 122 00:05:27,190 --> 00:05:28,660 práca cez problémy s niekým. 123 00:05:28,660 --> 00:05:30,810 >> Alebo si len prísť do úradných hodinách naozaj 124 00:05:30,810 --> 00:05:31,640 potrebuje, aby myslenie. 125 00:05:31,640 --> 00:05:33,400 Vy nechcete ísť cez elektronickej podobe, môžete 126 00:05:33,400 --> 00:05:34,410 Naozaj chcete stretnúť s niekým. 127 00:05:34,410 --> 00:05:37,240 Komunikujte, že pre nás, a čo sa stane, je, keď si 128 00:05:37,240 --> 00:05:40,620 otázka bola vidieť zamestnanca, a my 129 00:05:40,620 --> 00:05:43,660 určiť, Jo, malo by to byť odoslané do jednej z 20 alebo 130 00:05:43,660 --> 00:05:47,800 30 členov tímu tu lokálne, uvidíte v hornej tohle nechal 131 00:05:47,800 --> 00:05:51,590 Trochu Zadajte frontu tlačidlo začne blikať cs50.net / 132 00:05:51,590 --> 00:05:52,165 diskutovať. 133 00:05:52,165 --> 00:05:55,260 A to vám hovorí, že ste teraz boli pozvaní, aby 134 00:05:55,260 --> 00:05:56,880 hovoriť, vstúpiť do fronty. 135 00:05:56,880 --> 00:05:59,090 A kliknutím na toto tlačidlo, bude vaše meno a potom sa objaví na 136 00:05:59,090 --> 00:06:02,660 iPad, že privítanie CS50, jeden z kurzu hlavami, bude 137 00:06:02,660 --> 00:06:05,250 sa drží v blízkosti vchodu Annenberg, kto bude potom 138 00:06:05,250 --> 00:06:08,630 vidí ako zobrazené tu, študenti, ktorí majú otázky týkajúce sa 139 00:06:08,630 --> 00:06:11,630 vľavo sa zamestnanci, ktorí sú prítomní na pravej strane. 140 00:06:11,630 --> 00:06:14,830 A s kliknutím vľavo a vpravo, bude váš webový prehliadač 141 00:06:14,830 --> 00:06:18,610 začnú blikať, akonáhle, napríklad, profesor McGonnagal 142 00:06:18,610 --> 00:06:21,460 je pripravený Vás uvidíme na určité tabuľky v Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Tak sme urobili niektoré z týchto minulého roka. 144 00:06:23,340 --> 00:06:25,430 Sme reštartuje ordinačné hodiny a 145 00:06:25,430 --> 00:06:26,980 re-implementovaná veľa softvéru. 146 00:06:26,980 --> 00:06:29,940 Takže si uvedomiť, že to bude zahrievať tento týždeň. 147 00:06:29,940 --> 00:06:32,970 Ale tiež si uvedomiť tiež, v minulých rokoch, ako ste mohli počuť 148 00:06:32,970 --> 00:06:35,710 od priateľov, úradné hodiny majú skutočne 50 až 149 00:06:35,710 --> 00:06:37,040 150 študentov naraz. 150 00:06:37,040 --> 00:06:39,300 A to jednoducho nie je možné, aby sme sa zvládnuť, že 151 00:06:39,300 --> 00:06:42,060 efektívne, jeden na jedného, ​​po celý večer. 152 00:06:42,060 --> 00:06:44,570 A tak to, čo sme naozaj snažiť urobiť tento rok je 153 00:06:44,570 --> 00:06:46,590 zarábať na tom, že veľa otázok sú 154 00:06:46,590 --> 00:06:49,050 často kladené a môžu byť často lepšie odpovedať 155 00:06:49,050 --> 00:06:50,030 asynchrónne. 156 00:06:50,030 --> 00:06:52,140 Takže môžete nejako premyslieť služobného odpovede, 157 00:06:52,140 --> 00:06:54,360 a my môžeme myslieť prostredníctvom kódu, bez vyhrievania 158 00:06:54,360 --> 00:06:57,050 tlak nutne snaží 159 00:06:57,050 --> 00:06:58,210 cez to vedľa seba. 160 00:06:58,210 --> 00:07:00,980 Takže predpokladáme, že zhruba tretina alebo polovica otázok 161 00:07:00,980 --> 00:07:03,500 budú odoslané osobne, a my sa pokúsime odtrhnúť preč ako 162 00:07:03,500 --> 00:07:05,530 veľa ako polovica alebo viac elektronicky, 163 00:07:05,530 --> 00:07:06,710 v úradných hodinách. 164 00:07:06,710 --> 00:07:08,070 A budeme naďalej používať Diskutovať 165 00:07:08,070 --> 00:07:09,990 po celý týždeň rovnako. 166 00:07:09,990 --> 00:07:12,680 >> A konečne si uvedomiť, že tento kurz môže byť prijaté vyhovuje / nevyhovuje. 167 00:07:12,680 --> 00:07:16,230 Takže ak ste na plot alebo len si myslím, že si naozaj 168 00:07:16,230 --> 00:07:18,650 si istý, či je to svet pre Vás, alebo je to naozaj 169 00:07:18,650 --> 00:07:21,310 celkom cudzie, si uvedomiť, že je to skvelý spôsob, ako 170 00:07:21,310 --> 00:07:24,840 získanie nejakej dôveru, ktorá sa vstúpiť do 171 00:07:24,840 --> 00:07:26,780 triedy, ako ja úprimne, pred rokmi. 172 00:07:26,780 --> 00:07:28,630 A potom musí do piatich týždňov nejako zistiť, na 173 00:07:28,630 --> 00:07:30,850 yourself, ak chcete zostať vyhovel / nevyhovel, prepnite na list 174 00:07:30,850 --> 00:07:31,800 stupeň, alebo podobne. 175 00:07:31,800 --> 00:07:34,050 A zvyčajne to, čo vyhovuje / nevyhovuje to, myslím, pre študentov je 176 00:07:34,050 --> 00:07:36,700 , Že ak dáte v tom, že 10 hodín, 20 hodín, bez ohľadu na to 177 00:07:36,700 --> 00:07:38,830 môže byť na niektoré problémy, a tie búchanie hlavou 178 00:07:38,830 --> 00:07:39,690 proti múru, 179 00:07:39,690 --> 00:07:41,750 a naozaj jednoducho nemôže naháňať niečo dole, a vy 180 00:07:41,750 --> 00:07:44,230 majú toľko iných vecí, ktoré musíte urobiť, úprimne, čo som 181 00:07:44,230 --> 00:07:46,070 že vyhovel / nevyhovel, je, že má okraj preč 182 00:07:46,070 --> 00:07:47,250 situácie, ako že. 183 00:07:47,250 --> 00:07:49,350 Kde ste vzal tú vec 90% cesty. 184 00:07:49,350 --> 00:07:50,830 Vieš, že to nie je úplne dokonalý. 185 00:07:50,830 --> 00:07:52,950 Ale máš veľa z toho, však. 186 00:07:52,950 --> 00:07:55,440 Takže zvážte vyhovel / nevyhovel tak, že vám to 187 00:07:55,440 --> 00:07:57,590 mentálny model, možno. 188 00:07:57,590 --> 00:08:00,680 >> Dobre, tak minulý týždeň sme ponorila do nuly, a my 189 00:08:00,680 --> 00:08:03,610 hovoril o programovaní na pomerne vysokej grafickej úrovni. 190 00:08:03,610 --> 00:08:05,340 A dnes sme, aby prechod na iný jazyk 191 00:08:05,340 --> 00:08:08,300 názvom C, nižšiu úroveň programovací jazyk na vrchole 192 00:08:08,300 --> 00:08:11,260 ktoré veľa moderných jazykov sú teraz postavené, vrátane niektorých 193 00:08:11,260 --> 00:08:13,010 z tých, ktoré budeme používať k termínu ku koncu. 194 00:08:13,010 --> 00:08:15,530 A syntakticky, ako vyzerajú 195 00:08:15,530 --> 00:08:17,330 je všetko veľmi podobné. 196 00:08:17,330 --> 00:08:19,080 Tak začnime aby tento prechod tu. 197 00:08:19,080 --> 00:08:21,730 Takže to bol program, minulý týždeň to bolo najjednoduchšie 198 00:08:21,730 --> 00:08:22,910 hello world programy. 199 00:08:22,910 --> 00:08:25,560 Je to jednoducho vytlačí na obrazovku Ahoj všetci, s 200 00:08:25,560 --> 00:08:27,650 Trochu bublinu vychádzajúce z mačky. 201 00:08:27,650 --> 00:08:30,590 No, ak začneme teraz to preložiť do iného 202 00:08:30,590 --> 00:08:33,419 jazyk, si uvedomiť, že myšlienky dnes a v stredu 203 00:08:33,419 --> 00:08:36,450 sú totožné, ale syntaxe začne meniť. 204 00:08:36,450 --> 00:08:39,370 Takže vzhľadom k tomu, minulý týždeň sme mali, keď zelená vlajka kliknutí, hovoria 205 00:08:39,370 --> 00:08:40,340 hello world. 206 00:08:40,340 --> 00:08:43,870 Dnes budeme mať int, hlavné, prázdno, printf, 207 00:08:43,870 --> 00:08:46,350 návrat, s iným syntaxe tam rovnako. 208 00:08:46,350 --> 00:08:49,200 Zložené zátvorky a zátvorky, a citácie, a ktovie čo ešte. 209 00:08:49,200 --> 00:08:54,520 Ale uvedomte si, že jadro myšlienky tu je tlač, 210 00:08:54,520 --> 00:08:58,470 a nakoniec skutočnosť, že hlavné je teraz bude 211 00:08:58,470 --> 00:09:00,770 synonymom spustenie programu. 212 00:09:00,770 --> 00:09:04,250 Hlavné bude, kde zelená vlajka začína veci preč. 213 00:09:04,250 --> 00:09:06,390 >> Tak teraz poďme šprýmař oddelene niektoré zo základných stavebných kameňov tu 214 00:09:06,390 --> 00:09:08,650 predtým, než sme sa ponoriť do niekoľkých konkrétnych príkladoch. 215 00:09:08,650 --> 00:09:11,620 Tak sme volali toto vyhlásenie minulý týždeň, kedy je to len 216 00:09:11,620 --> 00:09:12,470 inštrukcie. 217 00:09:12,470 --> 00:09:15,660 Urobte to - v tomto prípade, pozdraviť svet. 218 00:09:15,660 --> 00:09:18,400 No v C, keď sa pozrieme na práve tejto línie, je to, ako sme 219 00:09:18,400 --> 00:09:20,920 začnú vyjadrovať, že konkrétny kúsok skladačky: 220 00:09:20,920 --> 00:09:24,780 printf ("hello world");. 221 00:09:24,780 --> 00:09:27,330 A teraz budeme dráždiť tieto od seba viac a viac v priebehu doby, 222 00:09:27,330 --> 00:09:29,330 ale uvedomiť, že tam je vzorec. 223 00:09:29,330 --> 00:09:31,870 Takže jeden, máme túto vec zvanú printf, ktorý je 224 00:09:31,870 --> 00:09:34,310 v podstate podobne ako slovo Say. 225 00:09:34,310 --> 00:09:35,800 To je to, čo to bude robiť. 226 00:09:35,800 --> 00:09:37,870 Printf, a f tu znamená "naformátovaná". 227 00:09:37,870 --> 00:09:39,270 Tak to jednoducho znamená, že môžete vložiť 228 00:09:39,270 --> 00:09:41,600 rôzne estetické detaily. 229 00:09:41,600 --> 00:09:43,770 Takže quote koniec citátu je začiatok toho, čo budeme 230 00:09:43,770 --> 00:09:45,340 začať volať reťazec. 231 00:09:45,340 --> 00:09:47,110 Slovo, veta, veta. 232 00:09:47,110 --> 00:09:50,220 Reťazec v programovacom jazyku je postupnosť nula 233 00:09:50,220 --> 00:09:51,330 alebo viac znakov. 234 00:09:51,330 --> 00:09:54,390 Takže h-e-l-l-o, čiarka, a tak ďalej, je, 235 00:09:54,390 --> 00:09:56,290 quote koniec citátu, reťazec. 236 00:09:56,290 --> 00:09:58,710 A teraz spätné lomítko n, trochu syntakticky divné, ale my 237 00:09:58,710 --> 00:10:01,780 už definované, že minulý týždeň v tom zmysle, čo? 238 00:10:01,780 --> 00:10:02,630 Je to len nový riadok. 239 00:10:02,630 --> 00:10:05,000 Je to len spôsob, ako sprostredkovať k počítaču, ktorý chcete 240 00:10:05,000 --> 00:10:07,700 ekvivalent klávesy Enter sa, ale vy nie 241 00:10:07,700 --> 00:10:10,460 Chcete skutočne stlačíte klávesu Enter, a preto pokaziť všetky 242 00:10:10,460 --> 00:10:12,130 formátovanie vášho aktuálneho programu. 243 00:10:12,130 --> 00:10:15,500 Teraz zátvorky uzatvárajú túto reťazec, otvorené párenie a 244 00:10:15,500 --> 00:10:18,130 zavrieť párenie, a vo vnútri to je náš reťazec. 245 00:10:18,130 --> 00:10:22,600 Vzhľadom k tomu, že je to preto, že v C, a iné programovanie 246 00:10:22,600 --> 00:10:27,510 jazyky, veci, ako je printf trvať argumenty, alebo sa 247 00:10:27,510 --> 00:10:28,420 parametre. 248 00:10:28,420 --> 00:10:31,490 >> Takže začať premýšľať hneď tejto fialovej Say bloku, 249 00:10:31,490 --> 00:10:34,890 funkcie, ako je metóda, ako v postupe. 250 00:10:34,890 --> 00:10:36,890 Môžete si naozaj hovoriť, čo chcete teraz, ale 251 00:10:36,890 --> 00:10:39,260 je to akási miniatúrna programu, ktorý iba robí jednu 252 00:10:39,260 --> 00:10:41,480 vec, v jednej línii, nie menej. 253 00:10:41,480 --> 00:10:43,620 Takže printf je tiež to, čo budeme začať volať 254 00:10:43,620 --> 00:10:46,680 funkcie, a funkcie niečo - v tomto prípade 255 00:10:46,680 --> 00:10:49,320 vytlačí formátovaný reťazec na obrazovku - 256 00:10:49,320 --> 00:10:53,220 ale funguje aj vziať argumenty alebo parametre. 257 00:10:53,220 --> 00:10:55,880 A argumenty alebo parametre, ďakujem, máme na mysli 258 00:10:55,880 --> 00:11:01,220 , Že ich správanie môže byť ovplyvnené tým, čo odovzdať 259 00:11:01,220 --> 00:11:03,420 vnútri zátvoriek. 260 00:11:03,420 --> 00:11:06,460 Takže v tomto prípade, byť printf potreby povedané, čo k tlači, a my 261 00:11:06,460 --> 00:11:09,520 len prejsť v, v úvodzovkách tú, reťazec, ktorý sme 262 00:11:09,520 --> 00:11:11,270 skutočne chcete vytlačiť. 263 00:11:11,270 --> 00:11:14,060 A bodkočiarku na samom konci tohto riadku je len 264 00:11:14,060 --> 00:11:18,020 historické obtiaž pričom na konci väčšiny riadkov kódu, 265 00:11:18,020 --> 00:11:21,170 dáte bodkočiarku, aby super clear k počítaču 266 00:11:21,170 --> 00:11:23,020 že tento riadok kódu tu končí. 267 00:11:23,020 --> 00:11:25,600 Teraz je to dobré, pretože, ako uvidíme, ako získať viac programov 268 00:11:25,600 --> 00:11:29,030 komplex, bude bodkočiarku, aby Super Clear nám ľudí, 269 00:11:29,030 --> 00:11:32,280 a tiež počítač, kde riadky kódu začiatku a konca. 270 00:11:32,280 --> 00:11:34,360 Uvedomte si, že niektoré jazyky nemajú niektoré 271 00:11:34,360 --> 00:11:35,045 z týchto rovnakých detailov. 272 00:11:35,045 --> 00:11:37,870 A v skutočnosti, v JavaScripte, nie vždy potrebujú niečo 273 00:11:37,870 --> 00:11:38,670 ako bodkočiarkou. 274 00:11:38,670 --> 00:11:40,210 Ale o tom prísť. 275 00:11:40,210 --> 00:11:41,170 >> Tak slučky. 276 00:11:41,170 --> 00:11:43,520 Mali sme niečo podobné, veľmi intuitívne, zrejmé, vykonajte 277 00:11:43,520 --> 00:11:44,860 niečo znovu a znovu a znovu. 278 00:11:44,860 --> 00:11:47,720 Rovnako ako uvedenie na ponožky, alebo hovoriť ahoj, v tomto prípade. 279 00:11:47,720 --> 00:11:51,090 No, začína dnes v C, môžeme vyjadriť túto Scratch 280 00:11:51,090 --> 00:11:54,970 zablokovať až while (true) printf ("hello world"). 281 00:11:54,970 --> 00:11:57,630 Takže všimnete začíname stavať na doslova puzzle 282 00:11:57,630 --> 00:11:58,480 kus z doby pred. 283 00:11:58,480 --> 00:12:01,310 Máme rovnakú fialovú blok, ale je to vo vnútri tohto 284 00:12:01,310 --> 00:12:04,880 bracketed Forever blok, a najlepší spôsob, ako preložiť, že 285 00:12:04,880 --> 00:12:06,480 na C je nasledujúce. 286 00:12:06,480 --> 00:12:08,130 Nie je Forever kľúčové slovo. 287 00:12:08,130 --> 00:12:10,940 Nemôžete jednoducho napísať f-o-r-e-v-e-r v C. 288 00:12:10,940 --> 00:12:13,440 Takže najbližšia analógia je pri. 289 00:12:13,440 --> 00:12:17,050 >> Teraz, while (true) sa zdá trochu hlúpe, pretože sa hodnota 290 00:12:17,050 --> 00:12:18,700 z pravého niekedy zmení? 291 00:12:18,700 --> 00:12:19,810 Pravdepodobne nie. 292 00:12:19,810 --> 00:12:22,770 Je to ako hovoriť, zatiaľ čo jedna, zatiaľ čo na, zatiaľ čo pravda. 293 00:12:22,770 --> 00:12:25,430 Je to všetko to isté, pravda je vždy prípad. 294 00:12:25,430 --> 00:12:29,860 Tak to slučka je vlastne prinútiť aký druh slučky? 295 00:12:29,860 --> 00:12:31,210 Len nekonečná slučka, vpravo. 296 00:12:31,210 --> 00:12:32,930 Slučka Forever alebo ako sme hovorili minulý týždeň, 297 00:12:32,930 --> 00:12:33,870 len nekonečné slučky. 298 00:12:33,870 --> 00:12:35,250 Takže niekedy je to zlé. 299 00:12:35,250 --> 00:12:37,060 Niekedy je to chyba, niekedy to je dôvod, prečo vám 300 00:12:37,060 --> 00:12:39,340 Rotujúce plážová lopta, alebo presýpacie hodiny alebo podobne. 301 00:12:39,340 --> 00:12:41,260 Avšak v tomto prípade, sme zámerne, pre čo 302 00:12:41,260 --> 00:12:43,040 dôvod, chcel tlačiť rovnakú vec znovu 303 00:12:43,040 --> 00:12:43,970 a znova a znova. 304 00:12:43,970 --> 00:12:45,900 Alebo v prípade, že podobne ako hodinky, chcete urobiť 305 00:12:45,900 --> 00:12:47,470 niečo znovu a znovu a znovu. 306 00:12:47,470 --> 00:12:49,070 Takže nekonečné slučky by mohlo mať zmysel. 307 00:12:49,070 --> 00:12:53,560 A to je, ako v C by sme mohli preložiť Forever kódu. 308 00:12:53,560 --> 00:12:55,570 >> Takže teraz to je trochu konkrétnejší. 309 00:12:55,570 --> 00:12:58,880 Sme opakovať 10 krát nasledujúce vyhlásenie. 310 00:12:58,880 --> 00:13:02,490 Takže while (true) nie je úplne pracovať, pretože pravda je 311 00:13:02,490 --> 00:13:03,590 vždy pravda. 312 00:13:03,590 --> 00:13:07,060 Takže ak sa namiesto toho pozrieť na verziu C, teraz syntaxe dostane 313 00:13:07,060 --> 00:13:08,180 trochu viac záhadný. 314 00:13:08,180 --> 00:13:11,380 Ale aby som bol úprimný, akonáhle začnete vidieť, to všetko dostane 315 00:13:11,380 --> 00:13:12,600 celkom povedomý rýchlo. 316 00:13:12,600 --> 00:13:14,370 Tak toto je to, čo sa nazýva pre sláčiky. 317 00:13:14,370 --> 00:13:17,210 Pre slučke sa ti to povedať počítač niečo robiť 318 00:13:17,210 --> 00:13:20,710 znovu a znovu a znovu tak dlho, ako 319 00:13:20,710 --> 00:13:21,850 tieto veci sú pravdivé. 320 00:13:21,850 --> 00:13:23,370 A teraz, čo máme na mysli, že? 321 00:13:23,370 --> 00:13:25,470 No, tam tri diely pre sláčiky, a budeme 322 00:13:25,470 --> 00:13:28,240 vrátiť na to v kontexte skutočnej 323 00:13:28,240 --> 00:13:29,100 Príklady v okamihu. 324 00:13:29,100 --> 00:13:31,650 Takže sa nemusíte báť, ak to nie je úplne vstrebať naraz. 325 00:13:31,650 --> 00:13:35,400 Ale int i = 0, je dlhý príbeh krátky, hovorí mi 326 00:13:35,400 --> 00:13:38,290 premenná, ktorá je typu integer, tak mi číslo 327 00:13:38,290 --> 00:13:40,890 volal aj, a inicializovať na 0. 328 00:13:40,890 --> 00:13:43,460 To je mi dať ako algebraické premennej x a 329 00:13:43,460 --> 00:13:44,580 inicializovať na 0. 330 00:13:44,580 --> 00:13:46,250 Ale v tomto prípade sme hovorili, že i 331 00:13:46,250 --> 00:13:49,120 Potom v strede, to hovorí, že aj je menší ako 10. 332 00:13:49,120 --> 00:13:52,150 To hovorí počítač sa nasledujúce veci tak dlho, 333 00:13:52,150 --> 00:13:53,770 ako som je menší ako 10. 334 00:13:53,770 --> 00:13:55,370 A samozrejme to začína menej ako 10, pretože 335 00:13:55,370 --> 00:13:56,550 začína na 0. 336 00:13:56,550 --> 00:13:59,150 Potom konečne, môžete hádať, čo snáď i + + znamená. 337 00:13:59,150 --> 00:14:02,140 Je to trochu syntax, ktorá znamená len zvyšovať i 338 00:14:02,140 --> 00:14:05,270 Takže pridať 1 až I, znovu a znovu a znovu. 339 00:14:05,270 --> 00:14:09,260 >> A tak, ako uvidíme túto slučku, táto syntaxe, skôr implementuje 340 00:14:09,260 --> 00:14:12,160 presne to isté, čo, úprimne povedané, v Scratch bolo tak 341 00:14:12,160 --> 00:14:13,250 oveľa jednoduchšie vyjadriť. 342 00:14:13,250 --> 00:14:15,170 Opakujte 10, a máte hotovo. 343 00:14:15,170 --> 00:14:17,690 V C, a vo väčšine programovacích jazykov, musíme byť 344 00:14:17,690 --> 00:14:20,190 trochu viac poučné pre počítač a skutočne 345 00:14:20,190 --> 00:14:21,630 zadať niečo také. 346 00:14:21,630 --> 00:14:23,730 Ale vrátime na tieto a iné syntaxe. 347 00:14:23,730 --> 00:14:24,780 >> Čo o premenných? 348 00:14:24,780 --> 00:14:26,940 V Scratch sme mali niečo ako tieto oranžové bloky, 349 00:14:26,940 --> 00:14:28,180 kde by som mohol deklarovať premennú. 350 00:14:28,180 --> 00:14:30,000 Poďme ľubovoľne volať to kontraproduktívne. 351 00:14:30,000 --> 00:14:31,880 Poďme inicializácii na 0, a potom sa 352 00:14:31,880 --> 00:14:33,240 Poďme navždy niečo urobiť. 353 00:14:33,240 --> 00:14:35,760 V tomto prípade sa Scratch hovorím čítače, takže 354 00:14:35,760 --> 00:14:38,230 mačka bude mať trochu bublinu, ktorá sa hovorí 355 00:14:38,230 --> 00:14:40,010 číslo, ktoré je v tejto premennej. 356 00:14:40,010 --> 00:14:42,460 A potom máme zmenu čítač 1. 357 00:14:42,460 --> 00:14:45,760 Takže toto všetko je zabalený vo vnútri zámku Forever. 358 00:14:45,760 --> 00:14:48,960 Takže už teraz stavebné bloky v C s 359 00:14:48,960 --> 00:14:50,040 ktoré sa to preložiť. 360 00:14:50,040 --> 00:14:51,650 >> Jeden spôsob, ako by sme mohli urobiť, že je to. 361 00:14:51,650 --> 00:14:53,890 Daj mi celé číslo, hovoria počítadlo. 362 00:14:53,890 --> 00:14:55,190 Ju inicializovať na 0 363 00:14:55,190 --> 00:14:56,490 v prvom riadku. 364 00:14:56,490 --> 00:14:59,390 While (true), takže som kradnúť, že myšlienku už od okamihu 365 00:14:59,390 --> 00:15:01,300 Pred, choďte do toho a urobiť nasledovné. 366 00:15:01,300 --> 00:15:04,880 Vytlačiť počítadlo, a potom zvýšiť čítač, 367 00:15:04,880 --> 00:15:06,930 znova, a znova, a znova. 368 00:15:06,930 --> 00:15:09,380 Alebo znova, + + jednoducho znamená pridať 1 k niečomu. 369 00:15:09,380 --> 00:15:11,030 Ale je tu nový kus syntaxe tu. 370 00:15:11,030 --> 00:15:15,730 Čo sa skákať tak, ako to u našich predchádzajúcich príkladoch? 371 00:15:15,730 --> 00:15:17,190 Áno, to% d 372 00:15:17,190 --> 00:15:19,810 Takže môžete potrebné odvodiť, čo to robí, úprimne povedané, na základe 373 00:15:19,810 --> 00:15:21,410 o tom, čo Scratch blok robí. 374 00:15:21,410 --> 00:15:24,510 Ale zase v C, len musíme byť trochu konkrétnejší 375 00:15:24,510 --> 00:15:25,990 pokiaľ ide o vyjadrovanie. 376 00:15:25,990 --> 00:15:30,560 >> Takže printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 No väčšina z toho môžeme vyhodiť tak známe. 378 00:15:32,320 --> 00:15:34,910 Úvodzovky jednoducho znamená, že to string, spätné lomítko n 379 00:15:34,910 --> 00:15:35,970 je len nový riadok. 380 00:15:35,970 --> 00:15:38,860 Takže jediná nová vec tu je% d 381 00:15:38,860 --> 00:15:40,390 A všetko, čo je, je zástupný symbol. 382 00:15:40,390 --> 00:15:43,510 % D bude naznačovať desatinné číslo. 383 00:15:43,510 --> 00:15:47,820 A% d znamená počítač, dal desatinné číslo tu. 384 00:15:47,820 --> 00:15:49,450 No, aké číslo chceš tam dať? 385 00:15:49,450 --> 00:15:52,400 No, ako ste si snáď vyvodiť, po čiarke hovoríme 386 00:15:52,400 --> 00:15:55,480 čítač, to je názov premennej, ktorá je deklarovaná alebo 387 00:15:55,480 --> 00:15:57,260 vytvoril pár riadkov vyššie. 388 00:15:57,260 --> 00:16:02,420 Takže je to len C je spôsob zapojenia do premennej do 389 00:16:02,420 --> 00:16:04,480 string dynamicky. 390 00:16:04,480 --> 00:16:07,350 Vzhľadom k tomu, naopak, keby som namiesto toho urobil niečo ako 391 00:16:07,350 --> 00:16:12,470 Tento, printf ("počítadlo"), by čo to 392 00:16:12,470 --> 00:16:15,220 Program, miesto toho, pravdepodobne? 393 00:16:15,220 --> 00:16:17,260 Je to doslova tlačiť "counter". 394 00:16:17,260 --> 00:16:18,750 Čo nie je efekt, ktorý chcem. 395 00:16:18,750 --> 00:16:20,920 Musím nahradiť v niektorých číselnú hodnotu. 396 00:16:20,920 --> 00:16:24,340 Tak uvidíme, že funkcie potom, rovnako ako printf, môže trvať nebude 397 00:16:24,340 --> 00:16:26,930 iba len jednotlivé argumenty, ako 398 00:16:26,930 --> 00:16:28,150 "Hello world". 399 00:16:28,150 --> 00:16:32,050 Môžu mať citovať koniec citátu čiarku, a potom niektoré premenné 400 00:16:32,050 --> 00:16:35,830 , Ktorý bude mať zapojený do, ako uvidíme predchádzajúci reťazec 401 00:16:35,830 --> 00:16:38,280 prostredníctvom týchto zástupných znak%. 402 00:16:38,280 --> 00:16:39,660 >> No čo o logických výrazoch? 403 00:16:39,660 --> 00:16:42,200 Booleovské výrazy boli tieto hodnoty, true alebo false. 404 00:16:42,200 --> 00:16:42,830 Áno, alebo nie. 405 00:16:42,830 --> 00:16:44,020 1 alebo 0. 406 00:16:44,020 --> 00:16:45,190 Zapnúť alebo vypnúť. 407 00:16:45,190 --> 00:16:47,570 Takže Scratch vyzerajú takto, a všimnite si, že 408 00:16:47,570 --> 00:16:50,170 Spodná blok je v podstate spojenie 409 00:16:50,170 --> 00:16:51,500 z dvoch menších blokov. 410 00:16:51,500 --> 00:16:53,610 Tak som trochu pretiahnuť tri puzzle kúsky 411 00:16:53,610 --> 00:16:56,450 dohromady, aby sa, že dlhšie kúsok skladačky tam tak, že som 412 00:16:56,450 --> 00:17:00,420 mohol vyjadriť myšlienku, že chcem byť x menší ako y a 413 00:17:00,420 --> 00:17:02,540 y byť menej než z 414 00:17:02,540 --> 00:17:05,790 A tak som si preložiť tieto dve samostatné linky sa mení takto. 415 00:17:05,790 --> 00:17:08,650 Horná jeden môže byť veľmi triviálne preložený do C, 416 00:17:08,650 --> 00:17:10,069 sa len x 00:17:11,990 Možno s niektorými zátvorke správnu mieru. 418 00:17:11,990 --> 00:17:15,520 A potom v C, nemusíte písať a označenie 419 00:17:15,520 --> 00:17:16,819 Spojenie niečoho. 420 00:17:16,819 --> 00:17:19,585 Namiesto toho napísať &&. 421 00:17:19,585 --> 00:17:22,849 A ako sme si nakoniec vidieť, jeden ampersand sa stane 422 00:17:22,849 --> 00:17:23,880 znamenať niečo iné. 423 00:17:23,880 --> 00:17:27,530 Takže && len označuje myšlienku AND. 424 00:17:27,530 --> 00:17:30,040 >> Takže znovu, aj keď to začína vyzerať trochu zložité, 425 00:17:30,040 --> 00:17:32,560 jeden z účely zavedenia Scratch, okrem 426 00:17:32,560 --> 00:17:34,810 len s akýmsi zábavy na-rampa, kde si môžete robiť 427 00:17:34,810 --> 00:17:36,590 niečo, čo je veľmi grafické a animované, a 428 00:17:36,590 --> 00:17:39,000 Shareable a podobne, je tiež vysvetliť myšlienku, že 429 00:17:39,000 --> 00:17:42,010 všetky myšlienky začneme potápanie do dnes a dopredu 430 00:17:42,010 --> 00:17:44,300 boli začlenené do ešte to tak jednoduché 431 00:17:44,300 --> 00:17:46,850 rozhranie od prvého dňa. 432 00:17:46,850 --> 00:17:47,790 Čo o tomto tu? 433 00:17:47,790 --> 00:17:48,860 >> Tak podmienky. 434 00:17:48,860 --> 00:17:50,590 Tak Scratch bloku vľavo tam vyzerá 435 00:17:50,590 --> 00:17:51,610 trochu zložitejšie. 436 00:17:51,610 --> 00:17:52,650 Ale je to len nejaký ťahanie a 437 00:17:52,650 --> 00:17:54,140 zhadzovanie známych kusov. 438 00:17:54,140 --> 00:17:56,690 Ak x je menšie ako y, povedzte to. 439 00:17:56,690 --> 00:17:59,900 Else if x je väčšie ako y, povedzte to. 440 00:17:59,900 --> 00:18:02,460 Else, môžeme logicky predpokladať, že to vyvodiť, že 441 00:18:02,460 --> 00:18:03,580 musia byť rovnaké. 442 00:18:03,580 --> 00:18:05,220 Tak povedať, že sú si rovné. 443 00:18:05,220 --> 00:18:07,690 Teraz v C na pravej, rovnako presné vec. 444 00:18:07,690 --> 00:18:09,730 A zistili, že zložené zátvorky sa bude 445 00:18:09,730 --> 00:18:12,190 rysom C a ďalších jazykov, ktoré tento druh 446 00:18:12,190 --> 00:18:13,210 zapuzdrenie. 447 00:18:13,210 --> 00:18:15,470 Rovnako ako v prípade bloku je to žltá vec, ktorá je trochu 448 00:18:15,470 --> 00:18:17,770 schmatol fialové blok vnútri nej. 449 00:18:17,770 --> 00:18:19,480 Podobne sú tieto zátvorky - 450 00:18:19,480 --> 00:18:20,870 Tieto zložené zátvorky - 451 00:18:20,870 --> 00:18:24,710 chcel vykúzliť rovnaký nápad objímať jeden alebo viac 452 00:18:24,710 --> 00:18:27,680 riadky kódu, ktoré sú odsadené vnútri nich. 453 00:18:27,680 --> 00:18:31,270 Takže na pravej strane tu, ak x menší ako y, printf 454 00:18:31,270 --> 00:18:32,270 ("X je menší ako y"). 455 00:18:32,270 --> 00:18:34,980 Alebo ak x je väčšie ako y, vytlačiť rovnaký. 456 00:18:34,980 --> 00:18:38,360 Else vytlačiť, že sú si rovné. 457 00:18:38,360 --> 00:18:41,750 >> Takže v skratke, je to celkom priame mapovanie alebo preklad 458 00:18:41,750 --> 00:18:44,720 jazyka sme videli doteraz, vrátane niektorých 459 00:18:44,720 --> 00:18:45,940 z viac sofistikovaných funkcií. 460 00:18:45,940 --> 00:18:48,680 Takže nemusíte používať toto pre svoj projekt, alebo možno nie 461 00:18:48,680 --> 00:18:51,150 používať to pre svoj projekt v tomto týždni. 462 00:18:51,150 --> 00:18:54,650 Ale my sme tieto veci nazýva pole v C. V Scratch, 463 00:18:54,650 --> 00:18:55,680 sa im hovorí zoznamy. 464 00:18:55,680 --> 00:18:59,370 A videli sme ich s Fruitcraft RPG minulý týždeň. 465 00:18:59,370 --> 00:19:01,320 Malý modrý chlapec, ktorý šiel okolo, zdvihne 466 00:19:01,320 --> 00:19:03,010 čerešne a pomaranča a podobne. 467 00:19:03,010 --> 00:19:05,110 No v Scratch, bolo, že realizovaný s týmto oranžová 468 00:19:05,110 --> 00:19:09,000 blok, ktorý obsahuje slová, v tomto prípade, sme doslova 469 00:19:09,000 --> 00:19:10,800 dodáva "oranžová", aby 470 00:19:10,800 --> 00:19:12,460 premenná tzv inventára. 471 00:19:12,460 --> 00:19:14,910 Takže v C, táto syntax bude trochu viac záhadný. 472 00:19:14,910 --> 00:19:17,250 A vrátime k tejto budúceho týždňa a urobiť viac 473 00:19:17,250 --> 00:19:21,060 zaujímavé veci vo svete kryptografie s ním. 474 00:19:21,060 --> 00:19:23,990 Ale v dolnej tu, tieto dve čiary v podstate 475 00:19:23,990 --> 00:19:27,550 preložiť, čo robíme v jednom Scratch blokovať tam. 476 00:19:27,550 --> 00:19:30,120 Ale o tom prísť. 477 00:19:30,120 --> 00:19:34,120 >> Takže dávať to dohromady, tu je program v C. Tak poďme 478 00:19:34,120 --> 00:19:36,590 rýchlo šprýmař oddelene niektoré časti syntaxe tu, ale 479 00:19:36,590 --> 00:19:40,300 potom si to skutočne začať písať nejaký kód, zoznámiť 480 00:19:40,300 --> 00:19:42,440 ste s niektorými z nástrojov budeme používať, a uvidíme, či budeme 481 00:19:42,440 --> 00:19:45,400 môže stavať na teraz niektoré z týchto základných stavebných kameňov od 482 00:19:45,400 --> 00:19:49,150 posledný týždeň, teraz syntakticky v C. Takže v hornej tu, tento 483 00:19:49,150 --> 00:19:51,380 je možno jeden z najnudnejší programov by ste mohli 484 00:19:51,380 --> 00:19:53,130 napísať vo väčšine ľubovoľnom programovacom jazyku. 485 00:19:53,130 --> 00:19:55,010 Ale je to niečo má osobitný význam, pretože je to 486 00:19:55,010 --> 00:19:58,120 kanonické program, ktorý každý počítač vedec píše, keď 487 00:19:58,120 --> 00:19:59,620 výučba niekoho programovací jazyk - 488 00:19:59,620 --> 00:20:01,230 hello world program. 489 00:20:01,230 --> 00:20:05,120 >> Takže na samom vrchole, vidíme tento pojem # include 490 00:20:05,120 --> 00:20:08,180 a potom, v šikmých zátvorkách, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Ideme sa vrátiť k tomu, ale naozaj to, čo že 492 00:20:10,580 --> 00:20:13,770 znamená, že je súbor v tomto svete takzvanej štandardnej 493 00:20:13,770 --> 00:20:17,670 I / O, štádiách dot h, a to je len textový súbor, ktorý 494 00:20:17,670 --> 00:20:19,240 niekto napísal pred rokmi. 495 00:20:19,240 --> 00:20:22,550 A vo vnútri tohto textového súboru je celá partia 496 00:20:22,550 --> 00:20:25,840 funkcie, alebo metódy alebo postupy, ktoré niekto iný 497 00:20:25,840 --> 00:20:28,970 napísal, že sme príjemcovi, pretože sme 498 00:20:28,970 --> 00:20:31,420 môžu teraz používať tejto osoby kódu. 499 00:20:31,420 --> 00:20:33,070 Funkcia on alebo ona písala. 500 00:20:33,070 --> 00:20:36,320 V tomto prípade, printf nie je niečo, čo som napísal, že je to 501 00:20:36,320 --> 00:20:37,500 nie je niečo, čo CS50 napísal. 502 00:20:37,500 --> 00:20:40,290 Je to niečo, čo niekto napísal pred rokmi, a dať do 503 00:20:40,290 --> 00:20:43,450 súbor s názvom stdio.h a potom, ako stranou, dať 504 00:20:43,450 --> 00:20:45,830 ďalšia časť funkcie v inom súbore. 505 00:20:45,830 --> 00:20:46,940 Ale my sa tam dostaneme. 506 00:20:46,940 --> 00:20:50,070 >> Takže # include je len náš spôsob, ako povedať, v 507 00:20:50,070 --> 00:20:53,110 C, daj mi prístup k funkciám, ktoré niekto iný napísal. 508 00:20:53,110 --> 00:20:55,490 A v tomto prípade som jedno, pretože chcem printf. 509 00:20:55,490 --> 00:20:57,530 Teraz sme sa dostali int main (void). 510 00:20:57,530 --> 00:21:00,160 Takže sa jedná o jeden z týchto vecí, na rovinu, že v deň 0, 511 00:21:00,160 --> 00:21:02,400 celkom veľa musim druhu zóny von, pretože je to len 512 00:21:02,400 --> 00:21:03,260 nezaujímavé 513 00:21:03,260 --> 00:21:04,780 intelektuálne, niektoré syntaxe. 514 00:21:04,780 --> 00:21:07,940 Ale teraz viem, že funkcia, inak známy ako 515 00:21:07,940 --> 00:21:11,660 postupy alebo metódy, všeobecne produkujú nejakú hodnotu. 516 00:21:11,660 --> 00:21:12,520 Oni niečo urobiť. 517 00:21:12,520 --> 00:21:13,810 Prichádzajú s odpoveďou. 518 00:21:13,810 --> 00:21:15,020 Oni produkujú výstup. 519 00:21:15,020 --> 00:21:18,780 Takže int vedľa hlavnej je len naša skratka spôsob, ako povedať 520 00:21:18,780 --> 00:21:21,380 , Že táto funkcia, tento postup je nakoniec bude 521 00:21:21,380 --> 00:21:22,650 aby vám späť číslo. 522 00:21:22,650 --> 00:21:24,370 A prečo tomu tak je, budeme sa vracia. 523 00:21:24,370 --> 00:21:27,810 Hlavné je len východiskový svetový štandard pre predvolené 524 00:21:27,810 --> 00:21:30,990 funkcia, ktorá sa deje byť vykonaný v programe C, ak 525 00:21:30,990 --> 00:21:31,860 ho spustiť. 526 00:21:31,860 --> 00:21:34,160 Void znamená len tú vec, hlavné, netrvá 527 00:21:34,160 --> 00:21:35,270 argumenty, v tomto prípade. 528 00:21:35,270 --> 00:21:36,400 Takže som bol výborný explicitné. 529 00:21:36,400 --> 00:21:38,160 Nie sú tu žiadne reťazce v tam, tam je žiadne čiarky. 530 00:21:38,160 --> 00:21:40,690 Void znamená žiadne argumenty main. 531 00:21:40,690 --> 00:21:44,350 >> Teraz konečne, našťastie, sa posledné dva riadky sú oboznámení. 532 00:21:44,350 --> 00:21:46,160 Vnútri zložených zátvoriek máme printf 533 00:21:46,160 --> 00:21:47,620 a máme návrat. 534 00:21:47,620 --> 00:21:50,450 A návrat je druh nešťastné, že musíme 535 00:21:50,450 --> 00:21:53,510 to tam dal, pretože v tomto prípade to nie je robí všetko, aby 536 00:21:53,510 --> 00:21:54,600 veľa záujmu. 537 00:21:54,600 --> 00:21:58,790 Ale v počítačovom programe, keď funkcia vracia 0, 538 00:21:58,790 --> 00:22:00,610 to znamená, že je všetko v poriadku. 539 00:22:00,610 --> 00:22:01,820 Nič sa pokazilo. 540 00:22:01,820 --> 00:22:06,170 Naproti tomu, ak funkcia vráti 1, alebo negatívne 1, alebo 541 00:22:06,170 --> 00:22:11,670 negatívny 1337, alebo niektoré náhodné čísla ako to, že 542 00:22:11,670 --> 00:22:14,020 Všeobecne to znamená, že k chybe v skutočnosti došlo. 543 00:22:14,020 --> 00:22:16,150 Takže ak ste na počítači Mac alebo PC, ak ste niekedy videli 544 00:22:16,150 --> 00:22:18,590 niektoré nepríjemné správy, pretože váš počítač havaroval alebo 545 00:22:18,590 --> 00:22:20,660 mrazené, a tam je mystický chybové hlásenie, 546 00:22:20,660 --> 00:22:23,320 a potom nejaký kód, ako je systémový kód 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, niektoré číslo, 548 00:22:25,110 --> 00:22:29,270 že všeobecne je zbytočné detail povedať 549 00:22:29,270 --> 00:22:32,110 Väčšina z nás ľudí, ale to je to, čo niektoré funkcie alebo niektoré 550 00:22:32,110 --> 00:22:34,890 Program skutočne vrátil, nenulovú hodnotu. 551 00:22:34,890 --> 00:22:38,540 A výhodou je to, že 0 znamená všetky a, a 552 00:22:38,540 --> 00:22:40,470 potom tu v podstate nekonečné množstvo vecí, ktoré 553 00:22:40,470 --> 00:22:41,130 sa môže pokaziť. 554 00:22:41,130 --> 00:22:44,700 Čo je dôvod, prečo si vybrali 0 pre dobré a nenulová hodnota pre 555 00:22:44,700 --> 00:22:46,450 zlý, ako skoro uvidíme. 556 00:22:46,450 --> 00:22:47,870 >> Tak poďme do toho a napísať. 557 00:22:47,870 --> 00:22:51,610 Takže pripomenúť, že druhý deň som svoj Mac k otvoreniu 558 00:22:51,610 --> 00:22:53,970 okno terminálu, a potom som otvoril texte programu, ako je 559 00:22:53,970 --> 00:22:55,900 TextEdit, a začal som písať nejaký kód. 560 00:22:55,900 --> 00:22:56,580 No, to je v poriadku. 561 00:22:56,580 --> 00:22:58,636 Ale vaše skúsenosti bude líšiť na Mac, alebo 562 00:22:58,636 --> 00:23:01,220 v Solaris počítači, počítač Linux, bez ohľadu na operačný 563 00:23:01,220 --> 00:23:02,810 Systém vám stalo, že sa pomocou. 564 00:23:02,810 --> 00:23:04,970 A tak v priebehu, čo sme namiesto toho použiť, je niečo, čo 565 00:23:04,970 --> 00:23:07,010 volal CS50 spotrebiča. 566 00:23:07,010 --> 00:23:10,420 Takže CS50 Appliance je k stiahnutiu kus softvéru 567 00:23:10,420 --> 00:23:13,640 , Ktorý vám umožní spustiť operačný systém s názvom Linux, 568 00:23:13,640 --> 00:23:16,810 konkrétne Fedora Linux, na vlastné Mac alebo PC. 569 00:23:16,810 --> 00:23:20,810 A môžete to urobiť stiahnutím niečo ako hypervisor. 570 00:23:20,810 --> 00:23:23,100 Takže toto všetko bude zdokumentované v problémovej sady 1. 571 00:23:23,100 --> 00:23:25,240 A budete sa riadiť k tomu, čo je potrebné stiahnuť. 572 00:23:25,240 --> 00:23:27,510 Ale konečný výsledok, či už máte Mac alebo PC, je vám 573 00:23:27,510 --> 00:23:29,080 stiahnuť nejaký free software. 574 00:23:29,080 --> 00:23:32,340 Potom stiahnuť CS50 Appliance, a povedať, že 575 00:23:32,340 --> 00:23:33,960 free software - hypervisor - 576 00:23:33,960 --> 00:23:38,080 spustiť CS50 Appliance v okne na vašom počítači. 577 00:23:38,080 --> 00:23:39,490 A čo sa stane, je to. 578 00:23:39,490 --> 00:23:43,660 >> Teraz som si všimnite, tu, čo sa zdá byť desktop 579 00:23:43,660 --> 00:23:44,130 prostredie. 580 00:23:44,130 --> 00:23:46,150 A dovoľte mi, aby som skutočne zmenšiť toto jediné okno. 581 00:23:46,150 --> 00:23:49,640 Tak toto teraz je moja Mac, s malým okienkom tu, a vo vnútri 582 00:23:49,640 --> 00:23:51,300 tohto okna sa stane, že je úplne 583 00:23:51,300 --> 00:23:52,380 iný operačný systém. 584 00:23:52,380 --> 00:23:55,250 Naozaj tam je to štart menu dole, pripomínajúce 585 00:23:55,250 --> 00:23:57,990 Windows, ktorý má veľa čiastkových menu, vrátane 586 00:23:57,990 --> 00:24:00,720 odkaz na CS50 manuálu, Dropbox, a podobne. 587 00:24:00,720 --> 00:24:03,480 A čo toto prostredie je teraz štandardné prostredie 588 00:24:03,480 --> 00:24:06,280 že každý z nás môže teraz používať, takže bez ohľadu na to, aké sú vaše 589 00:24:06,280 --> 00:24:08,960 Počítač je, čo ste nainštalovali na to, aká verzia 590 00:24:08,960 --> 00:24:11,430 Mac OS alebo Windows, ktorú používate, my všetci teraz 591 00:24:11,430 --> 00:24:12,800 rovnakom prostredí. 592 00:24:12,800 --> 00:24:15,850 A teraz, v tomto prostredí môžeme začať písať nejaký kód. 593 00:24:15,850 --> 00:24:18,480 >> Takže budem pokračovať a otvoriť program s názvom gedit. 594 00:24:18,480 --> 00:24:21,500 To je porovnateľné s notepad.exe, alebo 595 00:24:21,500 --> 00:24:22,790 TextEdit na Mac. 596 00:24:22,790 --> 00:24:25,390 A to je len super jednoduchý textový editačný program 597 00:24:25,390 --> 00:24:27,500 , Ktorý vyzerá takto na prvý pohľad. 598 00:24:27,500 --> 00:24:30,640 Teraz na vrchole, mám bielu paletu, v dolnej časti I 599 00:24:30,640 --> 00:24:33,860 majú túto čiernu okno, ktoré hovorí, že jharvard @ spotrebiča. 600 00:24:33,860 --> 00:24:36,440 A to preto, že užívateľský účet, ktorý sme už vytvorili 601 00:24:36,440 --> 00:24:38,430 pre každého sa nazýva John Harvard. 602 00:24:38,430 --> 00:24:41,490 Má zložku, kde sú všetky jeho súbory sa chystáte ísť, a 603 00:24:41,490 --> 00:24:43,500 Tu je miesto, kde môžeme začať písať nejaký kód. 604 00:24:43,500 --> 00:24:45,810 Tak nechaj ma ísť napred sem a priblížiť len trochu, a ja som 605 00:24:45,810 --> 00:24:51,550 robiť # include , int main (void), a 606 00:24:51,550 --> 00:24:57,470 potom budem robiť printf ("hello world") 607 00:24:57,470 --> 00:24:59,490 ; Vráti 0. 608 00:24:59,490 --> 00:25:01,400 Teraz je to všetko celkom čierne a biele. 609 00:25:01,400 --> 00:25:03,830 >> Nechaj ma ísť ďalej a urobiť jednu vec, učiť gedit čoho som 610 00:25:03,830 --> 00:25:04,510 vlastne robí. 611 00:25:04,510 --> 00:25:06,140 Nechajte ma ísť na príkaz Uložiť ako. 612 00:25:06,140 --> 00:25:08,560 Idem si vybrať, na ľavej strane tu jharvard. 613 00:25:08,560 --> 00:25:11,010 Takže znovu, aj keď ste nikdy predtým Linux, úprimne 614 00:25:11,010 --> 00:25:13,680 v týchto dňoch, všetky z nich sú usmerňovaním do v podstate 615 00:25:13,680 --> 00:25:14,590 Rovnaký typ rozhrania - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows a Linux. 617 00:25:16,030 --> 00:25:18,680 Tak som si vybral jharvard domovskú zložku tu. 618 00:25:18,680 --> 00:25:21,120 A budem sa tento súbor uložiť ako hello.c. 619 00:25:21,120 --> 00:25:24,260 Takže na samom vrchole, som napísal hello.c; pomenovanie C 620 00:25:24,260 --> 00:25:26,520 program s príponou. c je 621 00:25:26,520 --> 00:25:27,570 to, čo je bežnou praxou. 622 00:25:27,570 --> 00:25:28,650 A ja hit Uložiť. 623 00:25:28,650 --> 00:25:32,510 A teraz, čo je pekné je, že som skutočne učil gedit, 624 00:25:32,510 --> 00:25:33,690 že sa jedná o C program. 625 00:25:33,690 --> 00:25:36,470 Všimnite si, že moja čierna a biely text je teraz farebne odlíšené, alebo 626 00:25:36,470 --> 00:25:39,330 syntax zdôraznil, ktorý len upozorňuje svoju pozornosť na 627 00:25:39,330 --> 00:25:41,540 rôzne sémantické časti programu. 628 00:25:41,540 --> 00:25:44,260 V ľavom hornom rohu sa, pretože moje programy sa zložitejšie, ja som 629 00:25:44,260 --> 00:25:47,060 bude mať prehľad o všetkých veciach, ktoré som napísala. 630 00:25:47,060 --> 00:25:48,050 Tak to je to tam. 631 00:25:48,050 --> 00:25:52,350 Tak nech mi teraz oddialiť a ísť dole na tento terminálovom okne. 632 00:25:52,350 --> 00:25:54,570 >> Tak toto je snáď nový pre mnoho ľudí. 633 00:25:54,570 --> 00:25:57,260 Ak ste nikdy nepoužívali príkazového riadku prostredie, ktoré ste nikdy 634 00:25:57,260 --> 00:26:00,020 používa DOS, alebo ste nikdy Linux, alebo ste nikdy neotvoril 635 00:26:00,020 --> 00:26:02,550 Mac OS okno terminálu, je tu veľa vecí, ktoré 636 00:26:02,550 --> 00:26:04,820 mohol robiť s GUI, ako je polohovacie, a kliknutím na tlačidlo, a 637 00:26:04,820 --> 00:26:07,080 ťahaním, a klesá, a podobne, ale všeobecne - 638 00:26:07,080 --> 00:26:09,360 iste vo svete výpočtovej techniky - 639 00:26:09,360 --> 00:26:11,580 pomocou príkazového riadku, kde nemáte myši 640 00:26:11,580 --> 00:26:14,220 všeobecne, máte len klávesnicu, je v skutočnosti oveľa 641 00:26:14,220 --> 00:26:17,260 silnejšie ako rozhranie, akonáhle sa dostanete aklimatizovať na 642 00:26:17,260 --> 00:26:18,580 rôzne príkazy. 643 00:26:18,580 --> 00:26:20,940 A radíte voľného seba z nutnosti bodu a kliknite na tlačidlo 644 00:26:20,940 --> 00:26:21,690 na všetko. 645 00:26:21,690 --> 00:26:23,890 Takže v gedit budeme nejako to najlepšie z oboch svetov. 646 00:26:23,890 --> 00:26:25,600 Môžeme pretiahnuť text, môžeme vidieť 647 00:26:25,600 --> 00:26:26,840 pekný a farebne odlíšené. 648 00:26:26,840 --> 00:26:29,630 Ale keď príde čas na spustenie nášho programu, stretneme sa niekedy 649 00:26:29,630 --> 00:26:31,750 stačí použiť túto malú okno tu. 650 00:26:31,750 --> 00:26:33,460 >> Takže budem pokračovať, a to. 651 00:26:33,460 --> 00:26:36,420 V spodnej čiernej a bielej okno, budem pokračovať 652 00:26:36,420 --> 00:26:37,890 a písať rinčanie. 653 00:26:37,890 --> 00:26:40,130 A rinčanie je názov prekladača. 654 00:26:40,130 --> 00:26:43,310 Je to program, ktorý prevádza svoj zdrojový kód 655 00:26:43,310 --> 00:26:48,770 do, tak, objektový kód. 656 00:26:48,770 --> 00:26:51,270 0s a 1s, že sme videli krátko minulý týždeň. 657 00:26:51,270 --> 00:26:53,700 Pripomeňme z minulého týždňa, sľúbili sme, že sme išli do 658 00:26:53,700 --> 00:26:55,920 prejsť z niečoho takého - potrebovali sme byť 659 00:26:55,920 --> 00:26:57,010 niečo také - 660 00:26:57,010 --> 00:26:58,700 a to rozhodne nie je niečo, čo človek sa deje 661 00:26:58,700 --> 00:26:59,690 robiť ručne. 662 00:26:59,690 --> 00:27:01,980 Takže namiesto toho, budeme používať program, a že program v 663 00:27:01,980 --> 00:27:03,430 V tomto prípade sa nazýva zvonenie. 664 00:27:03,430 --> 00:27:06,020 A meno môjho programu je hello.c. 665 00:27:06,020 --> 00:27:09,670 Tak, aby sa kompilácie hello.c od zdrojového kódu do 666 00:27:09,670 --> 00:27:12,930 objektový kód, alebo 0s a 1s, malo by stačiť len urobiť 667 00:27:12,930 --> 00:27:14,820 toto a stlačte Enter. 668 00:27:14,820 --> 00:27:16,850 >> Dobre, nič sa zdá, aby sa stalo. 669 00:27:16,850 --> 00:27:20,450 Ale teraz viem, alebo z minulého týždňa, že predvolený názov 670 00:27:20,450 --> 00:27:24,920 program, keď písaný v C, je pochabo nazýva a.out. 671 00:27:24,920 --> 00:27:26,610 Väčšina nezaujímavé meno, ktoré ste mohli prísť. 672 00:27:26,610 --> 00:27:28,790 Je prvé písmeno abecedy, sa je to, čo bolo 673 00:27:28,790 --> 00:27:29,960 výstup, ale budiž. 674 00:27:29,960 --> 00:27:33,570 To je môj program, a teraz dot slash, ako uvidíme, je 675 00:27:33,570 --> 00:27:36,170 vlastne len akousi bezpečnostné funkcie, pretože 676 00:27:36,170 --> 00:27:38,250 a.out je program, ktorý som napísal. 677 00:27:38,250 --> 00:27:39,650 To neprišiel s mojím počítačom, je to 678 00:27:39,650 --> 00:27:40,790 nie je v priečinku Program Files. 679 00:27:40,790 --> 00:27:42,910 Nie je to v zložke Applications Mac OS je. 680 00:27:42,910 --> 00:27:45,740 Musím byť super explicitný s počítačom, a hovoria 681 00:27:45,740 --> 00:27:49,030 tento program, a.out, je v aktuálnej zložke, 682 00:27:49,030 --> 00:27:50,260 aktuálny adresár. 683 00:27:50,260 --> 00:27:53,160 A tak, ako si predstavujú v prostredí, ako je táto 684 00:27:53,160 --> 00:27:57,070 je bodka predstavuje bez ohľadu na priečinok, ktorý sa práve nachádzate 685 00:27:57,070 --> 00:27:59,420 A tak. / Len znamená, že spustenie a.out 686 00:27:59,420 --> 00:28:00,530 v aktuálnej zložke. 687 00:28:00,530 --> 00:28:04,830 A ja som spustiť tento Enter, a voila, môj prvý program. 688 00:28:04,830 --> 00:28:05,990 >> Teraz mi dovoľte urobiť krok späť. 689 00:28:05,990 --> 00:28:08,280 Toto okno je trochu malý, a uvedomiť si, že spodná 690 00:28:08,280 --> 00:28:10,340 vľavo spotrebiče tu je ďalšie ikonou. 691 00:28:10,340 --> 00:28:12,660 Jedným z nich je Chrome, ktorý by mal byť dobre oboznámený, len web 692 00:28:12,660 --> 00:28:14,350 prehliadač vnútri spotrebiča. 693 00:28:14,350 --> 00:28:16,340 A to čierna a biela ikona je len 694 00:28:16,340 --> 00:28:17,720 väčšie okno terminálu. 695 00:28:17,720 --> 00:28:19,830 Takže ak to je trochu nepríjemné sa trochu mať len 696 00:28:19,830 --> 00:28:22,270 tento malý malý plátok okná, s ktorými sa vzájomne 697 00:28:22,270 --> 00:28:24,370 s programami, môžeme namiesto toho urobiť. 698 00:28:24,370 --> 00:28:26,640 A teraz mi dovoľte začať písať niekoľko čoskoro 699 00:28:26,640 --> 00:28:27,980 byť známe príkazy. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Takže ls je príkaz pre výpis. 702 00:28:31,410 --> 00:28:33,900 Takže v Mac OS alebo Windows, by ste všeobecne poklepanie 703 00:28:33,900 --> 00:28:36,510 zložku a potom, voila, uvidíte všetky rôznych súborov 704 00:28:36,510 --> 00:28:37,210 a zložky. 705 00:28:37,210 --> 00:28:39,650 V príkazovom riadku prostredí, kde si môžete zadať len 706 00:28:39,650 --> 00:28:42,390 príkazy alebo text, ls je ekvivalentná. 707 00:28:42,390 --> 00:28:44,380 Tak ukáž mi, čo je v tomto adresári. 708 00:28:44,380 --> 00:28:46,540 >> Teraz je tu veľa vecí, tu je to ako malý 709 00:28:46,540 --> 00:28:48,190 známe a trochu neznáme. 710 00:28:48,190 --> 00:28:50,740 Ale všimnite si, že rovnako ako Windows a Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 má na ploche zložku. 712 00:28:52,190 --> 00:28:54,520 Takže žiadne ikony, ktoré sú na mojom desktope sa stalo 713 00:28:54,520 --> 00:28:55,650 byť v tejto zložke. 714 00:28:55,650 --> 00:28:57,250 Tam je na stiahnutie zložku, veci, ktoré 715 00:28:57,250 --> 00:28:58,890 Chrome by mohol dať tam. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 So prístroj prichádza s vstavanou-in podporu pre Dropbox 718 00:29:01,820 --> 00:29:04,500 tak, že v priebehu semestra, môžete synchronizovať s Dropbox 719 00:29:04,500 --> 00:29:06,420 účet tak, aby sa všetky programy zálohované. 720 00:29:06,420 --> 00:29:08,050 Sú dostupné na vašom počítači. 721 00:29:08,050 --> 00:29:09,780 Ak niekedy niečo pokazí s prístrojom, môžete 722 00:29:09,780 --> 00:29:11,340 veľmi ľahko obnoviť z Dropbox. 723 00:29:11,340 --> 00:29:12,940 Takže zložka je tam, že. 724 00:29:12,940 --> 00:29:14,660 Tam sú dva súbory, ktoré som urobil - hello.c 725 00:29:14,660 --> 00:29:16,540 a a.out. 726 00:29:16,540 --> 00:29:18,530 A potom doprava tam niektoré iné zložky, ktoré budeme 727 00:29:18,530 --> 00:29:20,710 dostať ku koncu semestra, s web 728 00:29:20,710 --> 00:29:21,540 programovanie. 729 00:29:21,540 --> 00:29:26,160 Takže keď som to. /, A.out, Enter, to už idú 730 00:29:26,160 --> 00:29:29,460 v adresári Som, aktuálnom adresári, a spustite 731 00:29:29,460 --> 00:29:32,465 program s názvom a.out tu. 732 00:29:32,465 --> 00:29:35,810 >> Dobre, tak to je pekné a dobré, ale to nie je všetko, že 733 00:29:35,810 --> 00:29:38,550 presvedčivé napísať program s názvom pomoc a.out. 734 00:29:38,550 --> 00:29:40,790 Takže môžeme skutočne urobiť trochu inak. 735 00:29:40,790 --> 00:29:43,980 Takže namiesto toho, aby len beží kovový zvuk, hello.c, dodajme 736 00:29:43,980 --> 00:29:46,850 čo sa nazýva argument príkazového riadku. 737 00:29:46,850 --> 00:29:50,730 Takže argument príkazového riadku, alebo spínač v tomto prípade, je len 738 00:29:50,730 --> 00:29:54,930 ďalšie slovo alebo slovné spojenie, ktoré zadáte na výzvu po 739 00:29:54,930 --> 00:29:56,290 program, ktorý chcete spustiť. 740 00:29:56,290 --> 00:29:59,970 Takže v tomto prípade, rinčať je program chcem spustiť,-o 741 00:29:59,970 --> 00:30:03,480 znamená výstupný súbor, ktorý sa už nazýva a.out. 742 00:30:03,480 --> 00:30:07,510 Výstupný súbor s názvom ahoj, a to tým, že prekladá 743 00:30:07,510 --> 00:30:10,200 posledné slovo na riadku, hello.c. 744 00:30:10,200 --> 00:30:13,200 Takže v skratke, je to veľmi okrajový zlepšenie, pričom 745 00:30:13,200 --> 00:30:15,850 namiesto toho, aby tento hlúpo názvom súboru a.out, 746 00:30:15,850 --> 00:30:21,430 Teraz môžem urobiť klap-o hello, potom hello.c, a 747 00:30:21,430 --> 00:30:22,530 a stlačte Enter. 748 00:30:22,530 --> 00:30:25,510 Nič Zdá sa stane, ale opäť veľmi rád s 0 - pri 749 00:30:25,510 --> 00:30:28,510 nič, zdá sa stať, že znamená, nič zlé sa stalo - 750 00:30:28,510 --> 00:30:31,460 tak poďme urobiť ls teraz, Enter, a naozaj teraz 751 00:30:31,460 --> 00:30:32,780 majú ahoj programu. 752 00:30:32,780 --> 00:30:38,510 Takže ak som typ ahoj teraz, command not found. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Tak presne to pravé. 755 00:30:40,220 --> 00:30:43,170 Takže, pretože tento program som napísal, a to neprišiel s 756 00:30:43,170 --> 00:30:45,810 počítač,. / hello, Enter, znamená 757 00:30:45,810 --> 00:30:47,350 Ja som teraz beží ahoj. 758 00:30:47,350 --> 00:30:48,440 >> Tak to je to tam. 759 00:30:48,440 --> 00:30:51,070 Čo teraz budeme nakoniec dostať do viac a viac príkazového riadku 760 00:30:51,070 --> 00:30:54,110 Tvrdenia, ktoré nám umožňujú robiť viac, ale len pre tých, pre 761 00:30:54,110 --> 00:30:57,760 ktoré by to mohlo byť starý klobúk, dovoľte mi, aby som vlastne ísť do 762 00:30:57,760 --> 00:31:01,910 Adresár tu a len vám teaser, ako inak by sme 763 00:31:01,910 --> 00:31:05,770 môže ísť o implementácii Hello World. 764 00:31:05,770 --> 00:31:10,730 Nechaj ma ísť do tu, a budem ju otvorte. 765 00:31:10,730 --> 00:31:13,090 Takže vlastne, ja budem vysvetľovať, čo robím, tak 766 00:31:13,090 --> 00:31:15,610 To je užitočné. 767 00:31:15,610 --> 00:31:17,410 Dovoľte mi, aby som späť. 768 00:31:17,410 --> 00:31:19,620 >> Takže som robil to dlho. 769 00:31:19,620 --> 00:31:23,030 Tak zistíte cez vpravo existuje pár 770 00:31:23,030 --> 00:31:26,940 adresáre, ktoré sú podivne pomenované source1m a source1w. 771 00:31:26,940 --> 00:31:28,830 To je len hlúpa konvencie používame. 772 00:31:28,830 --> 00:31:31,825 Source jednoducho znamená, zdrojový kód, 1 znamená, že tento je prvý týždeň, a 773 00:31:31,825 --> 00:31:34,000 m znamená, že je pondelok, a w znamená, že je streda. 774 00:31:34,000 --> 00:31:34,900 Takže nič mystický tam. 775 00:31:34,900 --> 00:31:37,830 Je to len skratka notácie. 776 00:31:37,830 --> 00:31:39,860 Tieto modré veci sú zložky, inak známy ako 777 00:31:39,860 --> 00:31:40,630 adresára. 778 00:31:40,630 --> 00:31:43,870 Chcem ísť do tejto zložky teraz, a na normálnom počítači 779 00:31:43,870 --> 00:31:45,710 Mohol by som poklepanie na ikonu zložky a 780 00:31:45,710 --> 00:31:46,810 tam všetky moje súbory. 781 00:31:46,810 --> 00:31:49,270 Ale v prostredí príkazového riadku, nemôžem docela robiť 782 00:31:49,270 --> 00:31:52,640 , Takže namiesto toho, musím zmeniť adresáre ručne. 783 00:31:52,640 --> 00:31:57,900 Takže ak som typ CD a potom source1m, Enter, zistíte, že 784 00:31:57,900 --> 00:32:01,180 moja výzva, tá vec v bielom vľavo, práve zmenil. 785 00:32:01,180 --> 00:32:03,690 A tak skutočne, keď to jednoducho povedal, zátvorky a potom sa 786 00:32:03,690 --> 00:32:06,450 málo klikiháky, symbol tilda, že práve znamenalo, že som bol 787 00:32:06,450 --> 00:32:08,800 v domovskom adresári Johna z Harvardu, jeho My Documents, 788 00:32:08,800 --> 00:32:10,390 jeho osobné súbory. 789 00:32:10,390 --> 00:32:14,000 Ale teraz v zátvorkách hovorí, že ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 To len znamená, že som v priečinku s názvom source1m 791 00:32:17,090 --> 00:32:19,160 že je v domovskom adresári Johna Harvarde. 792 00:32:19,160 --> 00:32:22,030 Takže ak by som chcel, aby zoznam súborov v tejto zložke, ľahké 793 00:32:22,030 --> 00:32:25,300 otázka, píšem len ls. 794 00:32:25,300 --> 00:32:28,860 A teraz vidím všetky súbory, ktoré som už vytvorili pre dnešnú 795 00:32:28,860 --> 00:32:31,020 prednáška, z ktorých všetky, alebo väčšina z nich, stane 796 00:32:31,020 --> 00:32:32,740 skončiť v C. 797 00:32:32,740 --> 00:32:36,210 >> Tak nechaj ma ísť napred teraz spustiť gedit o tzv programu 798 00:32:36,210 --> 00:32:39,140 holloway.c, ktorý je písaný nejakým náhodným hacker 799 00:32:39,140 --> 00:32:42,920 na internete, ktorá vyzerá trochu ako tento. 800 00:32:42,920 --> 00:32:44,880 A my sa nebudeme prechádzať tento v akejkoľvek 801 00:32:44,880 --> 00:32:48,530 Detail, ale pre tých, pohodlnejšie, najmä vtedy, keď 802 00:32:48,530 --> 00:32:50,935 Ak sa chcete hádať o tom, čo tento program robí tu. 803 00:32:57,950 --> 00:32:59,990 Uisťujeme vás, či už ste viac alebo menej pohodlnejšie, 804 00:32:59,990 --> 00:33:01,655 nie sme ani dostať do takéto veci do konca roka 805 00:33:01,655 --> 00:33:02,160 tento semester. 806 00:33:02,160 --> 00:33:05,390 To je to, čo je príklad súťaže obfuscated C, čo 807 00:33:05,390 --> 00:33:08,390 prostriedky písať tie mystické hľadáte program, ktorý ste možno 808 00:33:08,390 --> 00:33:10,820 môže prekonať ďalšie chytré ľudí, ktorí sú podobne 809 00:33:10,820 --> 00:33:13,010 snaží sa písať veci, a predviesť, že môžu napísať 810 00:33:13,010 --> 00:33:14,280 viac mystické veci, než vás. 811 00:33:14,280 --> 00:33:17,290 Takže to nie je príklad dobre napísaného programu od 812 00:33:17,290 --> 00:33:21,260 Perspektíva štýlu, to je príklad programu, ktorý 813 00:33:21,260 --> 00:33:22,860 vyhrá súťaž, pre ľudí sa snaží 814 00:33:22,860 --> 00:33:24,090 byť neurčité a abstraktné. 815 00:33:24,090 --> 00:33:27,670 >> Takže ak sme sa spustiť túto vec, nechaj ma ísť do môjho okna terminálu, 816 00:33:27,670 --> 00:33:28,110 aby som tak povedal. 817 00:33:28,110 --> 00:33:29,650 Takže to čierna a biela prostredie sa nazýva 818 00:33:29,650 --> 00:33:31,160 okno terminálu všeobecne. 819 00:33:31,160 --> 00:33:32,600 Nechaj ma ísť napred a skompilovať. 820 00:33:32,600 --> 00:33:34,440 Nebudem používať rinčanie, pretože tento program je 821 00:33:34,440 --> 00:33:36,340 trochu tajomné a potrebuje iný 822 00:33:36,340 --> 00:33:38,190 kompilátor, jeden volal GCC. 823 00:33:38,190 --> 00:33:39,200 Ale to robí tú istú vec. 824 00:33:39,200 --> 00:33:41,130 To trvá zdrojový kód objektového kódu. 825 00:33:41,130 --> 00:33:43,940 A teraz, keď spustím a.out, tento program vám 826 00:33:43,940 --> 00:33:46,065 Videla to robí. 827 00:33:49,220 --> 00:33:51,170 Tak toho chlapíka, ktorý rok vyhral tú súťaž. 828 00:33:51,170 --> 00:33:54,020 Tak či onak, my nebudeme v tomto smere, na sebe. 829 00:33:54,020 --> 00:33:57,400 >> Takže poďme sa skutočne snaží, aby sa podpichovať seba, čo môžeme urobiť 830 00:33:57,400 --> 00:33:59,540 s týmito základné stavebné bloky, aby sa stále viac 831 00:33:59,540 --> 00:34:00,590 zaujímavé programy. 832 00:34:00,590 --> 00:34:02,800 Takže sme napísali program, sme spustiť program. 833 00:34:02,800 --> 00:34:05,780 Teraz môžeme skutočne zjednodušiť a už nemusia písať 834 00:34:05,780 --> 00:34:07,210 slovo zvonenie na príkazovom riadku. 835 00:34:07,210 --> 00:34:10,710 Ukazuje sa, ako naše programy získať viac záhadné, môžeme, alebo 836 00:34:10,710 --> 00:34:14,699 zložitejšie skôr, môžeme skutočne spustiť tento príkaz. 837 00:34:14,699 --> 00:34:17,610 Tak nechaj ma ísť späť do môjho domovského adresára, aby som tak povedal, dovoľte mi, aby som 838 00:34:17,610 --> 00:34:20,750 odobrať - rm je príkaz pre odobratie - Idem na odstránenie 839 00:34:20,750 --> 00:34:23,060 súbor s názvom a.out a ahoj. 840 00:34:23,060 --> 00:34:25,489 A teraz všimnete v prostredí príkazového riadku, podobne ako v 841 00:34:25,489 --> 00:34:27,800 GUI, získate vyzvaní. Nemôžem kliknúť na tlačidlo keď, ja 842 00:34:27,800 --> 00:34:31,040 musieť zadať pre Áno, y pre áno. 843 00:34:31,040 --> 00:34:33,460 A teraz, keď píšem ls znovu vedomie, že tí, zelená 844 00:34:33,460 --> 00:34:35,469 programy - a.out a ahoj - 845 00:34:35,469 --> 00:34:35,734 sú preč. 846 00:34:35,734 --> 00:34:37,340 Dajte si pozor na rm. 847 00:34:37,340 --> 00:34:39,739 To môže robiť zlé veci, rovnako ako môžete pretiahnutím 848 00:34:39,739 --> 00:34:40,810 veci do vášho koša. 849 00:34:40,810 --> 00:34:43,989 >> Tak teraz poďme pokračovať - ​​a ja som mohol robiť to - rinčať-o 850 00:34:43,989 --> 00:34:45,139 ahoj, ahoj - 851 00:34:45,139 --> 00:34:46,884 Ja už nudí písania tohto príkazu. 852 00:34:46,884 --> 00:34:48,080 Aj keď som napísal to trochu rýchlo. 853 00:34:48,080 --> 00:34:51,870 Takže môžeme namiesto toho, aby ahoj. 854 00:34:51,870 --> 00:34:53,880 Takže si nie kompilátor. 855 00:34:53,880 --> 00:34:57,720 Je to len príjemný program, ktorý je dodávaný s operačným systémom Linux, v tomto 856 00:34:57,720 --> 00:34:59,070 prípad - operačný systém - 857 00:34:59,070 --> 00:35:02,480 , Ktorý automatizuje proces tvorby programov. 858 00:35:02,480 --> 00:35:05,555 Takže namiesto toho, spomenula klap-o názov súboru a 859 00:35:05,555 --> 00:35:08,190 potom tak ďalej, najmä potom, čo tieto riadky sa predlžujú a 860 00:35:08,190 --> 00:35:10,110 dlhšie, môžem len napísať, aby. 861 00:35:10,110 --> 00:35:12,030 A to bude vypľuť veľa vecí, ktoré sa 862 00:35:12,030 --> 00:35:13,940 budeme nakoniec vidieť tento semester. 863 00:35:13,940 --> 00:35:17,500 Všimnime si ale teraz, keď som typ ls, ahoj je späť vo svojom adresári. 864 00:35:17,500 --> 00:35:19,850 A skutočne som ju spustiť s / Hello. 865 00:35:19,850 --> 00:35:23,330 Takže si jednoducho automatizuje proces beží, čo bolo, 866 00:35:23,330 --> 00:35:26,910 V tomto prípade, omnoho dlhší, zložitejšie príkaz. 867 00:35:26,910 --> 00:35:29,060 Takže budeme chcete začať používať značku, len preto, že je to veľa 868 00:35:29,060 --> 00:35:30,530 viac užívateľsky prívetivé. 869 00:35:30,530 --> 00:35:32,770 >> Ale teraz poďme urobiť viac zaujímavý program 870 00:35:32,770 --> 00:35:34,650 než len pozdraviť. 871 00:35:34,650 --> 00:35:38,680 Takže v programoch písali sme doteraz tú hlavnú. 872 00:35:38,680 --> 00:35:40,890 To je len východiskový vec, ktorá začína všetko preč. 873 00:35:40,890 --> 00:35:43,340 Existujú však aj iné funkcie, tam tiež, a 874 00:35:43,340 --> 00:35:45,890 stdio.h je vec, ktorá sme videli v hornej časti našich 875 00:35:45,890 --> 00:35:48,480 súbor pred, a to je to, čo je známe ako štandardné knižnice. 876 00:35:48,480 --> 00:35:51,300 Vnútri štandardnej knižnice je celá partia funkcií 877 00:35:51,300 --> 00:35:53,850 že niekto iný napísal, a môžeme začať používať tieto 878 00:35:53,850 --> 00:35:55,050 Funkcia písať viac 879 00:35:55,050 --> 00:35:56,760 zaujímavé programy sami. 880 00:35:56,760 --> 00:35:58,370 >> Tak nechaj ma ísť späť do prístroja. 881 00:35:58,370 --> 00:35:59,820 Chystám sa zavrieť toto okno terminálu. 882 00:35:59,820 --> 00:36:02,630 Chystám sa uzavrieť to, čo sme písali skôr, a choď 883 00:36:02,630 --> 00:36:07,350 do hello.c, a všimnite si, teraz môžem urobiť nasledovné. 884 00:36:07,350 --> 00:36:09,730 Ahoj svet nie je všetko tak zaujímavé, ja by som 885 00:36:09,730 --> 00:36:11,770 prispôsobiť tento program pre seba. 886 00:36:11,770 --> 00:36:13,440 Takže namiesto toho, aby hovoril svet, budem 887 00:36:13,440 --> 00:36:14,830 choďte do toho a povedz - 888 00:36:14,830 --> 00:36:16,880 Mohol by som písať David - ale to je naozaj druh 889 00:36:16,880 --> 00:36:18,050 v podstate rovnaké. 890 00:36:18,050 --> 00:36:19,970 Ale poďme vyskúšať tento zástupný nápad. 891 00:36:19,970 --> 00:36:24,460 Pripomeňme, že v C, ale v printf, sme mali títo 892 00:36:24,460 --> 00:36:28,110 symboly, a tam sú viac než len% d 893 00:36:28,110 --> 00:36:31,150 Takže% d bol rýchly zdravý rozum kontrola. 894 00:36:31,150 --> 00:36:32,310 Dobre, Desatinné číslo, to je ono. 895 00:36:32,310 --> 00:36:33,860 Desatinné miesta, to je všetko. 896 00:36:33,860 --> 00:36:37,755 Takže% C, ako sa stretávajú, bude znak. 897 00:36:37,755 --> 00:36:40,530 Dajte charakter tu, list až z, 898 00:36:40,530 --> 00:36:41,600 alebo interpunkcia symbol. 899 00:36:41,600 --> 00:36:45,590 Znak,% f, neviete niekto z iných jazykov? 900 00:36:45,590 --> 00:36:47,020 Takže hodnota s plávajúcou čiarkou. 901 00:36:47,020 --> 00:36:47,880 Reálne číslo. 902 00:36:47,880 --> 00:36:51,550 Takže nie je desatinné číslo - je to vlastne reálne číslo s 903 00:36:51,550 --> 00:36:54,130 desatinnú čiarku, a niektoré počet číslic vľavo 904 00:36:54,130 --> 00:36:55,520 a právo na to. 905 00:36:55,520 --> 00:36:58,060 % S, povrázok. 906 00:36:58,060 --> 00:36:59,530 Že jeden budeme vidieť docela často. 907 00:36:59,530 --> 00:37:02,140 Reťazec, opäť, je to len slovo, fráza, postupnosť 908 00:37:02,140 --> 00:37:03,330 Jednotlivé postavy. 909 00:37:03,330 --> 00:37:06,730 A konečne, LLD? 910 00:37:06,730 --> 00:37:08,210 Takže je to skôr rohového prípadu. 911 00:37:08,210 --> 00:37:09,850 Dlhý, desiatkovej. 912 00:37:09,850 --> 00:37:12,035 Takže ak chcete nie je len číslo, ktoré je takto veľký, môžete 913 00:37:12,035 --> 00:37:14,160 Chcete väčšie číslo, budete musieť špecifikovať, 914 00:37:14,160 --> 00:37:16,400 počítač, že je to z určitej veľkosti. 915 00:37:16,400 --> 00:37:17,610 >> Tak poďme vyladiť to trochu. 916 00:37:17,610 --> 00:37:20,610 Skôr než len tvrdé kódu v Dávidovi, dovoľte mi, aby som sa mierne 917 00:37:20,610 --> 00:37:22,460 dynamicky povedať% s 918 00:37:22,460 --> 00:37:25,790 Tak si% s tu, čo je zástupný reťazec. 919 00:37:25,790 --> 00:37:30,500 Potom ma nechaj robiť čiarku, a potom "David" tu. 920 00:37:30,500 --> 00:37:32,770 Teraz to nie je všetko, že intelektuálne zaujímavé, 921 00:37:32,770 --> 00:37:35,060 pretože všetko, čo som urobil, teraz naozaj vytvoriť viac práce pre 922 00:37:35,060 --> 00:37:35,790 počítač. 923 00:37:35,790 --> 00:37:39,660 Skôr než povedať počítača sa to všetko naraz, ja som teraz 924 00:37:39,660 --> 00:37:43,760 hovorí to a vložte reťazec tu nakoniec, čiarka, 925 00:37:43,760 --> 00:37:44,950 Tu je to, že reťazec. 926 00:37:44,950 --> 00:37:47,220 Takže to nie je väčšie zlepšenie, ale je to aspoň 927 00:37:47,220 --> 00:37:49,010 krok smerom k väčšej zaujímavý program. 928 00:37:49,010 --> 00:37:51,240 Pretože teraz, nechaj ma ísť napred a urobiť toto okno trochu 929 00:37:51,240 --> 00:37:56,850 väčšie, nechaj ma ísť dopredu a spustite make ahoj. 930 00:37:56,850 --> 00:38:01,340 A teraz,. / A.out nefunguje, prečo? 931 00:38:03,880 --> 00:38:05,570 Dobre, teraz sa to volá hello. 932 00:38:05,570 --> 00:38:09,400 Takže znovu robiť, a aj rinčať s-o, premenoval 933 00:38:09,400 --> 00:38:11,120 program, ktorý bude niečo zaujímavejšie. 934 00:38:11,120 --> 00:38:13,060 A ajhľa: teraz to hovorí ahoj David. 935 00:38:13,060 --> 00:38:14,590 >> Dobre, ešte hlúpy program. 936 00:38:14,590 --> 00:38:18,070 Tak teraz poďme skutočne ísť sem a zaviesť pojem 937 00:38:18,070 --> 00:38:18,810 premenné. 938 00:38:18,810 --> 00:38:21,600 Nebolo by pekné, keby som mohol deklarovať premennú 939 00:38:21,600 --> 00:38:23,150 ktorého je typu string? 940 00:38:23,150 --> 00:38:26,720 A hodnoty premennej skutočne pochádza od užívateľa 941 00:38:26,720 --> 00:38:27,810 ho alebo sám. 942 00:38:27,810 --> 00:38:30,240 Takže ľubovoľne, idem zavolať svojej variabilný s, čo je 943 00:38:30,240 --> 00:38:32,410 len obyčajná konvencie, keď máte jednu premennú nazýva 944 00:38:32,410 --> 00:38:33,250 string. 945 00:38:33,250 --> 00:38:35,670 Ja budem robiť znamienko rovnosti, a potom budem volať 946 00:38:35,670 --> 00:38:38,030 funkcia sa nazýva GetString. 947 00:38:38,030 --> 00:38:40,830 Takže GetString nie je niečo, čo príde vstavaný do C. Je 948 00:38:40,830 --> 00:38:43,330 funkcie, o ktorých CS50 personál napísal, naozaj len pre 949 00:38:43,330 --> 00:38:45,670 Tieto prvé pár týždňov, zjednodušiť proces 950 00:38:45,670 --> 00:38:49,450 ako užívateľský vstup a získanie užívateľského vstupu v podobe 951 00:38:49,450 --> 00:38:51,960 reťazcov alebo čísel, a podobne. 952 00:38:51,960 --> 00:38:55,520 Takže GetString je ako printf, ale samozrejme skôr než 953 00:38:55,520 --> 00:38:58,700 vytlačiť to bude robiť to, čo jej názov napovedá, sa reťazec. 954 00:38:58,700 --> 00:39:00,970 Ale používať GetString, budeme musieť urobiť zmenu 955 00:39:00,970 --> 00:39:03,180 tu, nad tento rámec. 956 00:39:03,180 --> 00:39:07,170 Takže intuitívne, tento program, dúfajme, bude nejako 957 00:39:07,170 --> 00:39:09,700 dostať reťazec od užívateľa, a potom to, čo to ide urobiť 958 00:39:09,700 --> 00:39:11,460 s týmto reťazcom, tzv s? 959 00:39:15,060 --> 00:39:16,470 Je to len tak vytlačiť, nie? 960 00:39:16,470 --> 00:39:18,870 Stále nie je stimulujúce program, pretože všetko, čo sa deje 961 00:39:18,870 --> 00:39:22,160 urobiť, je zapojiť v uvedenej hodnote do kde% s 962 00:39:22,160 --> 00:39:23,750 hovorí, že by malo ísť. 963 00:39:23,750 --> 00:39:25,290 >> Tak nech je aspoň vidieť v akcii. 964 00:39:25,290 --> 00:39:27,040 Dovoľte mi, aby som uložiť a oddialiť. 965 00:39:27,040 --> 00:39:30,280 Teraz v mojom terminálovom okne sem, malý kúsok jedného, 966 00:39:30,280 --> 00:39:32,760 dovoľte mi, aby som ešte raz urobiť, aby ahoj. 967 00:39:32,760 --> 00:39:35,160 Dobre, a ach, sakramentsky, mám veľa chýb. 968 00:39:35,160 --> 00:39:38,020 Dovoľte mi, aby som sa posunúť nahor, a my vidíme naše prvé - 969 00:39:38,020 --> 00:39:40,430 takže sa poďme vlastne robiť to v ešte väčšie okná, takže môžete 970 00:39:40,430 --> 00:39:42,110 môžete vidieť, ako zle som to podelal - 971 00:39:42,110 --> 00:39:44,460 takže sa ahoj. 972 00:39:44,460 --> 00:39:46,540 Dobre, to je katastrofa, nie? 973 00:39:46,540 --> 00:39:48,740 Napísal som tri riadky kódu, a 974 00:39:48,740 --> 00:39:50,070 to mi dal 12 chýb. 975 00:39:50,070 --> 00:39:51,980 Tak prečo je to tak? 976 00:39:51,980 --> 00:39:55,720 Takže našťastie, častokrát, keď vidíte veľa, veľa chýb 977 00:39:55,720 --> 00:39:57,730 vypľul naraz, je to naozaj len preto, že ste 978 00:39:57,730 --> 00:39:59,760 zmätený počítač sem. 979 00:39:59,760 --> 00:40:02,330 A ostáva zmätený v čase, keď sa dostane sem. 980 00:40:02,330 --> 00:40:04,400 A tak to proste začne vypínanie, a potkýnal, a 981 00:40:04,400 --> 00:40:07,310 vypľutie viac desivé ako v skutočnosti platí. 982 00:40:07,310 --> 00:40:10,120 Takže všeobecne, vždy začať s hornou. 983 00:40:10,120 --> 00:40:13,320 >> Takže veľmi top najviac inštancie červená, 984 00:40:13,320 --> 00:40:14,740 chybové hlásenie je to. 985 00:40:14,740 --> 00:40:17,750 Použitie nelegálnej identifikátor reťazca, som 986 00:40:17,750 --> 00:40:19,160 znamená štandard? 987 00:40:19,160 --> 00:40:19,900 Ja nie. 988 00:40:19,900 --> 00:40:24,180 Myslel som reťazec, ale to je preto, že aj slovo string 989 00:40:24,180 --> 00:40:26,020 že som aj naďalej používať ústne skutočne 990 00:40:26,020 --> 00:40:27,240 neexistuje v C oboch. 991 00:40:27,240 --> 00:40:29,470 Je to niečo, čo budeme používať len počas prvého týždňa alebo dvoch 992 00:40:29,470 --> 00:40:34,500 tu, ale existuje v súbore nazvanom cs50.h. 993 00:40:34,500 --> 00:40:37,110 Takže teraz, viem, že tam je to iné knižnice, že 994 00:40:37,110 --> 00:40:39,330 Zamestnanci písal, tak to bolo napísané neskôr ako 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Ale vnútri cs50.h je definícia, synonymum 997 00:40:45,020 --> 00:40:48,310 druhy, ktoré tvoria tento slovo reťazec. 998 00:40:48,310 --> 00:40:50,890 >> Takže teraz mi dovoľte vrátiť sa k môjmu terminálovom okne. 999 00:40:50,890 --> 00:40:53,200 Chystám sa vymazať celý tento neporiadok pomocou Ctrl-L. Budeme len 1000 00:40:53,200 --> 00:40:55,700 utrite všetko čisté, a ja idem ďalej a robiť 1001 00:40:55,700 --> 00:40:57,860 ahoj znova, Enter. 1002 00:40:57,860 --> 00:40:59,440 Tak čo sa stalo? 1003 00:40:59,440 --> 00:41:01,150 Teraz všetky tieto chyby odišiel. 1004 00:41:01,150 --> 00:41:02,230 Takže to, čo som naozaj urobil? 1005 00:41:02,230 --> 00:41:05,920 Práve som učil na počítač, ktorý reťazec existuje, a to je 1006 00:41:05,920 --> 00:41:07,890 v tomto súbore s názvom cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Takže prestaňte sa sťažovať, pretože teraz už viete, kde nájsť 1008 00:41:10,930 --> 00:41:13,220 Táto funkcia je vyhlásenie, aby som tak povedal. 1009 00:41:13,220 --> 00:41:15,200 Ak existuje na svete. 1010 00:41:15,200 --> 00:41:18,820 >> Takže teraz budem pokračovať a spustiť ahoj. 1011 00:41:18,820 --> 00:41:22,300 Zdá sa mi, mať nekonečnú slučku, Nič sa nedeje. 1012 00:41:25,530 --> 00:41:26,870 Tak som potrebné niečo písať tu, hneď. 1013 00:41:26,870 --> 00:41:29,650 Prvý riadok kódu v mojom programe bola GetString. 1014 00:41:29,650 --> 00:41:31,750 Takže to doslova čaká, aby som sa reťazec. 1015 00:41:31,750 --> 00:41:33,680 Takže v tomto zmysle áno, je to nekonečná slučka. 1016 00:41:33,680 --> 00:41:36,520 Zrejme v GetString je predvolené správanie, ktoré sme 1017 00:41:36,520 --> 00:41:37,510 napísal - zamestnanci - 1018 00:41:37,510 --> 00:41:39,550 že len hovorí čakať a čakať a čakať a čakať a čakať, 1019 00:41:39,550 --> 00:41:42,550 kým užívateľ vám reťazec zadaním niečo palcov 1020 00:41:42,550 --> 00:41:46,000 Tak nechaj ma ísť napred a zadajte D-A-V - i-d, Enter. 1021 00:41:46,000 --> 00:41:47,420 A je to tu, ahoj David. 1022 00:41:47,420 --> 00:41:50,430 >> Teraz sa to zdá, ako by to len divadlo? 1023 00:41:50,430 --> 00:41:52,810 Nechaj ma ísť napred a zadajte Tommy. 1024 00:41:52,810 --> 00:41:54,740 Zadajte, v poriadku, zdá sa byť funkčné. 1025 00:41:54,740 --> 00:41:59,130 Pracuje pre Roba, práca pre Zamyla, pracuje pre - v poriadku. 1026 00:41:59,130 --> 00:42:01,000 Takže to bude fungovať, s najväčšou pravdepodobnosťou. 1027 00:42:01,000 --> 00:42:05,030 Tak to by malo vytlačiť, čo sme vlastne dať, 1028 00:42:05,030 --> 00:42:07,830 a môžeme byť trochu ťažké tu. 1029 00:42:07,830 --> 00:42:12,130 Uvidíme, či sa nám niečo také ahoj. 1030 00:42:12,130 --> 00:42:18,000 Môže ísť sem, uvidíme, Kopírovať, Vložiť. 1031 00:42:18,000 --> 00:42:19,950 Nebudem mať možnosť vložiť toľkokrát, tu. 1032 00:42:19,950 --> 00:42:24,410 Vložiť, v poriadku, Shift + Ctrl + V. Takže to, čo by 1033 00:42:24,410 --> 00:42:26,970 sa stať, že je zlé tu? 1034 00:42:26,970 --> 00:42:27,770 >> Dobre, tak, segfault chýb. 1035 00:42:27,770 --> 00:42:29,710 Takže niektorí z vás s predchádzajúcimi zázemím bude vedieť, že 1036 00:42:29,710 --> 00:42:32,710 všeobecne, čo počítačom veľa vstupov, keď sú 1037 00:42:32,710 --> 00:42:36,140 pravdepodobne nemá dostávať dlhé názvy, ako je táto - zlé 1038 00:42:36,140 --> 00:42:36,740 veci sa stávajú. 1039 00:42:36,740 --> 00:42:39,230 Naozaj, vo svete internetu, aj sa to stane celkom dosť, 1040 00:42:39,230 --> 00:42:41,000 kedy, keď ste navrhovanie webových stránok, keď ste 1041 00:42:41,000 --> 00:42:43,850 projektovanie Facebook, budete musieť svojvoľné rozhodnutia up 1042 00:42:43,850 --> 00:42:45,370 predné, rovnako ako ako dlho bude niečí 1043 00:42:45,370 --> 00:42:46,360 Facebook meno je? 1044 00:42:46,360 --> 00:42:48,050 Alebo ako dlho bude niečí meno je? 1045 00:42:48,050 --> 00:42:50,110 Ako dlho bude niečí telefónne číslo, a podobne. 1046 00:42:50,110 --> 00:42:53,580 A ak programátori so zlými predpoklady, programy zlomiť 1047 00:42:53,580 --> 00:42:56,640 pretože ste sa pokúšali dať im väčší výkon, viac vstupov 1048 00:42:56,640 --> 00:42:58,330 skôr, než majú pamäť. 1049 00:42:58,330 --> 00:43:01,860 Alebo RAM pridelená pre neho, a tak ak som teraz Enter, 1050 00:43:01,860 --> 00:43:04,640 tento program skutočne funguje, pretože sme boli v knižnici 1051 00:43:04,640 --> 00:43:06,790 a my sme vlastne očakávať tento konkrétny prípad. 1052 00:43:06,790 --> 00:43:10,900 Ale nepochybne tento semester, budete písať aspoň jeden 1053 00:43:10,900 --> 00:43:13,280 program, ktorý bude hovoriť tieto slová. 1054 00:43:13,280 --> 00:43:16,520 Nezabudnite tento týždne odteraz, možno dva dni od teraz. 1055 00:43:16,520 --> 00:43:18,760 Segmentation fault je zlá vec. 1056 00:43:18,760 --> 00:43:21,920 To sa bude týkať vašej robí niečo, čo v počítači 1057 00:43:21,920 --> 00:43:23,310 nepredpokladal. 1058 00:43:23,310 --> 00:43:25,810 A v tomto prípade je, programátor, nepredpokladal. 1059 00:43:25,810 --> 00:43:27,720 Podobne ako čo to hromadu ponožiek, tam boli rôzne 1060 00:43:27,720 --> 00:43:29,520 rohové prípadov sme mohli stretli. 1061 00:43:29,520 --> 00:43:32,340 Podobne v programoch, ak nechcete predvídať, ako dlho je 1062 00:43:32,340 --> 00:43:33,310 niečí meno bude. 1063 00:43:33,310 --> 00:43:35,890 Alebo čo keď mám užívateľovi so zlými úmyslami, a jeho alebo jej meno je 1064 00:43:35,890 --> 00:43:37,230 vlastne dosť krátka, ale sú to len snaží 1065 00:43:37,230 --> 00:43:37,960 neporiadok so mnou? 1066 00:43:37,960 --> 00:43:40,490 Čo sa bude správanie môjho programu? 1067 00:43:40,490 --> 00:43:43,930 No, v tom prípade by sa niečo zlyhanie. 1068 00:43:43,930 --> 00:43:44,750 >> Takže ideme na to. 1069 00:43:44,750 --> 00:43:46,860 V priebehu 90 minút, je to hrozný dlho 1070 00:43:46,860 --> 00:43:47,780 robiť informatiku. 1071 00:43:47,780 --> 00:43:49,550 Prečo sme sa dostali do zvyku brať päť minút 1072 00:43:49,550 --> 00:43:51,520 rozbiť tu, a až sa vrátime, budeme ponoriť do niektorej 1073 00:43:51,520 --> 00:43:53,430 zložitejšie a presvedčivé programy? 1074 00:43:53,430 --> 00:43:54,680 Päť minút. 1075 00:43:56,910 --> 00:43:58,160 >> Dobrá. 1076 00:44:01,138 --> 00:44:02,780 Takže jedna rýchla komentár. 1077 00:44:02,780 --> 00:44:05,590 Bolo mi povedané, že aj keď to bolo na obrazovke pred, čo 1078 00:44:05,590 --> 00:44:08,880 vyšlo z mojich úst bolo cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 To je správne. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Takže teraz môžete skúsiť RSVPing pre toto v / obed. 1081 00:44:16,030 --> 00:44:16,980 Ale poďme to urobiť teraz. 1082 00:44:16,980 --> 00:44:20,150 Takže to bol super rýchly, super nové pre mnoho ľudí. 1083 00:44:20,150 --> 00:44:21,560 Starý klobúk pre niektorých ľudí. 1084 00:44:21,560 --> 00:44:24,930 Takže poďme pretočiť len na chvíľu, a uvidíte, ako sme sa dostali do 1085 00:44:24,930 --> 00:44:29,350 Tento hello world výstup pred chvíľou. 1086 00:44:29,350 --> 00:44:31,780 >> Takže prvé, tam je to CS50 spotrebiča. 1087 00:44:31,780 --> 00:44:34,270 Opäť, kus softvéru, problém nastaviť 1 to povie 1088 00:44:34,270 --> 00:44:36,610 vám, ako ho stiahnuť, ak ju stiahnuť, čo kliknite na tlačidlo 1089 00:44:36,610 --> 00:44:37,430 a tak ďalej. 1090 00:44:37,430 --> 00:44:39,670 A potom raz budete riadiť týmito pokynmi, budete môcť 1091 00:44:39,670 --> 00:44:42,840 maximalizovať svoje okno, a váš Mac alebo PC bude vyzerať 1092 00:44:42,840 --> 00:44:43,910 Trochu niečo také. 1093 00:44:43,910 --> 00:44:47,170 Čierne pozadie, domovský adresár na vrchole, kde sú všetky 1094 00:44:47,170 --> 00:44:49,850 súbory idú, kôš v ľavej hornej časti, 1095 00:44:49,850 --> 00:44:51,130 menu v dolnej časti. 1096 00:44:51,130 --> 00:44:54,010 Takže znovu, dosť podobné v duchu na Mac OS alebo Windows, 1097 00:44:54,010 --> 00:44:56,040 aj keď sa stane, že je Linux. 1098 00:44:56,040 --> 00:44:58,120 Takže to, čo sme vedľa robiť? 1099 00:44:58,120 --> 00:44:59,580 No, sme začali písať programy. 1100 00:44:59,580 --> 00:45:02,260 A pamätáte z minulého týždňa, že všetko, čo má napísať 1101 00:45:02,260 --> 00:45:04,970 Program je jednoduchý textový editor, 1102 00:45:04,970 --> 00:45:06,550 ako je Poznámkový blok alebo TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Úprimne povedané, môžete si dokonca používať aplikáciu Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Ale zlé veci sa nakoniec stane, pretože to je veľmi 1105 00:45:11,170 --> 00:45:13,930 ťažkopádna riešenie pre písanie programu, plus to bude 1106 00:45:13,930 --> 00:45:15,400 uložiť v zlom formáte. 1107 00:45:15,400 --> 00:45:18,150 Ale je to len textový editor, textový procesor, je všetko, čo je 1108 00:45:18,150 --> 00:45:19,390 potreboval napísať program. 1109 00:45:19,390 --> 00:45:23,420 >> Takže v CS50 Appliance, môžeme to urobiť v jednom jednoduchým spôsobom. 1110 00:45:23,420 --> 00:45:25,580 Môžeme stačí kliknúť na túto ikonu v ľavom dolnom rohu. 1111 00:45:25,580 --> 00:45:28,790 A opäť, problém nastaviť 1 vám poradia o tom, a je to tu - 1112 00:45:28,790 --> 00:45:31,210 si stiahni čierna a biela rozhranie, kde môžeme začať 1113 00:45:31,210 --> 00:45:32,160 písania kódu. 1114 00:45:32,160 --> 00:45:34,960 Tak poďme začať písať super jednoduchý program znovu. 1115 00:45:34,960 --> 00:45:38,890 Chystám sa ísť do Súbor, Uložiť, a budem volať 1116 00:45:38,890 --> 00:45:42,870 to, povedzme, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 A ja len hovorím, kliknutím na jharvard, vložte ju 1118 00:45:45,410 --> 00:45:46,750 vo svojom domovskom adresári, ja naozaj nestarám 1119 00:45:46,750 --> 00:45:47,980 pokiaľ ide človek. 1120 00:45:47,980 --> 00:45:49,090 A potom na Uložiť. 1121 00:45:49,090 --> 00:45:50,880 A teraz môžem začať písať môj program. 1122 00:45:50,880 --> 00:45:53,560 A spomínam z predchádzajúcich, že musím písať int 1123 00:45:53,560 --> 00:45:55,400 main (void). 1124 00:45:55,400 --> 00:45:57,000 Zväčšenie na v ľavom hornom rohu. 1125 00:45:57,000 --> 00:46:02,670 A potom chcem povedať printf, vziať dva. 1126 00:46:02,670 --> 00:46:05,690 A teraz nový riadok, úzkym citácie, zatvorte 1127 00:46:05,690 --> 00:46:07,820 zátvorky, bodkočiarkami. 1128 00:46:07,820 --> 00:46:10,560 A potom idem sem do môjho okna terminálu, ktorý je 1129 00:46:10,560 --> 00:46:12,840 zakotvené v gedit, len pre pohodlie. 1130 00:46:12,840 --> 00:46:15,200 A ja idem ďalej a písať, aby ahoj, ale nie 1131 00:46:15,200 --> 00:46:17,500 ahoj sám, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Takže môj súbor sa volá hello2.c. Môj súbor sa preto 1133 00:46:20,490 --> 00:46:23,510 by mal byť volaný hello2, v tomto prípade. 1134 00:46:23,510 --> 00:46:26,490 Sakra, čo som urobil zle? 1135 00:46:26,490 --> 00:46:29,490 Dobre, tak som jasne vynechaný riadok, ak si spomínate, čo 1136 00:46:29,490 --> 00:46:31,020 predchádzajúce programy vyzerať. 1137 00:46:31,020 --> 00:46:32,480 Ale uvidíme, či sa nám podarí Nehnevaj to od seba. 1138 00:46:32,480 --> 00:46:35,310 Bohužiaľ, väčšina ľudí, ktorí píšu programy, s ktorými 1139 00:46:35,310 --> 00:46:38,820 píšeme programy nie sú zjednodušiť veci tak dobre. 1140 00:46:38,820 --> 00:46:41,520 Takže musíme trochu kĺzať cez to, čo nie je úplne, aby 1141 00:46:41,520 --> 00:46:44,050 vnímať tu a uvidíme, či môžeme prísť na to, čo sa deje. 1142 00:46:44,050 --> 00:46:46,700 Úplne prvá linka tam hovorí, že implicitne vyhlásil C 1143 00:46:46,700 --> 00:46:49,310 knižničný funkcie printf s typom int. 1144 00:46:49,310 --> 00:46:51,210 OK, som pochopil, že časť. 1145 00:46:51,210 --> 00:46:54,570 Ale zdá sa, že naráža na skutočnosť, že som použil printf 1146 00:46:54,570 --> 00:46:55,700 zle, nejako. 1147 00:46:55,700 --> 00:46:56,930 A aký zmysel má to zle? 1148 00:46:56,930 --> 00:46:59,970 Len som sa učiť, že počítač je v súbore 1149 00:46:59,970 --> 00:47:01,420 volal stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Teraz mám iba len pamätať, že teraz printf je 1151 00:47:04,120 --> 00:47:06,540 v stdio.h, a naozaj tam bude iné 1152 00:47:06,540 --> 00:47:08,900 funkcia v tomto rovnakom súbore, ktorý budeme zvyknúť. 1153 00:47:08,900 --> 00:47:12,490 >> Takže teraz ma nechaj ísť dopredu a udrel Ctrl-L len jasné, že 1154 00:47:12,490 --> 00:47:16,050 preč, spustite robiť hello2, a voila. 1155 00:47:16,050 --> 00:47:19,490 A tento príkaz znova, zložitejšie, než budeme vysvetlí 1156 00:47:19,490 --> 00:47:20,520 dnešnej účely. 1157 00:47:20,520 --> 00:47:23,570 Ale to bežať rinčanie, a rinčanie vezme zdrojový kód a 1158 00:47:23,570 --> 00:47:24,870 vypľuje 0s a 1s. 1159 00:47:24,870 --> 00:47:28,610 A tí 0s a 1s v tomto prípade sa nazýva to, čo? 1160 00:47:28,610 --> 00:47:29,470 Dobre, objektového kódu. 1161 00:47:29,470 --> 00:47:32,210 A súbor, ktorý sú v sa nazýva, tak, 1162 00:47:32,210 --> 00:47:33,820 hello2, v tomto prípade. 1163 00:47:33,820 --> 00:47:37,040 Vzhľadom k tomu, môj text bol súbor hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 A teraz som vziať dva výkričník, výkričník 1165 00:47:39,820 --> 00:47:41,880 bod, výkričník. 1166 00:47:41,880 --> 00:47:45,430 Dobre, takže máme teraz možnosť získať reťazca, 1167 00:47:45,430 --> 00:47:46,280 zrejme. 1168 00:47:46,280 --> 00:47:48,190 No, čo iné máme od užívateľov? 1169 00:47:48,190 --> 00:47:51,010 >> No v CS50 knižnici, je tu ďalšie funkcie, ktoré 1170 00:47:51,010 --> 00:47:53,300 budú zjednodušiť náš život v týchto prvých dňoch. 1171 00:47:53,300 --> 00:47:56,350 GetChar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Dobre, poďme trhať off najjednoduchšie z nich ako prvý. 1174 00:47:59,550 --> 00:48:01,430 GetString doslova robí, že. 1175 00:48:01,430 --> 00:48:04,210 Proste tam sedí a čaká, až užívateľ niečo písať v, 1176 00:48:04,210 --> 00:48:07,170 a akonáhle som niečo písať v a stlačte klávesu Enter, to 1177 00:48:07,170 --> 00:48:08,860 robí niečo s touto hodnotou. 1178 00:48:08,860 --> 00:48:11,700 Takže sa vráťme k tomuto príkladu vidieť presne to, čo 1179 00:48:11,700 --> 00:48:12,950 GetString robil. 1180 00:48:12,950 --> 00:48:17,445 Nechaj ma ísť napred a otvoriť v gedit, hello.c, a pripomenúť 1181 00:48:17,445 --> 00:48:20,590 že tesne pred prestávkou, to je miesto, kde sme skončili. 1182 00:48:20,590 --> 00:48:23,240 >> Takže poďme sa teraz dráždiť Tento aparthotel v trochu podrobnejšie. 1183 00:48:23,240 --> 00:48:27,190 Takže na linke 6, sú dve veci, 1184 00:48:27,190 --> 00:48:28,450 deje v súčasnej dobe. 1185 00:48:28,450 --> 00:48:32,630 Znamienko rovná sa oddelí prvú polovicu a druhá polovica. 1186 00:48:32,630 --> 00:48:34,670 Takže na ľavej strane rovná sa, sme 1187 00:48:34,670 --> 00:48:35,580 hovorí string s 1188 00:48:35,580 --> 00:48:37,580 A potom, len laicky povedané, to, čo je string s 1189 00:48:37,580 --> 00:48:41,040 robiť, myslíte? 1190 00:48:41,040 --> 00:48:42,990 Je to vytvorenie čo? 1191 00:48:42,990 --> 00:48:44,930 Takže to vytvára reťazec s názvom s 1192 00:48:44,930 --> 00:48:46,370 Teraz, čo to vlastne znamená? 1193 00:48:46,370 --> 00:48:51,540 No, je to rezervovať priestor pre reťazec s názvom s 1194 00:48:51,540 --> 00:48:52,490 To nie je úplne v poriadku. 1195 00:48:52,490 --> 00:48:53,120 Čo je to robíš? 1196 00:48:53,120 --> 00:48:55,400 No počítačov, ako viete, majú pevné disky, ktoré tam 1197 00:48:55,400 --> 00:48:56,300 vaše súbory sú uložené. 1198 00:48:56,300 --> 00:48:59,100 Počítače majú RAM, a to je miesto, kde sú nahraté programy 1199 00:48:59,100 --> 00:49:00,240 zatiaľ čo oni sú spustené. 1200 00:49:00,240 --> 00:49:02,470 Takže, keď dvakrát kliknete na ikonu a Microsoft Word otvorí 1201 00:49:02,470 --> 00:49:06,380 up, Microsoft Word beží, tak povediac, v pamäti RAM, ktorá je 1202 00:49:06,380 --> 00:49:08,160 elektronická časť vášho počítača. 1203 00:49:08,160 --> 00:49:10,660 Nie fyzické, mechanické časti, ktoré sa točia, kde 1204 00:49:10,660 --> 00:49:12,640 Dáta sú všeobecne uložené dlhodobo. 1205 00:49:12,640 --> 00:49:15,810 Takže string s je celkom veľa hovorí, že počítač mi dal 1206 00:49:15,810 --> 00:49:18,150 dostatok pamäte RAM, aby sa zmestili reťazec. 1207 00:49:18,150 --> 00:49:20,450 Tak to je trochu oversimplification, pretože 1208 00:49:20,450 --> 00:49:22,300 aký veľký je reťazec bude? 1209 00:49:22,300 --> 00:49:24,410 Tak sme vlastne ešte nevieme, tak v najbližších týždňoch 1210 00:49:24,410 --> 00:49:27,290 budeme skutočne zatiahnite vrstvu, ktorá je reťazec a 1211 00:49:27,290 --> 00:49:28,510 budeme ti, čo to naozaj je. 1212 00:49:28,510 --> 00:49:31,050 String, teraz, je len pekná zjednodušenie nášho sveta. 1213 00:49:31,050 --> 00:49:35,700 Ale string s deklaruje reťazec s názvom s, pre teraz. 1214 00:49:35,700 --> 00:49:36,520 Deklaruje reťazec. 1215 00:49:36,520 --> 00:49:39,310 To si vyhradzuje nejaký priestor v pamäti RAM pre reťazec je užívateľ 1216 00:49:39,310 --> 00:49:40,150 o typu. 1217 00:49:40,150 --> 00:49:41,840 >> Teraz sa poďme pozrieť na pravej strane rovná sa. 1218 00:49:41,840 --> 00:49:44,110 Tak to hovorí GetString (). 1219 00:49:44,110 --> 00:49:45,070 A trochu rozumu kontrolu. 1220 00:49:45,070 --> 00:49:47,940 Skutočnosť, že nie je nič, čo vo vnútri zátvoriek 1221 00:49:47,940 --> 00:49:50,810 znamená, čo o GetString? 1222 00:49:50,810 --> 00:49:52,180 To trvá žiadne argumenty. 1223 00:49:52,180 --> 00:49:55,290 To znamená, že nemôžete ovplyvniť jeho správanie v žiadnom prípade. 1224 00:49:55,290 --> 00:49:58,940 Zakaždým, keď budete používať, bude to dostať reťazec a je to. 1225 00:49:58,940 --> 00:50:02,210 Naopak, printf, dúfajme, že jej správanie sa 1226 00:50:02,210 --> 00:50:03,010 meniť pri každom. 1227 00:50:03,010 --> 00:50:05,230 Inak je to celkom k ničomu funkcie tlače, ak 1228 00:50:05,230 --> 00:50:06,480 to robí to isté. 1229 00:50:06,480 --> 00:50:07,970 Ak sa vždy vytlačí David, alebo tak niečo 1230 00:50:07,970 --> 00:50:09,500 ľubovoľná celú dobu. 1231 00:50:09,500 --> 00:50:11,540 Takže printf zmysel mať argument. 1232 00:50:11,540 --> 00:50:14,240 GetString nie je naozaj nutné argument, pretože som chcela 1233 00:50:14,240 --> 00:50:16,700 k získaniu reťazca od užívateľa a je to používateľ, ktorý sa deje 1234 00:50:16,700 --> 00:50:19,580 dodať dynamiku zadaním jednotlivých písmen 1235 00:50:19,580 --> 00:50:20,850 zakaždým, keď na klávesnici. 1236 00:50:20,850 --> 00:50:23,140 >> Tak čo GetString sa nakoniec? 1237 00:50:23,140 --> 00:50:25,080 Myslite na to, ako tento malý čierny box. 1238 00:50:25,080 --> 00:50:29,340 A to čierna skrinka má žiadny vstup, ale keď budete bang na 1239 00:50:29,340 --> 00:50:33,240 to, že vypľuje reťazec, ktorý užívateľ zadal palcov 1240 00:50:33,240 --> 00:50:36,660 A skutočnosť, že je znamienko rovná sa tam znamená prijať 1241 00:50:36,660 --> 00:50:39,890 čo je vypľuť na pravej strane a uložiť ho dovnútra 1242 00:50:39,890 --> 00:50:41,390 čo je na ľavej strane. 1243 00:50:41,390 --> 00:50:43,470 Tak znamienko rovná sa tu, to skutočne neznamená 1244 00:50:43,470 --> 00:50:46,490 rovnosti, ale skôr technicky znamená priradenie. 1245 00:50:46,490 --> 00:50:49,330 Vezmite hodnotu na pravej strane, a vložte ho do 1246 00:50:49,330 --> 00:50:51,050 premenná na ľavej strane. 1247 00:50:51,050 --> 00:50:52,820 Tak to je všetko, čo sa tam deje. 1248 00:50:52,820 --> 00:50:55,640 >> Teraz v riadku 7, voláme printf. 1249 00:50:55,640 --> 00:50:58,170 Takže dúfajme, že printf je stále trochu nudný teraz. 1250 00:50:58,170 --> 00:50:59,530 Takže vytlačiť formátovaný reťazec. 1251 00:50:59,530 --> 00:51:00,440 Čo string? 1252 00:51:00,440 --> 00:51:05,460 Vytlačiť, "h-e-l-l-o,% s 1253 00:51:05,460 --> 00:51:07,840 ! \ N ". 1254 00:51:07,840 --> 00:51:10,470 Dobre, tak čo chcem plug-in pre% s? 1255 00:51:10,470 --> 00:51:12,960 Doslova, že bez ohľadu na uložené v §. 1256 00:51:12,960 --> 00:51:15,570 Takže v tomto prípade, málo rozumu kontrola, koľko argumentov sa 1257 00:51:15,570 --> 00:51:16,820 printf trvať? 1258 00:51:19,860 --> 00:51:21,110 Dobre, som počul. 1259 00:51:23,840 --> 00:51:26,330 Počul som, že raz zase. 1260 00:51:26,330 --> 00:51:27,730 Dva, počul som dva. 1261 00:51:27,730 --> 00:51:29,920 A ako asi tri? 1262 00:51:29,920 --> 00:51:30,450 Dobre, tri? 1263 00:51:30,450 --> 00:51:30,930 Vynikajúce. 1264 00:51:30,930 --> 00:51:33,170 Tri možné odpovede, iba jedna z nich je správna. 1265 00:51:33,170 --> 00:51:36,390 Takže argumenty opäť ovplyvňujú správanie funkcie. 1266 00:51:36,390 --> 00:51:39,380 V minulosti, printf sa len vziať jeden argument. 1267 00:51:39,380 --> 00:51:42,260 "Hello world" bol jediný argument. 1268 00:51:42,260 --> 00:51:45,190 Avšak, teraz si všimnite, kde to je čiarka. 1269 00:51:45,190 --> 00:51:49,600 Táto čiarka je mimo citácie / unquote, čo znamená, že 1270 00:51:49,600 --> 00:51:52,170 hey printf, tu je druhý argument. 1271 00:51:52,170 --> 00:51:54,240 >> Takže čiarky vo väčšine programovacích jazykov 1272 00:51:54,240 --> 00:51:57,300 samostatné viac argumenty. 1273 00:51:57,300 --> 00:51:59,600 Takže odpoveď je tu rozhodne nie je jedno, pretože 1274 00:51:59,600 --> 00:52:00,390 je to čiarka. 1275 00:52:00,390 --> 00:52:03,680 Takže minimálne, printf je zrejme až dve 1276 00:52:03,680 --> 00:52:04,940 argumenty tentoraz. 1277 00:52:04,940 --> 00:52:07,050 Ale príležitosť pre chyták tu je to, čo 1278 00:52:07,050 --> 00:52:07,990 o tomto čiarkou? 1279 00:52:07,990 --> 00:52:11,260 Znamená to neznamená, že je to vlastne tri argumenty? 1280 00:52:11,260 --> 00:52:13,820 Tento, táto, a to. 1281 00:52:13,820 --> 00:52:18,820 Takže nie, pretože to je čiarka vnútri úvodzoviek, ktoré 1282 00:52:18,820 --> 00:52:20,890 znamená, že je naozaj len estetickú angličtiny. 1283 00:52:20,890 --> 00:52:23,180 To nemá nič spoločné s počtom 1284 00:52:23,180 --> 00:52:24,890 Argumenty v tomto programe. 1285 00:52:24,890 --> 00:52:27,670 Tak toto je čiarka mimo úvodzoviek. 1286 00:52:27,670 --> 00:52:28,850 A potom sa vrátiť 0. 1287 00:52:28,850 --> 00:52:30,980 Pre teraz poďme proste tak nejako si túto na viere 1288 00:52:30,980 --> 00:52:34,460 dnes, a len viem, že keď sa vykonáva funkciou vykonávanie 1289 00:52:34,460 --> 00:52:37,950 riadkov kódu, by mali všeobecne vracia nejakú hodnotu. 1290 00:52:37,950 --> 00:52:42,010 V tomto prípade, práve preto, hlavné musí vracať int, 1291 00:52:42,010 --> 00:52:44,320 že je to len spôsob, akým jazyk C pracuje. 1292 00:52:44,320 --> 00:52:47,040 >> Takže preto, že nič pokazilo, sa cíti ako tento program je 1293 00:52:47,040 --> 00:52:49,960 v poriadku, som pevný kódované na oplátku 0. 1294 00:52:49,960 --> 00:52:52,980 Ale na rozdiel od, a budem písať to v pseudokódu 1295 00:52:52,980 --> 00:52:55,020 Teraz, rovnako ako Joseph, keď sme robili ponožku 1296 00:52:55,020 --> 00:52:56,220 Príkladom minulý týždeň. 1297 00:52:56,220 --> 00:53:00,440 Ak sa niečo pokazilo - to nie je skutočný kód - šiel 1298 00:53:00,440 --> 00:53:06,570 zle, potom sa vrátiť, povedzme, 1. 1299 00:53:06,570 --> 00:53:08,770 Else vráti 0. 1300 00:53:08,770 --> 00:53:10,070 Takže toto je miesto, kde budeme s tým. 1301 00:53:10,070 --> 00:53:12,090 To nie je skutočná C kód, rovnako pseudokód. 1302 00:53:12,090 --> 00:53:14,010 Ale to je, ako sa môže vrátiť 1303 00:53:14,010 --> 00:53:15,580 rôzne možné hodnoty. 1304 00:53:15,580 --> 00:53:19,520 Ale teraz som len ísť ďalej a vrátiť sa 0. 1305 00:53:19,520 --> 00:53:24,410 Dobre, nejaké otázky tak ďaleko na syntax, funkčnosti, 1306 00:53:24,410 --> 00:53:25,000 alebo je? 1307 00:53:25,000 --> 00:53:26,280 Jo, vzadu. 1308 00:53:26,280 --> 00:53:27,530 >> PUBLIKUM: [Nepočuteľné] 1309 00:53:30,510 --> 00:53:32,210 DAVID Malan: Môžeš hovoriť trochu hlasnejšie? 1310 00:53:32,210 --> 00:53:34,325 Prečo tento program sa vráti 0, a? 1311 00:53:34,325 --> 00:53:35,575 PUBLIKUM: [Nepočuteľné] 1312 00:53:39,910 --> 00:53:43,450 DAVID Malan: Oh, to preto, že som lenivý, sorry. 1313 00:53:43,450 --> 00:53:48,290 Nie je to dobré akademické odpoveď, vráti 0. 1314 00:53:48,290 --> 00:53:52,690 Môžem druh zachrániť to, tým, že hovorí technicky C, ak hlavný 1315 00:53:52,690 --> 00:53:55,900 nie je výslovne vrátiť hodnotu, bude vrátená 0 1316 00:53:55,900 --> 00:53:57,730 automaticky za vás. 1317 00:53:57,730 --> 00:54:00,290 Čo je pravda, ja nie som len zakrýva. 1318 00:54:00,290 --> 00:54:03,270 Ale, mal som urobil to takto. 1319 00:54:03,270 --> 00:54:05,250 No zaujímavé stánok s jedlom, než je iný ako môj omyl. 1320 00:54:05,250 --> 00:54:06,170 Jo? 1321 00:54:06,170 --> 00:54:08,470 >> PUBLIKUM: Zvyčajne, keď zadáte do prázdna, to znamená, že vám 1322 00:54:08,470 --> 00:54:10,770 nevracia niečo. 1323 00:54:10,770 --> 00:54:11,420 DAVID Malan: Správne. 1324 00:54:11,420 --> 00:54:15,800 Ak namiesto toho, zadáte pred meno funkcie, pre 1325 00:54:15,800 --> 00:54:18,590 inštancie tu, void, potom funkcia 1326 00:54:18,590 --> 00:54:20,480 nič nevracia. 1327 00:54:20,480 --> 00:54:25,210 A preto by som len povedať, návrat alebo vôbec nič, 1328 00:54:25,210 --> 00:54:26,730 a že by bolo v súlade. 1329 00:54:26,730 --> 00:54:27,750 A vrátime sa, že. 1330 00:54:27,750 --> 00:54:31,030 A práve FYI, jeden z úlovkov s učenia 1331 00:54:31,030 --> 00:54:33,450 programovanie vo svete, ktorý má stovky kníh a 1332 00:54:33,450 --> 00:54:36,180 stovky webových stránok tam je budete vždy 1333 00:54:36,180 --> 00:54:38,220 pozri odlišnú syntax v rôznych knihách 1334 00:54:38,220 --> 00:54:40,220 rôznymi ľuďmi. 1335 00:54:40,220 --> 00:54:42,100 Uvedomte si, my sa budeme snažiť v oddieloch a prednášok sa 1336 00:54:42,100 --> 00:54:42,960 konzistentné. 1337 00:54:42,960 --> 00:54:46,660 Ale niekedy uvidíte protichodné syntax. 1338 00:54:46,660 --> 00:54:48,540 Takže ak ste na pochybách, opýtajte sa. 1339 00:54:48,540 --> 00:54:51,100 A všeobecne, postaráme sa na prednáškach a profilov na 1340 00:54:51,100 --> 00:54:53,710 takmer vždy prezentovať správnym spôsobom. 1341 00:54:53,710 --> 00:54:56,070 A ja hovorím takmer vždy, pretože prípad v bode. 1342 00:54:56,070 --> 00:54:56,860 Ďalšie otázky? 1343 00:54:56,860 --> 00:55:01,590 >> PUBLIKUM: Má% s existuje mimo zariadenia? 1344 00:55:01,590 --> 00:55:03,710 DAVID Malan: Má% s existuje mimo zariadenia? 1345 00:55:03,710 --> 00:55:04,180 Áno. 1346 00:55:04,180 --> 00:55:07,760 Takže% s má čo do činenia s C. Skutočnosť, že sme sa používať to v 1347 00:55:07,760 --> 00:55:10,290 Prístroj zásadne nemá nič do činenia s 1348 00:55:10,290 --> 00:55:12,080 vlastnosti jazyka, ktorý používame. 1349 00:55:12,080 --> 00:55:15,990 Naozaj, minulý týždeň, kedy sme použili môj Mac, som napísal 1350 00:55:15,990 --> 00:55:17,160 C kód na mojom Macu. 1351 00:55:17,160 --> 00:55:20,020 Mohol som použiť% s na mojom Macu, a tie by mohli použiť na 1352 00:55:20,020 --> 00:55:22,400 počítače so systémom Windows, ak nainštalujete prekladač, ako je 1353 00:55:22,400 --> 00:55:24,070 Visual Studio od spoločnosti Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Takže% s 1355 00:55:24,990 --> 00:55:27,860 Všetko robíme vo vnútri tohto okna dnes musí 1356 00:55:27,860 --> 00:55:31,140 čo robiť s C. A zásadne nič do činenia s 1357 00:55:31,140 --> 00:55:33,450 operačný systém v pochybnosť. 1358 00:55:33,450 --> 00:55:35,900 Naopak, čierna a biela okno terminálu - ak 1359 00:55:35,900 --> 00:55:40,160 Píšem veci, ako ls, a rm, a cd - 1360 00:55:40,160 --> 00:55:42,020 ktoré má čo do činenia s operačným systémom a 1361 00:55:42,020 --> 00:55:43,562 navigácia v okolí. 1362 00:55:43,562 --> 00:55:44,546 Jo. 1363 00:55:44,546 --> 00:55:46,520 PUBLIKUM: Myslel som knižnicu, CS50 knižnicu. 1364 00:55:46,520 --> 00:55:49,960 DAVID Malan: Dobre, takže ak máte na mysli kľúčové slovo reťazec, ktorý 1365 00:55:49,960 --> 00:55:52,460 existuje iba v CS50 knižnici, správne. 1366 00:55:52,460 --> 00:55:55,350 To neexistuje v C sám, a naozaj za pár 1367 00:55:55,350 --> 00:55:58,220 týždňov budeme vyhodiť CS50 knižnice a začať 1368 00:55:58,220 --> 00:56:02,290 robiť veci od nuly sami, aby som tak povedal. 1369 00:56:02,290 --> 00:56:02,940 Ďalšie otázky? 1370 00:56:02,940 --> 00:56:04,577 Jo. 1371 00:56:04,577 --> 00:56:05,827 >> PUBLIKUM: [Nepočuteľné] 1372 00:56:09,470 --> 00:56:10,160 DAVID Malan: Dobrá otázka. 1373 00:56:10,160 --> 00:56:11,720 Sú príkazy malé a veľké písmená? 1374 00:56:11,720 --> 00:56:13,710 A dovoľte mi, aby som rozdiel tu. 1375 00:56:13,710 --> 00:56:15,840 Takže príkazy sú všeobecne veci, ktoré sme si napísať na 1376 00:56:15,840 --> 00:56:17,940 spodnej časti okna, v terminálovom okne. 1377 00:56:17,940 --> 00:56:21,770 Čokoľvek tu by vyhlásenie alebo C kód. 1378 00:56:21,770 --> 00:56:24,490 Ale v oboch prípadoch, odpoveď je rovnaká, áno. 1379 00:56:24,490 --> 00:56:27,800 Oba tieto prostredie, kód C v hornej a 1380 00:56:27,800 --> 00:56:29,910 operačný systém príkazového riadku na 1381 00:56:29,910 --> 00:56:31,440 dno, veľké a malé písmená. 1382 00:56:31,440 --> 00:56:33,830 Takže musíte aktivovať GetString s kapitálovou G, 1383 00:56:33,830 --> 00:56:37,050 kapitálu S. Musíte napísať printf vo všetkých malými písmenami. 1384 00:56:37,050 --> 00:56:39,520 Musíte zadať ls vo všetkých malými písmenami. 1385 00:56:39,520 --> 00:56:43,260 Takže v takmer každej situácii tento semester, prípad bude, v 1386 00:56:43,260 --> 00:56:44,820 Skutočnosť, záležitosť. 1387 00:56:44,820 --> 00:56:46,148 Áno. 1388 00:56:46,148 --> 00:56:47,398 >> PUBLIKUM: [Nepočuteľné] 1389 00:56:54,770 --> 00:56:56,480 DAVID Malan: Aha, tak dobre, čo keby sme mali súbor 1390 00:56:56,480 --> 00:56:57,840 volal hello.d. 1391 00:56:57,840 --> 00:57:00,090 Tak to dopadá D je programovací jazyk. 1392 00:57:00,090 --> 00:57:02,790 A tak v niektorých prípadoch, mohli by sme vlastne napísať program v 1393 00:57:02,790 --> 00:57:06,190 tento súbor a mať to zostavené v tomto móde. 1394 00:57:06,190 --> 00:57:09,090 Môžeme a vlastne, krátka odpoveď je, neviem. 1395 00:57:09,090 --> 00:57:10,440 Takže budeme robiť to. 1396 00:57:10,440 --> 00:57:13,040 Nechaj ma ísť ďalej a vytvoriť nový súbor. 1397 00:57:13,040 --> 00:57:15,580 A spin tu, úprimne všeobecne, je vždy nejaká pochybnosť 1398 00:57:15,580 --> 00:57:18,130 tento semester, a máte prístroj alebo počítač 1399 00:57:18,130 --> 00:57:20,030 otvoriť, choďte do toho a vyskúšať niečo. 1400 00:57:20,030 --> 00:57:23,740 Takže budem uložiť súbor s názvom hello.d. 1401 00:57:23,740 --> 00:57:25,010 Uložiť. 1402 00:57:25,010 --> 00:57:29,070 A budem bežať, aby ahoj Enter. 1403 00:57:29,070 --> 00:57:31,660 Zdalo sa vyvodiť, že c je viac pravdepodobné, 1404 00:57:31,660 --> 00:57:35,920 ako d, v tomto prípade. 1405 00:57:35,920 --> 00:57:38,046 Ďalšie otázky. 1406 00:57:38,046 --> 00:57:40,456 Jo. 1407 00:57:40,456 --> 00:57:41,706 >> PUBLIKUM: [Nepočuteľné] 1408 00:57:48,170 --> 00:57:49,837 DAVID Malan: Dobre, povedzme, že ešte raz. 1409 00:57:49,837 --> 00:57:51,087 PUBLIKUM: [Nepočuteľné] 1410 00:58:04,250 --> 00:58:05,780 DAVID Malan: Ako by sa vám ísť o diagnostiku, ktorá inak 1411 00:58:05,780 --> 00:58:06,380 odstraňovanie že? 1412 00:58:06,380 --> 00:58:08,800 Takže s najväčšou pravdepodobnosťou, pretože sú rôzne jazyky, 1413 00:58:08,800 --> 00:58:10,280 s najväčšou pravdepodobnosťou by ste si úplne 1414 00:58:10,280 --> 00:58:11,580 iný program na výstupe. 1415 00:58:11,580 --> 00:58:14,140 Tie by sa úplne rôzne chybové správy. 1416 00:58:14,140 --> 00:58:16,750 A tiež len z hľadiska dizajnu, to by pravdepodobne byť 1417 00:58:16,750 --> 00:58:19,140 zlý tvar rozhodnutie bude písať dva rôzne 1418 00:58:19,140 --> 00:58:21,510 jazyky s takmer identicky pomenované súbory, v 1419 00:58:21,510 --> 00:58:23,000 presne rovnaký adresár, pomocou 1420 00:58:23,000 --> 00:58:24,550 automatické nástroje ako make. 1421 00:58:24,550 --> 00:58:27,750 Tak som si tiež tlačiť späť a povedať: za 15 rokov, čo robíme, 1422 00:58:27,750 --> 00:58:29,190 nikdy takú chybu. 1423 00:58:29,190 --> 00:58:30,030 By sa mohlo stať. 1424 00:58:30,030 --> 00:58:31,190 Ale je to len rôzne, myslím, 1425 00:58:31,190 --> 00:58:33,180 logistické obrana na mieste. 1426 00:58:33,180 --> 00:58:35,440 Plus sa zobrazujú chybové správy, ktoré by hradila, ktoré by 1427 00:58:35,440 --> 00:58:37,260 nakoniec odhalí, čo je problém. 1428 00:58:37,260 --> 00:58:39,120 Ale možno kútik prípad. 1429 00:58:39,120 --> 00:58:41,730 >> Dobre, tak poďme predstaviť len pár ďalších 1430 00:58:41,730 --> 00:58:45,600 Funkcia tu, tak môžeme začať budovať do viac 1431 00:58:45,600 --> 00:58:47,140 a zložitejšie program. 1432 00:58:47,140 --> 00:58:49,000 Takže v prvom rade, matematika. 1433 00:58:49,000 --> 00:58:51,520 Tak matematické príklady sú len tak ľahko v priebehu prvého týždňa. 1434 00:58:51,520 --> 00:58:53,560 To neznamená, že všetky programovanie je o 1435 00:58:53,560 --> 00:58:54,390 matematika. 1436 00:58:54,390 --> 00:58:57,890 Iste, pochopenie rôznych funkcií 1437 00:58:57,890 --> 00:58:59,610 matematiky, algebra je najmä 1438 00:58:59,610 --> 00:59:00,330 celkom relevantné. 1439 00:59:00,330 --> 00:59:03,010 Vo vyšších úrovní tried SK, lineárna algebra, 1440 00:59:03,010 --> 00:59:03,920 počet, a podobne. 1441 00:59:03,920 --> 00:59:06,500 Ale uvedomte si, väčšina z toho, čo budeme robiť tento semester znižuje nie je 1442 00:59:06,500 --> 00:59:09,230 do matematiky, a určite nie na aritmetike, na sebe, ale naozaj 1443 00:59:09,230 --> 00:59:11,570 len na logike a starostlivému myslenia. 1444 00:59:11,570 --> 00:59:14,310 A tak toto prepojenie, aby počítačová veda už dlho, 1445 00:59:14,310 --> 00:59:16,570 najmä na stredoškolskej úrovni, s matematiky, je 1446 00:59:16,570 --> 00:59:17,370 trochu zavádzajúce. 1447 00:59:17,370 --> 00:59:20,090 Pretože väčšina programov, ktoré budeme písať, naozaj, sú 1448 00:59:20,090 --> 00:59:23,290 druh vyššej úrovne a zamerania na riešenie problémov, ktoré 1449 00:59:23,290 --> 00:59:26,410 Iste, môže použiť nejaký sčítanie, odčítanie, a rôzne 1450 00:59:26,410 --> 00:59:28,650 matematické vzorce alebo podobné výrobky, 1451 00:59:28,650 --> 00:59:30,860 ale na konci dňa, je to o myslení a nie 1452 00:59:30,860 --> 00:59:33,240 Len realizuje to, čo si mohol urobiť na ako TI 1453 00:59:33,240 --> 00:59:35,050 Kalkulačka na strednej škole. 1454 00:59:35,050 --> 00:59:38,410 >> Takže s tým povedal, poďme sa teraz niečo urobiť s týmito 1455 00:59:38,410 --> 00:59:40,980 matematické operátory, ktoré existujú, takže môžeme výlet 1456 00:59:40,980 --> 00:59:43,950 cez niektoré základné aspekty programovania, alebo v 1457 00:59:43,950 --> 00:59:48,930 V tomto prípade C. Takže tam sú, ako CS50 knižnica navrhol, 1458 00:59:48,930 --> 00:59:51,520 a dnes sme iba pomocou GetString - a za chvíľu 1459 00:59:51,520 --> 00:59:52,940 možno jeden ďalšie funkcie - 1460 00:59:52,940 --> 00:59:55,380 ale existujú rôzne typy dát v počítači. 1461 00:59:55,380 --> 00:59:58,550 Na konci dňa, počítače len to 0 a 1. 1462 00:59:58,550 --> 01:00:01,880 Ale spomínam, že minulý týždeň sme hovorili o dvojkovej sústave 1463 01:00:01,880 --> 01:00:05,000 v reprezentujúce čísla, ako je číslo 0, a 1, a 2, 1464 01:00:05,000 --> 01:00:07,480 úplne až na 8, ako je v videa Nate. 1465 01:00:07,480 --> 01:00:08,840 A potom môžeme počítať oveľa vyšší, ako sme 1466 01:00:08,840 --> 01:00:10,000 robil na javisku tu. 1467 01:00:10,000 --> 01:00:15,660 Ale ak chcete reprezentovať nielen čísla, ale písmená, 1468 01:00:15,660 --> 01:00:18,240 my, ľudia, musí prísť s nejakým svojvoľné 1469 01:00:18,240 --> 01:00:21,180 konvencie, pričom ak na konci dňa po celý počítač 1470 01:00:21,180 --> 01:00:24,260 sa je schopnosť vyjadrovať 0s a 1s, dobre my by sme lepšie 1471 01:00:24,260 --> 01:00:27,990 kto štandardizácia vzory 0s a 1s, ktoré predstavujú 1472 01:00:27,990 --> 01:00:28,800 rôzne veci. 1473 01:00:28,800 --> 01:00:32,370 Vzor 0s a 1s, ktoré predstavuje písmeno je. 1474 01:00:32,370 --> 01:00:34,840 Vzory 0s a 1s, ktoré predstavujú písmeno Z. 1475 01:00:34,840 --> 01:00:37,600 Vzory 0s a 1s, ktoré predstavujú modrú farbu, alebo 1476 01:00:37,600 --> 01:00:38,600 červená, alebo podobne. 1477 01:00:38,600 --> 01:00:42,360 Musíme použiť všetky tieto 0s a 1s vyjadriť sami seba v 1478 01:00:42,360 --> 01:00:45,140 rôzne kontexty, v rôznych cestách, ktoré nie sú 1479 01:00:45,140 --> 01:00:46,470 nutne číselné. 1480 01:00:46,470 --> 01:00:51,150 >> Takže pokiaľ ide o zastúpenie, C má rôzne dátové typy, 1481 01:00:51,150 --> 01:00:52,550 a my sme videli jeden z nich tak ďaleko. 1482 01:00:52,550 --> 01:00:54,940 Videli sme int, a všimnite si, čo nie je na obrazovke 1483 01:00:54,940 --> 01:00:56,140 teraz je string. 1484 01:00:56,140 --> 01:00:58,550 String nie je, v skutočnosti, existujú v C. Opäť, je to 1485 01:00:58,550 --> 01:01:00,610 zjednodušenie sme prezentáciu pre prvý 1486 01:01:00,610 --> 01:01:01,570 pár týždňov. 1487 01:01:01,570 --> 01:01:03,770 Char je individuálny charakter. 1488 01:01:03,770 --> 01:01:07,050 Plavák je reálne číslo, s desatinnou čiarkou a čísla na 1489 01:01:07,050 --> 01:01:09,066 vľavo a vpravo z nej. 1490 01:01:09,066 --> 01:01:16,040 Double je to, čo, pre tých, ktorí sa späť predchádzajúce pozadie? 1491 01:01:16,040 --> 01:01:19,720 Takže double je dvakrát niečo. 1492 01:01:19,720 --> 01:01:21,240 Pridá dvakrát toľko presnosti. 1493 01:01:21,240 --> 01:01:22,440 Takže čo to znamená? 1494 01:01:22,440 --> 01:01:26,090 Takže v každom z týchto prípadov, svet má akési štandardizované 1495 01:01:26,090 --> 01:01:27,960 tom, koľko bitov sa používajú na reprezentáciu 1496 01:01:27,960 --> 01:01:29,160 každej z týchto vecí. 1497 01:01:29,160 --> 01:01:31,590 Takže ak ste sledovali Nate ASCII videá už časť 1498 01:01:31,590 --> 01:01:36,170 z PSet 0, alebo neskôr tento týždeň budete, budete pravdepodobne vedieť, 1499 01:01:36,170 --> 01:01:37,450 že ASCII - 1500 01:01:37,450 --> 01:01:38,610 znak reprezentácie - 1501 01:01:38,610 --> 01:01:40,670 použiť, koľko bitov? 1502 01:01:40,670 --> 01:01:43,410 A možno dokonca pamätáte z nášho dema minulý týždeň o tom, ako 1503 01:01:43,410 --> 01:01:45,500 veľa ľudí bolo na javisku. 1504 01:01:45,500 --> 01:01:46,840 Takže 7 alebo 8, typicky. 1505 01:01:46,840 --> 01:01:49,230 Takže všeobecne 8, a tam je niečo, čo nazýva, ktorá bola rozšírená 1506 01:01:49,230 --> 01:01:51,240 ASCII, že využíva všetkých 8 bitov, miesto 7. 1507 01:01:51,240 --> 01:01:54,710 Ale všeobecne, hovoríme v mocninách 2, takže v tomto prípade, 8. 1508 01:01:54,710 --> 01:01:58,900 Takže char v programovacom jazyku je zvyčajne 8 bitov. 1509 01:01:58,900 --> 01:02:02,550 Takže int je všeobecne 32 bitov. 1510 01:02:02,550 --> 01:02:04,810 Float je všeobecne 32 bitov. 1511 01:02:04,810 --> 01:02:08,060 Double je všeobecne 64 bitov. 1512 01:02:08,060 --> 01:02:08,870 A čo to znamená? 1513 01:02:08,870 --> 01:02:11,500 To znamená, že môže predstavovať väčšie čísla, alebo v prípade, 1514 01:02:11,500 --> 01:02:15,490 reálnych čísel, môžete mať oveľa viac čísel po 1515 01:02:15,490 --> 01:02:16,240 desatinné miesto. 1516 01:02:16,240 --> 01:02:18,980 Oveľa viac presnosti, v tomto prípade. 1517 01:02:18,980 --> 01:02:21,780 Teraz long long je bohužiaľ vymenoval. 1518 01:02:21,780 --> 01:02:24,340 Takže tam je int, ktorá je 32 bitov. 1519 01:02:24,340 --> 01:02:29,800 Tam je dlhá, ktorá je, nie, 32 bitov. 1520 01:02:29,800 --> 01:02:32,610 A long long, ktorý je 64 bitov. 1521 01:02:32,610 --> 01:02:34,830 Avšak niektoré z nich sú kontextové, záleží 1522 01:02:34,830 --> 01:02:36,190 aké počítača máte. 1523 01:02:36,190 --> 01:02:40,510 Takže všeobecne, budeme špecifikovať v domácich úloh alebo v teste, kedy 1524 01:02:40,510 --> 01:02:41,180 skutočne záleží. 1525 01:02:41,180 --> 01:02:43,080 Ale bod je tam všetky tieto rôzne 1526 01:02:43,080 --> 01:02:44,250 zastúpenie tu. 1527 01:02:44,250 --> 01:02:45,950 >> Takže poďme skutočne ponoriť do programu. 1528 01:02:45,950 --> 01:02:48,300 Skôr než písať tento od nuly, nechaj ma ísť napred 1529 01:02:48,300 --> 01:02:50,940 a otvoriť z dnešného zdrojového kódu - z ktorých všetky sú 1530 01:02:50,940 --> 01:02:54,980 online - Ak sa chcete vŕtal okolo on-line, alebo návrat na 1531 01:02:54,980 --> 01:02:57,120 Stredu s prístrojom na vašom počítači, návod 1532 01:02:57,120 --> 01:02:59,160 pre ktoré bude odkazovať na ihrisku domovskú stránku. 1533 01:02:59,160 --> 01:03:00,830 Tu je super jednoduchý program. 1534 01:03:00,830 --> 01:03:02,520 Ale má to niečo nové na vrchole, ktorý sa 1535 01:03:02,520 --> 01:03:03,650 sme nemali skôr. 1536 01:03:03,650 --> 01:03:05,800 Veľa modrých riadkov textu. 1537 01:03:05,800 --> 01:03:08,410 Takže tieto modrej čiary predstavujú komentáre. 1538 01:03:08,410 --> 01:03:10,620 Takže je to celkom užitočný v programe, aby mohli písať 1539 01:03:10,620 --> 01:03:13,160 niektoré pripomienky pre seba, alebo s kolegami alebo priateľmi, alebo 1540 01:03:13,160 --> 01:03:15,700 výučby chlapi, niečo popísať, čo sa deje v 1541 01:03:15,700 --> 01:03:18,500 tento súbor, ale nemajú nič spoločného s kódom C sám. 1542 01:03:18,500 --> 01:03:20,860 Nič spoločného s programom funkčne, je to len 1543 01:03:20,860 --> 01:03:21,760 estetika. 1544 01:03:21,760 --> 01:03:24,580 Takže ako to urobíte v C je, zvyčajne začínajú svoj 1545 01:03:24,580 --> 01:03:29,860 komentáre / *, a vy skončíte vaše komentáre 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 A ak ste naozaj análny a ako k tomu druh obrázkov, 1548 01:03:34,140 --> 01:03:35,870 potom by som dal veľa hviezd, by ste, aby 1549 01:03:35,870 --> 01:03:36,970 krabička takhle. 1550 01:03:36,970 --> 01:03:37,990 Ale nič z toho záležitostiach. 1551 01:03:37,990 --> 01:03:40,230 Jediná vec, na ktorej záleží, je prvý 1552 01:03:40,230 --> 01:03:41,620 a úplne posledný. 1553 01:03:41,620 --> 01:03:43,820 To je to, čo sa nazýva multi-line komentár. 1554 01:03:43,820 --> 01:03:46,610 A to je len ľudská konvencie často robiť hviezdy a box 1555 01:03:46,610 --> 01:03:48,420 veci v takto, ak máte veľa voľného času. 1556 01:03:48,420 --> 01:03:51,550 >> Takže potom, čo ste napísal v niektorých komentárov, všeobecne, príde 1557 01:03:51,550 --> 01:03:53,160 skutočné vnútornosti programu. 1558 01:03:53,160 --> 01:03:55,630 Tu je náš dobre známy # include . 1559 01:03:55,630 --> 01:04:00,410 A práve rýchla, je to potrebné, alebo nie je potrebné? 1560 01:04:00,410 --> 01:04:02,860 Divákov: Nutné. 1561 01:04:02,860 --> 01:04:04,390 DAVID Malan: Takže je to vlastne nie je nutné. 1562 01:04:04,390 --> 01:04:07,070 Tak prečo, keď je to nie je potrebné? 1563 01:04:07,070 --> 01:04:08,170 Takže nie je printf. 1564 01:04:08,170 --> 01:04:08,510 Naozaj. 1565 01:04:08,510 --> 01:04:10,470 Všetko, čo robíte v tomto programe je matematika. 1566 01:04:10,470 --> 01:04:11,640 Tak som si skutočne zmazať, že. 1567 01:04:11,640 --> 01:04:14,330 Takže nemusíte mať vždy obsahovať vôbec nič 1568 01:04:14,330 --> 01:04:15,420 horná programu. 1569 01:04:15,420 --> 01:04:17,020 >> Tak poďme zjednodušiť tento bit. 1570 01:04:17,020 --> 01:04:18,650 A teraz všimnete, čo tento program robí. 1571 01:04:18,650 --> 01:04:19,920 Nie moc zaujímavé. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 No, čo je to robíš? 1574 01:04:22,550 --> 01:04:25,130 No, myslím, že späť do mentálneho modelu z obdobia pred rokom. 1575 01:04:25,130 --> 01:04:27,500 Na ľavej strane tohto výrazu čo robí? 1576 01:04:31,440 --> 01:04:32,830 Vytvoriť priestor pre celé číslo. 1577 01:04:32,830 --> 01:04:33,930 Tak koľko priestoru? 1578 01:04:33,930 --> 01:04:36,980 No, my náhodou viem teraz, že je to 32 bitov. 1579 01:04:36,980 --> 01:04:40,070 Predtým, reťazec bol technicky 32 bitov, ale viac 1580 01:04:40,070 --> 01:04:40,950 na ktoré v budúcnosti. 1581 01:04:40,950 --> 01:04:42,240 Ale int je 32 bitov. 1582 01:04:42,240 --> 01:04:45,590 Takže tento výraz na ľavej strane tu, int x len hovorí, hey 1583 01:04:45,590 --> 01:04:48,490 operačný systém, daj mi 32 bitov pamäte RAM - 1584 01:04:48,490 --> 01:04:50,450 inak známy ako 4 bajty RAM - 1585 01:04:50,450 --> 01:04:53,930 takže môžem dať celé číslo v tomto priestore. 1586 01:04:53,930 --> 01:04:55,330 Čo integer si chcel dať? 1587 01:04:55,330 --> 01:04:56,640 No, proste číslo 1. 1588 01:04:56,640 --> 01:04:59,530 int y dostane 2, robí presne to isté, aj keď 1589 01:04:59,530 --> 01:05:02,160 číslo je väčšie, pokiaľ ide o ich veľkosti. 1590 01:05:02,160 --> 01:05:04,790 Číslo sám o sebe je stále len 32 bitov. 1591 01:05:04,790 --> 01:05:06,520 Je to len vzor bitov sa líši 1592 01:05:06,520 --> 01:05:08,260 predstavujú 1 oproti 2. 1593 01:05:08,260 --> 01:05:11,980 int z teraz hovorí, že mi ďalších 32 bitov, hovoria z, a dal 1594 01:05:11,980 --> 01:05:14,210 zhrnutie 1 a 2 v tam. 1595 01:05:14,210 --> 01:05:18,050 Takže teraz je pravdepodobne z uloženia hodnoty 3, 1596 01:05:18,050 --> 01:05:19,360 a potom sa vrátiť 0. 1597 01:05:19,360 --> 01:05:23,020 >> Teraz tento program, to robí niečo zaujímavé? 1598 01:05:23,020 --> 01:05:26,170 Takže to vlastne nie je nič zaujímavého, v akejkoľvek 1599 01:05:26,170 --> 01:05:28,450 zmysel, pretože prečo? Je to robiť nejaké matematiky. 1600 01:05:28,450 --> 01:05:30,590 Ale nie je to vracia odpoveď, pravdu. 1601 01:05:30,590 --> 01:05:31,790 Je to vracia 0. 1602 01:05:31,790 --> 01:05:33,440 Je to netlačí odpoveď. 1603 01:05:33,440 --> 01:05:35,760 Takže tento program je v podstate bezcenné, ako to 1604 01:05:35,760 --> 01:05:36,350 stojí teraz. 1605 01:05:36,350 --> 01:05:37,220 To robí nejakú prácu. 1606 01:05:37,220 --> 01:05:39,530 Bude to trvať nejakú dobu v sekundách, alebo mikrosekundy, na 1607 01:05:39,530 --> 01:05:41,510 beží, ale nie je to vlastne robí niečo 1608 01:05:41,510 --> 01:05:42,770 užitočné pre človeka. 1609 01:05:42,770 --> 01:05:46,810 >> Takže poďme vlastne teraz otvoriť math2, kde teraz som vlastne 1610 01:05:46,810 --> 01:05:48,250 tlač výsledok. 1611 01:05:48,250 --> 01:05:51,260 Takže to tiež môže byť odvodená z našich predchádzajúcich príkladov. 1612 01:05:51,260 --> 01:05:54,320 Ak chcem urobiť nejaké jednoduché matematiky, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z je 1 plus 2 teraz. 1614 01:05:56,820 --> 01:05:59,240 Čo je to bude tlačiť samozrejme? 1615 01:05:59,240 --> 01:06:00,120 Len 3. 1616 01:06:00,120 --> 01:06:01,590 Tak rýchlo zdravý rozum skontrolovať. 1617 01:06:01,590 --> 01:06:03,830 Dovoľte mi prejsť do tohto adresára. 1618 01:06:03,830 --> 01:06:06,480 Tak cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Nechaj ma ísť napred a zadajte robiť math2. 1620 01:06:09,370 --> 01:06:11,510 Žiadne chybové správy vyšla, tak mi dovoľte bežať - 1621 01:06:11,510 --> 01:06:14,800 nie a.out--dovoľte mi, aby som beh math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 A skutočne, to vytlačiť 3. 1623 01:06:16,750 --> 01:06:18,460 Tak sa poďme pozrieť na variant tohto. 1624 01:06:18,460 --> 01:06:23,870 V math3.c, teraz máme tento príklad tu. 1625 01:06:23,870 --> 01:06:26,540 >> Tak toto je celkom zaujímavé. 1626 01:06:26,540 --> 01:06:32,000 Takže v tomto tu, odpoveď dostane 1 delené 10, 1627 01:06:32,000 --> 01:06:33,910 a všimnite si, som vyhlásil, že ako float. 1628 01:06:33,910 --> 01:06:35,200 Prečo chcem, aby to bolo float? 1629 01:06:35,200 --> 01:06:36,110 No, je to zlomok. 1630 01:06:36,110 --> 01:06:37,140 Je to bude reálne číslo. 1631 01:06:37,140 --> 01:06:40,970 Takže to bude 0,1, dúfajme, že - 10%, v tomto prípade. 1632 01:06:40,970 --> 01:06:42,610 A čo som potom chcem vytlačiť? 1633 01:06:42,610 --> 01:06:43,440 No, táto odpoveď. 1634 01:06:43,440 --> 01:06:44,760 Dobre, poďme podpichovať nich seba ako prvý. 1635 01:06:44,760 --> 01:06:47,020 Takže na ľavej strane, vyhlásiť 1636 01:06:47,020 --> 01:06:49,410 float, hovoria odpoveď. 1637 01:06:49,410 --> 01:06:52,280 Na pravej strane, to 1 deleno 10 a dať to 1638 01:06:52,280 --> 01:06:54,370 Odpoveď vnútorné premenné. 1639 01:06:54,370 --> 01:06:56,410 Teraz, tento riadok vyzerá trochu záhadný. 1640 01:06:56,410 --> 01:06:59,440 Všimnime si ale niektoré známe funkcie. % Tu znamená prichádza 1641 01:06:59,440 --> 01:07:00,490 zástupný symbol. 1642 01:07:00,490 --> 01:07:03,230 f znamená, tu je hodnota s plávajúcou čiarkou, len skutočný 1643 01:07:03,230 --> 01:07:05,490 číslo, niečo s desatinnou čiarkou. 1644 01:07:05,490 --> 01:07:07,330 0.2 znamená čo? 1645 01:07:07,330 --> 01:07:10,740 Každý, kto vedia z predchádzajúcich skúseností? 1646 01:07:10,740 --> 01:07:12,010 Dve desatinné miesta. 1647 01:07:12,010 --> 01:07:14,050 Takže sme nevideli to predtým, ale je to len spôsob, ako 1648 01:07:14,050 --> 01:07:16,360 výkonu trochu väčšiu kontrolu nad printf a 1649 01:07:16,360 --> 01:07:20,840 hovorí mi nedáš 30 bodov za desatinnou čiarkou, 1650 01:07:20,840 --> 01:07:22,490 miesto mi len 2. 1651 01:07:22,490 --> 01:07:23,960 >> A potom si to ísť dopredu a spustiť tento. 1652 01:07:23,960 --> 01:07:30,160 Tak, aby matematiku 3, a teraz mi dovoľte bežať matematiky 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 A to nie je v poriadku. 1654 01:07:34,630 --> 01:07:37,390 Zdá sa, že sa stretli našu prvú skutočnú chybu. 1655 01:07:37,390 --> 01:07:39,400 No, možno som jednoducho hľadajú dosť blízko. 1656 01:07:39,400 --> 01:07:41,960 Tak ma nechaj ísť sem, a dovoľte mi, aby som 20 desatinnú čiarku 1657 01:07:41,960 --> 01:07:43,300 bod miestach. 1658 01:07:43,300 --> 01:07:47,950 A dovoľte mi skompilovať to, aby math3, spustite. 1659 01:07:47,950 --> 01:07:50,960 Istá, že 1 deleno 10 nie je 0. 1660 01:07:50,960 --> 01:07:54,270 Tak čo sa deje? 1661 01:07:54,270 --> 01:07:56,740 No dobre, tak vlastne to nemá čo do činenia s to. 1662 01:07:56,740 --> 01:07:57,600 To je dobrá myšlienka. 1663 01:07:57,600 --> 01:07:59,140 To je naozaj len náhoda 1664 01:07:59,140 --> 01:08:00,220 že to robíme. 1665 01:08:00,220 --> 01:08:02,010 Ale len preto, aby dokázal, že to nie je to, ja 1666 01:08:02,010 --> 01:08:03,160 vrátiť niečo náhodné. 1667 01:08:03,160 --> 01:08:05,160 Nerob to doma, pretože je to jednoducho zle. 1668 01:08:05,160 --> 01:08:08,000 Ale nenechajme math3, dovoľte mi, aby som ho spustiť. 1669 01:08:08,000 --> 01:08:10,690 Takže nemá nič spoločné s tým, čo sa vraciam, len má čo do činenia 1670 01:08:10,690 --> 01:08:11,940 s tým, čo som tlač. 1671 01:08:11,940 --> 01:08:14,150 Ale počul som ho sem. 1672 01:08:14,150 --> 01:08:15,270 Čo? 1673 01:08:15,270 --> 01:08:17,524 PUBLIKUM: Takže musíme napísať čísla v 1674 01:08:17,524 --> 01:08:19,680 delenie, - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Malan: Dobre dobre. 1676 01:08:20,319 --> 01:08:22,810 Takže musíme napísať čísla sa zúčastňuje 1677 01:08:22,810 --> 01:08:25,979 Divízia tu pohyblivou rádovou čiarkou sa. 1678 01:08:25,979 --> 01:08:29,359 Takže problém je tu ako predtým: C, ako u mnohých 1679 01:08:29,359 --> 01:08:31,819 jazyky, má rôzne dátové typy. 1680 01:08:31,819 --> 01:08:34,600 A tieto typy dát, napríklad, sú tieto tu. 1681 01:08:34,600 --> 01:08:37,430 A dátové typy v otázke tu, keď som typ 1 a potom som 1682 01:08:37,430 --> 01:08:40,870 typ 10, sú pravdepodobne to, čo dátové typy? 1683 01:08:40,870 --> 01:08:42,170 Takže je to asi int, nie? 1684 01:08:42,170 --> 01:08:44,149 Rozhodne to nie je float, pretože tam žiadne desatinné 1685 01:08:44,149 --> 01:08:45,460 bod alebo niečo podobné. 1686 01:08:45,460 --> 01:08:48,270 Takže naozaj, mám int deleno int. 1687 01:08:48,270 --> 01:08:52,160 >> Takže Zaujímavosťou matematiky a počítačom je, že 1688 01:08:52,160 --> 01:08:54,840 ak robíte rozdelenie pomocou celých čísel - 1689 01:08:54,840 --> 01:08:57,310 1 delené 10, áno, je 0,1. 1690 01:08:57,310 --> 01:09:01,420 Avšak, keď ste delenie celé číslo integer, 1691 01:09:01,420 --> 01:09:06,859 Odpoveď musí tiež byť celé číslo len preto, že pre teraz. 1692 01:09:06,859 --> 01:09:08,630 A čo je implikácia potom? 1693 01:09:08,630 --> 01:09:13,640 No, ak je odpoveď 1 delené 10 sa rovná 0,1, čo 1694 01:09:13,640 --> 01:09:15,680 počítač bude robiť, je nemám potuchy, ako sa 1695 01:09:15,680 --> 01:09:19,270 predstavujú 0,1, pretože to je hodnota s plávajúcou čiarkou, nie 1696 01:09:19,270 --> 01:09:21,910 integer, bude to odseknúť všetko po 1697 01:09:21,910 --> 01:09:27,470 desatinnú čiarku a len ukázať vám 0 na začiatku. 1698 01:09:27,470 --> 01:09:29,540 A to, že je to tlač ako plávajúce bodu 1699 01:09:29,540 --> 01:09:31,200 hodnota, je to len estetický vec. 1700 01:09:31,200 --> 01:09:34,279 To preto, že som vynútenie počítač tlačiť ako 1701 01:09:34,279 --> 01:09:35,229 hodnota s plávajúcou čiarkou. 1702 01:09:35,229 --> 01:09:37,720 A skutočne som deklaroval ako float, ale matematika je 1703 01:09:37,720 --> 01:09:39,010 deje tu. 1704 01:09:39,010 --> 01:09:41,859 >> Dovoľte mi teda vlastne tento problém vyriešiť v jednom celkom jednoduchým spôsobom. 1705 01:09:41,859 --> 01:09:45,250 Prečo nemôžem jednoducho urobiť 10,0 a 1,0, aj keď 1706 01:09:45,250 --> 01:09:47,609 technicky by som mohol dostať preč len s jedným z nich. 1707 01:09:47,609 --> 01:09:50,630 Teraz mi dovoľte pokračovať a robiť math3. 1708 01:09:50,630 --> 01:09:56,350 Nechaj ma ísť ďalej a teraz beží math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 A teraz, oh boy. 1710 01:09:57,500 --> 01:10:00,050 Teraz máme nový problém úplne. 1711 01:10:00,050 --> 01:10:05,600 Takže lepšie, že jo, sme bližšie k 0,1, ale to, čo je samozrejme 1712 01:10:05,600 --> 01:10:06,240 zle? 1713 01:10:06,240 --> 01:10:08,260 Ak sme boli klame roky, nie? 1714 01:10:08,260 --> 01:10:13,660 1 deleno 10 je vlastne celkom 0,1, takže to, čo je 1715 01:10:13,660 --> 01:10:14,700 Naozaj sa tu deje? 1716 01:10:14,700 --> 01:10:16,420 No môžete trochu rozumu cez to logicky. 1717 01:10:16,420 --> 01:10:19,200 Ak počítač má iba obmedzené množstvo pamäte RAM pre začatie 1718 01:10:19,200 --> 01:10:23,530 s, a naozaj počítač iba používa 32 bitov pre 1719 01:10:23,530 --> 01:10:26,200 hodnota s plávajúcou čiarkou, to dá rozum, že sa 1720 01:10:26,200 --> 01:10:29,870 konečný počet bitov, 32 v tomto prípade, áno, môžete 1721 01:10:29,870 --> 01:10:31,050 predstavujú veľa vecí. 1722 01:10:31,050 --> 01:10:33,220 Je to vlastne štyri miliardy rôzne hodnoty môžu byť 1723 01:10:33,220 --> 01:10:38,040 zastúpená 32 bitov, 2 na 32, ale je to stále obmedzené. 1724 01:10:38,040 --> 01:10:40,730 Takže problém je, že je to nekonečný počet real 1725 01:10:40,730 --> 01:10:41,370 čísla, vpravo. 1726 01:10:41,370 --> 01:10:43,560 Ak mi reálne číslo, vždy môžem nájsť vám jeden 1727 01:10:43,560 --> 01:10:46,080 o niečo väčšie, o niečo menej, len o ladení 1728 01:10:46,080 --> 01:10:47,970 čísla, ktoré sú za desatinnou čiarkou. 1729 01:10:47,970 --> 01:10:50,870 Takže ak nemáte nekonečný počet bitov, môžete 1730 01:10:50,870 --> 01:10:52,940 nemôže predstavovať nekonečný 1731 01:10:52,940 --> 01:10:54,800 počet reálnych čísel. 1732 01:10:54,800 --> 01:10:58,090 >> Takže tam je to vlastná nepresnosť v počítačoch, a 1733 01:10:58,090 --> 01:11:00,930 to dostane zakopol celú dobu ani v najjednoduchšej 1734 01:11:00,930 --> 01:11:02,260 programy, ako je tento. 1735 01:11:02,260 --> 01:11:05,640 Ale tiež v niektorých veľmi reálnych problémov, rovnako. 1736 01:11:05,640 --> 01:11:07,790 V skutočnosti, poďme sa na chvíľu stačí sa pozrieť na 1737 01:11:07,790 --> 01:11:09,530 niečo, čo sa skutočne stalo v skutočnosti. 1738 01:11:09,530 --> 01:11:11,620 Budeme sledovať len prvých pár minút, a potom sa 1739 01:11:11,620 --> 01:11:13,270 budeme písať na odkaz on-line. 1740 01:11:13,270 --> 01:11:16,700 Ale to je dôkazom práve to, čo sa môže pokaziť, docela 1741 01:11:16,700 --> 01:11:19,680 úprimne, vo veľmi tragickým spôsobom, kedy sa tieto veci nie sú 1742 01:11:19,680 --> 01:11:23,870 ocenil alebo len my ľudia robia chyby, pokiaľ ide o 1743 01:11:23,870 --> 01:11:26,792 tieto druhy implementačných detailov moderných počítačov. 1744 01:11:26,792 --> 01:11:27,284 >> [VIDEO Playing] 1745 01:11:27,284 --> 01:11:30,730 -Teraz sa vrátime k inžinierskych katastrof na moderné zázraky. 1746 01:11:30,730 --> 01:11:32,200 Počítače. 1747 01:11:32,200 --> 01:11:34,920 Všetci sme si zvykli na to sa často frustrujúce problémy 1748 01:11:34,920 --> 01:11:36,750 že ísť s nimi. 1749 01:11:36,750 --> 01:11:40,690 Chyby, vírusy, a softvér závady sú malé ceny do 1750 01:11:40,690 --> 01:11:42,550 platí pre pohodlie. 1751 01:11:42,550 --> 01:11:45,170 Ale v high-tech a high speed armády a priestoru 1752 01:11:45,170 --> 01:11:48,450 programové aplikácie, môže byť problém najmenší 1753 01:11:48,450 --> 01:11:52,220 zväčšený do katastrofy. 1754 01:11:52,220 --> 01:11:56,780 4. júna 1996, vedci pripravení začať bezpilotné 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 raketa. 1756 01:11:58,430 --> 01:12:00,750 To niesol vedecké satelity, ktorých cieľom je 1757 01:12:00,750 --> 01:12:03,580 stanoviť presne, ako sa zemskej magnetické pole 1758 01:12:03,580 --> 01:12:06,900 spolupracuje so solárnymi vetry. 1759 01:12:06,900 --> 01:12:10,330 Raketa bola postavená pre Európskou vesmírnou agentúrou a 1760 01:12:10,330 --> 01:12:13,450 odštartovala z jeho zariadení na pobreží Francúzskej Guyany. 1761 01:12:13,450 --> 01:12:16,970 >> -Asi asi 37 sekúnd do letu, sa prvýkrát 1762 01:12:16,970 --> 01:12:19,700 všimol niečo zle, že trysky sú 1763 01:12:19,700 --> 01:12:21,590 otočná v spôsobe naozaj nemal. 1764 01:12:21,590 --> 01:12:25,020 Asi 40 sekúnd do letu, jasne vozidla 1765 01:12:25,020 --> 01:12:27,340 bol v ťažkostiach, a to je, keď sa rozhodol pre 1766 01:12:27,340 --> 01:12:28,136 zničiť. 1767 01:12:28,136 --> 01:12:31,450 Rozsah bezpečnostný technik s obrovským odvahy stlačení 1768 01:12:31,450 --> 01:12:34,160 Tlačidlo, vyhodil raketu pred tým, než by sa mohlo stať 1769 01:12:34,160 --> 01:12:37,470 nebezpečenstvo pre verejnú bezpečnosť. 1770 01:12:37,470 --> 01:12:40,750 >> -To bol prvý plavbe z Ariane 5, a jeho 1771 01:12:40,750 --> 01:12:43,990 zničenie došlo v dôsledku chyby vložené do 1772 01:12:43,990 --> 01:12:45,480 rakety softvér. 1773 01:12:45,480 --> 01:12:47,660 >> -Problém na Ariane bolo, že tam bolo číslo, ktoré 1774 01:12:47,660 --> 01:12:51,245 vyžaduje 64 bitov vyjadriť a chceli previesť ju 1775 01:12:51,245 --> 01:12:53,010 na 16 bitov čísla. 1776 01:12:53,010 --> 01:12:54,900 Predpokladali, že číslo bolo nikdy 1777 01:12:54,900 --> 01:12:56,280 bude veľmi veľká, 1778 01:12:56,280 --> 01:12:59,920 že väčšina z týchto číslic v 64 bitovej číslo bolo 0s. 1779 01:12:59,920 --> 01:13:01,860 Boli zle. 1780 01:13:01,860 --> 01:13:04,550 >> -Neschopnosť jedného softvérového programu, aby prijal 1781 01:13:04,550 --> 01:13:07,730 druh čísla generovaného iný bol pri koreni 1782 01:13:07,730 --> 01:13:08,930 zlyhanie. 1783 01:13:08,930 --> 01:13:11,490 Vývoj softvéru sa stala veľmi nákladné časť 1784 01:13:11,490 --> 01:13:13,280 nové technológie. 1785 01:13:13,280 --> 01:13:16,530 Ariane 4 raketa bola veľmi úspešná. 1786 01:13:16,530 --> 01:13:19,100 Toľko softvéru vytvoreného pre neho bola tiež použitá 1787 01:13:19,100 --> 01:13:21,050 v Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Základným problémom bolo, že Ariane 5 bol rýchlejší, 1789 01:13:25,530 --> 01:13:27,280 urýchľovaním. 1790 01:13:27,280 --> 01:13:30,590 A softvér sa neúčtuje za to. 1791 01:13:30,590 --> 01:13:33,060 >> -Zničenie rakety bol obrovský finančný 1792 01:13:33,060 --> 01:13:37,670 katastrofa, všetko v dôsledku minút chyby softvéru. 1793 01:13:37,670 --> 01:13:40,750 Ale to nebolo prvýkrát, konverzie dát problémy museli 1794 01:13:40,750 --> 01:13:43,680 trápi modernej raketovej techniky. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Malan: Necháme to tak. 1796 01:13:44,390 --> 01:13:46,870 Ale to je dokladom toho, ako použiť dokonca aj niektorí z 1797 01:13:46,870 --> 01:13:48,750 Tieto najnižšiu úroveň detailov, ktoré sme začali 1798 01:13:48,750 --> 01:13:50,040 preskúmať dnes. 1799 01:13:50,040 --> 01:13:52,510 Takže aj keď ste trochu roztržitý možno niektorí z 1800 01:13:52,510 --> 01:13:55,240 syntaxe a arcaneness tu si uvedomiť, že cez 1801 01:13:55,240 --> 01:13:57,690 Termín budeme zameraná len na to, ako použiť ich pre 1802 01:13:57,690 --> 01:13:59,530 svety ďaleko za SK. 1803 01:13:59,530 --> 01:14:00,780 Uvidíme sa v stredu.