1 00:00:00,000 --> 00:00:01,500 >> [REPRODUCCIÓ DE MÚSICA] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Bé aquest és CS50 i aquest és el final de la primera setmana. 4 00:00:16,110 --> 00:00:20,760 Així que m'agradaria presentar al meu ex aconsellat, Andel Duff, que no només fa 5 00:00:20,760 --> 00:00:25,460 iPhone 5 es troba, així com aquest faristol, també fa que els automòbils. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Com et va, tothom? 8 00:00:29,510 --> 00:00:31,980 Només vull explicar una mica poc sobre la Fórmula SAE, de la qual jo 9 00:00:31,980 --> 00:00:32,604 sóc el capità. 10 00:00:32,604 --> 00:00:33,437 És un equip del MIT. 11 00:00:33,437 --> 00:00:35,520 Només vull dir-te nois una mica sobre ella 12 00:00:35,520 --> 00:00:37,520 i espero generar una mica d'interès. 13 00:00:37,520 --> 00:00:41,590 >> Així que deixeu-me parlar a través d'un parell de coses sobre el nostre equip. 14 00:00:41,590 --> 00:00:43,640 Així que estem completament funcionament de l'estudiant, en el qual tot 15 00:00:43,640 --> 00:00:47,300 el disseny dels membres, simular prova, i el fabricant d'un subsistema 16 00:00:47,300 --> 00:00:48,090 del cotxe. 17 00:00:48,090 --> 00:00:51,240 Tenim el nostre propi taller de mecànica i garatges, i N52-- o ho sento, 18 00:00:51,240 --> 00:00:54,140 N51-- que és el mateix edifici com el Museu de la Ciència MIT. 19 00:00:54,140 --> 00:00:55,990 I nosaltres som el poble que condueixen el cotxe. 20 00:00:55,990 --> 00:00:58,340 Hi ha un concurs nacional en el començament de l'estiu, 21 00:00:58,340 --> 00:01:01,215 i després hi ha els més petits tiroteig competicions durant tot l'any. 22 00:01:01,215 --> 00:01:04,400 I després que fem de formació de conductors dies per aconseguir nous membres familiaritzats. 23 00:01:04,400 --> 00:01:08,280 >> Els nostres dies estan en construcció Dissabtes 11 a.m.-8 p.m .. 24 00:01:08,280 --> 00:01:11,060 El dinar i el sopar estan cuidant d', a partir de Bertucci i Beantown 25 00:01:11,060 --> 00:01:12,130 respectivament. 26 00:01:12,130 --> 00:01:15,260 Tenim una reunió setmanal i seminari, que és per al crèdit del curs. 27 00:01:15,260 --> 00:01:18,560 Què hi ha de nou a partir d'aquest semestre, i també serà per al pròxim semestre, 28 00:01:18,560 --> 00:01:19,940 perquè pugui creuar-reg per això. 29 00:01:19,940 --> 00:01:22,960 I després tenim el disseny, botiga, i CAD dies durant la setmana, 30 00:01:22,960 --> 00:01:26,870 mentre que els membres ho farà de manera independent Parts de CAD, l'ordre comú, etcètera. 31 00:01:26,870 --> 00:01:29,200 >> Així que per elèctrica enginyeria en l'equip 32 00:01:29,200 --> 00:01:31,110 tenim la nostra tracció, sistema d'alta tensió, 33 00:01:31,110 --> 00:01:33,390 que funciona a un nominal 300 volts, que inclou 34 00:01:33,390 --> 00:01:35,360 motors, reguladors de motor, i els paquets de bateries. 35 00:01:35,360 --> 00:01:37,235 Llavors tenim un baix sistema de tensió, que s'executa 36 00:01:37,235 --> 00:01:40,180 a 12 volts, que inclou controls, PODEN limfàtics, el cervell 37 00:01:40,180 --> 00:01:41,570 caixa, i el tauler d'instruments. 38 00:01:41,570 --> 00:01:43,890 En la mesura de CS va, ho fem tenir manteniment del lloc web 39 00:01:43,890 --> 00:01:47,940 que heu de fer per a esdeveniments, membres canvis, noves imatges i material de PR. 40 00:01:47,940 --> 00:01:51,540 I després tenim el codi que controla el cotxe per al nostre control de tracció, llançament 41 00:01:51,540 --> 00:01:55,750 control, control d'instruments, vectorització del parell, i sistemes de frenada regeneratiu, que 42 00:01:55,750 --> 00:01:59,170 funcionar normalment en MATLAB, Simulink i LabView. 43 00:01:59,170 --> 00:02:00,910 >> Et diré una mica sobre el cotxe. 44 00:02:00,910 --> 00:02:02,470 Així que és al voltant de 500 lliures. 45 00:02:02,470 --> 00:02:04,285 És normes limitades a 85 quilowatts. 46 00:02:04,285 --> 00:02:08,310 Té 2 EMRAX 207 motors al esquena, un per a cada roda posterior. 47 00:02:08,310 --> 00:02:11,880 Compta amb paquets de bateries personalitzades a partir de cèl · lules de la borsa A123 prismàtiques, 48 00:02:11,880 --> 00:02:14,780 un total de 300 volts i 5.6 quilowatts hora. 49 00:02:14,780 --> 00:02:17,950 I és d'accionament directe amb una proporció de 2,64-1 unitat. 50 00:02:17,950 --> 00:02:20,970 Aquestes són algunes fotos que prendre d'ell en la competència. 51 00:02:20,970 --> 00:02:25,820 Aquí hi ha el con posterior, el nas, i aquí hi ha els motors, 52 00:02:25,820 --> 00:02:29,682 aquests grans discos negres sota del mens et manus. 53 00:02:29,682 --> 00:02:32,140 Heus aquí una diapositiva que vaig treure fora del nostre esquema de competència. 54 00:02:32,140 --> 00:02:35,389 I això és només comparant el nostre cotxe a un parell de cotxes disponibles al mercat, 55 00:02:35,389 --> 00:02:38,380 com la KTM XBOW, Ariel Atom, i Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Si està familiaritzat amb el preu, el poder tirar de pes, dòlars per cavall de força, 57 00:02:42,110 --> 00:02:44,930 dòlars per parell, i el nostre cotxe tots ells bufa fora de l'aigua. 58 00:02:44,930 --> 00:02:47,520 Si vostè té alguna pregunta, anoteu aquesta adreça de correu electrònic. 59 00:02:47,520 --> 00:02:50,800 Envia'ns un correu electrònic a fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Estem feliços de parlar sobre alguna cosa que t'agradaria. 61 00:02:53,350 --> 00:02:55,600 Els estudiants de Harvard són amables de la minoria en l'equip. 62 00:02:55,600 --> 00:02:58,350 Si vostè té alguna pregunta sobre que si us plau, envia'ns un correu electrònic, 63 00:02:58,350 --> 00:03:00,810 feliç de parlar, i jo vaig per tornar a David. 64 00:03:00,810 --> 00:03:01,550 Gràcies. 65 00:03:01,550 --> 00:03:02,466 T'ho agraeixo, nois. 66 00:03:02,466 --> 00:03:03,615 [Aplaudiments] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel passar l'estiu treballa amb nosaltres aquí al campus a CS50 69 00:03:10,980 --> 00:03:11,480 aquest estiu. 70 00:03:11,480 --> 00:03:13,505 I a més de treballar en coses com les bombetes binaris, 71 00:03:13,505 --> 00:03:16,090 que realment em va obrir la nostra ulls-- i la meva en particular: 72 00:03:16,090 --> 00:03:20,535 al que realment la intersecció de no de maquinari i programari pot ser. 73 00:03:20,535 --> 00:03:23,410 De fet moltes de les coses que acaba de realitzar una gira a través d'aquesta última instància 74 00:03:23,410 --> 00:03:26,030 creat per primera vegada en el programari, i a continuació, en última instància, fabricat 75 00:03:26,030 --> 00:03:27,299 en el món real en el maquinari. 76 00:03:27,299 --> 00:03:29,590 Així que si vostè està interessat en explorant aquesta intersecció, 77 00:03:29,590 --> 00:03:31,430 potser prendre fins a aquest grup. 78 00:03:31,430 --> 00:03:34,140 >> Ara mentrestant, aquells de vostès que són fanàtics de la tecnologia, 79 00:03:34,140 --> 00:03:36,140 i els productes d'Apple a particular, saber que hi ha 80 00:03:36,140 --> 00:03:37,860 hi havia un parell de anuncis d'ahir. 81 00:03:37,860 --> 00:03:39,776 Però nosaltres pensem que el mostrem que un que va sortir 82 00:03:39,776 --> 00:03:43,590 uns pocs dies abans que és possible que no hagi vist. 83 00:03:43,590 --> 00:03:46,150 >> Jørgen EGHAMMER: Vostè sap, una vegada en un temps una mica 84 00:03:46,150 --> 00:03:49,540 ve que canvia la forma en què vivim. 85 00:03:49,540 --> 00:03:53,479 Un dispositiu de manera senzilla i intuïtiva utilitzant se sent gairebé familiar. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Presentació de 2,015 catàleg IKEA. 88 00:04:04,138 --> 00:04:10,420 No és un llibre digital o un llibre electrònic, que és un llibre de llibre. 89 00:04:10,420 --> 00:04:14,440 >> La primera cosa a tenir en compte és no cables, ni tan sols un cable d'alimentació. 90 00:04:14,440 --> 00:04:18,519 El catàleg IKEA 2015 ve totalment carregada, 91 00:04:18,519 --> 00:04:20,550 i la durada de la bateria és eterna. 92 00:04:20,550 --> 00:04:27,300 La interfície és de 7,5 per 8 polzades, però es pot ampliar a 15 per 8 polzades. 93 00:04:27,300 --> 00:04:32,410 La navegació es basa en contacte tàctil tecnologia que en realitat es pot sentir. 94 00:04:32,410 --> 00:04:37,120 >> Contingut ve pre-instal lat a través de 328 pàgines d'alta definició 95 00:04:37,120 --> 00:04:40,180 d'inspirar les idees de decoració de la llar. 96 00:04:40,180 --> 00:04:43,740 Per iniciar la navegació, simplement toc i arrossegament. 97 00:04:43,740 --> 00:04:50,870 De dreta a esquerra per seguir endavant, esquerra a dreta per moure cap enrere. 98 00:04:50,870 --> 00:04:52,770 >> Noti alguna cosa més? 99 00:04:52,770 --> 00:04:53,780 Això és correcte. 100 00:04:53,780 --> 00:04:55,190 No lag. 101 00:04:55,190 --> 00:04:58,400 Cada pàgina cristal·lines càrregues instantàniament, 102 00:04:58,400 --> 00:05:00,586 no importa el ràpid que es desplaça. 103 00:05:00,586 --> 00:05:03,710 Per obtenir una visió general, simplement sostenir en el palmell de la mà, 104 00:05:03,710 --> 00:05:06,816 i usant només el polze, Velocitat explorar el contingut. 105 00:05:06,816 --> 00:05:10,930 >> Si trobeu alguna cosa que voleu desar per a més endavant, vostè simplement pot indexar-la. 106 00:05:10,930 --> 00:05:17,620 I fins i tot si es tanca l'aplicació, vostè pot trobar fàcilment el marcador de nou. 107 00:05:17,620 --> 00:05:18,490 Increïble. 108 00:05:18,490 --> 00:05:20,434 >> [Rialles] 109 00:05:20,434 --> 00:05:21,406 [Aplaudiments] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Així que això ens porta a Al final de la primera setmana. 112 00:05:29,870 --> 00:05:31,760 Alguns anuncis ara. 113 00:05:31,760 --> 00:05:33,440 Així seccionament està ara en progrés. 114 00:05:33,440 --> 00:05:36,860 Aneu a aquest URL aquí alguna vegada entre avui i divendres al migdia 115 00:05:36,860 --> 00:05:39,960 especificar en realitat si vostè és entre els menys còmodes, més 116 00:05:39,960 --> 00:05:41,690 còmode, o en algun punt intermedi. 117 00:05:41,690 --> 00:05:44,511 >> Això és típicament un dels coses que només tipus de coneixements. 118 00:05:44,511 --> 00:05:47,510 I, de fet, aquells de vostès que són menys còmoda probablement saber tant, 119 00:05:47,510 --> 00:05:49,634 aquells de vostès que són més còmode saben tant, 120 00:05:49,634 --> 00:05:54,960 i una altra si vostè no està molt segur que d'aquests cubs caus en què estiguis 121 00:05:54,960 --> 00:05:56,210 probablement en algun lloc en el medi. 122 00:05:56,210 --> 00:05:59,810 Però tingui la seguretat que pot canviar després d'un parell de setmanes si és necessari. 123 00:05:59,810 --> 00:06:02,620 >> Mentrestant, per a la setmana vinent no comencem seccions per se, 124 00:06:02,620 --> 00:06:04,760 però súper seccions, que estan oberts a tots els estudiants. 125 00:06:04,760 --> 00:06:08,220 Aquest proper diumenge en una ubicació per s'anunciarà en el lloc web del curs 126 00:06:08,220 --> 00:06:10,190 tindrem una per a els menys còmodes, 127 00:06:10,190 --> 00:06:12,470 així com un els més còmodes. 128 00:06:12,470 --> 00:06:15,460 I els que en algun punt intermedi pot triar quin dels dos, 129 00:06:15,460 --> 00:06:17,360 o ambdues, si ho desitja, per seure al. 130 00:06:17,360 --> 00:06:19,630 I l'enfocament dels serà en última instància de C, 131 00:06:19,630 --> 00:06:22,440 que seguirem el nostre conversa d'avui. 132 00:06:22,440 --> 00:06:25,070 >> Butlletí de problemes 0 mentrestant és amb sort a les teves mans. 133 00:06:25,070 --> 00:06:27,500 Oficialment per demà, Dijous, al migdia. 134 00:06:27,500 --> 00:06:29,490 A menys que vostè coure en un dels 5 dies de retard, 135 00:06:29,490 --> 00:06:31,780 que el portaria fins divendres al migdia. 136 00:06:31,780 --> 00:06:34,420 Butlletí de problemes 1 per la seva part serà publicat a la pàgina web del curs. 137 00:06:34,420 --> 00:06:37,381 I aquesta serà la nostra primera incursió com una classe en C. 138 00:06:37,381 --> 00:06:40,630 I aquest conjunt de problemes espec us guiarà a a través d'una gran quantitat de la mecànica del 139 00:06:40,630 --> 00:06:43,960 Comencem a parlar el dilluns, i continuarem parlant avui. 140 00:06:43,960 --> 00:06:46,770 C, Linux, el CS50 aparell, tot això 141 00:06:46,770 --> 00:06:48,990 l'esperen en l'especificació. 142 00:06:48,990 --> 00:06:52,840 >> L'horari d'atenció per la seva banda estan en curs, al menjador universitari. 143 00:06:52,840 --> 00:06:56,240 Dirigeix-te a aquest URL per veure el programar per a aquesta nit i demà, 144 00:06:56,240 --> 00:06:57,930 si vol participar. 145 00:06:57,930 --> 00:07:01,920 Preguntes Mentrestant, perquè tenir oportunitats de fer preguntes 146 00:07:01,920 --> 00:07:05,860 asíncrona, 24/7, s'adonen que estàs no limitat a les seccions i oficines 147 00:07:05,860 --> 00:07:09,530 hores, sinó més bé aquesta eina aquí, CS50 Discutir en aquest URL 148 00:07:09,530 --> 00:07:12,150 estarà en línia del curs programari de tauler d'anuncis, a través del qual 149 00:07:12,150 --> 00:07:15,030 vostè pot fer preguntes a companys de classe i també personal. 150 00:07:15,030 --> 00:07:18,492 Així que tingui en compte que els recursos també. 151 00:07:18,492 --> 00:07:20,200 Mentrestant, una tradició comença aquest divendres. 152 00:07:20,200 --> 00:07:23,200 Com vostè va poder haver albirat des vídeo teaser de dimecres passat, 153 00:07:23,200 --> 00:07:25,510 tenim una tradició més tots els divendres durant el mandat 154 00:07:25,510 --> 00:07:28,750 de prendre uns 50 estudiants i personal a un restaurant local anomenat 155 00:07:28,750 --> 00:07:31,510 Foc i Gel, en la qual estem normalment acompanyat per alguns exalumnes 156 00:07:31,510 --> 00:07:33,850 o amics de la indústria a general aspirar 157 00:07:33,850 --> 00:07:35,780 per fer una classe gran se senti més petit. 158 00:07:35,780 --> 00:07:37,560 Així que és un dinar completament informal. 159 00:07:37,560 --> 00:07:40,160 Un grup de nosaltres, el personal especialment, jugarà les cadires musicals 160 00:07:40,160 --> 00:07:43,360 i xerrar amb els estudiants sobre 50, la vida fora de 50, 161 00:07:43,360 --> 00:07:46,510 vida en el futur, el món real, Estic parlant de les oportunitats d'ocupació 162 00:07:46,510 --> 00:07:47,680 amb els seus amics en la indústria. 163 00:07:47,680 --> 00:07:51,110 >> Així que si vol unir-se a nosaltres aquest divendres, el cap a aquest URL aquí. 164 00:07:51,110 --> 00:07:54,180 L'espai és limitat, però farem això recurrentment al llarg del termini. 165 00:07:54,180 --> 00:07:57,380 Dirigeix-te allà per cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 I si vostè no rep a aquesta vegada, no es preocupi. 167 00:07:59,380 --> 00:08:02,390 Anem a fer-ho de nou en les pròximes setmanes també. 168 00:08:02,390 --> 00:08:05,434 >> Així que aquesta és la foto pintem la setmana passada, 169 00:08:05,434 --> 00:08:07,350 i del que has estat incursions en fins ara. 170 00:08:07,350 --> 00:08:10,360 Però anem a tractar de connectar aquesta ara al que anem a fer avui 171 00:08:10,360 --> 00:08:11,440 i en endavant. 172 00:08:11,440 --> 00:08:14,760 Podria tenir un voluntari? 173 00:08:14,760 --> 00:08:16,000 Molt bé, o més. 174 00:08:16,000 --> 00:08:18,460 I aquí al final, de la camisa blava. 175 00:08:18,460 --> 00:08:20,329 Anem cap amunt, quin és el teu nom? 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 Així Alana, per només un moment-- Encantat de conèixer usted-- 179 00:08:25,100 --> 00:08:28,260 es jugarà el paper d'aquesta funció aquí. 180 00:08:28,260 --> 00:08:31,290 El bloc de color porpra que hem anomenada fins ara una funció. 181 00:08:31,290 --> 00:08:34,830 Així que el que vaig a anar per davant aquí i oferir Alana 182 00:08:34,830 --> 00:08:38,380 és una mica d'etiqueta amb el seu nom, per fer clar el paper que està jugant. 183 00:08:38,380 --> 00:08:39,753 >> Així és que ha de ser el bloc diguem. 184 00:08:39,753 --> 00:08:41,419 Si desitja seguir endavant i posar això en. 185 00:08:41,419 --> 00:08:43,169 I anem a mantenir aquesta super simple. 186 00:08:43,169 --> 00:08:46,180 Si l'objectiu a la mà és simplement ara a posar en pràctica amb Alana, 187 00:08:46,180 --> 00:08:49,710 aquest anomenat bloc dir, així és com funcionarà. 188 00:08:49,710 --> 00:08:52,574 Jo tenen-- diguem un argument o paràmetre, 189 00:08:52,574 --> 00:08:54,240 no deixa de ser un full de paper en blanc. 190 00:08:54,240 --> 00:08:57,239 I és blanc de classe de ser una reminiscència de la caixa blanca a la que vostè 191 00:08:57,239 --> 00:08:58,080 pot escriure paraules. 192 00:08:58,080 --> 00:09:00,660 >> Mentrestant, jo vaig a anar aquí. 193 00:09:00,660 --> 00:09:06,560 Vaig a seguir endavant i escriure H-E-L-L-O coma món. 194 00:09:06,560 --> 00:09:09,972 I ara, com dir el programador, no ho faig realment saben com dir alguna cosa. 195 00:09:09,972 --> 00:09:12,180 Em passa amb les paraules, però no és així necessàriament 196 00:09:12,180 --> 00:09:15,220 saber com expressar- verbalment o en la pantalla. 197 00:09:15,220 --> 00:09:17,280 I així el que vaig de fer és prendre aquesta peça 198 00:09:17,280 --> 00:09:21,157 de funcionalitat, la entrada-- o argument, com l'anomenarem, 199 00:09:21,157 --> 00:09:23,990 He escrit en aquest tros de paper-- i jo vaig a subcontractar. 200 00:09:23,990 --> 00:09:26,831 >> I de fet aquest és el paper que funcions en un llenguatge de programació 201 00:09:26,831 --> 00:09:27,330 pot jugar. 202 00:09:27,330 --> 00:09:29,246 Una cosa així com l'exemple bloc pot ser subcontractat 203 00:09:29,246 --> 00:09:32,074 algú que realment sap el que ell o ella està parlant. 204 00:09:32,074 --> 00:09:33,990 Així que si vas a passar per sobre aquí per un moment, 205 00:09:33,990 --> 00:09:40,092 Vaig a passar a aquesta entrada per Alana, i demani que li digui aquesta entrada. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hola, món. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: Això és tot. 208 00:09:42,160 --> 00:09:43,326 Així que hi ha una funció. 209 00:09:43,326 --> 00:09:46,556 Ara podem anar una mica més, podem fer un pas endavant aquí. 210 00:09:46,556 --> 00:09:48,180 Perquè això va ser clarament decebedor. 211 00:09:48,180 --> 00:09:51,670 Així que ara anem a convertir això en cosa una mica més sofisticat. 212 00:09:51,670 --> 00:09:53,630 >> Així que això, per descomptat, és la nostra versió C. 213 00:09:53,630 --> 00:09:56,760 Així que ara si vostè vol prendre aquest un fos, que etiqueta amb el seu nom fos, 214 00:09:56,760 --> 00:09:58,530 i anem a haver de posar un nou nom. 215 00:09:58,530 --> 00:10:00,850 Però fonamentalment ets jugant el mateix paper, 216 00:10:00,850 --> 00:10:03,400 dóna la casualitat que dir printf ara. 217 00:10:03,400 --> 00:10:06,930 >> La història és, per descomptat, va a ser-- probablement 218 00:10:06,930 --> 00:10:09,317 tal com és underwhelming-- serà el següent. 219 00:10:09,317 --> 00:10:10,650 Vostè és ara el printf funció. 220 00:10:10,650 --> 00:10:13,300 Jo sóc la persona que truca, o l' programador, que vol 221 00:10:13,300 --> 00:10:15,745 de peu sobre les espatlles d' persones en el passat com tu, 222 00:10:15,745 --> 00:10:18,670 que ja han descobert la manera per realment escriure alguna cosa. 223 00:10:18,670 --> 00:10:20,650 I així que aquesta vegada, en lloc de dir que anem a 224 00:10:20,650 --> 00:10:22,255 utilitzar realment la nostra pantalla aquí. 225 00:10:22,255 --> 00:10:24,130 Així que si voleu fer un pas per aquí, vaig 226 00:10:24,130 --> 00:10:27,196 per a passar de nou això com d'entrada al meu amic printf. 227 00:10:27,196 --> 00:10:29,320 Si vostè pot seguir endavant i imprimir que a la pantalla, 228 00:10:29,320 --> 00:10:31,611 simplement dibuixant amb el seu el dit a la pantalla en negre. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Excel · lent. 231 00:10:44,180 --> 00:10:47,350 Molt bé, així que un munt de suspens per com anava a jugar fora. 232 00:10:47,350 --> 00:10:51,390 >> Així que ara anem a prendre les coses una osca final, si poguéssim, de la següent manera. 233 00:10:51,390 --> 00:10:53,980 Així que aquest és un programa C com vam dir l'última vegada. 234 00:10:53,980 --> 00:10:57,460 I això només fa el que va fer, que imprimeix a la pantalla, hola, món. 235 00:10:57,460 --> 00:11:00,290 Encara que clarament hi ha molt de coses distreuen fins allà. 236 00:11:00,290 --> 00:11:03,630 Però anem a prendre les coses a un nivell superior i introduir aquesta versió, que recorden 237 00:11:03,630 --> 00:11:06,160 Va ser la tercera versió que acabem amb l'última vegada. 238 00:11:06,160 --> 00:11:09,120 >> I ara hi ha clarament dos usos de printf. 239 00:11:09,120 --> 00:11:12,280 Hi ha 2 trucades a Alana en aquest cas per printf, 240 00:11:12,280 --> 00:11:14,740 però també hi ha una trucada a una altra funció. 241 00:11:14,740 --> 00:11:17,150 Quina és aquesta funció amb claredat? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> Podem aconseguir un voluntari més? 244 00:11:18,980 --> 00:11:20,980 Bé, anem cap amunt. 245 00:11:20,980 --> 00:11:21,805 Quin és el teu nom? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, anem a dalt. 248 00:11:24,750 --> 00:11:27,270 Així que el paper de Javier està en aquest tros de paper. 249 00:11:27,270 --> 00:11:28,860 Què vaig a trucar genèricament s. 250 00:11:28,860 --> 00:11:32,250 Ara bé, aquesta és una variable, és de tipus cadena, com s'implica 251 00:11:32,250 --> 00:11:34,290 per aquesta segona línia en el medi allà. 252 00:11:34,290 --> 00:11:36,540 I m'agradaria que vagis a buscar una cadena. 253 00:11:36,540 --> 00:11:40,120 Específicament baixar a l'orquestra secció i em aconseguir el nom d'algú, 254 00:11:40,120 --> 00:11:43,142 i tornar amb una variable que conté aquest valor. 255 00:11:43,142 --> 00:11:44,225 Pot ser qualsevol que desitgi. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Aquí anem. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Molt bé, Javier és anotant el nom. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Bé. 262 00:12:03,280 --> 00:12:05,740 Tots podem endevinar com això va a jugar fora. 263 00:12:05,740 --> 00:12:07,489 Potser Estem belaboring el punt del 264 00:12:07,489 --> 00:12:10,320 una funció està fent, però no obstant això, moltes gràcies. 265 00:12:10,320 --> 00:12:13,890 >> Així Javier ha tornat aquesta cadena aquí, la qual cosa, no pot veure bé, 266 00:12:13,890 --> 00:12:15,800 Jonathan és la cadena que ens hem ficat. 267 00:12:15,800 --> 00:12:18,330 Així que ara el que estic realment va per proporcionar Alana encara 268 00:12:18,330 --> 00:12:20,150 és una cosa una mica diferent. 269 00:12:20,150 --> 00:12:23,800 Com que en aquesta versió de la programa, primer cal digui el seu nom. 270 00:12:23,800 --> 00:12:26,160 Així que el primer argument Necessito proporcionar Alana 271 00:12:26,160 --> 00:12:33,030 amb que serà literalment, digui el seu nom. 272 00:12:33,030 --> 00:12:35,280 Molt bé, així de simple M'agradaria lliurar això a vostè. 273 00:12:35,280 --> 00:12:36,730 I mentre escric l' següent argument, si 274 00:12:36,730 --> 00:12:39,230 volen seguir endavant i escriure aquest al tauler, seguirem endavant 275 00:12:39,230 --> 00:12:42,659 i fer l'últim exemple aquí per fer aclarir el que en última instància ha de succeir. 276 00:12:42,659 --> 00:12:44,450 Així que digui el seu nom, escriure cap a la part superior 277 00:12:44,450 --> 00:12:47,220 si no t'importa, només perquè tenim espai per a una segona línia. 278 00:12:47,220 --> 00:12:52,890 Perquè l'últim que vaig ara li proporcionarà no és un, 279 00:12:52,890 --> 00:12:57,220 sinó dos trossos de paper. 280 00:12:57,220 --> 00:12:58,074 >> Bé. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O coma i després una línia en blanc. 282 00:13:01,920 --> 00:13:04,780 Així que el que estic a punt d'entregar Alana ara és una cosa una mica diferent. 283 00:13:04,780 --> 00:13:08,600 No només és aconseguir això, on omplir l'espai en blanc representa 284 00:13:08,600 --> 00:13:12,050 que cent- quin era el marcador de posició que hem estat utilitzant? 285 00:13:12,050 --> 00:13:13,890 Sí, i cent s. 286 00:13:13,890 --> 00:13:16,530 Mentrestant, jo vaig a passar ella en un segon argument, que 287 00:13:16,530 --> 00:13:19,290 és precisament el que Javier recuperat de Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Així que et donaré aquests dos. 289 00:13:20,534 --> 00:13:22,575 Si vol, endavant i imprimir aquest efecte. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Què està succeint en última instància, ara és, Alana de nou 292 00:13:28,130 --> 00:13:29,410 està jugant el paper de printf. 293 00:13:29,410 --> 00:13:32,160 Javier estava jugant el paper de GetString. 294 00:13:32,160 --> 00:13:34,700 Així que serà el seu record. 295 00:13:34,700 --> 00:13:39,910 I en última instància, el que està succeint, tot i aquest hello-- sip seguir endavant i coma. 296 00:13:39,910 --> 00:13:41,410 ALANA: Vaig rebre aquest encara o no? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Sí, vostè dos rebuda en una vegada. 298 00:13:43,451 --> 00:13:45,740 Així que la idea és que vostè ara pot capgirar la pàgina 299 00:13:45,740 --> 00:13:50,000 per manejar el segon d'aquestes dues entrades. 300 00:13:50,000 --> 00:13:53,280 Així que això és només per recalcar la assenyalar que, mentre que Alana executat 301 00:13:53,280 --> 00:13:55,830 aquesta línia verda aquí, i després Javier va fer això per a nosaltres 302 00:13:55,830 --> 00:13:57,820 i tornar a mi alguna cosa anomenarem s, però va ser realment 303 00:13:57,820 --> 00:13:59,520 només aquest tros de paper del seu propi. 304 00:13:59,520 --> 00:14:02,320 I ara Alana ha fet aquesta tercera línia. 305 00:14:02,320 --> 00:14:06,010 >> I malgrat tot això es veu tan increïblement críptica potser 306 00:14:06,010 --> 00:14:08,870 a primera vista, el que realment és tan simple com això. 307 00:14:08,870 --> 00:14:11,390 Passant entrades voltant, aconseguir sortides, ja sigui 308 00:14:11,390 --> 00:14:14,560 ser lliurat físicament tornar alguna cosa, o veure un efecte secundari d'aquesta manera. 309 00:14:14,560 --> 00:14:17,170 Una cosa visualment escrit a la pantalla. 310 00:14:17,170 --> 00:14:19,990 Així que seguirem endavant i gràcies Alana i Javier, 311 00:14:19,990 --> 00:14:25,012 que era aquí sota, per acompanyar-nos fins aquí. 312 00:14:25,012 --> 00:14:25,934 >> [Aplaudiments] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Així que ara anem a prendre per fet el senzill tot això podria ser. 315 00:14:33,480 --> 00:14:36,775 I anem a procedir a la realitat fer alguna cosa en codi real. 316 00:14:36,775 --> 00:14:40,620 Així que a la pantalla aquí és una captura de pantalla de l'anomenada aparell CS50. 317 00:14:40,620 --> 00:14:43,980 I si haguessis de a, com 14:00 dimecres a la tarda, 318 00:14:43,980 --> 00:14:46,602 explicar a algun amic el que l'aparell és CS50, 319 00:14:46,602 --> 00:14:48,185 Com definiria en una frase? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Qualsevol sola frase? 322 00:14:53,240 --> 00:14:54,876 Sí? 323 00:14:54,876 --> 00:14:57,334 ESTUDIANT: És com un programa això fa que l'equip de tots 324 00:14:57,334 --> 00:14:58,460 córrer amb el mateix sistema. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Good! 326 00:14:59,210 --> 00:15:02,810 És un programa que permet a cadascun equip funcioni amb el mateix sistema. 327 00:15:02,810 --> 00:15:04,920 És una espècie del seu propi còpia d'un operatiu 328 00:15:04,920 --> 00:15:07,540 sistema que passa a ser cridat Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 I funciona de manera efectiva dins una finestra en el seu propi Mac o PC, 330 00:15:11,070 --> 00:15:15,080 perquè d'aquesta manera a la dreta de la porta en la setmana 1, tothom aquí a la classe 331 00:15:15,080 --> 00:15:17,590 té accés a les mateixes eines, la mateixa configuració, 332 00:15:17,590 --> 00:15:21,250 i no hi ha corba d'aprenentatge específica a un Mac o un PC en particular. 333 00:15:21,250 --> 00:15:25,620 >> Ara hem obert, a l'interior de la CS50 aparell dilluns, aquest programa aquí. 334 00:15:25,620 --> 00:15:27,040 Li passa a dir-se gedit. 335 00:15:27,040 --> 00:15:29,050 Però això és realment només un editor gràfic. 336 00:15:29,050 --> 00:15:33,170 És una cosa així com el Bloc de notes o text Editar en Windows o Mac OS, respectivament. 337 00:15:33,170 --> 00:15:36,720 I em vaig proposar que no eren realment tres parts importants a aquesta pantalla. 338 00:15:36,720 --> 00:15:39,560 La part superior és on es escriuria el codi. 339 00:15:39,560 --> 00:15:44,080 I aquí és on passem gran part del nostre tres exemples en la conferència de dilluns. 340 00:15:44,080 --> 00:15:47,650 La part inferior ens crida el que, aquesta finestra negre, sí? 341 00:15:47,650 --> 00:15:48,640 >> ESTUDIANT: Compilador? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compilador que visitada a través d'aquesta finestra. 343 00:15:51,500 --> 00:15:53,040 Però de manera més general. 344 00:15:53,040 --> 00:15:54,540 Sí, era només una finestra de terminal. 345 00:15:54,540 --> 00:15:57,780 Aquest és un vell terme edat que acaba de descriu essencialment un parpelleig 346 00:15:57,780 --> 00:16:01,910 ràpida, que fa anys solia ser el un d'aquests grans monitors CRT estil. 347 00:16:01,910 --> 00:16:04,300 Però avui en dia és una espècie de virtual en programari. 348 00:16:04,300 --> 00:16:06,710 I les finestres de terminal Anem a nosaltres escrivim les ordres. 349 00:16:06,710 --> 00:16:11,750 És una espècie de versió simplificada de la interfície d'usuari o interfície d'usuari. 350 00:16:11,750 --> 00:16:14,060 No és una gràfica interfície d'usuari o GUI, 351 00:16:14,060 --> 00:16:17,250 que és una interfície basada en text o una interfície de línia d'ordres. 352 00:16:17,250 --> 00:16:20,770 >> I en efecte, que és on en última instància, Jo era capaç d'escriure una mica de codi. 353 00:16:20,770 --> 00:16:24,200 Una vegada que havia escrit una mica de codi, però, Recordo que vaig utilitzar aquesta comanda. 354 00:16:24,200 --> 00:16:26,210 I com el nom tipus d'indica, aquest 355 00:16:26,210 --> 00:16:29,860 em permet fer una programa anomenat Hola. 356 00:16:29,860 --> 00:16:33,400 Però, què va ser el que realment fa? 357 00:16:33,400 --> 00:16:36,180 Bé maquillatge estava prenent el meu d'entrada, el codi font, 358 00:16:36,180 --> 00:16:39,380 i convertir-lo al que, en última instància? 359 00:16:39,380 --> 00:16:40,060 >> El codi objecte. 360 00:16:40,060 --> 00:16:42,790 I el codi objecte és només una fantasia manera de dir zeros i uns. 361 00:16:42,790 --> 00:16:46,420 I llavors una vegada que volia per executar aquest codi objecte, 362 00:16:46,420 --> 00:16:50,940 una vegada que volia passar com a entrada els zeros i uns en el meu equip de 363 00:16:50,940 --> 00:16:54,430 cervell, l'anomenada CPU o unitat central de processament, 364 00:16:54,430 --> 00:16:55,730 Vaig haver de córrer el programa. 365 00:16:55,730 --> 00:16:59,042 Però no era bastant senzill dilluns només fer doble clic a alguna icona. 366 00:16:59,042 --> 00:17:01,375 El que en canvi vaig haver fer per executar un programa? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Quina va ser aquest segon mandat? 369 00:17:07,890 --> 00:17:09,619 Estic escoltant una mica de barres? 370 00:17:09,619 --> 00:17:10,544 Sí, sí? 371 00:17:10,544 --> 00:17:12,474 >> ESTUDIANT: Dot tala i el nom del programa. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Exactament. 373 00:17:13,349 --> 00:17:15,030 Dot tala i el nom del programa. 374 00:17:15,030 --> 00:17:16,210 Ara què significa això? 375 00:17:16,210 --> 00:17:19,470 Bé punt és només una forma arcana de dir directori actual. 376 00:17:19,470 --> 00:17:23,440 Qualsevol que sigui la carpeta es troba a és com a referència, es representa com a punt. 377 00:17:23,440 --> 00:17:26,680 La barra és just el que vostè ha vist en Mac OS i Windows durant anys, 378 00:17:26,680 --> 00:17:30,329 és un separador entre un directori o la carpeta i la resta d'algun nom. 379 00:17:30,329 --> 00:17:32,620 Al Windows que succeeix a anar cap enrere, en Linux i Mac 380 00:17:32,620 --> 00:17:34,210 US passa a anar cap endavant. 381 00:17:34,210 --> 00:17:37,560 Però és només el separador, pel que és només un detall sintàctic poc interessant. 382 00:17:37,560 --> 00:17:40,440 >> La part sucosa del curs és el nom del programa, Hola. 383 00:17:40,440 --> 00:17:42,650 I això és el que fan que crear per a nosaltres. 384 00:17:42,650 --> 00:17:44,910 S'emet aquest arxiu per a nosaltres. 385 00:17:44,910 --> 00:17:46,700 Però com hem arribat a aquest punt? 386 00:17:46,700 --> 00:17:48,870 Ara anem a demanar a la pregunta, el que era realment 387 00:17:48,870 --> 00:17:52,470 passant aquí, almenys amb que fa a alguns aquesta sintaxi? 388 00:17:52,470 --> 00:17:57,000 >> Així que en una frase més o menys, Com expliquem distància 389 00:17:57,000 --> 00:17:59,020 aquesta primera línia que és ressaltat en verd? 390 00:17:59,020 --> 00:18:02,998 Quina va ser aquesta primera línia fent, pel que fa al meu programa? 391 00:18:02,998 --> 00:18:03,974 Sí? 392 00:18:03,974 --> 00:18:05,067 >> ESTUDIANT: [inaudible]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Digues-ho una altra vegada? 394 00:18:06,150 --> 00:18:08,734 ESTUDIANT: Inclusió i descarregar funcions anteriors [inaudible]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Good. 396 00:18:09,483 --> 00:18:11,900 Incloent, no diré la descàrrega, però diguem 397 00:18:11,900 --> 00:18:15,500 incloent-hi les funcions que les persones han escrit en el passat. 398 00:18:15,500 --> 00:18:18,260 I aquestes funcions s'implementen en algun lloc del meu ordinador. 399 00:18:18,260 --> 00:18:20,470 Algú va escriure un arxiu Fa anys, i aquest arxiu 400 00:18:20,470 --> 00:18:23,490 és en algun lloc dins de la CS50 aparell, o en el meu disc dur 401 00:18:23,490 --> 00:18:24,480 de manera més general. 402 00:18:24,480 --> 00:18:27,810 I el que aquesta línia està dient essencialment, anar a buscar aquest arxiu, punt E / S estàndard 403 00:18:27,810 --> 00:18:31,740 h, i copiar i enganxar el seu contingut aquí mateix a la part superior del meu arxiu 404 00:18:31,740 --> 00:18:33,860 de manera que jo no he de fer-ho manualment a mi mateix. 405 00:18:33,860 --> 00:18:40,970 >> I entre les peces més sucoses a l'interior de aquest arxiu reclamem era quina funció? 406 00:18:40,970 --> 00:18:45,740 Quina funció vam dir va ser declarat o esmentada en I / S estàndard dot h 407 00:18:45,740 --> 00:18:47,120 més probable? 408 00:18:47,120 --> 00:18:47,900 Printf, oi? 409 00:18:47,900 --> 00:18:50,797 No escrivim printf en Dilluns, tot just existia. 410 00:18:50,797 --> 00:18:52,880 Igual que Alana acaba d'arribar a l'escenari i ella només 411 00:18:52,880 --> 00:18:55,540 existit i sabia com dibuixar alguna cosa a la pantalla, 412 00:18:55,540 --> 00:18:58,660 així no hi printf durant molts anys. 413 00:18:58,660 --> 00:19:00,240 I que aquesta és la forma en què accedim. 414 00:19:00,240 --> 00:19:03,280 Ara bé, si ens movem d'aquí, principal era que anàloga 415 00:19:03,280 --> 00:19:06,620 dir a la peça del trencaclosques es diu quan la bandera verda fa clic 416 00:19:06,620 --> 00:19:07,620 en el món de les ratllades. 417 00:19:07,620 --> 00:19:10,130 És només una mena de nom per defecte que els humans 418 00:19:10,130 --> 00:19:13,340 decidit que representaria la punt d'entrada per defecte a un programa. 419 00:19:13,340 --> 00:19:16,540 El tros de codi de programació que és executat primer. 420 00:19:16,540 --> 00:19:19,700 >> Mentrestant aquestes claus són una mena de forma corbada 421 00:19:19,700 --> 00:19:21,410 de moltes d'aquestes peces d'esgarrapades grogues. 422 00:19:21,410 --> 00:19:24,860 Ells encapsulen tipus de conjunt manat d'instruccions junts. 423 00:19:24,860 --> 00:19:28,350 Per tant, només una mica de uneix part de la funcionalitat relacionada. 424 00:19:28,350 --> 00:19:33,750 printf per descomptat és una funció que imprimeix la pantalla, com ho acabem de fer. 425 00:19:33,750 --> 00:19:35,190 >> Què passa amb aquests parèntesis? 426 00:19:35,190 --> 00:19:38,770 Com define-- fins i tot si no tens Mai programada abans, però només sobre la base 427 00:19:38,770 --> 00:19:41,320 ara en una creixent esperem que la intuïció, el que 428 00:19:41,320 --> 00:19:43,290 estan entre parèntesis fent per nosaltres aquí? 429 00:19:43,290 --> 00:19:45,450 O què estan envoltant? 430 00:19:45,450 --> 00:19:46,360 Sí? 431 00:19:46,360 --> 00:19:49,360 >> ESTUDIANT: Estan dient el vostè va a imprimir amb printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Sí, ells estan dient el que vostè va a imprimir amb printf. 433 00:19:52,401 --> 00:19:56,260 O més en general, són que envolta les entrades de la funció. 434 00:19:56,260 --> 00:19:58,530 Així que gairebé es pot pensar d'aquests parèntesis 435 00:19:58,530 --> 00:20:01,620 com sent com el metall clip en aquest portapapers. 436 00:20:01,620 --> 00:20:05,940 És el que està sostenint, és el que hi ha serà utilitzat per proporcionar arguments 437 00:20:05,940 --> 00:20:08,500 en la funció, que en aquest cas es diu printf. 438 00:20:08,500 --> 00:20:12,390 >> Així, en general, gairebé qualsevol vegada que cridem a una funció, 439 00:20:12,390 --> 00:20:14,280 anem a veure un parell de parèntesis. 440 00:20:14,280 --> 00:20:17,000 Potser amb alguna cosa en ell, com ara, potser res en ell. 441 00:20:17,000 --> 00:20:19,770 Però això és on posaries les entrades o els anomenats arguments 442 00:20:19,770 --> 00:20:20,680 a una funció. 443 00:20:20,680 --> 00:20:22,470 >> Aquí està un d'aquests arguments. 444 00:20:22,470 --> 00:20:24,467 He ressaltat tot entre les cometes, 445 00:20:24,467 --> 00:20:26,300 perquè resulta que en aquesta llengua anomenada 446 00:20:26,300 --> 00:20:29,950 C, quan es vol representar una string-- que és una paraula o una frase 447 00:20:29,950 --> 00:20:33,470 o fins i tot un paragraph-- has de envoltar amb cometes dobles. 448 00:20:33,470 --> 00:20:35,420 No cotitzacions simples, cometes dobles. 449 00:20:35,420 --> 00:20:37,460 I això és exactament el que he fet aquí. 450 00:20:37,460 --> 00:20:39,900 >> Mentrestant hi ha un covard símbol cap al final allà. 451 00:20:39,900 --> 00:20:41,600 La barra invertida n. 452 00:20:41,600 --> 00:20:43,460 Què vam dir que representava? 453 00:20:43,460 --> 00:20:44,093 Sí? 454 00:20:44,093 --> 00:20:44,980 >> ESTUDIANT: Una nova línia. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nova línia. 456 00:20:45,896 --> 00:20:47,910 Cert, no ho fa generalment premeu Enter quan 457 00:20:47,910 --> 00:20:50,430 desitja que el programa escopir una nova línia. 458 00:20:50,430 --> 00:20:54,210 Més aviat ho dius explícitament amb aquesta peça és cert arcà 459 00:20:54,210 --> 00:20:58,770 de la sintaxi, la barra invertida n, que vols una nova línia per anar-hi. 460 00:20:58,770 --> 00:20:59,810 Finalment, el punt i coma. 461 00:20:59,810 --> 00:21:01,560 Nosaltres realment no parlem massa sobre això, 462 00:21:01,560 --> 00:21:04,893 i fins ara, aquest serà la ruïna d'alguns de la seva existència pel primer problema 463 00:21:04,893 --> 00:21:07,990 establir, quan simplement no es va adonar se li ha oblidat una cosa tan estúpid 464 00:21:07,990 --> 00:21:08,614 com un punt i coma. 465 00:21:08,614 --> 00:21:11,600 I, en general posada haurà arreglar aquest problema. 466 00:21:11,600 --> 00:21:13,511 Però, ¿què és el que fa per a nosaltres, què li diries? 467 00:21:13,511 --> 00:21:15,670 >> ESTUDIANT: [inaudible]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Ho sento? 469 00:21:17,484 --> 00:21:18,532 >> ESTUDIANT: [inaudible]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Acabant un comunicat. 471 00:21:19,990 --> 00:21:22,770 És una cosa així com el període en el final d'una frase anglès, 472 00:21:22,770 --> 00:21:25,790 mentre que en aquesta llengua C està acabant un comunicat. 473 00:21:25,790 --> 00:21:29,250 Una instrucció de programació codi que el que desitja és a dir, 474 00:21:29,250 --> 00:21:30,500 Ja he acabat amb això. 475 00:21:30,500 --> 00:21:32,240 Ara noti que és l'únic aquí. 476 00:21:32,240 --> 00:21:34,614 Així que vostè no desitja aconseguir en el costum de posar punt i coma 477 00:21:34,614 --> 00:21:36,190 després de cada tancament de parèntesi. 478 00:21:36,190 --> 00:21:38,610 Per exemple no hi ha cap al costat del buit, i anem a 479 00:21:38,610 --> 00:21:40,430 tornar en el futur al que significa buit. 480 00:21:40,430 --> 00:21:44,080 Però en aquest cas el seu printf és una funció, o una declaració que s'utilitzi, 481 00:21:44,080 --> 00:21:47,420 i així volem haver de terminal al final de la mateixa. 482 00:21:47,420 --> 00:21:50,980 >> I estic intencionalment ficant amb C. I francament un munt de llenguatges com C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, i qualsevol nombre de altres idiomes tenen una gran quantitat d'aquests 484 00:21:55,000 --> 00:21:56,730 tipus de dades sintàctics. 485 00:21:56,730 --> 00:22:00,120 Això certament si sou nou en programació pot realment ensopegar. 486 00:22:00,120 --> 00:22:02,307 I vostè, marqui el meu És a dir, alguns de vostès 487 00:22:02,307 --> 00:22:04,140 tenir aquesta experiència en horari d'oficina o tarda 488 00:22:04,140 --> 00:22:07,554 en la nit treballant en algunes p-set, on el teu maleït programa simplement no compila, 489 00:22:07,554 --> 00:22:09,470 no funcionar, vostè té ni idea del que està malament, 490 00:22:09,470 --> 00:22:11,513 sembla completament lògicament correcte per a vostè. 491 00:22:11,513 --> 00:22:13,596 I és perquè se li va oblidar una mena de colpejar 492 00:22:13,596 --> 00:22:15,250 un punt i coma al final d'alguna línia. 493 00:22:15,250 --> 00:22:17,590 >> Però aquests són els tipus de coses que vostè és va a aprendre immediatament per veure. 494 00:22:17,590 --> 00:22:20,048 I de fet aquestes són les coses que i de la CA TF tenen 495 00:22:20,048 --> 00:22:23,210 estat una mena de formació per veure molt més ràpid que tu. 496 00:22:23,210 --> 00:22:26,610 I pel que aquest és només per dir, a mesura que submergeix-te en un problema conjunt 1, especialment, 497 00:22:26,610 --> 00:22:28,217 no se senten frustrats per aquestes coses. 498 00:22:28,217 --> 00:22:30,050 Una vegada que una espècie d'aclimatar- al món, que 499 00:22:30,050 --> 00:22:35,130 començar a veure coses que no es poden veure a primera vista aquesta primera setmana. 500 00:22:35,130 --> 00:22:37,440 >> Així que el codi font és una cosa així. 501 00:22:37,440 --> 00:22:40,370 Volem passar-ho a l'anomenat compilador. 502 00:22:40,370 --> 00:22:42,850 I això compilador com vam dir proporciona una sortida 503 00:22:42,850 --> 00:22:45,660 conegut com codi objecte, el anomenada zeros i uns. 504 00:22:45,660 --> 00:22:47,747 Però a partir d'aquí, el que ens dóna això? 505 00:22:47,747 --> 00:22:49,080 Bé, ens dóna aquests patrons. 506 00:22:49,080 --> 00:22:52,020 I de nou l'equip, seva Intel inside, 507 00:22:52,020 --> 00:22:54,350 entén aquests patrons de zeros i uns. 508 00:22:54,350 --> 00:22:57,300 I de vegades el patró representa un nombre decimal real 509 00:22:57,300 --> 00:22:59,770 com vam veure la setmana passada, de vegades representa una carta 510 00:22:59,770 --> 00:23:02,730 com vam veure la setmana passada, de vegades que representa una instrucció, 511 00:23:02,730 --> 00:23:05,460 com imprimir alguna cosa a la pantalla. 512 00:23:05,460 --> 00:23:08,782 >> Així printf per instance-- sinó més aviat, deixa rebobinar. 513 00:23:08,782 --> 00:23:11,240 Hem estat prenent per fet que aquests zeros i uns són 514 00:23:11,240 --> 00:23:14,200 produïda per aquesta comanda make. 515 00:23:14,200 --> 00:23:16,050 Però maquillatge no és un compilador. 516 00:23:16,050 --> 00:23:19,370 Fer no és la cosa en el medi que està produint els zeros i uns. 517 00:23:19,370 --> 00:23:23,780 Més aviat que és només un molt convenientment programa denominat el propòsit a la vida 518 00:23:23,780 --> 00:23:27,267 és essencialment d'esbrinar com compilar el programa. 519 00:23:27,267 --> 00:23:29,350 I el fem servir en aquests primera setmana, ja que només 520 00:23:29,350 --> 00:23:30,910 ens estalvia un munt de problemes. 521 00:23:30,910 --> 00:23:34,080 >> Però el que és realment fent al compilar hola, 522 00:23:34,080 --> 00:23:36,690 és, com hem dit l'última vegada, és cerca en el disc dur 523 00:23:36,690 --> 00:23:40,620 oa la carpeta actual, per arxiu anomenat el que, pel que sembla? 524 00:23:40,620 --> 00:23:41,815 Hola.c, oi? 525 00:23:41,815 --> 00:23:43,190 Això és només una espècie de convenció. 526 00:23:43,190 --> 00:23:45,620 És arbitrària, però això és com són les coses. 527 00:23:45,620 --> 00:23:48,620 Fer, si només s'especifica el nom d'un programa que encara no existeix, 528 00:23:48,620 --> 00:23:52,200 que va a buscar el codi font en un arxiu, per defecte significa hello.c. 529 00:23:52,200 --> 00:23:53,530 I si ho troba, molt bé. 530 00:23:53,530 --> 00:23:56,650 Es convertirà aquesta font codi en el codi objecte per a vostè. 531 00:23:56,650 --> 00:23:59,670 >> Però cada vegada que m'he colpejat Enter després d'executar make hola, 532 00:23:59,670 --> 00:24:03,560 Recorda haver vist per última vegada un bastant llarg i la seqüència críptica 533 00:24:03,560 --> 00:24:06,430 d'altres lletres blanques i personatges a la pantalla? 534 00:24:06,430 --> 00:24:11,220 Bé, això va ser l'ordre real, el compilador real, que s'estava executant. 535 00:24:11,220 --> 00:24:15,500 Així el compilador real farem servir la major part de el semestre és una cosa que es diu so metàl · lic. 536 00:24:15,500 --> 00:24:19,280 Alguns de vostès s'han utilitzat Abans de Visual Studio, o GCC, 537 00:24:19,280 --> 00:24:21,340 o qualsevol nombre d'altres compiladors. 538 00:24:21,340 --> 00:24:22,620 Farem servir so metàl · lic. 539 00:24:22,620 --> 00:24:26,950 >> I Clang ens permet convertir en realitat que el codi font a codi objecte. 540 00:24:26,950 --> 00:24:29,430 Què significa això en realitat significa en la pràctica? 541 00:24:29,430 --> 00:24:33,390 Bé m'ho dius a mi anar a un les meves carpetes des de l'última vegada. 542 00:24:33,390 --> 00:24:35,760 A l'interior de l'aparell CS50. 543 00:24:35,760 --> 00:24:42,080 I m'ho dius a mi seguir endavant i crear aquest mateix arxiu, inclou E / S estàndard dot h. 544 00:24:42,080 --> 00:24:42,875 Void main int. 545 00:24:42,875 --> 00:24:46,000 I anem a tornar en el futur com al que int mitjans i el que significa buit. 546 00:24:46,000 --> 00:24:49,130 Però per ara anem a fer-ho hola barra invertida món n, 547 00:24:49,130 --> 00:24:50,500 Igual que vam fer al tauler. 548 00:24:50,500 --> 00:24:53,930 >> Déjame guardar aquest arxiu anomenat hello.c. 549 00:24:53,930 --> 00:24:58,280 I ara si vull compilar aquest Jo could-- m'ho dius a mi el zoom termini en-- 550 00:24:58,280 --> 00:25:00,450 fer hola entrar. 551 00:25:00,450 --> 00:25:02,645 I això va ser de nou aquesta línia molt críptica. 552 00:25:02,645 --> 00:25:05,120 Però ara almenys una paraula probablement salta a la vista. 553 00:25:05,120 --> 00:25:07,087 Clang és que la línia que vam veure abans. 554 00:25:07,087 --> 00:25:10,420 Ara hi ha un munt d'altres coses amb franquesa que anem a agitem les nostres mans a avui. 555 00:25:10,420 --> 00:25:14,020 Però hi ha un parell de subconjunts, uns personatges que apareixen aquí 556 00:25:14,020 --> 00:25:14,907 que són d'interès. 557 00:25:14,907 --> 00:25:16,490 Però jo vaig a seguir endavant i fer això. 558 00:25:16,490 --> 00:25:18,281 Vaig a la primera cursa hola, només per demostrar 559 00:25:18,281 --> 00:25:20,320 que això està funcionant, ja que era dilluns. 560 00:25:20,320 --> 00:25:22,330 Però ara vaig a esborrar el programa. 561 00:25:22,330 --> 00:25:25,870 I igual que hem tingut aquests noms curts última vegada, 562 00:25:25,870 --> 00:25:29,787 la comanda per eliminar alguna cosa és rm, eliminar, escriviu. 563 00:25:29,787 --> 00:25:31,870 Vas a aconseguir una mica d' preguntes força críptics. 564 00:25:31,870 --> 00:25:35,210 És difícil de creure que vostè pot fer fins i tot aquesta pregunta difícil d'entendre. 565 00:25:35,210 --> 00:25:38,100 Però treure hola fitxer regular només mitjans fan que desitja eliminar hola. 566 00:25:38,100 --> 00:25:42,650 >> I puc seguir endavant i escriure i per sí, Enter, i ara s'ha anat. 567 00:25:42,650 --> 00:25:45,130 Què vol dir això ara, si m'aclareixo la pantalla, 568 00:25:45,130 --> 00:25:47,301 és que en lloc de El fer hello-- vostè 569 00:25:47,301 --> 00:25:48,800 sé què, m'estic tornant bo en això. 570 00:25:48,800 --> 00:25:50,690 Vaig a executar el compilador mi mateix. 571 00:25:50,690 --> 00:25:53,330 No necessito un programa per esbrinar el que el meu arxiu es diu. 572 00:25:53,330 --> 00:25:55,370 Vaig escriure hello.c, I sé com es diu, 573 00:25:55,370 --> 00:25:57,640 Estic clarament capaç d'escriure això. 574 00:25:57,640 --> 00:26:02,620 Així que seguiré endavant i no Clang hola.c Retorn. 575 00:26:02,620 --> 00:26:03,264 >> Sembla que funciona. 576 00:26:03,264 --> 00:26:05,930 I no hi ha sortida addicional, perquè Clang és el compilador. 577 00:26:05,930 --> 00:26:08,590 És el que la conversió de la codi font de zeros i uns. 578 00:26:08,590 --> 00:26:12,870 Així que si ara ho faig punt slash hola Enter, hm. 579 00:26:12,870 --> 00:26:14,630 Nou missatge d'error en l'actualitat. 580 00:26:14,630 --> 00:26:17,610 Així que bash és només el nom de la parpelleig ràpid que estem fent servir. 581 00:26:17,610 --> 00:26:20,360 Això és una simplificació excessiva, però per ara això és tot el que és, 582 00:26:20,360 --> 00:26:21,401 és el símbol de parpellejar. 583 00:26:21,401 --> 00:26:22,880 I és per això que està cridant a nosaltres. 584 00:26:22,880 --> 00:26:25,690 >> No existeix el fitxer o directori està una mica més senzill. 585 00:26:25,690 --> 00:26:28,190 Però segurament vaig fer aquest codi objecte. 586 00:26:28,190 --> 00:26:30,930 Però el problema és, que si escric la comanda 587 00:26:30,930 --> 00:26:34,650 per llistar el contingut d'aquest directori, que és el que? 588 00:26:34,650 --> 00:26:36,210 ls per a la llista. 589 00:26:36,210 --> 00:26:39,332 Hi ha un munt de coses aquí, alguns dels quals van arribar amb l'aparell, 590 00:26:39,332 --> 00:26:42,040 com el meu carpeta Escriptori, Descàrregues carpeta, carpeta de Dropbox, i tots 591 00:26:42,040 --> 00:26:42,850 aquestes coses. 592 00:26:42,850 --> 00:26:45,410 Però el que és interessant és hello.c, que 593 00:26:45,410 --> 00:26:47,286 He creat fa un moment amb gedit. 594 00:26:47,286 --> 00:26:49,160 I el que és més rar l' mirant nom aquí, 595 00:26:49,160 --> 00:26:53,110 potser això no ho vam fer vegeu l'últim moment a tots? 596 00:26:53,110 --> 00:26:54,710 >> a.out, oi? 597 00:26:54,710 --> 00:26:56,920 Així que de tornada al dia, s'acaba de decidir que quan 598 00:26:56,920 --> 00:26:58,760 compila un programa per primera vegada, 599 00:26:58,760 --> 00:27:02,360 i no s'especifica el nom d'un arxiu, anem a cridar a. 600 00:27:02,360 --> 00:27:05,800 I a.out només significa això va ser la sortida del compilador. 601 00:27:05,800 --> 00:27:07,790 Així que és un nom horrible per a un programa. 602 00:27:07,790 --> 00:27:12,820 Però per aquesta lògica, punt slash per directori actual, slash a.out, 603 00:27:12,820 --> 00:27:16,102 ha de significar que hi ha, de fet, hola el meu programa mundial. 604 00:27:16,102 --> 00:27:17,560 Ara una mica d'escalfament d'exercici, també. 605 00:27:17,560 --> 00:27:20,420 Si vull canviar el nom d'aquesta arxiu, resulta que 606 00:27:20,420 --> 00:27:23,000 moure un arxiu d'un nom a un altre. 607 00:27:23,000 --> 00:27:28,750 A.out Així mv, i després em pot dir-hola Retorn. 608 00:27:28,750 --> 00:27:30,940 Així que aquest és una ordre de Linux. 609 00:27:30,940 --> 00:27:34,370 DOS tenia això fa anys, Windows compta amb una finestra de terminal 610 00:27:34,370 --> 00:27:36,460 d'algun tipus que es veu així, Linux i Mac 611 00:27:36,460 --> 00:27:38,140 ordinadors tenen aquesta ràpida a parpellejar. 612 00:27:38,140 --> 00:27:41,490 Tot i que la majoria de nosaltres probablement poques vegades, o mai, el fan servir. 613 00:27:41,490 --> 00:27:44,590 >> Però el que he fet s'executa un programa, el nom és mv, 614 00:27:44,590 --> 00:27:47,900 i jo he proporcionat amb dos arguments, per així dir-ho. 615 00:27:47,900 --> 00:27:48,630 Dues entrades. 616 00:27:48,630 --> 00:27:50,260 a.out és el nom original. 617 00:27:50,260 --> 00:27:51,630 Hola és el nou nom. 618 00:27:51,630 --> 00:27:55,670 Així que si ara ho faig slash dot hola, Intro, el que existeix. 619 00:27:55,670 --> 00:28:00,770 I si ho faig a.out slash dot, ¿Què esperes que he de veure? 620 00:28:00,770 --> 00:28:02,250 >> Bash, no existeix el fitxer o directori. 621 00:28:02,250 --> 00:28:03,350 Perquè acabo li va canviar el nom. 622 00:28:03,350 --> 00:28:04,975 Així que això pren una mica de temps per acostumar. 623 00:28:04,975 --> 00:28:06,977 Però el problema conjunt 1 especificació serà veritablement 624 00:28:06,977 --> 00:28:08,810 prendre la teva mà a través de una mica d'això minutae. 625 00:28:08,810 --> 00:28:11,050 Com que aquest és un complet distracció intel · lectual 626 00:28:11,050 --> 00:28:12,966 des del més interessant idees a la mà, que 627 00:28:12,966 --> 00:28:15,310 és en realitat la creació de una mica de codi. 628 00:28:15,310 --> 00:28:18,830 Però farem una modificació ara amb aquest programa. 629 00:28:18,830 --> 00:28:23,150 >> Recordem que l'última vegada que vaig fer alguna cosa així, printf digui el seu nom. 630 00:28:23,150 --> 00:28:25,790 I de fet que acabem de fer aquest a la pantalla gran per allà. 631 00:28:25,790 --> 00:28:30,640 I després vaig fer cadena s aconsegueix GetString parin oberts, prop parin. 632 00:28:30,640 --> 00:28:33,430 I parin només taquigrafia notació per parèntesis. 633 00:28:33,430 --> 00:28:36,460 Llavors, ¿GetString pren cap argument? 634 00:28:36,460 --> 00:28:38,440 No hi ha entrades que no, però que necessitats dels parèntesis, 635 00:28:38,440 --> 00:28:41,830 perquè això és el que demarca la convocatòria d'una funció. 636 00:28:41,830 --> 00:28:46,440 >> Així que vaig a seguir endavant i tractar de executar el compilador en aquest programa ara. 637 00:28:46,440 --> 00:28:50,774 Clang hello.c, perquè no va canviar el seu nom pel moment. 638 00:28:50,774 --> 00:28:51,940 I tinc un munt d'errors. 639 00:28:51,940 --> 00:28:53,570 Anem a allunyar aquí. 640 00:28:53,570 --> 00:28:55,420 Si em desplaço de nou, com vaig dir l'última vegada, 641 00:28:55,420 --> 00:28:58,420 a la primera, el mateix error que em van donar l'última vegada. 642 00:28:58,420 --> 00:29:04,210 En la línia 6 de hello.c vaig tenir una cadena d'identificador no declarat, 643 00:29:04,210 --> 00:29:05,590 Què volia dir estàndard en? 644 00:29:05,590 --> 00:29:06,750 No ho vaig fer. 645 00:29:06,750 --> 00:29:10,050 Perquè el que error que he fet en aquest programa, si vostè recorda de l'última vegada? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Sí, necessitem la anomenada rodes d'entrenament 648 00:29:15,010 --> 00:29:16,510 que només haurem de servir durant unes setmanes. 649 00:29:16,510 --> 00:29:19,480 Però he d'especificar que també, en algun lloc dins de l'aparell, 650 00:29:19,480 --> 00:29:22,720 és un arxiu que escrivim fa només uns anys. 651 00:29:22,720 --> 00:29:26,500 A l'interior de les quals són funcions com aparentment GetString. 652 00:29:26,500 --> 00:29:35,160 Així que ara si torno per aquí, zoom i re-executar Clang hello.c. 653 00:29:35,160 --> 00:29:36,500 Maleïda sigui, un altre error. 654 00:29:36,500 --> 00:29:38,590 Però no hem vist això abans. 655 00:29:38,590 --> 00:29:41,900 >> Aquest és una mica més esotèrica d'esbrinar. 656 00:29:41,900 --> 00:29:46,910 Però això és deliberadament a la pantalla, perquè volíem explicar aquesta història. 657 00:29:46,910 --> 00:29:51,280 Al compilar hello.c, igual que la imatge de davant suggerir, 658 00:29:51,280 --> 00:29:54,650 només estàs convertint aquesta codi font de zeros i uns. 659 00:29:54,650 --> 00:30:00,340 Ara el personal CS50 fa uns anys va escriure CS50.h, i un arxiu corresponent, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 I nosaltres, fa uns anys, compilat aquests arxius 662 00:30:04,490 --> 00:30:07,290 en un arxiu que passa ser cridat CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> O pot canviar el nom d'un algunes coses diferents. 664 00:30:09,180 --> 00:30:11,054 Però això és una manera senzilla de pensar-hi. 665 00:30:11,054 --> 00:30:14,960 Així que hem recopilat de CS50 biblioteca en zeros i uns. 666 00:30:14,960 --> 00:30:20,340 Però enlloc he especificat que vull combinar els meus zeros 667 00:30:20,340 --> 00:30:24,030 i els del meu món hola programa amb els zeros i uns 668 00:30:24,030 --> 00:30:29,760 que el personal CS50 creat uns pocs anys fa en un programa complet. 669 00:30:29,760 --> 00:30:34,100 Tot el que he especificat per escrit hola.c so metàl · lic és compilar hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Jo no he dit so metàl · lic a baula dels zeros i uns 671 00:30:38,380 --> 00:30:41,650 que el personal CS50 creat per a vostè fa algun temps. 672 00:30:41,650 --> 00:30:48,280 Així que és una solució fàcil, llançar-l per a l'enllaç, CS50. 673 00:30:48,280 --> 00:30:52,600 I una altra vegada a veure aquest en poc temps una i altra vegada. 674 00:30:52,600 --> 00:30:54,420 Però noti ara no hi havia cap queixa. 675 00:30:54,420 --> 00:30:59,770 Així que ara si se m'acaben slash dot hola, ara que està funcionant. 676 00:30:59,770 --> 00:31:03,840 Encara que això és una mica enganyós ja que acabo recreat el fitxer? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Així que permetin-me rebobinar per un moment. 679 00:31:07,930 --> 00:31:10,900 El programa que acaba de compilar té les tres línies de codi. 680 00:31:10,900 --> 00:31:14,710 Quan em vaig trobar hola món, hola un moment fa, no vaig veure digui el seu nom. 681 00:31:14,710 --> 00:31:17,080 I això és perquè em vaig trobar amb la versió anterior del programa. 682 00:31:17,080 --> 00:31:22,700 Però si jo en veritat rotllana a.out slash dot Escrigui, digui el seu nom, Rob, hola, 683 00:31:22,700 --> 00:31:23,370 món. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Això és una cosa d'un insecte. 686 00:31:26,110 --> 00:31:28,560 Probablement volia dir Rob, oi? 687 00:31:28,560 --> 00:31:30,997 Així que quina és la solució aquí en codi. 688 00:31:30,997 --> 00:31:31,872 ESTUDIANT: [inaudible]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Exactament. 691 00:31:39,290 --> 00:31:43,160 Així que només he de fer aquest truc final, pel que estic passant en un marcador de posició, 692 00:31:43,160 --> 00:31:45,690 com un farciment en l'espai en blanc, com ho vam fer fa un moment. 693 00:31:45,690 --> 00:31:47,870 Però per cent s és ara que omplen l'espai en blanc. 694 00:31:47,870 --> 00:31:52,100 Així que, finalment, anem a revelar una última detall perquè no hi ha màgia. 695 00:31:52,100 --> 00:31:54,090 Vaig a seguir endavant i desfer-se de Helloween. 696 00:31:54,090 --> 00:31:56,070 Vaig a seguir endavant i desfer-se de a.out. 697 00:31:56,070 --> 00:31:58,410 Així que ara tinc cap programa, només el meu codi font. 698 00:31:58,410 --> 00:32:01,100 I jo vaig a córrer una comandament lleugerament més llarg, Clang 699 00:32:01,100 --> 00:32:05,650 llançar-o hola LCS50 tauler hello.c. 700 00:32:05,650 --> 00:32:08,700 >> Ara això està començant a espècie d'anar per una orella i surt per l'altre, potser. 701 00:32:08,700 --> 00:32:10,366 Però just esmicolar el que això està fent. 702 00:32:10,366 --> 00:32:14,910 Clang és el compilador, LCS50 guió deliberadament al final 703 00:32:14,910 --> 00:32:18,330 fa què en una frase? 704 00:32:18,330 --> 00:32:19,607 Enllaços a la biblioteca CS50. 705 00:32:19,607 --> 00:32:21,440 Agafa els zeros i què el personal es 706 00:32:21,440 --> 00:32:23,310 i els abarrota en el meu propi programa. 707 00:32:23,310 --> 00:32:27,040 Així que l'última qüestió que ens ocupa és, el que és ruixada o hola probablement 708 00:32:27,040 --> 00:32:30,530 fer, fins i tot si vostè mai ha vist aquesta sintaxi abans? 709 00:32:30,530 --> 00:32:34,920 >> Emissió d'un programa que és que no cridi l'a.out per defecte. 710 00:32:34,920 --> 00:32:37,330 Més aviat s'ha nomenat hola. 711 00:32:37,330 --> 00:32:39,460 Així que ara no hi ha a.out. 712 00:32:39,460 --> 00:32:42,660 El fitxer o directori no existeix, perquè vaig dir explícitament 713 00:32:42,660 --> 00:32:46,720 trucar a aquest programa hola, per la qual cosa Ara puc escriure un nom com aquest 714 00:32:46,720 --> 00:32:47,790 i ha de comportar-se. 715 00:32:47,790 --> 00:32:50,180 >> Ara, francament, noi és que poc interessant tenir 716 00:32:50,180 --> 00:32:52,170 recordar tot això petita minúcia, oi? 717 00:32:52,170 --> 00:32:54,180 Així que seguirem endavant i desfer-se de hola de nou. 718 00:32:54,180 --> 00:32:57,880 I ara anem a tornar a un món en el que n'hi ha prou dir hola fan. 719 00:32:57,880 --> 00:33:00,410 Però aquesta és la màgia que que està fent per tu, 720 00:33:00,410 --> 00:33:02,320 aquest és el tedi que que està fent per vostè. 721 00:33:02,320 --> 00:33:04,630 I com els nostres programes i problemes es tornen més complexos, 722 00:33:04,630 --> 00:33:06,142 que serà veritablement el seu amic. 723 00:33:06,142 --> 00:33:07,850 Com que no és massa llarg a partir d'ara 724 00:33:07,850 --> 00:33:11,150 comptar amb programes que s'escriuen no amb un arxiu, però diversos arxius, 725 00:33:11,150 --> 00:33:16,310 i fer que automatitzarà el procés de compilar tot això per a nosaltres junts. 726 00:33:16,310 --> 00:33:20,620 >> Així que ara imprimir. 727 00:33:20,620 --> 00:33:24,960 printf està dins d'aquest arxiu, estàndard I / O de punt h, que hem vist abans, 728 00:33:24,960 --> 00:33:26,980 però hi ha més a printf que això. 729 00:33:26,980 --> 00:33:30,482 Hi ha barra invertida n, però també hi ha un munt d'altres seqüències d'escapament. 730 00:33:30,482 --> 00:33:32,940 I seqüència d'escapament és només un forma elegant de dir alguna cosa 731 00:33:32,940 --> 00:33:35,990 que comença amb una barra invertida, no una barra, una barra invertida, 732 00:33:35,990 --> 00:33:37,920 i ho fa alguna cosa especial. 733 00:33:37,920 --> 00:33:43,770 I no ens aturarem en la majoria d'ells, però per què hi ha barra invertida doble cita, 734 00:33:43,770 --> 00:33:44,830 Què et sembla? 735 00:33:44,830 --> 00:33:48,010 Per què existeix aquesta seqüència estranya de caràcters, les cometes dobles barra invertida, 736 00:33:48,010 --> 00:33:50,505 Per què podria ser això útil? 737 00:33:50,505 --> 00:33:51,380 ESTUDIANT: [inaudible]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Exactament, oi? 740 00:33:57,760 --> 00:34:01,830 Penseu de nou al nostre programa hola món que hem vist unes quantes vegades ja, 741 00:34:01,830 --> 00:34:05,880 cada vegada que he vist aquest món hola programa hem tingut cometes dobles dins 742 00:34:05,880 --> 00:34:08,210 dels quals és hola coma barra invertida n mundial. 743 00:34:08,210 --> 00:34:10,070 Però pensa a si mateix, ¿Què passa si en realitat 744 00:34:10,070 --> 00:34:12,520 volgut imprimir una cometa? 745 00:34:12,520 --> 00:34:16,100 El seu primer instint podria ser, no ho sé saber per què jo podria voler fer-- aquí, 746 00:34:16,100 --> 00:34:18,780 podem ser una mica passiva , Hola amic agressiva. 747 00:34:18,780 --> 00:34:21,350 Podríem voler fer una cosa així. 748 00:34:21,350 --> 00:34:25,230 >> Però per què és això ara problemàtic? 749 00:34:25,230 --> 00:34:28,730 Fent cas omís de les cometes tipogràfiques de banda que keynote va fer per nosaltres automàticament. 750 00:34:28,730 --> 00:34:29,730 Per què és això un problema? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Exactament. 753 00:34:37,270 --> 00:34:39,022 Perquè tenim com 4 cometes. 754 00:34:39,022 --> 00:34:41,230 Bé, la primera d'elles, probablement, va amb el segon, 755 00:34:41,230 --> 00:34:43,271 i potser el quart va amb la tercera, 756 00:34:43,271 --> 00:34:46,170 o, vull dir que no estic segur, ni és l'equip que serà. 757 00:34:46,170 --> 00:34:48,352 Ordinadors de nou, compiladors una vegada més, són bastant ximple. 758 00:34:48,352 --> 00:34:50,060 Ells només fan el vostè els diu que fer. 759 00:34:50,060 --> 00:34:54,270 I si no és inequívoca que són probablement va a llançar un error. 760 00:34:54,270 --> 00:34:57,700 >> Si no és inequívoca pel que fa a com fer una mantega de cacauet i gelea 761 00:34:57,700 --> 00:34:59,510 coses estranyes podrien arribar. 762 00:34:59,510 --> 00:35:00,580 És la mateixa idea. 763 00:35:00,580 --> 00:35:03,100 Ara n'hi ha prou amb dir que hi ha algunes altres seqüències d'escapament, 764 00:35:03,100 --> 00:35:04,820 però anem a arribar a aquells en poc temps. 765 00:35:04,820 --> 00:35:07,410 Es tracta fonamentalment d'escapament seqüències representen alguna cosa 766 00:35:07,410 --> 00:35:10,480 que és possible que no pugui amb massa facilitat en el teclat, 767 00:35:10,480 --> 00:35:12,010 sense confondre a l'equip. 768 00:35:12,010 --> 00:35:15,733 >> Ara mentrestant tenim marcadors de posició en printf. 769 00:35:15,733 --> 00:35:19,630 Percentatge d, que també es pot escriure en gairebé tots els casos com cent i, 770 00:35:19,630 --> 00:35:21,610 és un marcador de posició per al tipus de dades? 771 00:35:21,610 --> 00:35:23,920 Quin tipus de valor? 772 00:35:23,920 --> 00:35:24,920 Un nombre decimal. 773 00:35:24,920 --> 00:35:27,234 Així que en realitat anem a començar usant cent i perquè és 774 00:35:27,234 --> 00:35:28,650 una mica més simple, com un nombre sencer. 775 00:35:28,650 --> 00:35:29,550 I per cent. 776 00:35:29,550 --> 00:35:31,320 Un enter que passa a ser decimal. 777 00:35:31,320 --> 00:35:35,690 >> Percentatge s ja vam dir era un marcador de posició per a una cadena. 778 00:35:35,690 --> 00:35:38,630 Que és només una paraula, una frase, un paràgraf, un assaig, el que sigui. 779 00:35:38,630 --> 00:35:40,830 És una seqüència de personatges de certa extensió. 780 00:35:40,830 --> 00:35:42,820 I veurem en poc temps alguns d'aquests altres. 781 00:35:42,820 --> 00:35:45,950 Però per cent c és per a un sol personatge. 782 00:35:45,950 --> 00:35:48,500 Percentatge f és per a un nombre de punt flotant, 783 00:35:48,500 --> 00:35:50,860 com un nombre real que té un punt decimal en el mateix, que 784 00:35:50,860 --> 00:35:52,550 és clar que no un enter. 785 00:35:52,550 --> 00:35:54,670 I hi ha un conjunt munt d'altres també. 786 00:35:54,670 --> 00:35:56,990 >> Mentrestant, en C, i en una gran quantitat d'idiomes, 787 00:35:56,990 --> 00:35:58,650 tenim diferents tipus de dades. 788 00:35:58,650 --> 00:36:00,650 Els diferents tipus de bols de vidre si es vol. 789 00:36:00,650 --> 00:36:03,830 El recipient que utilitza l'última vegada va ser per pilotes de taula, 790 00:36:03,830 --> 00:36:06,990 però també podem emmagatzemar diferents valors com caràcters i cadenes 791 00:36:06,990 --> 00:36:10,820 i nombres enters en un recipient, com una variable, i C té aquests. 792 00:36:10,820 --> 00:36:14,020 Char és el tipus de dades, el tipus de variable, 793 00:36:14,020 --> 00:36:15,700 en la qual pot emmagatzemar un caràcter. 794 00:36:15,700 --> 00:36:19,560 Float és un tipus de variable en que pot emmagatzemar un nombre real. 795 00:36:19,560 --> 00:36:21,220 >> Int és per descomptat per a un int. 796 00:36:21,220 --> 00:36:23,760 I en lloc ridículament anomenat un llarg temps 797 00:36:23,760 --> 00:36:26,830 és on es pot emmagatzemar en essència un nombre molt llarg, fins i tot amb 798 00:36:26,830 --> 00:36:29,930 més dígits i després una típica botiga de força int. 799 00:36:29,930 --> 00:36:32,420 Però anem a tornar a que en poc temps. 800 00:36:32,420 --> 00:36:35,520 >> En CS50 punt h mentrestant l'altre fitxer de capçalera 801 00:36:35,520 --> 00:36:37,630 que hem vist un parell vegades en ús, hi ha 802 00:36:37,630 --> 00:36:41,350 dos tipus de dades que no existeixen en C normalment. 803 00:36:41,350 --> 00:36:45,000 Un d'ells és la cadena, i ja veurem en unes setmanes realment què cadenes 804 00:36:45,000 --> 00:36:46,610 estan per sota de la caputxa. 805 00:36:46,610 --> 00:36:47,950 I un és bool. 806 00:36:47,950 --> 00:36:51,650 I una bool és una variable que només pot tenir en determinats valors. 807 00:36:51,650 --> 00:36:54,370 I just basat en la setmana de l'última explicació d'Scratch, 808 00:36:54,370 --> 00:36:56,680 i més recentment C, Què faria vostè endevinar 809 00:36:56,680 --> 00:37:01,770 són els dos valors possibles per algun contenidor que és de tipus bool? 810 00:37:01,770 --> 00:37:02,860 >> Sí i no. 811 00:37:02,860 --> 00:37:03,870 Un i zero. 812 00:37:03,870 --> 00:37:04,502 Veritable o fals. 813 00:37:04,502 --> 00:37:07,460 I de fet és l'última que tendeix ser convencional en una programació 814 00:37:07,460 --> 00:37:10,030 llenguatge, dient alguna cosa com a veritable o fals. 815 00:37:10,030 --> 00:37:13,160 >> Mentrestant la biblioteca CS50 ve amb un munt de funcionalitat 816 00:37:13,160 --> 00:37:16,640 que el personal va escriure per a tu, a més de només aconseguir una cadena. 817 00:37:16,640 --> 00:37:20,910 Escrivim en funcions avançades que pot aconseguir un nombre enter d'usuari, 818 00:37:20,910 --> 00:37:22,990 obtenir un sol caràcter, aconseguir un flotador, que 819 00:37:22,990 --> 00:37:25,160 és només un número amb punt decimal. 820 00:37:25,160 --> 00:37:28,290 Obtenir un llarg temps, una realitat gran valor des de l'usuari. 821 00:37:28,290 --> 00:37:30,930 Així que només hem vist això en acció en forma de GetString. 822 00:37:30,930 --> 00:37:33,230 Però a través d'aquestes funcions aviat serà capaç d'escriure 823 00:37:33,230 --> 00:37:36,070 programes que reben l'entrada de l'usuari. 824 00:37:36,070 --> 00:37:39,230 >> Mentrestant considerar aquest programa, i considerar 825 00:37:39,230 --> 00:37:42,600 la forma en què ara podríem començar a sumar a la mateixa amb noves construccions. 826 00:37:42,600 --> 00:37:44,530 Un viatge llampec ràpida i després veurem 827 00:37:44,530 --> 00:37:47,340 en algun escrit alguns programes manualment nosaltres mateixos. 828 00:37:47,340 --> 00:37:49,700 A partir d'ara, si volem aplicar una condició, 829 00:37:49,700 --> 00:37:52,790 no va a semblar una petita meravella de puzzle bastant. 830 00:37:52,790 --> 00:37:54,460 Es va a mirar una mica més arcà. 831 00:37:54,460 --> 00:37:57,620 Però aquesta és la canònica estructura d'una condició en C. 832 00:37:57,620 --> 00:38:00,380 >> La paraula si, dos parèntesi, dins de la qual 833 00:38:00,380 --> 00:38:02,590 hi haurà algun tipus de l'expressió booleana. 834 00:38:02,590 --> 00:38:04,999 Ara el slash slash en el medi, és a dir 835 00:38:04,999 --> 00:38:07,290 en aquest moment una mena codi de marcador de posició pseudocodi. 836 00:38:07,290 --> 00:38:11,576 Però més aviat, cap línia de codi en C que comença amb slash slash 837 00:38:11,576 --> 00:38:12,850 és un comentari. 838 00:38:12,850 --> 00:38:15,920 >> És com una nota adhesiva que et poden posar en un assaig, imprès en paper. 839 00:38:15,920 --> 00:38:17,290 És una nota per a vostè mateix. 840 00:38:17,290 --> 00:38:20,100 No té funcional impacte en el programa. 841 00:38:20,100 --> 00:38:23,580 És una mena de recordatori, és la seva pròpia documentació pel que fa al que està passant. 842 00:38:23,580 --> 00:38:25,720 Així que fer això en aquest moment és una espècie de marcador de posició 843 00:38:25,720 --> 00:38:27,560 per al que hi ha dins d'aquestes claus 844 00:38:27,560 --> 00:38:29,810 finalment es va a fer alguna cosa. 845 00:38:29,810 --> 00:38:35,160 >> Mentrestant vostè té dues bifurcacions en el carretera, un if-else construir així. 846 00:38:35,160 --> 00:38:37,024 Vostè pot si, elseif, Else. 847 00:38:37,024 --> 00:38:39,690 Ara val la pena assenyalar, especialment si vostè ha estat al voltant de google 848 00:38:39,690 --> 00:38:42,480 en línia per als recursos de cada curiositat, o si vostè pren 849 00:38:42,480 --> 00:38:44,575 un el curs de Llibres recomanats sobre C, 850 00:38:44,575 --> 00:38:48,430 vostè veurà que els éssers humans tenen un munt de diferents preferències sobre com 851 00:38:48,430 --> 00:38:50,510 per expressar-se en el codi. 852 00:38:50,510 --> 00:38:53,800 Algunes persones els agrada posar la claus com ho he fet aquí. 853 00:38:53,800 --> 00:38:57,760 Algunes persones els agrada posar l'arrissat suports per exemple fins aquí. 854 00:38:57,760 --> 00:39:01,700 >> Algunes persones els agrada posar la vigilés aquí i després això aquí. 855 00:39:01,700 --> 00:39:05,120 Hi ha un nombre de maneres de codi d'escriptura, i cap d'ells 856 00:39:05,120 --> 00:39:06,566 tenen raó per se. 857 00:39:06,566 --> 00:39:08,440 Encara que hi ha uns quants que són bastant malament. 858 00:39:08,440 --> 00:39:11,315 Però hi ha no-- si això és en última instància, un debat molt religiosa. 859 00:39:11,315 --> 00:39:13,940 De fet, un dels més molestos coses de la informàtica 860 00:39:13,940 --> 00:39:16,310 és com obstinat els informàtics poden ser. 861 00:39:16,310 --> 00:39:19,880 I trobareu amb el temps que fins i tot a desenvolupar preferències personals 862 00:39:19,880 --> 00:39:22,130 que fa a com el codi ha de mirar. 863 00:39:22,130 --> 00:39:27,162 >> No només es comporten, no només crear una sortida, però la manera com ha de ser estèticament. 864 00:39:27,162 --> 00:39:30,120 Així que el que farem és que et guiarà al llarg el camí cap a, almenys per ara, 865 00:39:30,120 --> 00:39:34,825 un estil CS50 estàndard que almenys manté les coses uniforme i fàcil de llegir. 866 00:39:34,825 --> 00:39:37,330 Però més en els distincions d'aquí a poc. 867 00:39:37,330 --> 00:39:41,830 >> Una expressió booleana en C, si volgut dir si aquesta condició és vertadera 868 00:39:41,830 --> 00:39:44,650 i això és una altra condició cert, no s'escriu la paraula 869 00:39:44,650 --> 00:39:46,610 i, com ho faria en anglès. 870 00:39:46,610 --> 00:39:50,580 En el seu lloc, utilitza ampersand ampersand, per raons que tornarem a. 871 00:39:50,580 --> 00:39:54,520 Si vols dir o utilitza dos barres verticals, que en un teclat dels EUA 872 00:39:54,520 --> 00:39:57,650 generalment per sobre de la Intro següent tecla a la barra invertida. 873 00:39:57,650 --> 00:40:03,080 I això vol dir simplement si aquesta condició o aquesta altra condició és vertadera fer-ho. 874 00:40:03,080 --> 00:40:05,210 >> Mentrestant hi ha aquesta El més boig, que 875 00:40:05,210 --> 00:40:07,760 tindràs ocasió per utilitzar de tant en tant. 876 00:40:07,760 --> 00:40:10,390 Però és només una alternativa manera d'expressar-se. 877 00:40:10,390 --> 00:40:12,400 Això, per ara, anem a estipula, és només 878 00:40:12,400 --> 00:40:16,880 una altra manera covarda d'expressar si, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 És només el format en termes dels casos, en què, literalment, 880 00:40:19,720 --> 00:40:23,420 enumerar els valors que és possible que vulgueu comprovar. 881 00:40:23,420 --> 00:40:24,410 >> Mentrestant bucles. 882 00:40:24,410 --> 00:40:26,842 Vam veure una comparació de Raspe amb un bucle. 883 00:40:26,842 --> 00:40:29,550 I jo vaig a agitar la mà en el que cadascuna d'aquestes coses vol dir. 884 00:40:29,550 --> 00:40:33,520 Però noti que un bucle molt sovint comencen amb la paraula clau per. 885 00:40:33,520 --> 00:40:36,350 O s'iniciarà amb la paraula clau temps. 886 00:40:36,350 --> 00:40:41,360 O s'iniciarà amb la paraula clau fer, i acabar amb la paraula clau quan. 887 00:40:41,360 --> 00:40:43,920 >> Però el que estem a punt de veure és el més els agrada. 888 00:40:43,920 --> 00:40:47,950 Aquí està, en general, en C, com et poden declarar una variable i donar-li un valor. 889 00:40:47,950 --> 00:40:50,610 En C no és suficient, com en Scratch, que acaba de 890 00:40:50,610 --> 00:40:52,810 dir dóna'm una variable anomenada alguna cosa. 891 00:40:52,810 --> 00:40:55,960 Has de dir-li a C, i dius seu compilador, més específicament, 892 00:40:55,960 --> 00:40:58,680 quin tipus de valor li vol posar en el recipient de vidre. 893 00:40:58,680 --> 00:40:59,610 >> És un nombre enter? 894 00:40:59,610 --> 00:41:02,210 Si és així, vostè ha de dir, literalment, int i després 895 00:41:02,210 --> 00:41:04,220 el nom de la variable, a continuació, un punt i coma. 896 00:41:04,220 --> 00:41:08,050 Si en comptes volies corda i vas cridar que s com vaig fer el meu codi aquí avui, 897 00:41:08,050 --> 00:41:10,920 vostè diria coma cadena s. 898 00:41:10,920 --> 00:41:14,200 Una vegada que vostè vol donar-li un valor a continuació, pot utilitzar el signe igual, 899 00:41:14,200 --> 00:41:16,211 també coneguda com la operador d'assignació. 900 00:41:16,211 --> 00:41:17,960 I noti com cada d'aquestes línies de codi 901 00:41:17,960 --> 00:41:20,650 té el punt i coma al final de la mateixa. 902 00:41:20,650 --> 00:41:22,550 >> Però, francament, això només sembla una mica lleig. 903 00:41:22,550 --> 00:41:26,580 Per què no puc dir a l'ordinador, donar em una variable i inicialitzar a zero. 904 00:41:26,580 --> 00:41:28,380 És a dir, em dóna un bol de vidre buida. 905 00:41:28,380 --> 00:41:28,980 Mentre que vostè pot. 906 00:41:28,980 --> 00:41:32,250 I així un de la sentència et crida vaig haver de fer amb el temps estilísticament 907 00:41:32,250 --> 00:41:36,290 És a dir, s'escriu el codi d'aquest tipus, o Quin tipus de netejar i impressionar 908 00:41:36,290 --> 00:41:39,040 la gent per escriure dues línies com un de sol. 909 00:41:39,040 --> 00:41:41,830 I això seria considerat generalment una forma més elegant 910 00:41:41,830 --> 00:41:43,870 d'escriure el seu codi estilísticament. 911 00:41:43,870 --> 00:41:45,200 >> Funcions estem per descomptat vist. 912 00:41:45,200 --> 00:41:46,340 Ells van a tenir aquest format. 913 00:41:46,340 --> 00:41:48,881 El nom d'una funció, alguns parèntesi, i després potser alguns 914 00:41:48,881 --> 00:41:49,910 el que hi ha dins. 915 00:41:49,910 --> 00:41:52,540 O és possible que vegi els usos de banda múltiples funcions 916 00:41:52,540 --> 00:41:55,980 al costat de l'altre, com si alguna cosa com això. 917 00:41:55,980 --> 00:41:59,390 Ara, com una tangent, ho fa aquesta broma ara tenen sentit? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Rialles] 920 00:42:04,960 --> 00:42:09,360 Això no vol dir que és divertit, però és no potser fer una mica més de sentit. 921 00:42:09,360 --> 00:42:12,140 Així que ara anem a entrar al Aparell CS50 per un moment. 922 00:42:12,140 --> 00:42:14,640 I m'ho dius a mi obro teaser aquí. 923 00:42:14,640 --> 00:42:17,470 >> I, de fet una de les raons per introduir Catàleg IKEA 924 00:42:17,470 --> 00:42:20,080 i el parpelleig de la imatge l'iPhone fa una mica 925 00:42:20,080 --> 00:42:24,700 era lligar junts realment a la fet que fa tot just uns anys, el 2007, 926 00:42:24,700 --> 00:42:26,540 aquesta peça de codi era en llibertat, que va ser 927 00:42:26,540 --> 00:42:29,820 un de la primera aplicació d'una peça de programari 928 00:42:29,820 --> 00:42:31,494 que fa el que s'anomena jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Per aquells no familiaritzats, jailbreaking una mena telèfon o un iPhone 930 00:42:34,410 --> 00:42:37,680 significa essencialment esbrinar trobar la manera de fer les coses 931 00:42:37,680 --> 00:42:39,864 amb el que l'empresa que ho va fer no tenia la intenció. 932 00:42:39,864 --> 00:42:42,780 Igual que vol instal · lar certa programari que no està a la botiga d'aplicacions, 933 00:42:42,780 --> 00:42:45,405 jailbreaking seu telèfon que fer les coses d'aquesta manera i més. 934 00:42:45,405 --> 00:42:47,447 Però el que va ser molt divertit en 2007-- i ha hagut 935 00:42:47,447 --> 00:42:49,780 dotzenes de diferents versions d'aquestes coses des de llavors, 936 00:42:49,780 --> 00:42:53,540 en tot tipus de les Llengües és que aquest programa aquí, anomenat iUnlock, 937 00:42:53,540 --> 00:42:57,036 en realitat va ser escrit en C. I així em aixecat el codi font d'aquest, 938 00:42:57,036 --> 00:42:59,910 només per mostrar amable de la seva part de les similituds amb els constructes 939 00:42:59,910 --> 00:43:01,450 que hem estat discutint fins ara. 940 00:43:01,450 --> 00:43:05,150 Ara hi ha molt més complexitat aquí el que hem vist ja a classe. 941 00:43:05,150 --> 00:43:07,160 Permetin-me desplaçar-se cap amunt una mica aquí. 942 00:43:07,160 --> 00:43:11,520 >> Però notem estos-- així ens adonem d'alguns coses-- notar aquestes línies aquí, 943 00:43:11,520 --> 00:43:14,090 incloent I / S estàndard dot h. 944 00:43:14,090 --> 00:43:17,660 I tots-- línia 24, favor-- compte d'E / S estàndard 945 00:43:17,660 --> 00:43:21,380 dot h i un munt d'una altra Els arxius que pel que sembla altres persones 946 00:43:21,380 --> 00:43:22,160 han escrit. 947 00:43:22,160 --> 00:43:24,850 I si ens desplacem a través d' això, poc arbitràriament, 948 00:43:24,850 --> 00:43:27,910 Avís que no sé com escriure tot això a mi mateix necessàriament, però, 949 00:43:27,910 --> 00:43:28,880 però no si. 950 00:43:28,880 --> 00:43:30,400 Així que pel que sembla això té una branca. 951 00:43:30,400 --> 00:43:33,210 >> I si em desplaço una mica a més hi ha un altre cas. 952 00:43:33,210 --> 00:43:38,210 Si em desplaço, crec voltant de la línia 100 que vaig veure per. 953 00:43:38,210 --> 00:43:40,020 Així que no estic molt segur com funciona això, però, 954 00:43:40,020 --> 00:43:43,180 però això és un bucle que va a m'ho dius a mi iterar un nombre de vegades. 955 00:43:43,180 --> 00:43:45,230 I si em desplaço tots la forma de la part inferior 956 00:43:45,230 --> 00:43:51,020 Veig que hi ha una funcionar aquí anomenat 957 00:43:51,020 --> 00:43:54,570 principal, i alguns crèdits addicionals per al seu plaer de la lectura. 958 00:43:54,570 --> 00:43:57,830 >> Així que això només es dir-- i posarem aquesta línia entre la font del curs 959 00:43:57,830 --> 00:44:01,480 codi avui-- que fins i tot alguns d'aquests dispositius que donem per fet, 960 00:44:01,480 --> 00:44:05,130 al final del dia que segueixes utilitzant aquestes construccions bàsiques que hem 961 00:44:05,130 --> 00:44:07,430 introduir estat ja fins ara. 962 00:44:07,430 --> 00:44:08,620 Ja n'hi ha prou d'això. 963 00:44:08,620 --> 00:44:11,480 Molt bé, així que ara anem a realment construir alguna cosa. 964 00:44:11,480 --> 00:44:15,640 >> Anem a anar més enllà d'una cosa així com hello.c, i obrir aquest, 965 00:44:15,640 --> 00:44:17,170 anem a escriure aquest programa aquí. 966 00:44:17,170 --> 00:44:19,850 Vaig a seguir endavant i escriure un programa anomenat adder.c, 967 00:44:19,850 --> 00:44:23,310 el propòsit en la vida serà com la meva primera calculadora super simple 968 00:44:23,310 --> 00:44:24,840 que només suma un parell de nombres. 969 00:44:24,840 --> 00:44:27,050 No per això és un disc problema, sinó perquè 970 00:44:27,050 --> 00:44:29,390 em permet ara lligo junts un parell de coses. 971 00:44:29,390 --> 00:44:33,100 Així que vaig a seguir endavant i incloure I / S estàndard dot h i CS50 punt h. 972 00:44:33,100 --> 00:44:34,670 Vaig a dir void main int. 973 00:44:34,670 --> 00:44:36,545 I de nou en el futur anem a tornar-hi 974 00:44:36,545 --> 00:44:38,560 en aquest context i mitjans buits. 975 00:44:38,560 --> 00:44:43,340 >> I ara vaig a dir alguna cosa com printf, dóna'm un enter. 976 00:44:43,340 --> 00:44:47,610 I ara en la meva segona línia, Com m'expresso tal 977 00:44:47,610 --> 00:44:50,980 que vull declarar una variable això va a emmagatzemar un int? 978 00:44:50,980 --> 00:44:55,470 Literalment el que puc escriure si vull crear una variable que emmagatzema un int 979 00:44:55,470 --> 00:44:58,270 Què li diries? 980 00:44:58,270 --> 00:44:59,650 int a igual getInt. 981 00:44:59,650 --> 00:45:00,485 És clar, per la qual cosa funciona. 982 00:45:00,485 --> 00:45:02,360 I només per la coherència amb el codi que 983 00:45:02,360 --> 00:45:04,485 veure en línia, em canvi de deixar que això a x, només perquè x 984 00:45:04,485 --> 00:45:06,830 és un nom de variable comú utilitzar, almenys en àlgebra. 985 00:45:06,830 --> 00:45:08,720 Ara vaig a seguir endavant i fer printf nou. 986 00:45:08,720 --> 00:45:10,692 Dóna'm un altre sencer. 987 00:45:10,692 --> 00:45:12,900 I ara me'n vaig a classe d'aprendre d'aquest patró, 988 00:45:12,900 --> 00:45:14,490 Vaig a dir int i arriba a getInt. 989 00:45:14,490 --> 00:45:16,340 >> I nosaltres no hem fet servir GetInt abans, però només 990 00:45:16,340 --> 00:45:19,860 com GetString va i es posa una cadena, com Javier va fer de l'audiència, 991 00:45:19,860 --> 00:45:22,780 de manera similar fa getInt començarà a parpellejar el símbol. 992 00:45:22,780 --> 00:45:26,750 I eficaç d'espera per a l'usuari per donar-li un sencer, escrivint en 993 00:45:26,750 --> 00:45:27,900 i prémer la tecla Enter. 994 00:45:27,900 --> 00:45:30,850 Ara, finalment que faré això, la suma printf de-- 995 00:45:30,850 --> 00:45:36,080 i m'ho dius a mi ara-- luxe i cent i el percentatge de I està present 996 00:45:36,080 --> 00:45:39,270 i exclamació punt barra invertida n. 997 00:45:39,270 --> 00:45:42,750 I què creus que em vaig a posar en ara com les entrades addicionals 998 00:45:42,750 --> 00:45:44,620 a printf? 999 00:45:44,620 --> 00:45:47,380 >> No vull dir literalment citar x fi de la cita. 1000 00:45:47,380 --> 00:45:52,210 Vull classe en x i llavors, i ara anem a obtenir de fantasia 1001 00:45:52,210 --> 00:45:54,420 i anem a suposar podem fer el que volem. 1002 00:45:54,420 --> 00:45:56,330 El que vull dir a continuació? 1003 00:45:56,330 --> 00:45:57,070 x més i. 1004 00:45:57,070 --> 00:45:58,520 I de fet que funcionarà. 1005 00:45:58,520 --> 00:46:01,760 Ha programació mínimament idiomes fer entendre l'aritmètica bàsica, 1006 00:46:01,760 --> 00:46:03,500 i pel que aquest deu fet la feina. 1007 00:46:03,500 --> 00:46:06,730 >> Així que m'ho dius a mi anar endavant i fer-ho fer escurçó en la meva finestra en blanc i negre 1008 00:46:06,730 --> 00:46:08,090 aquí baix, Enter. 1009 00:46:08,090 --> 00:46:10,830 Línia de Cryptic però cap error missatge, pel que és bo. 1010 00:46:10,830 --> 00:46:14,410 Dot slash escurçó, dóna'm un enter, 1. 1011 00:46:14,410 --> 00:46:16,230 Dóna'm un altre nombre enter, 2. 1012 00:46:16,230 --> 00:46:18,770 La suma d'1 i 2 és 3. 1013 00:46:18,770 --> 00:46:21,730 >> Molt bé, així que una força trivial programa, però què es fa? 1014 00:46:21,730 --> 00:46:25,680 Es em va permetre utilitzar una funció cridar aquí, cridar a una altra funció aquí, 1015 00:46:25,680 --> 00:46:29,260 dues trucades a getInt un tercera crida a printf, 1016 00:46:29,260 --> 00:46:30,720 i després l'ús d'aquests marcadors de posició. 1017 00:46:30,720 --> 00:46:33,160 Així que és una mica més sofisticada que l'última vegada. 1018 00:46:33,160 --> 00:46:35,260 Però el que si vull aconseguir una mica més de luxe? 1019 00:46:35,260 --> 00:46:38,900 >> Déjame anar per davant i ara faig això. 1020 00:46:38,900 --> 00:46:42,890 Deixin-me seguir endavant i crear un nou arxiu anomenat condicions zero. 1021 00:46:42,890 --> 00:46:44,890 I em vaig a guardar algun temps per a les classes ares 1022 00:46:44,890 --> 00:46:48,260 i simplement enganxar en aquesta codi com un punt de partida. 1023 00:46:48,260 --> 00:46:51,510 I ara només posaré alguna cosa nova aquí al centre. 1024 00:46:51,510 --> 00:46:55,889 Així printf m'agradaria un sencer per favor. 1025 00:46:55,889 --> 00:46:58,180 I tot el codi està disponible a la pàgina web del curs, 1026 00:46:58,180 --> 00:47:00,556 vostè no ha d'escriure tot cap a fora a classe si vostè preferiria no fer-ho. 1027 00:47:00,556 --> 00:47:02,638 int, i ara vaig a utilitzar, en lloc de x i y, 1028 00:47:02,638 --> 00:47:05,270 Vaig a utilitzar n, que és probablement el nom més comú 1029 00:47:05,270 --> 00:47:09,220 per a un nombre sencer en un programa d'ordinador. 1030 00:47:09,220 --> 00:47:12,060 I ara vull fer una poc judici aquí. 1031 00:47:12,060 --> 00:47:15,460 Vaig a veure si n és més gran que 0, llavors 1032 00:47:15,460 --> 00:47:23,670 Vaig a dir Whoops printf--, printf-- que va triar un nombre positiu, 1033 00:47:23,670 --> 00:47:25,370 exclamació punt barra invertida n. 1034 00:47:25,370 --> 00:47:26,460 Tanca aquesta. 1035 00:47:26,460 --> 00:47:33,150 Else Vaig a imprimir printf que va triar un nombre negatiu. 1036 00:47:33,150 --> 00:47:35,377 >> Ara abans que em crides, anem a executar aquest programa. 1037 00:47:35,377 --> 00:47:36,210 Déjame anar per aquí. 1038 00:47:36,210 --> 00:47:40,730 I com puc compilar un programa anomenat condicions tauler 0? 1039 00:47:40,730 --> 00:47:42,300 Feu condicions tauler 0. 1040 00:47:42,300 --> 00:47:45,560 Tipus d'un nom estúpid, pero-- maleïda sigui. 1041 00:47:45,560 --> 00:47:47,560 Bé, bé moment d'ensenyament. 1042 00:47:47,560 --> 00:47:48,410 Per què va esclatar? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Què vaig fer accidentalment dic aquest fitxer? 1045 00:47:54,710 --> 00:47:56,876 Pot tipus d'inferir des de la fitxa fins aquí. 1046 00:47:56,876 --> 00:47:58,750 Així que no és dolent que va fer això, perquè això 1047 00:47:58,750 --> 00:48:00,208 que passarà potser per a alguns de vosaltres. 1048 00:48:00,208 --> 00:48:03,880 Així que vaig posar el nom del meu accident font de codi de condició 0. 1049 00:48:03,880 --> 00:48:09,950 Però la meva codi font per convenció ha estar en un arxiu anomenat condició 0 tauler c, 1050 00:48:09,950 --> 00:48:11,720 o el que sigui punt c. 1051 00:48:11,720 --> 00:48:12,610 >> Així que m'ho dius a mi arreglar això. 1052 00:48:12,610 --> 00:48:16,880 Igual que Microsoft Word puc pujar a desa i faci condició 0 punts c. 1053 00:48:16,880 --> 00:48:20,100 Ara acaba de ser ordenada estic seguirà endavant i eliminar 1054 00:48:20,100 --> 00:48:23,020 condició 0, que era el meu vella versió. 1055 00:48:23,020 --> 00:48:26,550 I ara farem fer condició 0, Retorn. 1056 00:48:26,550 --> 00:48:27,870 Bé, sembla bona. 1057 00:48:27,870 --> 00:48:29,510 >> Condició 0, Retorn. 1058 00:48:29,510 --> 00:48:33,530 M'agradaria un enter favor, 50, que va triar un nombre positiu. 1059 00:48:33,530 --> 00:48:35,390 Ara què hi ha de negatiu 50? 1060 00:48:35,390 --> 00:48:37,660 Vostè va escollir un nombre negatiu. 1061 00:48:37,660 --> 00:48:39,605 I ara, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Bastant segur 0 no és negatiu. 1064 00:48:45,350 --> 00:48:47,780 >> Així que això és una espècie d'error lògic. 1065 00:48:47,780 --> 00:48:50,680 Com puc solucionar això? 1066 00:48:50,680 --> 00:48:57,260 Perquè si n és menor que 0, fer això, la resta podem tenir una sucursal a tres bandes, 1067 00:48:57,260 --> 00:49:01,740 printf vostè va escollir 0. 1068 00:49:01,740 --> 00:49:06,150 Així que ara si em torneu a executar aquest programa, després de la compilació 1069 00:49:06,150 --> 00:49:10,790 de nou amb la marca, i ara tornar a executar condició 0, ho vaig a veure aquí 1070 00:49:10,790 --> 00:49:14,570 és 0 em dóna aquesta sortida. 1071 00:49:14,570 --> 00:49:16,280 Llavors, on anem amb això? 1072 00:49:16,280 --> 00:49:18,930 >> Bé, és molt fàcil perdre de vista del bosc pels arbres. 1073 00:49:18,930 --> 00:49:23,590 I així ens permeten concloure amb aquest video de 2 minuts i mig 1074 00:49:23,590 --> 00:49:25,710 que en última instància és una mica d'un anunci de Google, 1075 00:49:25,710 --> 00:49:28,850 però que realment és testimoni de el que fins i tot utilitzant aquests edificis bàsica 1076 00:49:28,850 --> 00:49:33,020 blocs que en última instància, podem fer un cop tenim una mica de programació 1077 00:49:33,020 --> 00:49:34,463 espavilats en el nostre haver. 1078 00:49:34,463 --> 00:49:35,150 >> [REPRODUCCIÓ DE MÚSICA] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> Saroo Brierley (Veu): Va ser fa 26 anys, 1081 00:49:40,540 --> 00:49:42,470 i jo estava a punt de complir 5. 1082 00:49:42,470 --> 00:49:45,465 Arribem a l'estació de tren i abordem el nostre tren junts. 1083 00:49:45,465 --> 00:49:48,010 El meu germà acaba de dir vaig a quedo aquí, i vaig a tornar. 1084 00:49:48,010 --> 00:49:51,140 I vaig pensar, bé ja saps, Pot ser que també acaba d'anar a dormir 1085 00:49:51,140 --> 00:49:52,690 i ell només em despertarà. 1086 00:49:52,690 --> 00:49:55,145 I quan em vaig despertar la següent dia, el conjunt de carro 1087 00:49:55,145 --> 00:49:59,125 estava buida en un tren fora de control, un fantasma tren em prenent no sé on. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Jo vaig ser adoptat a Austràlia, a una família australiana. 1090 00:50:06,280 --> 00:50:09,710 I mare havia decorat la meva habitació amb el mapa de l'Índia, 1091 00:50:09,710 --> 00:50:11,950 que es va posar al costat del meu llit. 1092 00:50:11,950 --> 00:50:15,830 Em despertava cada matí veure aquest mapa, i per tant 1093 00:50:15,830 --> 00:50:18,530 quin tipus de manté viu el record. 1094 00:50:18,530 --> 00:50:20,530 La gent deia, ets tractant de trobar una agulla 1095 00:50:20,530 --> 00:50:23,560 en un paller, Saroo mai el trobarà. 1096 00:50:23,560 --> 00:50:28,540 >> M'he flashejat dels llocs que em solia anar, els centelleigs de la meva família 1097 00:50:28,540 --> 00:50:29,890 enfronta. 1098 00:50:29,890 --> 00:50:34,060 Allà hi havia la imatge de la meva mare, seure amb les cames creuades, 1099 00:50:34,060 --> 00:50:35,740 només veient plorar. 1100 00:50:35,740 --> 00:50:38,160 La vida és tan difícil. 1101 00:50:38,160 --> 00:50:41,237 Aquest era el meu tresor. 1102 00:50:41,237 --> 00:50:44,320 I jo estava buscant a Google Map i adonat que hi ha Google Earth també. 1103 00:50:44,320 --> 00:50:48,140 En un món on es pot fer zoom a, Vaig començar a tenir tots aquests pensaments 1104 00:50:48,140 --> 00:50:51,500 i quines possibilitats que això podria fer per mi. 1105 00:50:51,500 --> 00:50:54,890 Em vaig dir a mi mateix, ja saps, no tens tinc tots aquests records fotogràfics 1106 00:50:54,890 --> 00:50:58,590 i punts de referència d'on vostè està, i vostè sap el que la ciutat s'assembla. 1107 00:50:58,590 --> 00:51:03,060 Això podria ser una aplicació que que pot utilitzar per trobar el camí de tornada. 1108 00:51:03,060 --> 00:51:06,720 >> Vaig pensar, bé vaig a posar una punt a l'estació de tren de Calcuta, 1109 00:51:06,720 --> 00:51:10,890 i una línia de ràdio, ja saps, que ha de buscar en aquesta zona. 1110 00:51:10,890 --> 00:51:13,750 En certa manera em vaig trobar amb aquestes vies del tren. 1111 00:51:13,750 --> 00:51:18,160 I vaig començar a seguir, i Vaig arribar a una estació de tren que 1112 00:51:18,160 --> 00:51:22,228 reflecteix la mateixa imatge el que estava en els meus records. 1113 00:51:22,228 --> 00:51:23,707 Tot igualat. 1114 00:51:23,707 --> 00:51:27,950 Només vaig pensar que sí, em saber on vaig. 1115 00:51:27,950 --> 00:51:30,116 Només vaig a deixar que el mapa que tinc en el meu cap 1116 00:51:30,116 --> 00:51:33,080 em porten i em porti de tornada a la meva ciutat natal. 1117 00:51:33,080 --> 00:51:36,420 >> Vaig arribar a la porta de la casa en què vaig néixer. 1118 00:51:36,420 --> 00:51:39,140 I caminem per uns 15 metres al voltant de la cantonada, 1119 00:51:39,140 --> 00:51:42,980 hi havia tres senyores de peu exterior, al costat de l'altra. 1120 00:51:42,980 --> 00:51:47,830 I el del mig va fer un pas endavant, i Només vaig pensar, aquesta és la teva mare. 1121 00:51:47,830 --> 00:51:53,450 Ella es va acostar, em va abraçar, i estàvem allà durant uns cinc minuts. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Ella em va agafar la mà i ella em va portar a la casa 1124 00:51:59,000 --> 00:52:02,450 i es va posar al telèfon, on ella sonar la meva germana i el meu germà 1125 00:52:02,450 --> 00:52:05,600 per dir que, ja saps, el teu germà té només 1126 00:52:05,600 --> 00:52:09,340 de sobte va aparèixer com un fantasma. 1127 00:52:09,340 --> 00:52:12,440 I després la família es va reunir de nou. 1128 00:52:12,440 --> 00:52:15,110 Tot està bé, Vaig ajudar a la meva mare, 1129 00:52:15,110 --> 00:52:17,110 no ha de ser treballar com a esclaus. 1130 00:52:17,110 --> 00:52:19,555 Ella pot viure la resta de la seva vida en pau. 1131 00:52:19,555 --> 00:52:23,460 >> Era una agulla en un paller, però l'agulla hi era. 1132 00:52:23,460 --> 00:52:24,400 Tot hi és. 1133 00:52:24,400 --> 00:52:28,260 Tot el que tenim al món que està en el toc d'un botó. 1134 00:52:28,260 --> 00:52:32,010 Però vostè ha de tenir la voluntat i la la determinació de voler-ho. 1135 00:52:32,010 --> 00:52:32,950 >> [REPRODUCCIÓ DE MÚSICA] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Meravellosament dolça testimonial 1138 00:52:38,170 --> 00:52:40,540 només el que pugui ara veure amb la tecnologia. 1139 00:52:40,540 --> 00:52:43,390 Ens veiem la setmana que ve. 1140 00:52:43,390 --> 00:52:44,374