1 00:00:00,000 --> 00:00:03,290 >> [REPRODUCCIÓ DE MÚSICA] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON Hirschhorn: OK, tothom. 4 00:00:06,280 --> 00:00:07,460 Benvingut a la secció. 5 00:00:07,460 --> 00:00:10,840 Aquesta és CS50, la nostra mateixa primera secció super. 6 00:00:10,840 --> 00:00:13,700 Com tots vostès saben, la setmana que seccions regulars començaran, 7 00:00:13,700 --> 00:00:15,580 però aquesta setmana estem tots junts. 8 00:00:15,580 --> 00:00:17,730 >> No és a mi mateix. 9 00:00:17,730 --> 00:00:18,840 El meu nom és Jason. 10 00:00:18,840 --> 00:00:20,630 Sóc un professor de Ciències de la Computació. 11 00:00:20,630 --> 00:00:23,910 Tenim Andi, qui és el cap de la PA CS50. 12 00:00:23,910 --> 00:00:27,630 I Scaz, el professor Brian Scassellati, ell és un professor de Ciències de la Computació. 13 00:00:27,630 --> 00:00:30,970 >> Som els caps CS50 a Yale. 14 00:00:30,970 --> 00:00:34,992 Sempre es pot enviar per correu electrònic ens heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Estarem en conferències. 16 00:00:35,950 --> 00:00:37,547 Estarem en horari d'oficina. 17 00:00:37,547 --> 00:00:40,130 Si alguna vegada hi ha alguna cosa que puguem faci per tu, tot el que necessita, 18 00:00:40,130 --> 00:00:42,610 no dubti en acostar-se a nosaltres. 19 00:00:42,610 --> 00:00:44,140 >> Llavors, què farem avui? 20 00:00:44,140 --> 00:00:47,790 O abans d'això, el que cal pujant aquesta setmana? 21 00:00:47,790 --> 00:00:52,620 Així horari d'oficina és de dilluns, dimarts, Dimecres i dijous, de 8:00 a 11:00. 22 00:00:52,620 --> 00:00:54,770 Hi ha un horari en el lloc web. 23 00:00:54,770 --> 00:00:57,830 >> Seccions, com he esmentat, estan començant la setmana que ve. 24 00:00:57,830 --> 00:01:01,390 I t'adonaràs del que aquesta setmana Temps de la seva secció és, quin dia és, 25 00:01:01,390 --> 00:01:03,350 i qui és el seu TA. 26 00:01:03,350 --> 00:01:08,610 >> Butlletí de problemes 1 es deu a dijous a les migdia, divendres al migdia amb un dia de retard. 27 00:01:08,610 --> 00:01:10,817 Sí, vostè té nou dies de retard. 28 00:01:10,817 --> 00:01:12,150 I hi ha nou butlletins de problemes. 29 00:01:12,150 --> 00:01:14,320 I només es pot utilitzar un dia de retard per joc problema. 30 00:01:14,320 --> 00:01:17,930 Sí, en efecte, tot el problema conjunts s'han divendres al migdia. 31 00:01:17,930 --> 00:01:18,550 Això és tot. 32 00:01:18,550 --> 00:01:20,400 Tot el que els detalls estan en el programa d'estudis. 33 00:01:20,400 --> 00:01:22,360 >> Tots els divendres, tenim dinars. 34 00:01:22,360 --> 00:01:25,230 Ens agrada fer aquest gran Per descomptat se sent una mica més petit. 35 00:01:25,230 --> 00:01:26,580 Així que us convidem a confirmar la seva assistència. 36 00:01:26,580 --> 00:01:30,050 Dinar lliure amb el seu company companys de classe i el personal. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Totes aquestes coses que Tinc a la pantalla, 39 00:01:36,940 --> 00:01:43,330 i més, vostè pot trobar cs50.yale.edu o cs50.harvard.edu, si anar a Harvard 40 00:01:43,330 --> 00:01:46,800 i estan veient això en línia. 41 00:01:46,800 --> 00:01:50,240 >> També en aquests llocs web, hi ha són un munt de recursos per a vostè. 42 00:01:50,240 --> 00:01:54,610 Cada conferència no només té el video de la conferència, però també notes. 43 00:01:54,610 --> 00:01:58,184 Algú observarà el conferències i prendre notes per a vostè. 44 00:01:58,184 --> 00:02:00,100 Pel que només pot pagar atenció durant les classes, 45 00:02:00,100 --> 00:02:03,970 o pot usar les seves notes / nostra notes per complementar les seves pròpies notes. 46 00:02:03,970 --> 00:02:04,987 >> Hi ha tobogans en línia. 47 00:02:04,987 --> 00:02:07,320 La font code-- tot David alt en la conferència, 48 00:02:07,320 --> 00:02:09,979 o Scaz alt conferència, que codi font està disponible en línia 49 00:02:09,979 --> 00:02:11,750 així com com jo, vídeos esmentat. 50 00:02:11,750 --> 00:02:14,257 >> Seccions, així mateix, tots seran filmats. 51 00:02:14,257 --> 00:02:15,840 Totes aquestes diapositives estarà disponible. 52 00:02:15,840 --> 00:02:18,190 Tot aquest codi serà estar disponible per a vostè. 53 00:02:18,190 --> 00:02:22,440 Hi ha pantalons curts a la pàgina web on Membres del personal CS50 passen de cinc a 10 54 00:02:22,440 --> 00:02:24,130 minuts que passen per temes per a vostè. 55 00:02:24,130 --> 00:02:26,750 Alguns dels que ja tens trobat en els butlletins de problemes. 56 00:02:26,750 --> 00:02:30,430 >> Hores d'oficina, com he esmentat, dilluns a dijous, de 8:00 a 11:00. 57 00:02:30,430 --> 00:02:32,600 CS50 Estudi és un recurs fantàstic. 58 00:02:32,600 --> 00:02:37,100 Hi ha problemes de pràctica, diapositives de mostra, errors coneguts 59 00:02:37,100 --> 00:02:40,920 que els estudiants els agrada córrer a, essencialment per a tots els temes que 60 00:02:40,920 --> 00:02:42,650 cobrirà en aquest curs. 61 00:02:42,650 --> 00:02:46,350 >> I, finalment, en aquesta diapositiva almenys, Reference50 62 00:02:46,350 --> 00:02:49,690 que li dóna la informació en totes les funcions de C 63 00:02:49,690 --> 00:02:53,160 vostè podria possiblement esperar d'usar i molts, molts més. 64 00:02:53,160 --> 00:02:55,690 >> Una vegada més, que dot dot dot al la part inferior de la pantalla 65 00:02:55,690 --> 00:02:59,990 és per indicar que hi ha fins i tot més recursos en aquests dos llocs web: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> Llavors, què farem avui? 68 00:03:05,840 --> 00:03:08,970 Bé, primer que vaig a donar ens fixem en els recursos. 69 00:03:08,970 --> 00:03:10,010 Ja va fer que un. 70 00:03:10,010 --> 00:03:11,590 Mira'ns. 71 00:03:11,590 --> 00:03:16,430 >> Ara, anirem Tipus de dades i operadors en C. 72 00:03:16,430 --> 00:03:19,990 Llavors Andi vindrà aquí i anar més biblioteques en C, printf (), 73 00:03:19,990 --> 00:03:24,570 una funció amb la qual ja està familiars o es convertirà ràpidament en molt 74 00:03:24,570 --> 00:03:25,530 familiar. 75 00:03:25,530 --> 00:03:27,810 I vostè també es passa de condicionals i bucles. 76 00:03:27,810 --> 00:03:30,900 >> I finalment, Scaz repassarà l'ID CS50. 77 00:03:30,900 --> 00:03:34,250 Si no ha Paloma a Ja en el problema 1 set, 78 00:03:34,250 --> 00:03:37,060 així com la forma d'utilitzar el ordres de terminal i útils 79 00:03:37,060 --> 00:03:42,280 i després li donen alguns donem i la pràctica de codificació en l'ID CS50. 80 00:03:42,280 --> 00:03:45,130 >> Abans de saltar a aquesta el contingut d'aquest costat, 81 00:03:45,130 --> 00:03:46,770 Algú té alguna pregunta fins ara? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Gran. 84 00:03:54,030 --> 00:03:54,950 D'ACORD. 85 00:03:54,950 --> 00:03:55,810 Canvi de marxes. 86 00:03:55,810 --> 00:03:58,760 >> [CANVI DE GEARS] 87 00:03:58,760 --> 00:04:03,070 >> Aquest era jo el canvi engranatges en un cotxe manual. 88 00:04:03,070 --> 00:04:10,920 Així que els tipus de dades en C, pot no només tenir una variable x i han d'estar en la línia 10, 89 00:04:10,920 --> 00:04:17,170 un enter, potser el número 1, en la línia 20, un nombre decimal 10.5, 90 00:04:17,170 --> 00:04:20,500 i les línies a continuació, un parell de més tard una cadena, m'encanta CS50. 91 00:04:20,500 --> 00:04:25,052 >> En C, les variables només poden ser una cosa i només una cosa. 92 00:04:25,052 --> 00:04:26,510 I el que cal donar-los tipus. 93 00:04:26,510 --> 00:04:28,780 I en aquest fòrum, ens tenir una llista de tipus. 94 00:04:28,780 --> 00:04:32,000 Hi ha caràcters, que representar caràcters. 95 00:04:32,000 --> 00:04:36,850 Així que això és una lletra A, B, C, D. Això també pot ser un espai, 96 00:04:36,850 --> 00:04:40,290 o que també es pot un caràcter de nova línia. 97 00:04:40,290 --> 00:04:45,030 >> No són nombres enters, que són només nombres, tota numbers-- o nombres enters 98 00:04:45,030 --> 00:04:47,130 rather-- però sense decimals. 99 00:04:47,130 --> 00:04:49,790 >> Per decimals, tenim nombres de punt flotant. 100 00:04:49,790 --> 00:04:53,200 Números de punt flotant són nombres amb decimals. 101 00:04:53,200 --> 00:04:58,160 >> Després hi ha els llargs, que són sencers essencialment més llargs. 102 00:04:58,160 --> 00:05:01,160 Es donarà compte de que un llarg es 8 mentre que un int es 4. 103 00:05:01,160 --> 00:05:02,640 Vaig a arribar a això en un segon. 104 00:05:02,640 --> 00:05:07,390 Això és perquè anhela poden emmagatzemar fins més sencers que un int poden emmagatzemar. 105 00:05:07,390 --> 00:05:10,100 Doble és un llarg flotador. 106 00:05:10,100 --> 00:05:12,460 >> I finalment, tenim cadena, que és un tipus de 107 00:05:12,460 --> 00:05:14,430 que és probable que hagi fet servir abans. 108 00:05:14,430 --> 00:05:21,100 Si inclou hashtag # IncludeCS50.h a l'arxiu d'origen, 109 00:05:21,100 --> 00:05:23,170 llavors vostè pot utilitzar un tipus de cadena. 110 00:05:23,170 --> 00:05:25,560 No és en realitat construïda en C. 111 00:05:25,560 --> 00:05:27,760 >> Hi ha un parell d'altres tipus també. 112 00:05:27,760 --> 00:05:32,900 Però aquests són els principals amb que utilitzarà i la trobada. 113 00:05:32,900 --> 00:05:36,210 C com, una altra vegada he dit, cada variable-- que 114 00:05:36,210 --> 00:05:38,620 només pot ser un tipus i un sol tipus. 115 00:05:38,620 --> 00:05:42,890 Això és perquè C és una forma estàtica llengua escrita a màquina, a diferència 116 00:05:42,890 --> 00:05:45,780 a les llengües escrites de forma dinàmica on si crea una variable 117 00:05:45,780 --> 00:05:50,081 vostè pot canviar el que està emmagatzemat en a mesura que avança en el seu programa. 118 00:05:50,081 --> 00:05:52,580 Per aquí a la mà dreta banda, tinc els diferents mides 119 00:05:52,580 --> 00:05:57,440 d'aquests tipus de dades en bytes. 120 00:05:57,440 --> 00:05:59,710 Així que un caràcter és 1 byte. 121 00:05:59,710 --> 00:06:01,250 Això és de 8 bits. 122 00:06:01,250 --> 00:06:05,530 I això vol dir, perquè 8 trossets hi ha vuit 0s i 1s. 123 00:06:05,530 --> 00:06:08,280 Vam veure aquestes demostracions en el primer setmana amb que les bombetes binaris. 124 00:06:08,280 --> 00:06:15,680 >> Amb 8 bits o 1 byte, podem representar els nombres del 0 al 255. 125 00:06:15,680 --> 00:06:16,180 Dreta. 126 00:06:16,180 --> 00:06:18,770 Si tots els 8 bits són 0 això és 0. 127 00:06:18,770 --> 00:06:23,640 Si el primer bit és 1, que és el nombre un, i així successivament, tot el camí fins a 255. 128 00:06:23,640 --> 00:06:28,290 I és per això que per als personatges que puguis tenen essencialment fins a 255 d'ells, 129 00:06:28,290 --> 00:06:31,210 però això és molt per cobrir tots els personatges que necessiten utilitzar. 130 00:06:31,210 --> 00:06:38,060 >> Per sencers, vostè pot tenir 0 i llavors vostè té 2 a l'32 almenys 1. 131 00:06:38,060 --> 00:06:40,340 Aquests són el nombre d'opcions vostè té per als enters. 132 00:06:40,340 --> 00:06:44,780 >> Durant molt, tens 0 a 2 a l'64 almenys 1. 133 00:06:44,780 --> 00:06:48,860 Així que hi ha molts, molts, més opcions per anhela. 134 00:06:48,860 --> 00:06:54,220 >> Cordes, que és un signe d'interrogació perquè això és un cliffhanger per a més endavant. 135 00:06:54,220 --> 00:06:55,000 Sí. 136 00:06:55,000 --> 00:06:56,350 Em vaig adonar que tothom és en la vora del seu seient, 137 00:06:56,350 --> 00:06:57,450 com el que és aquest signe d'interrogació? 138 00:06:57,450 --> 00:06:58,390 És un cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Finalment ens cobrirem la mida de cordes i parlen més sobre cordes. 140 00:07:02,340 --> 00:07:04,692 A causa de que la cadena és en realitat una de les rodes d'entrenament 141 00:07:04,692 --> 00:07:06,400 ens posem en aquest curs des de l'inici 142 00:07:06,400 --> 00:07:09,700 i després tirar endavant successivament, perquè les cadenes en C 143 00:07:09,700 --> 00:07:13,320 en realitat són punters a matrius de caràcters. 144 00:07:13,320 --> 00:07:15,810 Però, de nou, això és un Cliffhanger per a més endavant. 145 00:07:15,810 --> 00:07:18,890 Abans de passar a qualsevol pregunta, comentaris, inquietuds sobre aquesta diapositiva? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> D'ACORD. 148 00:07:26,630 --> 00:07:30,330 He de ser un explicador fantàstic. 149 00:07:30,330 --> 00:07:33,210 També quan s'està programant, vostè va a utilitzar aquests operadors. 150 00:07:33,210 --> 00:07:36,730 Realment signes simples que poden fer senzilla operacions, amb el que probablement són 151 00:07:36,730 --> 00:07:38,340 ja molt familiar. 152 00:07:38,340 --> 00:07:42,580 >> Per exemple, a la dreta banda, veiem afegir. 153 00:07:42,580 --> 00:07:44,640 Per afegir, que acaba de fer un signe més. 154 00:07:44,640 --> 00:07:46,850 I el que podria tenir de dues variables x i y. 155 00:07:46,850 --> 00:07:48,810 Vostè pot fer x + i en el codi. 156 00:07:48,810 --> 00:07:52,790 Potser vostè vol dir que A-- tenir el número 7 i 3, 157 00:07:52,790 --> 00:07:55,780 desitja emmagatzemar que en una variable anomenada suma. 158 00:07:55,780 --> 00:08:03,010 Vostè pot fer int per al tipus, l'espai suma, el nom de la variable, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> Com seria aquesta botiga en suma? 160 00:08:05,780 --> 00:08:07,190 Qualsevol persona? 161 00:08:07,190 --> 00:08:09,270 Si tingués en suma = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 El que s'emmagatzema en definitiva? 163 00:08:10,437 --> 00:08:11,520 Vostè només pot cridar cap a fora. 164 00:08:11,520 --> 00:08:12,120 AUDIÈNCIA: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON Hirschhorn: 10! 166 00:08:12,995 --> 00:08:14,870 Això és exactament correcte. 167 00:08:14,870 --> 00:08:19,520 I en suma = 7-3, Acabo d'utilitzar aquest signe tauler. 168 00:08:19,520 --> 00:08:20,871 ¿Què serà emmagatzemat? 169 00:08:20,871 --> 00:08:21,370 AUDIÈNCIA: 4. 170 00:08:21,370 --> 00:08:22,203 JASON Hirschhorn: 4. 171 00:08:22,203 --> 00:08:25,770 Suma és probablement el nom equivocat per aquesta variable, però 4 seria emmagatzemat. 172 00:08:25,770 --> 00:08:31,890 >> Per multiplicar en C, utilitzeu el petit Personatge estrella, no utilitza una x. 173 00:08:31,890 --> 00:08:35,990 Dividir, utilitzeu un Davanter No retallar el símbol de divisió. 174 00:08:35,990 --> 00:08:39,580 I per mòdul, utilitzeu el símbol de percentatge. 175 00:08:39,580 --> 00:08:47,900 >> Així que diguem que vull veure int z = 7% 3, el que s'emmagatzema en z? 176 00:08:47,900 --> 00:08:51,250 Llavors, això és essencialment preguntant què fa mòdul? 177 00:08:51,250 --> 00:08:52,750 Algú sap el que fa de mòdul? 178 00:08:52,750 --> 00:08:53,940 Sí. 179 00:08:53,940 --> 00:08:54,870 i 4. 180 00:08:54,870 --> 00:08:56,120 ALTAVEU 1: És la resta. 181 00:08:56,120 --> 00:08:58,369 JASON Hirschhorn: És la resta quan es divideix. 182 00:08:58,369 --> 00:09:02,790 Així 7 dividit per 3 és 2 resta gener. 183 00:09:02,790 --> 00:09:04,690 Així gener s'emmagatzemaria. 184 00:09:04,690 --> 00:09:06,970 >> Vas fer resta, però així és com funciona. 185 00:09:06,970 --> 00:09:09,140 Això és el que fa l'operador de mòdul. 186 00:09:09,140 --> 00:09:12,360 Es necessita un nombre el divideix per un altre número i torna a tu 187 00:09:12,360 --> 00:09:14,590 la resta. 188 00:09:14,590 --> 00:09:19,770 Així que de nou, el 7% 3 et dóna 1, perquè 7 dividit per 3 és 2 resta 1, 189 00:09:19,770 --> 00:09:21,650 i retorna la resta. 190 00:09:21,650 --> 00:09:24,470 >> I anem a tornar a pujar un pas al senyal de divisió. 191 00:09:24,470 --> 00:09:29,194 Si ho fes juliol / dividit per 3 fa Algú sap el que tornaria? 192 00:09:29,194 --> 00:09:30,090 >> ALTAVEU 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON Hirschhorn: Per què 2 i no 2.333? 194 00:09:32,240 --> 00:09:34,560 >> ALTAVEU 2: Crec que és curta després de tot el número. 195 00:09:34,560 --> 00:09:36,310 JASON Hirschhorn: Així això és exactament correcte. 196 00:09:36,310 --> 00:09:39,880 En C, si ho fa la divisió de dos enters 7 dividit per 3, 197 00:09:39,880 --> 00:09:43,430 obté la resposta que en aquest cas, 2.3333 per sempre 198 00:09:43,430 --> 00:09:47,080 i comprova que el punt decimal i costelles tot després del punt decimal 199 00:09:47,080 --> 00:09:49,240 i que només li torna febrer. 200 00:09:49,240 --> 00:09:51,120 >> Així que si ho feia 8 dividit per 3. 201 00:09:51,120 --> 00:09:54,010 Que en realitat, sabem que per tornar 2.666, 202 00:09:54,010 --> 00:09:57,050 però costelles de tot el que fos en punt decimal, trunca tot, 203 00:09:57,050 --> 00:09:58,640 i simplement retorna a vostè febrer. 204 00:09:58,640 --> 00:10:02,090 Així juny dividit per 3, 7 dividits per 3, 8 dividit per 3, 205 00:10:02,090 --> 00:10:04,840 tots anem a tornar a vostè febrer. 206 00:10:04,840 --> 00:10:08,770 >> Algú sap, o té una conjectura, que fa a com jo podia arribar 207 00:10:08,770 --> 00:10:10,790 la resposta completa si vull que decimal? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Sí. 210 00:10:13,620 --> 00:10:14,152 Endavant. 211 00:10:14,152 --> 00:10:15,110 ALTAVEU 3: Utilitzeu un flotador? 212 00:10:15,110 --> 00:10:16,942 JASON Hirschhorn: Què vols dir? 213 00:10:16,942 --> 00:10:19,786 ALTAVEU 3: Perquè vostè va dir que el float és per als nombres [inaudible] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON Hirschhorn: Correcte. 216 00:10:23,900 --> 00:10:26,100 Llavors, això és exactament correcte. 217 00:10:26,100 --> 00:10:28,440 7 és un nombre sencer. 218 00:10:28,440 --> 00:10:31,690 Però si volia al seu torn que en un nombre de punt flotant, 219 00:10:31,690 --> 00:10:34,674 Jo hauria de emmagatzemar aquesta com 7.0 perquè l'equip 220 00:10:34,674 --> 00:10:37,090 que realment està stupid-- vam veure que amb l'exemple- PB i J 221 00:10:37,090 --> 00:10:38,930 només farà exactament el que li dius. 222 00:10:38,930 --> 00:10:40,846 >> Així que si vostè escriu 7, que crec que és un enter. 223 00:10:40,846 --> 00:10:43,640 Si s'escriu 7.0, tot i que saben aquestes coses són equivalents, 224 00:10:43,640 --> 00:10:45,550 es tracta que com un nombre de punt flotant. 225 00:10:45,550 --> 00:10:50,441 Així que si vostè ho va fer 7,0 dividida per 3 o dividit per 3,0, 226 00:10:50,441 --> 00:10:52,440 diria, OK, ara estem tractant amb flotadors. 227 00:10:52,440 --> 00:10:57,514 Em tornaré a vosaltres 2.333333 sempre. 228 00:10:57,514 --> 00:10:59,930 Però en realitat no sempre, perquè com vam veure també en la conferència, 229 00:10:59,930 --> 00:11:03,350 aquests nombres de punt flotant no són exactament precisa. 230 00:11:03,350 --> 00:11:05,940 >> Així que si vostè vol que decimal, o una part d'aquest decimal, 231 00:11:05,940 --> 00:11:08,090 llavors vostè ha de servei- un d'ells ha de ser un nombre de punt flotant 232 00:11:08,090 --> 00:11:11,048 i l'equip ha d'entendre que aquest és un punt flotant ets 233 00:11:11,048 --> 00:11:13,350 tractant, no és un enter. 234 00:11:13,350 --> 00:11:16,760 Teniu alguna pregunta respecte aquesta taula en la dreta, fins al moment? 235 00:11:16,760 --> 00:11:22,650 O la seva esquerra, la seva a l'esquerra, a mà esquerra. 236 00:11:22,650 --> 00:11:23,264 Sí. 237 00:11:23,264 --> 00:11:23,972 ALTAVEU 4: Dret. 238 00:11:23,972 --> 00:11:26,216 Perquè així com un regular sencers, ho faria 239 00:11:26,216 --> 00:11:30,230 write-- hauries d'escriure surar? 240 00:11:30,230 --> 00:11:31,920 >> JASON Hirschhorn: Sí així. 241 00:11:31,920 --> 00:11:34,400 Bé, si vol crear una variable que és un flotador, 242 00:11:34,400 --> 00:11:37,020 que necessita dir flotador z és igual a alguna cosa. 243 00:11:37,020 --> 00:11:37,640 >> ALTAVEU 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON Hirschhorn: Però si jo volia fer 7 dividit per 3 i aconseguir que el decimal, 245 00:11:41,950 --> 00:11:48,540 Jo faria flotador z = 7,0 / 3,0; i que em donaria el punt flotant 246 00:11:48,540 --> 00:11:49,273 nombre. 247 00:11:49,273 --> 00:11:50,000 >> ALTAVEU 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON Hirschhorn: Si ho vaig fer una mena int z = 7 / per 3, 249 00:11:56,370 --> 00:12:00,856 que em doni un nombre enter, perquè aquests són tots els enters. 250 00:12:00,856 --> 00:12:01,730 Això té sentit? 251 00:12:01,730 --> 00:12:02,320 >> ALTAVEU 4: Si. 252 00:12:02,320 --> 00:12:02,950 >> JASON Hirschhorn: OK. 253 00:12:02,950 --> 00:12:03,450 Gran. 254 00:12:03,450 --> 00:12:06,030 Alguna altra pregunta sobre aquesta taula? 255 00:12:06,030 --> 00:12:07,220 ¿De debò? 256 00:12:07,220 --> 00:12:08,380 Estic tan emocionada. 257 00:12:08,380 --> 00:12:09,120 D'ACORD. 258 00:12:09,120 --> 00:12:13,910 >> Així que algunes altres coses que utilitzarà, moltes vegades en condicions o bucles, 259 00:12:13,910 --> 00:12:17,580 són aquests tipus de operators-- aquest tipus d'expressions booleanes. 260 00:12:17,580 --> 00:12:23,140 I com hem après, == és el que utilitzar per comprovar si dues coses són iguals. 261 00:12:23,140 --> 00:12:28,170 >> Així que aquí estic comprovant si x == i, anem a una altra vegada suposi que x és 7 ei es 3. 262 00:12:28,170 --> 00:12:33,220 Així que si escrivia 7 == 3, el que caldria tornar a mi? 263 00:12:33,220 --> 00:12:34,220 És això cert o fals? 264 00:12:34,220 --> 00:12:35,275 >> AUDIÈNCIA: Fals. 265 00:12:35,275 --> 00:12:36,150 JASON Hirschhorn: OK. 266 00:12:36,150 --> 00:12:37,370 Sento que tothom pot aconseguir aquest. 267 00:12:37,370 --> 00:12:39,054 Així que tot el món, el que hauria de tornar? 268 00:12:39,054 --> 00:12:39,720 AUDIÈNCIA: Fals. 269 00:12:39,720 --> 00:12:40,130 JASON Hirschhorn: Fals. 270 00:12:40,130 --> 00:12:40,850 Gran. 271 00:12:40,850 --> 00:12:41,930 7 no és igual a 3. 272 00:12:41,930 --> 00:12:44,530 Així 7 == 3 tornaria falsa. 273 00:12:44,530 --> 00:12:50,746 Vostè té un signe no és igual, així que si jo Revisat juliol! = 3, el que hauria de tornar? 274 00:12:50,746 --> 00:12:51,370 AUDIÈNCIA: Veritable. 275 00:12:51,370 --> 00:12:52,650 JASON Hirschhorn: Veritable. 276 00:12:52,650 --> 00:12:53,200 Excel·lent. 277 00:12:53,200 --> 00:12:55,990 Algú va ser molt emfàtic en la part de darrere i apreciar això. 278 00:12:55,990 --> 00:12:59,070 Llavors vostè té menys d'operador, menys d'o igual a operador, 279 00:12:59,070 --> 00:13:01,990 operador més gran que, més que o igual a operador. 280 00:13:01,990 --> 00:13:03,490 >> Així que un més prova de seny. 281 00:13:03,490 --> 00:13:05,660 Si tingués 7 és més gran que o igual a 3. 282 00:13:05,660 --> 00:13:06,966 El que hauria de tornar? 283 00:13:06,966 --> 00:13:07,692 >> AUDIÈNCIA: Veritable. 284 00:13:07,692 --> 00:13:08,650 JASON Hirschhorn: Veritable. 285 00:13:08,650 --> 00:13:10,050 Sí. 286 00:13:10,050 --> 00:13:13,290 Això, revers rebotiga de l'habitació, fantàstic. 287 00:13:13,290 --> 00:13:16,240 Pot combinar aquests expressions si es vol, també, 288 00:13:16,240 --> 00:13:21,880 amb una lògica i que està && O un OR lògic que és || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 I pel que ara es pot provar de dos coses junts-- és això graciós? 291 00:13:25,785 --> 00:13:28,250 Per què és tan graciós? 292 00:13:28,250 --> 00:13:35,200 >> Així que si jo volia, el que puc dir és 7 més gran que 3 i 2 és de menys de 4? 293 00:13:35,200 --> 00:13:37,090 Bé, si 7 és més gran de 3, això és cert. 294 00:13:37,090 --> 00:13:38,400 2 és inferior a 4, això és cert. 295 00:13:38,400 --> 00:13:41,140 Així que tot això tornaria realitat. 296 00:13:41,140 --> 00:13:45,130 >> Si he provat 7 és més gran que 3 i- Només estic recollint números aleatoris aquí-- 297 00:13:45,130 --> 00:13:47,340 4 és menor que 2, bé, això és fals. 298 00:13:47,340 --> 00:13:49,610 Tan cert i fals maquillatge fals. 299 00:13:49,610 --> 00:13:54,520 I vostè pot seguir i que es combinen com moltes condicions junts com vulgui. 300 00:13:54,520 --> 00:14:00,000 >> Algú té alguna pregunta, comentaris, preocupacions fins ara? 301 00:14:00,000 --> 00:14:03,862 I veig que alguns de vostès fer fotografies em de a la pantalla, cosa que s'agraeix. 302 00:14:03,862 --> 00:14:05,070 Amb sort, no és snapchat. 303 00:14:05,070 --> 00:14:06,417 Amb sort, és per les seves notes. 304 00:14:06,417 --> 00:14:08,500 Però tots ells van que estarà disponible en línia. 305 00:14:08,500 --> 00:14:11,210 Així que vostè no ha de fer fotos d'això. 306 00:14:11,210 --> 00:14:15,150 Com he esmentat, tot estarà disponible en línia per a vostè. 307 00:14:15,150 --> 00:14:15,650 D'ACORD. 308 00:14:15,650 --> 00:14:17,980 Estic a punt d'arribar fora de l'escenari, també ho fa a ningú 309 00:14:17,980 --> 00:14:20,350 vull dir res abans que això passi? 310 00:14:20,350 --> 00:14:21,080 Preguntes? 311 00:14:21,080 --> 00:14:21,680 >> [Interposant VEUS] 312 00:14:21,680 --> 00:14:22,250 >> JASON Hirschhorn: Oh, atura't. 313 00:14:22,250 --> 00:14:23,290 Vostès són massa agradable. 314 00:14:23,290 --> 00:14:23,790 D'ACORD. 315 00:14:23,790 --> 00:14:26,520 Vaig a etiquetar a terme. 316 00:14:26,520 --> 00:14:27,240 Anem. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Peng: Anem fer un canvi micròfon incòmoda ara. 318 00:14:29,570 --> 00:14:32,280 >> JASON Hirschhorn: Sóc va a portar això endavant. 319 00:14:32,280 --> 00:14:33,946 ANDI Peng: Agraïm el suport, nois. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Em sents? 322 00:14:43,180 --> 00:14:43,930 ¿Això és bo? 323 00:14:43,930 --> 00:14:44,760 Perfecte. 324 00:14:44,760 --> 00:14:45,630 Bella. 325 00:14:45,630 --> 00:14:47,490 Permetin-me que fico a. 326 00:14:47,490 --> 00:14:49,100 D'ACORD. 327 00:14:49,100 --> 00:14:54,140 Per tant, estic a punt de fer com un gegant informació de bolcat de vostès en aquest moment. 328 00:14:54,140 --> 00:14:57,370 I no es preocupi en absolut si són no seguir cada petita línia del que 329 00:14:57,370 --> 00:14:58,812 Estic a punt de mostrar. 330 00:14:58,812 --> 00:15:00,770 Com va dir Jason, tot és completament en línia. 331 00:15:00,770 --> 00:15:03,780 Així que anem a tractar d'introduir tots els conceptes cobert 332 00:15:03,780 --> 00:15:05,270 en algunes d'aquestes diapositives. 333 00:15:05,270 --> 00:15:06,582 Així que només has de seguir endavant. 334 00:15:06,582 --> 00:15:09,540 No us preocupeu si vostè no entén tot; No obstant això, si en algun moment 335 00:15:09,540 --> 00:15:12,820 et sents perdut, aixeca la seva mà, anem a detenir, no es preocupi. 336 00:15:12,820 --> 00:15:15,060 Fresc. 337 00:15:15,060 --> 00:15:19,270 >> Així que crec que alguna cosa que David té Ja tipus d'esmentat en la conferència 338 00:15:19,270 --> 00:15:23,240 i Jason ha al·ludit tipus de al dia d'avui és el que una biblioteca és. 339 00:15:23,240 --> 00:15:27,510 Així que en la programació, tenim aquestes coses anomenades biblioteques. 340 00:15:27,510 --> 00:15:29,690 Quan, en essència, tot s'és només un conjunt 341 00:15:29,690 --> 00:15:32,610 de les funcions, és a dir essencialment només codi que és 342 00:15:32,610 --> 00:15:35,070 ja ha estat escrit per algú més que tots podem 343 00:15:35,070 --> 00:15:36,410 utilitzar dins dels nostres programes. 344 00:15:36,410 --> 00:15:38,790 >> Llavors, com una normal de treball de la biblioteca, oi? 345 00:15:38,790 --> 00:15:40,030 Vostè entra a la porta de la biblioteca. 346 00:15:40,030 --> 00:15:41,890 Vostè té tots aquests llibres que vostè pot treure 347 00:15:41,890 --> 00:15:44,590 i es pot accedir a la informació dins d'aquests llibres. 348 00:15:44,590 --> 00:15:45,840 El mateix en la programació. 349 00:15:45,840 --> 00:15:48,820 >> Vostè té una biblioteca que ja té escrit per altres persones. 350 00:15:48,820 --> 00:15:51,530 I la forma en què es pot, com a programador o un estudiant, 351 00:15:51,530 --> 00:15:55,780 pot tenir accés a aquesta biblioteca és a través del hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Per exemple, en C que tindrà tres C-- més 353 00:15:59,720 --> 00:16:03,420 comunament utilitzat tres estàndard C libraries-- la biblioteca d'entrada / sortida, 354 00:16:03,420 --> 00:16:05,540 la biblioteca de cadena, i la biblioteca de matemàtiques. 355 00:16:05,540 --> 00:16:07,610 >> Així que dins de la seva primera problema de parella fixa, 356 00:16:07,610 --> 00:16:10,940 aquests seran els tres que vostè està utilitzant principalment. 357 00:16:10,940 --> 00:16:14,610 Així com David ja va explicar en conferència, 358 00:16:14,610 --> 00:16:17,460 l'E / S estàndard biblioteca o la biblioteca estàndard d'entrada / sortida 359 00:16:17,460 --> 00:16:18,620 fa exactament això. 360 00:16:18,620 --> 00:16:23,530 Li permet, en el codi, a l'entrada qualsevol cosa, des de l'usuari i de sortida que 361 00:16:23,530 --> 00:16:25,960 a la pantalla, essencialment la impressió a la pantalla. 362 00:16:25,960 --> 00:16:29,990 >> I així, cada vegada que utilitzi qualsevol de les funcions, per exemple, la funció printf (), que 363 00:16:29,990 --> 00:16:33,319 anirem a la següent diapositiva, vos d'incloure l'estàndard d'E / S 364 00:16:33,319 --> 00:16:36,360 biblioteca o en cas contrari no va a ser capaç d'utilitzar la funció printf (). 365 00:16:36,360 --> 00:16:39,110 Perquè, com el programador En realitat mai va escriure aquesta funció, 366 00:16:39,110 --> 00:16:41,840 vostè està utilitzant algú codi d'una altra persona dins del seu propi codi. 367 00:16:41,840 --> 00:16:43,620 >> Fa que tothom té sentit? 368 00:16:43,620 --> 00:16:44,520 Fresc. 369 00:16:44,520 --> 00:16:48,530 >> I llavors essencialment arribem a la biblioteca string.h i la math.h 370 00:16:48,530 --> 00:16:52,970 biblioteca, .h simplement vol dir biblioteca, altres biblioteques que eventualment 371 00:16:52,970 --> 00:16:55,310 a utilitzar dins del seu codi. 372 00:16:55,310 --> 00:16:57,620 >> No obstant això, per als propòsits d'aquesta biblioteca, també 373 00:16:57,620 --> 00:17:01,170 tener-- d'aquest class-- també tenim el que s'anomena la biblioteca CS50, 374 00:17:01,170 --> 00:17:05,270 cs50.h, en el qual, per la seva lectura han creat 375 00:17:05,270 --> 00:17:07,369 moltes funcions importants i útils. 376 00:17:07,369 --> 00:17:09,550 Així que com a programador pot costes fora 377 00:17:09,550 --> 00:17:14,470 el que ja hem escrit perquè de disponible aquesta funció per a vostè 378 00:17:14,470 --> 00:17:15,599 per al seu ús. 379 00:17:15,599 --> 00:17:18,359 >> Vaig a estar cobrint un parell de les funcions d'ús comú, 380 00:17:18,359 --> 00:17:20,839 però saben que aquests són tot Googleable línia. 381 00:17:20,839 --> 00:17:24,904 Siéntase lliure, tiri cap amunt de la biblioteca i CS50 llavors vostè té totes les funcions allà. 382 00:17:24,904 --> 00:17:25,828 Sí. 383 00:17:25,828 --> 00:17:28,140 >> ALTAVEU 5: Així que si vostè no estava usant el programari que 384 00:17:28,140 --> 00:17:29,916 es proporciona nosaltres per la classe, fa que 385 00:17:29,916 --> 00:17:32,698 significaria que hauríem de descarregar i trobar aquesta capçalera presentar a nosaltres mateixos i dir 386 00:17:32,698 --> 00:17:33,840 l'equip en el que és? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Peng: Molt bona pregunta. 388 00:17:34,320 --> 00:17:34,820 Exactament. 389 00:17:34,820 --> 00:17:38,194 Així que és com si no estàs físicament present en una biblioteca, 390 00:17:38,194 --> 00:17:40,360 no hi ha manera perquè vostè pugui realment anar i accedir-hi. 391 00:17:40,360 --> 00:17:42,589 Així mateix amb la programació en C, 392 00:17:42,589 --> 00:17:45,880 ha de assegurar-se que vostè està utilitzant la nostra aparell perquè la biblioteca ja està 393 00:17:45,880 --> 00:17:47,270 s'han incorporat en ella. 394 00:17:47,270 --> 00:17:50,020 I després, quan hashtag #include, de la biblioteca allà. 395 00:17:50,020 --> 00:17:50,520 Sí. 396 00:17:50,520 --> 00:17:51,920 Bona pregunta. 397 00:17:51,920 --> 00:17:53,461 Cada un de bo? 398 00:17:53,461 --> 00:17:53,960 Fresc. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Tot bé. 401 00:17:56,870 --> 00:17:59,330 Així que anem a colpejar, en essència, el que és 402 00:17:59,330 --> 00:18:01,620 la primera funció que que com a programadors són 403 00:18:01,620 --> 00:18:03,900 utilitzarà dins del nostre codi. 404 00:18:03,900 --> 00:18:05,690 Això es diu la funció printf (). 405 00:18:05,690 --> 00:18:08,450 Així, la funció printf (), ja que no tinc ja s'ha dit en l'última diapositiva, 406 00:18:08,450 --> 00:18:11,830 està inclòs en l'estàndard d'E / S, estàndard d'entrada / sortida, biblioteca. 407 00:18:11,830 --> 00:18:16,470 >> Així que assegura't del que sigui que estiguis using-- oh, deixa agafar el làser pointer-- 408 00:18:16,470 --> 00:18:18,660 cada vegada que vostè està utilitzant la funció printf (), 409 00:18:18,660 --> 00:18:21,790 vostè ha d'incloure l'estàndard d'E / S biblioteca o bé, quan es compila, 410 00:18:21,790 --> 00:18:23,760 vostè va a obtenir un error perquè l'equip va a ser com, 411 00:18:23,760 --> 00:18:26,140 oh No sé on printf () és, que no m'estàs dient on printf () 412 00:18:26,140 --> 00:18:26,830 és. 413 00:18:26,830 --> 00:18:30,150 Bé printf () està inclòs en el I / S estàndard, de manera que quan s'utilitza printf (), 414 00:18:30,150 --> 00:18:32,960 vos d'haver de línia per sobre del seu codi. 415 00:18:32,960 --> 00:18:36,040 >> Així, per exemple, printf () aquí és una funció. 416 00:18:36,040 --> 00:18:40,260 Tot el que fa és imprimir alguna cosa dins dels parèntesis per a l'usuari. 417 00:18:40,260 --> 00:18:44,840 Algú vol prendre una punyalada al que aquesta línia de codi correcte 418 00:18:44,840 --> 00:18:46,420 aquí es va a imprimir? 419 00:18:46,420 --> 00:18:48,730 Per tant, la resposta està a la pantalla. 420 00:18:48,730 --> 00:18:50,480 Qualsevol persona? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: La part inferior. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Peng: Verdi, ¿per què no et vas endavant i dir tota la declaració? 423 00:18:53,510 --> 00:18:55,718 >> VERDI: Hola, em dic Andi, i tinc 20 anys d'edat. 424 00:18:55,718 --> 00:18:57,270 ANDI Peng: Ah, encantador. 425 00:18:57,270 --> 00:19:00,240 Així que en aquesta línia anem a imprimir, Hola, em dic Andi, 426 00:19:00,240 --> 00:19:04,280 i tinc 20 anys d'edat, que és de fet una declaració veritable. 427 00:19:04,280 --> 00:19:05,090 >> Sintaxi. 428 00:19:05,090 --> 00:19:08,830 Així parell de qüestions sintàctiques que vostès vol assegurar-se que vostè sap. 429 00:19:08,830 --> 00:19:09,360 Cotitzacions. 430 00:19:09,360 --> 00:19:13,170 Les cometes dobles expliquen la equip que tot l'interior 431 00:19:13,170 --> 00:19:14,850 es va a imprimir. 432 00:19:14,850 --> 00:19:16,620 >> Tot dins de la llauna acaba de ser exactament com 433 00:19:16,620 --> 00:19:19,920 escriu que, a excepció de comunament a l'extrem, 434 00:19:19,920 --> 00:19:23,610 anem a voler incloure 1 hash-- oh sorry-- un guió n. 435 00:19:23,610 --> 00:19:24,640 Així que un guió n. 436 00:19:24,640 --> 00:19:28,884 >> Algú vol prendre una conjectura en el que fa al nostre codi? 437 00:19:28,884 --> 00:19:29,465 Sí. 438 00:19:29,465 --> 00:19:30,840 ALTAVEU 6: posa en una nova línia. 439 00:19:30,840 --> 00:19:31,650 ANDI Peng: Exactament. 440 00:19:31,650 --> 00:19:34,660 Així que tot això fa és permetre que passi el que passi 441 00:19:34,660 --> 00:19:37,520 després d'això, després d'aquesta declaració, a imprimir a una nova línia. 442 00:19:37,520 --> 00:19:40,030 Així que quan vostè està escrivint el seu codi que no té les coses a l'atzar 443 00:19:40,030 --> 00:19:41,738 tatxes fins al final que no vol. 444 00:19:41,738 --> 00:19:43,700 Que tot es torna prolixament imprès una línia 445 00:19:43,700 --> 00:19:46,870 i després vam començar a la línia següent. 446 00:19:46,870 --> 00:19:50,970 >> Algú recorda el que punt i coma fa quan estem de codificació? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Sí. 449 00:19:55,330 --> 00:19:55,740 >> ALTAVEU 7: Declaració. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Peng: Ho sento? 451 00:19:56,010 --> 00:19:57,100 >> ALTAVEU 7: Acaba la declaració? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Peng: Sí. 453 00:19:57,766 --> 00:20:02,670 Així que en C, o qualsevol programació el llenguatge, el punt i coma 454 00:20:02,670 --> 00:20:04,640 denota el final d'una línia de programació. 455 00:20:04,640 --> 00:20:09,240 Així per exemple, en anglès utilitzem període dir, oh aquest és el final d'una frase. 456 00:20:09,240 --> 00:20:12,857 En la programació, el mateix, tenim una punt i coma per indicar el final d'una línia. 457 00:20:12,857 --> 00:20:14,690 Moltes vegades, quan estàs començant a programar, 458 00:20:14,690 --> 00:20:17,150 vostè es dóna compte oblidi afegir un punt i coma 459 00:20:17,150 --> 00:20:19,400 i després intenta executar la seva codi i no funciona. 460 00:20:19,400 --> 00:20:21,520 I vostè és com, Ah, no ho sé sé per què, que hauria d'estar treballant. 461 00:20:21,520 --> 00:20:24,394 >> És probable que vostè probablement ha oblidat un punt i coma o un suport o alguna cosa 462 00:20:24,394 --> 00:20:25,020 en algun lloc. 463 00:20:25,020 --> 00:20:27,740 Llavors, això és important recordar. 464 00:20:27,740 --> 00:20:29,627 Fresc. 465 00:20:29,627 --> 00:20:31,960 D'acord, a mà alçada, com moltes persones aquí tenen cada vegada 466 00:20:31,960 --> 00:20:37,210 presa AP Ciències de la Computació o programat en Java abans, alguna vegada? 467 00:20:37,210 --> 00:20:37,710 D'ACORD. 468 00:20:37,710 --> 00:20:38,210 Preciós. 469 00:20:38,210 --> 00:20:41,340 Això no és aplicable llavors, però en Java, 470 00:20:41,340 --> 00:20:44,960 tenen alguna cosa que es diu System.out.println que no existeix en C. 471 00:20:44,960 --> 00:20:49,927 >> Així que en C, sempre que que voleu afegir a les variables 472 00:20:49,927 --> 00:20:51,760 en tot el que vulguis imprimir, hi ha 473 00:20:51,760 --> 00:20:54,620 una sintaxi específica que utilitzarem. 474 00:20:54,620 --> 00:20:56,520 Això es diu la placeholding-- essencialment 475 00:20:56,520 --> 00:21:01,180 afegim marcadors de posició en el seu lloc del nombre enter o la variable 476 00:21:01,180 --> 00:21:02,580 que volem imprimir. 477 00:21:02,580 --> 00:21:07,430 >> Així com vostès poden veure que hem inclòs una nova capçalera biblioteca arxiu aquí. 478 00:21:07,430 --> 00:21:09,130 La biblioteca CS50. 479 00:21:09,130 --> 00:21:13,160 I continguda dins d'aquesta biblioteca CS50 és una funció comuna que utilitzarà 480 00:21:13,160 --> 00:21:15,610 en el nostre curs anomenat getInt (). 481 00:21:15,610 --> 00:21:21,830 >> Algú vol prendre una punyalada en el getInt () possiblement pot estar fent. 482 00:21:21,830 --> 00:21:22,830 >> AUDIÈNCIA: [inaudible] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Peng: Ho sento. 484 00:21:23,550 --> 00:21:24,370 No es podia sentir. 485 00:21:24,370 --> 00:21:25,511 Maddie, ningú. 486 00:21:25,511 --> 00:21:27,260 MADDIE: Oh, se li sol·licita per un sencer. 487 00:21:27,260 --> 00:21:28,051 ANDI Peng: Exactament. 488 00:21:28,051 --> 00:21:30,670 Així aquesta funció, un altre funció que ja està 489 00:21:30,670 --> 00:21:33,690 estat escrit per algú més que podem demanar a ara. 490 00:21:33,690 --> 00:21:38,000 Tot el que és és demanar al qualsevol usuari, per introduir el que vulguis com el codi 491 00:21:38,000 --> 00:21:41,850 executa i emmagatzema whatever-- en aquest cas estem getInt () - ing, 492 00:21:41,850 --> 00:21:44,060 el que significa que estem l'obtenció d'un nombre enter. 493 00:21:44,060 --> 00:21:46,150 >> I anem a emmagatzemar que en un altre nombre enter 494 00:21:46,150 --> 00:21:48,900 que simplement hem fet cridats edat. 495 00:21:48,900 --> 00:21:51,500 Això té sentit per a tothom? 496 00:21:51,500 --> 00:21:52,190 Fresc. 497 00:21:52,190 --> 00:21:56,400 >> Així que ara que hem emmagatzemat aquest sencer, que hem ens impulsats des de l'usuari, 498 00:21:56,400 --> 00:22:00,010 en aquesta variable, tenim creat de tipus int anomenada edat, 499 00:22:00,010 --> 00:22:03,720 podem seguir endavant i lloc aquesta funció en la nostra printf (). 500 00:22:03,720 --> 00:22:08,970 Així que la sintaxi general de printf () és que allà on en el seu físic real 501 00:22:08,970 --> 00:22:14,410 línia que voleu incloure aquest nombre sencer, vostè fa aquest símbol aquí, 502 00:22:14,410 --> 00:22:17,800 el símbol de percentatge, amb el tipus de variable que desitgi. 503 00:22:17,800 --> 00:22:20,090 >> Així que en aquest cas l'edat és un nombre sencer. 504 00:22:20,090 --> 00:22:25,030 Així que anem a incloure % I perquè és un nombre enter. 505 00:22:25,030 --> 00:22:26,860 I després després de la seva declaració, vas 506 00:22:26,860 --> 00:22:30,370 fer coma i el nom de la variable. 507 00:22:30,370 --> 00:22:33,420 >> Així que aquí, anem a imprimir terme, Hola, em dic Andi, 508 00:22:33,420 --> 00:22:35,730 i estic any en blanc d'edat. 509 00:22:35,730 --> 00:22:38,890 Hashta-- o, sorry--, amb el que l'edat d'entrada I. 510 00:22:38,890 --> 00:22:42,790 Així que si jo fos a l'entrada 20 per a la meva getInt () aquí, 511 00:22:42,790 --> 00:22:44,500 seria imprimir exactament el mateix. 512 00:22:44,500 --> 00:22:47,990 Però, si volia alguna cosa d'entrada més, com potser 40 o 45, 513 00:22:47,990 --> 00:22:50,800 llavors vostè veuria que reflectien en conseqüència en el codi. 514 00:22:50,800 --> 00:22:52,886 >> Així que aquest és un exemple d'alguna cosa en el qual 515 00:22:52,886 --> 00:22:55,260 imprimeix i es veu a vostè com si es tracta de la mateixa cosa, 516 00:22:55,260 --> 00:22:57,593 però per sota de la caputxa de l'equip hi ha realment 517 00:22:57,593 --> 00:22:59,560 coses molt diferents passant. 518 00:22:59,560 --> 00:23:00,060 Fresc. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Tot bé. 521 00:23:03,260 --> 00:23:06,940 ¿I què si volem múltiples variables? 522 00:23:06,940 --> 00:23:08,290 Bastant fàcil. 523 00:23:08,290 --> 00:23:09,150 El mateix. 524 00:23:09,150 --> 00:23:11,930 També tenim una nova funció aquí anomenats GetString (), 525 00:23:11,930 --> 00:23:15,380 També s'inclouen dins la biblioteca CS50, que l'únic que fa és demanar a l'usuari 526 00:23:15,380 --> 00:23:18,120 per a una cadena, que és només un conjunt de caràcters, 527 00:23:18,120 --> 00:23:19,810 així com una sentència o com un nom. 528 00:23:19,810 --> 00:23:25,470 >> Així que en aquest cas, tindríem dues marcadors de posició% s per a corda i% i 529 00:23:25,470 --> 00:23:26,750 per sencer. 530 00:23:26,750 --> 00:23:29,190 I continuarem que per les dues variables 531 00:23:29,190 --> 00:23:32,670 que voleu incloure en l'ordre en què apareixen en la sentència. 532 00:23:32,670 --> 00:23:35,471 Així, per exemple, el meu nom és blanc, vull un nom allà, 533 00:23:35,471 --> 00:23:36,970 així que vaig a tenir el nom primer. 534 00:23:36,970 --> 00:23:39,637 I després després, vull edat, vol tenir segona edat. 535 00:23:39,637 --> 00:23:42,720 I així, si volia entrada, Hola, el meu nom és Andi, i tinc 20 anys d'edat. 536 00:23:42,720 --> 00:23:46,370 Si introdueix Andi i 20, el exactament el mateix imprimiria; 537 00:23:46,370 --> 00:23:51,134 No obstant això, ara tenim dos van guardar variables de nom, així com int. 538 00:23:51,134 --> 00:23:51,634 Sí. 539 00:23:51,634 --> 00:23:54,124 >> ALTAVEU 8: Seria capaç d'executar si es canviés 540 00:23:54,124 --> 00:23:55,620 Nom i edat al final d'això? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Peng: Sí. 542 00:23:55,840 --> 00:23:57,006 Això és realment bona pregunta. 543 00:23:57,006 --> 00:23:59,520 Així que conte llarg, no. 544 00:23:59,520 --> 00:24:03,070 A causa nom i age-- el tipus de variable és el nom? 545 00:24:03,070 --> 00:24:03,950 >> ALTAVEU 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Peng: ¿I què tipus de variable és l'edat? 547 00:24:05,440 --> 00:24:06,231 >> ALTAVEU 8: Integer. 548 00:24:06,231 --> 00:24:10,290 ANDI Peng: Així que aquí tenim un marcador de posició de corda i sencer, no? 549 00:24:10,290 --> 00:24:13,350 Així que si anés a canviar aquests, l'equip no va a saber. 550 00:24:13,350 --> 00:24:16,250 Es va a comprovar si hi ha una cadena, i si intenta donar-li un int, 551 00:24:16,250 --> 00:24:18,083 que serà com esperi Estic confós, que 552 00:24:18,083 --> 00:24:21,100 em va dir que hauria de ser assignació de memòria per a un int. 553 00:24:21,100 --> 00:24:23,760 I aquí, quan que espera un nombre enter 554 00:24:23,760 --> 00:24:25,640 i li dónes un nom i una cadena en lloc, 555 00:24:25,640 --> 00:24:28,931 sinó que també serà molt confús, no s'executarà exactament de la manera que ho necessiti. 556 00:24:28,931 --> 00:24:35,280 Així que aquí, nomenant i la sintaxi és molt important per al funcionament de codi. 557 00:24:35,280 --> 00:24:37,991 Cada un de bo? 558 00:24:37,991 --> 00:24:38,490 Sí. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> MADDIE: Aquí, sé que hem vist en exemples a classe, on demanen 561 00:24:44,620 --> 00:24:46,950 ¿Quin és el teu edat, quin és el seu nom. 562 00:24:46,950 --> 00:24:50,250 En aquest cas, seria això que doesn't-- si anéssim a executar aquest codi, 563 00:24:50,250 --> 00:24:51,750 no demanaria això? 564 00:24:51,750 --> 00:24:54,740 Però ho faria només dos números d'entrada i després s'aniria així? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Peng: Sí, exactament. 566 00:24:55,781 --> 00:24:58,250 Així que si volia perquè pantalla, si us plau, introdueixi la seva edat, 567 00:24:58,250 --> 00:25:01,100 vostè pot afegir una funció printf () que diu: Si us plau introdueixi la seva edat, 568 00:25:01,100 --> 00:25:01,600 per sobre d'ella. 569 00:25:01,600 --> 00:25:02,711 Aquesta és una bona pregunta. 570 00:25:02,711 --> 00:25:03,210 Sí. 571 00:25:03,210 --> 00:25:07,964 >> ALTAVEU 9: Llavors, ja seria inclòs en getInt () [inaudible]. 572 00:25:07,964 --> 00:25:09,380 ANDI Peng: No, en realitat no ho és. 573 00:25:09,380 --> 00:25:11,809 Així que tot això no és més que impulsa una pantalla buida 574 00:25:11,809 --> 00:25:13,100 perquè l'usuari introdueixi alguna cosa. 575 00:25:13,100 --> 00:25:17,420 Si vostè ho vol, si vostè ho vol per imprimir cosa que li diu a l'usuari com, 576 00:25:17,420 --> 00:25:21,110 si us plau deme la seva edat, llavors vostè hauria de printf () que a tu mateix. 577 00:25:21,110 --> 00:25:23,789 A causa de que tothom utilitza aquest funció per a diferents coses, 578 00:25:23,789 --> 00:25:26,080 vostè podria estar emmagatzemant l'edat, vostè podria estar emmagatzemant direcció, 579 00:25:26,080 --> 00:25:28,060 vostè podria estar emmagatzemant números de telèfon. 580 00:25:28,060 --> 00:25:31,190 I el que és realment fins usos individuals dels seus homes ' 581 00:25:31,190 --> 00:25:34,390 pel que vols que digui. 582 00:25:34,390 --> 00:25:34,890 Sí. 583 00:25:34,890 --> 00:25:38,236 >> ALTAVEU 10: Per tant, només per aclarir, on fer que introduir el nom i l'edat 584 00:25:38,236 --> 00:25:43,020 de manera que es mostra en lloc de% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Peng: Igual que en l'usuari? 586 00:25:44,320 --> 00:25:47,165 >> ALTAVEU 10: Sí, com la forma de fer jo fer it-- on poso Andi, 587 00:25:47,165 --> 00:25:48,350 i on puc posar 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Peng: Sí. 589 00:25:48,640 --> 00:25:50,250 Així que si anés a realment executar aquest codi, 590 00:25:50,250 --> 00:25:52,875 No estic realment executa el codi, això és només aquí en aquest moment. 591 00:25:52,875 --> 00:25:56,910 Si hagués de executar el codi, ho faria compilar el codi, fer que l'arxiu, 592 00:25:56,910 --> 00:26:00,760 executar el codi, i després ho faria ser només dues places per a mi a introduir-la. 593 00:26:00,760 --> 00:26:01,260 Sí. 594 00:26:01,260 --> 00:26:03,843 Vostès veuran quan jugues tot amb el codi vostè mateix. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Molt bé mourem en la següent secció del 597 00:26:09,645 --> 00:26:11,610 estarem cobrint en l'actualitat. 598 00:26:11,610 --> 00:26:13,980 Anem a repassar el sentències condicionals són. 599 00:26:13,980 --> 00:26:16,500 Així que si vostès recordin i recordar de conferència, 600 00:26:16,500 --> 00:26:19,210 sentències condicionals, tot el que són són un conjunt 601 00:26:19,210 --> 00:26:24,010 d'instruccions a l'ordinador en que si una determinada condició és veritable, 602 00:26:24,010 --> 00:26:27,470 executar el codi dins d'aquesta condició. 603 00:26:27,470 --> 00:26:30,101 >> Així que en essència Scratch-- el gran tema a partir d'avui 604 00:26:30,101 --> 00:26:32,850 és que vostès tenen ja tot vist la lògica darrere de tot 605 00:26:32,850 --> 00:26:34,020 que estem cobrint. 606 00:26:34,020 --> 00:26:36,190 I tot el que estem fent és traduir alguna cosa 607 00:26:36,190 --> 00:26:39,090 això va ser molt intuïtiu en Scratch, i difícil de codificació que 608 00:26:39,090 --> 00:26:41,950 en la sintaxi que utilitzarà per a la classe que és C. 609 00:26:41,950 --> 00:26:47,550 Així que, lògicament, tot aquest bloc era és aquest tros de codi d'allà. 610 00:26:47,550 --> 00:26:49,995 Sí. 611 00:26:49,995 --> 00:26:50,900 D'ACORD. 612 00:26:50,900 --> 00:26:55,290 >> També ens fiquem en un if ... else declaració que és només una capa afegida 613 00:26:55,290 --> 00:26:59,120 de complexitat a la sentència if on l'equip fes un cop d'ull a aquesta 614 00:26:59,120 --> 00:27:04,260 i veu si aquesta condició es compleix, fer el de dins d'aquests dos suports, 615 00:27:04,260 --> 00:27:08,470 else-- tan poc com el valor predeterminat si no compleix amb la condición-- fer això. 616 00:27:08,470 --> 00:27:10,120 És com una forquilla a la carretera. 617 00:27:10,120 --> 00:27:14,400 Si està plovent fora, vaig posar en una jaqueta de pluja, cosa gens 618 00:27:14,400 --> 00:27:16,330 una altra cosa no em vaig posar una jaqueta de pluja. 619 00:27:16,330 --> 00:27:18,400 >> ¿Aquesta lògica té sentit per a tothom? 620 00:27:18,400 --> 00:27:21,031 Fresc. 621 00:27:21,031 --> 00:27:21,530 Tot bé. 622 00:27:21,530 --> 00:27:24,970 Així com un dur exemple de això que veuríem en C 623 00:27:24,970 --> 00:27:28,890 és si jo volia crear un denominades hores de tasca variables. 624 00:27:28,890 --> 00:27:32,050 I si les hores de tasca és menys de cinc, dic vida és gran. 625 00:27:32,050 --> 00:27:33,070 Es maravellós. 626 00:27:33,070 --> 00:27:36,450 No obstant això, diuen que la lluita és real-- que és el que tots en aquest dilluns 627 00:27:36,450 --> 00:27:39,337 a la tarda fins Science Hill són probablement fent bé ara-- 628 00:27:39,337 --> 00:27:40,170 AUDIÈNCIA: [riu] 629 00:27:40,170 --> 00:27:42,510 ANDI Peng: Es forma en què que, gràcies per això. 630 00:27:42,510 --> 00:27:46,180 La forma en què podríem codificar això en C és si: assumim 631 00:27:46,180 --> 00:27:49,920 ja tenim una variable de tipus int anomenat hores de tasca aquí. 632 00:27:49,920 --> 00:27:53,870 Si les hores de tasca està a menys de de cinc printf (), La vida és gran. 633 00:27:53,870 --> 00:27:57,330 Recordeu mantenir / n, perquè vols una nova línia després. 634 00:27:57,330 --> 00:27:59,660 Impressió Else, La lluita és real. 635 00:27:59,660 --> 00:28:03,720 >> Tothom entén com Em va passar d'aquest bloc 636 00:28:03,720 --> 00:28:07,610 en aquest bloc de codi? 637 00:28:07,610 --> 00:28:08,110 Fresc. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Tot bé. 640 00:28:11,840 --> 00:28:15,930 >> Així que ara anem a fer una ullada a múltiples sentències si en total. 641 00:28:15,930 --> 00:28:18,140 Així que anem a assumir la propòsit d'aquest programa 642 00:28:18,140 --> 00:28:20,870 era de sol·licitar a l'usuari un grau. 643 00:28:20,870 --> 00:28:24,450 Ens ràpida usant getInt () per a una grau, i s'introdueix un valor, 644 00:28:24,450 --> 00:28:27,700 i desitja mostrar quin tipus de qualificació que van obtenir. 645 00:28:27,700 --> 00:28:30,730 >> Així que si jo hagués de dissenyar un programa, significa típicament en tots els nostres ulls, 646 00:28:30,730 --> 00:28:35,490 El 90-100 és un A, el 80-90 és una B, i així successivament i així successivament. 647 00:28:35,490 --> 00:28:39,040 Quin problema hi ha amb aquest peça de codi que no és 648 00:28:39,040 --> 00:28:41,393 fent el que vull que faci. 649 00:28:41,393 --> 00:28:41,892 Sí. 650 00:28:41,892 --> 00:28:45,100 >> ALTAVEU 11: Tenen límits inferiors, però que no tenen límits superiors. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Peng: Exactament. 652 00:28:46,280 --> 00:28:47,950 És que tothom escolta el que va dir? 653 00:28:47,950 --> 00:28:50,200 No serà superior límits, però no hi ha límits més baixos. 654 00:28:50,200 --> 00:28:52,540 Ho sentim, revés, límits més baixos, no hi ha límits superiors. 655 00:28:52,540 --> 00:28:55,090 Així que li agradaria prendre una punyalada en el dir 656 00:28:55,090 --> 00:28:58,945 el que es va a imprimir en aquesta pantalla si hagués de executar aquest codi. 657 00:28:58,945 --> 00:28:59,820 ALTAVEU 11: un error? 658 00:28:59,820 --> 00:29:01,140 ANDI Peng: un error? 659 00:29:01,140 --> 00:29:02,740 Gran conjectura, que no està bé. 660 00:29:02,740 --> 00:29:05,465 Algú té una altra punyalada? 661 00:29:05,465 --> 00:29:06,640 Sí, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Si vostè posa en una mica més gran que 90, 663 00:29:10,099 --> 00:29:11,640 seria una mostra de tots els graus que tens. 664 00:29:11,640 --> 00:29:13,640 Seria demostrar que tens una A, tens un B, tens una C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Peng: Sí. 666 00:29:13,870 --> 00:29:14,840 Això és exactament correcte. 667 00:29:14,840 --> 00:29:17,820 Així que, això seria meravellós. 668 00:29:17,820 --> 00:29:21,781 No obstant això, són mútuament exclusiu, crec. 669 00:29:21,781 --> 00:29:23,280 Si hagués de executar aquest tros de codi. 670 00:29:23,280 --> 00:29:26,200 I després direm, jo introduït el grau del 95. 671 00:29:26,200 --> 00:29:30,360 Així que 95 ja està guardat en INT crida grau. 672 00:29:30,360 --> 00:29:33,610 >> Així C és un llenguatge que corre per dalt a baix, 673 00:29:33,610 --> 00:29:36,000 així que va a sempre previ a fons. 674 00:29:36,000 --> 00:29:39,420 Així que vindrà aquí, llegir si grau és més gran que o igual a 90, 675 00:29:39,420 --> 00:29:42,850 printf () que va obtenir una A. Genial, tenir un 95, això és més gran que 90. 676 00:29:42,850 --> 00:29:44,866 Es va a imprimir, Tinc una A. Va 677 00:29:44,866 --> 00:29:48,850 fer una ullada en aquest cas, es va diuen, bé 95 també és més gran que 80, 678 00:29:48,850 --> 00:29:52,970 que va imprimir també té un Got un signe d'exclamació B, i així successivament i així 679 00:29:52,970 --> 00:29:53,690 successivament. 680 00:29:53,690 --> 00:29:55,890 >> Així com tots podem veure, aquest és un error comú 681 00:29:55,890 --> 00:30:00,760 que pot ocórrer quan estem escriure codi a tenir en compte. 682 00:30:00,760 --> 00:30:05,430 Qualsevol persona, qualsevol pregunta sobre per això el que estava succeint? 683 00:30:05,430 --> 00:30:05,930 Gran. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 D'ACORD. 686 00:30:09,440 --> 00:30:12,110 >> Llavors, com podem solucionar aquest problema, és, òbviament, la següent pregunta lògica. 687 00:30:12,110 --> 00:30:16,290 Bé, tenim aquests bells coses anomenades si una altra persona si la resta 688 00:30:16,290 --> 00:30:18,010 si else. 689 00:30:18,010 --> 00:30:22,230 Així es pot veure, si vostè vol per canviar aquest problema, 690 00:30:22,230 --> 00:30:25,260 volia fer cada un dels condicions mútuament excloents, 691 00:30:25,260 --> 00:30:26,860 haurà d'afegir una cosa ... if. 692 00:30:26,860 --> 00:30:30,068 >> I aquests de clar-- pensar en ells com escales, o com esglaons en la ladder-- 693 00:30:30,068 --> 00:30:34,050 pot afegir ja que molts d'aquests com vostè desitjar per a tantes condicions com vulgui. 694 00:30:34,050 --> 00:30:36,790 Així que aquí, si introdueix grau per ser 95. 695 00:30:36,790 --> 00:30:39,479 Si el grau és més gran que 95, printf (), tinc una A. Gran. 696 00:30:39,479 --> 00:30:42,020 Es va a veure una cosa ... si i va conèixer, Oh, no, 697 00:30:42,020 --> 00:30:43,750 Jo ja va executar la primera persona. 698 00:30:43,750 --> 00:30:47,020 Jo sé-- o la primera si: Sé que Jo no he de mirar a qualsevol d'aquests 699 00:30:47,020 --> 00:30:48,920 perquè un d'ells ja ha estat cert. 700 00:30:48,920 --> 00:30:50,410 Així que va a executar de dalt a baix. 701 00:30:50,410 --> 00:30:53,650 Tan aviat com el primer és cert, llavors que passarà per alt tota la resta 702 00:30:53,650 --> 00:30:54,675 dels altres ... IFS. 703 00:30:54,675 --> 00:30:55,550 Això té sentit? 704 00:30:55,550 --> 00:30:57,841 Així, d'aquesta manera vostè té diferents nivells de comprovació 705 00:30:57,841 --> 00:31:01,090 i tan aviat com un d'ells és fals, el resta són també, que ni tan sols comprovar. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Fresc. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Tot bé. 710 00:31:08,180 --> 00:31:11,180 >> Així que aquest és un exemple d'una diferent tipus de sentència condicional 711 00:31:11,180 --> 00:31:15,250 veiem amb menys freqüència, però veurem ells i fem servir. 712 00:31:15,250 --> 00:31:18,120 I són sovint més eficient per a certs casos. 713 00:31:18,120 --> 00:31:20,020 Així que tenim el que s'anomena una sentència switch. 714 00:31:20,020 --> 00:31:25,140 Així que abans hem cobert el que és una cosa declaració, un if ... else. 715 00:31:25,140 --> 00:31:27,790 Aquí, tenim el que són anomenada sentències switch. 716 00:31:27,790 --> 00:31:31,100 >> Així que quan el fem servir interruptor declaracions és la clau? 717 00:31:31,100 --> 00:31:34,090 Així, en una sentència switch, es en general, generalment, en realitat 718 00:31:34,090 --> 00:31:38,010 Només pot sencers d'entrada per a la seva variable que s'estigui examinant. 719 00:31:38,010 --> 00:31:42,390 Així que si jo volia comprovar per veure si un determinat number-- per exemple 720 00:31:42,390 --> 00:31:43,720 un grau, si em van donar un 90. 721 00:31:43,720 --> 00:31:48,190 Vull veure si això és una A, B, o C. Jo podria tenir un cas aquí. 722 00:31:48,190 --> 00:31:50,840 No obstant això, el cas té a ser un altre constant. 723 00:31:50,840 --> 00:31:53,170 >> Així que en aquest sentit, la sentència switch només pot 724 00:31:53,170 --> 00:31:55,290 comprovar la igualtat de dos nombres. 725 00:31:55,290 --> 00:31:57,242 No comprova per res més. 726 00:31:57,242 --> 00:31:59,950 Així que això és una cosa que és molt cura de quan vostè està utilitzant això. 727 00:31:59,950 --> 00:32:04,810 Així que aquí, si volia comprovar per veure si el meu qualificació de 90 és igual a 90 o 80 728 00:32:04,810 --> 00:32:08,500 o 70 o 60, i després d'impressió el grau corresponent, 729 00:32:08,500 --> 00:32:11,420 M'agradaria ser capaç d'escriure que en una sentència switch. 730 00:32:11,420 --> 00:32:15,120 >> Així que vindrà aquí, xec és aquest número sencer igual a aquesta constant? 731 00:32:15,120 --> 00:32:17,030 Si no, que va a saltar. 732 00:32:17,030 --> 00:32:19,880 És igual a la constant dos, i així successivament i així successivament, 733 00:32:19,880 --> 00:32:22,390 fins a arribar a l'omissió, si cap d'ells són iguals. 734 00:32:22,390 --> 00:32:24,590 Tan aviat com un d'ells s'estableix perquè sigui igual, 735 00:32:24,590 --> 00:32:27,040 que va a fer això línia de codi i descans. 736 00:32:27,040 --> 00:32:30,990 El que vol dir que va a colpejar aquest córrer, trencar, i acaba de saltar per complet 737 00:32:30,990 --> 00:32:32,240 a la part inferior del codi. 738 00:32:32,240 --> 00:32:37,550 Així que en aquest sentit el tipus de funcions com un si else if else if comunicat. 739 00:32:37,550 --> 00:32:40,830 >> Així que aquí està un formigó exemple per a vostès. 740 00:32:40,830 --> 00:32:46,140 Així que anem a suposar que jo volia crear una variable anomenada anys fundada. 741 00:32:46,140 --> 00:32:50,230 I vull demanar a l'usuari que introdueixi l'any en què la seva escola va ser fundada. 742 00:32:50,230 --> 00:32:53,300 Així que pot crear una sentència switch aquí. 743 00:32:53,300 --> 00:32:56,650 I anem a dir, jo d'entrada 1636. 744 00:32:56,650 --> 00:33:01,120 >> Aquest codi aquí va a veure interruptor any va fundar el que equival a 1636. 745 00:33:01,120 --> 00:33:03,940 Es va a veure el cas 1636, oh aquests són iguals, 746 00:33:03,940 --> 00:33:06,230 printf () No hauria d'estar en aquesta escola al nord? 747 00:33:06,230 --> 00:33:08,770 Perquè se suposa que no ho fan anar aquí si van a Harvard, 748 00:33:08,770 --> 00:33:10,380 trencar i pas a la final. 749 00:33:10,380 --> 00:33:14,090 >> Si jo fos a l'entrada de 1701, que Suposo que tots nosaltres ho faria d'entrada, 750 00:33:14,090 --> 00:33:17,500 seria ometre aquest cas, anem a cas dos, que és de 1701, 751 00:33:17,500 --> 00:33:19,660 i imprimir Benvingut a Yale! 752 00:33:19,660 --> 00:33:21,360 Trencar, pas a la final. 753 00:33:21,360 --> 00:33:25,130 Cosa que vostè probablement està prenent aquest curs línia en què cas-- impressionant benvinguda 754 00:33:25,130 --> 00:33:29,020 a Yale-- que va a anar a la impressió per defecte, Hola Internet! 755 00:33:29,020 --> 00:33:29,870 I trencar. 756 00:33:29,870 --> 00:33:30,466 Sí. 757 00:33:30,466 --> 00:33:32,090 >> ALTAVEU 12: Es pot utilitzar un altre en lloc de per defecte allà? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Peng: No, perquè el manera que tota aquesta funció 759 00:33:34,550 --> 00:33:39,170 interruptor es construeix, la sintaxi que haureu d'majúscules cas per defecte. 760 00:33:39,170 --> 00:33:42,400 És com el cas dels altres si, aquesta És un sol cas cas per defecte. Sí. 761 00:33:42,400 --> 00:33:45,650 ALTAVEU 13: Vostè potser ja es va dir això, però pot tenir més de dos casos? 762 00:33:45,650 --> 00:33:48,066 ANDI Peng: Sí, vostè podria tenir tants casos com vulguis. 763 00:33:48,066 --> 00:33:50,050 Penseu en això com la mateixa manera que afegint infinitament successivament. 764 00:33:50,050 --> 00:33:52,396 >> ALTAVEU 14: Si commutada 1701 amb 1636, 765 00:33:52,396 --> 00:33:54,187 en realitat no fan un dret diferència? 766 00:33:54,187 --> 00:33:55,770 És només serà la comprovació d'ella. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Peng: Aquesta és una molt bona pregunta. 768 00:33:56,900 --> 00:33:58,880 I ens toquem això més endavant, però només 769 00:33:58,880 --> 00:34:01,160 saben que és l'interruptor declaració es infinitely-- és 770 00:34:01,160 --> 00:34:03,536 més eficient del que i si else if perquè opera 771 00:34:03,536 --> 00:34:06,660 utilitzant un tipus diferent de la funció que que permet, essencialment, a poc 772 00:34:06,660 --> 00:34:08,790 saltar directament a la cas que necessiti per estar en. 773 00:34:08,790 --> 00:34:10,547 Sí. 774 00:34:10,547 --> 00:34:11,255 ALTAVEU 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Gràcies. 776 00:34:11,754 --> 00:34:12,526 ANDI Peng: Sí 777 00:34:12,526 --> 00:34:16,687 >> ALTAVEU 14: I no podia veure casos similars, i més gran que. 778 00:34:16,687 --> 00:34:17,270 ANDI Peng: No. 779 00:34:17,270 --> 00:34:19,860 Llavors, això és el que està limitant sobre la sentència switch és que tens 780 00:34:19,860 --> 00:34:21,564 tenir constants només, només nombres enters. 781 00:34:21,564 --> 00:34:22,064 Sí. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 D'ACORD. 784 00:34:25,820 --> 00:34:28,659 >> Així que això és una cosa que vostè nois es trobaran amb menys freqüència de, 785 00:34:28,659 --> 00:34:32,280 però jo només volia introduir-lo al cas. 786 00:34:32,280 --> 00:34:36,210 Aquí tenim el que és anomenat un operador ternari. 787 00:34:36,210 --> 00:34:39,370 Quan en essència, és com un if compila en una sola línia. 788 00:34:39,370 --> 00:34:42,630 Aquí, vaig a anar a la següent línia, el pàgina següent, perquè és més fàcil de veure. 789 00:34:42,630 --> 00:34:44,860 >> Així que tots hem vist aquest dret? 790 00:34:44,860 --> 00:34:46,110 Això és bastant fàcil de seguir. 791 00:34:46,110 --> 00:34:51,290 Si volgués fer una variable anomenada de corda anomenat s, si un cert nombre 792 00:34:51,290 --> 00:34:54,770 Li dono és inferior a 100, em vulgueu assignar baixa a la cadena, 793 00:34:54,770 --> 00:34:57,240 més que vull assignar alta. 794 00:34:57,240 --> 00:35:01,370 >> Això aquí és fer la mateixa cosa exacta aquests vuit línies de codi estan fent. 795 00:35:01,370 --> 00:35:03,600 Així que aquí vull crear una cadena variable. 796 00:35:03,600 --> 00:35:08,520 I aquesta és la condició que sóc comprovar, si un nombre és menor que 100, 797 00:35:08,520 --> 00:35:12,750 a continuació, s'assigna el valor de la baixa, una altra cosa assignar el valor d'alta. 798 00:35:12,750 --> 00:35:15,802 >> Aquestes diapositives estaran en línia, no es preocupi si vostès no ho entenc això. 799 00:35:15,802 --> 00:35:18,510 Això és només una manera més senzilla, una més forma eficaç d'escriure codi. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 D'ACORD. 802 00:35:21,810 --> 00:35:25,190 >> Així que ara anem a entrar en el que, per a la majoria de la gent 803 00:35:25,190 --> 00:35:28,660 són com un molt, molt confús cosa que pensar en un principi. 804 00:35:28,660 --> 00:35:30,226 La secció de bucle. 805 00:35:30,226 --> 00:35:32,600 Així que avui, parlarem al voltant de tres tipus de bucles. 806 00:35:32,600 --> 00:35:34,890 Anem a començar amb un temps bucle, llavors parlar d'un do while, 807 00:35:34,890 --> 00:35:36,740 i després parlar dels bucles. 808 00:35:36,740 --> 00:35:40,010 >> Per tant, bàsicament, pels més estudiants visuals per aquí, 809 00:35:40,010 --> 00:35:44,410 tenim, en essència, una gràfica descripció del que fa un bucle while. 810 00:35:44,410 --> 00:35:48,290 Així que en una programació, que començaria i entrar en el bucle en un moment determinat. 811 00:35:48,290 --> 00:35:49,470 Es comprova una condició. 812 00:35:49,470 --> 00:35:52,165 I si la condició és veritable, s'executa el codi dins. 813 00:35:52,165 --> 00:35:53,790 I vostè es torna al voltant i comprovar. 814 00:35:53,790 --> 00:35:57,190 Si continua sent cert que segueix corrent aquest codi voltes i voltes en un bucle. 815 00:35:57,190 --> 00:36:00,970 >> No obstant això, el segon que la condició es converteix en falsa, 816 00:36:00,970 --> 00:36:02,739 vostè va a trencar i posar fi al cicle. 817 00:36:02,739 --> 00:36:05,030 I això és essencialment el sintaxi que vas a utilitzar. 818 00:36:05,030 --> 00:36:08,250 Mentre que una certa condició és veritat a fer això, si no és cert, 819 00:36:08,250 --> 00:36:12,920 que passarà a la final i seguir endavant amb el seu programa. 820 00:36:12,920 --> 00:36:13,690 D'ACORD. 821 00:36:13,690 --> 00:36:17,250 >> Algú té un exemple en el que pot potencialment succeir 822 00:36:17,250 --> 00:36:19,160 si intento executar aquest tros de codi? 823 00:36:19,160 --> 00:36:22,470 Per cert, això és Scaz SAJ--, Andi, Jason-- firmarem nostres correus electrònics, 824 00:36:22,470 --> 00:36:24,830 L'amor, la SAJ. 825 00:36:24,830 --> 00:36:25,573 Aquests som nosaltres. 826 00:36:25,573 --> 00:36:26,500 D'ACORD. 827 00:36:26,500 --> 00:36:29,829 >> Algú té un exemple, o tenen una idea del que això imprimir? 828 00:36:29,829 --> 00:36:30,870 Tipus d'una pregunta amb trampa. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Així que aquí, recordar la condició estem comprovant és per mentre cert. 831 00:36:39,380 --> 00:36:42,840 Així, mentre que això és cert, és va a imprimir, m'encanta SAJ! 832 00:36:42,840 --> 00:36:48,460 Hi ha algun punt en què ens havíem canviar això a alguna cosa d'una altra manera? 833 00:36:48,460 --> 00:36:49,050 No, oi? 834 00:36:49,050 --> 00:36:51,470 >> Així que aquí, tenim trobat el que probablement 835 00:36:51,470 --> 00:36:54,310 va a estar molestant molt seus programes, el bucle infinit. 836 00:36:54,310 --> 00:36:56,268 Trobareu que si executar aquest tros de codi, 837 00:36:56,268 --> 00:36:58,160 que només va a mantenir la impressió, m'encanta SAJ! 838 00:36:58,160 --> 00:37:00,701 Si bé apreciem el suport, no volem que els ordinadors 839 00:37:00,701 --> 00:37:02,910 a xocar perquè mantenir la impressió M'encanta SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Així que per favor, per favor, evitar el bucle infinit 841 00:37:05,320 --> 00:37:07,320 perquè mai va per avaluar en false 842 00:37:07,320 --> 00:37:08,780 i mai vas deixar el bucle. 843 00:37:08,780 --> 00:37:10,530 I vostè va a ser aspirat sempre. 844 00:37:10,530 --> 00:37:13,000 Fresc. 845 00:37:13,000 --> 00:37:13,694 D'ACORD. 846 00:37:13,694 --> 00:37:15,610 El segon tipus de bucle parlarem d'avui 847 00:37:15,610 --> 00:37:17,580 és el do while, do while. 848 00:37:17,580 --> 00:37:20,580 I es diu un do while perquè vostè té un do i un temps. 849 00:37:20,580 --> 00:37:24,390 Així que això és bastant similar a un temps llaç, però una mica diferent. 850 00:37:24,390 --> 00:37:27,620 Aquí, farem el de dins d'aquest 851 00:37:27,620 --> 00:37:29,747 mentre que una certa condició és vertadera. 852 00:37:29,747 --> 00:37:32,580 Així que si jo fos C i l'ordinador que estic corrent per aquest tros de codi, 853 00:37:32,580 --> 00:37:33,880 Trobo una ullada a la part superior. 854 00:37:33,880 --> 00:37:36,890 Vaig a C, dic fer aquesta cosa. 855 00:37:36,890 --> 00:37:40,550 I llavors puc comprovar, si bé això És cert, he de repetir-ho. 856 00:37:40,550 --> 00:37:42,750 Però mentre que això és fals, llavors em moc cap endavant 857 00:37:42,750 --> 00:37:44,700 i mai torno a aquest bucle de nou. 858 00:37:44,700 --> 00:37:48,360 >> Algú pot prendre una punyalada al que la diferència 859 00:37:48,360 --> 00:37:52,130 entre aquest bucle i la que es va limitar a era pràcticament. 860 00:37:52,130 --> 00:37:52,717 Sí. 861 00:37:52,717 --> 00:37:55,050 ALTAVEU 15: La condició ve després i no abans? 862 00:37:55,050 --> 00:37:55,841 ANDI Peng: Exactament. 863 00:37:55,841 --> 00:37:57,984 Així que ella va dir que la condició ve després, no abans. 864 00:37:57,984 --> 00:38:00,400 En última instància, la diferència entre aquest i el bucle while 865 00:38:00,400 --> 00:38:03,597 és que només farem el de dins d'aquest, independentment de 866 00:38:03,597 --> 00:38:06,430 si la seva condició és veritable i, a continuació, comprovar l'estat. 867 00:38:06,430 --> 00:38:08,304 Així que en aquest cas, vostè és always-- d'aquesta manera, 868 00:38:08,304 --> 00:38:11,240 sempre estàs assegurant el que hi ha dins s'executa almenys 869 00:38:11,240 --> 00:38:14,230 un cop abans de la comprovació per veure si voleu que s'executi de nou. 870 00:38:14,230 --> 00:38:18,040 >> I aquí és un exemple quan volem usar-lo. 871 00:38:18,040 --> 00:38:22,570 Així per exemple, si jo volia tenir una variable de tipus int anomenada edat, 872 00:38:22,570 --> 00:38:25,640 i vull incitar l'usuari per a la seva edat, 873 00:38:25,640 --> 00:38:27,910 Jo faré printf () Quants anys tens? 874 00:38:27,910 --> 00:38:30,330 edat = getInt (), que és preguntar a l'usuari. 875 00:38:30,330 --> 00:38:32,140 >> I algunes persones serà molt molest. 876 00:38:32,140 --> 00:38:34,931 I no vol errors en el seu programa d'algú ingressar com, 877 00:38:34,931 --> 00:38:36,680 oh Estic negatiu 4 anys d'edat o el que sigui. 878 00:38:36,680 --> 00:38:39,900 En aquest cas, si fer això, això s'avalua 879 00:38:39,900 --> 00:38:43,150 true, el que significa que vaig a has de mantenir tornar i fer això. 880 00:38:43,150 --> 00:38:45,310 Així que això seguirà re-preguntar a l'usuari 881 00:38:45,310 --> 00:38:47,960 per donar-te com un veritable nombre d'anys d'edat i és 882 00:38:47,960 --> 00:38:51,930 seguirà endavant cap enrere i refer fins que et donen una veritable edat 883 00:38:51,930 --> 00:38:56,900 major que un, o no zero. 884 00:38:56,900 --> 00:38:58,020 >> Així pista, pista. 885 00:38:58,020 --> 00:39:02,263 Això serà molt, molt útil per un dels seus problemes PSet. 886 00:39:02,263 --> 00:39:04,155 Sí. 887 00:39:04,155 --> 00:39:05,580 >> ALTAVEU 16: Vaja, ho sento. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Peng: Sí. 889 00:39:06,288 --> 00:39:09,424 >> ALTAVEU 16: ¿Hi ha, no per ser un imbècil, però- 890 00:39:09,424 --> 00:39:10,340 ANDI Peng: No es preocupi. 891 00:39:10,340 --> 00:39:11,990 ALTAVEU 16: ¿Hi ha diferents regles aquí, 892 00:39:11,990 --> 00:39:13,810 O simplement s'oblida per posar la cita? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Peng: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Ho sentim, però això és totalment meu mal. 895 00:39:15,530 --> 00:39:17,100 Això va ser sens dubte suposa que és una cita. 896 00:39:17,100 --> 00:39:17,690 Bona captura. 897 00:39:17,690 --> 00:39:18,800 Això no ha executat. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 D'ACORD. 900 00:39:22,830 --> 00:39:26,160 >> Així que l'últim tipus de bucle parlarem sobre i, en última instància, la classe dels més 901 00:39:26,160 --> 00:39:28,854 complex és el bucle for. 902 00:39:28,854 --> 00:39:30,770 No us preocupeu si vostè no ho fa saben el que això significa. 903 00:39:30,770 --> 00:39:32,061 És bastant confús al principi. 904 00:39:32,061 --> 00:39:33,640 Anem a repassar un exemple. 905 00:39:33,640 --> 00:39:37,040 >> Tot el que succeeix en un bucle for és que té tres estats 906 00:39:37,040 --> 00:39:38,380 que es va a incloure. 907 00:39:38,380 --> 00:39:42,130 Així que per a una cosa determinada, ets va a inicialitzar una variable. 908 00:39:42,130 --> 00:39:45,280 Vas a afegir a la condició de que aquest bucle seguirà funcionant. 909 00:39:45,280 --> 00:39:47,790 I després, al final de la llaç, vostè va a actualitzar-lo. 910 00:39:47,790 --> 00:39:50,248 Pot actualitzar la variable que vol seguir la pista. 911 00:39:50,248 --> 00:39:52,530 Així que normalment utilitzem per als bucles per quan 912 00:39:52,530 --> 00:39:55,390 que desitgi executar un bucle per a un certa quantitat de vegades 913 00:39:55,390 --> 00:39:58,900 i ja sabem, Oh vull aquest bucle s'executi com 10 vegades, 914 00:39:58,900 --> 00:40:03,060 llavors vostè fer-- vaig a anar més un exemple de la pàgina següent. 915 00:40:03,060 --> 00:40:07,830 >> Així que aquí, per exemple, en Scratch, si volia alguna cosa que repetir 10 vegades, 916 00:40:07,830 --> 00:40:10,790 tot el que havia de dir era, repeteixi 10 vegades I love SAJ! 917 00:40:10,790 --> 00:40:15,260 que és una més acceptable mostra de suport per a nosaltres 918 00:40:15,260 --> 00:40:17,120 en lloc de la bucle infinit. 919 00:40:17,120 --> 00:40:19,920 En aquest cas, la forma en què ho faria transició a C i d'escriptura 920 00:40:19,920 --> 00:40:26,040 és a dir, per int-- Vaig a crear o declarar una variable de tipus int anomenat i. 921 00:40:26,040 --> 00:40:30,089 Vaig a inicialitzar a 0, de manera que i = 0; 922 00:40:30,089 --> 00:40:31,630 i això serà la meva condició. 923 00:40:31,630 --> 00:40:33,860 Així que i és més petit que 10. 924 00:40:33,860 --> 00:40:36,096 I després en el end-- l'última declaració que ets 925 00:40:36,096 --> 00:40:38,710 tindrà és l'actualització de el que passa amb la variable d'i 926 00:40:38,710 --> 00:40:40,206 al final del seu cicle for. 927 00:40:40,206 --> 00:40:42,830 Així que és una mica confús, ja que diferents parts d'aquesta línia 928 00:40:42,830 --> 00:40:44,871 estan succeint en diferents tipus de bucle. 929 00:40:44,871 --> 00:40:46,746 Però vaig a anar a través d'una pseudocodi d'exemple que 930 00:40:46,746 --> 00:40:50,360 i potser explicar aquesta només una mica millor. 931 00:40:50,360 --> 00:40:51,500 >> Així que aquí. 932 00:40:51,500 --> 00:40:52,929 Aquest és el llaç que acabem de veure. 933 00:40:52,929 --> 00:40:55,470 Essencialment en pseudocodi, el que està succeint en aquest programa, 934 00:40:55,470 --> 00:40:57,940 és primer que estic creant I, inicialitzar a 0. 935 00:40:57,940 --> 00:41:00,440 Estic comprovant si i és menys de 10, en el cas 936 00:41:00,440 --> 00:41:02,840 la primera vegada que és perquè 0 és menor de 10. 937 00:41:02,840 --> 00:41:04,727 Així, el bucle es va a executar. 938 00:41:04,727 --> 00:41:06,310 I després vaig a imprimir aquesta línia. 939 00:41:06,310 --> 00:41:11,240 I després, al final d'aquesta línia, a la dreta aquí, jo faré la subhasta i, i ++, 940 00:41:11,240 --> 00:41:13,370 tot el que significa és incrementant per un. 941 00:41:13,370 --> 00:41:15,460 >> Així que ara es 1. 942 00:41:15,460 --> 00:41:17,960 A causa que una vegada va ser 0, si s'incrementa és, ara es 1. 943 00:41:17,960 --> 00:41:19,610 I després vaig a tornar al principi del bucle 944 00:41:19,610 --> 00:41:20,730 i puc comprovar l'estat. 945 00:41:20,730 --> 00:41:22,080 És la condició segueix sent cert? 946 00:41:22,080 --> 00:41:24,030 Sí, 1 segueix sent inferior a 10. 947 00:41:24,030 --> 00:41:27,370 Així que va a imprimir de nou, anar i després incrementar I, i se'ls 948 00:41:27,370 --> 00:41:29,180 la condició de forma contínua, de forma contínua, 949 00:41:29,180 --> 00:41:33,290 fins que finalment aconsegueix fins al punt on i és 10. 950 00:41:33,290 --> 00:41:36,300 >> Vostè va a imprimir això 10 vegades i després em serà igual a 10. 951 00:41:36,300 --> 00:41:37,800 Esteu comprovar l'estat. 952 00:41:37,800 --> 00:41:38,760 És 10 menys de 10? 953 00:41:38,760 --> 00:41:40,370 No, això és fals. 954 00:41:40,370 --> 00:41:43,020 Per tant, aquest bucle no va córrer, es trencarà, 955 00:41:43,020 --> 00:41:45,040 i vostè va a continuar amb el seu codi. 956 00:41:45,040 --> 00:41:47,550 >> Així com vostès poden veure, aquest És realment un gran exemple 957 00:41:47,550 --> 00:41:53,110 d'un bucle es pot programar en aquest té una durada d'una determinada quantitat de vegades. 958 00:41:53,110 --> 00:41:54,457 Tot el clar? 959 00:41:54,457 --> 00:41:54,956 Sí. 960 00:41:54,956 --> 00:41:59,060 >> ALTAVEU 17: Què hi ha de la subhasta exponencialment, es diferencia de codificació? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Peng: Vostè can-- anirem sobre això en la següent diapositiva. 962 00:42:02,060 --> 00:42:03,350 Bona pregunta. 963 00:42:03,350 --> 00:42:05,910 És anyone-- abans de passar en-- ningú en absolut confusa, 964 00:42:05,910 --> 00:42:07,640 perquè es tracta d'un concepte molt difícil. 965 00:42:07,640 --> 00:42:09,510 No es preocupi, si you're-- acord. 966 00:42:09,510 --> 00:42:10,010 Fresc. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Tot bé. 969 00:42:13,490 --> 00:42:14,610 Només una diapositiva general. 970 00:42:14,610 --> 00:42:18,020 Aquest bucle mentre està fent la exactament el mateix el bucle for era. 971 00:42:18,020 --> 00:42:19,631 És només escrit de manera diferent. 972 00:42:19,631 --> 00:42:22,130 Vostès poden llegir detingudament les diapositives a la seva conveniència més tard. 973 00:42:22,130 --> 00:42:24,880 Però només sé que hi ha múltiples maneres d'escriure el mateix 974 00:42:24,880 --> 00:42:28,300 passarà amb diferents bucles. 975 00:42:28,300 --> 00:42:28,800 D'ACORD. 976 00:42:28,800 --> 00:42:32,380 >> Així que, ara ens fiquem en la qüestió de què si tenim un bucle dins d'un bucle. 977 00:42:32,380 --> 00:42:35,810 Estem rebent en béns Tipus d'Inception coses aquí. 978 00:42:35,810 --> 00:42:40,640 Quan vostè vol fer coses múltiple vegades dins d'altres coses 979 00:42:40,640 --> 00:42:44,129 de fer les coses diverses vegades, voler el que es diu un niat de bucle. 980 00:42:44,129 --> 00:42:47,420 Per a aquells de vostès que primer veure això i aconseguir molt confús, tot el que estem fent aquí 981 00:42:47,420 --> 00:42:50,580 està tenint un bucle on tenim una variable de fila. 982 00:42:50,580 --> 00:42:54,500 Però dins d'ella, també tenim una altra per al bucle d'una columna variable anomenada. 983 00:42:54,500 --> 00:42:58,560 I li recomano a tots vostès que es confonen per mantenir primer 984 00:42:58,560 --> 00:43:00,310 track-- dibuixar això, dibuixeu això. 985 00:43:00,310 --> 00:43:03,000 No tracti de justa raó a través d'ell, el assolirà. 986 00:43:03,000 --> 00:43:06,630 >> En el teu cap, en aquest tros de paper, o el que sigui, la fila d'escriptura, 987 00:43:06,630 --> 00:43:08,614 no perdre de vista el que la fila és igual. 988 00:43:08,614 --> 00:43:10,780 Escriu la columna, fer un seguiment del que la columna és igual a. 989 00:43:10,780 --> 00:43:13,490 I no perdre de vista el que és imprimir amb cada iteració. 990 00:43:13,490 --> 00:43:16,320 Cada iteració d'aquest bucle, cada iteració del llaç més gran que, 991 00:43:16,320 --> 00:43:17,820 només seguir seguint la lògica. 992 00:43:17,820 --> 00:43:20,190 I et garanteixo que, t'encantarà el que veus, 993 00:43:20,190 --> 00:43:24,307 perquè també és molt aplicable per als seus butlletins de problemes. 994 00:43:24,307 --> 00:43:24,806 Fresc. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Tot bé. 997 00:43:28,000 --> 00:43:30,723 Així que el més important que vostès són probablement tots 998 00:43:30,723 --> 00:43:32,400 pensant en aquest moment, són el seu problema Estableixi 1s, 999 00:43:32,400 --> 00:43:33,650 que s'han Dijous / Divendres. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> En el seu programa water.c, Suggeriment tindràs 1002 00:43:39,710 --> 00:43:41,590 per demanar a l'usuari per a una entrada. 1003 00:43:41,590 --> 00:43:43,640 Dins del seu programa de mario.c vostè va a tenir 1004 00:43:43,640 --> 00:43:46,431 per utilitzar un bucle niat per, que és un bucle dins d'un bucle for, 1005 00:43:46,431 --> 00:43:50,247 per imprimir un bloc de piràmide, en essència com el que Mario ha de saltar a través. 1006 00:43:50,247 --> 00:43:53,330 I després dins del seu greedy-- o potser Fer realitat el canvi, si algun de vostès 1007 00:43:53,330 --> 00:43:55,740 alguna vegada ha sentit parlar de això-- vostè va a haver de ser molt 1008 00:43:55,740 --> 00:43:58,160 cura dels primers valors de coma flotant. 1009 00:43:58,160 --> 00:44:01,860 Recordeu decimals flotants i sencers no són la mateixa cosa. 1010 00:44:01,860 --> 00:44:03,620 Porteu un registre de quin és quin. 1011 00:44:03,620 --> 00:44:05,953 I vostè va a utilitzar sentències condicionals, també. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Molt bé, l'últim. 1014 00:44:10,940 --> 00:44:12,770 Tinc un parell de minuts per al final. 1015 00:44:12,770 --> 00:44:13,460 Estil. 1016 00:44:13,460 --> 00:44:19,320 Així que això és una cosa que no es fa en realitat efectuar l'eficiència, 1017 00:44:19,320 --> 00:44:21,010 o el funcionament real del seu codi. 1018 00:44:21,010 --> 00:44:24,380 No obstant això, ens afecta com el seu grau, com els seus lectors. 1019 00:44:24,380 --> 00:44:27,290 Afecta a tu mateix, si ets tractant de trobar un problema. 1020 00:44:27,290 --> 00:44:30,700 Afecta la llegibilitat del codi. 1021 00:44:30,700 --> 00:44:34,070 >> Així estil, com quan vostè està tractant de l'estil d'un assaig per Anglès, si vostè 1022 00:44:34,070 --> 00:44:36,070 no va tenir paràgrafs, que té tota mena 1023 00:44:36,070 --> 00:44:39,190 del involucrar junts en una línia, fa que sigui molt difícil per a qualsevol 1024 00:44:39,190 --> 00:44:42,620 per llegir el seu assaig, fins i tot si seus punts són lògicament so. 1025 00:44:42,620 --> 00:44:44,390 El mateix en la programació. 1026 00:44:44,390 --> 00:44:47,910 Vostè pot tenir horriblement fosca codi que Scaz cobrirà, 1027 00:44:47,910 --> 00:44:49,660 i encara pot córrer i funció. 1028 00:44:49,660 --> 00:44:53,110 Però per a nosaltres, com els seus precioses TA, l'OMS estar llegint i avaluant els seus conjunts de processadors, 1029 00:44:53,110 --> 00:44:54,460 això no és molt agradable. 1030 00:44:54,460 --> 00:44:56,859 >> Així que si us plau, pel bé de nosaltres i vostè mateix, 1031 00:44:56,859 --> 00:44:58,900 quan vostè està tractant d'arreglar un problema en el seu codi, 1032 00:44:58,900 --> 00:45:00,774 i que està tractant de llegir el seu propi codi, que 1033 00:45:00,774 --> 00:45:03,910 vos de seguir algunes convencions que anem a repassar. 1034 00:45:03,910 --> 00:45:04,510 >> Així que en primer lloc. 1035 00:45:04,510 --> 00:45:07,070 Doni als seus variables de noms significatius. 1036 00:45:07,070 --> 00:45:11,450 Si voleu emmagatzemar un nombre enter anomenada edat, si us plau nomenar edat. 1037 00:45:11,450 --> 00:45:12,875 No nomenar alçada. 1038 00:45:12,875 --> 00:45:14,750 Quan vostè està tractant de emmagatzemar una edat en l'altura, 1039 00:45:14,750 --> 00:45:16,722 fa que tot molt confús per a nosaltres. 1040 00:45:16,722 --> 00:45:17,930 No ens agrada ser confós. 1041 00:45:17,930 --> 00:45:19,180 ¿No li agrada ser confós. 1042 00:45:19,180 --> 00:45:20,350 A ningú li agrada ser confós. 1043 00:45:20,350 --> 00:45:23,100 Si vostè va a crear alguna cosa, nomenar-alguna cosa significativa. 1044 00:45:23,100 --> 00:45:26,440 >> No obstant això, en bucle, sola les variables de caràcter són generalment molt bé. 1045 00:45:26,440 --> 00:45:31,350 I en bucle, si vols simplement i, i j, k, no dubteu a fer això. 1046 00:45:31,350 --> 00:45:32,670 >> Inicialització consistent. 1047 00:45:32,670 --> 00:45:33,770 Llavors, què vol dir això? 1048 00:45:33,770 --> 00:45:37,600 Això vol dir tècnicament, teòricament, pot iniciar i crear 1049 00:45:37,600 --> 00:45:40,140 múltiples variables en la mateixa línia. 1050 00:45:40,140 --> 00:45:42,820 Així, per exemple, puc crear un enter anomenat scaz_age, 1051 00:45:42,820 --> 00:45:47,110 i sencer anomenat andi_age = 20, i un enter anomenat jason_age 1052 00:45:47,110 --> 00:45:48,090 en la mateixa línia. 1053 00:45:48,090 --> 00:45:52,060 I també puc assignar només un ells i no als altres als valors. 1054 00:45:52,060 --> 00:45:54,142 Els demanem que si us plau no facis això. 1055 00:45:54,142 --> 00:45:57,350 Perquè aquí s'ha creat essencialment 3 variables, però només un d'ells 1056 00:45:57,350 --> 00:45:58,295 en realitat té un valor. 1057 00:45:58,295 --> 00:46:00,170 I després, quan estem tractant de llegir el seu codi, 1058 00:46:00,170 --> 00:46:01,850 o si vostè està tractant d'arreglar un problema en el seu codi, 1059 00:46:01,850 --> 00:46:03,340 és molt confús per seguir. 1060 00:46:03,340 --> 00:46:09,300 Així que per la seva llegibilitat, per la nostra lectura, no facis això. 1061 00:46:09,300 --> 00:46:10,355 >> Claus consistent. 1062 00:46:10,355 --> 00:46:12,980 Algunes persones els agrada posar el seu claus en diferents llocs. 1063 00:46:12,980 --> 00:46:14,100 En realitat no importa. 1064 00:46:14,100 --> 00:46:17,900 Només assegureu-vos que vostè és coherent en la seva propi codi d'on t'agrada posar-los. 1065 00:46:17,900 --> 00:46:18,950 >> Espaiat consistent. 1066 00:46:18,950 --> 00:46:22,040 Si poses un espai després d'un bucle, sempre fer això. 1067 00:46:22,040 --> 00:46:24,930 No es limiti a rebre classe de fer-ho en alguns llocs, no ho fan en d'altres. 1068 00:46:24,930 --> 00:46:26,580 Tot just sigui consistent. 1069 00:46:26,580 --> 00:46:29,500 >> En segon lloc, si algú volgués per examinar la Guia d'Estil CS50, 1070 00:46:29,500 --> 00:46:33,230 que oficialment tenim una guia d'estil que que totes aquestes convencions diu, 1071 00:46:33,230 --> 00:46:34,890 i més. 1072 00:46:34,890 --> 00:46:35,530 Està en línia. 1073 00:46:35,530 --> 00:46:38,670 És com cs50.net/style o alguna cosa per l'estil. 1074 00:46:38,670 --> 00:46:40,180 Pot google. 1075 00:46:40,180 --> 00:46:41,399 >> La consistència és la clau. 1076 00:46:41,399 --> 00:46:43,190 Així que no t'ho altres persones estan fent, 1077 00:46:43,190 --> 00:46:46,180 només assegureu-vos que vostè és consistent dins del seu propi codi. 1078 00:46:46,180 --> 00:46:50,570 Algú té alguna pregunta sobre això? 1079 00:46:50,570 --> 00:46:51,070 Sí. 1080 00:46:51,070 --> 00:46:53,370 >> ALTAVEU 18: Així que la cosa correcta a veure amb la inicialització només 1081 00:46:53,370 --> 00:46:56,130 tots ells tenen en una separada línia, és que el que estàs dient? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Peng: Així que poques vegades he succeir això. 1083 00:46:58,850 --> 00:47:02,230 Però si vostè vol, si volies ser com l'estalvi d'espai en el seu codi, 1084 00:47:02,230 --> 00:47:04,000 o el que sigui, vostè pot fer això. 1085 00:47:04,000 --> 00:47:07,800 Els demanem que simplement no inicialitzar una cosa i no als altres. 1086 00:47:07,800 --> 00:47:12,600 Així que si vostè vol fer int scaz_age, int andi_age, int jason_age, això està bé. 1087 00:47:12,600 --> 00:47:15,600 Això sí, no inicialitzar un sol i no als altres és tot. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Preguntes? 1090 00:47:19,904 --> 00:47:20,850 Tot bé. 1091 00:47:20,850 --> 00:47:24,610 Vaig a passar pel micròfon, i el punter làser, 1092 00:47:24,610 --> 00:47:28,862 i el testimoni a Scaz en aquest punt. 1093 00:47:28,862 --> 00:47:29,808 Això és incòmode. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Aquí està. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Gràcies. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Com és això de so? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 El so és bo? . 1101 00:47:47,900 --> 00:47:49,220 Excel·lent. 1102 00:47:49,220 --> 00:47:50,350 D'ACORD. 1103 00:47:50,350 --> 00:47:52,110 Així, hola a tots. 1104 00:47:52,110 --> 00:47:56,540 >> Vaig a tractar de treballar a través de un exemple pràctic amb vostè. 1105 00:47:56,540 --> 00:48:00,850 I utilitzarem CS50 de entorn de desenvolupament, el que es diu 1106 00:48:00,850 --> 00:48:03,120 l'entorn de desenvolupament integrat. 1107 00:48:03,120 --> 00:48:05,145 I ja has vist aquesta demostrat en la conferència. 1108 00:48:05,145 --> 00:48:07,520 I en el problema 1 set, ets va tenir una oportunitat 1109 00:48:07,520 --> 00:48:10,890 per usar-lo, i jugar amb , I acostumar-se a ella, 1110 00:48:10,890 --> 00:48:13,640 perquè anem a utilitzar- per la resta del semestre. 1111 00:48:13,640 --> 00:48:20,350 >> Així que en aquest IDE, vostè té el que sembla com un explorador d'arxius molt tradicional 1112 00:48:20,350 --> 00:48:21,890 Més en un costat. 1113 00:48:21,890 --> 00:48:24,360 Vostè té una porció de fins superior a on va 1114 00:48:24,360 --> 00:48:28,850 per veure el seu codi font, el seu CFile, el codi que escriviu. 1115 00:48:28,850 --> 00:48:31,880 I a sota sota, podràs tenir una finestra de terminal 1116 00:48:31,880 --> 00:48:36,330 que es va a utilitzar per tant compilar el programa 1117 00:48:36,330 --> 00:48:39,090 i per a executar o executar el seu programa. 1118 00:48:39,090 --> 00:48:40,100 D'ACORD. 1119 00:48:40,100 --> 00:48:46,560 >> Així que per donar-nos una mica de fundació, en aquesta finestra de terminal, 1120 00:48:46,560 --> 00:48:48,930 vostè va a ser utilitzant un conjunt d'ordres 1121 00:48:48,930 --> 00:48:53,040 que són ordres estàndard en tot la majoria dels sistemes Unix o Linux. 1122 00:48:53,040 --> 00:48:55,890 I pel que si vostè ha utilitzat alguna vegada qualsevol forma d'Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 o qualsevol dels altres sabors, aquests van a semblar familiar. 1124 00:48:59,140 --> 00:49:00,890 >> Si vostè no té, no es preocupi. 1125 00:49:00,890 --> 00:49:02,830 No hi ha res complicat sobre ells. 1126 00:49:02,830 --> 00:49:05,330 Només estan usant una diferent sintaxi, una denominació diferent 1127 00:49:05,330 --> 00:49:07,630 convencions del que he vist abans. 1128 00:49:07,630 --> 00:49:12,190 >> Així que fer una llista dels fitxers dins d'un directori en particular, 1129 00:49:12,190 --> 00:49:15,310 que van a utilitzar un comandament crida ls, o llista. 1130 00:49:15,310 --> 00:49:18,010 Si vols veure tot amb tots els detalls, 1131 00:49:18,010 --> 00:49:21,535 farem servir una ordre argument de la línia amb ls -l. 1132 00:49:21,535 --> 00:49:23,910 I que et mostro tot en més detall, incloent 1133 00:49:23,910 --> 00:49:26,270 els permisos per a un arxiu. 1134 00:49:26,270 --> 00:49:31,190 >> Per canviar de directori, farem servir la comanda cd. 1135 00:49:31,190 --> 00:49:35,180 I podràs canviar de directori tant per anar al seu directori personal. 1136 00:49:35,180 --> 00:49:38,500 Això és tot per cd sí, cd amb de dos 1137 00:49:38,500 --> 00:49:42,930 punts tornaran vostès se a un nivell al seu directori anterior. 1138 00:49:42,930 --> 00:49:46,400 I que també pots cd a un subdirectori teclejant cd 1139 00:49:46,400 --> 00:49:48,500 i el nom d'aquest subdirectori. 1140 00:49:48,500 --> 00:49:50,540 >> També es poden crear directoris. 1141 00:49:50,540 --> 00:49:52,790 I anem a caminar a través d'aquest en tan sols uns minuts. 1142 00:49:52,790 --> 00:49:54,498 Però només per posar tot a la pantalla. 1143 00:49:54,498 --> 00:49:56,310 Perquè vostè pugui veure'ls. 1144 00:49:56,310 --> 00:50:00,420 >> Vostè també té la capacitat per manipular arxius directament 1145 00:50:00,420 --> 00:50:02,100 des de la línia d'ordres. 1146 00:50:02,100 --> 00:50:06,059 Podràs copiar-los, a moure'ls, o per eliminar-los, 1147 00:50:06,059 --> 00:50:07,600 és a dir, de manera efectiva, per eliminar-los. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> L'IDE CS50 li dóna el ple poder dels arguments de línia de comandes. 1150 00:50:15,350 --> 00:50:20,280 I això vol dir que també pots fer coses molt perilloses. 1151 00:50:20,280 --> 00:50:21,560 D'ACORD. 1152 00:50:21,560 --> 00:50:25,010 Per exemple, vostè pot eliminar, o que és esborrat, 1153 00:50:25,010 --> 00:50:28,750 un arxiu sense preguntar per a una confirmació. 1154 00:50:28,750 --> 00:50:31,820 I fins i tot es pot eliminar recursively-- això és 1155 00:50:31,820 --> 00:50:38,940 el tauler r flag-- tot un subdirectori i tot el seu contingut. 1156 00:50:38,940 --> 00:50:39,660 D'ACORD. 1157 00:50:39,660 --> 00:50:42,940 Estan llistades en vermell perquè ha de pensar "Perill" cada vegada 1158 00:50:42,940 --> 00:50:45,000 veus aquestes coses. 1159 00:50:45,000 --> 00:50:45,920 D'ACORD. 1160 00:50:45,920 --> 00:50:46,420 Tot bé. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Ara, per fi, les coses que són serà molt valuós per a vostè, 1163 00:50:53,430 --> 00:50:57,270 hi ha alguns bons trucs saber el que estàs navegant 1164 00:50:57,270 --> 00:50:59,190 a través d'aquesta finestra de terminal. 1165 00:50:59,190 --> 00:51:03,590 En primer lloc, es pot esborrar la pantalla en qualsevol moment amb només teclejar en clar. 1166 00:51:03,590 --> 00:51:06,310 I vas a veure em faig molt sovint. 1167 00:51:06,310 --> 00:51:09,990 També es pot simplement mostrar el text d'un arxiu 1168 00:51:09,990 --> 00:51:13,992 escrivint més i després el nom de l'arxiu. 1169 00:51:13,992 --> 00:51:17,200 A continuació, serà capaç de desplaçar-se cap enrere i successivament amb aquest just amb la barra d'espai 1170 00:51:17,200 --> 00:51:19,010 i les tecles de fletxa. 1171 00:51:19,010 --> 00:51:25,450 >> Si vostè té, com hem fet avui a la conferència, un programa que s'executa de manera contínua 1172 00:51:25,450 --> 00:51:29,190 en bucle infinit, que pot aturar aquest programa 1173 00:51:29,190 --> 00:51:35,160 d'executar escrivint en control, que és la celebració de la tecla Control-C. 1174 00:51:35,160 --> 00:51:38,360 I és possible que hagi de fer això diverses vegades. 1175 00:51:38,360 --> 00:51:40,620 L'equip es posa molt per davant de tu. 1176 00:51:40,620 --> 00:51:43,380 I de vegades és necessari donar-li un parell d'intents 1177 00:51:43,380 --> 00:51:46,280 abans que en realitat vénen a través. 1178 00:51:46,280 --> 00:51:48,760 >> També serà capaç de ordenar a través de les ordres 1179 00:51:48,760 --> 00:51:54,230 que acaba d'escriure usant la tecla de dalt, clau fletxa, i després la tecla de fletxa cap avall. 1180 00:51:54,230 --> 00:51:57,560 I el que és més útil és el seu lloc d'escriure els noms de fitxer llargs, 1181 00:51:57,560 --> 00:52:02,209 podràs a la pestanya ús autocompletar algunes instruccions. 1182 00:52:02,209 --> 00:52:04,750 Ara demostrarem tots els que en tan sols un segon. 1183 00:52:04,750 --> 00:52:06,780 Així que si vostè no recorda ells, no es preocupi. 1184 00:52:06,780 --> 00:52:10,780 Aquestes són coses que vostè va a recollir i utilitzar a mesura que avancem. 1185 00:52:10,780 --> 00:52:11,470 D'ACORD. 1186 00:52:11,470 --> 00:52:18,830 >> Així que en C-- diferència de Scratch-- C és un llenguatge compilat. 1187 00:52:18,830 --> 00:52:23,210 Això vol dir que tindrem una font file-- aquest és el text que s'escriu, 1188 00:52:23,210 --> 00:52:26,500 les ordres que vostè escriu, la printf () declaracions, els llaços, 1189 00:52:26,500 --> 00:52:32,580 tot else-- i anem prendre aquest arxiu i lliurar fora 1190 00:52:32,580 --> 00:52:34,670 a un programa anomenat compilador. 1191 00:52:34,670 --> 00:52:39,850 >> El compilador prendrà que el text que has escrit 1192 00:52:39,850 --> 00:52:43,270 i traduir-lo en les instruccions binàries 1193 00:52:43,270 --> 00:52:46,010 que el seu equip és en realitat va utilitzar. 1194 00:52:46,010 --> 00:52:49,700 Això es diu l'objecte o l'arxiu executable. 1195 00:52:49,700 --> 00:52:55,320 Si ens fixem en aquest arxiu, vas per veure el codi que has escrit. 1196 00:52:55,320 --> 00:52:59,480 Si ens fixem en aquest arxiu, vas per veure una seqüència aleatòria de caràcters 1197 00:52:59,480 --> 00:53:01,680 que no tenen cap sentit. 1198 00:53:01,680 --> 00:53:03,250 Això és perquè aquest és el binari. 1199 00:53:03,250 --> 00:53:05,560 No és la intenció perquè vostè pugui estar llegint. 1200 00:53:05,560 --> 00:53:08,690 >> No obstant això, cada vegada que volen executar alguna cosa, el que vas 1201 00:53:08,690 --> 00:53:13,670 que s'executa és l'arxiu objecte. 1202 00:53:13,670 --> 00:53:19,110 Així que quan treballem amb ells arxius, anem a escriure un arxiu en C. 1203 00:53:19,110 --> 00:53:23,400 Llavors anem a compilar, utilitzant un comandament com a marca que invocarà 1204 00:53:23,400 --> 00:53:27,070 l'estrèpit compilador per al llenguatge C. 1205 00:53:27,070 --> 00:53:31,530 I això produirà un objecte presentar, com una sortida, o en aquest cas, 1206 00:53:31,530 --> 00:53:36,580 el nom, el meu arxiu, que jo he posat en. 1207 00:53:36,580 --> 00:53:37,780 Tot bé. 1208 00:53:37,780 --> 00:53:39,790 >> Així que anem a tractar en realitat això. 1209 00:53:39,790 --> 00:53:42,850 Així que es va acudir un exemple del que volia provar. 1210 00:53:42,850 --> 00:53:47,380 I una de les coses que em fascina és l'animació. 1211 00:53:47,380 --> 00:53:51,010 Així que anem a tractar de fer una mica d'animació 1212 00:53:51,010 --> 00:53:53,760 utilitzant només caràcters ASCII. 1213 00:53:53,760 --> 00:53:56,470 Caràcters que es poden imprimir fàcilment ara. 1214 00:53:56,470 --> 00:54:00,890 >> Així que aquí és el meu millor intent a crear per a vostè 1215 00:54:00,890 --> 00:54:07,005 l'animació d'un conillet corrent a través de l'herba alta. 1216 00:54:07,005 --> 00:54:07,505 Aquí està. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 D'ACORD. 1219 00:54:10,670 --> 00:54:14,050 Així que no està funcionant encara, però és de peu a l'herba alta. 1220 00:54:14,050 --> 00:54:17,810 >> Ara bé, si jo fos un animador, en la vella escola 1221 00:54:17,810 --> 00:54:20,860 versió de l'animació, el que faria és jo produeixo 1222 00:54:20,860 --> 00:54:23,640 una imatge d'aquest conillet a l'herba. 1223 00:54:23,640 --> 00:54:25,390 I llavors m'agradaria produir una altra picture-- 1224 00:54:25,390 --> 00:54:30,600 una altra el que van cridar cell-- que havia mogut el conill només lleugerament. 1225 00:54:30,600 --> 00:54:34,870 I després un tercer que tenia el conillet es va acostar una mica més lluny. 1226 00:54:34,870 --> 00:54:40,610 >> I m'agradaria produir un tot seqüència d'aquestes cèl·lules. 1227 00:54:40,610 --> 00:54:44,220 Alguns, on el conill ha acabat a la banda esquerra. 1228 00:54:44,220 --> 00:54:47,050 I després es mou lentament, un per un amb el medi. 1229 00:54:47,050 --> 00:54:51,120 I a continuació, des de la meitat més a la dreta. 1230 00:54:51,120 --> 00:54:55,760 I si jo fos llavors, realment sort, vaig poder armar- 1231 00:54:55,760 --> 00:54:57,970 i podria animar-los. 1232 00:54:57,970 --> 00:55:00,370 I aquí està el meu conillet corrent a través de l'herba. 1233 00:55:00,370 --> 00:55:02,310 >> Aquesta és la meva gran PowerPoint truc per al dia. 1234 00:55:02,310 --> 00:55:02,809 D'ACORD. 1235 00:55:02,809 --> 00:55:04,760 Així que això és tan bo com es posa. 1236 00:55:04,760 --> 00:55:05,260 D'ACORD. 1237 00:55:05,260 --> 00:55:08,455 Així doncs, aquí un cop més, aquí està la nostra conillet corrent per l'herba. 1238 00:55:08,455 --> 00:55:09,217 >> ALTAVEU 19: Un cop més. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: Un més temps, d'acord. 1240 00:55:11,050 --> 00:55:11,940 Aquí està la seva conillet. 1241 00:55:11,940 --> 00:55:12,940 D'ACORD. 1242 00:55:12,940 --> 00:55:15,470 >> Així que avui el que anem de fer és que anem 1243 00:55:15,470 --> 00:55:21,110 per intentar automatitzar el procés de de produir aquestes cèl·lules. 1244 00:55:21,110 --> 00:55:24,135 No bastant arribar al punt de ser capaç de posar a tots plegats. 1245 00:55:24,135 --> 00:55:28,900 Però, anem a tractar d'automatitzar el procés de generació d'aquesta seqüència. 1246 00:55:28,900 --> 00:55:32,900 >> I això és molt del que animació d'avui és com. 1247 00:55:32,900 --> 00:55:36,690 És a dir, vostè no fa les coses necessàriament dibuixant tot a mà. 1248 00:55:36,690 --> 00:55:40,610 Nosaltres fem servir un ordinador per automatitzar parts d'aquest procés. 1249 00:55:40,610 --> 00:55:41,110 D'ACORD. 1250 00:55:41,110 --> 00:55:47,720 >> Així que permetin-me commutar ara al nostre IDE CS50. 1251 00:55:47,720 --> 00:55:54,260 I he creat per nosaltres-- i deixar Em zoom en una miqueta bit-- tinc 1252 00:55:54,260 --> 00:55:58,420 creat per a nosaltres un punt de partida. 1253 00:55:58,420 --> 00:56:03,830 >> Cada vegada que els demanem que seure i escriure una peça de codi, 1254 00:56:03,830 --> 00:56:09,250 el que realment estem demanant que facis és que estem demanant per resoldre un problema. 1255 00:56:09,250 --> 00:56:11,810 I la forma en què vostè ha de pensar en fer que 1256 00:56:11,810 --> 00:56:17,900 és començant amb alguns simple part d'aquesta solució. 1257 00:56:17,900 --> 00:56:21,730 I després construir a partir d'aquesta part. 1258 00:56:21,730 --> 00:56:23,400 I això és el que farem avui. 1259 00:56:23,400 --> 00:56:27,570 >> Així que en lloc de tractar alhora que escriure tot el paquet de programes que és 1260 00:56:27,570 --> 00:56:30,770 produirà els 10 cèl·lules d'animació, 1261 00:56:30,770 --> 00:56:35,506 començarem lloc amb una peça que funciona. 1262 00:56:35,506 --> 00:56:37,380 I després construirem un poc al voltant d'aquest 1263 00:56:37,380 --> 00:56:39,740 i una mica més i una mica més. 1264 00:56:39,740 --> 00:56:42,550 >> Ara el bo de solució dels problemes d'aquesta manera 1265 00:56:42,550 --> 00:56:46,716 és que li permetrà començar sempre amb alguna cosa que vostè sap 1266 00:56:46,716 --> 00:56:51,130 obres i introduir un canvi gradual. 1267 00:56:51,130 --> 00:56:54,090 I això és una gran manera per aprendre a codificar, 1268 00:56:54,090 --> 00:56:58,590 ja que cada vegada que realitzi una canvi, ens veiem l'impacte que té. 1269 00:56:58,590 --> 00:56:59,540 D'ACORD. 1270 00:56:59,540 --> 00:57:01,450 >> Així que aquí està el nostre punt de partida. 1271 00:57:01,450 --> 00:57:01,950 D'ACORD. 1272 00:57:01,950 --> 00:57:08,030 Així que al principi del meu arxiu, Tinc stdio.h #include hash. 1273 00:57:08,030 --> 00:57:12,560 Això és el que puc aconseguir l' printf () per treballar. 1274 00:57:12,560 --> 00:57:15,240 >> Llavors tinc la meva funció principal. 1275 00:57:15,240 --> 00:57:18,760 I això encara es veu una mica arcana o fosc per a alguns de vosaltres. 1276 00:57:18,760 --> 00:57:20,010 Està bé. 1277 00:57:20,010 --> 00:57:23,190 L'únic que diu és que la funció principal presa 1278 00:57:23,190 --> 00:57:27,830 mitjans sense arguments-- void res en C. I 1279 00:57:27,830 --> 00:57:29,940 torna per convenció un enter. 1280 00:57:29,940 --> 00:57:33,290 Principal sempre retorna un enter, en general un codi dient coses 1281 00:57:33,290 --> 00:57:35,071 ha anat bé o no va ser així. 1282 00:57:35,071 --> 00:57:35,570 D'ACORD. 1283 00:57:35,570 --> 00:57:39,110 Però principal té que haver de formar per a nosaltres en aquest moment. 1284 00:57:39,110 --> 00:57:42,080 >> Llavors m'he posat en tres línies de codi. 1285 00:57:42,080 --> 00:57:46,760 I al costat de cada línia de codi, he posat un comentari. 1286 00:57:46,760 --> 00:57:51,340 Ara una de les coses que anem a insistir que ho fa, 1287 00:57:51,340 --> 00:57:55,320 i és com un important pràctica de programació, 1288 00:57:55,320 --> 00:57:57,800 és per comentar sempre el seu codi. 1289 00:57:57,800 --> 00:58:02,550 Sempre anoti en un Anglès comentari alguna cosa 1290 00:58:02,550 --> 00:58:06,740 que creu que la Se suposa codi per fer-ho. 1291 00:58:06,740 --> 00:58:11,360 D'aquesta manera, més endavant, quan tornes a ell, vostè pot veure-ho i es pot dir, 1292 00:58:11,360 --> 00:58:13,800 oh, em recordo del que era tractant de fer amb això. 1293 00:58:13,800 --> 00:58:17,590 O quan un TA es senti amb vostè per tractar d'ajudar en hores d'oficina, 1294 00:58:17,590 --> 00:58:20,890 poden veure això i se'n van, jo veure el que estava tractant de fer, 1295 00:58:20,890 --> 00:58:25,630 però en lloc d'això és el que realment està succeint. 1296 00:58:25,630 --> 00:58:26,130 D'ACORD. 1297 00:58:26,130 --> 00:58:30,300 >> Així que tinc tres parts en el meu codi, Vaig a primer lloc d'impressió 1298 00:58:30,300 --> 00:58:33,110 alguns punts en l'inici. 1299 00:58:33,110 --> 00:58:37,480 Llavors vaig a imprimir el meu conillet molt elegant. 1300 00:58:37,480 --> 00:58:40,600 I a continuació, alguns poc de punts al final. 1301 00:58:40,600 --> 00:58:45,220 >> I aquestes tres sentències print ha familiar a vostè en aquest moment. 1302 00:58:45,220 --> 00:58:47,350 Tot el que estic fent a la cada un d'ells és que sóc 1303 00:58:47,350 --> 00:58:49,780 imprimir una seqüència de caràcters. 1304 00:58:49,780 --> 00:58:51,370 No hi ha variables que hi intervenen. 1305 00:58:51,370 --> 00:58:54,320 Tot és simplement. 1306 00:58:54,320 --> 00:58:55,270 D'ACORD. 1307 00:58:55,270 --> 00:59:07,340 >> Així que si vaig per ara al meu terminal-- anem a veure si puc aconseguir aquesta volta fora-- 1308 00:59:07,340 --> 00:59:09,370 i jo vaig a escriure clara de nou. 1309 00:59:09,370 --> 00:59:12,507 >> ALTAVEU 20: Fem servir el doble barra comentar? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: Pot utilitzar el sí double--. 1311 00:59:14,340 --> 00:59:16,920 Hi ha múltiples formes de deixar comentaris en C. Un 1312 00:59:16,920 --> 00:59:19,440 forma és utilitzar la doble barra. 1313 00:59:19,440 --> 00:59:24,910 L'altra és utilitzar una barra i una estrella i després tancar amb una estrella i una barra. 1314 00:59:24,910 --> 00:59:26,110 Tot bé. 1315 00:59:26,110 --> 00:59:28,950 >> En primer lloc, vaig a començar a navegar per aquí. 1316 00:59:28,950 --> 00:59:35,350 Així que si em vaig al meu directori personal, He canviat directoris allà, 1317 00:59:35,350 --> 00:59:40,230 Vaig a mirar i veure el que hi ha en aquest directori, ls, llistar a terme. 1318 00:59:40,230 --> 00:59:43,230 Vaig a veure que tinc té dos subdirectoris. 1319 00:59:43,230 --> 00:59:47,910 Anem a fer d'aquest una mica més gran aquí perquè tots puguem veure-ho. 1320 00:59:47,910 --> 00:59:50,610 >> Veig que tinc té dos subdirectoris. 1321 00:59:50,610 --> 00:59:53,510 Vaig a canviar de directori per entrar en àrea de treball. 1322 00:59:53,510 --> 00:59:58,380 I jo vaig a escriure només per part d'ella, i després premeu Tab. 1323 00:59:58,380 --> 01:00:01,520 I que va completar la resta per a mi. 1324 01:00:01,520 --> 01:00:03,370 Fancy. 1325 01:00:03,370 --> 01:00:04,960 >> Vaig a mirar i veig en àrea de treball. 1326 01:00:04,960 --> 01:00:08,431 I ara mateix, estic treballant en la supersección 1327 01:00:08,431 --> 01:00:09,680 que estem ensenyant ara. 1328 01:00:09,680 --> 01:00:10,971 Així que vaig a entrar en aquest directori. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 I, finalment, mirar i veure. 1331 01:00:15,970 --> 01:00:18,480 I tinc aquest arxiu bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Està bé així que em deixa clar una vegada més. 1333 01:00:20,980 --> 01:00:24,370 I jo vaig a ara-- nou Estic encara romanent en aquest directori 1334 01:00:24,370 --> 01:00:27,540 i em diu que estic en aquest directori supersección. 1335 01:00:27,540 --> 01:00:30,690 Vaig a seguir endavant i fer la meva conillet programa. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 I aquest comando, feu conillet, mentre que sona una mica estrany, 1338 01:00:38,810 --> 01:00:42,960 També invoca el compilador so metàl·lic. 1339 01:00:42,960 --> 01:00:46,470 >> I ha produït per em una sortida que és 1340 01:00:46,470 --> 01:00:52,130 1 funny-- un executable arxiu executable anomenat conillet. 1341 01:00:52,130 --> 01:00:52,700 D'ACORD. 1342 01:00:52,700 --> 01:00:56,700 Puc llavors, i això sona pitjor encara, executar conillet. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 D'ACORD. 1345 01:01:00,680 --> 01:01:03,150 I anem a veure el que fa. 1346 01:01:03,150 --> 01:01:04,527 D'ACORD. 1347 01:01:04,527 --> 01:01:06,360 Això és una mica de el que m'esperava. 1348 01:01:06,360 --> 01:01:11,290 Tinc la meva imatge del conillet d'aquí, però jo com que volia tot per si mateix. 1349 01:01:11,290 --> 01:01:13,186 Què m'he perdut? 1350 01:01:13,186 --> 01:01:14,478 >> ALTAVEU 21: Raya vertical l ó slash. 1351 01:01:14,478 --> 01:01:15,602 BRIAN Scassellati: N Slash. 1352 01:01:15,602 --> 01:01:16,580 D'ACORD. 1353 01:01:16,580 --> 01:01:18,800 Així que anem a tornar aquí. 1354 01:01:18,800 --> 01:01:20,330 I vaig a sortir d'això. 1355 01:01:20,330 --> 01:01:23,320 I vaig a anar de nou a aquest. 1356 01:01:23,320 --> 01:01:27,720 I anem a fer una ullada ara des del meu funció principal aquí. 1357 01:01:27,720 --> 01:01:29,280 >> Llavors, què he de fer? 1358 01:01:29,280 --> 01:01:30,465 Vull acabar la línia. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Així que vaig a posar en un comentari. 1361 01:01:35,800 --> 01:01:38,430 Vaig a posar en un printf (). 1362 01:01:38,430 --> 01:01:41,350 I què és el que he de posar? 1363 01:01:41,350 --> 01:01:41,890 / N. 1364 01:01:41,890 --> 01:01:43,480 D'ACORD. 1365 01:01:43,480 --> 01:01:46,040 Què he de acabar amb? 1366 01:01:46,040 --> 01:01:47,100 Punt i coma. 1367 01:01:47,100 --> 01:01:48,730 Tot bé. 1368 01:01:48,730 --> 01:01:52,880 >> Ara, un dels de veritat coses importants és assegurar- 1369 01:01:52,880 --> 01:01:56,720 cada vegada que faci un canvi en el codi, que el guardi. 1370 01:01:56,720 --> 01:02:01,380 Si no ha guardat el codi, que ets va notar una petita estrella allà dalt. 1371 01:02:01,380 --> 01:02:03,420 I aquesta estrella que diu no han estalviat aquest codi. 1372 01:02:03,420 --> 01:02:07,790 >> Si compilar ara mateix, no és va reflectir qualsevol d'aquests canvis, 1373 01:02:07,790 --> 01:02:11,680 perquè el compilador analitza l'arxiu això és en el disc, no l'arxiu que és 1374 01:02:11,680 --> 01:02:13,790 obrirà en el seu editor. 1375 01:02:13,790 --> 01:02:14,290 Tot bé. 1376 01:02:14,290 --> 01:02:20,830 >> Així que anem a guardar i després anirem just aquí baix, tornar a sortir. 1377 01:02:20,830 --> 01:02:24,670 Vine al meu terminal. 1378 01:02:24,670 --> 01:02:27,193 I anem a aclarir l'espai de nou. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> I podem seguir endavant i una més temps a que el nostre programa de conillet. 1381 01:02:35,760 --> 01:02:40,180 I executar el conillet. 1382 01:02:40,180 --> 01:02:42,500 Això no va funcionar tampoc. 1383 01:02:42,500 --> 01:02:43,950 Slash incorrecte. 1384 01:02:43,950 --> 01:02:52,280 Així que si ens fixem en el que tinc, em poso un / N en allà, però vaig tenir la barra malament. 1385 01:02:52,280 --> 01:02:56,190 >> Tot el que l'equip fa és molt explícit. 1386 01:02:56,190 --> 01:02:57,230 D'ACORD? 1387 01:02:57,230 --> 01:03:01,250 Un petit error de puntuació, i de sobte vostè no aconsegueix el que vol. 1388 01:03:01,250 --> 01:03:01,750 Tot bé. 1389 01:03:01,750 --> 01:03:03,740 Així que anem a apropar a sortir de nou. 1390 01:03:03,740 --> 01:03:04,410 Tornarem. 1391 01:03:04,410 --> 01:03:07,930 Bé fer que la reparació molt ràpid. 1392 01:03:07,930 --> 01:03:09,270 Anem a posar la barra dreta. 1393 01:03:09,270 --> 01:03:10,570 Anem a salvar-la. 1394 01:03:10,570 --> 01:03:13,410 Tindrem amplia la imatge. 1395 01:03:13,410 --> 01:03:16,730 >> Per alguna raó, això no és ser feliç, però seguirem endavant 1396 01:03:16,730 --> 01:03:19,850 i anem a tornar a la terminal d'aquí. 1397 01:03:19,850 --> 01:03:22,940 Aclarir-ho. 1398 01:03:22,940 --> 01:03:24,880 Ens acostem. 1399 01:03:24,880 --> 01:03:28,410 I un cop més, farem conillet. 1400 01:03:28,410 --> 01:03:32,360 I ara, efectivament, funciona. 1401 01:03:32,360 --> 01:03:33,240 Hooray. 1402 01:03:33,240 --> 01:03:34,300 D'ACORD. 1403 01:03:34,300 --> 01:03:39,580 >> Així que anem a tractar de fer d'aquest una mica més general. 1404 01:03:39,580 --> 01:03:46,750 Anem a veure si en comptes de només imprimir un fotograma concret, 1405 01:03:46,750 --> 01:03:49,610 anem a veure si podem fer que aquesta perquè puguem obtenir tots 10 1406 01:03:49,610 --> 01:03:52,960 d'aquests marcs animats que volíem tenir. 1407 01:03:52,960 --> 01:03:56,550 Així que de nou, anem a prendre un pas a la vegada. 1408 01:03:56,550 --> 01:03:59,900 >> Primer anem a generalitzar, no pel que faig tots els marcs, 1409 01:03:59,900 --> 01:04:03,990 però també ho faig qualsevol marc que pot ser que vulgui. 1410 01:04:03,990 --> 01:04:05,920 Llavors, ¿quina és la diferència entre els marcs? 1411 01:04:05,920 --> 01:04:07,377 És el conill de la mateixa? 1412 01:04:07,377 --> 01:04:07,960 AUDIÈNCIA: Sí. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Sí. 1414 01:04:08,390 --> 01:04:09,370 Quina és la diferència? 1415 01:04:09,370 --> 01:04:10,246 >> AUDIÈNCIA: Posició. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: La seva posició, no? 1417 01:04:11,870 --> 01:04:15,590 I Com puc controlar la seva posició? 1418 01:04:15,590 --> 01:04:17,340 Quants punts estic posant al principi 1419 01:04:17,340 --> 01:04:19,048 i el nombre de punts que sóc posant al final. 1420 01:04:19,048 --> 01:04:21,970 Així que vaig tenir cinc en el principi i al final de cinc. 1421 01:04:21,970 --> 01:04:28,320 >> Anem a substituir a la cinc amb un bucle for. 1422 01:04:28,320 --> 01:04:29,380 D'ACORD. 1423 01:04:29,380 --> 01:04:32,330 I jo vaig a crear una per a llaç, ara que dirà, 1424 01:04:32,330 --> 01:04:37,800 Vaig a imprimir un nombre de punts al principi. 1425 01:04:37,800 --> 01:04:39,600 Vaig a utilitzar una variable. 1426 01:04:39,600 --> 01:04:44,150 Diguem, què tal i com el comptador en el meu llaç. 1427 01:04:44,150 --> 01:04:47,200 I jo vaig a declarar sobre de la tapa. 1428 01:04:47,200 --> 01:04:49,360 >> I després, en el bucle for He de fer tres coses. 1429 01:04:49,360 --> 01:04:52,340 El primer que he de fer és el que necessito per inicialitzar i. 1430 01:04:52,340 --> 01:04:56,570 Què he de inicialitzar que comenci a ser? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 D'ACORD. 1433 01:04:58,310 --> 01:05:00,950 >> Llavors he de dir, el que és la condició de terminació? 1434 01:05:00,950 --> 01:05:03,020 Quan he parar? 1435 01:05:03,020 --> 01:05:05,983 Bé quants punts té vostè que voleu imprimir en aquest cas? 1436 01:05:05,983 --> 01:05:06,921 >> AUDIÈNCIA: Cinc. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Cinc de nou? 1438 01:05:08,170 --> 01:05:10,650 Què tal farem alguna cosa diferent, vam fer 5. 1439 01:05:10,650 --> 01:05:12,584 Anem a mostrar que és diferent. 1440 01:05:12,584 --> 01:05:13,250 ALTAVEU 22: Dos. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Dos. 1442 01:05:13,580 --> 01:05:14,080 D'ACORD. 1443 01:05:14,080 --> 01:05:17,760 Així que si vull dos punts, Què he de posar aquí? 1444 01:05:17,760 --> 01:05:19,140 >> AUDIÈNCIA: Tres. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Tres. 1446 01:05:20,530 --> 01:05:21,400 D'ACORD. 1447 01:05:21,400 --> 01:05:24,220 Quantes vegades és que passarà? 1448 01:05:24,220 --> 01:05:28,469 Això passarà per tres vegades, 0, 1 i 2, dreta? 1449 01:05:28,469 --> 01:05:30,010 Molt bé, tornem a dos. 1450 01:05:30,010 --> 01:05:31,570 Ara anem a arribar dos punts. 1451 01:05:31,570 --> 01:05:35,800 ¿I què és el que vull fer cada vegada que vaig pel llaç? 1452 01:05:35,800 --> 01:05:38,657 El que ha de canviar cada vegada que vaig a través de? 1453 01:05:38,657 --> 01:05:39,850 >> ALTAVEU 23: Afegir un punt. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: He de seguir endavant. 1455 01:05:41,020 --> 01:05:41,978 Vaig a afegir un punt. 1456 01:05:41,978 --> 01:05:45,310 Vaig a imprimir un punt, cada vegada que a través del bucle. 1457 01:05:45,310 --> 01:05:49,990 Però com vaig fer el seguiment de com moltes vegades he estat a través del bucle? 1458 01:05:49,990 --> 01:05:53,260 Estic usant i, que variables, aquest comptador. 1459 01:05:53,260 --> 01:05:57,110 >> Així que a través de tot el temps, em vaig per incrementar el comptador en un. 1460 01:05:57,110 --> 01:06:00,670 Ara, això és el mateix per mi com dient i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Està bé. 1462 01:06:01,210 --> 01:06:04,653 Podria fer-ho que-- M'agrada el taquigrafia, així que vaig a dir i ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 D'ACORD. 1465 01:06:08,370 --> 01:06:10,680 >> Anem a fer el mateix aquí baix a la part inferior. 1466 01:06:10,680 --> 01:06:11,846 Només Jo com que vaig fer això. 1467 01:06:11,846 --> 01:06:13,990 Vaig a deixar que vostès fer aquest per complet. 1468 01:06:13,990 --> 01:06:14,260 Tot bé. 1469 01:06:14,260 --> 01:06:15,426 >> Llavors, què he d'escriure aquí? 1470 01:06:15,426 --> 01:06:17,170 Aquí està el meu bucle for. 1471 01:06:17,170 --> 01:06:23,162 Jo vaig a fer un printf () i em vaig per fer-ho de manera que només s'imprimeix un punt 1472 01:06:23,162 --> 01:06:25,740 en aquesta part inferior. 1473 01:06:25,740 --> 01:06:27,740 >> Què he d'escriure dins d'aquest bucle for ara? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Bé, en primer lloc el que variables que hauria d'utilitzar? 1476 01:06:33,948 --> 01:06:35,430 >> ALTAVEU 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: Em vindria bé j. 1478 01:06:36,880 --> 01:06:38,040 Puc utilitzar el mateix? 1479 01:06:38,040 --> 01:06:39,961 Puc utilitzar i de nou? 1480 01:06:39,961 --> 01:06:40,460 Sí. 1481 01:06:40,460 --> 01:06:45,531 Això està bé, perquè el Is que estic fent servir aquí, 1482 01:06:45,531 --> 01:06:47,780 Jo no els necessito de nou quan Em poso a aquest punt. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Llavors, què hauria inicialitzar i per? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 ALTAVEU 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 Què he de comprovar? 1489 01:06:59,400 --> 01:07:02,960 Quants punts necessito ara al final si jo tinc dos punts al principi? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Necessito de vuit al final, així que el que hauria de comprovar, i inferior a: 1492 01:07:09,165 --> 01:07:12,645 >> AUDIÈNCIA: Set, vuit, nou. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Vaig escoltar 07:00. 1494 01:07:14,020 --> 01:07:14,810 Vaig sentir 08:00. 1495 01:07:14,810 --> 01:07:15,970 I vaig sentir nou. 1496 01:07:15,970 --> 01:07:16,470 D'ACORD. 1497 01:07:16,470 --> 01:07:19,540 Així que tots estem en el dret ball-- Jason diu 10. 1498 01:07:19,540 --> 01:07:21,550 D'ACORD. 1499 01:07:21,550 --> 01:07:25,920 >> Si necessitava dos punts per el primer, quants fer 1500 01:07:25,920 --> 01:07:30,170 Jo-- i necessito vuit punts per al última un-- vaig posar dos a dalt, 1501 01:07:30,170 --> 01:07:31,743 ¿Què he de posar sota? 1502 01:07:31,743 --> 01:07:32,570 >> AUDIÈNCIA: Vuit. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Vuit. 1504 01:07:33,611 --> 01:07:35,695 A causa de que va a comptar de zero a set. 1505 01:07:35,695 --> 01:07:38,490 I això és vuit vegades a través del bucle. 1506 01:07:38,490 --> 01:07:38,990 D'ACORD. 1507 01:07:38,990 --> 01:07:41,774 I què és el que he de fer al final? 1508 01:07:41,774 --> 01:07:42,670 >> AUDIÈNCIA: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: i ++. 1510 01:07:44,400 --> 01:07:45,440 Tot bé. 1511 01:07:45,440 --> 01:07:48,260 Així que això està bastant bé. 1512 01:07:48,260 --> 01:07:50,620 Anem a intentar-ho i anem a veure el que fa. 1513 01:07:50,620 --> 01:07:51,450 D'ACORD. 1514 01:07:51,450 --> 01:07:53,770 Així que anem a guardar-lo. 1515 01:07:53,770 --> 01:07:54,940 Niça i estalvis. 1516 01:07:54,940 --> 01:07:56,910 >> Ens acostem a sortir. 1517 01:07:56,910 --> 01:07:58,220 Tractarem aquí a la terminal. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Ens acostem. 1520 01:08:02,970 --> 01:08:05,416 Vaya. 1521 01:08:05,416 --> 01:08:09,990 Ens va a fer, un cop més, fer el nostre programa de conillet. 1522 01:08:09,990 --> 01:08:14,460 I seguir endavant i executar conillet. 1523 01:08:14,460 --> 01:08:15,980 I aquí està. 1524 01:08:15,980 --> 01:08:17,710 >> Així que el nostre conillet. 1525 01:08:17,710 --> 01:08:25,130 Quan té dos punts en l'inici i vuit punts al final. 1526 01:08:25,130 --> 01:08:27,540 Tothom segueix amb mi? 1527 01:08:27,540 --> 01:08:28,770 D'ACORD. 1528 01:08:28,770 --> 01:08:29,580 >> Així que hem construït cap amunt. 1529 01:08:29,580 --> 01:08:33,000 Construïm un sol conillet, un quadre en particular. 1530 01:08:33,000 --> 01:08:36,229 Ara que hem estat capaços de generalitzar que per construir 1531 01:08:36,229 --> 01:08:38,390 més, diferents tipus de marcs. 1532 01:08:38,390 --> 01:08:42,399 >> Ara anem a seguir endavant, i tenen que genera no només un marc, 1533 01:08:42,399 --> 01:08:46,290 però generarem 10 marcs, on a poc a poc 1534 01:08:46,290 --> 01:08:50,569 fan que el conillet es mou tot el camí a través del camp. 1535 01:08:50,569 --> 01:08:51,430 Tot bé. 1536 01:08:51,430 --> 01:08:53,660 >> Tornem. 1537 01:08:53,660 --> 01:08:54,839 I anem a tractar ara. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Llavors, què és el que realment necessito canviar aquí? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 Què he de canviar? 1542 01:09:07,180 --> 01:09:10,638 >> ALTAVEU 26: Primer ha de canviar el nombre màxim de punts 1543 01:09:10,638 --> 01:09:11,626 al principi. 1544 01:09:11,626 --> 01:09:16,850 Perquè si estem fent 10 punts, que necessitarà fins escalar. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Sí. 1546 01:09:17,850 --> 01:09:23,760 Així que ara he de tipus de cablejat fer sempre dos punts al començament 1547 01:09:23,760 --> 01:09:27,890 i sempre fer vuit punts al final. 1548 01:09:27,890 --> 01:09:30,660 >> Vull construir un altre bucle, oi? 1549 01:09:30,660 --> 01:09:33,290 Perquè jo no vull construir una sola imatge del conillet, 1550 01:09:33,290 --> 01:09:37,140 Vull construir 10 fotos de conill. 1551 01:09:37,140 --> 01:09:41,500 Així que necessito per construir un altre bucle, i com vaig a través d'aquest llaç, 1552 01:09:41,500 --> 01:09:44,660 Vull canviar el nombre de punts que s'imprimeixen al principi 1553 01:09:44,660 --> 01:09:50,529 i quants punts puc imprimir al final, basat en quin cicle a través del bucle 1554 01:09:50,529 --> 01:09:52,270 M'hi apunto. 1555 01:09:52,270 --> 01:09:52,770 Tot bé. 1556 01:09:52,770 --> 01:09:54,430 >> Així que anem a un altre comptador. 1557 01:09:54,430 --> 01:09:58,142 Algú va dir abans de j, així que farem una altra j. 1558 01:09:58,142 --> 01:10:00,100 I ara, anem a construir un altre bucle for. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> El que va dins d'aquest bucle? 1561 01:10:06,200 --> 01:10:09,060 Aquest material ha d'anar dins del bucle, oi? 1562 01:10:09,060 --> 01:10:11,190 El conillet té anar dins del bucle? 1563 01:10:11,190 --> 01:10:13,390 Em cal un conillet en cadascun dels 10 quadres? 1564 01:10:13,390 --> 01:10:14,099 >> AUDIÈNCIA: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Sí. 1566 01:10:15,098 --> 01:10:17,250 Vull un conill en cada dels 10 quadres, oi? 1567 01:10:17,250 --> 01:10:20,531 Què hi ha dels punts de Al final, què necessito això? 1568 01:10:20,531 --> 01:10:21,030 D'ACORD. 1569 01:10:21,030 --> 01:10:22,550 >> Així que vaig a sagnar tots ells. 1570 01:10:22,550 --> 01:10:25,110 En destacaré tots això, i vaig a colpejar Tab. 1571 01:10:25,110 --> 01:10:28,590 I això va a empènyer tot una mica, pel que és fàcil per a mi 1572 01:10:28,590 --> 01:10:32,010 a veure el que hi ha al circuit. 1573 01:10:32,010 --> 01:10:33,710 I després vaig a acabar la mateixa. 1574 01:10:33,710 --> 01:10:35,850 Diguem. 1575 01:10:35,850 --> 01:10:36,430 D'ACORD? 1576 01:10:36,430 --> 01:10:39,230 >> Ara, en aquest bucle que Estic building-- crits, 1577 01:10:39,230 --> 01:10:43,810 fer que pel que pot veure- Tinc el meu comptador j. 1578 01:10:43,810 --> 01:10:45,630 Vaig vaig començar a 0. 1579 01:10:45,630 --> 01:10:47,829 Quantes vegades el que vull anar a través d'aquest circuit? 1580 01:10:47,829 --> 01:10:48,620 AUDIÈNCIA: 10 vegades. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 vegades. 1582 01:10:49,786 --> 01:10:51,402 Llavors, quin nombre he de posar aquí? 1583 01:10:51,402 --> 01:10:52,880 >> AUDIÈNCIA: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, algú ha de dir 11, ¿no? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Volia dos punts abans i posar i menys de 2. 1587 01:11:01,585 --> 01:11:03,810 Volia vuit punts, Vaig posar i menys de 8. 1588 01:11:03,810 --> 01:11:06,950 Ara vull anar a través de 10 vegades, així que van posar j inferior a: 1589 01:11:06,950 --> 01:11:07,590 >> AUDIÈNCIA: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Cal anar. 1592 01:11:10,150 --> 01:11:13,360 I què he de fer al final de j? 1593 01:11:13,360 --> 01:11:15,310 ++, Incrementar-lo. 1594 01:11:15,310 --> 01:11:16,230 D'ACORD. 1595 01:11:16,230 --> 01:11:21,500 Ara, aquí hi ha la part difícil, el que és passarà ara si faig això? 1596 01:11:21,500 --> 01:11:24,537 ¿Vaig a imprimir 10 quadres? 1597 01:11:24,537 --> 01:11:26,370 ALTAVEU 27: Crec tots ells van a ser els mateixos. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: Ells tot sigui el mateix, no? 1599 01:11:28,453 --> 01:11:31,750 Com que tots ells estan encara va posar dos punts al principi. 1600 01:11:31,750 --> 01:11:34,162 Però no vull que tots ells tenir dos punts al principi. 1601 01:11:34,162 --> 01:11:35,870 Quants punts fer jo vol al principi? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> AUDIÈNCIA: Canvi. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: I volem que canviï, oi? 1605 01:11:42,840 --> 01:11:46,588 Llavors, què he jo aquí que està canviant cada vegada que el bucle passa per? 1606 01:11:46,588 --> 01:11:48,242 >> AUDIÈNCIA: Nombre de punts, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, el nombre de punts. 1608 01:11:49,950 --> 01:11:54,782 Així que puc canviar això a ser j. 1609 01:11:54,782 --> 01:11:59,190 La primera vegada a través de la llaç, què és això va a ser? 1610 01:11:59,190 --> 01:12:01,700 Què puc configurar j per al principi? 1611 01:12:01,700 --> 01:12:02,420 >> AUDIÈNCIA: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Llavors, quants vegades vaig a fer això? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 La segona vegada a través del bucle, j de serà 1 perquè incrementar-lo. 1615 01:12:11,750 --> 01:12:14,180 Quants punts vaig a imprimir? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 La tercera vegada a través del bucle, quants punts vaig a imprimir? 1618 01:12:19,904 --> 01:12:20,587 >> AUDIÈNCIA: Tres. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j va a ser 3. 1620 01:12:22,170 --> 01:12:24,890 Quants punts vaig a imprimir? 1621 01:12:24,890 --> 01:12:26,817 Oh, ho sento, j Va a ser 2. 1622 01:12:26,817 --> 01:12:28,233 Quants punts vaig a imprimir? 1623 01:12:28,233 --> 01:12:28,980 >> AUDIÈNCIA: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, així que seguiré increment que a mesura que avancem. 1626 01:12:32,460 --> 01:12:33,460 Què hi ha de sota? 1627 01:12:33,460 --> 01:12:34,310 Què passa aquí? 1628 01:12:34,310 --> 01:12:38,080 No vull 8 sempre a l'extrem més? 1629 01:12:38,080 --> 01:12:39,269 >> ALTAVEU 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Vull 10 punts? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Vull que canviï, també. 1633 01:12:44,620 --> 01:12:47,469 Llavors, què vull que canviï? 1634 01:12:47,469 --> 01:12:49,167 >> AUDIÈNCIA: [inaudible]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Bé, si jo tenir cinc punts al principi, 1636 01:12:51,750 --> 01:12:53,293 quants de punt puc arribar al final? 1637 01:12:53,293 --> 01:12:54,020 >> AUDIÈNCIA: Cinc. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Si tinc sis punts al principi, 1639 01:12:55,630 --> 01:12:56,875 quants puc arribar al final? 1640 01:12:56,875 --> 01:12:57,500 AUDIÈNCIA: Quatre. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Si tinc set punts al principi, 1642 01:12:58,950 --> 01:13:00,204 quants puc arribar al final? 1643 01:13:00,204 --> 01:13:00,870 AUDIÈNCIA: Tres. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Si tinc j aconseguit punts en el començament, 1645 01:13:03,161 --> 01:13:04,790 quants puc arribar al final? 1646 01:13:04,790 --> 01:13:07,520 10-j. 1647 01:13:07,520 --> 01:13:08,650 D'ACORD. 1648 01:13:08,650 --> 01:13:10,390 Així que anem a tractar d'això. 1649 01:13:10,390 --> 01:13:13,180 >> Així que em vaig a salvar el nostre programa de conillet. 1650 01:13:13,180 --> 01:13:16,270 Un cop més anem a allunyar. 1651 01:13:16,270 --> 01:13:19,090 Anirem al nostre terminal. 1652 01:13:19,090 --> 01:13:20,180 Anem a aclarir-ho. 1653 01:13:20,180 --> 01:13:23,410 I fer un zoom. 1654 01:13:23,410 --> 01:13:26,410 Farem el nostre programa conillet, nou. 1655 01:13:26,410 --> 01:13:27,690 I anem a executar-lo. 1656 01:13:27,690 --> 01:13:30,462 1657 01:13:30,462 --> 01:13:32,090 UH oh. 1658 01:13:32,090 --> 01:13:34,580 >> Espera, anem a allunyar. 1659 01:13:34,580 --> 01:13:36,860 ¿Vaig obtenir 10 quadres? 1660 01:13:36,860 --> 01:13:38,970 Bé, quants conillets què veig allà dalt? 1661 01:13:38,970 --> 01:13:43,330 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 1662 01:13:43,330 --> 01:13:44,820 Tinc 10 fotogrames. 1663 01:13:44,820 --> 01:13:46,375 Són tots iguals? 1664 01:13:46,375 --> 01:13:47,000 AUDIÈNCIA: Sí. 1665 01:13:47,000 --> 01:13:48,740 No. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: No. 1667 01:13:50,000 --> 01:13:55,050 Aquesta primera, la conillet està lluny de l'esquerra. 1668 01:13:55,050 --> 01:13:57,541 I aquí, el conill és el moment en el 1669 01:13:57,541 --> 01:13:58,290 ALTAVEU 29: Dret. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Així, el que em vaig oblidar de fer? 1671 01:14:00,502 --> 01:14:01,750 ALTAVEU 30: Iniciar una nova línia. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: He oblidat per iniciar una nova línia, de nou. 1673 01:14:04,041 --> 01:14:05,270 El mateix error que vaig fer abans. 1674 01:14:05,270 --> 01:14:07,120 Molt bé, arreglarem això. 1675 01:14:07,120 --> 01:14:11,690 Ara, encara tinc el codi allà per fer una nova línia. 1676 01:14:11,690 --> 01:14:13,899 Per què no funciona? 1677 01:14:13,899 --> 01:14:15,440 ALTAVEU 31: No és dins del bucle. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Oh, no és dins del bucle. 1679 01:14:17,710 --> 01:14:18,520 Això és correcte. 1680 01:14:18,520 --> 01:14:20,150 Està assegut fora d'aquí. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 I el bucle for és tot això és dins d'aquest text. 1683 01:14:29,050 --> 01:14:35,500 >> Així que em vaig a moure això dins del bucle for. 1684 01:14:35,500 --> 01:14:39,410 I vaig a Tab davant mostren que està en el lloc correcte. 1685 01:14:39,410 --> 01:14:42,020 I ara, anem a guardar de nou. 1686 01:14:42,020 --> 01:14:44,350 Anem a allunyar. 1687 01:14:44,350 --> 01:14:45,770 Canviarem al nostre terminal. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Ampliar. 1690 01:14:50,360 --> 01:14:54,050 Anem a refer el nostre programa de conillet. 1691 01:14:54,050 --> 01:14:59,070 I ara, ara tenim els nostres 10 fotogrames. 1692 01:14:59,070 --> 01:15:00,190 >> [Aplaudiments] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: OK. 1694 01:15:02,120 --> 01:15:04,080 So. 1695 01:15:04,080 --> 01:15:08,370 Aquí està la nostra niat per als bucles. 1696 01:15:08,370 --> 01:15:13,140 Hem estat capaços de generar en el bucle intern quants punts que volia 1697 01:15:13,140 --> 01:15:15,320 imprimir al començament, al final. 1698 01:15:15,320 --> 01:15:21,570 I el bucle exterior controlat el nombre de fotogrames que estava construint. 1699 01:15:21,570 --> 01:15:26,340 Comencem amb un petit nucli del problema, 1700 01:15:26,340 --> 01:15:30,320 i construïm a partir d'aquest punt. 1701 01:15:30,320 --> 01:15:30,820 Tot bé. 1702 01:15:30,820 --> 01:15:33,500 >> Anem a fer un pas més. 1703 01:15:33,500 --> 01:15:35,040 Estàs preparat? 1704 01:15:35,040 --> 01:15:38,800 Hi ha una cosa aquí on hem realitat una mica vam aconseguir 1705 01:15:38,800 --> 01:15:42,180 major complexitat del que necessitem. 1706 01:15:42,180 --> 01:15:44,700 Anem a fer una ullada. 1707 01:15:44,700 --> 01:15:52,050 Així que en el nostre programa d'conillet, si Allunyar aquí, 1708 01:15:52,050 --> 01:15:54,980 De fet, em faig part de la mateixa cosa una i altra vegada. 1709 01:15:54,980 --> 01:15:59,032 Què he de fer això és una mena de el mateix repeteix dues vegades? 1710 01:15:59,032 --> 01:16:00,310 >> ALTAVEU 32: Imprimir els punts. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Sí Imprimeixo aquests punts dues vegades. 1712 01:16:03,526 --> 01:16:05,710 En realitat, jo hauria de tenir aquest comentari aquí. 1713 01:16:05,710 --> 01:16:09,037 Imprimeixo alguns punts en el començant, fins aquí. 1714 01:16:09,037 --> 01:16:10,620 I després imprimeixo alguns punts al final. 1715 01:16:10,620 --> 01:16:14,694 I ho faig tipus d'exactament la mateixa cosa. 1716 01:16:14,694 --> 01:16:17,110 El que anem a començar treballant en les pròximes setmanes 1717 01:16:17,110 --> 01:16:23,440 és ser capaç de prendre aquests blocs de codi que usem una vegada i una altra, 1718 01:16:23,440 --> 01:16:25,800 i mitjançant un procés anomenada abstracció, 1719 01:16:25,800 --> 01:16:31,100 anem a treure'ls i escriure una vegada perquè puguem llavors 1720 01:16:31,100 --> 01:16:35,130 reutilitzar una i altra vegada. 1721 01:16:35,130 --> 01:16:37,210 Així que intentarem això. 1722 01:16:37,210 --> 01:16:38,220 A punt? 1723 01:16:38,220 --> 01:16:42,200 >> Anem a prendre aquest bloc de codi. 1724 01:16:42,200 --> 01:16:45,280 I jo vaig a treure'l d'allà. 1725 01:16:45,280 --> 01:16:50,530 I jo vaig a define-- cap avall a la part inferior, 1726 01:16:50,530 --> 01:16:53,130 Vaig a escriure una nova funció. 1727 01:16:53,130 --> 01:16:54,750 No va tornar res. 1728 01:16:54,750 --> 01:16:58,550 I jo vaig a dir-printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Es va a prendre 1 argument, un enter que 1730 01:17:01,530 --> 01:17:04,920 diu howManyDots he d'imprimir. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 I ara en lloc d'imprimir j punts, vaig a imprimir dir-li howManyDots he d'imprimir. 1733 01:17:17,720 --> 01:17:21,581 >> I hi ha un petit problema aquí. 1734 01:17:21,581 --> 01:17:22,580 Algú sap el que és? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 Què he que apareix a la llista aquí això no està definit? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> AUDIÈNCIA: [inaudible] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Bé, com molts punts es defineix fins 1740 01:17:37,465 --> 01:17:40,584 aquí, però estic fent servir aquesta variable i. 1741 01:17:40,584 --> 01:17:43,750 Així que em vaig a prendre aquesta variable i i jo vaig a definir-la en aquí 1742 01:17:43,750 --> 01:17:44,610 al seu lloc. 1743 01:17:44,610 --> 01:17:49,683 >> Així que ara que va a estancia-- perdó, va aconseguir el bloqueig de majúscules en somehow-- estic 1744 01:17:49,683 --> 01:17:52,060 seguirà i en aquí. 1745 01:17:52,060 --> 01:17:57,050 >> Així que ara aquí està la meva petita funció o sub-rutina, i diu, 1746 01:17:57,050 --> 01:18:00,640 quants punts vaig a imprimir? 1747 01:18:00,640 --> 01:18:05,300 I que va a anar a través d'aquest llaç i imprimir una i altra vegada. 1748 01:18:05,300 --> 01:18:10,940 >> Llavors puc modificar el meu programa aquí. 1749 01:18:10,940 --> 01:18:12,540 I ¿què em dic aquesta funció? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Així que vaig a trucar printDots. 1752 01:18:17,060 --> 01:18:21,530 Quants punts és el que vull per imprimir primera vegada davant el conill? 1753 01:18:21,530 --> 01:18:22,030 AUDIÈNCIA: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 Quants punts és el que vull per imprimir al final, després que el conill? 1756 01:18:27,110 --> 01:18:30,610 1757 01:18:30,610 --> 01:18:31,110 10-j. 1758 01:18:31,110 --> 01:18:35,020 1759 01:18:35,020 --> 01:18:38,010 >> I hi ha una cosa que em falta. 1760 01:18:38,010 --> 01:18:43,740 Com es va veure en la conferència d'avui, anem a declarar printDots 1761 01:18:43,740 --> 01:18:52,430 fins abans per donar el prototip. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 D'ACORD. 1764 01:18:58,220 --> 01:19:03,530 >> Així que el que he fet és que he intentat aïllar aquesta part de codi reutilitzat 1765 01:19:03,530 --> 01:19:06,430 que he fet una i altra vegada. 1766 01:19:06,430 --> 01:19:11,120 I he tractat de treure-ho de manera que tot això està contingut en un sol lloc. 1767 01:19:11,120 --> 01:19:16,810 D'aquesta manera, si tinc un error en algun lloc, Només he de arreglar en un sol lloc. 1768 01:19:16,810 --> 01:19:17,310 Tot bé. 1769 01:19:17,310 --> 01:19:18,470 >> Així que anem a guardar-lo. 1770 01:19:18,470 --> 01:19:20,950 I anem a fer de que funciona. 1771 01:19:20,950 --> 01:19:22,050 Així que ens en sortirem. 1772 01:19:22,050 --> 01:19:25,200 Anem a anar de nou a la nostra terminal. 1773 01:19:25,200 --> 01:19:27,960 Ens acostem. 1774 01:19:27,960 --> 01:19:31,010 Anem a fer aquest procés conillet. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 I m'ha donat una advertència. 1777 01:19:34,800 --> 01:19:37,070 Què és el que em diu? 1778 01:19:37,070 --> 01:19:39,870 Bé en qualsevol d'aquestes vegades, sempre volen 1779 01:19:39,870 --> 01:19:44,170 per desplaçar-se fins al primer error-- Ara en aquest cas, només tinc un. 1780 01:19:44,170 --> 01:19:52,700 >> Em diu en bunny.c, en la línia 8, la columna 9, hi ha un problema. 1781 01:19:52,700 --> 01:19:58,650 Es diu, que ha declarat aquest i variable i vostè no l'ha fet servir. 1782 01:19:58,650 --> 01:20:02,230 >> Ara, normalment, això és no és el pitjor error. 1783 01:20:02,230 --> 01:20:04,300 Aquesta és una tasca fàcil d'arreglar. 1784 01:20:04,300 --> 01:20:07,550 I de fet, podem tornar enrere en el. 1785 01:20:07,550 --> 01:20:09,910 Podem tornar a Bunny. 1786 01:20:09,910 --> 01:20:13,010 I en aquest cas, tot el que han de fer és desfer-se de I, 1787 01:20:13,010 --> 01:20:16,630 perquè no estem fent servir i dins de principal més. 1788 01:20:16,630 --> 01:20:19,860 Estem usant-ho dins la nostra sub-rutina. 1789 01:20:19,860 --> 01:20:22,777 >> Així que anem a guardar això. 1790 01:20:22,777 --> 01:20:23,360 Tornarem. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 I fer un zoom. 1793 01:20:28,630 --> 01:20:30,700 Anem un cop més fem conillet. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 I allà estan els nostres 10 fotogrames. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 D'ACORD. 1798 01:20:41,360 --> 01:20:43,190 >> Cada vegada que li donin 1 procedure-- Sí. 1799 01:20:43,190 --> 01:20:44,690 ALTAVEU 33: Tinc una-- Estic confós. 1800 01:20:44,690 --> 01:20:45,892 ¿Es pot tornar al codi? 1801 01:20:45,892 --> 01:20:46,850 BRIAN Scassellati: Sí. 1802 01:20:46,850 --> 01:20:50,730 1803 01:20:50,730 --> 01:20:54,367 >> ALTAVEU 33: Així que, quan vas escriure el seu prototip, l'argument que 1804 01:20:54,367 --> 01:20:56,550 si hagués anomenat va ser cridat howMany? 1805 01:20:56,550 --> 01:20:57,540 Però, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Ah, sí. 1807 01:20:57,640 --> 01:20:59,140 >> ALTAVEU 33: elles --denominat alguna cosa diferent, jo no ho entenc. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: Per què són diferents. 1809 01:21:00,240 --> 01:21:01,780 Així que aquesta és una gran pregunta. 1810 01:21:01,780 --> 01:21:08,250 Per tant el dubte era, fins aquí, vaig escriure howMany, 1811 01:21:08,250 --> 01:21:12,380 i avall, vaig escriure howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> La raó és que en el seu prototip, en realitat no està prestant atenció 1813 01:21:15,590 --> 01:21:17,090 als noms que vostè està posant en. 1814 01:21:17,090 --> 01:21:20,530 Tot el que realment li importa és que és un enter. 1815 01:21:20,530 --> 01:21:23,080 Es vol saber la forma del que vostè està posant en. 1816 01:21:23,080 --> 01:21:31,560 >> Ara stylistically-- oops-- el que hauria No, és que m'agrada fer aquests partit. 1817 01:21:31,560 --> 01:21:33,150 D'ACORD. 1818 01:21:33,150 --> 01:21:36,430 A causa de que serà mantenir- més fàcil per a mi recordar. 1819 01:21:36,430 --> 01:21:38,390 Però això va ser el meu error Sí. 1820 01:21:38,390 --> 01:21:47,620 >> ALTAVEU 34: I així per al prototip funcioni, simplement 1821 01:21:47,620 --> 01:21:50,510 escrivint aquesta línia, escriure el prototip, 1822 01:21:50,510 --> 01:21:53,932 permet que la funció que ve just a sota d'ell per anar a la final 1823 01:21:53,932 --> 01:21:55,140 i recuperar el que això significa? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: El que significa és quan el compilador passa per, 1825 01:21:58,480 --> 01:22:01,930 que va des de la part superior de el codi per a la part inferior. 1826 01:22:01,930 --> 01:22:05,430 I el que aquest prototip és, és que és bàsicament una promesa. 1827 01:22:05,430 --> 01:22:09,570 >> Diu que serà una funció definida en algun lloc. 1828 01:22:09,570 --> 01:22:11,880 Va a ser cridats printDots. 1829 01:22:11,880 --> 01:22:15,110 I va a prendre un argument això va a ser un nombre enter 1830 01:22:15,110 --> 01:22:18,590 i que va a tornar res, nul·la tipus. 1831 01:22:18,590 --> 01:22:19,310 D'ACORD. 1832 01:22:19,310 --> 01:22:22,950 Els prometo que serà definit algun lloc del camí. 1833 01:22:22,950 --> 01:22:25,590 Però cada vegada que veure que, a mesura que avança cap avall 1834 01:22:25,590 --> 01:22:28,710 per la resta de la meva funció principal, que vull 1835 01:22:28,710 --> 01:22:33,800 que tractis de que en funció que pren una entrada sencer. 1836 01:22:33,800 --> 01:22:37,970 >> I així, quan el compilador cau a través d'aquest, es veu aquesta promesa. 1837 01:22:37,970 --> 01:22:40,220 I quan es posa a sota, segueix endavant, segueix endavant, 1838 01:22:40,220 --> 01:22:43,060 que troba la primera vegada s'esmenta printDots. 1839 01:22:43,060 --> 01:22:46,910 I diu, Oh, vostè està donant mi aquest j. j és un nombre sencer. 1840 01:22:46,910 --> 01:22:49,570 >> Bé em va prometre que faria ser un enter i això és correcte. 1841 01:22:49,570 --> 01:22:51,370 Està bé. 1842 01:22:51,370 --> 01:22:53,880 I, finalment, cap avall a la part inferior, 1843 01:22:53,880 --> 01:22:58,340 abans d'arribar a la final del meu arxiu, faig la meva promesa 1844 01:22:58,340 --> 01:22:59,896 i jo ho defineixo. 1845 01:22:59,896 --> 01:23:01,868 D'ACORD? 1846 01:23:01,868 --> 01:23:06,320 >> ALTAVEU 35: Per tant, la saves-- programa guardarà els espais en blanc 1847 01:23:06,320 --> 01:23:09,570 que va i plena al final? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: No és sobre l'assignació de memòria. 1849 01:23:12,140 --> 01:23:16,800 En realitat és només del Tipus estàs esperant veure. 1850 01:23:16,800 --> 01:23:19,340 En cas que aquesta cosa en té un argument, o cinc arguments? 1851 01:23:19,340 --> 01:23:23,590 En cas d'haver de ser nombres enters que se li dóna, o cadenes? 1852 01:23:23,590 --> 01:23:25,780 Això és tot el que està buscant de fer és comprovar, 1853 01:23:25,780 --> 01:23:29,303 m'estàs donant la tipus d'argument. 1854 01:23:29,303 --> 01:23:31,560 D'ACORD? 1855 01:23:31,560 --> 01:23:32,300 Tot bé. 1856 01:23:32,300 --> 01:23:38,570 >> Déjame que et deixo amb una mica per mirar. 1857 01:23:38,570 --> 01:23:44,850 Art ASCII no és el gran model de l'animació com ho és avui. 1858 01:23:44,850 --> 01:23:50,850 Però algunes persones, per descomptat, prendre les coses i empenyen als seus extrems. 1859 01:23:50,850 --> 01:23:56,790 >> Això és, com David va demostrar en la conferència, una peça de codi 1860 01:23:56,790 --> 01:24:02,150 que vostè deu en cap cas tractar de duplicar vostès mateixos. 1861 01:24:02,150 --> 01:24:05,260 A causa que és terrible estilísticament. 1862 01:24:05,260 --> 01:24:11,180 De fet, està dissenyat per a ser tan més difícil possible de llegir. 1863 01:24:11,180 --> 01:24:11,680 D'ACORD. 1864 01:24:11,680 --> 01:24:16,210 >> Així que, per fer de nou, anem a apropar aquí. 1865 01:24:16,210 --> 01:24:20,120 Vaig a anar ara, canvi de directori. 1866 01:24:20,120 --> 01:24:24,050 Vaig a pujar un nivell, de nou al meu espai de treball. 1867 01:24:24,050 --> 01:24:29,760 Vaig a continuació, canviar de directori en aquest un altre directori que he creat. 1868 01:24:29,760 --> 01:24:36,190 >> I aquesta és la Internacional Ofuscat C Programming Contest. 1869 01:24:36,190 --> 01:24:40,650 Mitjans ofuscat com dur com sigui possible d'entendre. 1870 01:24:40,650 --> 01:24:44,150 Així que per favor, no t'espantis si et fixes en això i va, no puc llegir això. 1871 01:24:44,150 --> 01:24:46,350 Aquest és el punt de la mateixa. 1872 01:24:46,350 --> 01:24:47,700 D'ACORD? 1873 01:24:47,700 --> 01:24:52,770 >> Però, tenim aquesta meravellós programa que estic 1874 01:24:52,770 --> 01:24:57,180 va a mirar amb només teclejar més. 1875 01:24:57,180 --> 01:25:01,890 I anem a veure si puc allunyar només una mica, així que vostè pot veure-ho 1876 01:25:01,890 --> 01:25:03,940 >> I aquest és el programa. 1877 01:25:03,940 --> 01:25:08,080 Es diu endo.c. 1878 01:25:08,080 --> 01:25:14,850 I sembla que aquesta galleda amb tipus de les lletres F-L-O-I-D en el mateix. 1879 01:25:14,850 --> 01:25:16,440 >> Això és en realitat un programa. 1880 01:25:16,440 --> 01:25:20,260 Està escrit en el més fosc de manera que els autors poguessin possiblement 1881 01:25:20,260 --> 01:25:21,760 escriure-ho. 1882 01:25:21,760 --> 01:25:29,210 Però és un petit tros meravellós que genera un model de dinàmica de fluids. 1883 01:25:29,210 --> 01:25:34,870 >> I així ens donarem aquest model d'una entrada que 1884 01:25:34,870 --> 01:25:42,520 són aquestes, d'un staired conjunt de contenidors 1885 01:25:42,520 --> 01:25:45,820 amb una mica de líquid, alguns líquid, a la part superior. 1886 01:25:45,820 --> 01:25:48,790 I anem a haver de simular el que està succeint a ell. 1887 01:25:48,790 --> 01:25:52,415 >> Així que vaig a trucar a aquesta funció, endo. 1888 01:25:52,415 --> 01:25:59,000 I vaig a donar-li aquest arxiu d'entrada que he tingut. 1889 01:25:59,000 --> 01:26:02,830 I no és la nostra epítom de l'art ASCII. 1890 01:26:02,830 --> 01:26:08,960 Un simulador de dinàmica de fluids completa funcionant en unes poques línies de codi. 1891 01:26:08,960 --> 01:26:13,750 >> Ara, què és realment molt sorprenent d'aquest petit programa 1892 01:26:13,750 --> 01:26:17,280 és que em vull parar ara, així que vaig a utilitzar el comandament? 1893 01:26:17,280 --> 01:26:18,660 >> AUDIÈNCIA: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Control-C. D'ACORD. 1895 01:26:20,390 --> 01:26:22,960 Així que vaig a utilitzar Control-C. C Que va a aturar-lo. 1896 01:26:22,960 --> 01:26:25,330 Vaig a esborrar de nou. 1897 01:26:25,330 --> 01:26:31,210 I ara vaig a invocar la programa, executar el programa, 1898 01:26:31,210 --> 01:26:33,740 utilitzant com a entrada. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> I anem a veure la dinàmica de fluids simulació que es fongui. 1901 01:26:42,700 --> 01:26:43,830 D'ACORD. 1902 01:26:43,830 --> 01:26:48,180 Si us plau, no deixi que el programa ser el que et confon. 1903 01:26:48,180 --> 01:26:52,220 És només perquè puguem acabar en alguna cosa fresc i interessant. 1904 01:26:52,220 --> 01:26:53,930 D'ACORD. 1905 01:26:53,930 --> 01:26:56,330 >> Bona sort amb els seus conjunts de problemes. 1906 01:26:56,330 --> 01:26:59,030 Estarem encantats de respondre preguntes després de classe. 1907 01:26:59,030 --> 01:27:01,180 Gràcies molt, nois. 1908 01:27:01,180 --> 01:27:02,793