1 00:00:00,000 --> 00:00:01,500 >> [Predvajanje glasbe] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Dobro to je CS50 in to je konec enega tedna. 4 00:00:16,110 --> 00:00:20,760 Torej, jaz bi rada uvedla moj nekdanji advisee, Andel Duff, ki ne omogoča samo 5 00:00:20,760 --> 00:00:25,460 iPhone 5 stoji, kot to govorniški pult, on naredi tudi avtomobile. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Kako gre, vsi? 8 00:00:29,510 --> 00:00:31,980 Rad bi vam povedal, malo bit okoli Formula SAE, v kateri sem 9 00:00:31,980 --> 00:00:32,604 sem kapetan. 10 00:00:32,604 --> 00:00:33,437 To je MIT ekipa. 11 00:00:33,437 --> 00:00:35,520 Rad bi ti povedal fantje malo o tem 12 00:00:35,520 --> 00:00:37,520 in upajmo, da ustvari nekaj interesa. 13 00:00:37,520 --> 00:00:41,590 >> Torej, povej mi samo teče skozi Par stvari o naši ekipi. 14 00:00:41,590 --> 00:00:43,640 Tako da smo v celoti študent rok, v katerem vsi 15 00:00:43,640 --> 00:00:47,300 zasnove članov, simulacijo, test, in proizvajalec podsistem 16 00:00:47,300 --> 00:00:48,090 avtomobila. 17 00:00:48,090 --> 00:00:51,240 Imamo lastno stroj shop in garaže in N52-- ali žal, 18 00:00:51,240 --> 00:00:54,140 N51--, ki je v isti zgradbi kot Prirodoslovni muzej MIT. 19 00:00:54,140 --> 00:00:55,990 In smo ljudje, da vozi avto. 20 00:00:55,990 --> 00:00:58,340 Tam je državno tekmovanje v začetku poletja, 21 00:00:58,340 --> 00:01:01,215 in potem so tu še manjši shootout tekmovanja skozi vse leto. 22 00:01:01,215 --> 00:01:04,400 In potem smo storili usposabljanje voznikov dni, da se novi člani seznanili. 23 00:01:04,400 --> 00:01:08,280 >> Naši graditi dnevi so na Sobotah 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Kosilo in večerja skrbijo od od Bertucci in Beantown 25 00:01:11,060 --> 00:01:12,130 oz. 26 00:01:12,130 --> 00:01:15,260 Imamo tedenski sestanek in seminar, ki je namenjen seveda kredit. 27 00:01:15,260 --> 00:01:18,560 Ki je nova, kot je to semestru, in bo tudi za naslednji semester, 28 00:01:18,560 --> 00:01:19,940 tako da boste lahko čez-reg za to. 29 00:01:19,940 --> 00:01:22,960 In potem imamo projektiranje, trgovina, CAD dni v tednu, 30 00:01:22,960 --> 00:01:26,870 ker so člani bodo neodvisno CAD delov, da bi stock et cetera. 31 00:01:26,870 --> 00:01:29,200 >> Tako za električno inženiring na ekipo 32 00:01:29,200 --> 00:01:31,110 imamo vlečno, sistem za visoke napetosti, 33 00:01:31,110 --> 00:01:33,390 ki deluje pri nazivni 300 voltov, ki vključuje 34 00:01:33,390 --> 00:01:35,360 motorji, krmilniki, in baterijskih vložkov. 35 00:01:35,360 --> 00:01:37,235 Potem imamo nizko napetost sistema, ki teče 36 00:01:37,235 --> 00:01:40,180 na 12 voltov, ki vključuje Nadzor, CAN vozlišča, možgane 37 00:01:40,180 --> 00:01:41,570 polje, in armaturna plošča. 38 00:01:41,570 --> 00:01:43,890 Kolikor CS gre, delamo imajo vzdrževanje spletne strani 39 00:01:43,890 --> 00:01:47,940 da moramo storiti za dogodke, članstvo spremembe, nove slike in PR materiala. 40 00:01:47,940 --> 00:01:51,540 In potem imamo kodo, ki nadzoruje avto za naše trakcijska kontrola, začetek 41 00:01:51,540 --> 00:01:55,750 Nadzor, nadzor dash, vektorsko navora, in regeneracijski zavorni sistemi, ki 42 00:01:55,750 --> 00:01:59,170 teči običajno v MATLAB, Simulink in LabView. 43 00:01:59,170 --> 00:02:00,910 >> Povem vam nekaj o avtu. 44 00:02:00,910 --> 00:02:02,470 Torej, to je okoli 500 funtov. 45 00:02:02,470 --> 00:02:04,285 To je pravila omejena na 85 kilovatov. 46 00:02:04,285 --> 00:02:08,310 Ima 2 EMRAX 207 motorjih nazaj, ena za vsako zadnje kolo. 47 00:02:08,310 --> 00:02:11,880 To je po meri zgrajen akumulatorje s prizmatično A123 vrečka celic, 48 00:02:11,880 --> 00:02:14,780 v skupni vrednosti 300 voltov in 5.6 kilovatnih ur. 49 00:02:14,780 --> 00:02:17,950 In to je direktni pogon z Razmerje 2,64-1 pogon. 50 00:02:17,950 --> 00:02:20,970 Tukaj je nekaj slik smo je od njega na konkurenco. 51 00:02:20,970 --> 00:02:25,820 Tukaj je stožec nazaj, nos, in tukaj so motorji, 52 00:02:25,820 --> 00:02:29,682 tiste velike črne diski pod et mens manus. 53 00:02:29,682 --> 00:02:32,140 Tukaj je posnetek, ki sem potegnil iz našega programa konkurence. 54 00:02:32,140 --> 00:02:35,389 In to je samo primerjamo naš avto Nekaj ​​komercialno dostopnih avtomobilov, 55 00:02:35,389 --> 00:02:38,380 kot KTM XBOW, Ariela Atom in Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Če ste seznanjeni s ceno, moč potegnite težo, dolarjev na konjskih moči, 57 00:02:42,110 --> 00:02:44,930 dolarjev na navoru in najin avto jih vse piha iz vode. 58 00:02:44,930 --> 00:02:47,520 Če imate kakršnakoli vprašanja, zapišete ta e-poštni naslov. 59 00:02:47,520 --> 00:02:50,800 Ustreli nam e-pošto na fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Veseli nas, da govorimo o kaj bi radi. 61 00:02:53,350 --> 00:02:55,600 Harvard študenti so prijazni manjšine v ekipi. 62 00:02:55,600 --> 00:02:58,350 Če imate kakršna koli vprašanja o da vas prosimo, da ustreli nam e-pošto, 63 00:02:58,350 --> 00:03:00,810 vesel, da govori, in bom da glavo nazaj čez Davidu. 64 00:03:00,810 --> 00:03:01,550 Hvala. 65 00:03:01,550 --> 00:03:02,466 Cenim to, fantje. 66 00:03:02,466 --> 00:03:03,615 [APLAVZ] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel preživel poletje delajo z nami, tukaj na kampusu v CS50 69 00:03:10,980 --> 00:03:11,480 to poletje. 70 00:03:11,480 --> 00:03:13,505 In poleg dela na stvari, kot binarnih čebulice, 71 00:03:13,505 --> 00:03:16,090 je dejansko res odprli eyes-- in mine v particular-- 72 00:03:16,090 --> 00:03:20,535 K resnično križišče ne strojne in programske opreme lahko. 73 00:03:20,535 --> 00:03:23,410 V resnici veliko stvari, ki jih je pravkar gostovala ste skozi, so na koncu 74 00:03:23,410 --> 00:03:26,030 ustvaril prvi v programski opremi, in nato končno izdelani 75 00:03:26,030 --> 00:03:27,299 v resničnem svetu v strojno opremo. 76 00:03:27,299 --> 00:03:29,590 Torej, če ste zainteresirani raziskuje to križišče, 77 00:03:29,590 --> 00:03:31,430 morda prevzame to skupino. 78 00:03:31,430 --> 00:03:34,140 >> Zdaj medtem, tiste, ki ste ki so ljubitelji tehnologije, 79 00:03:34,140 --> 00:03:36,140 in Apple proizvodi predvsem vedeti, da obstaja 80 00:03:36,140 --> 00:03:37,860 so nekaj Sporočila včeraj. 81 00:03:37,860 --> 00:03:39,776 Vendar smo menili, da se bo prikazal si tisti, ki je prišel ven 82 00:03:39,776 --> 00:03:43,590 Nekaj ​​dni prej, da si morda ne bi videl. 83 00:03:43,590 --> 00:03:46,150 >> Jörgen EGHAMMER: Veš, enkrat v nekaj časa nekaj 84 00:03:46,150 --> 00:03:49,540 prihaja skupaj, da spreminja naš način življenja. 85 00:03:49,540 --> 00:03:53,479 Naprava tako preprosto in intuitivno uporabljate počuti skoraj seznanjeni. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Predstavljamo 2015 IKEA katalog. 88 00:04:04,138 --> 00:04:10,420 To ni digitalna knjiga ali e-knjige, to je knjiga, knjiga. 89 00:04:10,420 --> 00:04:14,440 >> Prva stvar je tudi omeniti no kabli, niti napajalni kabel. 90 00:04:14,440 --> 00:04:18,519 IKEA katalog 2015 prihaja povsem napolnjena, 91 00:04:18,519 --> 00:04:20,550 in življenjska doba baterije je večna. 92 00:04:20,550 --> 00:04:27,300 Vmesnik je 7.5 za 8 cm, vendar pa lahko razširite do 15 za 8 centimetrov. 93 00:04:27,300 --> 00:04:32,410 Navigacija temelji na taktilno dotik Tehnologija, ki jo lahko dejansko počutijo. 94 00:04:32,410 --> 00:04:37,120 >> Vsebina je vnaprej nameščena preko 328 visoko ločljivostjo strani 95 00:04:37,120 --> 00:04:40,180 spodbuja k opremljanju doma ideje. 96 00:04:40,180 --> 00:04:43,740 Zagon brskalnika, enostavno dotaknite in povlecite. 97 00:04:43,740 --> 00:04:50,870 Desne na levo, da se premaknete naprej, od leve proti desni, da se pomaknete nazaj. 98 00:04:50,870 --> 00:04:52,770 >> Opazili nekaj drugega? 99 00:04:52,770 --> 00:04:53,780 Tako je prav. 100 00:04:53,780 --> 00:04:55,190 No lag. 101 00:04:55,190 --> 00:04:58,400 Vsako kristalno jasen stran obremenitve sprašuje, 102 00:04:58,400 --> 00:05:00,586 ne glede na to, kako hitro se premikate. 103 00:05:00,586 --> 00:05:03,710 Če želite hiter pregled, Pravkar jo držite v dlani, 104 00:05:03,710 --> 00:05:06,816 in z uporabo le palcem, hitro iskanje po vsebini. 105 00:05:06,816 --> 00:05:10,930 >> Če ste našli nekaj, kar želite shraniti za pozneje, lahko preprosto zaznamek. 106 00:05:10,930 --> 00:05:17,620 In tudi če zaprete aplikacijo, lahko enostavno spet našli zaznamek. 107 00:05:17,620 --> 00:05:18,490 Neverjetno. 108 00:05:18,490 --> 00:05:20,434 >> [Smeh] 109 00:05:20,434 --> 00:05:21,406 [APLAVZ] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Tako, da nas pripelje do Konec enega tedna. 112 00:05:29,870 --> 00:05:31,760 Nekaj ​​Sporočila zdaj. 113 00:05:31,760 --> 00:05:33,440 Torej na odseke je zdaj v teku. 114 00:05:33,440 --> 00:05:36,860 Pojdite na ta URL tukaj sometime od danes in v petek opoldne 115 00:05:36,860 --> 00:05:39,960 dejansko določite, ali ste med tistimi manj udoben, bolj 116 00:05:39,960 --> 00:05:41,690 udobno, ali nekje vmes. 117 00:05:41,690 --> 00:05:44,511 >> To je tipično eden od tistih stvari, ki jih nekako veš. 118 00:05:44,511 --> 00:05:47,510 In v resnici tiste, ki so manj udobno verjetno veste toliko, 119 00:05:47,510 --> 00:05:49,634 tiste, ki so bolj udobna vedeti toliko, 120 00:05:49,634 --> 00:05:54,960 in spet, če niste povsem prepričani, katera od teh vedrih padeš v ti 121 00:05:54,960 --> 00:05:56,210 verjetno nekje vmes. 122 00:05:56,210 --> 00:05:59,810 Toda prepričani ste lahko zamenja Po nekaj tednih, če bo to potrebno. 123 00:05:59,810 --> 00:06:02,620 >> Medtem pa v prihajajočem tednu ne začnemo odsekov po sebi, 124 00:06:02,620 --> 00:06:04,760 ampak super profili, ki so odprti za vse študente. 125 00:06:04,760 --> 00:06:08,220 Ta prihaja nedelja, na lokaciji, na bodo objavljeni na spletni strani predmeta 126 00:06:08,220 --> 00:06:10,190 bomo imeli eno za tiste manj udoben, 127 00:06:10,190 --> 00:06:12,470 kot tudi ena za tiste bolj udobno. 128 00:06:12,470 --> 00:06:15,460 In tiste nekje vmes lahko izbere, katero od teh dveh, 129 00:06:15,460 --> 00:06:17,360 ali oba, če želite, da bi sedel-in naprej. 130 00:06:17,360 --> 00:06:19,630 In poudarek tistim, bo na koncu na C, 131 00:06:19,630 --> 00:06:22,440 kateri bomo nadaljevali našo pogovor danes. 132 00:06:22,440 --> 00:06:25,070 >> Problem nastavite 0 medtem je upajmo, da v vaših rokah. 133 00:06:25,070 --> 00:06:27,500 Uradno jutri, Četrtek opoldne. 134 00:06:27,500 --> 00:06:29,490 Razen, če si denar v eno vaših 5 poznih dni, 135 00:06:29,490 --> 00:06:31,780 ki bi ga prinesla do petka opoldne. 136 00:06:31,780 --> 00:06:34,420 Problem nastavite 1 Medtem bo objavljene na spletni strani seveda je. 137 00:06:34,420 --> 00:06:37,381 In to bo naš prvi plenilec kot razred v C 138 00:06:37,381 --> 00:06:40,630 In da je problem določiti spec vas bo vodil skozi veliko mehanike kaj 139 00:06:40,630 --> 00:06:43,960 smo začeli govoriti o tem v ponedeljek, in bomo še naprej govorili o danes. 140 00:06:43,960 --> 00:06:46,770 C, Linux, CS50 Naprava, vse to 141 00:06:46,770 --> 00:06:48,990 vas čakajo v specifikaciji. 142 00:06:48,990 --> 00:06:52,840 >> Uradne ure so medtem v teku, v dodiplomskem jedilnici. 143 00:06:52,840 --> 00:06:56,240 Glavo na tem URL-tu za ogled urnik za danes in jutri, 144 00:06:56,240 --> 00:06:57,930 Če bi radi, da sodelujejo. 145 00:06:57,930 --> 00:07:01,920 Vprašanja Medtem, tako da vas imajo možnosti postavljanja vprašanj 146 00:07:01,920 --> 00:07:05,860 asinhrono, 24/7, zavedaš, da si ni omejena na oddelke in pisarno 147 00:07:05,860 --> 00:07:09,530 ur, temveč je to orodje tukaj, CS50 Razprava na tej URL 148 00:07:09,530 --> 00:07:12,150 bo tekom na spletu oglasna deska software, preko katerega 149 00:07:12,150 --> 00:07:15,030 lahko postavljajo vprašanja sošolci in tudi osebje. 150 00:07:15,030 --> 00:07:18,492 Torej, ne pozabite, da z viri, kot dobro. 151 00:07:18,492 --> 00:07:20,200 Medtem tradicija prične ta petek. 152 00:07:20,200 --> 00:07:23,200 Kot ste morda zagledali od teaser video prejšnjo sredo je, 153 00:07:23,200 --> 00:07:25,510 smo najbolj ima tradicijo Vsak petek v času mandata 154 00:07:25,510 --> 00:07:28,750 sprejemanja približno 50 študentov in osebje v lokalni restavraciji, imenovano 155 00:07:28,750 --> 00:07:31,510 Fire and Ice, na katerem smo običajno pridružili nekateri alumni 156 00:07:31,510 --> 00:07:33,850 ali prijatelji iz industrije na splošno prizadevajo 157 00:07:33,850 --> 00:07:35,780 narediti velik razred počutijo manjši. 158 00:07:35,780 --> 00:07:37,560 Torej, to je povsem priložnostno kosilo. 159 00:07:37,560 --> 00:07:40,160 Nekaj ​​nas, osebje še posebej, bo igral glasbenih stolov 160 00:07:40,160 --> 00:07:43,360 in klepet s študenti o 50, življenje zunaj 50, 161 00:07:43,360 --> 00:07:46,510 življenje v prihodnosti, realni svet, Govorim o možnostih zaposlitve 162 00:07:46,510 --> 00:07:47,680 s prijatelji v industriji. 163 00:07:47,680 --> 00:07:51,110 >> Torej, če bi želeli, da se nam pridružite ta petek, glavo na ta URL tukaj. 164 00:07:51,110 --> 00:07:54,180 Prostor je omejen, vendar bomo to storili recurringly v celotnem obdobju. 165 00:07:54,180 --> 00:07:57,380 Glavo tam cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 In če ne boste dobili v ta čas, ne skrbi. 167 00:07:59,380 --> 00:08:02,390 Ga bomo še enkrat v V prihodnjih tednih kot dobro. 168 00:08:02,390 --> 00:08:05,434 >> Torej je to slika smo naslikal prejšnji teden, 169 00:08:05,434 --> 00:08:07,350 in ste verjetno že ukvarjali v doslej. 170 00:08:07,350 --> 00:08:10,360 Ampak poskusimo povezati to zdaj s tem, kar bomo storili danes 171 00:08:10,360 --> 00:08:11,440 in naprej. 172 00:08:11,440 --> 00:08:14,760 Lahko dobim enega prostovoljca? 173 00:08:14,760 --> 00:08:16,000 Vse v redu, ali več. 174 00:08:16,000 --> 00:08:18,460 Kaj pa tu na end, v modri srajci. 175 00:08:18,460 --> 00:08:20,329 Pridi gor, kako ti je ime? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 Torej Alana, za samo moment-- lepo, da izpolnjujejo ti-- 179 00:08:25,100 --> 00:08:28,260 se dogaja, da igra vlogo te funkcije tukaj. 180 00:08:28,260 --> 00:08:31,290 Purple block smo jih Doslej se imenuje funkcija. 181 00:08:31,290 --> 00:08:34,830 Torej, kaj bom šel pred nami tukaj in ponujajo Alana 182 00:08:34,830 --> 00:08:38,380 je malo tablico z imenom, da bi jasno, kakšno vlogo igraš. 183 00:08:38,380 --> 00:08:39,753 >> Torej ste se recimo blok. 184 00:08:39,753 --> 00:08:41,419 Če želite, da gredo naprej in dal tole. 185 00:08:41,419 --> 00:08:43,169 In bomo da je to super enostavno. 186 00:08:43,169 --> 00:08:46,180 Če je cilj pri roki, je preprosto zdaj izvajajo z Alana, 187 00:08:46,180 --> 00:08:49,710 to ti rečem blok, Tukaj je, kako bo delovalo. 188 00:08:49,710 --> 00:08:52,574 I have-- dajmo ga pokličete argument ali parameter, 189 00:08:52,574 --> 00:08:54,240 to je res samo prazen list papirja. 190 00:08:54,240 --> 00:08:57,239 In to je bela do nekako se spominja na belem polju, v katerega ste 191 00:08:57,239 --> 00:08:58,080 Lahko napišete besed. 192 00:08:58,080 --> 00:09:00,660 >> Medtem bom šel tukaj. 193 00:09:00,660 --> 00:09:06,560 Jaz grem naprej in pisati H-E-L-L-O vejico svetu. 194 00:09:06,560 --> 00:09:09,972 In zdaj, kot pravi programer, ne pravzaprav vem, kako naj ti povem nekaj. 195 00:09:09,972 --> 00:09:12,180 Lahko pridem gor z besedami, ampak jaz ne nujno 196 00:09:12,180 --> 00:09:15,220 vem, kako naj se izrazim ustno ali na zaslonu. 197 00:09:15,220 --> 00:09:17,280 In kaj bom storiti, je, da ta kos 198 00:09:17,280 --> 00:09:21,157 funkcionalnosti, katere input-- ali argument, ki ga bomo poklical, 199 00:09:21,157 --> 00:09:23,990 Sem napisal na ta kos paper-- in bom, da ga oddajajo. 200 00:09:23,990 --> 00:09:26,831 >> In res, da je vloga, ki jo funkcije v programskem jeziku 201 00:09:26,831 --> 00:09:27,330 lahko igrajo. 202 00:09:27,330 --> 00:09:29,246 Nekaj ​​takega kot reči Blok se lahko seli 203 00:09:29,246 --> 00:09:32,074 da nekdo, ki res ve kaj ona ali on je govoril. 204 00:09:32,074 --> 00:09:33,990 Torej, če boste stopite tu le za trenutek, 205 00:09:33,990 --> 00:09:40,092 Bom prestal to prispevek k Alana, in prosim, da rečeš ta prispevek. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hello, world. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: To je to. 208 00:09:42,160 --> 00:09:43,326 Tako, da je funkcija. 209 00:09:43,326 --> 00:09:46,556 Zdaj bomo lahko vzamete malo več, bomo lahko naredili korak naprej tukaj. 210 00:09:46,556 --> 00:09:48,180 Ker je bilo to jasno underwhelming. 211 00:09:48,180 --> 00:09:51,670 Torej, kaj je sedaj pretvarjati, da je to nekaj malo bolj prefinjeno. 212 00:09:51,670 --> 00:09:53,630 >> Torej, to je seveda naša različica C. 213 00:09:53,630 --> 00:09:56,760 Torej, zdaj, če želite, da bi, da je en off, da name tag off, 214 00:09:56,760 --> 00:09:58,530 in imejmo si dal na novo ime. 215 00:09:58,530 --> 00:10:00,850 Vendar je bistveno, da si igrajo enako vlogo, 216 00:10:00,850 --> 00:10:03,400 je prav tako se zgodi, da se imenuje printf zdaj. 217 00:10:03,400 --> 00:10:06,930 >> Zgodba je, seveda, bo verjetno bilo-- 218 00:10:06,930 --> 00:10:09,317 prav tako underwhelming-- je bo naslednji. 219 00:10:09,317 --> 00:10:10,650 Zdaj ste funkcija printf. 220 00:10:10,650 --> 00:10:13,300 Jaz sem klicatelja, ali Programer, ki želi 221 00:10:13,300 --> 00:10:15,745 stati na ramenih ljudje v preteklosti, kot si ti, 222 00:10:15,745 --> 00:10:18,670 ki je že ugotovil, kako dejansko napisati nekaj navzdol. 223 00:10:18,670 --> 00:10:20,650 In zato je ta čas, kot pravijo, da dajva 224 00:10:20,650 --> 00:10:22,255 dejansko uporabite zaslon tukaj. 225 00:10:22,255 --> 00:10:24,130 Torej, če želite, da okrepijo sem, da bom 226 00:10:24,130 --> 00:10:27,196 spet ta prenese kot Vhod na moj printf prijatelja. 227 00:10:27,196 --> 00:10:29,320 Če bi lahko šel naprej in tiskanje, ki na zaslonu, 228 00:10:29,320 --> 00:10:31,611 zgolj s črpanjem z vašim prst na črnem zaslonu. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Odlično. 231 00:10:44,180 --> 00:10:47,350 V redu, torej veliko suspenza za kako da se bo to igra ven. 232 00:10:47,350 --> 00:10:51,390 >> Sedaj vzemimo stvari ena končno zarezo, če bi lahko, kot sledi. 233 00:10:51,390 --> 00:10:53,980 Torej, to je program, C kot smo rekli zadnjič. 234 00:10:53,980 --> 00:10:57,460 In to samo počne tisto, kar si storil, je izpiše na zaslonu, Zdravo, svet. 235 00:10:57,460 --> 00:11:00,290 Čeprav je nedvomno veliko od moteča stvar tam. 236 00:11:00,290 --> 00:11:03,630 Vendar vzemimo stvari zarezo in uvedbo te različice, ki opozarjajo, 237 00:11:03,630 --> 00:11:06,160 je tretja različica, ki smo se znašli v zadnjem času. 238 00:11:06,160 --> 00:11:09,120 >> In zdaj je jasno Dve uporabi printf. 239 00:11:09,120 --> 00:11:12,280 Tukaj je 2 klici Alana v tem primeru za printf, 240 00:11:12,280 --> 00:11:14,740 vendar pa tudi klic na drugo delovno mesto. 241 00:11:14,740 --> 00:11:17,150 Kaj je to funkcija jasno? 242 00:11:17,150 --> 00:11:17,650 Getstring. 243 00:11:17,650 --> 00:11:18,980 >> Bomo dobili še eno prostovoljca? 244 00:11:18,980 --> 00:11:20,980 OK, pridi gor. 245 00:11:20,980 --> 00:11:21,805 Kako ti je ime? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, pridi gor. 248 00:11:24,750 --> 00:11:27,270 Torej vloga Javier je na ta kos papirja. 249 00:11:27,270 --> 00:11:28,860 Ki bom na splošno imenujemo s. 250 00:11:28,860 --> 00:11:32,250 Zdaj je to spremenljivka, to je tip string, kot je predvideno 251 00:11:32,250 --> 00:11:34,290 navedeni drugi vrstici v sredini tam. 252 00:11:34,290 --> 00:11:36,540 In jaz bi rad, da mi prinesi niz. 253 00:11:36,540 --> 00:11:40,120 Posebej glavo navzdol, da orkester oddelek in mi ime nekoga, 254 00:11:40,120 --> 00:11:43,142 in prišel nazaj s spremenljivko vsebujejo te vrednosti. 255 00:11:43,142 --> 00:11:44,225 To je lahko kdorkoli želite. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Gremo. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 V redu, Javier je zapisala imena. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 V redu. 262 00:12:03,280 --> 00:12:05,740 Bomo lahko vsi verjetno lahko uganiti, kako to bo igra ven. 263 00:12:05,740 --> 00:12:07,489 Mi smo morda belaboring točka kaj 264 00:12:07,489 --> 00:12:10,320 funkcija počne, vendar vseeno najlepša hvala. 265 00:12:10,320 --> 00:12:13,890 >> Torej je Javier vrnil ta niz tu, ki ne more povsem glej 266 00:12:13,890 --> 00:12:15,800 Jonathan je niz da smo gotten. 267 00:12:15,800 --> 00:12:18,330 Torej, zdaj, kaj sem dejansko dogaja zagotoviti, da Alana, čeprav 268 00:12:18,330 --> 00:12:20,150 je nekaj malo drugačen. 269 00:12:20,150 --> 00:12:23,800 Ker je v tej različici Program, prvič pa je svoje ime. 270 00:12:23,800 --> 00:12:26,160 Torej zelo prvi argument Moram zagotoviti Alana 271 00:12:26,160 --> 00:12:33,030 s se bo dobesedno navesti svoje ime. 272 00:12:33,030 --> 00:12:35,280 V redu, tako preprosto je to Jaz bi to roko za vas. 273 00:12:35,280 --> 00:12:36,730 In kot sem napisal Naslednji argument, če vas 274 00:12:36,730 --> 00:12:39,230 želijo, da gredo naprej in to napisali na krovu, gremo naprej 275 00:12:39,230 --> 00:12:42,659 in ne končni primer tukaj, da bi jasno, kaj je na koncu dobil, da se zgodi. 276 00:12:42,659 --> 00:12:44,450 Torej svoje ime, napisati proti vrhu 277 00:12:44,450 --> 00:12:47,220 Če vas ne moti, samo zato, da imamo prostor za eno drugo vrstico. 278 00:12:47,220 --> 00:12:52,890 Ker je zadnja stvar, bom zdaj vam ni ena, 279 00:12:52,890 --> 00:12:57,220 ampak dva kosa papirja. 280 00:12:57,220 --> 00:12:58,074 >> V redu. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O vejica, nato pa prazna vrstica. 282 00:13:01,920 --> 00:13:04,780 Torej, kaj bom v roke Alana zdaj je nekaj malo drugačen. 283 00:13:04,780 --> 00:13:08,600 Ne samo, da je ona že to, kjer polnilo v prazno predstavlja 284 00:13:08,600 --> 00:13:12,050 da percent--, kar je bilo Ograda smo bili z uporabo? 285 00:13:12,050 --> 00:13:13,890 Ja, tako odstotkov s. 286 00:13:13,890 --> 00:13:16,530 Medtem grem mimo ji na drugem mestu, ki 287 00:13:16,530 --> 00:13:19,290 je natančno tisto, Javier Vzpostavljeno iz Jonathana. 288 00:13:19,290 --> 00:13:20,534 >> Torej, naj ti dam te dve. 289 00:13:20,534 --> 00:13:22,575 Če želite, gredo naprej in tiska, da učinek. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Kaj se dogaja na koncu Zdaj je, Alana znova 292 00:13:28,130 --> 00:13:29,410 igra vlogo printf. 293 00:13:29,410 --> 00:13:32,160 Javier igral Vloga GetString. 294 00:13:32,160 --> 00:13:34,700 Tako da se bo vaš spomin. 295 00:13:34,700 --> 00:13:39,910 In na koncu, kaj se dogaja, kljub temu, to hello-- yep gredo naprej in vejico. 296 00:13:39,910 --> 00:13:41,410 ALANA: Sem to ali še ni prejel? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Yep, ti oba prejela naenkrat. 298 00:13:43,451 --> 00:13:45,740 Torej ideja je, da vas Sedaj lahko flip strani 299 00:13:45,740 --> 00:13:50,000 Ravnanje z drugo od teh dveh vhodov. 300 00:13:50,000 --> 00:13:53,280 Torej, to je le kladivo domov poudariti, da medtem Alana usmrčen 301 00:13:53,280 --> 00:13:55,830 ta zelena črta tukaj, in potem Javier je to storil eden za nas 302 00:13:55,830 --> 00:13:57,820 in se vrniti k meni nečesa bomo poklical ov, vendar je bilo res 303 00:13:57,820 --> 00:13:59,520 samo, da je kos papirja za svojega. 304 00:13:59,520 --> 00:14:02,320 In zdaj je Alana naredil to tretjo linijo. 305 00:14:02,320 --> 00:14:06,010 >> In čeprav vse to zgleda tako zelo skrivnosten morda 306 00:14:06,010 --> 00:14:08,870 na prvi pogled, je res je tako enostavno, kot da. 307 00:14:08,870 --> 00:14:11,390 Mimo vhoda okrog, pridobivanje izhode, bodisi 308 00:14:11,390 --> 00:14:14,560 fizično izroči nazaj nekaj, ali vidi stranski učinek, kot je ta. 309 00:14:14,560 --> 00:14:17,170 Nekaj ​​vizualno napisana na zaslonu. 310 00:14:17,170 --> 00:14:19,990 Torej, gremo naprej in hvala Alana Javier, 311 00:14:19,990 --> 00:14:25,012 ki je bil tukaj, za nam pridružili tukaj. 312 00:14:25,012 --> 00:14:25,934 >> [APLAVZ] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Torej, zdaj pa si vzemite za samoumevno, kako enostavno vse to lahko. 315 00:14:33,480 --> 00:14:36,775 In naj nadaljuje z dejansko storiti nekaj v dejanskem kodo. 316 00:14:36,775 --> 00:14:40,620 Torej na zaslonu tukaj je screenshot tako imenovanega-CS50 aparata. 317 00:14:40,620 --> 00:14:43,980 In če bi moral na, kot 2:00 PM v sredo popoldne, 318 00:14:43,980 --> 00:14:46,602 razložiti nekaj prijatelju kaj CS50 aparat, 319 00:14:46,602 --> 00:14:48,185 kako bi se to opredeli v stavku? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Enem stavku? 322 00:14:53,240 --> 00:14:54,876 Ja? 323 00:14:54,876 --> 00:14:57,334 ŠTUDENT: To je kot program da naredi vsakogar računalnik 324 00:14:57,334 --> 00:14:58,460 teči z istim sistemom. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Dobro! 326 00:14:59,210 --> 00:15:02,810 To je program, ki omogoča vsakogar računalnik zaženete z enakim sistemom. 327 00:15:02,810 --> 00:15:04,920 To je nekako sami Kopija za poslovanje 328 00:15:04,920 --> 00:15:07,540 Sistem, ki se zgodi, da se imenuje Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 In to dejansko deluje znotraj okno na vašem Mac ali PC, 330 00:15:11,070 --> 00:15:15,080 tako da se na ta način desno od vrat v 1 tednu, vsi tukaj v razredu 331 00:15:15,080 --> 00:15:17,590 ima dostop do istih orodij, enako konfiguracijo, 332 00:15:17,590 --> 00:15:21,250 in ni krivulja učenja specifične na Mac ali PC posebej. 333 00:15:21,250 --> 00:15:25,620 >> Zdaj smo odprli notranjost CS50 aparat v ponedeljek, ta program tukaj. 334 00:15:25,620 --> 00:15:27,040 To se zgodi, da se imenuje gedit. 335 00:15:27,040 --> 00:15:29,050 Ampak to je res samo grafični urednik. 336 00:15:29,050 --> 00:15:33,170 To je nekaj podobnega kot Beležnica ali Besedilo Uredite na Windows ali Mac OS oz. 337 00:15:33,170 --> 00:15:36,720 In predlagal sem, da je bilo v resnici trije pomembni deli na tem zaslonu. 338 00:15:36,720 --> 00:15:39,560 Zgornja stran je, če vas bi napisati svojo kodo. 339 00:15:39,560 --> 00:15:44,080 In to je, če smo preživeli veliko naših trije primeri v ponedeljek predavanje. 340 00:15:44,080 --> 00:15:47,650 Dno smo poklicali kaj, to črno okno, ja? 341 00:15:47,650 --> 00:15:48,640 >> ŠTUDENT: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compiler smo dostopen preko tega okna. 343 00:15:51,500 --> 00:15:53,040 Ampak bolj na splošno. 344 00:15:53,040 --> 00:15:54,540 Ja, to je samo okno terminal. 345 00:15:54,540 --> 00:15:57,780 To je starost star izraz, ki pravkar v bistvu opisuje utripanje 346 00:15:57,780 --> 00:16:01,910 poziv, da je pred leti nekoč na eden od tistih velikih monitorjev CRT slog. 347 00:16:01,910 --> 00:16:04,300 Danes pa je nekako virtualnih v programski opremi. 348 00:16:04,300 --> 00:16:06,710 In okna terminala kaj je nam vpisovati ukaze. 349 00:16:06,710 --> 00:16:11,750 Nekako poenostavljeno različico uporabniškega vmesnika ali vmesnika. 350 00:16:11,750 --> 00:16:14,060 To ni grafični uporabniški vmesnik ali GUI, 351 00:16:14,060 --> 00:16:17,250 to je besedilo, ki temelji vmesnik ali vmesnik v ukazni vrstici. 352 00:16:17,250 --> 00:16:20,770 >> In res, da je, kjer na koncu Bil sem sposoben napisati nekaj kode. 353 00:16:20,770 --> 00:16:24,200 Ko sem napisal nekaj kode, čeprav, spomnim, da sem ta ukaz. 354 00:16:24,200 --> 00:16:26,210 In kot se ime vrsta predlaga ta 355 00:16:26,210 --> 00:16:29,860 Omogoča mi, da Program se imenuje Pozdravljeni. 356 00:16:29,860 --> 00:16:33,400 Toda kaj se je v resnici počne? 357 00:16:33,400 --> 00:16:36,180 No znamka je bila ob mojem input, moja izvorna koda, 358 00:16:36,180 --> 00:16:39,380 in ga preusmeri na kaj, na koncu? 359 00:16:39,380 --> 00:16:40,060 >> Object code. 360 00:16:40,060 --> 00:16:42,790 In objektni kodi je samo fancy način rekel ničel in enic. 361 00:16:42,790 --> 00:16:46,420 In potem, ko sem si želel teči, da se kodi, 362 00:16:46,420 --> 00:16:50,940 Nekoč sem želel prenesti kot vhod tistih ničle in tisti v mojem računalniku 363 00:16:50,940 --> 00:16:54,430 možganov, tako imenovano CPU ali centralna procesna enota, 364 00:16:54,430 --> 00:16:55,730 Sem moral zagnati program. 365 00:16:55,730 --> 00:16:59,042 Ampak to ni bilo čisto preprosto ponedeljek kot samo dvojno kliknite nekaj ikono. 366 00:16:59,042 --> 00:17:01,375 Namesto tega sem moral storiti, da bi prost program? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Kaj je bilo, da je drugi ukaz? 369 00:17:07,890 --> 00:17:09,619 Slišim malo poševnico? 370 00:17:09,619 --> 00:17:10,544 Ja, ja? 371 00:17:10,544 --> 00:17:12,474 >> ŠTUDENT: Dot poševnica in ime programa. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Točno tako. 373 00:17:13,349 --> 00:17:15,030 Dot poševnica in ime programa. 374 00:17:15,030 --> 00:17:16,210 Zdaj kaj to pomeni? 375 00:17:16,210 --> 00:17:19,470 No dot je le starinski način rekel trenutni imenik. 376 00:17:19,470 --> 00:17:23,440 Karkoli mapa ste se sklicujemo, kot je zastopana kot piko. 377 00:17:23,440 --> 00:17:26,680 Slash je samo tisto, kar ste jih videli Mac OS in Windows za let, 378 00:17:26,680 --> 00:17:30,329 je ločilo med imenik ali mapo in ostali nekaj imena. 379 00:17:30,329 --> 00:17:32,620 V operacijskem sistemu Windows se zgodi, da gredo nazaj, v Linux in Mac 380 00:17:32,620 --> 00:17:34,210 OS se zgodi, da gredo naprej. 381 00:17:34,210 --> 00:17:37,560 Ampak to je samo ločilo, tako da je samo nezanimiv skladenjska podrobnost. 382 00:17:37,560 --> 00:17:40,440 >> Sočen del je seveda ime programa, Hello. 383 00:17:40,440 --> 00:17:42,650 In to je tisto, zaradi česar ustvarjen za nas. 384 00:17:42,650 --> 00:17:44,910 Je na izhodu to datoteko za nas. 385 00:17:44,910 --> 00:17:46,700 Toda, kako smo prišli do te točke? 386 00:17:46,700 --> 00:17:48,870 Pojdimo zdaj vprašati Vprašanje, kaj je bilo v resnici 387 00:17:48,870 --> 00:17:52,470 dogaja, vsaj z Za nekatere to sintakso? 388 00:17:52,470 --> 00:17:57,000 >> Torej, v stavku ali tako, kako smo razložiti 389 00:17:57,000 --> 00:17:59,020 ta prva linija, ki je obarvana zeleno? 390 00:17:59,020 --> 00:18:02,998 Kaj je bilo to prvo linijo početje, v zvezi z mojim programom? 391 00:18:02,998 --> 00:18:03,974 Ja? 392 00:18:03,974 --> 00:18:05,067 >> ŠTUDENT: [neslišno]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Reci še enkrat? 394 00:18:06,150 --> 00:18:08,734 ŠTUDENT: Vključno in nalaganje pretekle funkcije [neslišno]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Dobro. 396 00:18:09,483 --> 00:18:11,900 Vključno z, ne bom rekel nalaganje, ampak recimo, 397 00:18:11,900 --> 00:18:15,500 vključno s funkcijami, da ljudje so napisali v preteklosti. 398 00:18:15,500 --> 00:18:18,260 In so te funkcije izvajajo nekje v mojem računalniku. 399 00:18:18,260 --> 00:18:20,470 Nekdo je napisal datoteko pred leti, in da datoteka 400 00:18:20,470 --> 00:18:23,490 je nekje v notranjosti CS50 aparat, ali na mojem trdem disku 401 00:18:23,490 --> 00:18:24,480 bolj na splošno. 402 00:18:24,480 --> 00:18:27,810 In zato je ta linija je v bistvu rekel, poišči to datoteko, Standard I / O dot 403 00:18:27,810 --> 00:18:31,740 h, in kopiraj in prilepi njeno vsebino tukaj na vrhu moje datoteke 404 00:18:31,740 --> 00:18:33,860 , tako da mi ne bi bilo treba narediti, da ročno sam. 405 00:18:33,860 --> 00:18:40,970 >> In med juiciest kosov notranjosti od Ta datoteka smo trdili, je, kakšno funkcijo? 406 00:18:40,970 --> 00:18:45,740 Kakšno funkcijo smo rekli je bila razglašena ali omenjena v standardni I / O dot h 407 00:18:45,740 --> 00:18:47,120 najverjetneje? 408 00:18:47,120 --> 00:18:47,900 Printf, kajne? 409 00:18:47,900 --> 00:18:50,797 Mi ni napisal printf na Ponedeljek, je samo obstajala. 410 00:18:50,797 --> 00:18:52,880 Podobno kot Alana ravno prišel na odru in je samo 411 00:18:52,880 --> 00:18:55,540 obstajalo in je vedel, kako pripraviti nekaj na zaslonu, 412 00:18:55,540 --> 00:18:58,660 tako da ne printf obstaja že več let. 413 00:18:58,660 --> 00:19:00,240 In tako je to, kako smo do nje dostopate. 414 00:19:00,240 --> 00:19:03,280 Zdaj, če gremo tukaj, Glavni je bil analogen smo 415 00:19:03,280 --> 00:19:06,620 rekel puzzle kos poklical, ko zelena zastava kliknili 416 00:19:06,620 --> 00:19:07,620 v svetu nič. 417 00:19:07,620 --> 00:19:10,130 To je nekako privzeto ime, ki ga ljudje 418 00:19:10,130 --> 00:19:13,340 odločil, bi pomenilo privzeto vstopno točko za program. 419 00:19:13,340 --> 00:19:16,540 Kos programske kode da dobi najprej izvršiti. 420 00:19:16,540 --> 00:19:19,700 >> Medtem ti zavitimi oklepaji so nekako kot ukrivljeno obliko 421 00:19:19,700 --> 00:19:21,410 partije teh rumenih praske kosov. 422 00:19:21,410 --> 00:19:24,860 Te vrste zajame celotna kup navodil skupaj. 423 00:19:24,860 --> 00:19:28,350 Tako da nekako povezuje nekatere povezane funkcionalnosti. 424 00:19:28,350 --> 00:19:33,750 printf seveda je funkcija, ki natisne zaslon, kot smo pravkar storil. 425 00:19:33,750 --> 00:19:35,190 >> Kaj pa ti oklepaji? 426 00:19:35,190 --> 00:19:38,770 Kako bi define-- tudi če ste nikoli programirana prej, vendar le na osnovi 427 00:19:38,770 --> 00:19:41,320 zdaj naprej narašča upajmo, intuicija, kaj 428 00:19:41,320 --> 00:19:43,290 oklepajem delaš za nas? 429 00:19:43,290 --> 00:19:45,450 Ali kaj so obkroža? 430 00:19:45,450 --> 00:19:46,360 Ja? 431 00:19:46,360 --> 00:19:49,360 >> ŠTUDENT: Pravijo, kar greš za tiskanje z printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Ja, pravijo, kaj greš za tiskanje z printf. 433 00:19:52,401 --> 00:19:56,260 Ali bolj na splošno, so okolica vhode v funkciji. 434 00:19:56,260 --> 00:19:58,530 Tako da lahko skoraj misliš teh oklepajih 435 00:19:58,530 --> 00:20:01,620 kot kot kovine posnetek na odložišče. 436 00:20:01,620 --> 00:20:05,940 To je tisto, kar drži, to je tisto, kar je bo treba uporabiti za zagotavljanje argumente 437 00:20:05,940 --> 00:20:08,500 v funkciji, ki je v V tem primeru se imenuje printf. 438 00:20:08,500 --> 00:20:12,390 >> Tako na splošno skoraj vsako Tokrat smo pokličete funkcijo, 439 00:20:12,390 --> 00:20:14,280 bomo videli par oklepajev. 440 00:20:14,280 --> 00:20:17,000 Morda z nekaj v njem, kot sedaj, morda ni nič v njem. 441 00:20:17,000 --> 00:20:19,770 Ampak to je, če bi si dal vložki ali tako imenovane argumente 442 00:20:19,770 --> 00:20:20,680 na funkcijo. 443 00:20:20,680 --> 00:20:22,470 >> Tukaj je en tak argument. 444 00:20:22,470 --> 00:20:24,467 Sem izpostavil vse med narekovaji, 445 00:20:24,467 --> 00:20:26,300 ker se je izkazalo, v tem jeziku imenovano 446 00:20:26,300 --> 00:20:29,950 C, če želite, da predstavljajo string--, da je beseda ali fraza 447 00:20:29,950 --> 00:20:33,470 ali celo paragraph-- morate ga obdajajo z dvojnimi narekovaji. 448 00:20:33,470 --> 00:20:35,420 Ne posamezni citati, dvojni narekovaji. 449 00:20:35,420 --> 00:20:37,460 In to je točno to, kar sem tukaj naredil. 450 00:20:37,460 --> 00:20:39,900 >> Medtem pa je funky Simbol proti koncu tam. 451 00:20:39,900 --> 00:20:41,600 Nagibnica n. 452 00:20:41,600 --> 00:20:43,460 Kaj smo rekli, da bo zastopal? 453 00:20:43,460 --> 00:20:44,093 Ja? 454 00:20:44,093 --> 00:20:44,980 >> ŠTUDENT: nova linija. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nova linija. 456 00:20:45,896 --> 00:20:47,910 Prav, pa ne splošno pritisnite tipko Enter, ko 457 00:20:47,910 --> 00:20:50,430 želite, da program pljuvati ven novo linijo. 458 00:20:50,430 --> 00:20:54,210 Namesto da jo povem izrecno s tem seveda Skrivnosten kosu 459 00:20:54,210 --> 00:20:58,770 sintakse, poševnica nazaj n, da želite novo linijo do tja. 460 00:20:58,770 --> 00:20:59,810 Končno podpičje. 461 00:20:59,810 --> 00:21:01,560 Mi pa res ne govori preveč o tem, 462 00:21:01,560 --> 00:21:04,893 in daleč bo to bane nekaterih svojega obstoja za prvo težavo 463 00:21:04,893 --> 00:21:07,990 nastavljena, ko si ni uspelo realizirati Pozabil si nekaj tako neumnega 464 00:21:07,990 --> 00:21:08,614 kot podpičjem. 465 00:21:08,614 --> 00:21:11,600 In na splošno ga je dala tam bo popraviti to težavo. 466 00:21:11,600 --> 00:21:13,511 Toda kaj je to početje za nas, bi rekli? 467 00:21:13,511 --> 00:21:15,670 >> ŠTUDENT: [neslišno]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Oprostite? 469 00:21:17,484 --> 00:21:18,532 >> ŠTUDENT: [neslišno]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Zaključna izjavo. 471 00:21:19,990 --> 00:21:22,770 To je nekako tako kot v opazovanem obdobju konec angleškega stavka, 472 00:21:22,770 --> 00:21:25,790 ker se v tem jeziku C se je končala izjavo. 473 00:21:25,790 --> 00:21:29,250 Pouk programiranja koda, da si samo želim povedati, 474 00:21:29,250 --> 00:21:30,500 Končal sem s tem. 475 00:21:30,500 --> 00:21:32,240 Sedaj opazili, da je edini tukaj. 476 00:21:32,240 --> 00:21:34,614 Tako da ne želite, da bi dobili v navado dajanje podpičji 477 00:21:34,614 --> 00:21:36,190 po vsakem zaprtem oklepaju. 478 00:21:36,190 --> 00:21:38,610 Na primer obstaja nobena poleg ničen, mi pa bomo 479 00:21:38,610 --> 00:21:40,430 prišel nazaj v prihodnost s tem, kar void sredstva. 480 00:21:40,430 --> 00:21:44,080 Toda v tem primeru vaš printf je funkcijo, ali izjava, ki se uporablja, 481 00:21:44,080 --> 00:21:47,420 in zato želimo imeti, da terminus na samem koncu od tega. 482 00:21:47,420 --> 00:21:50,980 >> In sem namerno spravljati C in odkrito veliko jezikov, kot so C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript ter poljubno število drugi jeziki imajo veliko teh 484 00:21:55,000 --> 00:21:56,730 nekako skladenjskih podrobnosti. 485 00:21:56,730 --> 00:22:00,120 To vsekakor, če ste novi na programiranje vam lahko resnično spotakniti up. 486 00:22:00,120 --> 00:22:02,307 In boste, zapomnite si moje besede, bodo nekateri od vas 487 00:22:02,307 --> 00:22:04,140 imeli to izkušnjo v uradnih urah ali pozno 488 00:22:04,140 --> 00:22:07,554 ponoči delal na neki p-set, kjer tvoj prekleti Program samo ne pripravijo, 489 00:22:07,554 --> 00:22:09,470 to ne deluje, morate ne vem, kaj je narobe, 490 00:22:09,470 --> 00:22:11,513 popolnoma zdi logično pravilna za vas. 491 00:22:11,513 --> 00:22:13,596 In to zato, ker si pozabil nekaj podobnega hitting 492 00:22:13,596 --> 00:22:15,250 podpičjem konec neke vrstice. 493 00:22:15,250 --> 00:22:17,590 >> Toda to so vrste stvari, s katerimi boste bo takoj naučijo videti. 494 00:22:17,590 --> 00:22:20,048 In res to so stvari, da imajo v CA in TF je 495 00:22:20,048 --> 00:22:23,210 je nekako usposobljeni za prikaz veliko hitreje od tebe. 496 00:22:23,210 --> 00:22:26,610 In zato je to samo reči, kot ti Potopite se v problem nastaviti 1 posebej, 497 00:22:26,610 --> 00:22:28,217 Ne bodi uničen s temi stvarmi. 498 00:22:28,217 --> 00:22:30,050 Ko boste nekako aklimatizirati v svet, ki ga 499 00:22:30,050 --> 00:22:35,130 začeli videti stvari, ki jih morda ne videti na prvi pogled to prvi teden. 500 00:22:35,130 --> 00:22:37,440 >> Torej, izvorna koda je nekaj takega. 501 00:22:37,440 --> 00:22:40,370 Želimo, da se vanjo uvajajte tako imenovani prevajalnik. 502 00:22:40,370 --> 00:22:42,850 In da prevajalnik kot smo rekli, daje izhod 503 00:22:42,850 --> 00:22:45,660 znan kot kodi, ti ničle in narave. 504 00:22:45,660 --> 00:22:47,747 Ampak od tam, kaj to nam daje? 505 00:22:47,747 --> 00:22:49,080 No, to nam daje te vzorce. 506 00:22:49,080 --> 00:22:52,020 In spet računalnik, vaš Intel notri, 507 00:22:52,020 --> 00:22:54,350 razume te vzorce ničel in enic. 508 00:22:54,350 --> 00:22:57,300 In včasih vzorec predstavlja dejansko decimalno število 509 00:22:57,300 --> 00:22:59,770 kot smo videli prejšnji teden, včasih predstavlja črko 510 00:22:59,770 --> 00:23:02,730 kot smo videli prejšnji teden, včasih predstavlja navodilo, 511 00:23:02,730 --> 00:23:05,460 kot nekaj, tiskanje na zaslonu. 512 00:23:05,460 --> 00:23:08,782 >> Torej printf za instance-- ampak, kaj me nazaj. 513 00:23:08,782 --> 00:23:11,240 Smo bili ob za samoumevne da so ti ničel in enic 514 00:23:11,240 --> 00:23:14,200 ki jih proizvaja ta ukaz make. 515 00:23:14,200 --> 00:23:16,050 Ampak znamka ni prevajalnik. 516 00:23:16,050 --> 00:23:19,370 Da ni stvar v sredini ki se proizvajajo ničel in enic. 517 00:23:19,370 --> 00:23:23,780 Namesto, da je samo zelo prikladno poimenovali program, katerega namen v življenju 518 00:23:23,780 --> 00:23:27,267 je v bistvu ugotoviti, kako sestaviti svoj program. 519 00:23:27,267 --> 00:23:29,350 In smo ga uporabili v teh Prve tedne, ker je samo 520 00:23:29,350 --> 00:23:30,910 nam prihrani veliko težav. 521 00:23:30,910 --> 00:23:34,080 >> Toda kaj bi se v resnici počeli, ko ste zbrati zdravo, 522 00:23:34,080 --> 00:23:36,690 je, kot smo rekli zadnjič, da je videti na trdem disku 523 00:23:36,690 --> 00:23:40,620 ali v mapi, za datoteka z imenom, kaj, očitno? 524 00:23:40,620 --> 00:23:41,815 Hello.c, kajne? 525 00:23:41,815 --> 00:23:43,190 To je nekako konvencije. 526 00:23:43,190 --> 00:23:45,620 To je samovoljno, ampak to je, kako stvari so. 527 00:23:45,620 --> 00:23:48,620 Da, če si določite ime programa, ki še ne obstaja, 528 00:23:48,620 --> 00:23:52,200 to se dogaja, da si za izvorno kodo v datoteko, ki jo privzeto pomeni hello.c. 529 00:23:52,200 --> 00:23:53,530 In če ga najde, super. 530 00:23:53,530 --> 00:23:56,650 To se dogaja, da spremenijo to vir kodo v kodi za vas. 531 00:23:56,650 --> 00:23:59,670 >> Toda vsakič, ko sem pritisnite tipko Enter po zagonu da zdravo, 532 00:23:59,670 --> 00:24:03,560 Se spomnite videnje zadnji čas, ki ga precej dolg in skrivnosten zaporedje 533 00:24:03,560 --> 00:24:06,430 drugih belimi črkami in Znaki na zaslonu? 534 00:24:06,430 --> 00:24:11,220 No, da je dejanski ukaz, Dejanska prevajalnik, ki je bil zagnan. 535 00:24:11,220 --> 00:24:15,500 Torej dejansko prevajalnik bomo uporabili večino semester je nekaj, kar se imenuje Jek. 536 00:24:15,500 --> 00:24:19,280 Nekateri od vas bi lahko uporabili Visual Studio pred ali GCC, 537 00:24:19,280 --> 00:24:21,340 ali poljubno število drugih prevajalnikov. 538 00:24:21,340 --> 00:24:22,620 Bomo uporabili Jek. 539 00:24:22,620 --> 00:24:26,950 >> In Zvoka nam omogoča, da pretvorite da izvorne kode v objektno kodo. 540 00:24:26,950 --> 00:24:29,430 Kaj to dejansko pomeni v praksi? 541 00:24:29,430 --> 00:24:33,390 No, mi gremo v eno moje mape iz zadnjega časa. 542 00:24:33,390 --> 00:24:35,760 Znotraj CS50 aparata. 543 00:24:35,760 --> 00:24:42,080 In mi gremo naprej in ustvariti to Ista datoteka, vsebuje standardne I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int main neveljavne. 545 00:24:42,875 --> 00:24:46,000 In se bomo vrnili v prihodnosti kot s tem, kar int pomeni in kakšne so nična sredstva. 546 00:24:46,000 --> 00:24:49,130 Ampak za zdaj naredimo Zdravo svet Nagibnica n, 547 00:24:49,130 --> 00:24:50,500 tako kot smo to storili na krovu. 548 00:24:50,500 --> 00:24:53,930 >> Dovolite mi, da shranite to datoteko hello.c. 549 00:24:53,930 --> 00:24:58,280 In zdaj, če hočem, da pripravijo to I lahko-- mi povečavo noter-- tek 550 00:24:58,280 --> 00:25:00,450 da zdravo vstopiti. 551 00:25:00,450 --> 00:25:02,645 In to spet bilo da je zelo skrivnosten linija. 552 00:25:02,645 --> 00:25:05,120 Toda zdaj vsaj ena beseda Verjetno skoči ven na vas. 553 00:25:05,120 --> 00:25:07,087 Jek je, da je linija smo videli prej. 554 00:25:07,087 --> 00:25:10,420 Zdaj obstaja veliko drugih stvari odkrito da bomo mahati z rokami na za danes. 555 00:25:10,420 --> 00:25:14,020 Ampak tam je nekaj dele, nekaj znakov tukaj 556 00:25:14,020 --> 00:25:14,907 da so v interesu. 557 00:25:14,907 --> 00:25:16,490 Ampak bom, da gredo naprej in to. 558 00:25:16,490 --> 00:25:18,281 Jaz bom prvi vožnji zdravo, samo zato, da dokaže 559 00:25:18,281 --> 00:25:20,320 da to deluje, kot bi bil v ponedeljek. 560 00:25:20,320 --> 00:25:22,330 Ampak zdaj bom izbrisati program. 561 00:25:22,330 --> 00:25:25,870 In podobno kot smo to kratka imena zadnji čas, 562 00:25:25,870 --> 00:25:29,787 Ukaz za odstranitev Nekaj ​​je rm, odstranite, vnesite. 563 00:25:29,787 --> 00:25:31,870 Boste dobili nekaj dokaj kriptirni vprašanja. 564 00:25:31,870 --> 00:25:35,210 Težko verjeti, da si lahko tudi to vprašanje je težko razumeti. 565 00:25:35,210 --> 00:25:38,100 Ampak odstraniti redno datoteke pozdravi samo sredstva želite izbrisati zdravo. 566 00:25:38,100 --> 00:25:42,650 >> In sem lahko šel naprej in vnesite d, za ja, Enter, in zdaj ga ni več. 567 00:25:42,650 --> 00:25:45,130 Kaj to pomeni zdaj, če sem zbistriti zaslon, 568 00:25:45,130 --> 00:25:47,301 je, da namesto tem, da hello-- vas 569 00:25:47,301 --> 00:25:48,800 Veš kaj, jaz sem že dober v tem. 570 00:25:48,800 --> 00:25:50,690 Jaz grem teči prevajalnik sam. 571 00:25:50,690 --> 00:25:53,330 Ne rabim nekaj programa za ugotovimo, kaj je moja datoteka z imenom. 572 00:25:53,330 --> 00:25:55,370 Napisal sem hello.c, I vem, kako se imenuje, 573 00:25:55,370 --> 00:25:57,640 Jaz sem očitno sposoben tipkanje da. 574 00:25:57,640 --> 00:26:02,620 Torej, jaz grem naprej in ne Jek hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Zdi, da dela. 576 00:26:03,264 --> 00:26:05,930 In ni dodatnih izhod, ker Jek je prevajalnik. 577 00:26:05,930 --> 00:26:08,590 To je tisto, kar pretvorbo Izvorna koda za ničel in enic. 578 00:26:08,590 --> 00:26:12,870 Torej, če bom zdaj naredil piko poševnica zdravo Enter, hm. 579 00:26:12,870 --> 00:26:14,630 Novo sporočilo o napaki danes. 580 00:26:14,630 --> 00:26:17,610 Torej, bash je samo ime utripa poziv, ki smo ga uporabljate. 581 00:26:17,610 --> 00:26:20,360 To je bruto poenostavljanje, ampak za zdaj je to vse, kar je, 582 00:26:20,360 --> 00:26:21,401 to je utripa poziv. 583 00:26:21,401 --> 00:26:22,880 In to je razlog, zakaj je kričal na nas. 584 00:26:22,880 --> 00:26:25,690 >> No takšno datoteko ali imenik Malo bolj enostavna. 585 00:26:25,690 --> 00:26:28,190 Ampak zagotovo sem to kodi. 586 00:26:28,190 --> 00:26:30,930 Ampak catch je, da če sem tip ukaz 587 00:26:30,930 --> 00:26:34,650 na seznam vsebine tega imenik, ki je kaj? 588 00:26:34,650 --> 00:26:36,210 ls za seznam. 589 00:26:36,210 --> 00:26:39,332 Tam je kup stvari tukaj, nekateri, ki ste ga dobili z napravo, 590 00:26:39,332 --> 00:26:42,040 kot moj Desktop mapi Downloads mapo, mapo Dropbox in vse 591 00:26:42,040 --> 00:26:42,850 te stvari. 592 00:26:42,850 --> 00:26:45,410 Ampak kaj je zanimivo je hello.c, ki 593 00:26:45,410 --> 00:26:47,286 Ustvaril sem pred nekaj trenutki z gedit. 594 00:26:47,286 --> 00:26:49,160 In kaj je usoden išče ime tukaj, 595 00:26:49,160 --> 00:26:53,110 morda, da nismo glej zadnji čas sploh? 596 00:26:53,110 --> 00:26:54,710 >> a.out, kajne? 597 00:26:54,710 --> 00:26:56,920 Torej nazaj v dan, ga je le odločil, da se pri 598 00:26:56,920 --> 00:26:58,760 vam pripravijo program prvič, 599 00:26:58,760 --> 00:27:02,360 in ne podate imena datoteke, dajmo ga je poklical. 600 00:27:02,360 --> 00:27:05,800 In a.out samo pomeni, da je to izhod prevajalnik. 601 00:27:05,800 --> 00:27:07,790 Torej, to je grozno ime za program. 602 00:27:07,790 --> 00:27:12,820 Vendar s to logiko, dot poševnica za trenutni imenik, poševnica a.out, 603 00:27:12,820 --> 00:27:16,102 naj bi pomenilo, da je v resnici my zdravo svet programa. 604 00:27:16,102 --> 00:27:17,560 Zdaj pa malo ogreje vadbe, preveč. 605 00:27:17,560 --> 00:27:20,420 Če želim preimenovati to Datoteka, izkaže se, da vas 606 00:27:20,420 --> 00:27:23,000 premikanje datoteke iz ene v drugo ime. 607 00:27:23,000 --> 00:27:28,750 Torej mv a.out, potem pa sem Lahko ga pokličete zdravo Enter. 608 00:27:28,750 --> 00:27:30,940 Torej je ta ukaz Linux. 609 00:27:30,940 --> 00:27:34,370 DOS je imel pred leti, Windows ima terminalsko okno 610 00:27:34,370 --> 00:27:36,460 neke vrste, ki je videti kot je ta, Linux in Mac 611 00:27:36,460 --> 00:27:38,140 računalniki imajo to utripa poziv. 612 00:27:38,140 --> 00:27:41,490 Čeprav je večina od nas verjetno redko, če sploh kdaj, jo uporabite. 613 00:27:41,490 --> 00:27:44,590 >> Ampak, kaj sem naredil, vodi Program, katerega ime je mv, 614 00:27:44,590 --> 00:27:47,900 in sem ji dala dva argumenta, tako rekoč. 615 00:27:47,900 --> 00:27:48,630 Dva vhoda. 616 00:27:48,630 --> 00:27:50,260 a.out je originalno ime. 617 00:27:50,260 --> 00:27:51,630 Pozdravljeni, je novo ime. 618 00:27:51,630 --> 00:27:55,670 Torej, če bom zdaj naredil dot slash Pozdravljeni, Enter, da obstaja. 619 00:27:55,670 --> 00:28:00,770 In če jaz dot slash a.out, kaj pa si pričakoval sem moral videti? 620 00:28:00,770 --> 00:28:02,250 >> Bash, takšno datoteko ali imenik ne. 621 00:28:02,250 --> 00:28:03,350 Ker sem ga preimenoval. 622 00:28:03,350 --> 00:28:04,975 Torej, to traja nekaj pridobivanje vajeni. 623 00:28:04,975 --> 00:28:06,977 Ampak problem je določil 1. specifikacija bo resnično 624 00:28:06,977 --> 00:28:08,810 držite roko skozi nekaj tega minutae. 625 00:28:08,810 --> 00:28:11,050 Ker je to popolna intelektualne moteča 626 00:28:11,050 --> 00:28:12,966 od bolj zanimivo ideje pri roki, ki 627 00:28:12,966 --> 00:28:15,310 je pravzaprav ustvarja nekaj iz kode. 628 00:28:15,310 --> 00:28:18,830 Ampak kaj je naredil eno modifikacijo Zdaj tega programa. 629 00:28:18,830 --> 00:28:23,150 >> Spomnimo se, da je zadnjič, ko sem naredil nekaj kot je ta, printf svoje ime. 630 00:28:23,150 --> 00:28:25,790 In res smo samo to storil na velikem zaslonu, tam. 631 00:28:25,790 --> 00:28:30,640 In potem sem dobil niz s GetString odprte paren, blizu paren. 632 00:28:30,640 --> 00:28:33,430 In paren samo okrajšava Zapis v oklepaju. 633 00:28:33,430 --> 00:28:36,460 Torej ne GetString sprejme nobenega argumenta? 634 00:28:36,460 --> 00:28:38,440 Ni vhodi no, vendar je potrebuje oklepaja, 635 00:28:38,440 --> 00:28:41,830 ker to je tisto, kar razmejuje Sklic funkcije. 636 00:28:41,830 --> 00:28:46,440 >> Torej bom, da gredo naprej in poskusite teči prevajalnik o tem programu zdaj. 637 00:28:46,440 --> 00:28:50,774 Jek hello.c, ker I ni spremenila svoje ime za zdaj. 638 00:28:50,774 --> 00:28:51,940 In imam kup napak. 639 00:28:51,940 --> 00:28:53,570 Pojdimo pomanjšati tukaj. 640 00:28:53,570 --> 00:28:55,420 Če sem se pomaknete navzgor spet Kot sem rekel zadnjič, 641 00:28:55,420 --> 00:28:58,420 s prvim, iste napake da sem dobil zadnjič. 642 00:28:58,420 --> 00:29:04,210 Na liniji 6 hello.c sem imel neprijavljeno identifikator niz, 643 00:29:04,210 --> 00:29:05,590 pa mislim standard? 644 00:29:05,590 --> 00:29:06,750 Nisem. 645 00:29:06,750 --> 00:29:10,050 Ker tisto napako sem naredil, v tem programa, če se spomnimo od zadnjega obiska? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Ja, moramo tako imenovani kolesa usposabljanje 648 00:29:15,010 --> 00:29:16,510 da bomo samo uporabo za nekaj tednov. 649 00:29:16,510 --> 00:29:19,480 Ampak moram navesti, da je prav, nekje v notranjosti aparata, 650 00:29:19,480 --> 00:29:22,720 je datoteka, ki smo pisali le nekaj let nazaj. 651 00:29:22,720 --> 00:29:26,500 Znotraj katerega so funkcije kot očitno GetString. 652 00:29:26,500 --> 00:29:35,160 Torej, zdaj, če sem šel nazaj dol, povečate, in ponovno zagnati Jek hello.c. 653 00:29:35,160 --> 00:29:36,500 Prekleto, drugo napako. 654 00:29:36,500 --> 00:29:38,590 Vendar smo že nisem videl tega. 655 00:29:38,590 --> 00:29:41,900 >> Ta je malo bolj ezoterična ugotoviti. 656 00:29:41,900 --> 00:29:46,910 Ampak to je namerno na zaslonu, zato, ker smo želeli, da povem to zgodbo. 657 00:29:46,910 --> 00:29:51,280 Ko ste zbrati hello.c, tako kot Slika iz prej predlagal, 658 00:29:51,280 --> 00:29:54,650 ste pretvorbo le, da Izvorna koda za ničel in enic. 659 00:29:54,650 --> 00:30:00,340 Zdaj osebje CS50 pred nekaj leti napisal CS50.h, in ustrezno dokumentacijo, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 In mi je pred nekaj leti, zbrati te datoteke 662 00:30:04,490 --> 00:30:07,290 v datoteko, ki se zgodi da se imenuje CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Ali se lahko preimenovali nekaj različnih stvari. 664 00:30:09,180 --> 00:30:11,054 Ampak to je preprost način, razmišljanja o tem. 665 00:30:11,054 --> 00:30:14,960 Tako smo sestavili CS50-jev Knjižnica v ničel in enic. 666 00:30:14,960 --> 00:30:20,340 Ampak nikjer sem določeno da želim združiti svoje ničle 667 00:30:20,340 --> 00:30:24,030 in tisti, za moje Hello World Program z ničel in enic 668 00:30:24,030 --> 00:30:29,760 da CS50 sodelavci ustvaril nekaj let nazaj v en celoten program. 669 00:30:29,760 --> 00:30:34,100 Vse, kar sem določil pisno Jek hello.c je zbrati hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Nisem rekel, da Jek povezava v ničel in enic 671 00:30:38,380 --> 00:30:41,650 da CS50 sodelavci ustvaril za vas nekaj časa nazaj. 672 00:30:41,650 --> 00:30:48,280 Torej, to je enostavno določiti, dash l za povezavo, CS50. 673 00:30:48,280 --> 00:30:52,600 In bomo spet videti kmalu spet in spet. 674 00:30:52,600 --> 00:30:54,420 Opazil sedaj ni bilo nobenih pritožb. 675 00:30:54,420 --> 00:30:59,770 Torej, zdaj, če sem teči dot poševnica Pozdravljeni, sedaj deluje. 676 00:30:59,770 --> 00:31:03,840 Kljub temu, da je malce zavajajoče saj sem poustvarili kaj pila? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Zato mi dovolite, previjanje le za trenutek. 679 00:31:07,930 --> 00:31:10,900 Program smo le pripravljeni ima tri vrstice kode. 680 00:31:10,900 --> 00:31:14,710 Ko sem tekel Hello World, zdravo moment nazaj, nisem videl svoje ime. 681 00:31:14,710 --> 00:31:17,080 In to zato, ker sem tekel staro verzijo programa. 682 00:31:17,080 --> 00:31:22,700 Ampak, če sem zares teči dot slash a.out Vnesite, navesti svoje ime, Rob, zdravo, 683 00:31:22,700 --> 00:31:23,370 svet. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 To je vrsta hrošča. 686 00:31:26,110 --> 00:31:28,560 Verjetno je želel povedati, Rob, kajne? 687 00:31:28,560 --> 00:31:30,997 Torej, kaj je fix tukaj v kodi. 688 00:31:30,997 --> 00:31:31,872 ŠTUDENT: [neslišno]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Točno tako. 691 00:31:39,290 --> 00:31:43,160 Tako da sem moral narediti, da končno poteg tako da sem mimo v ogrado, 692 00:31:43,160 --> 00:31:45,690 kot polnilo v prazno, kot smo pred nekaj trenutki. 693 00:31:45,690 --> 00:31:47,870 Toda odstotkov y je zdaj da izpolnite v prazno. 694 00:31:47,870 --> 00:31:52,100 Torej, na koncu pa razkrivajo eno zadnjo Podatek, da ni čarobna. 695 00:31:52,100 --> 00:31:54,090 Jaz grem naprej in se znebite Pozdravljeni. 696 00:31:54,090 --> 00:31:56,070 Jaz grem naprej in se znebite a.out. 697 00:31:56,070 --> 00:31:58,410 Tako da zdaj nimam nobenih programov, samo moja izvorna koda. 698 00:31:58,410 --> 00:32:01,100 In grem teči nekoliko daljši ukaz, Jek 699 00:32:01,100 --> 00:32:05,650 dash o Hello hello.c dash LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Zdaj se je to začelo nekako iti v eno uho in ven druge morda. 701 00:32:08,700 --> 00:32:10,366 Ampak samo draži narazen, kaj je to. 702 00:32:10,366 --> 00:32:14,910 Jek je prevajalnik, dash LCS50 namenoma na samem koncu 703 00:32:14,910 --> 00:32:18,330 dela kaj v stavku? 704 00:32:18,330 --> 00:32:19,607 Povezave do knjižnici CS50. 705 00:32:19,607 --> 00:32:21,440 Zagrabi ničle in tiste, ki so zaposleni, ki 706 00:32:21,440 --> 00:32:23,310 in jih crams v svojem programu. 707 00:32:23,310 --> 00:32:27,040 Torej zadnje vprašanje na dlani je, kaj je dash o zdravo verjetno 708 00:32:27,040 --> 00:32:30,530 delaš, tudi če ste nikoli videla to sintakso? 709 00:32:30,530 --> 00:32:34,920 >> Prikazovanje program, ki je ni imenovan privzeto a.out. 710 00:32:34,920 --> 00:32:37,330 Namesto da je to poimenoval zdravo. 711 00:32:37,330 --> 00:32:39,460 Torej sedaj ni a.out. 712 00:32:39,460 --> 00:32:42,660 No takšno datoteko ali imenik, ker sem izrecno rekel, 713 00:32:42,660 --> 00:32:46,720 imenujemo ta program zdravo, tako da Zdaj lahko vpišete ime, kot je ta 714 00:32:46,720 --> 00:32:47,790 in so se obnašali. 715 00:32:47,790 --> 00:32:50,180 >> Zdaj odkrito, fant je, da nezanimivo, da imajo 716 00:32:50,180 --> 00:32:52,170 da se spomnimo vseh, ki malo pretirane, kajne? 717 00:32:52,170 --> 00:32:54,180 Torej, gremo naprej in priti spet znebite zdravo. 718 00:32:54,180 --> 00:32:57,880 In kaj je zdaj vrnil na svetu ki je dovolj reči, da zdravo. 719 00:32:57,880 --> 00:33:00,410 Ampak to je čarovnija, ki da je delal za vas, 720 00:33:00,410 --> 00:33:02,320 da je Monotonija da to počne za vas. 721 00:33:02,320 --> 00:33:04,630 In kot naših programih in Težave dobili bolj zapleten, 722 00:33:04,630 --> 00:33:06,142 da bo resnično biti tvoj prijatelj. 723 00:33:06,142 --> 00:33:07,850 Ker ni predolg Od zdaj gremo 724 00:33:07,850 --> 00:33:11,150 da imajo programi, ki so napisana ne pri eni datoteki, ampak več datotek, 725 00:33:11,150 --> 00:33:16,310 in da bo avtomatizirati postopek zbiranje vse to za nas skupaj. 726 00:33:16,310 --> 00:33:20,620 >> Torej, zdaj natisniti. 727 00:33:20,620 --> 00:33:24,960 printf je znotraj te datoteke, standardni I / O dot h, da smo videli, 728 00:33:24,960 --> 00:33:26,980 ampak to še ni vse, da printf kot to. 729 00:33:26,980 --> 00:33:30,482 Tam je n poševnica nazaj, vendar pa tudi kup drugih zaporedij pobega. 730 00:33:30,482 --> 00:33:32,940 In sekvenca je le fancy način rekel nekaj 731 00:33:32,940 --> 00:33:35,990 ki se začne s poševnico nazaj, ne poševnica, poševnica nazaj, 732 00:33:35,990 --> 00:33:37,920 in ne nekaj posebno stvar. 733 00:33:37,920 --> 00:33:43,770 In mi ne bo spuščala v večini teh ampak zakaj je tam Nagibnica dvojni narekovaj, 734 00:33:43,770 --> 00:33:44,830 misliš? 735 00:33:44,830 --> 00:33:48,010 Zakaj je to čudno zaporedje znaki, poševnica nazaj dvojni narekovaj, 736 00:33:48,010 --> 00:33:50,505 zakaj bi to lahko bil koristen? 737 00:33:50,505 --> 00:33:51,380 ŠTUDENT: [neslišno]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Točno tako, kajne? 740 00:33:57,760 --> 00:34:01,830 Pomisli nazaj v našo Hello World programa da smo videli že kar nekaj časa sedaj, 741 00:34:01,830 --> 00:34:05,880 vsakič, ko smo videli, da je Hello World Program smo imeli dvojne narekovaje znotraj 742 00:34:05,880 --> 00:34:08,210 od katerih je zdravo vejica svet Nagibnica n. 743 00:34:08,210 --> 00:34:10,070 Ampak mislim, da si, Kaj pa, če dejansko 744 00:34:10,070 --> 00:34:12,520 želeli natisniti narekovaj? 745 00:34:12,520 --> 00:34:16,100 Vaš prvi instinkt je lahko, jaz pa ne vem, zakaj bi jaz rad tu do--, 746 00:34:16,100 --> 00:34:18,780 smo lahko malo pasivno agresivni, zdravo prijatelj. 747 00:34:18,780 --> 00:34:21,350 Mi bi želeli narediti kaj takega. 748 00:34:21,350 --> 00:34:25,230 >> Toda zakaj je to sedaj problematično? 749 00:34:25,230 --> 00:34:28,730 Ignoriranje zavite narekovaje prahi, da keynote je za nas samodejno. 750 00:34:28,730 --> 00:34:29,730 Zakaj je to problematično? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Točno tako. 753 00:34:37,270 --> 00:34:39,022 Ker imamo kot 4 narekovajih. 754 00:34:39,022 --> 00:34:41,230 No, prvi je verjetno gre z drugo, 755 00:34:41,230 --> 00:34:43,271 in morda četrti gre s tretjo, 756 00:34:43,271 --> 00:34:46,170 ali pa, mislim, da nisem niti prepričan, niti je računalnik bo. 757 00:34:46,170 --> 00:34:48,352 Spet računalniki, prevajalniki spet so precej neumno. 758 00:34:48,352 --> 00:34:50,060 Naredili bodo le kaj povej jim, da storijo. 759 00:34:50,060 --> 00:34:54,270 In če niste nedvoumne so verjetno bo vrgel napako. 760 00:34:54,270 --> 00:34:57,700 >> Če niste nedvoumna, kako narediti arašidovo maslo in žele sendvič 761 00:34:57,700 --> 00:34:59,510 čudne stvari, ki bi lahko prišli. 762 00:34:59,510 --> 00:35:00,580 To je ista ideja. 763 00:35:00,580 --> 00:35:03,100 Zdaj pa zadostuje, da pravijo, da je nekatere druge sekvence za izhod v sili, 764 00:35:03,100 --> 00:35:04,820 ampak bomo prišli do tiste pred dolgo. 765 00:35:04,820 --> 00:35:07,410 V bistvu to escape zaporedja predstavljajo nekaj 766 00:35:07,410 --> 00:35:10,480 da morda ne boste mogli prelahko na tipkovnici, 767 00:35:10,480 --> 00:35:12,010 brez zmedeno računalnik. 768 00:35:12,010 --> 00:35:15,733 >> Zdaj medtem imamo ograd v printf. 769 00:35:15,733 --> 00:35:19,630 Odstotek d, ki je lahko napisana tudi V skoraj vseh primerih so odstotnim i, 770 00:35:19,630 --> 00:35:21,610 je ograda za kakšen tip podatkov? 771 00:35:21,610 --> 00:35:23,920 Kakšen tip vrednosti? 772 00:35:23,920 --> 00:35:24,920 Decimalno število. 773 00:35:24,920 --> 00:35:27,234 Tako dejansko bomo začeli uporabo odstotno i, ker je 774 00:35:27,234 --> 00:35:28,650 malo enostavnejši, kot celo število. 775 00:35:28,650 --> 00:35:29,550 Odstotkov i. 776 00:35:29,550 --> 00:35:31,320 Celo, da se zgodi, da bo decimalko. 777 00:35:31,320 --> 00:35:35,690 >> Odstotkov s smo že rekli, da je Ograda za niz. 778 00:35:35,690 --> 00:35:38,630 Ki je le beseda, stavek, odstavek, esej, karkoli. 779 00:35:38,630 --> 00:35:40,830 To zaporedje znakov neke dolžine. 780 00:35:40,830 --> 00:35:42,820 In bomo videli kmalu nekatere od teh drugih. 781 00:35:42,820 --> 00:35:45,950 Toda odstotkov c za eno značaja. 782 00:35:45,950 --> 00:35:48,500 Odstotek f za plavajočo vejico, 783 00:35:48,500 --> 00:35:50,860 kot realno število, ki ima decimalno vejico v njej, ki 784 00:35:50,860 --> 00:35:52,550 seveda ni celo število. 785 00:35:52,550 --> 00:35:54,670 In tam je cela kup drugih. 786 00:35:54,670 --> 00:35:56,990 >> Medtem v C, in v veliko jezikov, 787 00:35:56,990 --> 00:35:58,650 imamo različne vrste podatkov. 788 00:35:58,650 --> 00:36:00,650 Različne vrste steklene sklede, če hočete. 789 00:36:00,650 --> 00:36:03,830 Skleda sem zadnjič je za ping pong žogice, 790 00:36:03,830 --> 00:36:06,990 vendar pa lahko shranite tudi drugačna vrednote, kot znakov in godala 791 00:36:06,990 --> 00:36:10,820 in cela števila v posodi, kot spremenljivko, in C je ti. 792 00:36:10,820 --> 00:36:14,020 Char je vrsta podatkov, tip spremenljivke, 793 00:36:14,020 --> 00:36:15,700 , v katerem lahko shranite značaj. 794 00:36:15,700 --> 00:36:19,560 Plovec je vrsta spremenljivko ki jih lahko shranite realno število. 795 00:36:19,560 --> 00:36:21,220 >> Int je seveda za notr. 796 00:36:21,220 --> 00:36:23,760 In precej smešno imenovan dolgo dolgo 797 00:36:23,760 --> 00:36:26,830 je, kjer lahko shranite v bistvu res dolga številka, s še 798 00:36:26,830 --> 00:36:29,930 več cifre potem Tipičen premoč int store. 799 00:36:29,930 --> 00:36:32,420 Ampak se bomo vrnili na to kmalu. 800 00:36:32,420 --> 00:36:35,520 >> V CS50 dot h medtem druga glava datoteke 801 00:36:35,520 --> 00:36:37,630 da smo videli nekaj krat v uporabi, pa je 802 00:36:37,630 --> 00:36:41,350 drugi dve podatkovni tipi, ki ne obstajajo v C običajno. 803 00:36:41,350 --> 00:36:45,000 Ena je niz, in bomo videli, v nekaj tednov kakšne strune zares 804 00:36:45,000 --> 00:36:46,610 so pod pokrovom. 805 00:36:46,610 --> 00:36:47,950 In ena je bool. 806 00:36:47,950 --> 00:36:51,650 In bool je spremenljivka, ki lahko samo na določenih vrednotah. 807 00:36:51,650 --> 00:36:54,370 In temelji le na prejšnji teden je razlaga Scratch, 808 00:36:54,370 --> 00:36:56,680 in v zadnjem času C, kaj bi si ugibati 809 00:36:56,680 --> 00:37:01,770 sta možni vrednosti nekateri posoda, ki je tipa bool? 810 00:37:01,770 --> 00:37:02,860 >> Da in ne. 811 00:37:02,860 --> 00:37:03,870 Eno in nič. 812 00:37:03,870 --> 00:37:04,502 Drži ali ne drži. 813 00:37:04,502 --> 00:37:07,460 In res, da je zadnji, ki se nagiba je konvencionalen pri programiranju 814 00:37:07,460 --> 00:37:10,030 jezika, ki pravi nekaj kot resnična ali neresnična. 815 00:37:10,030 --> 00:37:13,160 >> Medtem knjižnica CS50 prihaja s kopico funkcionalnosti 816 00:37:13,160 --> 00:37:16,640 da osebje napisal za vas, poleg tega pravkar dobili niz. 817 00:37:16,640 --> 00:37:20,910 Smo pisali vnaprej funkcij, ki nivoju celo število od uporabnika, 818 00:37:20,910 --> 00:37:22,990 dobili en znak, dobil plovec, ki 819 00:37:22,990 --> 00:37:25,160 je le število z decimalno vejico. 820 00:37:25,160 --> 00:37:28,290 Get dolgo dolgo, res velika vrednost od uporabnika. 821 00:37:28,290 --> 00:37:30,930 Tako smo videli le to ukrepi v obliki GetString. 822 00:37:30,930 --> 00:37:33,230 Ampak preko teh funkcij Kmalu bo lahko napisali 823 00:37:33,230 --> 00:37:36,070 Programi, ki dobijo prispevek od uporabnika. 824 00:37:36,070 --> 00:37:39,230 >> Medtem pa, da je to Program, in menijo, 825 00:37:39,230 --> 00:37:42,600 kako bi mi zdaj začeli dodati da se z novimi konstrukti. 826 00:37:42,600 --> 00:37:44,530 Hitro tornado turnejo in potem bomo pogledali, 827 00:37:44,530 --> 00:37:47,340 na nekatere pisanju nekaterih Programi ročno sami. 828 00:37:47,340 --> 00:37:49,700 Od zdaj naprej, če želimo izvajanje pogoja, 829 00:37:49,700 --> 00:37:52,790 to ne bo videti kot lepo lepo puzzle piece. 830 00:37:52,790 --> 00:37:54,460 To se dogaja, poglej malo bolj skrivnostne. 831 00:37:54,460 --> 00:37:57,620 Toda to je kanonično struktura pogoja C. 832 00:37:57,620 --> 00:38:00,380 >> Beseda, če dva oklepaji, znotraj katere 833 00:38:00,380 --> 00:38:02,590 se bo nekakšna Boolove izražanja. 834 00:38:02,590 --> 00:38:04,999 Zdaj slash slash v sredini, to je 835 00:38:04,999 --> 00:38:07,290 Trenutno nekako podobnega psevdokoda koda ograda. 836 00:38:07,290 --> 00:38:11,576 Ampak bolj pravilno, vsaka vrstica kode v C-ju, ki se začne z slash slash 837 00:38:11,576 --> 00:38:12,850 je komentar. 838 00:38:12,850 --> 00:38:15,920 >> To je kot lepljive opombe, ki jih lahko dal na eseju, ki je natisnjena na papirju. 839 00:38:15,920 --> 00:38:17,290 To je bankovec za sebe. 840 00:38:17,290 --> 00:38:20,100 To nima nobene funkcionalne vpliv na program. 841 00:38:20,100 --> 00:38:23,580 To je neke vrste opomnik, da je svoje Dokumentacija o tem, kaj se dogaja. 842 00:38:23,580 --> 00:38:25,720 Torej, to storiti v tem trenutku je neke vrste ogrado 843 00:38:25,720 --> 00:38:27,560 za vse, kar je notri teh zavitimi oklepaji 844 00:38:27,560 --> 00:38:29,810 sčasoma se bo nekaj storiti. 845 00:38:29,810 --> 00:38:35,160 >> Medtem imate dve vilice v road, če drug konstrukt, kot je ta. 846 00:38:35,160 --> 00:38:37,024 Lahko, če elseif, drugje. 847 00:38:37,024 --> 00:38:39,690 Zdaj je treba omeniti predvsem če ste bili Googling okoli 848 00:38:39,690 --> 00:38:42,480 spletu za sredstva od radovednost, ali če ste pick up 849 00:38:42,480 --> 00:38:44,575 eden Seveda je Priporočene knjige o C, 850 00:38:44,575 --> 00:38:48,430 boste videli, da imamo ljudje veliko z različnimi preferencami, kako 851 00:38:48,430 --> 00:38:50,510 izražajo v kodi. 852 00:38:50,510 --> 00:38:53,800 Nekateri ljudje radi dajo zavitimi oklepaji, kot sem tukaj naredil. 853 00:38:53,800 --> 00:38:57,760 Nekateri ljudje radi dal kodrasti naramnice na primer tukaj. 854 00:38:57,760 --> 00:39:01,700 >> Nekateri ljudje radi dajo elses tu gor in potem je to tukaj. 855 00:39:01,700 --> 00:39:05,120 Tam je poljubno število načinov pisati kodo, in nobeden od njih 856 00:39:05,120 --> 00:39:06,566 Prav po sebi. 857 00:39:06,566 --> 00:39:08,440 Kljub temu, da je nekaj da so precej narobe. 858 00:39:08,440 --> 00:39:11,315 Vendar pa obstajajo ne--, če je to navsezadnje zelo verna razprava. 859 00:39:11,315 --> 00:39:13,940 V bistvu, eden od najbolj moteč stvari o računalništvu 860 00:39:13,940 --> 00:39:16,310 je, kako nepopustljivi računalniški znanstveniki lahko. 861 00:39:16,310 --> 00:39:19,880 In boste ugotovili, čez čas, da tudi ti razviti osebne preference 862 00:39:19,880 --> 00:39:22,130 o tem, kako bi vaša koda poglej. 863 00:39:22,130 --> 00:39:27,162 >> Ne samo obnašajo, ne samo ustvariti donos, ampak kako naj bi bilo videti estetsko. 864 00:39:27,162 --> 00:39:30,120 Torej, kaj bomo storili je, ki vas bo vodil po pot v smeri, za zdaj vsaj 865 00:39:30,120 --> 00:39:34,825 standardna CS50 slog, ki je vsaj ohranja stvari enoten in enostaven za branje. 866 00:39:34,825 --> 00:39:37,330 Ampak bolj na tiste, razlike pred dolgo. 867 00:39:37,330 --> 00:39:41,830 >> Logični izraz v C, če vas hotel povedati, če je ta pogoj izpolnjen 868 00:39:41,830 --> 00:39:44,650 in ta drugi pogoj Res, ne boste napisali besedo 869 00:39:44,650 --> 00:39:46,610 in, tako kot v angleščini. 870 00:39:46,610 --> 00:39:50,580 Ste namesto tega uporabite ampersand 'znak, razlogov, se bomo vrnili k. 871 00:39:50,580 --> 00:39:54,520 Če hočeš povedati, ali boste uporabili dva navpične črte, ki na tipkovnici ZDA 872 00:39:54,520 --> 00:39:57,650 je na splošno nad Enter Ključ poleg poševnica nazaj. 873 00:39:57,650 --> 00:40:03,080 In to samo pomeni, da če je ta pogoj ali je ta drugi pogoj je res to. 874 00:40:03,080 --> 00:40:05,210 >> Medtem pa je to nora stvar, ki 875 00:40:05,210 --> 00:40:07,760 boste imeli priložnost enkrat uporabiti v nekaj časa. 876 00:40:07,760 --> 00:40:10,390 Ampak to je samo alternativa način za izražanje sebe. 877 00:40:10,390 --> 00:40:12,400 Ta, za zdaj, dajva določajo, da je samo 878 00:40:12,400 --> 00:40:16,880 en funky način izražanja če elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 To je samo formatiran v smislu primerov, kjer vas dobesedno 880 00:40:19,720 --> 00:40:23,420 naštevajo vrednote, ki boste morda želeli preveriti. 881 00:40:23,420 --> 00:40:24,410 >> Medtem zank. 882 00:40:24,410 --> 00:40:26,842 Videli smo primerjavo Scratch z zanko. 883 00:40:26,842 --> 00:40:29,550 In bom pomahati z roko na kar pomeni, da vsako od teh stvari. 884 00:40:29,550 --> 00:40:33,520 Ampak obvestilo, da se zanka bo zelo pogosto začnejo s ključno besedo za. 885 00:40:33,520 --> 00:40:36,350 Ali bo začela s ključno besedo časa. 886 00:40:36,350 --> 00:40:41,360 Ali bo začela s ključno besedo storiti, in na koncu s ključno besedo časa. 887 00:40:41,360 --> 00:40:43,920 >> Ampak kaj bomo pa videli je več stvari, kot je ta. 888 00:40:43,920 --> 00:40:47,950 Tukaj je na splošno v C, kako lahko razglasi spremenljivko in ji dati vrednost. 889 00:40:47,950 --> 00:40:50,610 V C ne zadostuje, kot v Scratch, ki ste jo pravkar 890 00:40:50,610 --> 00:40:52,810 pravijo, da mi spremenljivo imenuje nekaj. 891 00:40:52,810 --> 00:40:55,960 Moraš povedati, C, in povejte prevajalnik, natančneje, 892 00:40:55,960 --> 00:40:58,680 kakšen tip vrednosti kajne želijo dati v stekleno skledo. 893 00:40:58,680 --> 00:40:59,610 >> Je celo število? 894 00:40:59,610 --> 00:41:02,210 Če je temu tako, boste morali dobesedno pravijo int in nato 895 00:41:02,210 --> 00:41:04,220 ime spremenljivke, nato podpičje. 896 00:41:04,220 --> 00:41:08,050 Če boste namesto tega želeli niz in pozval to je tako, kot sem svojo kodo danes tukaj, 897 00:41:08,050 --> 00:41:10,920 bi rekli, String s podpičjem. 898 00:41:10,920 --> 00:41:14,200 Ko želite, da bi to vrednost lahko nato uporabite enačaj, 899 00:41:14,200 --> 00:41:16,211 sicer znan kot operator naloga. 900 00:41:16,211 --> 00:41:17,960 In opazili, kako vsak teh vrstic kode 901 00:41:17,960 --> 00:41:20,650 ima podpičjem na koncu tega. 902 00:41:20,650 --> 00:41:22,550 >> Vendar odkrito povedano je to le zgleda malo grdo. 903 00:41:22,550 --> 00:41:26,580 Zakaj ne morem reči, da se z računalnikom, daj me spremenljiva in jo inicializirati na nič. 904 00:41:26,580 --> 00:41:28,380 To pomeni, da mi prazno stekleno skledo. 905 00:41:28,380 --> 00:41:28,980 Medtem ko lahko. 906 00:41:28,980 --> 00:41:32,250 In tako eden od sodbe ste klice boste morali slogovno sčasoma 907 00:41:32,250 --> 00:41:36,290 je, ne da napišete kodo, kot je ta, ali ti nekako počistiti in navdušil 908 00:41:36,290 --> 00:41:39,040 ljudje s pisanjem dveh vrstic kot samo enega. 909 00:41:39,040 --> 00:41:41,830 In bi se to šteje na splošno bolj eleganten način 910 00:41:41,830 --> 00:41:43,870 pisanje kodo slogovno. 911 00:41:43,870 --> 00:41:45,200 >> Funkcije bomo seveda videli. 912 00:41:45,200 --> 00:41:46,340 Oni bodo to obliko. 913 00:41:46,340 --> 00:41:48,881 Ime funkcije, nekateri oklepaje, nato pa morda nekaj 914 00:41:48,881 --> 00:41:49,910 stvari notri. 915 00:41:49,910 --> 00:41:52,540 Ali lahko vidite uporabe več funkcij stran 916 00:41:52,540 --> 00:41:55,980 s strani, kot nekaj podobnega. 917 00:41:55,980 --> 00:41:59,390 Zdaj kot tangenta, ne to šala zdaj smiselna? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Smeh] 920 00:42:04,960 --> 00:42:09,360 To ne pomeni, da je smešno, ampak pa morda bi malo bolj smiselno. 921 00:42:09,360 --> 00:42:12,140 Torej, zdaj gremo v CS50 aparata za trenutek. 922 00:42:12,140 --> 00:42:14,640 In mi odprla eno teaser tukaj. 923 00:42:14,640 --> 00:42:17,470 >> In res eden od razlogov, za uvedbo IKEA katalog 924 00:42:17,470 --> 00:42:20,080 in utripajoče slike iPhone bit nazaj 925 00:42:20,080 --> 00:42:24,700 je bil dejansko povezati skupaj Dejstvo, da je pred nekaj leti, leta 2007, 926 00:42:24,700 --> 00:42:26,540 Ta del kode je sprosti, ki je bil 927 00:42:26,540 --> 00:42:29,820 eden od zelo prvi izvedbi kosa opreme 928 00:42:29,820 --> 00:42:31,494 , da naredi tisto, kar se imenuje beg iz zapora. 929 00:42:31,494 --> 00:42:34,410 Za tiste neznane, beg iz zapora nekaj podobnega telefon ali iPhone 930 00:42:34,410 --> 00:42:37,680 pomeni v bistvu kipec izvedeti, kako narediti stvari 931 00:42:37,680 --> 00:42:39,864 s tem, da je družba ki je ne namerava. 932 00:42:39,864 --> 00:42:42,780 Kot si želite namestiti nekatere programsko opremo, ki je ni v App Store, 933 00:42:42,780 --> 00:42:45,405 beg iz zapora telefon, ki počneš stvari, kot to in še več. 934 00:42:45,405 --> 00:42:47,447 Toda kaj je bilo zabavno 2007-- in da je bilo 935 00:42:47,447 --> 00:42:49,780 desetine različnih verzij od teh stvari od takrat, 936 00:42:49,780 --> 00:42:53,540 v vseh vrst, je, da languages-- ta program tukaj, imenovano iUnlock, 937 00:42:53,540 --> 00:42:57,036 je bila dejansko napisana v C. In tako sem potegnil do izvorne kode za to, 938 00:42:57,036 --> 00:42:59,910 samo da bi nekako pokazal nekaj podobnosti z konstrukti 939 00:42:59,910 --> 00:43:01,450 smo že razpravljali doslej. 940 00:43:01,450 --> 00:43:05,150 Zdaj obstaja način, več kompleksnosti tukaj kot smo videli že v razredu. 941 00:43:05,150 --> 00:43:07,160 Dovolite mi, da se pomaknete gor samo malo tukaj. 942 00:43:07,160 --> 00:43:11,520 >> Opazil these-- pa smo opazili nekaj stvari-- Opazil sem te vrstice, 943 00:43:11,520 --> 00:43:14,090 vključno standardne I / O dot h. 944 00:43:14,090 --> 00:43:17,660 In all-- linija 24, prosim-- Opazili Standard I / O 945 00:43:17,660 --> 00:43:21,380 dot h in cel kup drugih datoteke, da očitno drugi ljudje 946 00:43:21,380 --> 00:43:22,160 so napisali. 947 00:43:22,160 --> 00:43:24,850 In če smo se pomaknite navzdol skozi to malo poljubno 948 00:43:24,850 --> 00:43:27,910 Opazil sem, ne vem, kako napisati vse to še sam nujno, 949 00:43:27,910 --> 00:43:28,880 vendar pa, če. 950 00:43:28,880 --> 00:43:30,400 Torej očitno ima to podružnico. 951 00:43:30,400 --> 00:43:33,210 >> In če sem se pomaknite navzdol malo nadalje pa je drugo, če. 952 00:43:33,210 --> 00:43:38,210 Če sem se pomaknite navzgor, mislim, okoli vrstice 100 Videl sem za. 953 00:43:38,210 --> 00:43:40,020 Torej, nisem čisto prepričan, kako to deluje še 954 00:43:40,020 --> 00:43:43,180 ampak to je za zanko, ki se dogaja, da Naj ponoviti določeno število krat. 955 00:43:43,180 --> 00:43:45,230 In če sem se pomaknete vse do dna 956 00:43:45,230 --> 00:43:51,020 Vidim, da obstaja deluje tukaj imenuje 957 00:43:51,020 --> 00:43:54,570 Glavni in nekaj dodatnih kreditov za vaš užitek branja. 958 00:43:54,570 --> 00:43:57,830 >> Torej, to je le say-- in bomo dal Ta spletna med virom teku je 959 00:43:57,830 --> 00:44:01,480 Koda today-- da tudi nekatere od teh naprave, ki jih imamo za samoumevne, 960 00:44:01,480 --> 00:44:05,130 ob koncu dneva si še uporabo te osnovne konstrukte, ki smo jih 961 00:44:05,130 --> 00:44:07,430 že uvaja doslej. 962 00:44:07,430 --> 00:44:08,620 To je dovolj, da je eden. 963 00:44:08,620 --> 00:44:11,480 V redu, zdaj pojdiva dejansko zgraditi nekaj. 964 00:44:11,480 --> 00:44:15,640 >> Pojdimo presegajo nekaj podobnega hello.c in odpiranje tem, 965 00:44:15,640 --> 00:44:17,170 kaj je napisal ta program tukaj. 966 00:44:17,170 --> 00:44:19,850 Jaz grem naprej in napisati program, imenovan adder.c, 967 00:44:19,850 --> 00:44:23,310 katerih namen v življenju se bo kot moj prvi super kalkulator 968 00:44:23,310 --> 00:44:24,840 da samo dodaja nekaj številk. 969 00:44:24,840 --> 00:44:27,050 Ne zato, ker je to težko problem, ampak zato, ker je 970 00:44:27,050 --> 00:44:29,390 Omogoča mi, da tie skupaj nekaj stvari. 971 00:44:29,390 --> 00:44:33,100 Torej bom, da gredo naprej in vključi Standard I / O dot h in CS50 dot h. 972 00:44:33,100 --> 00:44:34,670 Jaz bom rekel, int main praznino. 973 00:44:34,670 --> 00:44:36,545 In še enkrat v prihodnosti bomo prišli nazaj na to 974 00:44:36,545 --> 00:44:38,560 sprejetih v zvezi s tem in praznih sredstvi. 975 00:44:38,560 --> 00:44:43,340 >> In zdaj bom povedal nekaj kot printf, daj mi celo število. 976 00:44:43,340 --> 00:44:47,610 In zdaj na moji drugi vrstici, kako izraziti sebe kot 977 00:44:47,610 --> 00:44:50,980 da želim, da razglasi spremenljivko da se dogaja, da shranite int? 978 00:44:50,980 --> 00:44:55,470 Dobesedno kaj naj vpišem, če želim ustvariti spremenljivko, ki shranjuje int 979 00:44:55,470 --> 00:44:58,270 bi rekel? 980 00:44:58,270 --> 00:44:59,650 int enaka getint. 981 00:44:59,650 --> 00:45:00,485 Prepričan, da deluje. 982 00:45:00,485 --> 00:45:02,360 In ravno zaradi doslednosti s kodo, ki jo bom 983 00:45:02,360 --> 00:45:04,485 glej na spletu, naj mi spremeniti to x, samo zato, ker x 984 00:45:04,485 --> 00:45:06,830 je skupno ime spremenljivke uporabiti, vsaj v algebre. 985 00:45:06,830 --> 00:45:08,720 Zdaj pa grem naprej in se spet printf. 986 00:45:08,720 --> 00:45:10,692 Daj mi še eno celo število. 987 00:45:10,692 --> 00:45:12,900 In zdaj bom naravi od naučili iz tega vzorca, 988 00:45:12,900 --> 00:45:14,490 Jaz bom rekel, int y dobi GetInt. 989 00:45:14,490 --> 00:45:16,340 >> In smo se ne uporablja GetInt prej, ampak samo 990 00:45:16,340 --> 00:45:19,860 kot GetString gre in dobi niz, kot Javier storil iz občinstva, 991 00:45:19,860 --> 00:45:22,780 Podobno počne GetInt začne utripati na poziv. 992 00:45:22,780 --> 00:45:26,750 In dejansko čaka na uporabnika da ga celo, da ga vnesete v 993 00:45:26,750 --> 00:45:27,900 in pritisnemo Enter. 994 00:45:27,900 --> 00:45:30,850 Zdaj na koncu bom naredil to printf vsoto o-- 995 00:45:30,850 --> 00:45:36,080 in kaj mi fancy sedaj-- odstotka i in odstotka i prisoten 996 00:45:36,080 --> 00:45:39,270 i klicaj ubežnimi n. 997 00:45:39,270 --> 00:45:42,750 In kaj misliš, da bom dal v zdaj kot dodatne vhode 998 00:45:42,750 --> 00:45:44,620 da printf? 999 00:45:44,620 --> 00:45:47,380 >> Nočem reči dobesedno citiram konec citata x. 1000 00:45:47,380 --> 00:45:52,210 Želim razred v x in takrat in zdaj gremo fancy 1001 00:45:52,210 --> 00:45:54,420 in kaj je samo prevzeti lahko počnemo, kar hočemo. 1002 00:45:54,420 --> 00:45:56,330 Kaj hočeš povedati zraven? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 In res, da bo delovalo. 1005 00:45:58,520 --> 00:46:01,760 To je minimalno programskih jezikov Razumem osnovne aritmetične, 1006 00:46:01,760 --> 00:46:03,500 in da naj bi to v resnici dela. 1007 00:46:03,500 --> 00:46:06,730 >> Zato naj gredo naprej in ne predstavljajo adder v mojem črno-belem oknu 1008 00:46:06,730 --> 00:46:08,090 dol, Enter. 1009 00:46:08,090 --> 00:46:10,830 Cryptic linija vendar nobena napaka sporočilo, da je dobro. 1010 00:46:10,830 --> 00:46:14,410 Dot poševnica seštevalnik, daj mi celo, 1. 1011 00:46:14,410 --> 00:46:16,230 Daj mi še eno celo število, 2. 1012 00:46:16,230 --> 00:46:18,770 Vsota 1 in 2 je 3. 1013 00:46:18,770 --> 00:46:21,730 >> V redu, torej precej trivialna Program, ampak kaj je to naredil? 1014 00:46:21,730 --> 00:46:25,680 To mi je omogočila, da uporabite funkcijo poklicati tukaj, pokličite drugo funkcijo tukaj, 1015 00:46:25,680 --> 00:46:29,260 dve klici GetInt, a Tretji klic printf, 1016 00:46:29,260 --> 00:46:30,720 in nato z uporabo te ograde. 1017 00:46:30,720 --> 00:46:33,160 Torej, to je malo več zapletena kot zadnjič. 1018 00:46:33,160 --> 00:46:35,260 Kaj pa, če želim malo Ljubitelj? 1019 00:46:35,260 --> 00:46:38,900 >> Dovolite mi, da gredo naprej in zdaj to. 1020 00:46:38,900 --> 00:46:42,890 Dovolite mi, da gredo naprej in ustvariti novo datoteko z imenom razmere nič. 1021 00:46:42,890 --> 00:46:44,890 In bom, da shranite nekaj časa za razrede zaradi 1022 00:46:44,890 --> 00:46:48,260 in samo paste, da kodo kot izhodišče. 1023 00:46:48,260 --> 00:46:51,510 In zdaj bom samo, da dajo nekaj novega, tukaj v sredini. 1024 00:46:51,510 --> 00:46:55,889 Torej printf Rad bi celo prosim. 1025 00:46:55,889 --> 00:46:58,180 In vse to koda je na voljo na spletni strani seveda je, 1026 00:46:58,180 --> 00:47:00,556 vam ni treba vse tip out v razredu, če raje ne bi. 1027 00:47:00,556 --> 00:47:02,638 int, in zdaj bom uporabo, namesto x in y, 1028 00:47:02,638 --> 00:47:05,270 Bom uporabila n, ki je Verjetno najpogostejše ime 1029 00:47:05,270 --> 00:47:09,220 za celo število v računalniškem programu. 1030 00:47:09,220 --> 00:47:12,060 In sedaj želim narediti Malo sodba tukaj. 1031 00:47:12,060 --> 00:47:15,460 Bom videl, če n je večji od 0, potem 1032 00:47:15,460 --> 00:47:23,670 Jaz bom rekel, printf-- Ops, printf-- si izbral pozitivno število, 1033 00:47:23,670 --> 00:47:25,370 Klicaj Nagibnica n. 1034 00:47:25,370 --> 00:47:26,460 Zaprite to. 1035 00:47:26,460 --> 00:47:33,150 Else bom izpisal printf si izbral negativno število. 1036 00:47:33,150 --> 00:47:35,377 >> Zdaj pa, preden vpij name, kaj je zagon tega programa. 1037 00:47:35,377 --> 00:47:36,210 Pusti me tukaj. 1038 00:47:36,210 --> 00:47:40,730 In kako sestaviti program imenovano pogoji dash 0? 1039 00:47:40,730 --> 00:47:42,300 Naredite pogoji pomišljaj 0. 1040 00:47:42,300 --> 00:47:45,560 Nekako neumno ime, ampak-- prekleto. 1041 00:47:45,560 --> 00:47:47,560 OK, dobro poučevanje trenutek. 1042 00:47:47,560 --> 00:47:48,410 Zakaj je, da je prekinil? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Kaj sem slučajno poklical to sliko? 1045 00:47:54,710 --> 00:47:56,876 Lahko nekako sklepati v zavihku tukaj. 1046 00:47:56,876 --> 00:47:58,750 Tako da to ni slabo, da sem to storil, ker ta 1047 00:47:58,750 --> 00:48:00,208 se bo zgodilo, morda za nekatere od vas. 1048 00:48:00,208 --> 00:48:03,880 Zato sem pomotoma poimenoval moj Izvorna koda stanje 0. 1049 00:48:03,880 --> 00:48:09,950 Ampak moja izvorna koda z dogovorom naj bi v datoteki pogoj 0 armatura C, 1050 00:48:09,950 --> 00:48:11,720 ali karkoli dot c. 1051 00:48:11,720 --> 00:48:12,610 >> Torej naj to popravim. 1052 00:48:12,610 --> 00:48:16,880 Tako kot so Microsoft Word lahko grem gor na Save As in ne pogoj 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Zdaj pa samo, da je urejeno, da sem dogaja, da gredo naprej in odstranite 1054 00:48:20,100 --> 00:48:23,020 stanje 0, kar je bila moja stara verzija. 1055 00:48:23,020 --> 00:48:26,550 In zdaj pa ne bo stanje 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, se zdi dobra. 1057 00:48:27,870 --> 00:48:29,510 >> Stanje 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Rad bi celo prosim, 50, si izbral pozitivno število. 1059 00:48:33,530 --> 00:48:35,390 Zdaj kaj pa negativno 50? 1060 00:48:35,390 --> 00:48:37,660 Izbral si negativno število. 1061 00:48:37,660 --> 00:48:39,605 Kaj pa zdaj, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Precej prepričan 0 ni negativen. 1064 00:48:45,350 --> 00:48:47,780 >> Torej, to je nekako logično napako. 1065 00:48:47,780 --> 00:48:50,680 Kako naj to popravim? 1066 00:48:50,680 --> 00:48:57,260 Else če je n manj kot 0, to drug ne lahko imamo trismerni podružnico tukaj, 1067 00:48:57,260 --> 00:49:01,740 printf si izbral 0. 1068 00:49:01,740 --> 00:49:06,150 Torej, zdaj, če sem to ponovi Program, potem ko je sestavljanje 1069 00:49:06,150 --> 00:49:10,790 spet z znamko, in zdaj ponovno zaženite stanje 0, kaj bom videl tukaj 1070 00:49:10,790 --> 00:49:14,570 0 mi daje ta izhod. 1071 00:49:14,570 --> 00:49:16,280 Torej, kam gremo s tem? 1072 00:49:16,280 --> 00:49:18,930 >> No, to je zelo enostavno izgubiti izpred oči gozda za drevesa. 1073 00:49:18,930 --> 00:49:23,590 In tako nam omogočajo, da sklene s tem 2 in 1/2 minuti video 1074 00:49:23,590 --> 00:49:25,710 da je na koncu malo z oglasom iz Googla, 1075 00:49:25,710 --> 00:49:28,850 ampak to je res dokaz, da kaj sploh uporabljajo te osnovne stavbe 1076 00:49:28,850 --> 00:49:33,020 bloki v resnici lahko storite enkrat imamo malo programiranja 1077 00:49:33,020 --> 00:49:34,463 zdrava pamet v okviru naših pasov. 1078 00:49:34,463 --> 00:49:35,150 >> [Predvajanje glasbe] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (VoiceOver): To je bilo pred 26 leti, 1081 00:49:40,540 --> 00:49:42,470 in sem bil tik pred obrniti 5. 1082 00:49:42,470 --> 00:49:45,465 Smo prišli do železniške postaje in smo se vkrcali naš vlak skupaj. 1083 00:49:45,465 --> 00:49:48,010 Moj brat je pravkar rekel, da bom ostati tukaj, in bom prišel nazaj. 1084 00:49:48,010 --> 00:49:51,140 In sem mislil, dobro veste, Jaz bi tudi samo za spanje 1085 00:49:51,140 --> 00:49:52,690 in on bo samo zbudi me. 1086 00:49:52,690 --> 00:49:55,145 In ko sem se zbudil naslednji dan, cel prevoz 1087 00:49:55,145 --> 00:49:59,125 je bil prazen na pobegli vlak, duh Vlak me pelješ ne vem kje. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> I je bil sprejet iz Avstralije, do avstralske družine. 1090 00:50:06,280 --> 00:50:09,710 In je mama okrašena my soba z zemljevidom Indije, 1091 00:50:09,710 --> 00:50:11,950 ki je dal zraven moji postelji. 1092 00:50:11,950 --> 00:50:15,830 Zbudil sem se vsako jutro vidim, da je zemljevid, in zato 1093 00:50:15,830 --> 00:50:18,530 nekako ohranil spomine živ. 1094 00:50:18,530 --> 00:50:20,530 Ljudje bi rekli, da ste poskuša najti iglo 1095 00:50:20,530 --> 00:50:23,560 v senu, Saroo ne boste nikoli našli. 1096 00:50:23,560 --> 00:50:28,540 >> Jaz bi zasvetil od krajev, ki sem hodil, utripa moje družine 1097 00:50:28,540 --> 00:50:29,890 sooča. 1098 00:50:29,890 --> 00:50:34,060 Prišlo je podoba moje matere, sedel z nogami čez, 1099 00:50:34,060 --> 00:50:35,740 samo gledal jokati. 1100 00:50:35,740 --> 00:50:38,160 Življenje je samo tako težko. 1101 00:50:38,160 --> 00:50:41,237 To je bil moj zaklad. 1102 00:50:41,237 --> 00:50:44,320 In sem gledal na Google Map in ugotovil, da je Google Earth, kot dobro. 1103 00:50:44,320 --> 00:50:48,140 V svetu, kjer si lahko povečate, Začel sem, da so vse te misli 1104 00:50:48,140 --> 00:50:51,500 in kakšne možnosti da bi to naredil zame. 1105 00:50:51,500 --> 00:50:54,890 Rekel sem si, saj veš, ki ste jih dobil vse tiste fotografske spomine 1106 00:50:54,890 --> 00:50:58,590 in znamenitosti, od kod si, in Veste, kaj mesto izgleda. 1107 00:50:58,590 --> 00:51:03,060 To bi lahko bila aplikacija, ki lahko uporabite, da bi našli svojo pot nazaj. 1108 00:51:03,060 --> 00:51:06,720 >> Mislil sem, pa bom dal dot na Kalkuti železniške postaje, 1109 00:51:06,720 --> 00:51:10,890 in polmer črta, saj veste, da vas treba iskati okoli tega območja. 1110 00:51:10,890 --> 00:51:13,750 Nekako sem prišel čez ta vlak skladbe. 1111 00:51:13,750 --> 00:51:18,160 In sem začel po njej, in Prišel sem do železniške postaje, ki 1112 00:51:18,160 --> 00:51:22,228 kaže isto sliko da je bilo v mojih spominih. 1113 00:51:22,228 --> 00:51:23,707 Vse se ujema. 1114 00:51:23,707 --> 00:51:27,950 Mislil sem, da ja, sem vem, kam grem. 1115 00:51:27,950 --> 00:51:30,116 Jaz bom samo pustite Načrt, da imam v glavi 1116 00:51:30,116 --> 00:51:33,080 vodi me in odpelji me nazaj v mojem rodnem mestu. 1117 00:51:33,080 --> 00:51:36,420 >> Prišel sem na pragu hiša, ki sem se rodil. 1118 00:51:36,420 --> 00:51:39,140 In hodil okoli 15 metrov okoli kota 1119 00:51:39,140 --> 00:51:42,980 je bil tri dame stoječe zunaj, v bližini drug drugega. 1120 00:51:42,980 --> 00:51:47,830 In sredinska stopil naprej, in Mislil sem, da je to tvoja mama. 1121 00:51:47,830 --> 00:51:53,450 Ona se je javilo, da me je objela in smo bili tam za približno pet minut. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Zgrabila me za roko in ona me je v hišo 1124 00:51:59,000 --> 00:52:02,450 in imam na telefonu, kjer je Zazvonil mojo sestro in brata 1125 00:52:02,450 --> 00:52:05,600 reči, da veš, Tvoj brat ima samo 1126 00:52:05,600 --> 00:52:09,340 se naenkrat pojavil kot duh. 1127 00:52:09,340 --> 00:52:12,440 In potem se je družina ponovno združena. 1128 00:52:12,440 --> 00:52:15,110 Vse, kar je vse dobro, Pomagal sem svojo mamo ven, 1129 00:52:15,110 --> 00:52:17,110 ji ni treba slaving proč. 1130 00:52:17,110 --> 00:52:19,555 Ona lahko živi ostalo njenega življenja v miru. 1131 00:52:19,555 --> 00:52:23,460 >> V senu je bilo igle, vendar igla bil tam. 1132 00:52:23,460 --> 00:52:24,400 Vse, kar je tam. 1133 00:52:24,400 --> 00:52:28,260 Vse, kar imamo na svetu je iz pipe na gumb. 1134 00:52:28,260 --> 00:52:32,010 Ampak moraš imeti voljo in odločenost, da si ga želi. 1135 00:52:32,010 --> 00:52:32,950 >> [Predvajanje glasbe] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Čudovito sladko pričevanju 1138 00:52:38,170 --> 00:52:40,540 samo tisto, kar lahko zdaj storiti s tehnologijo. 1139 00:52:40,540 --> 00:52:43,390 Vam bomo videli naslednji teden. 1140 00:52:43,390 --> 00:52:44,374