1 00:00:00,000 --> 00:00:01,500 >> [Muziciranja] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: U redu je to CS50 i to je kraj tjedna jednog. 4 00:00:16,110 --> 00:00:20,760 Dakle, ja bih vam predstaviti moj bivši advisee, Andel Duff, koji ne samo da čini 5 00:00:20,760 --> 00:00:25,460 iPhone 5 stoji, kao i ovaj govornica, on također čini automobile. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Kako ide, svi? 8 00:00:29,510 --> 00:00:31,980 Ja samo želim reći nešto malo o Formule SAE, od kojih sam 9 00:00:31,980 --> 00:00:32,604 sam kapetan. 10 00:00:32,604 --> 00:00:33,437 To je MIT tim. 11 00:00:33,437 --> 00:00:35,520 Ja samo želim reći Dečki malo o tome 12 00:00:35,520 --> 00:00:37,520 i nadamo se generirati neki interes. 13 00:00:37,520 --> 00:00:41,590 >> Pa neka mi samo trčanje kroz Par stvari o našem timu. 14 00:00:41,590 --> 00:00:43,640 Tako smo u potpunosti Student vožnji, u kojoj su svi 15 00:00:43,640 --> 00:00:47,300 od članova dizajna, simuliraju, Test, i proizvođač podsustav 16 00:00:47,300 --> 00:00:48,090 iz automobila. 17 00:00:48,090 --> 00:00:51,240 Mi imamo svoje stroj shop te garaže, i N52-- ili mi, 18 00:00:51,240 --> 00:00:54,140 N51-- što je ista zgrada kao MIT Muzeja znanosti. 19 00:00:54,140 --> 00:00:55,990 I mi smo ljudi kako voziti auto. 20 00:00:55,990 --> 00:00:58,340 Postoji nacionalni natječaj na početku ljeta, 21 00:00:58,340 --> 00:01:01,215 a zatim tu su manji jedanaesteraca natjecanja tijekom cijele godine. 22 00:01:01,215 --> 00:01:04,400 I onda mi obuku vozača dana da se novi članovi upoznaju. 23 00:01:04,400 --> 00:01:08,280 >> Naši graditi dani su na Subotom 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Ručak i večera se brine od od Bertucci-a i Beantown 25 00:01:11,060 --> 00:01:12,130 respektivno. 26 00:01:12,130 --> 00:01:15,260 Imamo tjedni sastanak i Seminar, koji je, naravno, za kredit. 27 00:01:15,260 --> 00:01:18,560 Što je novo od ovog semestra, a to će također biti za sljedeći semestar, 28 00:01:18,560 --> 00:01:19,940 tako da možete prijeći-reg za to. 29 00:01:19,940 --> 00:01:22,960 I onda imamo projektiranje, trgovinu, i CAD dana tijekom tjedna, 30 00:01:22,960 --> 00:01:26,870 dok su članovi će samostalno CAD dijelovi, kako bi dionica i tako dalje. 31 00:01:26,870 --> 00:01:29,200 >> Tako je za električni inženjering u ekipi 32 00:01:29,200 --> 00:01:31,110 mi imamo vučna, visoki napon sustava, 33 00:01:31,110 --> 00:01:33,390 koji prometuje na nominalni 300 volti, što uključuje 34 00:01:33,390 --> 00:01:35,360 motori, motorna kontroleri, i baterije. 35 00:01:35,360 --> 00:01:37,235 Onda imamo niske napon sustava, koji traje 36 00:01:37,235 --> 00:01:40,180 na 12 volti, što uključuje kontrole, MOŽE čvorovi, mozak 37 00:01:40,180 --> 00:01:41,570 okvir, a instrumentna ploča. 38 00:01:41,570 --> 00:01:43,890 Što se tiče CS ide, mi radimo imati održavanje web stranica 39 00:01:43,890 --> 00:01:47,940 da mi je potrebno učiniti za događaje, članstvo promjene, nove slike i PR materijala. 40 00:01:47,940 --> 00:01:51,540 I onda imamo kod koji kontrolira auto za naše kontrole trakcije, lansiranja 41 00:01:51,540 --> 00:01:55,750 kontrola, kontrola crtica, okretnog momenta, i regenerativno kočenje sustava, koji 42 00:01:55,750 --> 00:01:59,170 pokrenuti obično u MATLAB, Simulink, i LabVIEW. 43 00:01:59,170 --> 00:02:00,910 >> Reći ću vam malo o autu. 44 00:02:00,910 --> 00:02:02,470 Dakle, to je oko 500 kilograma. 45 00:02:02,470 --> 00:02:04,285 To je pravila ograničena na 85 kilovata. 46 00:02:04,285 --> 00:02:08,310 Ima 2 EMRAX 207 motore natrag, po jedan za svaku stražnji kotač. 47 00:02:08,310 --> 00:02:11,880 To je običaj-izgrađen baterije iz prizma-A123 torbicu stanica, 48 00:02:11,880 --> 00:02:14,780 u ukupnom iznosu od 300 volti i 5.6 kilovat sati. 49 00:02:14,780 --> 00:02:17,950 I to je izravna pogon s Odnos 2,64-1 vožnje. 50 00:02:17,950 --> 00:02:20,970 Ovdje su neke slike mi uzeo od njega na natjecanju. 51 00:02:20,970 --> 00:02:25,820 Evo natrag, nos konus, i ovdje su motori, 52 00:02:25,820 --> 00:02:29,682 one velike crne diskove ispod et mens Manuš. 53 00:02:29,682 --> 00:02:32,140 Evo tobogan da sam izvukao iz našeg natjecanja sheme. 54 00:02:32,140 --> 00:02:35,389 A to je samo uspoređujući naš automobil nekoliko komercijalno dostupnih automobila, 55 00:02:35,389 --> 00:02:38,380 kao KTM XBOW, Ariel Atom, a Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Ako ste upoznati s cijenom, snage povući težinu, dolara po konjskih snaga, 57 00:02:42,110 --> 00:02:44,930 dolara po okretnog momenta, a naš automobil Puše ih iz vode. 58 00:02:44,930 --> 00:02:47,520 Ako imate bilo kakvih pitanja, pribilježiti ovu adresu e-pošte. 59 00:02:47,520 --> 00:02:50,800 Pucaj nam email na fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Mi smo sretni da razgovaraju o što god želite. 61 00:02:53,350 --> 00:02:55,600 Harvardski studenti su ljubazni od manjine u timu. 62 00:02:55,600 --> 00:02:58,350 Ako imate bilo kakvih pitanja o da Vas molimo da puca nam e-mail, 63 00:02:58,350 --> 00:03:00,810 rado razgovarati, a ja ću da se vratimo na to Davidu. 64 00:03:00,810 --> 00:03:01,550 Hvala. 65 00:03:01,550 --> 00:03:02,466 Cijenim to, momci. 66 00:03:02,466 --> 00:03:03,615 [Pljesak] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel proveo ljeto raditi s nama ovdje na kampusu u CS50 69 00:03:10,980 --> 00:03:11,480 ovo ljeto. 70 00:03:11,480 --> 00:03:13,505 A osim rada na Stvari poput binarnih žarulja, 71 00:03:13,505 --> 00:03:16,090 on je zapravo jako otvorena naša eyes-- i rudnik u particular-- 72 00:03:16,090 --> 00:03:20,535 na ono što je stvarno raskrižju Ne hardvera i softvera može biti. 73 00:03:20,535 --> 00:03:23,410 Zapravo puno stvari koje je on samo obišli ste kroz su u konačnici 74 00:03:23,410 --> 00:03:26,030 stvorio prvi u softveru, a onda u konačnici izmišljene 75 00:03:26,030 --> 00:03:27,299 u stvarnom svijetu u hardveru. 76 00:03:27,299 --> 00:03:29,590 Dakle, ako ste zainteresirani za upoznavanje tom raskrižju, 77 00:03:29,590 --> 00:03:31,430 možda potrajati tu skupinu. 78 00:03:31,430 --> 00:03:34,140 >> Sada je u međuvremenu, oni od vas koji su ljubitelji tehnologije, 79 00:03:34,140 --> 00:03:36,140 i Apple proizvodi u Konkretno znam da postoji 80 00:03:36,140 --> 00:03:37,860 bili su par Najave jučer. 81 00:03:37,860 --> 00:03:39,776 No, mislili smo da ćemo pokazati ti onaj koji je došao iz 82 00:03:39,776 --> 00:03:43,590 Nekoliko dana prije da možda niste vidjeli. 83 00:03:43,590 --> 00:03:46,150 >> Jorgen EGHAMMER: Znate, jednom u neko vrijeme nešto 84 00:03:46,150 --> 00:03:49,540 dolazi uz to mijenja način na koji živimo. 85 00:03:49,540 --> 00:03:53,479 Uređaj tako jednostavno i intuitivno koristeći ga osjeća gotovo upoznati. 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 Nije digitalnih knjiga ili e-knjiga, to je knjiga-knjiga. 89 00:04:10,420 --> 00:04:14,440 >> Prva stvar na umu je nema kabeli, ni kabel. 90 00:04:14,440 --> 00:04:18,519 2015 IKEA katalog dolazi potpuno napunjena, 91 00:04:18,519 --> 00:04:20,550 a trajanje baterije je vječan. 92 00:04:20,550 --> 00:04:27,300 Sučelje je 7,5 po 8 inča, ali može se proširiti na 15 po 8 inča. 93 00:04:27,300 --> 00:04:32,410 Navigacijski se temelji na taktilni kontakt tehnologija koja se zapravo može osjetiti. 94 00:04:32,410 --> 00:04:37,120 >> Sadržaj dolazi unaprijed instaliran preko 328 high-definition stranicama 95 00:04:37,120 --> 00:04:40,180 nadahnuća za uređenje doma ideje. 96 00:04:40,180 --> 00:04:43,740 Za početak pregledavanja, jednostavno dodirnite i povucite. 97 00:04:43,740 --> 00:04:50,870 S desna na lijevo za kretanje prema naprijed, lijeva na desno za pomicanje unatrag. 98 00:04:50,870 --> 00:04:52,770 >> Obavijest nešto drugo? 99 00:04:52,770 --> 00:04:53,780 To je točno. 100 00:04:53,780 --> 00:04:55,190 Nema kašnjenja. 101 00:04:55,190 --> 00:04:58,400 Svaki kristalno jasno stranica opterećenja trenutačno, 102 00:04:58,400 --> 00:05:00,586 bez obzira na to koliko brzo pomicanje. 103 00:05:00,586 --> 00:05:03,710 Ako želite dobiti brzi pregled, Samo ga držite u dlanu, 104 00:05:03,710 --> 00:05:06,816 i koristeći samo palac, Brzina pregledavati sadržaj. 105 00:05:06,816 --> 00:05:10,930 >> Ako nađete nešto što želite spremiti za kasnije, jednostavno možete ga označiti. 106 00:05:10,930 --> 00:05:17,620 A čak i ako zatvorite program, možete lako ponovno pronaći oznaku. 107 00:05:17,620 --> 00:05:18,490 Nevjerojatno. 108 00:05:18,490 --> 00:05:20,434 >> [Smijeh] 109 00:05:20,434 --> 00:05:21,406 [Pljesak] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Dakle, to nas dovodi do Kraj tjedna jednog. 112 00:05:29,870 --> 00:05:31,760 Nekoliko najave sada. 113 00:05:31,760 --> 00:05:33,440 Dakle, pod mikroskopom je sada u tijeku. 114 00:05:33,440 --> 00:05:36,860 Idi na tom URL-u ovdje je katkada između sada i petak u podne 115 00:05:36,860 --> 00:05:39,960 zapravo odrediti da li ste Među onima manje udobno, više 116 00:05:39,960 --> 00:05:41,690 ugodno, ili negdje između. 117 00:05:41,690 --> 00:05:44,511 >> To je jedan od onih koji obično stvari koje ste upravo vrsta znaju. 118 00:05:44,511 --> 00:05:47,510 A u stvari, one od vas koji su manje ugodno vjerojatno znate koliko, 119 00:05:47,510 --> 00:05:49,634 one od vas koji su više ugodno znam koliko, 120 00:05:49,634 --> 00:05:54,960 a opet, ako niste sasvim sigurni što od onih kante upadnete u ste 121 00:05:54,960 --> 00:05:56,210 Vjerojatno negdje između. 122 00:05:56,210 --> 00:05:59,810 Ali budite uvjereni možete mijenjati nakon par tjedana, ako bude potrebno. 123 00:05:59,810 --> 00:06:02,620 >> U međuvremenu, za idući tjedan mi ne počnu dijelove po sebi, 124 00:06:02,620 --> 00:06:04,760 ali super sekcija, koje su otvoreni su za sve studente. 125 00:06:04,760 --> 00:06:08,220 To dolazi nedjelja na mjestu na će objavljeni na web stranici kolegija 126 00:06:08,220 --> 00:06:10,190 ćemo imati jednu za one manje udobno, 127 00:06:10,190 --> 00:06:12,470 , kao i jedan za one ugodnije. 128 00:06:12,470 --> 00:06:15,460 A oni negdje između Možete odabrati koji od ta dva, 129 00:06:15,460 --> 00:06:17,360 ili oboje, ako želite, sjediti-u na. 130 00:06:17,360 --> 00:06:19,630 I fokus onih biti ultimativno na C, 131 00:06:19,630 --> 00:06:22,440 što ćemo nastaviti razgovor danas. 132 00:06:22,440 --> 00:06:25,070 >> Problem postaviti 0 međuvremenu je nadamo se u vašim rukama. 133 00:06:25,070 --> 00:06:27,500 Službeno zbog sutra, Četvrtak, točno u podne. 134 00:06:27,500 --> 00:06:29,490 Osim ako u gotovini jedan Vaših 5 kasnih dana, 135 00:06:29,490 --> 00:06:31,780 koji će ga dovesti do petka u podne. 136 00:06:31,780 --> 00:06:34,420 Problem set 1 međuvremenu će biti objavljena na web stranici tečaja je. 137 00:06:34,420 --> 00:06:37,381 A to će biti naš prvi prepad kao klasa u C 138 00:06:37,381 --> 00:06:40,630 I to je problem postaviti spec će vas provesti kroz mnogo se ono što je 139 00:06:40,630 --> 00:06:43,960 počeli smo razgovarati o je u ponedjeljak, , a mi ćemo nastaviti razgovarati o danas. 140 00:06:43,960 --> 00:06:46,770 C, Linux, CS50 aparata, sve to 141 00:06:46,770 --> 00:06:48,990 čekat će vas u specifikaciji. 142 00:06:48,990 --> 00:06:52,840 >> Radno vrijeme u međuvremenu su u tijeku, na dodiplomskom blagovaonici. 143 00:06:52,840 --> 00:06:56,240 Krenite na ovaj URL ovdje da vidim raspored za večeras i sutra, 144 00:06:56,240 --> 00:06:57,930 ako želite sudjelovati. 145 00:06:57,930 --> 00:07:01,920 Pitanja u međuvremenu, tako da vas imaju priliku postavljati pitanja 146 00:07:01,920 --> 00:07:05,860 asinkrono, 24/7, shvatite da ste ne ograničavajući se na dijelove i ured 147 00:07:05,860 --> 00:07:09,530 sata, ali radije ovaj alat Ovdje, CS50 Raspravljati na tom URL-u 148 00:07:09,530 --> 00:07:12,150 će biti online tečaja u oglasna ploča softver, preko kojega 149 00:07:12,150 --> 00:07:15,030 možete postavljati pitanja kolege i također osoblja. 150 00:07:15,030 --> 00:07:18,492 Dakle, imajte na umu da je resurs, kao dobro. 151 00:07:18,492 --> 00:07:20,200 U međuvremenu tradicija počinje ovog petka. 152 00:07:20,200 --> 00:07:23,200 Kao što ste možda nazire iz Prošle srijede je teaser videa, 153 00:07:23,200 --> 00:07:25,510 imamo tradiciju najviše svakog petka tijekom mandata 154 00:07:25,510 --> 00:07:28,750 uzimanja nekih 50 učenika i Osoblje na lokalnom restoranu zvanom 155 00:07:28,750 --> 00:07:31,510 Vatra i led, na kojoj smo obično se pridružili nekim bivšim studentima 156 00:07:31,510 --> 00:07:33,850 ili prijatelji iz industrije općenito teže 157 00:07:33,850 --> 00:07:35,780 napraviti velike klase osjećaju manji. 158 00:07:35,780 --> 00:07:37,560 Tako da je sasvim ležeran ručak. 159 00:07:37,560 --> 00:07:40,160 Hrpa nas, osoblje pogotovo, igrati će glazbene stolice 160 00:07:40,160 --> 00:07:43,360 i razgovor s učenicima o 50, život izvan 50, 161 00:07:43,360 --> 00:07:46,510 život u budućnosti, stvarni svijet, Govorim o mogućnostima zapošljavanja 162 00:07:46,510 --> 00:07:47,680 s prijateljima u industriji. 163 00:07:47,680 --> 00:07:51,110 >> Dakle, ako želite da nam se pridružite ovog petka, krenuti na ovaj URL ovdje. 164 00:07:51,110 --> 00:07:54,180 Prostor je ograničen, ali mi ćemo to učiniti recurringly tijekom trajanja. 165 00:07:54,180 --> 00:07:57,380 Voditelj tamo cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 A ako ne dobijete u ovaj put, ne brinite. 167 00:07:59,380 --> 00:08:02,390 Mi ćemo to učiniti opet u narednim tjednima kao dobro. 168 00:08:02,390 --> 00:08:05,434 >> Dakle, ovo je slika naslikao smo prošlog tjedna, 169 00:08:05,434 --> 00:08:07,350 i vjerojatno sam bio dabbling u do sada. 170 00:08:07,350 --> 00:08:10,360 Ali ajmo pokušati spojiti ovaj sada da ono što ćemo učiniti danas 171 00:08:10,360 --> 00:08:11,440 i nadalje. 172 00:08:11,440 --> 00:08:14,760 Mogu li dobiti jedan volonter? 173 00:08:14,760 --> 00:08:16,000 U redu, ili više. 174 00:08:16,000 --> 00:08:18,460 Kako o ovdje na kraj, u plavoj košulji. 175 00:08:18,460 --> 00:08:20,329 Dođi gore, kako se ti zoveš? 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 Dakle, Alana, za samo moment-- lijepo u susret ti-- 179 00:08:25,100 --> 00:08:28,260 će igrati ulogu ove funkcionirala. 180 00:08:28,260 --> 00:08:31,290 Ljubičasta blok mi smo nazvao dosad funkcija. 181 00:08:31,290 --> 00:08:34,830 Dakle, ono što ću otići uoči ovdje i ponuditi Alana 182 00:08:34,830 --> 00:08:38,380 je mala oznaka imena, da bi jasno kakvu ulogu igrate. 183 00:08:38,380 --> 00:08:39,753 >> Dakle, ti ćeš biti recimo blok. 184 00:08:39,753 --> 00:08:41,419 Ako želite ići naprijed i staviti na. 185 00:08:41,419 --> 00:08:43,169 A mi idemo u imajte to super jednostavna. 186 00:08:43,169 --> 00:08:46,180 Ako je cilj pri ruci je jednostavno Sada provesti s Alana, 187 00:08:46,180 --> 00:08:49,710 taj takozvani kažu blok, evo kako to ide na posao. 188 00:08:49,710 --> 00:08:52,574 Ja have-- nazovimo ga argument ili parametar, 189 00:08:52,574 --> 00:08:54,240 to je zapravo samo prazan list papira. 190 00:08:54,240 --> 00:08:57,239 I to je bijela do vrsta biti podsjeća od bijelog okvira u koji ste 191 00:08:57,239 --> 00:08:58,080 Možete pisati riječi. 192 00:08:58,080 --> 00:09:00,660 >> U međuvremenu ću ići tamo. 193 00:09:00,660 --> 00:09:06,560 Ja ću ići naprijed i pisati H-E-l-L-O-zarezom svijet. 194 00:09:06,560 --> 00:09:09,972 I sada, kao što je rekao programer, nemoj zapravo znaju nešto reći. 195 00:09:09,972 --> 00:09:12,180 Ja mogu doći do riječi, ali ja to ne mora nužno biti 196 00:09:12,180 --> 00:09:15,220 znam kako se izraziti usmeno ili na zaslonu. 197 00:09:15,220 --> 00:09:17,280 I tako ono što ću učiniti je uzeti ovaj komad 198 00:09:17,280 --> 00:09:21,157 funkcionalnosti, čiji input-- ili argument, jer ćemo ga nazvati, 199 00:09:21,157 --> 00:09:23,990 Ja sam napisao na ovom komadu paper-- i ja ću ga outsource. 200 00:09:23,990 --> 00:09:26,831 >> I doista to je uloga da funkcije u programskom jeziku 201 00:09:26,831 --> 00:09:27,330 može igrati. 202 00:09:27,330 --> 00:09:29,246 Nešto poput glasa blok može biti ustupljeni 203 00:09:29,246 --> 00:09:32,074 nekome tko ne zna ono što on ili ona govori. 204 00:09:32,074 --> 00:09:33,990 Dakle, ako ćete korak više ovdje samo na trenutak, 205 00:09:33,990 --> 00:09:40,092 Ja ću proći taj unos Alana, i zamolite da vam kažem ovo ulaz. 206 00:09:40,092 --> 00:09:41,202 >> Alana: Zdravo, svijete. 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 u funkciji. 209 00:09:43,326 --> 00:09:46,556 Sada mi to može potrajati malo više, možemo napraviti korak naprijed ovdje. 210 00:09:46,556 --> 00:09:48,180 Budući da je jasno underwhelming. 211 00:09:48,180 --> 00:09:51,670 Tako ćemo sada pretvoriti u nešto malo sofisticiraniji. 212 00:09:51,670 --> 00:09:53,630 >> Dakle, ovo je, naravno, naš C verzija. 213 00:09:53,630 --> 00:09:56,760 Pa sad, ako želite da se to One, koji tag ime off, 214 00:09:56,760 --> 00:09:58,530 pa da ste stavili na novim imenom. 215 00:09:58,530 --> 00:10:00,850 Ali bitno da si igrati istu ulogu, 216 00:10:00,850 --> 00:10:03,400 To samo tako dogodi da se zove printf sada. 217 00:10:03,400 --> 00:10:06,930 >> Priča je, dakako, će vjerojatno be-- 218 00:10:06,930 --> 00:10:09,317 baš kao što je underwhelming-- će biti sljedeće. 219 00:10:09,317 --> 00:10:10,650 Sada ste funkcija printf. 220 00:10:10,650 --> 00:10:13,300 Ja sam pozivatelja, ili programer, tko želi 221 00:10:13,300 --> 00:10:15,745 stajati na ramenima ljudi u prošlosti poput tebe, 222 00:10:15,745 --> 00:10:18,670 koji su već shvatili kako zapravo napisati nešto dolje. 223 00:10:18,670 --> 00:10:20,650 I tako je ovaj put, umjesto da kažu da ajmo 224 00:10:20,650 --> 00:10:22,255 zapravo koristiti našu zaslon ovamo. 225 00:10:22,255 --> 00:10:24,130 Dakle, ako želite da se korak ovamo, idem 226 00:10:24,130 --> 00:10:27,196 opet to prođe kao Ulaz na moj printf prijatelja. 227 00:10:27,196 --> 00:10:29,320 Ako bi mogao ići naprijed i ispisati da je na zaslonu, 228 00:10:29,320 --> 00:10:31,611 jednostavno crtanje sa svojim prst na crnom zaslonu. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Izvrsno. 231 00:10:44,180 --> 00:10:47,350 U redu, tako da puno neizvjesnosti za Kako da se ide igrati van. 232 00:10:47,350 --> 00:10:51,390 >> Dakle, sada ćemo uzeti stvari jedan Konačni usjek, ako smo mogli, kako slijedi. 233 00:10:51,390 --> 00:10:53,980 Dakle, ovo je program C kao što smo rekli prošli put. 234 00:10:53,980 --> 00:10:57,460 I to samo čini ono što ste učinili, to ispisuje na zaslon, zdravo, svijete. 235 00:10:57,460 --> 00:11:00,290 Iako postoji jasno puno od zbunjujući stvari tamo gore. 236 00:11:00,290 --> 00:11:03,630 No, uzmimo stvari na višu razinu i uvesti ovu verziju, koja se prisjetiti 237 00:11:03,630 --> 00:11:06,160 je treća verzija koja završili smo s prošlom vremenu. 238 00:11:06,160 --> 00:11:09,120 >> I sada postoji jasno Dva uporabe printf. 239 00:11:09,120 --> 00:11:12,280 Ima 2 pozivi prema Alana u ovom slučaju za printf, 240 00:11:12,280 --> 00:11:14,740 , ali tu je i poziv na drugu funkciju. 241 00:11:14,740 --> 00:11:17,150 Što je to funkcija jasno? 242 00:11:17,150 --> 00:11:17,650 Getstring. 243 00:11:17,650 --> 00:11:18,980 >> Možemo li dobiti još jedan volonter? 244 00:11:18,980 --> 00:11:20,980 U redu, dođi. 245 00:11:20,980 --> 00:11:21,805 Koje je tvoje ime? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, dođi gore. 248 00:11:24,750 --> 00:11:27,270 Dakle, Javier je uloga na taj komad papira. 249 00:11:27,270 --> 00:11:28,860 Koji ću nazvati generički e. 250 00:11:28,860 --> 00:11:32,250 Sada je to promjenjiva, to je tipa string, što implicira 251 00:11:32,250 --> 00:11:34,290 po toj drugoj liniji u sredini tamo. 252 00:11:34,290 --> 00:11:36,540 I ja bih da mi se ići niz. 253 00:11:36,540 --> 00:11:40,120 Naime spustite se orkestru poglavlje i donesi mi ime nekoga, 254 00:11:40,120 --> 00:11:43,142 i vratiti se s varijablom koji sadrži tu vrijednost. 255 00:11:43,142 --> 00:11:44,225 To može biti bilo tko želite. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Ovdje ćemo ići. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 U redu, Javier je zapisivao ime. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 U redu. 262 00:12:03,280 --> 00:12:05,740 Mi svi možemo vjerojatno pogoditi kako ovo ide igrati van. 263 00:12:05,740 --> 00:12:07,489 Mi smo možda belaboring točka što 264 00:12:07,489 --> 00:12:10,320 funkcija radi, ali ipak puno hvala. 265 00:12:10,320 --> 00:12:13,890 >> Dakle, Javier je vratio ovaj niz Ovdje, koja je, ne mogu sasvim vidjeti, 266 00:12:13,890 --> 00:12:15,800 Jonathan je niz da smo stečen. 267 00:12:15,800 --> 00:12:18,330 I što sad ja zapravo idem osigurati da Alana iako 268 00:12:18,330 --> 00:12:20,150 je nešto malo drugačiji. 269 00:12:20,150 --> 00:12:23,800 Budući da u ovoj verziji Program, prvo tu je navesti svoje ime. 270 00:12:23,800 --> 00:12:26,160 Dakle, prvi argument Moram dati Alana 271 00:12:26,160 --> 00:12:33,030 sa će biti doslovno navesti svoje ime. 272 00:12:33,030 --> 00:12:35,280 U redu, tako jednostavno kao što je to Ja bi predao ovo za vas. 273 00:12:35,280 --> 00:12:36,730 I kao što sam napisati Sljedeći argument, ako vas 274 00:12:36,730 --> 00:12:39,230 žele ići naprijed i pisati ovo na brodu, idemo naprijed 275 00:12:39,230 --> 00:12:42,659 i napraviti konačni primjer ovdje da bi jasno što u konačnici ima dogoditi. 276 00:12:42,659 --> 00:12:44,450 Dakle navesti svoje ime, pisati prema vrhu 277 00:12:44,450 --> 00:12:47,220 Ako vam ne smeta, samo da imamo prostora za jednu drugu liniju. 278 00:12:47,220 --> 00:12:52,890 Budući da je posljednja stvar idem sada vam pružiti nije jedan, 279 00:12:52,890 --> 00:12:57,220 ali dva komada papira. 280 00:12:57,220 --> 00:12:58,074 >> U redu. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O zarez, a zatim prazan redak. 282 00:13:01,920 --> 00:13:04,780 Pa što ću predati Alana sada je nešto malo drugačiji. 283 00:13:04,780 --> 00:13:08,600 Ne samo da je ona sve to, gdje se popuniti u prazno predstavlja 284 00:13:08,600 --> 00:13:12,050 da percent-- što je rezervirano smo koristili? 285 00:13:12,050 --> 00:13:13,890 Da, tako posto a. 286 00:13:13,890 --> 00:13:16,530 U međuvremenu ću proći ju u drugom argumentu, koji 287 00:13:16,530 --> 00:13:19,290 Upravo je Javier preuzima s Jonatana. 288 00:13:19,290 --> 00:13:20,534 >> Dakle, dopustite mi da vam dati ove dvije. 289 00:13:20,534 --> 00:13:22,575 Ako želite, samo naprijed i ispis koji učinak. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Što se događa u konačnici sada je opet Alana 292 00:13:28,130 --> 00:13:29,410 igra ulogu printf. 293 00:13:29,410 --> 00:13:32,160 Javier je igrao Uloga GetString. 294 00:13:32,160 --> 00:13:34,700 Tako da će biti vaš suvenir. 295 00:13:34,700 --> 00:13:39,910 I na kraju ono što se događa, bez obzira to hello-- yep ići naprijed i zarez. 296 00:13:39,910 --> 00:13:41,410 Alana: Jesam li primiti ovaj još ili ne? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Aha, vi dobila ih obojicu odjednom. 298 00:13:43,451 --> 00:13:45,740 Dakle, ideja je da vas sada može okrenuti stranicu 299 00:13:45,740 --> 00:13:50,000 rukovati drugi od ta dva ulaza. 300 00:13:50,000 --> 00:13:53,280 Dakle, ovo je samo čekić home naglasiti da dok Alana izvršava 301 00:13:53,280 --> 00:13:55,830 ova zelena crta ovdje, a zatim Javier je to učinio za nas 302 00:13:55,830 --> 00:13:57,820 i vratiti se u meni nešto nazvat ćemo s, ali to je stvarno 303 00:13:57,820 --> 00:13:59,520 Upravo taj komad papira iz svoje. 304 00:13:59,520 --> 00:14:02,320 I sada Alana je učinio ovu treću liniju. 305 00:14:02,320 --> 00:14:06,010 >> I iako sve to izgleda tako nevjerojatno zagonetan možda 306 00:14:06,010 --> 00:14:08,870 Na prvi pogled, to je stvarno je jednostavno tako. 307 00:14:08,870 --> 00:14:11,390 Prolazeći ulaza oko, dobivanja izlaza, bilo 308 00:14:11,390 --> 00:14:14,560 fizički vrati nešto, ili viđenje nuspojava kao što je ovaj. 309 00:14:14,560 --> 00:14:17,170 Nešto vizualno napisana na zaslonu. 310 00:14:17,170 --> 00:14:19,990 Dakle, idemo naprijed i Zahvaljujem Alana Javier, 311 00:14:19,990 --> 00:14:25,012 tko je ovdje, za pridružio nam se ovdje. 312 00:14:25,012 --> 00:14:25,934 >> [Pljesak] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Dakle, sada ćemo uzeti zdravo za gotovo koliko jednostavno sve to moglo biti. 315 00:14:33,480 --> 00:14:36,775 I neka se nastavite da zapravo učiniti nešto u stvarnom koda. 316 00:14:36,775 --> 00:14:40,620 Tako se na zaslonu ovdje je screenshot od tzv CS50 aparata. 317 00:14:40,620 --> 00:14:43,980 A ako ste morali na, kako je 2:00 u srijedu popodne, 318 00:14:43,980 --> 00:14:46,602 objasniti nekim prijateljem ono CS50 aparat, 319 00:14:46,602 --> 00:14:48,185 Kako bi ste se definirati u rečenici? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Bilo jednu rečenicu? 322 00:14:53,240 --> 00:14:54,876 Da? 323 00:14:54,876 --> 00:14:57,334 UČENIK: To je poput programa koji čini svačije računalo 324 00:14:57,334 --> 00:14:58,460 trčanje s istim sustavom. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Dobro! 326 00:14:59,210 --> 00:15:02,810 To je program koji omogućuje svima je računalu da radi s istim sustavom. 327 00:15:02,810 --> 00:15:04,920 To je na neki način sami kopija operativnog 328 00:15:04,920 --> 00:15:07,540 Sustav koji se događa na se zove Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 I to radi učinkovito unutar Prozor na svoj Mac ili PC, 330 00:15:11,070 --> 00:15:15,080 tako da je ovaj put u pravu iz vrata u tjednu 1, svi ovdje u razredu 331 00:15:15,080 --> 00:15:17,590 ima pristup istim alatima, istu konfiguraciju, 332 00:15:17,590 --> 00:15:21,250 i nema krivulja učenja specifičnih na Mac ili PC-u posebno. 333 00:15:21,250 --> 00:15:25,620 >> Sada smo otvorili, unutar CS50 Uređaj je u ponedjeljak, ovaj program ovdje. 334 00:15:25,620 --> 00:15:27,040 To se događa da se zove gedit. 335 00:15:27,040 --> 00:15:29,050 Ali, to je zapravo samo grafički urednik. 336 00:15:29,050 --> 00:15:33,170 To je nešto poput Notepad ili Text Uredite na Windows ili Mac OS respektivno. 337 00:15:33,170 --> 00:15:36,720 I ja sam predložio da nije bilo stvarno tri važna dijela ovog zaslona. 338 00:15:36,720 --> 00:15:39,560 Gornja strana je mjesto gdje vas bi napisati svoj kod. 339 00:15:39,560 --> 00:15:44,080 I to je mjesto gdje smo proveli mnogo naših Tri primjera u predavanju u ponedjeljak. 340 00:15:44,080 --> 00:15:47,650 Dno smo se zove ono, taj crni prozor, zar ne? 341 00:15:47,650 --> 00:15:48,640 >> UČENIK: prevodilac? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: prevodilac smo pristupiti putem tog prozora. 343 00:15:51,500 --> 00:15:53,040 Ali općenito. 344 00:15:53,040 --> 00:15:54,540 Da, to je bio samo terminal prozor. 345 00:15:54,540 --> 00:15:57,780 To je doba stare pojam koji jednostavno opisuje suštini treperavih 346 00:15:57,780 --> 00:16:01,910 brz, da je prije nekoliko godina koristi se na jedan od onih velikih CRT monitora stilu. 347 00:16:01,910 --> 00:16:04,300 No, u današnje vrijeme to je vrsta od virtualnog u softveru. 348 00:16:04,300 --> 00:16:06,710 I terminala prozori Idemo nas upišite naredbe. 349 00:16:06,710 --> 00:16:11,750 To na neki način pojednostavljenu verziju korisničkog sučelja ili UI. 350 00:16:11,750 --> 00:16:14,060 Nije grafički korisničko sučelje ili GUI, 351 00:16:14,060 --> 00:16:17,250 to je sučelje tekst-based ili sučelje naredbenog retka. 352 00:16:17,250 --> 00:16:20,770 >> I doista je to mjesto gdje u konačnici Bio sam u stanju napisati neki kod. 353 00:16:20,770 --> 00:16:24,200 Nakon što sam napisao neki kod, iako, sjećam da sam koristio ovu naredbu. 354 00:16:24,200 --> 00:16:26,210 I kao što ime vrsta sugerira to 355 00:16:26,210 --> 00:16:29,860 mi omogućuje da napravite Program pod nazivom Pozdrav. 356 00:16:29,860 --> 00:16:33,400 Ali što je to zapravo radi? 357 00:16:33,400 --> 00:16:36,180 Pa make uzimao moj ulaz, moj izvorni kod, 358 00:16:36,180 --> 00:16:39,380 te ga pretvoriti u što, u konačnici? 359 00:16:39,380 --> 00:16:40,060 >> Šifra objekta. 360 00:16:40,060 --> 00:16:42,790 A objekt kod je samo fancy način da se kaže nula i jedinica. 361 00:16:42,790 --> 00:16:46,420 I onda kad sam htjela pokrenuti taj objekt kôd, 362 00:16:46,420 --> 00:16:50,940 Jednom sam htjela proći kao ulaz onih nula i jedinica u mom računalu 363 00:16:50,940 --> 00:16:54,430 mozga, tzv CPU ili matična ploča, 364 00:16:54,430 --> 00:16:55,730 Morao sam pokrenuti program. 365 00:16:55,730 --> 00:16:59,042 No, to nije bio sasvim jednostavan ponedjeljak kako je samo dvostrukim klikom neku ikonu. 366 00:16:59,042 --> 00:17:01,375 Što umjesto ja imam učiniti kako bi se pokrenuti program? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Što je to druga naredba? 369 00:17:07,890 --> 00:17:09,619 Čujem malo kose crte? 370 00:17:09,619 --> 00:17:10,544 Da, stvarno? 371 00:17:10,544 --> 00:17:12,474 >> UČENIK: Dot Slash i Naziv programa. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Točno. 373 00:17:13,349 --> 00:17:15,030 Dot Slash i ime programa. 374 00:17:15,030 --> 00:17:16,210 Sada što se to znači? 375 00:17:16,210 --> 00:17:19,470 Pa dot je samo kompliciranih način govoreći trenutnu imenik. 376 00:17:19,470 --> 00:17:23,440 Bez obzira na mapu ste u je spominje kao, predstavljena je kao točka. 377 00:17:23,440 --> 00:17:26,680 Slash je upravo ono što ste vidjeli u Mac OS i Windowse već godinama, 378 00:17:26,680 --> 00:17:30,329 to je separator između imenik ili mapu i ostatak nekih imena. 379 00:17:30,329 --> 00:17:32,620 U Windowsima se dogodi da ide unatrag, u Linux i Mac 380 00:17:32,620 --> 00:17:34,210 OS se dogodi da ide naprijed. 381 00:17:34,210 --> 00:17:37,560 Ali to je samo separator, tako da je Samo nezanimljiv sintaktička detalja. 382 00:17:37,560 --> 00:17:40,440 >> Sočan dio kolegija naziv programa, Pozdrav. 383 00:17:40,440 --> 00:17:42,650 I to je ono što bi se stvorio za nas. 384 00:17:42,650 --> 00:17:44,910 To reproduciraju tu sliku za nas. 385 00:17:44,910 --> 00:17:46,700 No, kako smo doći do te točke? 386 00:17:46,700 --> 00:17:48,870 Idemo sada pitati Pitanje, što je stvarno 387 00:17:48,870 --> 00:17:52,470 ovdje događa, barem s u obzir neke od ove sintakse? 388 00:17:52,470 --> 00:17:57,000 >> Tako u rečenici ili tako, kako smo protumačiti 389 00:17:57,000 --> 00:17:59,020 ova prva linija koja je označen zelenom bojom? 390 00:17:59,020 --> 00:18:02,998 Što je to prva linija radi, s obzirom na moj program? 391 00:18:02,998 --> 00:18:03,974 Da? 392 00:18:03,974 --> 00:18:05,067 >> UČENIK: [nečujan]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Ponovite to? 394 00:18:06,150 --> 00:18:08,734 UČENIK: Uključujući i preuzimanja Proteklih funkcije [nečujan]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Dobro. 396 00:18:09,483 --> 00:18:11,900 Uključujući, neću reći skidanje, ali recimo 397 00:18:11,900 --> 00:18:15,500 uključujući funkcije koje ljudi napisao u prošlosti. 398 00:18:15,500 --> 00:18:18,260 I one funkcije provode negdje u mom računalu. 399 00:18:18,260 --> 00:18:20,470 Netko je napisao datoteku Prije nekoliko godina, te da je datoteka 400 00:18:20,470 --> 00:18:23,490 je negdje unutar CS50 aparata, ili na moj hard disk 401 00:18:23,490 --> 00:18:24,480 općenito. 402 00:18:24,480 --> 00:18:27,810 I tako je ova linija suštini govori, ići pronaći te datoteke, standardni I / O točku 403 00:18:27,810 --> 00:18:31,740 h, i kopirati i zalijepiti svoje sadržaje upravo ovdje na vrhu moje datoteke 404 00:18:31,740 --> 00:18:33,860 tako da ja ne moram to ručno osobno. 405 00:18:33,860 --> 00:18:40,970 >> A među juiciest komada unutar od da sliku smo tvrdili bilo koju funkciju? 406 00:18:40,970 --> 00:18:45,740 Ono što je funkcija smo rekli proglašen ili spominje u standardni I / O dot h 407 00:18:45,740 --> 00:18:47,120 najvjerojatnije? 408 00:18:47,120 --> 00:18:47,900 Printf, zar ne? 409 00:18:47,900 --> 00:18:50,797 Nismo napisati printf na Ponedjeljak, to je samo postojala. 410 00:18:50,797 --> 00:18:52,880 Slično kao i Alana upravo došao na pozornicu i ona je samo 411 00:18:52,880 --> 00:18:55,540 postojala i znao kako se izvući nešto na ekranu, 412 00:18:55,540 --> 00:18:58,660 pa printf ne postoji već dugi niz godina. 413 00:18:58,660 --> 00:19:00,240 I tako je to kako ćemo mu pristupiti. 414 00:19:00,240 --> 00:19:03,280 Sada, ako ćemo krenuti dalje ovdje, Glavni je analogna smo 415 00:19:03,280 --> 00:19:06,620 , rekao je na puzzle komad nazvao kada je zelena zastava kliknuli 416 00:19:06,620 --> 00:19:07,620 u svijetu ispočetka. 417 00:19:07,620 --> 00:19:10,130 To je samo neka vrsta Zadani naziv koje ljudi 418 00:19:10,130 --> 00:19:13,340 Odlučio bi predstavljalo zadani ulazna točka za program. 419 00:19:13,340 --> 00:19:16,540 Komad programskog koda koji se izvršava na prvom mjestu. 420 00:19:16,540 --> 00:19:19,700 >> U međuvremenu su ti vitičastim zagradama su vrsta kao što su zakrivljenog oblika 421 00:19:19,700 --> 00:19:21,410 od puno onih žutih scratch komada. 422 00:19:21,410 --> 00:19:24,860 Oni su neka vrsta ukratko opisali cijeli hrpa uputa zajedno. 423 00:19:24,860 --> 00:19:28,350 Dakle, to je samo neka vrsta veže zajedno neke vezane funkcionalnost. 424 00:19:28,350 --> 00:19:33,750 printf naravno je funkcija koja ispisuje ekran, kao što smo to učinili. 425 00:19:33,750 --> 00:19:35,190 >> Što je s tim zagradi? 426 00:19:35,190 --> 00:19:38,770 Kako biste define-- čak i ako ste Nikada programirati i prije, ali samo na temelju 427 00:19:38,770 --> 00:19:41,320 Sada se na povećanje nadamo se intuicija, što 428 00:19:41,320 --> 00:19:43,290 su zagrade rade za nas ovdje? 429 00:19:43,290 --> 00:19:45,450 Ili što su okolna? 430 00:19:45,450 --> 00:19:46,360 Da? 431 00:19:46,360 --> 00:19:49,360 >> UČENIK: Kažu da ono što idete na ispis s printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Da, oni govore ono što idete na ispis s printf. 433 00:19:52,401 --> 00:19:56,260 Ili općenitije, oni su okolnim ulaze na funkciji. 434 00:19:56,260 --> 00:19:58,530 Dakle, gotovo da možete misliti od onih zagradi 435 00:19:58,530 --> 00:20:01,620 kao poput metala isječak na ovom prijenosnik. 436 00:20:01,620 --> 00:20:05,940 To je ono što je drži, to je ono što je će se upotrijebiti kako bi argumente 437 00:20:05,940 --> 00:20:08,500 u funkciji, što u Ovaj slučaj se zove printf. 438 00:20:08,500 --> 00:20:12,390 >> Dakle, u cjelini gotovo bilo Vrijeme zovemo funkciju, 439 00:20:12,390 --> 00:20:14,280 ćemo vidjeti par zagrade. 440 00:20:14,280 --> 00:20:17,000 Možda je nešto u njemu, kao što je sada, možda se ništa u njemu. 441 00:20:17,000 --> 00:20:19,770 No, to je mjesto gdje biste stavili ulazi ili tzv argumenti 442 00:20:19,770 --> 00:20:20,680 u funkciju. 443 00:20:20,680 --> 00:20:22,470 >> Evo jedan takav argument. 444 00:20:22,470 --> 00:20:24,467 Ja sam istaknuo sve između navodnika, 445 00:20:24,467 --> 00:20:26,300 jer ispada U tom jeziku zove 446 00:20:26,300 --> 00:20:29,950 C, kada želite da predstavljaju string-- da je riječ ili frazu 447 00:20:29,950 --> 00:20:33,470 ili čak paragraph-- morate okružuju ga s dvostrukim navodnicima. 448 00:20:33,470 --> 00:20:35,420 Ne jednokrevetne, dvokrevetne citati citati. 449 00:20:35,420 --> 00:20:37,460 A to je upravo ono što sam učinio ovdje. 450 00:20:37,460 --> 00:20:39,900 >> U međuvremenu postoji funky Simbol prema kraju tamo. 451 00:20:39,900 --> 00:20:41,600 Obrnuta kosa crta n. 452 00:20:41,600 --> 00:20:43,460 Što bismo mogli reći da je zastupao? 453 00:20:43,460 --> 00:20:44,093 Da? 454 00:20:44,093 --> 00:20:44,980 >> UČENIK: Nova linija. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nova linija. 456 00:20:45,896 --> 00:20:47,910 Točno, ne znaš općenito pritisnite Enter kada 457 00:20:47,910 --> 00:20:50,430 Želite program ispljunuti novu liniju. 458 00:20:50,430 --> 00:20:54,210 Umjesto da ga reći izričito s ovim doduše kompliciranih komadu 459 00:20:54,210 --> 00:20:58,770 sintakse, Obrnuta kosa crta nje, da Želite nova linija ići tamo. 460 00:20:58,770 --> 00:20:59,810 Konačno zarez. 461 00:20:59,810 --> 00:21:01,560 Mi stvarno ne razgovaraju previše o tome, 462 00:21:01,560 --> 00:21:04,893 i daleko će to biti prokletstvo neke vašeg postojanja po prvi problema 463 00:21:04,893 --> 00:21:07,990 postaviti, kada se samo uspio shvatiti da ste zaboravili nešto kao glupo 464 00:21:07,990 --> 00:21:08,614 kao zarezom. 465 00:21:08,614 --> 00:21:11,600 I općenito stavljajući Tu će riješiti taj problem. 466 00:21:11,600 --> 00:21:13,511 Ali što to radi za nas, bi ti rekao? 467 00:21:13,511 --> 00:21:15,670 >> UČENIK: [nečujan]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Molim? 469 00:21:17,484 --> 00:21:18,532 >> UČENIK: [nečujan]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Završni izjavu. 471 00:21:19,990 --> 00:21:22,770 To je vrsta kao razdoblje u kraj engleskom kazne, 472 00:21:22,770 --> 00:21:25,790 dok je u tom jeziku C što je završio izjavu. 473 00:21:25,790 --> 00:21:29,250 Upute za programiranje kod koji se samo želite reći, 474 00:21:29,250 --> 00:21:30,500 Završio sam s ovim. 475 00:21:30,500 --> 00:21:32,240 Sada primijetiti da je samo jedan ovdje. 476 00:21:32,240 --> 00:21:34,614 Dakle, ne želim da se u naviku stavljanja zarezom 477 00:21:34,614 --> 00:21:36,190 nakon svake zatvorene zagrade. 478 00:21:36,190 --> 00:21:38,610 Na primjer postoji nitko uz poništiti, a mi ćemo 479 00:21:38,610 --> 00:21:40,430 vratiti u budućnosti onome što nevažeće sredstva. 480 00:21:40,430 --> 00:21:44,080 No, u ovom slučaju vaš printf je funkcija, ili izjavu koja se koristi, 481 00:21:44,080 --> 00:21:47,420 i tako želimo da se taj završetkom na samom kraju. 482 00:21:47,420 --> 00:21:50,980 >> A ja sam namjerno branje na C, a iskreno puno jezika kao što su C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript i bilo koji broj drugi jezici imaju puno njih 484 00:21:55,000 --> 00:21:56,730 vrsta sintaktičkih detalje. 485 00:21:56,730 --> 00:22:00,120 To svakako, ako ste novi u programiranje zaista mogu vas odalo. 486 00:22:00,120 --> 00:22:02,307 I što će, zapamtite moje Riječi, neki od vas će 487 00:22:02,307 --> 00:22:04,140 imaju to iskustvo u radno vrijeme ili kasni 488 00:22:04,140 --> 00:22:07,554 noću radi na nekom p-set, u kojem Vaš prokleto Program jednostavno ne sastaviti, 489 00:22:07,554 --> 00:22:09,470 on ne izvodi, imate Nemam pojma što se dogodilo, 490 00:22:09,470 --> 00:22:11,513 čini se posve logički ispravan za vas. 491 00:22:11,513 --> 00:22:13,596 A to je zato što ste zaboravili nešto poput udaranja 492 00:22:13,596 --> 00:22:15,250 zarez neke linije. 493 00:22:15,250 --> 00:22:17,590 >> No, to su se stvari koje ste će odmah naučiti vidjeti. 494 00:22:17,590 --> 00:22:20,048 I doista su to stvari da CA-a i TF-a imaju 495 00:22:20,048 --> 00:22:23,210 bio svojevrsni obučeni da vide puno brže od tebe. 496 00:22:23,210 --> 00:22:26,610 I tako je to samo reći, kao što je vama Uronite u problemu set 1 pogotovo, 497 00:22:26,610 --> 00:22:28,217 Ne dobiti frustriran ovim stvarima. 498 00:22:28,217 --> 00:22:30,050 Nakon što ste na neki način vrati na svijetu, što 499 00:22:30,050 --> 00:22:35,130 počinju vidjeti stvari koje možda nećete vidi na prvi pogled ovaj prvi tjedan. 500 00:22:35,130 --> 00:22:37,440 >> Dakle, izvorni kod je nešto slično. 501 00:22:37,440 --> 00:22:40,370 Želimo da se prođe u tzv prevodilac. 502 00:22:40,370 --> 00:22:42,850 I to kao prevodilac mi je rekao daje izlaz 503 00:22:42,850 --> 00:22:45,660 poznat kao objekt kod, Takozvani nula i jedinica. 504 00:22:45,660 --> 00:22:47,747 No, od tamo, što znači da nam daju? 505 00:22:47,747 --> 00:22:49,080 Pa to nam daje tih uzoraka. 506 00:22:49,080 --> 00:22:52,020 I opet je vaše računalo, Vaš Intel Inside, 507 00:22:52,020 --> 00:22:54,350 razumije te uzorke od nula i jedinica. 508 00:22:54,350 --> 00:22:57,300 A ponekad uzorak predstavlja stvarnu decimalni broj 509 00:22:57,300 --> 00:22:59,770 kao što smo vidjeli prošlog tjedna, ponekad predstavlja pismo 510 00:22:59,770 --> 00:23:02,730 kao što smo vidjeli prošlog tjedna, ponekad predstavlja uputu, 511 00:23:02,730 --> 00:23:05,460 kao ispis nešto na zaslonu. 512 00:23:05,460 --> 00:23:08,782 >> Pa printf za instance-- nego, neka me natrag. 513 00:23:08,782 --> 00:23:11,240 Mi smo uzimali zdravo za gotovo da te nule i one su 514 00:23:11,240 --> 00:23:14,200 u produkciji ove zapovjedne napraviti. 515 00:23:14,200 --> 00:23:16,050 No, budite nije prevodilac. 516 00:23:16,050 --> 00:23:19,370 Provjerite nije stvar u sredini koja je proizvodila nula i jedinica. 517 00:23:19,370 --> 00:23:23,780 Umjesto da je samo vrlo povoljno Program pod nazivom čija je svrha u životu 518 00:23:23,780 --> 00:23:27,267 je bitno shvatiti Kako sastaviti svoj program. 519 00:23:27,267 --> 00:23:29,350 I mi smo ga koristili u tim Prvih tjedana jer to samo 520 00:23:29,350 --> 00:23:30,910 sprema nam puno problema. 521 00:23:30,910 --> 00:23:34,080 >> No, ono što bi stvarno radiš kad sastaviti Pozdrav, 522 00:23:34,080 --> 00:23:36,690 je, kao što smo rekli prošli put, to je gleda na tvrdom disku 523 00:23:36,690 --> 00:23:40,620 ili u trenutnoj mapi, za file zove ono, očito? 524 00:23:40,620 --> 00:23:41,815 Hello.c, zar ne? 525 00:23:41,815 --> 00:23:43,190 To je samo neka vrsta konvencije. 526 00:23:43,190 --> 00:23:45,620 To je proizvoljna, ali to je tako. 527 00:23:45,620 --> 00:23:48,620 Provjerite, ako samo navesti naziv programa koji još ne postoji, 528 00:23:48,620 --> 00:23:52,200 to će tražiti izvornog koda u datoteku, po defaultu znači hello.c. 529 00:23:52,200 --> 00:23:53,530 A ako se ne nađe, super. 530 00:23:53,530 --> 00:23:56,650 To će se pretvoriti taj izvor Kod u objektnom kodu za vas. 531 00:23:56,650 --> 00:23:59,670 >> Ali svaki put sam pogodio Enter nakon pokretanja napraviti Hello, 532 00:23:59,670 --> 00:24:03,560 Sjećate li se vidjeti posljednji put prilično dug i zagonetan slijed 533 00:24:03,560 --> 00:24:06,430 drugih bijelim slovima i znakovi na zaslonu? 534 00:24:06,430 --> 00:24:11,220 Pa to je bio stvarni naredba, Stvarni prevodilac, koji je bio pokrenut. 535 00:24:11,220 --> 00:24:15,500 Dakle, stvarna prevodilac ćemo koristiti većinu semestar je nešto što se zove jeka. 536 00:24:15,500 --> 00:24:19,280 Neki od vas možda koristi Visual Studio prije ili GCC, 537 00:24:19,280 --> 00:24:21,340 ili bilo koji broj drugih prevodiocima. 538 00:24:21,340 --> 00:24:22,620 Mi ćemo koristiti jeka. 539 00:24:22,620 --> 00:24:26,950 >> I zveket omogućuje nam zapravo pretvoriti da izvorni kod za objekt kod. 540 00:24:26,950 --> 00:24:29,430 Što to zapravo znači u praksi? 541 00:24:29,430 --> 00:24:33,390 Pa pustite me u jednu od Moje mape iz prošlog vremena. 542 00:24:33,390 --> 00:24:35,760 Unutar CS50 aparata. 543 00:24:35,760 --> 00:24:42,080 I neka mi ići naprijed i stvoriti ovo Ista datoteka, uključuju standardnu ​​I / O dot h. 544 00:24:42,080 --> 00:24:42,875 Int main void. 545 00:24:42,875 --> 00:24:46,000 A mi ćemo se vratiti u budućnosti kao na ono int znači i što ništavnim sredstva. 546 00:24:46,000 --> 00:24:49,130 No, za sada učinimo Pozdrav svijetu Obrnuta kosa crta nje, 547 00:24:49,130 --> 00:24:50,500 Baš kao što smo učinili na brodu. 548 00:24:50,500 --> 00:24:53,930 >> Dopustite mi da spasi ovu sliku pod nazivom hello.c. 549 00:24:53,930 --> 00:24:58,280 A sad, ako želim da prikupi te Ja could-- neka mi zumirati in-- trčanje 550 00:24:58,280 --> 00:25:00,450 Pozdrav bi ući. 551 00:25:00,450 --> 00:25:02,645 A to je opet da je vrlo zagonetan linija. 552 00:25:02,645 --> 00:25:05,120 Ali sada barem jednu riječ vjerojatno skače na vas. 553 00:25:05,120 --> 00:25:07,087 Zveket je da crta smo vidjeli prije. 554 00:25:07,087 --> 00:25:10,420 Sada postoji puno drugih stvari iskreno da ćemo mahati naše ruke na za danas. 555 00:25:10,420 --> 00:25:14,020 No, postoji nekoliko podskupine, nekoliko likovi ovdje 556 00:25:14,020 --> 00:25:14,907 koji su od interesa. 557 00:25:14,907 --> 00:25:16,490 Ali ja ću ići naprijed i učiniti. 558 00:25:16,490 --> 00:25:18,281 Idem u prvoj vožnji Pozdrav, samo da dokaže 559 00:25:18,281 --> 00:25:20,320 da je to radi kao što je bio u ponedjeljak. 560 00:25:20,320 --> 00:25:22,330 Ali sada ću izbrisati program. 561 00:25:22,330 --> 00:25:25,870 I baš kao što je imao ove kratka imena posljednji put, 562 00:25:25,870 --> 00:25:29,787 naredba za uklanjanje nešto što je RM, ukloniti, ući. 563 00:25:29,787 --> 00:25:31,870 Ti si idući u dobiti neki prilično grobni pitanja. 564 00:25:31,870 --> 00:25:35,210 Teško je vjerovati da možete napraviti čak i to pitanje teško razumjeti. 565 00:25:35,210 --> 00:25:38,100 Ali ukloniti obične datoteke pozdrav samo Sredstva želite izbrisati pozdraviti. 566 00:25:38,100 --> 00:25:42,650 >> I ja mogu ići naprijed i upišite y za Da, Enter, a sada ga više nema. 567 00:25:42,650 --> 00:25:45,130 Što to znači da je sada, ako sam razbistriti zaslon, 568 00:25:45,130 --> 00:25:47,301 da je umjesto radili bi hello-- vas 569 00:25:47,301 --> 00:25:48,800 Znaš što, ja sam uzimajući dobar u ovome. 570 00:25:48,800 --> 00:25:50,690 Idem na trčanje prevodilac sebe. 571 00:25:50,690 --> 00:25:53,330 Ne treba mi neki program na shvatiti što mi je datoteka zove. 572 00:25:53,330 --> 00:25:55,370 Napisao sam hello.c, ja znam kako se zove, 573 00:25:55,370 --> 00:25:57,640 Ja sam očito u stanju da upišete. 574 00:25:57,640 --> 00:26:02,620 Dakle, ja ću ići naprijed i ne Zveket hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Čini se da rade. 576 00:26:03,264 --> 00:26:05,930 I nema dodatnog izlaza, jer Zveket je prevodilac. 577 00:26:05,930 --> 00:26:08,590 To je ono što je pretvaranje izvorni kod za nula i jedinica. 578 00:26:08,590 --> 00:26:12,870 Dakle, ako ja sada napraviti točku slash Pozdrav Enter, hm. 579 00:26:12,870 --> 00:26:14,630 Nova poruka o pogrešci i danas. 580 00:26:14,630 --> 00:26:17,610 Dakle, bash je samo ime treperi redak koju koristimo. 581 00:26:17,610 --> 00:26:20,360 To je bruto pretjerano, ali za sada je to sve što je, 582 00:26:20,360 --> 00:26:21,401 to treperi brz. 583 00:26:21,401 --> 00:26:22,880 I to je razlog zašto je vikati na nas. 584 00:26:22,880 --> 00:26:25,690 >> Nema takve datoteke ili direktorija malo izravnija. 585 00:26:25,690 --> 00:26:28,190 Ali sigurno sam napravio taj objekt kod. 586 00:26:28,190 --> 00:26:30,930 No, ulov je, da ako sam upišite naredbu 587 00:26:30,930 --> 00:26:34,650 na popis sadržaja ovih katalog, što je ono? 588 00:26:34,650 --> 00:26:36,210 Je li za popis. 589 00:26:36,210 --> 00:26:39,332 Postoji hrpa stvari ovdje, od kojih su neki došli s aparatom, 590 00:26:39,332 --> 00:26:42,040 kao što je moj Desktop mape, preuzimanja mape, Dropbox mapu, a sve 591 00:26:42,040 --> 00:26:42,850 te stvari. 592 00:26:42,850 --> 00:26:45,410 No, ono što je zanimljivo je hello.c, koji 593 00:26:45,410 --> 00:26:47,286 Sam stvorio maloprije s gedit. 594 00:26:47,286 --> 00:26:49,160 A što je najčudnije u potrazi ime ovdje, 595 00:26:49,160 --> 00:26:53,110 možda da nismo vidi zadnji put uopće? 596 00:26:53,110 --> 00:26:54,710 >> a.out, zar ne? 597 00:26:54,710 --> 00:26:56,920 Dakle, natrag u dan, to Upravo je odlučio da kad 598 00:26:56,920 --> 00:26:58,760 sastaviti program prvi put 599 00:26:58,760 --> 00:27:02,360 i ne navedete ime o datoteke, ajmo ga zovu. 600 00:27:02,360 --> 00:27:05,800 I a.out samo znači da je to bio izlaz prevodilac. 601 00:27:05,800 --> 00:27:07,790 Dakle, to je strašno ime za program. 602 00:27:07,790 --> 00:27:12,820 No, po tom logikom, dot udarac za Trenutni imenik, Slash a.out, 603 00:27:12,820 --> 00:27:16,102 treba reći da postoji u stvari Moj Pozdrav svijetu programu. 604 00:27:16,102 --> 00:27:17,560 Sada malo zagrijati vježbe, previše. 605 00:27:17,560 --> 00:27:20,420 Ako želim preimenovati ovaj datoteka, ispada da vas 606 00:27:20,420 --> 00:27:23,000 premještanje datoteke s jednog imena na drugo. 607 00:27:23,000 --> 00:27:28,750 Dakle SN a.out, a onda sam Možete to nazvati Pozdrav Enter. 608 00:27:28,750 --> 00:27:30,940 Dakle, ovo je Linux naredba. 609 00:27:30,940 --> 00:27:34,370 DOS ovo prije mnogo godina, Windows ima prozor terminala 610 00:27:34,370 --> 00:27:36,460 neke vrste koja izgleda kao što je ovaj, Linux i Mac 611 00:27:36,460 --> 00:27:38,140 računala imaju tu treptanje redak. 612 00:27:38,140 --> 00:27:41,490 Iako većina nas vjerojatno rijetko, ako ikada, koristite ga. 613 00:27:41,490 --> 00:27:44,590 >> Ali ono što sam učinio je trčanje Program, čije ime je MV, 614 00:27:44,590 --> 00:27:47,900 i ja sam to osigurati dva argumenta, da se tako izrazim. 615 00:27:47,900 --> 00:27:48,630 Dva ulaza. 616 00:27:48,630 --> 00:27:50,260 a.out je izvorni naziv. 617 00:27:50,260 --> 00:27:51,630 Zdravo je novo ime. 618 00:27:51,630 --> 00:27:55,670 Dakle, ako ja sada napraviti dot slash Pozdrav, Enter, koja postoji. 619 00:27:55,670 --> 00:28:00,770 A ako mi je činiti dot kose crte a.out, što očekujete bih trebao vidjeti? 620 00:28:00,770 --> 00:28:02,250 >> Bash, takva datoteka ili mapa. 621 00:28:02,250 --> 00:28:03,350 Zato sam ga preimenovao. 622 00:28:03,350 --> 00:28:04,975 Dakle, to traje malo koristi za dobivanje. 623 00:28:04,975 --> 00:28:06,977 No, problem postaviti 1 Specifikacija će uistinu 624 00:28:06,977 --> 00:28:08,810 držite ruku kroz Neki od ovog minutae. 625 00:28:08,810 --> 00:28:11,050 Budući da je ovo potpuni intelektualnog distrakcija 626 00:28:11,050 --> 00:28:12,966 iz zanimljiviji ideje u ruci, koji je 627 00:28:12,966 --> 00:28:15,310 je zapravo stvaranje nešto iz koda. 628 00:28:15,310 --> 00:28:18,830 Ali ajmo napraviti jednu izmjenu Sada se ovaj program. 629 00:28:18,830 --> 00:28:23,150 >> Sjetite se da sam zadnji put učinio nešto ovako, printf navesti svoje ime. 630 00:28:23,150 --> 00:28:25,790 I doista smo upravo je to učinio na velikom zaslonu tamo. 631 00:28:25,790 --> 00:28:30,640 A onda sam niz e dobiva GetString otvorena zagrada, u blizini zagr. 632 00:28:30,640 --> 00:28:33,430 I zagr samo skraćenica Obavijest za zagradi. 633 00:28:33,430 --> 00:28:36,460 Dakle, ne GetString poduzimati nikakve argumente? 634 00:28:36,460 --> 00:28:38,440 Nema ulaza Ne, ali to treba zagrade, 635 00:28:38,440 --> 00:28:41,830 jer to je ono što markira raspisivanje funkciji. 636 00:28:41,830 --> 00:28:46,440 >> Dakle, ja ću ići naprijed i pokušati pokrenuti prevodilac na ovom programu danas. 637 00:28:46,440 --> 00:28:50,774 Zveket hello.c, jer sam nije promijenio svoje ime za sada. 638 00:28:50,774 --> 00:28:51,940 I dobio sam hrpu grešaka. 639 00:28:51,940 --> 00:28:53,570 Idemo smanjivanje ovdje. 640 00:28:53,570 --> 00:28:55,420 Ako sam pomicanje gore opet, kao što sam rekao zadnji put, 641 00:28:55,420 --> 00:28:58,420 na prvi, istu pogrešku da sam zadnji put. 642 00:28:58,420 --> 00:29:04,210 Na liniji 6. hello.c sam imao neprijavljeni identifikator niz, 643 00:29:04,210 --> 00:29:05,590 nije mislim standard u? 644 00:29:05,590 --> 00:29:06,750 Nisam. 645 00:29:06,750 --> 00:29:10,050 Zato što imaju pogreška koju sam napravio u ovo Program, ako sjetiti iz prošlog vremena? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Da, trebamo Takozvani trening kotači 648 00:29:15,010 --> 00:29:16,510 koje ćemo koristiti samo za nekoliko tjedana. 649 00:29:16,510 --> 00:29:19,480 Ali moram navesti da je također, negdje unutar uređaja, 650 00:29:19,480 --> 00:29:22,720 je datoteka koja smo napisali samo nekoliko godina. 651 00:29:22,720 --> 00:29:26,500 Unutar koje su funkcije kao što je očito GetString. 652 00:29:26,500 --> 00:29:35,160 Pa sad, ako idem ovdje natrag, povećavanje, i ponovno pokrenuti Zveket hello.c. 653 00:29:35,160 --> 00:29:36,500 K vragu, još jedna pogreška. 654 00:29:36,500 --> 00:29:38,590 Ali nismo vidjeli ovo prije. 655 00:29:38,590 --> 00:29:41,900 >> Ovaj je malo više ezoterično shvatiti. 656 00:29:41,900 --> 00:29:46,910 No, to je namjerno na zaslonu, jer smo željeli ispričati ovu priču. 657 00:29:46,910 --> 00:29:51,280 Kada sastaviti hello.c, baš kao što Slika od prije predložio, 658 00:29:51,280 --> 00:29:54,650 ti si samo pretvaranje da izvorni kod za nula i jedinica. 659 00:29:54,650 --> 00:30:00,340 Sada CS50 osoblje prije nekoliko godina pisao CS50.h i odgovarajuću datoteku, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 A mi, prije nekoliko godina, sastavio te datoteke 662 00:30:04,490 --> 00:30:07,290 u datoteku koja se događa da se zove CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Ili to može biti preimenovan nekoliko različitih stvari. 664 00:30:09,180 --> 00:30:11,054 No, to je jednostavan način razmišljanja o tome. 665 00:30:11,054 --> 00:30:14,960 Tako smo sastaviti CS50-a Knjižnica u nula i jedinica. 666 00:30:14,960 --> 00:30:20,340 Ali nigdje nisam naveden da želim kombinirati svoje nule 667 00:30:20,340 --> 00:30:24,030 i one za moje Pozdrav svijetu Program s nula i jedinica 668 00:30:24,030 --> 00:30:29,760 da je CS50 osoblje stvorio nekoliko godina prije u jedan cjelokupni program. 669 00:30:29,760 --> 00:30:34,100 Sve sam odredio pisanja Zveket hello.c je sastaviti hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Nisam rekao da Zveket karika u nula i jedinica 671 00:30:38,380 --> 00:30:41,650 da je CS50 osoblje stvorio za vas prije nekog vremena. 672 00:30:41,650 --> 00:30:48,280 Tako da je lako popraviti, crtica l za vezu, CS50. 673 00:30:48,280 --> 00:30:52,600 A mi ćemo opet vidjeti prije dugo opet i opet. 674 00:30:52,600 --> 00:30:54,420 Ali primijetite sada nije bilo pritužbi. 675 00:30:54,420 --> 00:30:59,770 Pa sad, ako sam pokrenuti točkica crta Pozdrav, sada to rade. 676 00:30:59,770 --> 00:31:03,840 Iako je to malo zabludu jer sam upravo ponovno ono što datoteku? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Pa neka mi unatrag samo na trenutak. 679 00:31:07,930 --> 00:31:10,900 Program smo upravo sastavio ima tri linije koda. 680 00:31:10,900 --> 00:31:14,710 Kad sam trčao Pozdrav svijetu, pozdravi trenutak Prije, nisam vidio svoje ime. 681 00:31:14,710 --> 00:31:17,080 A to je zato što sam trčao stara verzija programa. 682 00:31:17,080 --> 00:31:22,700 Ali ako sam doista pokrenuti točkica kose crte a.out Unesite, navesti svoje ime, Rob, zdravo, 683 00:31:22,700 --> 00:31:23,370 svijet. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 To je vrsta buba. 686 00:31:26,110 --> 00:31:28,560 Vjerojatno htio reći Rob, zar ne? 687 00:31:28,560 --> 00:31:30,997 Dakle, što je popraviti ovdje u kodu. 688 00:31:30,997 --> 00:31:31,872 UČENIK: [nečujan]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Točno. 691 00:31:39,290 --> 00:31:43,160 Tako sam samo trebate napraviti da konačni ugađanje tako da sam u prolazu rezervirano mjesto, 692 00:31:43,160 --> 00:31:45,690 kao ispunite prazne, kao što smo učinili prije nekoliko trenutaka. 693 00:31:45,690 --> 00:31:47,870 Ali posto a sada je da ispunite prazne. 694 00:31:47,870 --> 00:31:52,100 Dakle, konačno ćemo otkriti jednu posljednju detalja, tako da ne postoji čarobna. 695 00:31:52,100 --> 00:31:54,090 Ja ću ići naprijed i dobili osloboditi od hellow. 696 00:31:54,090 --> 00:31:56,070 Ja ću ići naprijed i dobili osloboditi od a.out. 697 00:31:56,070 --> 00:31:58,410 Tako sada nemam programe, samo moj izvorni kod. 698 00:31:58,410 --> 00:32:01,100 A ja ću pokrenuti nešto više naredba, zveket 699 00:32:01,100 --> 00:32:05,650 crtica o Hello hello.c crtica LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Sada je to počinje vrsta go u jednom uhu i van možda drugi. 701 00:32:08,700 --> 00:32:10,366 Ali samo zafrkavati, osim što to radi. 702 00:32:10,366 --> 00:32:14,910 Zveket je prevodilac, crtica LCS50 Namjerno na samom kraju 703 00:32:14,910 --> 00:32:18,330 čini ono što je u rečenici? 704 00:32:18,330 --> 00:32:19,607 Linkovi na CS50 knjižnici. 705 00:32:19,607 --> 00:32:21,440 Dočepa nula i one koje osoblje izrađene 706 00:32:21,440 --> 00:32:23,310 i donosi još ih u vlastitom programu. 707 00:32:23,310 --> 00:32:27,040 Dakle, zadnje pitanje pri ruci je, ono što je crtica o bok najvjerojatnije 708 00:32:27,040 --> 00:32:30,530 radi, čak i ako ste nikada vidi ovu sintaksu prije? 709 00:32:30,530 --> 00:32:34,920 >> Emitiranja programa koji je Ne zove zadani a.out. 710 00:32:34,920 --> 00:32:37,330 Naprotiv, ona je nazvana Hello. 711 00:32:37,330 --> 00:32:39,460 Tako sada nema a.out. 712 00:32:39,460 --> 00:32:42,660 Nema takve datoteke ili direktorija, jer sam izričito rekao 713 00:32:42,660 --> 00:32:46,720 nazvati ovaj program bok, tako da su Ja sada mogu upisati takvo ime 714 00:32:46,720 --> 00:32:47,790 i to se ponašaju. 715 00:32:47,790 --> 00:32:50,180 >> Sad iskreno, dječak je da nezanimljiv imati 716 00:32:50,180 --> 00:32:52,170 zapamtiti sve to Malo minutia, zar ne? 717 00:32:52,170 --> 00:32:54,180 Dakle, idemo naprijed i dobili osloboditi od Hello opet. 718 00:32:54,180 --> 00:32:57,880 I ajmo sada vratiti u svijetu u što je dovoljno reći da se javim. 719 00:32:57,880 --> 00:33:00,410 No, to je magija koja da radi za vas, 720 00:33:00,410 --> 00:33:02,320 to je dosada da to radi za vas. 721 00:33:02,320 --> 00:33:04,630 I kao što je naše programe i Problemi se složeniji, 722 00:33:04,630 --> 00:33:06,142 učinit će doista biti tvoj prijatelj. 723 00:33:06,142 --> 00:33:07,850 Budući da nije predugo od sada ćemo 724 00:33:07,850 --> 00:33:11,150 da su programi koje su napisane Ne s jedne datoteke, ali nekoliko datoteka, 725 00:33:11,150 --> 00:33:16,310 i učinit će automatizirati proces sastavljanju sve to za nas zajedno. 726 00:33:16,310 --> 00:33:20,620 >> Tako sada ispisati. 727 00:33:20,620 --> 00:33:24,960 printf je unutar ove datoteke, standardni I / O točka h, kako smo vidjeli prije, 728 00:33:24,960 --> 00:33:26,980 ali ima još na printf od toga. 729 00:33:26,980 --> 00:33:30,482 Postoji Obrnuta kosa crta nje, ali tu je i hrpa drugih bijega sekvenci. 730 00:33:30,482 --> 00:33:32,940 A bijeg slijed je samo fancy način govoreći nešto 731 00:33:32,940 --> 00:33:35,990 koji počinje s crticom, Ne kosa crta, Obrnuta kosa crta, 732 00:33:35,990 --> 00:33:37,920 a ne neke posebne stvari. 733 00:33:37,920 --> 00:33:43,770 I nećemo živjeti na većini od njih, ali zašto je tu obrnute kose crte dvostruki citat, 734 00:33:43,770 --> 00:33:44,830 Što mislite? 735 00:33:44,830 --> 00:33:48,010 Zašto je to čudno slijed likovi, backslash dvostruko citat, 736 00:33:48,010 --> 00:33:50,505 zašto bi to moglo biti korisno? 737 00:33:50,505 --> 00:33:51,380 UČENIK: [nečujan]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Točno, zar ne? 740 00:33:57,760 --> 00:34:01,830 Sjetite se na naš svijet programu Hello kako smo vidjeli dosta puta sada, 741 00:34:01,830 --> 00:34:05,880 svaki put kad smo vidjeli da Pozdrav svijetu Program smo imali dvostruke navodnike unutar 742 00:34:05,880 --> 00:34:08,210 od kojih je pozdraviti zarezom Svijet Obrnuta kosa crta n. 743 00:34:08,210 --> 00:34:10,070 No, mislim na sebe, što ako je zapravo 744 00:34:10,070 --> 00:34:12,520 htio ispisati navodnim znakom? 745 00:34:12,520 --> 00:34:16,100 Vaš prvi instinkt može biti, ne znam znam zašto bih se želio do-- ovdje, 746 00:34:16,100 --> 00:34:18,780 možemo biti malo pasivni agresivno, Pozdrav prijatelju. 747 00:34:18,780 --> 00:34:21,350 Mi možda želite učiniti nešto takvo. 748 00:34:21,350 --> 00:34:25,230 >> Ali zašto je to sad problematično? 749 00:34:25,230 --> 00:34:28,730 Ignoriranje kovrčavom citati stranu da Glavni je napravio za nas automatski. 750 00:34:28,730 --> 00:34:29,730 Zašto je to problematično? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Točno. 753 00:34:37,270 --> 00:34:39,022 Budući da imamo kao 4 navodnicima. 754 00:34:39,022 --> 00:34:41,230 Pa prvo vjerojatno odlazi s drugom, 755 00:34:41,230 --> 00:34:43,271 a možda i četvrti ide uz treći, 756 00:34:43,271 --> 00:34:46,170 ili, mislim da nisam ni siguran, niti je računalo će biti. 757 00:34:46,170 --> 00:34:48,352 Računala opet, kompilatora opet su prilično glupi. 758 00:34:48,352 --> 00:34:50,060 Oni će raditi samo ono što reci im da rade. 759 00:34:50,060 --> 00:34:54,270 A ako niste jednoznačna oni su vjerojatno idući u baciti na pogrešku. 760 00:34:54,270 --> 00:34:57,700 >> Ako niste jednoznačna kako bi napraviti maslac od kikirikija i kruh s marmeladom 761 00:34:57,700 --> 00:34:59,510 čudne stvari mogle stići. 762 00:34:59,510 --> 00:35:00,580 To je ista ideja. 763 00:35:00,580 --> 00:35:03,100 Sada dovoljno je reći postoji neki drugi escape sekvence, 764 00:35:03,100 --> 00:35:04,820 ali mi ćemo doći do onih prije dugo. 765 00:35:04,820 --> 00:35:07,410 U osnovi to bijeg sekvence predstavljaju nešto 766 00:35:07,410 --> 00:35:10,480 da ne bi mogli biti u mogućnosti Olako na tipkovnici, 767 00:35:10,480 --> 00:35:12,010 bez zbunjujući računalo. 768 00:35:12,010 --> 00:35:15,733 >> Sada je u međuvremenu imamo rezerviranih mjesta u printf. 769 00:35:15,733 --> 00:35:19,630 Postotak D, koji se može pisati u gotovo svim slučajevima je u postotku i, 770 00:35:19,630 --> 00:35:21,610 je rezervirano za kakvu vrstu podataka? 771 00:35:21,610 --> 00:35:23,920 Koji tip vrijednosti? 772 00:35:23,920 --> 00:35:24,920 Decimalni broj. 773 00:35:24,920 --> 00:35:27,234 Tako zapravo ćemo početi korištenjem posto sam jer je to 774 00:35:27,234 --> 00:35:28,650 Malo jednostavnije, kao cijeli broj. 775 00:35:28,650 --> 00:35:29,550 Posto sam. 776 00:35:29,550 --> 00:35:31,320 Cijeli broj koji se dogoditi da se decimale. 777 00:35:31,320 --> 00:35:35,690 >> Posto a mi već rekao je rezervirano za niz. 778 00:35:35,690 --> 00:35:38,630 Koji je samo riječ, izraz, stavka, esej, što god. 779 00:35:38,630 --> 00:35:40,830 To je slijed likovi neke dužine. 780 00:35:40,830 --> 00:35:42,820 I vidjet ćemo prije dugo Neki od ovih drugih. 781 00:35:42,820 --> 00:35:45,950 Ali posto je c za jednu karaktera. 782 00:35:45,950 --> 00:35:48,500 Posto je f za pomičnim zarezom broj, 783 00:35:48,500 --> 00:35:50,860 kao pravi broja koji ima decimalne točke u njemu, koji je 784 00:35:50,860 --> 00:35:52,550 je, naravno, nije cijeli broj. 785 00:35:52,550 --> 00:35:54,670 I tu je cijeli hrpa drugih ljudi. 786 00:35:54,670 --> 00:35:56,990 >> U međuvremenu je u C, a u puno jezika, 787 00:35:56,990 --> 00:35:58,650 imamo različite vrste podataka. 788 00:35:58,650 --> 00:36:00,650 Različite vrste staklene zdjele, ako hoćete. 789 00:36:00,650 --> 00:36:03,830 Zdjela sam se zadnji put bio za ping pong loptice, 790 00:36:03,830 --> 00:36:06,990 ali mi također može pohraniti različite vrijednosti kao što su broj znakova i gudače 791 00:36:06,990 --> 00:36:10,820 i cijeli brojevi u kontejner, kao varijable, i C je to. 792 00:36:10,820 --> 00:36:14,020 Char je vrsta podataka, tip varijable, 793 00:36:14,020 --> 00:36:15,700 u kojem možete pohraniti karakter. 794 00:36:15,700 --> 00:36:19,560 Float je tip varijable u koje možete spremiti pravi broj. 795 00:36:19,560 --> 00:36:21,220 >> Interesi je, naravno, za int. 796 00:36:21,220 --> 00:36:23,760 I prilično smiješno imenovan dugo dugo 797 00:36:23,760 --> 00:36:26,830 je mjesto gdje možete pohraniti u suštini stvarno dugo broj, s još 798 00:36:26,830 --> 00:36:29,930 više znamenki onda Tipičan int moć trgovine. 799 00:36:29,930 --> 00:36:32,420 No, mi ćemo se vratiti na to prije dugo. 800 00:36:32,420 --> 00:36:35,520 >> U CS50 dot h međuvremenu drugo zaglavlje datoteke 801 00:36:35,520 --> 00:36:37,630 da smo vidjeli par puta u uporabi, postoji 802 00:36:37,630 --> 00:36:41,350 Druge dvije vrste podataka koje ne postoji u C obično. 803 00:36:41,350 --> 00:36:45,000 Jedan od njih je niz, pa ćemo vidjeti u nekoliko tjedana Koje žice stvarno 804 00:36:45,000 --> 00:36:46,610 su ispod poklopca motora. 805 00:36:46,610 --> 00:36:47,950 A jedan je bool. 806 00:36:47,950 --> 00:36:51,650 I bool je varijabla koja može se samo na određenim vrijednostima. 807 00:36:51,650 --> 00:36:54,370 I samo na temelju prošlotjednog objašnjenje nule, 808 00:36:54,370 --> 00:36:56,680 te u novije vrijeme C, što bi valjda 809 00:36:56,680 --> 00:37:01,770 su dvije moguće vrijednosti za Neki kontejner koji je tipa bool? 810 00:37:01,770 --> 00:37:02,860 >> I da i ne. 811 00:37:02,860 --> 00:37:03,870 Jedan i nula. 812 00:37:03,870 --> 00:37:04,502 Točno ili netočno. 813 00:37:04,502 --> 00:37:07,460 I doista je posljednji koji ima tendenciju biti konvencionalna u programiranju 814 00:37:07,460 --> 00:37:10,030 jezik, rekavši nešto kao što je istina ili laž. 815 00:37:10,030 --> 00:37:13,160 >> U međuvremenu CS50 knjižnica dolazi s gomilom funkcionalnosti 816 00:37:13,160 --> 00:37:16,640 da osoblje je napisao za vas, Osim samo dobivanje niz. 817 00:37:16,640 --> 00:37:20,910 Napisali smo unaprijed funkcija koje može dobiti broj od korisnika, 818 00:37:20,910 --> 00:37:22,990 dobiti jedan znak, dobiti plovak, koji 819 00:37:22,990 --> 00:37:25,160 je samo broj s decimalne točke. 820 00:37:25,160 --> 00:37:28,290 Nabavite dugo dugo, jako Velika vrijednost od korisnika. 821 00:37:28,290 --> 00:37:30,930 Tako smo samo vidjeli u Akcija u obliku GetString. 822 00:37:30,930 --> 00:37:33,230 No, putem tih funkcija Uskoro će biti u mogućnosti pisati 823 00:37:33,230 --> 00:37:36,070 programi koji su dobili informacije od korisnika. 824 00:37:36,070 --> 00:37:39,230 >> U međuvremenu razmislite o ovom Program, te razmotriti 825 00:37:39,230 --> 00:37:42,600 Kako bismo sada mogli početi dodavati kako bi se s novim tvorevinama. 826 00:37:42,600 --> 00:37:44,530 Brzo vrtlog razgled i onda ćemo tražiti 827 00:37:44,530 --> 00:37:47,340 na neke pisanje nekih programe ručno nama samima. 828 00:37:47,340 --> 00:37:49,700 Ubuduće, ako želimo implementirati stanje, 829 00:37:49,700 --> 00:37:52,790 to neće izgledati Lijepo malo lijepa zagonetka komad. 830 00:37:52,790 --> 00:37:54,460 To će se tražiti malo više kompliciranih. 831 00:37:54,460 --> 00:37:57,620 No, to je kanonska Struktura stanje u C 832 00:37:57,620 --> 00:38:00,380 >> Riječ ako, dva zagrade, unutar kojeg 833 00:38:00,380 --> 00:38:02,590 će biti neka vrsta od Boolean izraza. 834 00:38:02,590 --> 00:38:04,999 Sada slash slash u sredini, to 835 00:38:04,999 --> 00:38:07,290 u ovom trenutku na neki način kao pseudocode kod rezervirano mjesto. 836 00:38:07,290 --> 00:38:11,576 Ali, točnije, bilo linija koda u C koja počinje s slash slash 837 00:38:11,576 --> 00:38:12,850 je komentar. 838 00:38:12,850 --> 00:38:15,920 >> To je kao sticky note koje možda staviti na eseju, tiskan na papiru. 839 00:38:15,920 --> 00:38:17,290 To je napomena da se sami. 840 00:38:17,290 --> 00:38:20,100 To nema funkcionalnu utjecaj na program. 841 00:38:20,100 --> 00:38:23,580 To je svojevrsni podsjetnik, to je tvoja dokumentaciju o tome što se događa. 842 00:38:23,580 --> 00:38:25,720 Dakle, to u ovom trenutku svojevrsni je rezervirano mjesto 843 00:38:25,720 --> 00:38:27,560 za sve što je unutra od onih vitičastih zagrada 844 00:38:27,560 --> 00:38:29,810 na kraju će učiniti nešto. 845 00:38:29,810 --> 00:38:35,160 >> U međuvremenu imate dvije vilice u cesta, ako još izgraditi kao što je ovaj. 846 00:38:35,160 --> 00:38:37,024 Možete li, elseif, drugo. 847 00:38:37,024 --> 00:38:39,690 Sada je napomenuti, pogotovo Ako ste Googling oko 848 00:38:39,690 --> 00:38:42,480 online resursa u znatiželja, ili ako pokupiti 849 00:38:42,480 --> 00:38:44,575 jedan od Naravno-a preporučene knjige o C, 850 00:38:44,575 --> 00:38:48,430 vidjet ćete da ljudi imaju puno različitih sklonosti za koliko 851 00:38:48,430 --> 00:38:50,510 da se izraze u kodu. 852 00:38:50,510 --> 00:38:53,800 Neki ljudi vole staviti vitičastim zagradama, kao što sam učinio ovdje. 853 00:38:53,800 --> 00:38:57,760 Neki ljudi vole staviti Kovrčava aparatić za primjer ovdje. 854 00:38:57,760 --> 00:39:01,700 >> Neki ljudi vole staviti drukčije ovdje i onda je to ovdje. 855 00:39:01,700 --> 00:39:05,120 Tu je bilo više načina da se pisati kod, i nitko od njih 856 00:39:05,120 --> 00:39:06,566 u pravu po sebi. 857 00:39:06,566 --> 00:39:08,440 Iako postoji nekoliko da su prilično u krivu. 858 00:39:08,440 --> 00:39:11,315 No, tu su Ne-- ako je to konačnici vrlo religiozna rasprava. 859 00:39:11,315 --> 00:39:13,940 Zapravo, jedan od najviše smeta stvari o računalnoj znanosti 860 00:39:13,940 --> 00:39:16,310 Kako je tvrdoglav računalni znanstvenici mogu biti. 861 00:39:16,310 --> 00:39:19,880 A vi ćete se s vremenom da je čak i da razviju osobne preferencije 862 00:39:19,880 --> 00:39:22,130 kako je vaš broj bi trebao biti. 863 00:39:22,130 --> 00:39:27,162 >> Ne samo ponašaju, ne samo stvoriti izlaz, ali kako to treba izgledati estetski. 864 00:39:27,162 --> 00:39:30,120 Pa što ćemo učiniti je vas voditi zajedno put prema, za sada barem, 865 00:39:30,120 --> 00:39:34,825 standardni CS50 stil koji najmanje drži stvari ujednačen i jednostavan za čitanje. 866 00:39:34,825 --> 00:39:37,330 No, više o onima razlike prije dugo. 867 00:39:37,330 --> 00:39:41,830 >> Logički izraz u C, ako vas Htio je reći, ako ovo stanje je istina 868 00:39:41,830 --> 00:39:44,650 a ovaj drugi uvjet je Istina, ne napisati riječ 869 00:39:44,650 --> 00:39:46,610 i, kao što bi na engleskom jeziku. 870 00:39:46,610 --> 00:39:50,580 Umjesto toga koristite ampersand ampersand, iz razloga što ćemo se vratiti. 871 00:39:50,580 --> 00:39:54,520 Ako želite reći ili da koristite dva vertikalne linije, koja se na američkoj tipkovnici 872 00:39:54,520 --> 00:39:57,650 je općenito iznad Enter Ključ pored kose crtice. 873 00:39:57,650 --> 00:40:03,080 I to samo znači da ako ovo stanje ili ovaj drugi uvjet je istina to učiniti. 874 00:40:03,080 --> 00:40:05,210 >> U međuvremenu tu je ovo luda stvar, koja 875 00:40:05,210 --> 00:40:07,760 imat ćete priliku koristiti jednom u neko vrijeme. 876 00:40:07,760 --> 00:40:10,390 Ali to je samo alternativa način izraziti sebe. 877 00:40:10,390 --> 00:40:12,400 To je, za sada, ajmo propisano, to je samo 878 00:40:12,400 --> 00:40:16,880 još jedan funky način izražavanja ako je, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 To je samo formatiran u smislu slučajeva, gdje se doslovno 880 00:40:19,720 --> 00:40:23,420 nabrojiti vrijednosti koje možda želite provjeriti. 881 00:40:23,420 --> 00:40:24,410 >> U međuvremenu petlje. 882 00:40:24,410 --> 00:40:26,842 Vidjeli smo usporedbe Zagrebite s petljom. 883 00:40:26,842 --> 00:40:29,550 A ja ću mahati ruku na ono što svaki od tih stvari znači. 884 00:40:29,550 --> 00:40:33,520 Ali primijetite da petlja će vrlo često počinju s ključnom riječi za. 885 00:40:33,520 --> 00:40:36,350 Ili će početi s ključnom riječi neko vrijeme. 886 00:40:36,350 --> 00:40:41,360 Ili će početi s ključnom riječi učiniti, a završiti s ključnom riječi neko vrijeme. 887 00:40:41,360 --> 00:40:43,920 >> Ali što ćemo vidjeti je više stvari kao što je ovaj. 888 00:40:43,920 --> 00:40:47,950 Ovdje je, u cjelini u C, kako biste mogli proglasiti varijablu i dati mu vrijednost. 889 00:40:47,950 --> 00:40:50,610 U C nije dostatno, kao u Scratch, samo 890 00:40:50,610 --> 00:40:52,810 daj mi reci varijablu nešto. 891 00:40:52,810 --> 00:40:55,960 Morate reći C, i reći Vaš prevodilac, točnije, 892 00:40:55,960 --> 00:40:58,680 što tip od vrijednosti ti želite staviti u staklenu posudu. 893 00:40:58,680 --> 00:40:59,610 >> Je li cijeli broj? 894 00:40:59,610 --> 00:41:02,210 Ako je tako, morate doslovno kažu int a zatim 895 00:41:02,210 --> 00:41:04,220 naziv varijable, onda zarez. 896 00:41:04,220 --> 00:41:08,050 Ako umjesto toga htjeli string i pozvao to je kao što sam učinio moj broj danas ovdje, 897 00:41:08,050 --> 00:41:10,920 što će reći String s zarezom. 898 00:41:10,920 --> 00:41:14,200 Kada želite dati vrijednost onda možete koristiti znak jednakosti, 899 00:41:14,200 --> 00:41:16,211 inače poznat kao Dodjela operatera. 900 00:41:16,211 --> 00:41:17,960 I primijetiti kako svaka od tih linija koda 901 00:41:17,960 --> 00:41:20,650 ima zarez od njega. 902 00:41:20,650 --> 00:41:22,550 >> Ali iskreno to samo izgleda malo ružno. 903 00:41:22,550 --> 00:41:26,580 Zašto ne mogu reći na računalo, daju ja promjenjiva i to inicijalizirati na nulu. 904 00:41:26,580 --> 00:41:28,380 To jest, daj mi praznu staklenu posudu. 905 00:41:28,380 --> 00:41:28,980 Dok možete. 906 00:41:28,980 --> 00:41:32,250 I tako jedan od presude te zove ćete morati napraviti stilski tijekom vremena 907 00:41:32,250 --> 00:41:36,290 je, da li vi napisati svoj kod kao što je ovaj, ili Što vrsta očistiš i impresionirati 908 00:41:36,290 --> 00:41:39,040 ljudi pisanjem dvije linije kao samo jedan. 909 00:41:39,040 --> 00:41:41,830 A to će se smatrati općenito više elegantan način 910 00:41:41,830 --> 00:41:43,870 od pisanja koda stilski. 911 00:41:43,870 --> 00:41:45,200 >> Funkcije smo naravno vidio. 912 00:41:45,200 --> 00:41:46,340 Oni će se ovaj format. 913 00:41:46,340 --> 00:41:48,881 Naziv funkcije, neki zagradama, a onda možda neki 914 00:41:48,881 --> 00:41:49,910 stvari iznutra. 915 00:41:49,910 --> 00:41:52,540 Ili ste možda vidjeli koristi od više funkcija strana 916 00:41:52,540 --> 00:41:55,980 po strani, kao da se nešto poput ovoga. 917 00:41:55,980 --> 00:41:59,390 Sada kao tangente, ne ovaj vic je sada smisla? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Smijeh] 920 00:42:04,960 --> 00:42:09,360 To ne znači da je to smiješno, ali to ne, možda bi malo više smisla. 921 00:42:09,360 --> 00:42:12,140 Dakle, sada idemo u CS50 aparat za trenutak. 922 00:42:12,140 --> 00:42:14,640 I neka mi se otvori jedan teaser ovdje. 923 00:42:14,640 --> 00:42:17,470 >> I doista je jedan od razloga za uvođenje IKEA katalog 924 00:42:17,470 --> 00:42:20,080 i treperi sliku iPhone malo prije 925 00:42:20,080 --> 00:42:24,700 bio je zapravo vezati u zajedno Činjenica da je prije samo nekoliko godina, u 2007, 926 00:42:24,700 --> 00:42:26,540 ovaj dio koda je objavljen, koja je 927 00:42:26,540 --> 00:42:29,820 jedan od prvih provedbu komad softvera 928 00:42:29,820 --> 00:42:31,494 da čini ono što se zove Jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Za one koji nisu upoznati, Jailbreaking nešto kao telefon ili iPhone 930 00:42:34,410 --> 00:42:37,680 znači u biti figuring kako to učiniti stvari 931 00:42:37,680 --> 00:42:39,864 s time da je tvrtka koji je napravio to nije namjeravao. 932 00:42:39,864 --> 00:42:42,780 Kao što želite instalirati određene softver koji nije u App Store, 933 00:42:42,780 --> 00:42:45,405 Jailbreaking svoj telefon koji što raditi stvari kao što je to i još mnogo toga. 934 00:42:45,405 --> 00:42:47,447 No, ono što je zabavno u 2007-- i tamo je bio 935 00:42:47,447 --> 00:42:49,780 desetke različitih verzija od tih stvari od tada, 936 00:42:49,780 --> 00:42:53,540 u svim vrstama languages-- je da Ovaj program ovdje, zove iUnlock, 937 00:42:53,540 --> 00:42:57,036 je zapravo napisan u C. I tako sam izvukao se izvorni kod za to, 938 00:42:57,036 --> 00:42:59,910 samo da vrsta pokazati neke od sličnosti s konstruktima 939 00:42:59,910 --> 00:43:01,450 smo raspravljalo do sada. 940 00:43:01,450 --> 00:43:05,150 Sada postoji daleko više složenosti ovdje nego što smo vidjeli već u klasi. 941 00:43:05,150 --> 00:43:07,160 Dopustite mi da pomicanje gore samo malo ovdje. 942 00:43:07,160 --> 00:43:11,520 >> No primijetite these-- dobro smo primijetiti neke things-- ali primijetite ove retke ovdje, 943 00:43:11,520 --> 00:43:14,090 uključujući standardnu ​​I / O dot h. 944 00:43:14,090 --> 00:43:17,660 I all-- linije 24, molim Primijetit standardni I / O 945 00:43:17,660 --> 00:43:21,380 točka H i cijela hrpa drugih Datoteke koje očito drugi ljudi 946 00:43:21,380 --> 00:43:22,160 napisao. 947 00:43:22,160 --> 00:43:24,850 A ako mi se pomaknite prema dolje kroz ovaj, malo samovoljno, 948 00:43:24,850 --> 00:43:27,910 zamijetiti da ne znam kako napisati sve je to još uvijek ja nužno, 949 00:43:27,910 --> 00:43:28,880 ali postoji li. 950 00:43:28,880 --> 00:43:30,400 Dakle, očito to ima podružnicu. 951 00:43:30,400 --> 00:43:33,210 >> A ako mi se pomaknite prema dolje malo Nadalje tu je još jedan, ako. 952 00:43:33,210 --> 00:43:38,210 Ako sam pomicanje gore, mislim oko 100 linija sam vidjela. 953 00:43:38,210 --> 00:43:40,020 Pa nisam baš siguran kako se to radi, ali, 954 00:43:40,020 --> 00:43:43,180 ali ovo je za petlje da će se to neka mi neko ponoviti nekoliko puta. 955 00:43:43,180 --> 00:43:45,230 A ako sam dođite svi do dna 956 00:43:45,230 --> 00:43:51,020 Vidim da postoji funkcionirati ovdje naziva 957 00:43:51,020 --> 00:43:54,570 Glavni i neke dodatne kredite za svoj užitak čitanja. 958 00:43:54,570 --> 00:43:57,830 >> Dakle, ovo je samo za say-- pa ćemo staviti Ova online među izvora Tečaj je 959 00:43:57,830 --> 00:44:01,480 Kod today-- da čak i neki od njih uređaji koji uzimamo zdravo za gotovo, 960 00:44:01,480 --> 00:44:05,130 Na kraju dana, ti si još uvijek pomoću ove osnovne konstrukte koje smo 961 00:44:05,130 --> 00:44:07,430 uvodi se već do sada. 962 00:44:07,430 --> 00:44:08,620 To je dovoljno da je jedan. 963 00:44:08,620 --> 00:44:11,480 U redu, tako da sada neka je zapravo graditi nešto. 964 00:44:11,480 --> 00:44:15,640 >> Idemo dalje nešto slično hello.c, i otvoriti ta, 965 00:44:15,640 --> 00:44:17,170 ajmo napisati ovaj program ovdje. 966 00:44:17,170 --> 00:44:19,850 Ja ću ići naprijed i napisati program koji se zove adder.c, 967 00:44:19,850 --> 00:44:23,310 čija je svrha u životu će biti kao što je moj prvi Super jednostavan kalkulator 968 00:44:23,310 --> 00:44:24,840 da samo dodaje nekoliko brojeva. 969 00:44:24,840 --> 00:44:27,050 Ne zato što je to teško Problem, nego zato što je 970 00:44:27,050 --> 00:44:29,390 omogućuje mi da sada vezati zajedno nekoliko stvari. 971 00:44:29,390 --> 00:44:33,100 Dakle, ja ću ići naprijed i uključuju standardni I / O točaka H i CS50 točka h. 972 00:44:33,100 --> 00:44:34,670 Ja ću reći int main prazninu. 973 00:44:34,670 --> 00:44:36,545 I opet u budućnosti vratit ćemo se na njega 974 00:44:36,545 --> 00:44:38,560 u se u tom kontekstu i nevažećih sredstvima. 975 00:44:38,560 --> 00:44:43,340 >> A sada ću nešto reći kao printf, daj mi cijeli broj. 976 00:44:43,340 --> 00:44:47,610 A sada na mom drugom redu, kako mogu izraziti sebe kao 977 00:44:47,610 --> 00:44:50,980 da želim proglasiti varijablu koje će pohraniti int? 978 00:44:50,980 --> 00:44:55,470 Doslovno što sam upisati ako želim stvoriti varijablu koja pohranjuje int 979 00:44:55,470 --> 00:44:58,270 bi ti rekao? 980 00:44:58,270 --> 00:44:59,650 int jednak getint. 981 00:44:59,650 --> 00:45:00,485 Naravno, tako da se radi. 982 00:45:00,485 --> 00:45:02,360 I samo za dosljednost s kodom da ćete 983 00:45:02,360 --> 00:45:04,485 vidjeti na internetu, neka me mijenjati to x, samo zato x 984 00:45:04,485 --> 00:45:06,830 je zajedničko ime varijable za korištenje, barem algebra. 985 00:45:06,830 --> 00:45:08,720 Sada neka mi ići naprijed i ne printf opet. 986 00:45:08,720 --> 00:45:10,692 Daj mi još jedan cijeli broj. 987 00:45:10,692 --> 00:45:12,900 A sada ću vrste od naučiti iz tog obrasca, 988 00:45:12,900 --> 00:45:14,490 Ja ću reći int y dobiva se GetInt. 989 00:45:14,490 --> 00:45:16,340 >> I nismo se koristi GetInt prije, ali samo 990 00:45:16,340 --> 00:45:19,860 kao GetString ide i dobiva niz, kao što je Javier je iz publike, 991 00:45:19,860 --> 00:45:22,780 Slično radi GetInt početi treptati provjeru. 992 00:45:22,780 --> 00:45:26,750 I učinkovito čeka korisnika kako bi ga se cijeli broj, tako da ga upišete u 993 00:45:26,750 --> 00:45:27,900 i udaranje Enter. 994 00:45:27,900 --> 00:45:30,850 Sada napokon ću učiniti to, printf zbroj of-- 995 00:45:30,850 --> 00:45:36,080 i neka mi se zavoljeti now-- posto sam i ja posto je prisutan 996 00:45:36,080 --> 00:45:39,270 Ja uskličnika obrnute kose crte n. 997 00:45:39,270 --> 00:45:42,750 A što ti misliš da ću staviti u sada kao dodatnim ulazima 998 00:45:42,750 --> 00:45:44,620 do printf? 999 00:45:44,620 --> 00:45:47,380 >> Ne želim reći doslovno citirati Citat završen x. 1000 00:45:47,380 --> 00:45:52,210 Želim razred u X i tada, a sada idemo dobiti fancy 1001 00:45:52,210 --> 00:45:54,420 i neka je samo pretpostavljati možemo učiniti ono što želimo. 1002 00:45:54,420 --> 00:45:56,330 Ono što želim reći je sljedeće? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 I doista da će raditi. 1005 00:45:58,520 --> 00:46:01,760 To je minimalno programski jezici ne razumiju osnovne aritmetičke, 1006 00:46:01,760 --> 00:46:03,500 pa to bi trebalo u stvari rade. 1007 00:46:03,500 --> 00:46:06,730 >> Pa neka mi ići naprijed i čine guja u mom crno-bijeli prozor 1008 00:46:06,730 --> 00:46:08,090 ovdje, Enter. 1009 00:46:08,090 --> 00:46:10,830 Grobni linija, ali bez pogreške Poruka, tako da je dobra. 1010 00:46:10,830 --> 00:46:14,410 Dot Slash guja, daj mi cijeli broj, 1. 1011 00:46:14,410 --> 00:46:16,230 Daj mi još jedan cijeli broj, 2. 1012 00:46:16,230 --> 00:46:18,770 Zbroj 1 i 2 je 3. 1013 00:46:18,770 --> 00:46:21,730 >> U redu, tako da prilično trivijalna Program, ali što je to učinio? 1014 00:46:21,730 --> 00:46:25,680 To mi je omogućilo da koristite funkciju ovdje zovu, zovu još jednu funkciju ovdje, 1015 00:46:25,680 --> 00:46:29,260 Dva poziva na GetInt, a Treći natječaj za printf, 1016 00:46:29,260 --> 00:46:30,720 a onda pomoću tih rezervirana mjesta. 1017 00:46:30,720 --> 00:46:33,160 Dakle, to je malo više sofisticiran nego prošli put. 1018 00:46:33,160 --> 00:46:35,260 Ali što ako želim dobiti malo ljubitelj? 1019 00:46:35,260 --> 00:46:38,900 >> Dopustite mi ići naprijed i sada to učiniti. 1020 00:46:38,900 --> 00:46:42,890 Dopustite mi ići naprijed i stvoriti Nova datoteka zove uvjeti nulu. 1021 00:46:42,890 --> 00:46:44,890 A ja ću spasiti malo vremena za razrede radi 1022 00:46:44,890 --> 00:46:48,260 i samo zalijepite u tome Kod kao polazište. 1023 00:46:48,260 --> 00:46:51,510 A sada samo ću staviti nešto novo ovdje u sredini. 1024 00:46:51,510 --> 00:46:55,889 Pa printf Htio bih cijeli broj molim te. 1025 00:46:55,889 --> 00:46:58,180 I sve to kod je dostupan na web stranici tečaja je, 1026 00:46:58,180 --> 00:47:00,556 ne morate sve to tip iz u klasi ako Radije ne bih. 1027 00:47:00,556 --> 00:47:02,638 Interesi, a sada ću koristiti, umjesto xiy, 1028 00:47:02,638 --> 00:47:05,270 Ja ću koristiti N, koji je Vjerojatno najčešći naziv 1029 00:47:05,270 --> 00:47:09,220 za cijeli broj u računalni program. 1030 00:47:09,220 --> 00:47:12,060 A sada želim napraviti Malo presuda ovdje. 1031 00:47:12,060 --> 00:47:15,460 Idem vidjeti je li n je veći od 0, onda 1032 00:47:15,460 --> 00:47:23,670 Ja ću reći printf-- Ups, printf-- ste pokupili pozitivan niz, 1033 00:47:23,670 --> 00:47:25,370 uskličnik Obrnuta kosa crta n. 1034 00:47:25,370 --> 00:47:26,460 Zatvorite to. 1035 00:47:26,460 --> 00:47:33,150 Inače ću ispisati printf ste pokupili negativan broj. 1036 00:47:33,150 --> 00:47:35,377 >> Sada prije nego što vikati na mene, ajmo pokrenuti ovaj program. 1037 00:47:35,377 --> 00:47:36,210 Pusti me ovdje dolje. 1038 00:47:36,210 --> 00:47:40,730 I kako sam sastaviti program nazvao uvjeti crtica 0? 1039 00:47:40,730 --> 00:47:42,300 Stvoriti uvjete crtica 0. 1040 00:47:42,300 --> 00:47:45,560 Malo glupo ime, ali-- k vragu. 1041 00:47:45,560 --> 00:47:47,560 U redu, dobro nastava trenutak. 1042 00:47:47,560 --> 00:47:48,410 Zašto je to razbiti? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Što sam slučajno nazvati ovu sliku? 1045 00:47:54,710 --> 00:47:56,876 Možete vrsta zaključiti na kartici ovdje. 1046 00:47:56,876 --> 00:47:58,750 Dakle, to nije loše da sam je to učinio, jer je to 1047 00:47:58,750 --> 00:48:00,208 će se dogoditi, možda bi neki od vas. 1048 00:48:00,208 --> 00:48:03,880 Tako sam slučajno dobio ime moje Izvorni kod uvjet 0. 1049 00:48:03,880 --> 00:48:09,950 Ali moj izvorni kod strane konvencije treba biti u datoteci pod nazivom Stanje 0 crtica c, 1050 00:48:09,950 --> 00:48:11,720 ili što god točka c. 1051 00:48:11,720 --> 00:48:12,610 >> Pa neka mi to srediti. 1052 00:48:12,610 --> 00:48:16,880 Baš kao što je Microsoft Word mogu ići gore spremiti kao i to stanje 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Sada samo da bude uredna sam ići naprijed i skinite 1054 00:48:20,100 --> 00:48:23,020 stanje 0, što je bila moja stara verzija. 1055 00:48:23,020 --> 00:48:26,550 A sada idemo čine Stanje 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 U redu, čini dobro. 1057 00:48:27,870 --> 00:48:29,510 >> Stanje 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Ja bih cijeli broj molim, 50, ste pokupili pozitivan broj. 1059 00:48:33,530 --> 00:48:35,390 Sada kako o negativnom 50? 1060 00:48:35,390 --> 00:48:37,660 Izabrao si negativan broj. 1061 00:48:37,660 --> 00:48:39,605 Kako je sada, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Prilično siguran 0 nije negativna. 1064 00:48:45,350 --> 00:48:47,780 >> Dakle, ovo je neka vrsta logičke greške. 1065 00:48:47,780 --> 00:48:50,680 Kako mogu popraviti ovo? 1066 00:48:50,680 --> 00:48:57,260 Inače, ako je n manji od 0, to učiniti, drugo možemo imati tri puta podružnicu ovdje, 1067 00:48:57,260 --> 00:49:01,740 printf ste pokupili 0. 1068 00:49:01,740 --> 00:49:06,150 Pa sad, ako sam to repriza Program, nakon što ga sastavljanje 1069 00:49:06,150 --> 00:49:10,790 ponovno napraviti, a sada ponoviti Stanje 0, što ću vidjeti ovdje 1070 00:49:10,790 --> 00:49:14,570 0 daje mi taj izlaz. 1071 00:49:14,570 --> 00:49:16,280 Dakle, gdje ćemo s tim? 1072 00:49:16,280 --> 00:49:18,930 >> Pa to je vrlo lako izgubiti iz vida šume za drveće. 1073 00:49:18,930 --> 00:49:23,590 I tako nam omogućiti da zaključe s ovim 2 i 1/2 minute videa 1074 00:49:23,590 --> 00:49:25,710 koji u konačnici je malo od oglasom iz Googlea, 1075 00:49:25,710 --> 00:49:28,850 ali to je stvarno dokaz ono što ni pomoću ove osnovne zgrade 1076 00:49:28,850 --> 00:49:33,020 blokovi smo u konačnici može učiniti jednom imamo malo programiranja 1077 00:49:33,020 --> 00:49:34,463 Pamet u našim pojasevima. 1078 00:49:34,463 --> 00:49:35,150 >> [Muziciranja] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (VoiceOver): Bilo je to prije 26 godina, 1081 00:49:40,540 --> 00:49:42,470 i ja se upravo okrenuti 5. 1082 00:49:42,470 --> 00:49:45,465 Dobili smo do željezničke stanice i smo se ukrcali naš vlak zajedno. 1083 00:49:45,465 --> 00:49:48,010 Moj brat je samo rekao da ću ostati ovdje, a ja ću se vratiti. 1084 00:49:48,010 --> 00:49:51,140 A upravo sam mislio, dobro znate, Ja možda i samo ići na spavanje 1085 00:49:51,140 --> 00:49:52,690 i on samo će me probuditi. 1086 00:49:52,690 --> 00:49:55,145 A kad sam se probudio pokraj dan, cijeli prijevoz 1087 00:49:55,145 --> 00:49:59,125 bio prazan na odbjegli vlak, duh Vlak me vodi ne znam gdje. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Bio sam usvojio na Australiju, na Australian obitelji. 1090 00:50:06,280 --> 00:50:09,710 A mama je uređena mom Soba s kartom Indije, 1091 00:50:09,710 --> 00:50:11,950 koju je stavio pored moje postelje. 1092 00:50:11,950 --> 00:50:15,830 Probudio sam se svako jutro gledajući tu kartu, a time i 1093 00:50:15,830 --> 00:50:18,530 To na neki način čuva uspomene na životu. 1094 00:50:18,530 --> 00:50:20,530 Ljudi će reći, ti si pokušavate pronaći iglu 1095 00:50:20,530 --> 00:50:23,560 u plastu sijena, Saroo nikada nećete naći. 1096 00:50:23,560 --> 00:50:28,540 >> Ja bih se bljeskale od mjesta koje sam se ići, a bljeskovi mojoj obitelji 1097 00:50:28,540 --> 00:50:29,890 suočava. 1098 00:50:29,890 --> 00:50:34,060 Tu je slika moje majke, sjeo s njezine noge prekrižene, 1099 00:50:34,060 --> 00:50:35,740 samo gledam njezin vapaj. 1100 00:50:35,740 --> 00:50:38,160 Život je samo tako teško. 1101 00:50:38,160 --> 00:50:41,237 To je moje blago. 1102 00:50:41,237 --> 00:50:44,320 I ja sam bio u potrazi na Google Karta i shvatila da je Google Earth, kao dobro. 1103 00:50:44,320 --> 00:50:48,140 U svijetu u kojem si mogao zumirati, Počela sam imati sve ove misli 1104 00:50:48,140 --> 00:50:51,500 a što mogućnosti da bi to mogao učiniti za mene. 1105 00:50:51,500 --> 00:50:54,890 Rekao sam sebi, znate, vi ste dobio sve one fotografske uspomene 1106 00:50:54,890 --> 00:50:58,590 i znamenitosti odakle si, i znate što grad izgleda. 1107 00:50:58,590 --> 00:51:03,060 To bi mogao biti program koji možete koristiti kako bi pronašli svoj put natrag. 1108 00:51:03,060 --> 00:51:06,720 >> Mislio sam, i ja ću staviti točka na željezničke stanice Calcutta, 1109 00:51:06,720 --> 00:51:10,890 i radijus linija, znaš, to ti treba biti u potrazi oko ovog područja. 1110 00:51:10,890 --> 00:51:13,750 Nekako sam naišao te željezničke pruge. 1111 00:51:13,750 --> 00:51:18,160 I počeo sam sljedeće, i Došla sam do željezničke stanice koja 1112 00:51:18,160 --> 00:51:22,228 odražava istu sliku to je bilo u mojim sjećanjima. 1113 00:51:22,228 --> 00:51:23,707 Sve podudaraju. 1114 00:51:23,707 --> 00:51:27,950 Samo sam mislila Yep, ja Znam gdje idem. 1115 00:51:27,950 --> 00:51:30,116 Samo ću pustiti Karta koju imam u glavi 1116 00:51:30,116 --> 00:51:33,080 vodi me i odvedi me natrag u moj rodni grad. 1117 00:51:33,080 --> 00:51:36,420 >> Došao sam na pragu Kuća se da sam se rodio. 1118 00:51:36,420 --> 00:51:39,140 I hodao oko 15 metara oko kutu, 1119 00:51:39,140 --> 00:51:42,980 Bila su tri dame stoji izvana, jedna uz drugu. 1120 00:51:42,980 --> 00:51:47,830 A srednji istupili i Mislila sam, ovo je tvoja majka. 1121 00:51:47,830 --> 00:51:53,450 Došla je prema naprijed, ona me zagrlila, a bili smo tu za oko pet minuta. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Zgrabila me za ruku i Odvela me u kuću 1124 00:51:59,000 --> 00:52:02,450 i dobio na telefon, gdje je Zazvonio mi sestru i brata 1125 00:52:02,450 --> 00:52:05,600 reći da je, znate, tvoj brat ima samo 1126 00:52:05,600 --> 00:52:09,340 sve odjednom pojavio kao duh. 1127 00:52:09,340 --> 00:52:12,440 A onda je obitelj ponovno ujedinila. 1128 00:52:12,440 --> 00:52:15,110 Sve što je sve dobro, Pomogao sam svoju majku, 1129 00:52:15,110 --> 00:52:17,110 ona ne mora biti slaving daleko. 1130 00:52:17,110 --> 00:52:19,555 Ona može živjeti ostatak njezina života u miru. 1131 00:52:19,555 --> 00:52:23,460 >> Bilo je igla u plastu sijena, ali igla je bio tamo. 1132 00:52:23,460 --> 00:52:24,400 Sve što je tamo. 1133 00:52:24,400 --> 00:52:28,260 Sve imamo u svijetu je na slavinu na gumb. 1134 00:52:28,260 --> 00:52:32,010 Ali moraš imati volju i odlučnost da ga žele. 1135 00:52:32,010 --> 00:52:32,950 >> [Muziciranja] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Predivno slatki izjava 1138 00:52:38,170 --> 00:52:40,540 samo ono što možete sad učiniti s tehnologijom. 1139 00:52:40,540 --> 00:52:43,390 Mi ćemo vas vidjeti sljedeći tjedan. 1140 00:52:43,390 --> 00:52:44,374