1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [REPRODUCCIÓ DE VÍDEO] 3 00:00:16,626 --> 00:00:19,410 >> -A Triomf de matemàtica i habilitat mecànica 4 00:00:19,410 --> 00:00:23,270 és aquesta gran nova automàtica calculadora de la Universitat de Harvard. 5 00:00:23,270 --> 00:00:27,140 Un complex entramat de problemes en matemàtiques posat a través de la màquina en forma codificada 6 00:00:27,140 --> 00:00:31,710 a la cinta es resolen amb precisió en un diminuta fracció del temps requerit 7 00:00:31,710 --> 00:00:32,819 per al càlcul humà. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Dissenyat per agilitzar totes les formes de la investigació matemàtica i científica, 10 00:00:48,220 --> 00:00:53,840 el cervell mecànic gegant va a treballar per la Marina dels Estats Units fins al final de la guerra. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [FI DE REPRODUCCIÓ] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Malan: Aquesta, és CS50. 14 00:01:08,590 --> 00:01:10,590 El passat va ser un màgic lloc, però si alguna vegada has 15 00:01:10,590 --> 00:01:13,366 preguntar què aquest dispositiu és a Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 és de fet part de la Harvard Mark I, i és 17 00:01:16,150 --> 00:01:18,710 en exhibició en l'actualitat durant els últims anys. 18 00:01:18,710 --> 00:01:20,590 I el que veuràs incrustat en conjunt de problemes 19 00:01:20,590 --> 00:01:24,416 un és una mirada darrere de les escenes al que va fer aquest dispositiu, i ho fa, 20 00:01:24,416 --> 00:01:27,540 del professor Harry Lewis, qui es troba en el departament de ciències de la computació aquí. 21 00:01:27,540 --> 00:01:29,440 Així que més que en només una mica. 22 00:01:29,440 --> 00:01:33,990 >> Però avui comencem a transició des de la setmana passada a aquesta, 23 00:01:33,990 --> 00:01:37,290 i anem a portar menció d'una fotografia aquí 24 00:01:37,290 --> 00:01:38,630 que en realitat és bastant famós. 25 00:01:38,630 --> 00:01:42,270 Algú sap el que això aquí està a la pantalla? 26 00:01:42,270 --> 00:01:43,880 Almenys segons el mite. 27 00:01:43,880 --> 00:01:44,837 Sí. 28 00:01:44,837 --> 00:01:45,920 AUDIÈNCIA: El primer virus. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Malan: Així que va ser suposadament la primera decisió real en un ordinador. 30 00:01:49,570 --> 00:01:52,490 Ara bé, en la realitat la paraula bestiola, per un error en un programa, 31 00:01:52,490 --> 00:01:55,250 ha estat amb nosaltres des de fa algun temps en el món físic, 32 00:01:55,250 --> 00:01:58,190 i aquest va ser un dels primers temps documentats on algú realment 33 00:01:58,190 --> 00:02:02,280 va arrencar una gran arna de la Marca Equip II, el va posar al lligant, 34 00:02:02,280 --> 00:02:05,006 i després el va gravar com el primer error conegut 35 00:02:05,006 --> 00:02:06,630 en realitat s'han trobat físicament. 36 00:02:06,630 --> 00:02:10,104 Així que per tant va ser introduïda que en la tradició d'avui. 37 00:02:10,104 --> 00:02:12,020 Tot, des de l'última setmana està disponible en línia. 38 00:02:12,020 --> 00:02:14,840 En particular, els recursos que vostè pot ser no necessàriament notar, especialment 39 00:02:14,840 --> 00:02:15,881 si ve aquí a persona. 40 00:02:15,881 --> 00:02:20,230 Així que un dels becaris d'ensenyament cada anys fa que un conjunt canònic de notes, 41 00:02:20,230 --> 00:02:22,010 pel que no és necessari mantenir el cap cap avall, tractant 42 00:02:22,010 --> 00:02:24,410 transcriure gairebé qualsevol cosa això podria succeir aquí a classe. 43 00:02:24,410 --> 00:02:25,940 Així que adonar-se que aquells anomenat [? Scribd?] Notes 44 00:02:25,940 --> 00:02:29,350 estan en línia, sens dubte les diapositives i codi font que fem servir a classe. 45 00:02:29,350 --> 00:02:31,436 Fem transcripcions de text complet disponibles també. 46 00:02:31,436 --> 00:02:34,310 Així que si vostè recorda vagament alguns termini, i volen mirar cap amunt una mica 47 00:02:34,310 --> 00:02:37,280 més fàcilment, s'adonen que tot que es pot buscar en línia. 48 00:02:37,280 --> 00:02:38,930 A més de tutorials també. 49 00:02:38,930 --> 00:02:42,710 De fet, avui comencem a mirar un llenguatge de programació de nivell inferior, 50 00:02:42,710 --> 00:02:45,290 que aviat serà conegut per nosaltres com C, i és molt fàcil 51 00:02:45,290 --> 00:02:48,820 al tipus de perdre després de només uns pocs temps de moments, i després una mena de meravella 52 00:02:48,820 --> 00:02:52,370 com en realitat ens van donar a alguns més exemple complex des del més simple. 53 00:02:52,370 --> 00:02:54,975 I així anem a donar-nos compte de la cirera recollir durant la classe alguns 54 00:02:54,975 --> 00:02:57,850 dels exemples representatius, però s'adonen que molt més és també 55 00:02:57,850 --> 00:03:01,140 disponible en línia perquè pugui treballar a través d'ell al seu propi ritme, 56 00:03:01,140 --> 00:03:02,950 però, vostè està més còmode. 57 00:03:02,950 --> 00:03:05,200 >> Però el deixem amb programes que eren només això. 58 00:03:05,200 --> 00:03:09,690 Així que faig clic a la bandera verda, i què fa aquest programa? 59 00:03:09,690 --> 00:03:10,710 Diu, hola, món. 60 00:03:10,710 --> 00:03:13,180 Això fa que el gat dir hola en el seu petit món 61 00:03:13,180 --> 00:03:15,990 a la part superior esquerra d'interfície d'usuari d'Scratch. 62 00:03:15,990 --> 00:03:18,810 Però vam començar a introduir alguna terminologia setmana passada. 63 00:03:18,810 --> 00:03:23,614 I així, aquest tipus de coses ens criden i què? 64 00:03:23,614 --> 00:03:25,280 Quin podria ser el terme genèric per això? 65 00:03:25,280 --> 00:03:26,266 Sí. 66 00:03:26,266 --> 00:03:28,210 Un mètode o una declaració. 67 00:03:28,210 --> 00:03:29,280 És clar, és una acció. 68 00:03:29,280 --> 00:03:30,140 Fer això. 69 00:03:30,140 --> 00:03:32,400 I no obstant això, havia altres formes a zero, 70 00:03:32,400 --> 00:03:35,360 a més d'aquests anomenats declaració, que eren també 71 00:03:35,360 --> 00:03:38,221 coses com aquesta, que anomenem què? 72 00:03:38,221 --> 00:03:38,720 Sí. 73 00:03:38,720 --> 00:03:39,634 Per tant un bucle. 74 00:03:39,634 --> 00:03:42,050 I en aquest cas, aquesta cosa repeticions, òbviament, 10 vegades. 75 00:03:42,050 --> 00:03:43,040 Hi ha un bloc de sempre. 76 00:03:43,040 --> 00:03:44,164 Hi ha un parell dels altres. 77 00:03:44,164 --> 00:03:48,309 I avui anem a veure la forma de traduir això a un món més modern, 78 00:03:48,309 --> 00:03:50,850 si es vol, encara que és va semblar a primera vista 79 00:03:50,850 --> 00:03:52,024 ser molt més arcà. 80 00:03:52,024 --> 00:03:53,190 Però aquests eren de fet els bucles. 81 00:03:53,190 --> 00:03:56,182 I després tenim coses com això, que tenia aquesta forma, 82 00:03:56,182 --> 00:03:57,515 i essencialment preguntes. 83 00:03:57,515 --> 00:03:58,890 I ens referim a aquests com què? 84 00:03:58,890 --> 00:03:59,762 >> AUDIÈNCIA: expressió booleana. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Malan: Sí. 86 00:04:00,320 --> 00:04:01,340 Expressió booleana. 87 00:04:01,340 --> 00:04:04,502 Una cosa que és veritable o fals, sí o no, un o zero, 88 00:04:04,502 --> 00:04:05,960 però vostè desitja veure el món. 89 00:04:05,960 --> 00:04:08,335 Però anomenem els booleana expressions, i els endoll 90 00:04:08,335 --> 00:04:09,900 en condicions, o branques. 91 00:04:09,900 --> 00:04:12,170 I en el món de Scratch, tot molt bé 92 00:04:12,170 --> 00:04:15,460 enclavaments quant a la seva forma, si té sentit lògic per fer-ho, 93 00:04:15,460 --> 00:04:18,490 però vostè no ha de parar en només fent una cosa condicionalment, 94 00:04:18,490 --> 00:04:20,450 vostè pot tenir una proverbial bifurcació en el camí 95 00:04:20,450 --> 00:04:24,040 i fer això o que si la condició és vertadera o no. 96 00:04:24,040 --> 00:04:26,040 I llavors, com es veurà, si vostè no ho ha fet, 97 00:04:26,040 --> 00:04:27,480 Vostè pot fins i tot nien aquests blocs. 98 00:04:27,480 --> 00:04:32,110 Així esgarrapades creix per omplir les formes que és possible que vulgueu inserir en ell, 99 00:04:32,110 --> 00:04:35,330 pel que en realitat es pot expressar més qualsevol lògica que és possible que vulgueu fer. 100 00:04:35,330 --> 00:04:38,220 >> Ara unes paraules d'anunci per tant aquí com a New Haven. 101 00:04:38,220 --> 00:04:39,370 Així seccionament comença avui. 102 00:04:39,370 --> 00:04:42,120 La direcció d'aquesta es troba en el curs de lloc web, per als que no estan familiaritzats. 103 00:04:42,120 --> 00:04:43,970 Seccions seran un oportunitat de reunir- 104 00:04:43,970 --> 00:04:46,553 en un ambient molt més íntim que no sigui [? Sanders?] Permet, 105 00:04:46,553 --> 00:04:50,347 amb 10 a 20 companys de classe amb una ensenyament company en diferents pistes, 106 00:04:50,347 --> 00:04:51,930 i ritmes diferents, si així ho desitgen. 107 00:04:51,930 --> 00:04:54,080 De fet les ofertes de cursos diferents seccions 108 00:04:54,080 --> 00:04:57,340 per als menys còmode, més còmode, i en algun punt intermedi, 109 00:04:57,340 --> 00:04:59,860 i el paper d'or aquí, és no hi ha una definició formal, 110 00:04:59,860 --> 00:05:04,600 però si vostè és menys còmode, quin tipus d'adonar-te. 111 00:05:04,600 --> 00:05:07,470 Estàs una mica intrèpid sobre la idea de posar un peu, potser, de tornada 112 00:05:07,470 --> 00:05:10,130 a l'aula, o mostrar fins a una d'entre la secció. 113 00:05:10,130 --> 00:05:12,770 Si has estat a la programació ja que van ser sis anys d'edat, més còmode, 114 00:05:12,770 --> 00:05:13,400 potser per a vostè. 115 00:05:13,400 --> 00:05:16,150 I si es tracta d'una espècie de cara o creu, això és exactament el que l'intermedi 116 00:05:16,150 --> 00:05:17,190 està destinat a ser. 117 00:05:17,190 --> 00:05:18,410 >> Ara, en l'interí, per a una classe d'aquesta mida, 118 00:05:18,410 --> 00:05:21,326 ens porta força temps a la secció tots, pel que hem anomenats, 119 00:05:21,326 --> 00:05:24,030 seccions súper, que fins aquest cap de setmana i principis de la setmana que ve, 120 00:05:24,030 --> 00:05:26,570 així que fes un cop d'ull a la pàgina web del curs per a aquells que són per descomptat d'ample, 121 00:05:26,570 --> 00:05:28,610 i també va filmar per a aquells que no pot fer-los. 122 00:05:28,610 --> 00:05:33,470 I seccions mateixos començaran en la setmana tres de CS50 índex zero. 123 00:05:33,470 --> 00:05:35,880 CONJUNT DE PROBLEMES 0 ja està a la pàgina web del curs. 124 00:05:35,880 --> 00:05:40,010 I adonar-se que vostè té nou dies finals d'aquest semestre. 125 00:05:40,010 --> 00:05:43,240 Així que aquesta és una actualització de l'última anys, quan teníem cinc dies de retard. 126 00:05:43,240 --> 00:05:46,210 >> Així que si vostè s'està preguntant, tenim nou butlletins de problemes. 127 00:05:46,210 --> 00:05:53,200 Té nou dies finals, cadascun dels quals només es pot passar una setmana a. 128 00:05:53,200 --> 00:05:56,089 Això fa que efectivament tots el problema s'estableix a causa Divendres, 129 00:05:56,089 --> 00:05:58,630 però l'objectiu és posar una mica de mica de pressió psicològica 130 00:05:58,630 --> 00:06:01,100 amb vostès per intentar aconseguir coses en el dijous 131 00:06:01,100 --> 00:06:03,960 perquè tan aviat descobrirà, per bé o per mal, la majoria 132 00:06:03,960 --> 00:06:07,820 sobretot en el món del programari acaba ser molt més temps que vostè anticipa. 133 00:06:07,820 --> 00:06:10,620 Així que considera que una espècie d'oportunitat d'ajudar 134 00:06:10,620 --> 00:06:13,880 a tu mateix per apuntar dijous però tranquil per això, sí, 135 00:06:13,880 --> 00:06:14,950 tot s'ha de divendres. 136 00:06:14,950 --> 00:06:17,590 I si envia ells en Dijous, això és meravellós. 137 00:06:17,590 --> 00:06:21,020 No hi ha punts de bonificació o addicional el crèdit per complir amb aquest termini. 138 00:06:21,020 --> 00:06:23,250 És la intenció de ser només una crossa. 139 00:06:23,250 --> 00:06:25,810 >> I les hores d'oficina, tant aquí ia New Haven, 140 00:06:25,810 --> 00:06:28,840 en persona, si desitja complir amb qualsevol dels nostres cursos 141 00:06:28,840 --> 00:06:31,060 l'ensenyament dels becaris i les entitats emissores d'assistència. 142 00:06:31,060 --> 00:06:31,640 >> Tot bé. 143 00:06:31,640 --> 00:06:33,110 Així que ara, farem això més real. 144 00:06:33,110 --> 00:06:35,470 I per un moment que va a començar per aconseguir una mica més arcà, però molt 145 00:06:35,470 --> 00:06:37,310 ràpidament el divendres i la setmana que ve estarem 146 00:06:37,310 --> 00:06:41,230 capaç de fer molt més que que vam poder fins ara en Scratch. 147 00:06:41,230 --> 00:06:44,350 Així que vam introduir últim codi setmanes, encara que pictoral. 148 00:06:44,350 --> 00:06:45,620 Va ser peces del trencaclosques. 149 00:06:45,620 --> 00:06:48,800 I vam formalitzar que és cosa que es diu codi font, 150 00:06:48,800 --> 00:06:50,330 sinó que va fer sembla? 151 00:06:50,330 --> 00:06:52,550 Bé, semblava una mica alguna cosa com això. 152 00:06:52,550 --> 00:06:55,410 I, de fet, només per a la classe de embromar on podem anar amb això. 153 00:06:55,410 --> 00:06:57,800 Vaig a seguir endavant i obrir una finestra aquí, 154 00:06:57,800 --> 00:06:59,810 i jo només vaig a triar nou arxiu. 155 00:06:59,810 --> 00:07:03,200 I em vaig a guardar aquest arxiu com una mena de punt hola c. 156 00:07:03,200 --> 00:07:05,700 Més sobre que l'elecció de paraules un moment. 157 00:07:05,700 --> 00:07:08,630 I això és com algú podria anar sobre l'escriptura d'un programa. 158 00:07:08,630 --> 00:07:13,990 Inclogui E / S estàndard de punt h, int main buit, i després obrir claudàtor, prop 159 00:07:13,990 --> 00:07:19,430 claudàtor, printf hola món coma, barra invertida n, punt i coma, Desa, fet. 160 00:07:19,430 --> 00:07:19,930 D'ACORD. 161 00:07:19,930 --> 00:07:21,670 He escrit la meva primera programa, però va 162 00:07:21,670 --> 00:07:23,878 a ser increïblement decebuts perquè quan en realitat 163 00:07:23,878 --> 00:07:27,352 executar aquest programa, per descomptat, per primera escriptura que hola, 164 00:07:27,352 --> 00:07:30,310 i després dot retallar hola, i anem a passar per això amb molt més detall 165 00:07:30,310 --> 00:07:31,730 en un moment, això és tot el que fa. 166 00:07:31,730 --> 00:07:33,270 No esclatar obert totes les finestres. 167 00:07:33,270 --> 00:07:35,070 No fa res particularment elegant. 168 00:07:35,070 --> 00:07:38,830 Tot el que fa és el que li vaig dir a fem, però com arribem a això? 169 00:07:38,830 --> 00:07:40,560 I com construir sobre això? 170 00:07:40,560 --> 00:07:43,430 Bé, anem a introduir alguns diferents conceptes aquí. 171 00:07:43,430 --> 00:07:47,170 >> Així que un, estem a punt de començar utilitzant un programa anomenat un compilador. 172 00:07:47,170 --> 00:07:51,470 Hi ha un compilador per a Mac OS, Windows, Linux, qualsevol nombre de sistemes operatius, 173 00:07:51,470 --> 00:07:54,540 i aviat li presentarem a la ambient que utilitzarem, 174 00:07:54,540 --> 00:07:57,410 però un compilador és només un general termini per a una peça de programari 175 00:07:57,410 --> 00:08:01,940 que porta codi font i produeix codi objecte de la mateixa. 176 00:08:01,940 --> 00:08:03,940 En altres paraules, si vostè té com a entrada la font 177 00:08:03,940 --> 00:08:08,250 codi, una cosa així com el que acaba d'escriure, que en última instància produeix codi objecte. 178 00:08:08,250 --> 00:08:11,780 I el codi objecte és en realitat una forma elegant de dir que les sortides 179 00:08:11,780 --> 00:08:12,926 de zero i un. 180 00:08:12,926 --> 00:08:14,800 En altres paraules, la font codi, tot i que és 181 00:08:14,800 --> 00:08:17,240 va a semblar una mica misteriós, i una mica menys agradable 182 00:08:17,240 --> 00:08:19,590 d'esgarrapades, a primera vista, és almenys alguna cosa 183 00:08:19,590 --> 00:08:21,120 que els éssers humans poden entendre. 184 00:08:21,120 --> 00:08:24,360 En certa manera es veu i sona com Anglès Tot i que és molt succinta. 185 00:08:24,360 --> 00:08:28,040 Atès que la programació en de zero i un, com els nostres predecessors havien de fer, 186 00:08:28,040 --> 00:08:30,920 Fa alguns anys, no era una entrada molt divertit. 187 00:08:30,920 --> 00:08:33,710 I, no obstant això, això és el que el equip encara entén. 188 00:08:33,710 --> 00:08:37,010 Així compilador ens porta des codi font del codi objecte. 189 00:08:37,010 --> 00:08:39,860 És com obrir un arxiu amb el compilador, i al guardar-lo, 190 00:08:39,860 --> 00:08:41,419 vostè aconsegueix aquests zeros i uns. 191 00:08:41,419 --> 00:08:43,419 Així que veurem com fer-ho que, en un moment. 192 00:08:43,419 --> 00:08:47,400 >> Però ara anem a tractar de proporcionar una tendir un pont entre la setmana passada i present, 193 00:08:47,400 --> 00:08:50,660 de manera que fins i tot a mesura que s'obsessioni en coses com claus, 194 00:08:50,660 --> 00:08:54,100 i punt i coma i parèntesi i tots aquests intel·lectualment interessant 195 00:08:54,100 --> 00:08:57,620 aspectes de la programació, que molt comprensiblement disparar a la gent des del principi, 196 00:08:57,620 --> 00:09:00,930 adonar-se que totes les idees Avui en dia, són els mateixos que passat. 197 00:09:00,930 --> 00:09:03,975 Així que ahir, vam veure aquest exemple aquí, el programa Hola Món. 198 00:09:03,975 --> 00:09:07,500 Bé, a partir d'avui, si volem per posar en pràctica aquest mateix programa, 199 00:09:07,500 --> 00:09:10,800 que va a buscar un mica alguna cosa com això. 200 00:09:10,800 --> 00:09:14,040 I anem a explicar en poc temps el que int, i principal, i sense efecte, i tot això 201 00:09:14,040 --> 00:09:18,770 és, però almenys jo veig aquí Ja ho familiar Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Mentrestant, coses com funció, saluda, 203 00:09:20,860 --> 00:09:23,570 és molt senzill serà un declaració molt simple com això. 204 00:09:23,570 --> 00:09:26,930 Printf hola món, amb una mica de cita, amb una barra invertida, 205 00:09:26,930 --> 00:09:29,780 amb un punt i coma, però més sobre això més per venir. 206 00:09:29,780 --> 00:09:34,066 Loops, per la seva banda, es tracta d'un bucle que, per descomptat, diu hola món per sempre, 207 00:09:34,066 --> 00:09:36,690 i aquest va a semblar un poc més estrany que en el passat, 208 00:09:36,690 --> 00:09:39,530 però si dic alguna cosa de la mateixa manera que, mentre cert, 209 00:09:39,530 --> 00:09:44,050 pot després imprimir Hola món una i altra vegada i una altra i una altra. 210 00:09:44,050 --> 00:09:46,660 I després com puguis tipus de començar a inferir aquí, 211 00:09:46,660 --> 00:09:49,070 aquesta convenció d'usar claus és una espècie 212 00:09:49,070 --> 00:09:52,050 de com abraçar la línia de sangria de codi d'allà. 213 00:09:52,050 --> 00:09:55,840 La línia printf de codi molt semblant la peça del trencaclosques de color groc per sobre. 214 00:09:55,840 --> 00:09:58,740 Així que no direm sempre, anem a dir, mentre que la veritable, 215 00:09:58,740 --> 00:10:01,020 però anem a veure què és en només una mica. 216 00:10:01,020 --> 00:10:04,210 >> Mentrestant, si tenim un circuit com aquest, on repeteixes una cosa una finita 217 00:10:04,210 --> 00:10:07,730 nombre de vegades, aquest també és Va a prendre una mica de temps per acostumar 218 00:10:07,730 --> 00:10:12,820 , Però que dirà amb int i es posa a zero, i menys de 10, i ++, 219 00:10:12,820 --> 00:10:14,056 i després printf de nou. 220 00:10:14,056 --> 00:10:15,430 Però no serà patrons. 221 00:10:15,430 --> 00:10:18,434 I per a aquells de vostès familiaritzats amb AP Ciències de la Computació, o Java, 222 00:10:18,434 --> 00:10:21,100 o qualsevol nombre d'altres idiomes, Gairebé tots aquests constructes 223 00:10:21,100 --> 00:10:23,820 fins ara han de buscar sobretot familiar. 224 00:10:23,820 --> 00:10:24,680 >> Així variable. 225 00:10:24,680 --> 00:10:29,270 Així que aquí està un senzill fragment de Scratch que estableix una variable anomenada comptador a zero, 226 00:10:29,270 --> 00:10:33,150 i després diu sempre el taulell, i llavors es canvia el comptador en un. 227 00:10:33,150 --> 00:10:37,030 Així que comença amb zero, i després un, dos, tres. 228 00:10:37,030 --> 00:10:42,560 Bé, com podem introduir que en aquest nou llenguatge una mica similar? 229 00:10:42,560 --> 00:10:45,460 Contador Int és igual zero, mentre que la veritable, la qual 230 00:10:45,460 --> 00:10:48,100 és la mateixa idea d'abans de fer alguna cosa per sempre, 231 00:10:48,100 --> 00:10:49,530 i jo només vaig a printf. 232 00:10:49,530 --> 00:10:53,310 I ara s'està fent una mica estrany, i per cent, però més sobre això més per venir, 233 00:10:53,310 --> 00:10:55,140 però aquestes idees són exactament els mateixos. 234 00:10:55,140 --> 00:10:58,820 Només ara hem de complir amb la sintaxi que l'equip està 235 00:10:58,820 --> 00:11:00,010 exigirà de nosaltres. 236 00:11:00,010 --> 00:11:04,620 >> Expressió booleana, una mena de sx menor que i, x o menys i, 237 00:11:04,620 --> 00:11:06,354 e i menys de z. 238 00:11:06,354 --> 00:11:09,270 Es va a veure una mica d'alguna cosa així, amb parèntesis només 239 00:11:09,270 --> 00:11:13,020 com en matemàtiques per si de cas només assegurar-se que l'ordre de les operacions 240 00:11:13,020 --> 00:11:14,750 és com pretenem. 241 00:11:14,750 --> 00:11:15,600 I ara, les condicions. 242 00:11:15,600 --> 00:11:21,220 Així que si x menor que i, diguem x és menor que I, més si x és més gran que i, 243 00:11:21,220 --> 00:11:26,020 dir x és més gran que i, en cas contrari lògicament, x ha de ser igual a i. 244 00:11:26,020 --> 00:11:28,710 Així que es podria posar en pràctica alguna cosa com això en Scratch, 245 00:11:28,710 --> 00:11:31,230 o pot aplicar en aquesta sintaxi. 246 00:11:31,230 --> 00:11:35,090 I de nou, les claus són una mena de ens dóna la mateixa manera que el trencaclosques 247 00:11:35,090 --> 00:11:40,750 peces, però la sintaxi, ara, és potser començant a seguir algunes pautes. 248 00:11:40,750 --> 00:11:42,910 >> Així que, què ens donen aquí? 249 00:11:42,910 --> 00:11:45,260 Així que estem en aquest llavors en el nostre programa principal. 250 00:11:45,260 --> 00:11:47,930 Anem en realitat, ara, fer alguna cosa amb ell. 251 00:11:47,930 --> 00:11:50,660 Així que en aquest primer línia que veiem aguda incloem, 252 00:11:50,660 --> 00:11:53,160 I / S estàndard, punt h, i a continuació, un angle estrany 253 00:11:53,160 --> 00:11:57,330 suports sota d'això. int main buit, i després printf hola món. 254 00:11:57,330 --> 00:11:58,200 Així que fer un pas. 255 00:11:58,200 --> 00:12:02,440 Algú que mai ha programat abans, almenys explicar una d'aquestes línies. 256 00:12:02,440 --> 00:12:04,490 Usant potser alguns l'argot de la setmana passada. 257 00:12:04,490 --> 00:12:06,942 Quin és printf, per exemple? 258 00:12:06,942 --> 00:12:07,442 Sí. 259 00:12:07,442 --> 00:12:08,410 >> AUDIÈNCIA: [inaudible] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Malan: Sí. 261 00:12:08,610 --> 00:12:11,380 És una funció, o una declaració, de la terminologia de la setmana passada. 262 00:12:11,380 --> 00:12:13,470 I és una acció que està fent alguna cosa. 263 00:12:13,470 --> 00:12:15,855 Ara aquesta funció, o aquesta declaració, fa 264 00:12:15,855 --> 00:12:17,550 que sembla tenir algun tipus d'entrada? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 I en quin sentit ho fa semblen tenir d'entrada, en aquest cas? 267 00:12:24,380 --> 00:12:26,180 D'entrada, què vull dir amb això? 268 00:12:26,180 --> 00:12:26,720 Sí. 269 00:12:26,720 --> 00:12:27,595 >> AUDIÈNCIA: [inaudible] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Malan: Sí. 272 00:12:31,440 --> 00:12:34,890 Així guanyar-se unes quantes peces del trencaclosques on es pot parametritzar ella. 273 00:12:34,890 --> 00:12:37,980 Es notava la repetició bloquejar quantes vegades repetir, 274 00:12:37,980 --> 00:12:40,320 així que va ser una entrada de classes, i igual que les ratllades 275 00:12:40,320 --> 00:12:43,060 tenia un petit marcador de posició blanc per al número hauria d'escriure en, 276 00:12:43,060 --> 00:12:45,810 així que fem servir en aquest parèntesi mundials text 277 00:12:45,810 --> 00:12:49,910 per donar-nos aquesta forma circular en el qual podem connectar la nostra entrada. 278 00:12:49,910 --> 00:12:53,180 Després de tot, fa desenes d'anys quan aquest llenguatge, anomenat C, 279 00:12:53,180 --> 00:12:55,950 va ser inventat ningú anticipar que és un de nosaltres, 280 00:12:55,950 --> 00:12:59,420 aquests alguns anys més tard, estaríem volen una funció que diu hola. 281 00:12:59,420 --> 00:12:59,920 Oi? 282 00:12:59,920 --> 00:13:02,880 Seria bo si hi hagués un peça del trencaclosques, o unes paraules clau, 283 00:13:02,880 --> 00:13:05,502 això es diu hola, que literalment, només diu hola. 284 00:13:05,502 --> 00:13:06,460 Però no necessitem això. 285 00:13:06,460 --> 00:13:09,320 Podem tenir alguna cosa molt més baix nivell, com una impressió genèrica 286 00:13:09,320 --> 00:13:12,760 comandament, que pren l'entrada, i imprimeix el que vulguem. 287 00:13:12,760 --> 00:13:14,960 Així notar ara el patró que començarà a emergir. 288 00:13:14,960 --> 00:13:19,310 Parin Obertes, prop parin és aparentment abraçant l'entrada, 289 00:13:19,310 --> 00:13:21,770 i després veig doble cita en ambdós extrems. 290 00:13:21,770 --> 00:13:25,110 Encara hi ha barra invertida rar n, però espero que ara vostè 291 00:13:25,110 --> 00:13:29,900 pot començar a visualitzar almenys aquesta printf està prenent algun tipus d'entrada. 292 00:13:29,900 --> 00:13:31,850 No és tan fàcil d'usar com Zero, però és només 293 00:13:31,850 --> 00:13:34,920 com haver endollat ​​algun valor allà. 294 00:13:34,920 --> 00:13:38,306 >> Molt bé, ara anem a realitat fer alguna cosa amb això. 295 00:13:38,306 --> 00:13:40,930 Així que alguns de vostès podrien saber de tenint comprat la classe abans, 296 00:13:40,930 --> 00:13:42,638 xerrat amb els amics, que durant molts anys 297 00:13:42,638 --> 00:13:44,590 fem servir una cosa anomenada l'aparell CS50. 298 00:13:44,590 --> 00:13:49,160 Aquest era un terme que descriu una tecnologia crida l'màquina virtual, que 299 00:13:49,160 --> 00:13:51,870 és una peça de programari que el seu predecessors es descarrega fora 300 00:13:51,870 --> 00:13:53,360 la pàgina web del curs de forma gratuïta. 301 00:13:53,360 --> 00:13:56,550 També es descarrega una peça lliure de programari anomenat un hipervisor, 302 00:13:56,550 --> 00:14:00,590 cosa que es diu com VMware, o VirtualBox, o qualsevol nombre 303 00:14:00,590 --> 00:14:04,450 d'altres eines, i en el seu Mac o PC o qualsevol equip que tenien l'any passat 304 00:14:04,450 --> 00:14:06,620 i l'any passat, duplicaria clic a una icona 305 00:14:06,620 --> 00:14:08,860 per executar aquest programari anomenat l'hipervisor. 306 00:14:08,860 --> 00:14:12,220 I després a l'interior d'aquest programa obririen l'aparell CS50. 307 00:14:12,220 --> 00:14:14,710 I l'efecte va ser que si un antecessor seu 308 00:14:14,710 --> 00:14:17,780 estava executant Mac OS o De Windows, ell o ella llavors 309 00:14:17,780 --> 00:14:22,910 posteriorment va tenir una nova finestra en la seva pantalla de córrer l'entorn del CS50. 310 00:14:22,910 --> 00:14:27,370 Així que una màquina virtual li permet executar un sol sistema operatiu dins d'un altre, 311 00:14:27,370 --> 00:14:28,785 i això és exactament el que vam fer. 312 00:14:28,785 --> 00:14:31,410 Al llarg de la major part del supòsit que utilitzar un sistema operatiu anomenat 313 00:14:31,410 --> 00:14:34,070 Linux, específicament Ubuntu Linux, i això 314 00:14:34,070 --> 00:14:37,590 és una forma molt agradable en els últims anys de assegurant-se que tot el món en el curs 315 00:14:37,590 --> 00:14:38,840 només tenia el mateix ambient. 316 00:14:38,840 --> 00:14:41,339 I vostè pot utilitzar qualsevol tipus de equip que vostè realment desitja. 317 00:14:41,339 --> 00:14:43,930 Entre els desavantatges, però, eren que era com dos gigabytes 318 00:14:43,930 --> 00:14:45,480 descarregar gratis la cosa. 319 00:14:45,480 --> 00:14:50,310 No necessàriament funciona molt bé en persones les computadores que potser només 320 00:14:50,310 --> 00:14:54,570 va tenir una actuació més o menys de RAM, o no massa gigahertzs ​​de velocitat de la CPU, 321 00:14:54,570 --> 00:14:56,750 pel que aquest any, per aquesta i altres raons, 322 00:14:56,750 --> 00:14:59,140 ¿Hem estat transicionando a aquest entorn. 323 00:14:59,140 --> 00:15:03,730 L'anomenat CS50 IDE, que és basat en programari de codi obert, 324 00:15:03,730 --> 00:15:07,380 i una plataforma compatible que una companyia anomenada Cloud9 325 00:15:07,380 --> 00:15:11,110 dóna suport a Europa, que ens permet tenim essencialment 326 00:15:11,110 --> 00:15:15,770 aquest mateix ambient exacta com a any passat, però en l'anomenada en el núvol. 327 00:15:15,770 --> 00:15:17,532 >> Llavors, què és el núvol? 328 00:15:17,532 --> 00:15:20,480 Vostè probablement ha fet clic la seva icona al teu Mac o PC. 329 00:15:20,480 --> 00:15:22,210 Què és el núvol? 330 00:15:22,210 --> 00:15:22,709 Sí? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Una mica més fort. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Sí. 335 00:15:31,010 --> 00:15:33,770 És només un munt d'ordinadors en altres llocs que les dades de la botiga i d'execució 336 00:15:33,770 --> 00:15:34,880 programari i similars. 337 00:15:34,880 --> 00:15:39,390 Així que és realment només a la paraula de iure de descriure [? vénen llogades?] 338 00:15:39,390 --> 00:15:40,930 equips que no viuen més en. 339 00:15:40,930 --> 00:15:42,810 Que vostè, vostè mateix, no necessàriament posseir. 340 00:15:42,810 --> 00:15:45,256 Així que quan les seves dades, o la seva programes, estan en el núvol, 341 00:15:45,256 --> 00:15:47,630 només significa que és d'algú ordinadors d'una altra persona en un altre lloc, 342 00:15:47,630 --> 00:15:50,510 i no, el més probable, si ordinador portàtil o d'escriptori físic. 343 00:15:50,510 --> 00:15:52,990 I això és el CS50 IDE ara és. 344 00:15:52,990 --> 00:15:55,670 >> A partir d'ara aniràs a una certa URL que presentar- 345 00:15:55,670 --> 00:16:00,090 que, en el conjunt de problemes 1, a finals d'aquest setmana, que llavors, en iniciar la sessió, 346 00:16:00,090 --> 00:16:01,480 donar-li aquest entorn. 347 00:16:01,480 --> 00:16:03,896 I molt de Scratch com tenia un uns panells diferents involucrats, 348 00:16:03,896 --> 00:16:06,030 el mateix passa amb l'IDE de CS50 té exactament això. 349 00:16:06,030 --> 00:16:09,480 A la part superior esquerra mà aquí, ets anar a veure un explorador d'arxius familiars. 350 00:16:09,480 --> 00:16:11,930 Així que qualsevol dels arxius que posat en aquest entorn 351 00:16:11,930 --> 00:16:13,346 només es va a figurar-hi. 352 00:16:13,346 --> 00:16:14,350 Els arxius i carpetes. 353 00:16:14,350 --> 00:16:16,790 A la part superior dreta aquí, vostè va a veure un lloc 354 00:16:16,790 --> 00:16:18,420 on realment es pot escriure el seu codi. 355 00:16:18,420 --> 00:16:21,860 Inicialment en C, més endavant en el termini en PHP i JavaScript, 356 00:16:21,860 --> 00:16:24,739 i, potser per última projectes, Ruby o Java o Python 357 00:16:24,739 --> 00:16:27,280 o qualsevol nombre d'idiomes són recolzat en aquest entorn. 358 00:16:27,280 --> 00:16:30,130 No és en absolut lligat a CS50 específicament. 359 00:16:30,130 --> 00:16:33,390 >> I després, a la cantonada de fons aquí, especialment per als més còmodes, 360 00:16:33,390 --> 00:16:35,590 tens alguna cosa crida una finestra de terminal. 361 00:16:35,590 --> 00:16:38,770 I aquesta finestra de terminal permet que permet executar qualsevol comanda que vostè 362 00:16:38,770 --> 00:16:40,860 desitjar en aquest entorn de núvol. 363 00:16:40,860 --> 00:16:42,860 Se li permet instal·lar cap programari addicional 364 00:16:42,860 --> 00:16:46,810 que desitja, perquè vostè ha anomenada arrel o d'administrador privilegis. 365 00:16:46,810 --> 00:16:49,930 Així, en altres paraules, tot i que aquest està instal·lat en última instància, en el núvol, 366 00:16:49,930 --> 00:16:52,400 i tot i que tenim simplificada fins a cert punt 367 00:16:52,400 --> 00:16:57,110 per defecte, literalment, la introducció, gràcies a Dan Armendariz, i Dino, 368 00:16:57,110 --> 00:17:01,070 i Dan Bradley en l'equip de CS50 sobre el passat molts mesos, un menys còmode 369 00:17:01,070 --> 00:17:05,140 manera que s'amaga una gran quantitat de la distraccions inicialment confuses. 370 00:17:05,140 --> 00:17:10,119 Tot existeix per representar un sistema informàtic típic 371 00:17:10,119 --> 00:17:12,319 que vostè pot utilitzar en el món real. 372 00:17:12,319 --> 00:17:15,640 >> Llavors, què significa tot això, i ¿Què podem realment fer amb ell? 373 00:17:15,640 --> 00:17:19,124 Anem realment fer una ullada a un programa. 374 00:17:19,124 --> 00:17:21,290 Així que vaig a obrir el entorn real aquí, 375 00:17:21,290 --> 00:17:23,894 que és només la nostra Crom navegador, que podria ser Firefox, 376 00:17:23,894 --> 00:17:26,640 podria ser Internet Explorer, o algun altre navegador també. 377 00:17:26,640 --> 00:17:28,400 Està plena projectar aquí de moment. 378 00:17:28,400 --> 00:17:31,580 I vull molestar realitat a part el que era aquest programa. 379 00:17:31,580 --> 00:17:36,170 Així que anem a fer una ullada, fent zoom en fins a dalt, en el que vaig fer, i com vaig arribar aquí. 380 00:17:36,170 --> 00:17:38,315 Així que aquí està els exacta mateixes línies de codi. 381 00:17:38,315 --> 00:17:40,440 Així que aquesta és la declaració, com vostè ha esmentat abans. 382 00:17:40,440 --> 00:17:42,580 La funció que diu hola. 383 00:17:42,580 --> 00:17:45,870 Les claus, en línia de quatre i línia de sis, 384 00:17:45,870 --> 00:17:49,290 presumiblement tipus d'embolcall aquesta línia per associar 385 00:17:49,290 --> 00:17:50,890 amb l'essència del meu programa. 386 00:17:50,890 --> 00:17:54,890 Així que de fet, aquesta paraula clau principal, això és allà dalt en la línia 3, 387 00:17:54,890 --> 00:17:59,450 vostè pot pensar que com l'equivalent que quan fa clic a bandera verda, 388 00:17:59,450 --> 00:18:01,080 bloquejar en Scratch. 389 00:18:01,080 --> 00:18:05,280 Així que això és tot el que tenim aquí, és quan bandera verda es fa clic, impressió, o dir, 390 00:18:05,280 --> 00:18:06,700 Hola món. 391 00:18:06,700 --> 00:18:11,210 >> Però anem a prendre una conjectura, ara, en el que aquesta primera línia, més arcà, és. 392 00:18:11,210 --> 00:18:15,100 Agut inclouen, oberta en angle suport, E / S estàndard de punt h, 393 00:18:15,100 --> 00:18:17,320 tancar forca. 394 00:18:17,320 --> 00:18:19,850 El que sé que potser fent, especialment si vostè ha programat 395 00:18:19,850 --> 00:18:21,390 abans en algun altre llenguatge. 396 00:18:21,390 --> 00:18:21,890 Sí? 397 00:18:21,890 --> 00:18:22,765 >> AUDIÈNCIA: [inaudible] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Malan: Sí. 400 00:18:25,970 --> 00:18:26,470 Exactament. 401 00:18:26,470 --> 00:18:29,455 Així que això està donant accés a una biblioteca, per així dir-ho, de les funcions. 402 00:18:29,455 --> 00:18:31,830 I una biblioteca de funcions és funcions que una altra persona 403 00:18:31,830 --> 00:18:34,406 va escriure, ja sigui recentment o fa molt de temps, de manera que vostè 404 00:18:34,406 --> 00:18:35,780 no han de reinventar la roda. 405 00:18:35,780 --> 00:18:39,020 Per exemple, no ho fem ha de saber, el 2015, 406 00:18:39,020 --> 00:18:42,280 com escriure codi que posa un personatge en la meva pantalla. 407 00:18:42,280 --> 00:18:44,820 Algú s'ha adonat que amb la funció printf 408 00:18:44,820 --> 00:18:47,280 perquè jo pugui ordenar d'abstracta lluny d'això, o capa de 409 00:18:47,280 --> 00:18:49,350 a la part superior de la seva codi, i ara acaba de prendre 410 00:18:49,350 --> 00:18:52,760 per fet que qualsevol programa que escrigui pot imprimir alguna cosa a la pantalla. 411 00:18:52,760 --> 00:18:58,150 Així que aquesta primera línia d'allà en el pas un inclou el denominat arxiu de capçalera 412 00:18:58,150 --> 00:18:59,980 per a la biblioteca estàndard. 413 00:18:59,980 --> 00:19:02,630 Així a veure, l'idioma en que ara estem treballant 414 00:19:02,630 --> 00:19:05,010 tingut una biblioteca estàndard amb una gran quantitat de funcions. 415 00:19:05,010 --> 00:19:07,240 Printf és un d'ells, i aquesta primera línia de codi 416 00:19:07,240 --> 00:19:10,040 em vol dir donar accés a aquestes funcions, pel que jo 417 00:19:10,040 --> 00:19:12,300 no han de reinventar la roda. 418 00:19:12,300 --> 00:19:15,940 >> Ara anirem a la finestra inferior i fer exactament el que vaig fer abans. 419 00:19:15,940 --> 00:19:18,520 Fa un moment, quan jo era brunzint a través del codi, 420 00:19:18,520 --> 00:19:24,540 escrivint a terme per primera vegada, Jo molt ràpidament escrit, faig hola. 421 00:19:24,540 --> 00:19:28,250 Què va ser tot això caldria endevinar? 422 00:19:28,250 --> 00:19:29,150 Què estava fent? 423 00:19:29,150 --> 00:19:29,649 Sí? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 No importa. 426 00:19:32,310 --> 00:19:32,970 Està bé. 427 00:19:32,970 --> 00:19:33,492 Sí. 428 00:19:33,492 --> 00:19:34,450 AUDIÈNCIA: Compilació d'ella. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Malan: Sí. 430 00:19:34,700 --> 00:19:35,770 S'acaba de compilar-lo. 431 00:19:35,770 --> 00:19:36,270 Oi? 432 00:19:36,270 --> 00:19:39,280 Fins i tot si això és completament desconeguda a vostè, que és bastant Anglès similars. 433 00:19:39,280 --> 00:19:41,155 Certament no és zeros i uns, així que encara 434 00:19:41,155 --> 00:19:44,220 hagi d'executar a través que l'anomenada programa, de codi, que va 435 00:19:44,220 --> 00:19:46,060 prendre-ho com a entrada i produir una sortida. 436 00:19:46,060 --> 00:19:48,270 I almenys, per ara, en aquest entorn Linux, 437 00:19:48,270 --> 00:19:51,030 però això no és un requisit previ, això és just on anem a començar, 438 00:19:51,030 --> 00:19:53,960 en general, interactuar amb sistemes informàtics com aquest 439 00:19:53,960 --> 00:19:55,770 mitjançant una línia d'ordres trucada. 440 00:19:55,770 --> 00:19:57,790 Així que amb un parpelleig ràpida i el seu teclat, 441 00:19:57,790 --> 00:20:01,630 i no tant el punter del ratolí, i no tant les finestres i les icones i menús, 442 00:20:01,630 --> 00:20:02,980 més aviat tot és textual. 443 00:20:02,980 --> 00:20:06,180 I malgrat això se sent, en un primer moment vista, potser, com un pas cap a enrere, 444 00:20:06,180 --> 00:20:08,437 en realitat és una forma molt més forma poderosa i expressiva 445 00:20:08,437 --> 00:20:10,270 de controlar un ordinador especialment a mesura que, 446 00:20:10,270 --> 00:20:12,950 vostè mateix, es tornen més còmode des de menys. 447 00:20:12,950 --> 00:20:16,790 Això permetrà que vostè fa un munt més coses que simplement el que Microsoft 448 00:20:16,790 --> 00:20:20,390 o Apple li permet fer amb el seu sistema operatiu gràfic. 449 00:20:20,390 --> 00:20:23,270 >> Així que quan vaig arribar a Enter, ara, no passa res en aquesta ocasió 450 00:20:23,270 --> 00:20:25,960 perquè pel que sembla la hola programa està actualitzat. 451 00:20:25,960 --> 00:20:28,250 I el que era la comanda Vaig córrer darrere d'això? 452 00:20:28,250 --> 00:20:32,370 Dot slash hola, i hola món. 453 00:20:32,370 --> 00:20:34,350 Ara anem a fer un pas còpia d'un moment. 454 00:20:34,350 --> 00:20:39,510 Resulta que fan hola és només una forma simplificada de la compilació d'un programa. 455 00:20:39,510 --> 00:20:41,670 Anem a introduir una peça de l'argot, 456 00:20:41,670 --> 00:20:43,470 però després allunyar- d'ella, ja que no és 457 00:20:43,470 --> 00:20:46,640 tan interessant per als propòsits de l'actualitat. 458 00:20:46,640 --> 00:20:51,000 El compilador que començarem a utilitzar es diu Clang, per al llenguatge C. 459 00:20:51,000 --> 00:20:54,280 I aquest és un programa que s'executa només com ho vam fer en la línia d'ordres allà. 460 00:20:54,280 --> 00:20:56,580 I així, si vull compilar un programa que jo 461 00:20:56,580 --> 00:21:00,790 han escrit en un fitxer anomenat hola dot c, que, literalment, només escric Clang hola c 462 00:21:00,790 --> 00:21:02,100 entrar. 463 00:21:02,100 --> 00:21:04,880 >> El graciós és que, per raons històriques, 464 00:21:04,880 --> 00:21:07,750 si no s'especifica la nom del programa 465 00:21:07,750 --> 00:21:11,690 que jo vull a la sortida, si no ho faig especificar un nom de fitxer per als zeros 466 00:21:11,690 --> 00:21:14,990 i uns, molt rar Fa anys es va adoptar la convenció 467 00:21:14,990 --> 00:21:17,390 on se sentia una mena de bona resposta en el moment, 468 00:21:17,390 --> 00:21:21,650 així que anem a cridar arbitràriament el primer programa que compila un punt fora. 469 00:21:21,650 --> 00:21:22,900 Una és el primer en l'alfabet. 470 00:21:22,900 --> 00:21:23,920 Out, que és la sortida. 471 00:21:23,920 --> 00:21:26,210 Així que anem a trucar al programa per defecte un punt fora. 472 00:21:26,210 --> 00:21:29,550 I això està bé, perquè si vull executar el programa en aquest text basat 473 00:21:29,550 --> 00:21:33,590 medi ambient, jo només escric dot retallar un punt a terme entrar. 474 00:21:33,590 --> 00:21:35,250 I seria executar exactament igual que abans. 475 00:21:35,250 --> 00:21:36,880 Així que anem a veure que realment ràpid. 476 00:21:36,880 --> 00:21:40,370 >> Així que si torno al meu codi font en CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 i jo en comptes faig això, Clang hola bressol c entrar, avís res sembla succeir, 478 00:21:47,860 --> 00:21:49,790 però gairebé sempre en aquest entorn Linux, 479 00:21:49,790 --> 00:21:53,310 quan res dolent sembla succeir, que significa alguna cosa bona en realitat va succeir. 480 00:21:53,310 --> 00:21:56,270 Si no veu un error missatge, tot és probablement també. 481 00:21:56,270 --> 00:22:01,930 I de fet, si ara ho faig punt slash un punt terme entro, m'he trobat a mi mateix programa. 482 00:22:01,930 --> 00:22:04,610 Encara tinc el programa hola d'abans, perquè de fet, és 483 00:22:04,610 --> 00:22:07,430 serà molt més agradable just escrigui fer en lloc de recordar 484 00:22:07,430 --> 00:22:10,240 aquests conjurs de ordres, però anem a veure com ens 485 00:22:10,240 --> 00:22:12,890 podria millorar en això, però. 486 00:22:12,890 --> 00:22:15,340 >> Per tant, aquest és l'ordre per compilar el codi. 487 00:22:15,340 --> 00:22:19,100 Aquest és l'ordre per executar el codi compilat a partir de llavors. 488 00:22:19,100 --> 00:22:20,546 Com puc especificar un nom de fitxer? 489 00:22:20,546 --> 00:22:22,670 Bé anem a introduir una peça més de l'argot. 490 00:22:22,670 --> 00:22:24,461 Quan estàs en aquesta entorn basat en text, 491 00:22:24,461 --> 00:22:27,400 vostè va a voler especificar coses que es diuen arguments de la línia d'ordres. 492 00:22:27,400 --> 00:22:31,380 La qual cosa és només una forma elegant de dir, És a dir en el símbol que 493 00:22:31,380 --> 00:22:33,860 modificar el comportament del que sigui programa que s'està executant. 494 00:22:33,860 --> 00:22:37,320 Així específicament el programa que estic córrer, escrivint el nom del so metàl·lic, 495 00:22:37,320 --> 00:22:38,504 és el programa anomenat Clang. 496 00:22:38,504 --> 00:22:40,920 Així que això és o la vella escola equivalent a un doble clic 497 00:22:40,920 --> 00:22:42,860 en Microsoft Word o icona d'algun programa. 498 00:22:42,860 --> 00:22:46,360 Estic en comptes simplement escrivint el seu nom, però en aquesta versió de l'ordre, 499 00:22:46,360 --> 00:22:51,334 Llavors tinc dash espai o hola hola espai del punt c. 500 00:22:51,334 --> 00:22:53,500 Així que fins i tot si vostè mai ha jugat en aquest món abans, 501 00:22:53,500 --> 00:22:58,160 simplement prendre una conjectura el Què ruixada o hola fer? 502 00:22:58,160 --> 00:23:00,620 O què dirà so metàl·lic que fer? 503 00:23:00,620 --> 00:23:01,386 Sí. 504 00:23:01,386 --> 00:23:02,455 >> AUDIÈNCIA: [inaudible] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Malan: Sí. 506 00:23:03,330 --> 00:23:08,614 Simplement estableix la sortida de l'arxiu a ser hola en lloc del més ximple un punt fora. 507 00:23:08,614 --> 00:23:09,780 I, de fet, anem a provar això. 508 00:23:09,780 --> 00:23:14,250 Així que si ara ho faig, primer farem això, r m hola. 509 00:23:14,250 --> 00:23:15,590 Això és treure. 510 00:23:15,590 --> 00:23:18,450 I que dirà remove fitxer regular hola, que 511 00:23:18,450 --> 00:23:22,210 és innecessàriament arcà, però simplement mitjans fan que desitja esborrar l'arxiu, 512 00:23:22,210 --> 00:23:23,230 i jo escric i per a si. 513 00:23:23,230 --> 00:23:27,340 I noti, si estigués mirant a la part superior a l'esquerra, que va desaparèixer des d'allà dalt. 514 00:23:27,340 --> 00:23:32,180 Permetin-me ara faig soroll metàl·lic guió o, i Vaig a seguir endavant i fer-ho hola, 515 00:23:32,180 --> 00:23:34,890 en majúscules, hola punt c. 516 00:23:34,890 --> 00:23:37,775 Ara, si ho faig slash dot hola, què es pot esperar? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Potser és sensible a majúscules. 519 00:23:42,430 --> 00:23:43,070 Potser no ho és. 520 00:23:43,070 --> 00:23:44,030 Anem a veure. 521 00:23:44,030 --> 00:23:45,230 El fitxer o directori no existeix. 522 00:23:45,230 --> 00:23:47,438 I podem tipus de trampes per només mirar la part superior esquerra. 523 00:23:47,438 --> 00:23:49,630 Ho vaig fer jo, òbviament, guardar el programa com? 524 00:23:49,630 --> 00:23:51,070 Totes les tapes hola. 525 00:23:51,070 --> 00:23:53,020 Així que de fet, això és anar per fer una diferència. 526 00:23:53,020 --> 00:23:54,540 Així que ara hola món està de tornada. 527 00:23:54,540 --> 00:23:56,969 Ara bé, això és tot fi i bo, i tot molt ment-anestèsica, 528 00:23:56,969 --> 00:23:59,760 al tipus de empantanegar en aquests detalls, però entenent- 529 00:23:59,760 --> 00:24:00,500 està bé. 530 00:24:00,500 --> 00:24:02,675 >> Escrivint una ullada a aquests cada vegada més conjurs llargs 531 00:24:02,675 --> 00:24:05,980 no serà particularment diversió, així que la gent al món 532 00:24:05,980 --> 00:24:08,260 inventat un altre programa, Fa alguns anys, anomenat 533 00:24:08,260 --> 00:24:12,190 fer, que, senzillament, li permet escriure marca, 534 00:24:12,190 --> 00:24:14,530 el nom del programa vostè vol fer, i fer 535 00:24:14,530 --> 00:24:18,580 és intel·ligent en què es veurà en la carpeta actual, també conegut com el directori, 536 00:24:18,580 --> 00:24:21,440 i si vostè té un arxiu anomenada hola punt c, 537 00:24:21,440 --> 00:24:25,800 que és l'arxiu que es compilarà per a vostè en un programa que es diu hola. 538 00:24:25,800 --> 00:24:29,950 Així que és una manera molt més simple de fent els ordres més críptics 539 00:24:29,950 --> 00:24:30,800 que vam fer abans. 540 00:24:30,800 --> 00:24:34,080 I hem preconfigurat CS50 IDE saber 541 00:24:34,080 --> 00:24:38,560 que hauria de fer o guió i un nombre de altres banderes o arguments de la línia d'ordres, 542 00:24:38,560 --> 00:24:40,670 que veurem en poc temps. 543 00:24:40,670 --> 00:24:43,700 >> Però farem ara en realitat alguna cosa més interessant. 544 00:24:43,700 --> 00:24:46,950 Simplement teclejant fos el món hola a tots el temps no és tan convincent. 545 00:24:46,950 --> 00:24:52,280 Així que permetin-me anar per davant i el canvi aquest programa i dir hola David. 546 00:24:52,280 --> 00:24:54,120 Ara em vaig a anar per aquí. 547 00:24:54,120 --> 00:24:57,360 Vaig a seguir endavant i fer que saludar. 548 00:24:57,360 --> 00:25:00,652 I de nou ara que s'està veient fer que es mostra el temps 549 00:25:00,652 --> 00:25:03,360 script que és fent perquè hem configurat prèviament 550 00:25:03,360 --> 00:25:05,200 d'aquesta manera, però nosaltres no ha de preocupar-se pel moment 551 00:25:05,200 --> 00:25:10,735 el que està fent a part que és dot compilació slash hola, hola món. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Què passa? 554 00:25:15,510 --> 00:25:16,177 Sí. 555 00:25:16,177 --> 00:25:17,370 >> AUDIÈNCIA: [inaudible] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Malan: Sí. 557 00:25:18,203 --> 00:25:19,600 Així, l'error noobie. 558 00:25:19,600 --> 00:25:22,394 M'adono que això és molt subtil, però l'asterisc que aquí, a la fitxa, 559 00:25:22,394 --> 00:25:25,060 simplement vol dir que no hi hagi guardat, i els navegadors i altres programes 560 00:25:25,060 --> 00:25:25,930 fer això de vegades. 561 00:25:25,930 --> 00:25:27,939 Així de control o de comandament s s ha de salvar. 562 00:25:27,939 --> 00:25:29,730 Ara me n'aniré per davant i tornar a executar el programa. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Reconstruït localment. 565 00:25:34,260 --> 00:25:36,050 Dret, per la qual cosa és un procés de múltiples passos. 566 00:25:36,050 --> 00:25:39,400 Cap dels quals és particularment complex, però cada vegada que canviï l'arxiu, 567 00:25:39,400 --> 00:25:43,450 hem de canviar la resultant zeros i uns, i slash dot hola. 568 00:25:43,450 --> 00:25:43,950 Uau. 569 00:25:43,950 --> 00:25:46,450 Així que això és molt decebedor que simplement imprimim això. 570 00:25:46,450 --> 00:25:48,360 Anem a fer les coses una poc més dinàmic, ara. 571 00:25:48,360 --> 00:25:52,280 >> Doncs resulta, que igual que Scratch, C suporta variables. 572 00:25:52,280 --> 00:25:54,790 I resulta que si vols tenir una variable que emmagatzema, 573 00:25:54,790 --> 00:25:57,300 no és un nombre com si típicament va fer amb Scratch, 574 00:25:57,300 --> 00:26:01,300 però igual que una paraula, o un frase o un nom, 575 00:26:01,300 --> 00:26:04,837 pot especificar una variable a l'ésser de tipus cadena. 576 00:26:04,837 --> 00:26:06,670 Així que anem a veure més de aquests en un moment, 577 00:26:06,670 --> 00:26:09,090 però resulta que C, i una gran quantitat de llenguatges com ell, 578 00:26:09,090 --> 00:26:11,240 tenen tipus molt específics de variables. 579 00:26:11,240 --> 00:26:13,810 No és just com àlgebra, on s'obté una x, a i, z 580 00:26:13,810 --> 00:26:16,940 i aquests són només sempre nombres, en un llenguatge de programació 581 00:26:16,940 --> 00:26:20,030 vostè pot emmagatzemar nombres, pot emmagatzemar caràcters individuals, 582 00:26:20,030 --> 00:26:24,619 podria emmagatzemar paraules completes, podria emmagatzemar imatges sencers, arxius de so sencers, 583 00:26:24,619 --> 00:26:25,160 i similars. 584 00:26:25,160 --> 00:26:28,362 Així que hem d'especificar quin el tipus de la variable és. 585 00:26:28,362 --> 00:26:31,570 I, per convenció, vaig a trucar al meu s variables només perquè és succinta, 586 00:26:31,570 --> 00:26:33,510 i s significa cadena. 587 00:26:33,510 --> 00:26:36,400 >> I després em vaig a guardar dins d'aquesta variable, 588 00:26:36,400 --> 00:26:39,570 Igual que amb les ratllades quan s'utilitza el bloc conjunt, 589 00:26:39,570 --> 00:26:41,950 Vaig a utilitzar el operador d'assignació en C, 590 00:26:41,950 --> 00:26:45,290 que molt bé prou és la igualtat signar, però el signe igual fa això. 591 00:26:45,290 --> 00:26:53,220 Es mou una mica de la dreta en la banda esquerra de l'expressió. 592 00:26:53,220 --> 00:26:57,170 Així que el que he fet, per ser clars en línia de cinc, és que he declarat una variable. 593 00:26:57,170 --> 00:27:01,284 Li he dit a l'ordinador, dóna'm memòria per a una variable, en diuen és, 594 00:27:01,284 --> 00:27:03,950 i sé per endavant que vaig a posar una cadena en el mateix. 595 00:27:03,950 --> 00:27:05,950 I una cadena és només un seqüència de caràcters. 596 00:27:05,950 --> 00:27:09,190 És una paraula o una frase o paràgraf, però és una seqüència de caràcters. 597 00:27:09,190 --> 00:27:10,610 No és nombres. 598 00:27:10,610 --> 00:27:13,800 Què cadena seré posada en aquesta variable? 599 00:27:13,800 --> 00:27:16,185 Bé, pel que sembla citar Ho van dir ells, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Ara noti el patró que està emergint. 601 00:27:17,810 --> 00:27:19,260 Hi ha una expressió de l'esquerra. 602 00:27:19,260 --> 00:27:21,810 Hi ha una expressió de la dreta, separats pel signe igual. 603 00:27:21,810 --> 00:27:24,390 I acaba de prendre una conjectura, si desconegut, però, 604 00:27:24,390 --> 00:27:27,430 de manera que el punt i coma que està fent. 605 00:27:27,430 --> 00:27:28,865 El que és de suposar que fer per nosaltres? 606 00:27:28,865 --> 00:27:29,365 Sí? 607 00:27:29,365 --> 00:27:29,840 >> AUDIÈNCIA: [inaudible] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Malan: Sí. 609 00:27:29,980 --> 00:27:31,170 És només que acaba la línia. 610 00:27:31,170 --> 00:27:31,669 Oi? 611 00:27:31,669 --> 00:27:34,260 Els equips volen estar sense embuts va dir, literalment, el que ha de fer. 612 00:27:34,260 --> 00:27:36,343 Igual que la mantega de cacauet i exemple melmelada, 613 00:27:36,343 --> 00:27:39,360 si no s'especifica exactament el que es proposa, 614 00:27:39,360 --> 00:27:42,190 podria deixar-se a judici o error. 615 00:27:42,190 --> 00:27:44,890 Els mitjans de punt i coma, això és tot per aquesta comanda. 616 00:27:44,890 --> 00:27:48,310 Es tracta de ser molt precisa, i és una cosa molt fàcil de deixar fora. 617 00:27:48,310 --> 00:27:52,240 Així que ara aquest programa no sembla es comporten de manera diferent fins que 618 00:27:52,240 --> 00:27:53,500 fer-lo més dinàmic. 619 00:27:53,500 --> 00:27:57,107 Així que en lloc de disc podia meva pròpia nomenar, deixa posar un valor de marcador de posició. 620 00:27:57,107 --> 00:28:00,190 I resulta que, i ho sé d'haver llegit la documentació, 621 00:28:00,190 --> 00:28:04,080 i s'utilitza la funció durant anys, que printf va ser dissenyat per ser dinàmic. 622 00:28:04,080 --> 00:28:07,510 No ha de saber per endavant el que les paraules que vostè vol posar-hi. 623 00:28:07,510 --> 00:28:11,290 Vostè pot tenir un lloc marcador de posició, com per cent s, que 624 00:28:11,290 --> 00:28:15,500 que dirà la ordinador, va posar una cadena aquí. 625 00:28:15,500 --> 00:28:17,740 >> Quina cadena de què volem posar-hi? 626 00:28:17,740 --> 00:28:22,430 Will Resulta que entre aquests parèntesi, que recorden, demarquen 627 00:28:22,430 --> 00:28:28,020 l'entrada a una funció, si vostè té coma llista de coses separat aquí, 628 00:28:28,020 --> 00:28:31,790 que en realitat passa en múltiples entrades a una funció. 629 00:28:31,790 --> 00:28:33,901 Així que igual que alguns Scratch blocs, pot ser que no 630 00:28:33,901 --> 00:28:36,150 han jugat amb ells seus projectes encara o en tot, 631 00:28:36,150 --> 00:28:38,250 alguns blocs d'Scratch tenen dues entrades. 632 00:28:38,250 --> 00:28:41,220 Dues caixes blanques que puguis escriure nombres o paraules en. 633 00:28:41,220 --> 00:28:45,210 Així que per no C té funcions com printf que pot prendre dues entrades. 634 00:28:45,210 --> 00:28:48,050 I de nou, aquesta comes se separa. 635 00:28:48,050 --> 00:28:51,070 Així que en anglès, de nou, fins i tot si mai has programat abans, 636 00:28:51,070 --> 00:28:55,320 per que printf lògica és una funció, pren dues entrades, una de les quals 637 00:28:55,320 --> 00:28:58,810 és un marcador de posició, quina esperança printf es va a fer amb aquesta entrada? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Va a dir hola Hannah, amb sort. 640 00:29:03,220 --> 00:29:05,274 Així que per fer això hem de salvar-lo. 641 00:29:05,274 --> 00:29:06,190 Me'n vaig a allunyar. 642 00:29:06,190 --> 00:29:10,701 Vaig a tornar a baixar aquí i dir hola fan entrar. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Alguna cosa està malament, i de fet això és bastant aclaparador. 645 00:29:14,830 --> 00:29:18,400 Tinc sis línies de codi i igual que 12 línies d'errors. 646 00:29:18,400 --> 00:29:22,120 Per tant, esperem que això. 647 00:29:22,120 --> 00:29:24,260 Llavors, què està passant aquí? 648 00:29:24,260 --> 00:29:27,370 Així que la millor regla d'or aquí, sobretot quan estàs començant, 649 00:29:27,370 --> 00:29:29,370 no distreure per les coses a la part inferior. 650 00:29:29,370 --> 00:29:31,220 De fet, molt deliberadament simplement desplaçat fins 651 00:29:31,220 --> 00:29:33,930 perquè molt sovint, un ordinador és no tot el que brillant d'un dispositiu. 652 00:29:33,930 --> 00:29:35,054 Es va a confondre. 653 00:29:35,054 --> 00:29:37,220 Si veu una cosa que que no entén, 654 00:29:37,220 --> 00:29:40,030 podria confondre una altra línies de codi com incorrectes, 655 00:29:40,030 --> 00:29:41,649 encara que són perfectament bé. 656 00:29:41,649 --> 00:29:43,940 Així que sempre vol treballar de dalt a baix a través dels errors. 657 00:29:43,940 --> 00:29:47,850 I la veritat és que això és súper arcà en el moment. 658 00:29:47,850 --> 00:29:50,830 >> Error, l'ús de no declarat cadena d'identificador. 659 00:29:50,830 --> 00:29:52,130 Em refereixo estàndard? 660 00:29:52,130 --> 00:29:53,720 No, em referia cadena. 661 00:29:53,720 --> 00:29:55,830 I està apuntant a, potser és un error tipogràfic. 662 00:29:55,830 --> 00:30:00,570 Una cosa així com, comprovació d'ortografia en un manera molt geek, però la raó aquí, 663 00:30:00,570 --> 00:30:02,840 i sabràs això simplement per la pràctica, és 664 00:30:02,840 --> 00:30:06,390 que resulta que la cadena no existeix en C. De fet, C 665 00:30:06,390 --> 00:30:08,820 és un llenguatge particularment d'edat, i és molt baix nivell, 666 00:30:08,820 --> 00:30:11,361 i no ho fa un munt de característiques que podria haver crescut 667 00:30:11,361 --> 00:30:14,620 amb si vostè té, de fet, programada en Java, com alguns de vostès tenen, 668 00:30:14,620 --> 00:30:16,980 però es pot ensenyar coses noves. 669 00:30:16,980 --> 00:30:20,900 I, de fet, hem fet això CS50, tot i que al final del semestre, 670 00:30:20,900 --> 00:30:23,512 totes aquestes rodes d'entrenament s'haurà tret, 671 00:30:23,512 --> 00:30:25,220 el que fem en aquests primer parell de setmanes 672 00:30:25,220 --> 00:30:29,830 inicialment és també tenim incloure CS50 punt h. 673 00:30:29,830 --> 00:30:31,230 Què és un arxiu de capçalera. 674 00:30:31,230 --> 00:30:32,440 Més sobre això en el futur. 675 00:30:32,440 --> 00:30:36,430 >> És un arxiu que conté funcions que hem escrit per a tu. 676 00:30:36,430 --> 00:30:39,180 I entre aquestes funcions és funcions, per treure d'entrada 677 00:30:39,180 --> 00:30:43,520 per part de l'usuari, com cordes, i nombres i els nombres reals, i més. 678 00:30:43,520 --> 00:30:45,550 Però també té algunes dreceres. 679 00:30:45,550 --> 00:30:48,200 Defineix un booleà com un tipus de dades. 680 00:30:48,200 --> 00:30:50,340 C no té veritables o falses. 681 00:30:50,340 --> 00:30:53,880 Però podem donar-li la noció de veritable o fals a través d'aquesta biblioteca. 682 00:30:53,880 --> 00:30:57,670 I també no té una cadena construïda en fins a incloem aquesta línia. 683 00:30:57,670 --> 00:31:01,090 Així que aquesta línia de codi indica el compilador, hey, Clang, mira 684 00:31:01,090 --> 00:31:03,570 en aquest arxiu per a un conjunt paquet de programes que CS50 685 00:31:03,570 --> 00:31:06,330 ha escrit de manera que qualsevol persona que utilitzi aquest arxiu 686 00:31:06,330 --> 00:31:09,330 pot donar per feta la característiques han afegit. 687 00:31:09,330 --> 00:31:11,220 >> Així que ara em deixis anar per davant i esborrar la pantalla, 688 00:31:11,220 --> 00:31:14,178 i si curiosa Només dic de control l cada vegada per esborrar la pantalla, 689 00:31:14,178 --> 00:31:15,500 o pot escriure clar. 690 00:31:15,500 --> 00:31:19,220 Jo només vaig a seguir endavant i ara Tipus fan hola, i tot està bé. 691 00:31:19,220 --> 00:31:22,550 Tot i així una sortida arcà, però no és un missatge erroni. 692 00:31:22,550 --> 00:31:28,300 I si faig punt slash hola, i com a un costat, slash dot és desconegut per a la majoria. 693 00:31:28,300 --> 00:31:30,430 Només vol dir, mig punt el directori actual. 694 00:31:30,430 --> 00:31:33,120 Així que si vostè ha utilitzat alguna vegada DOS o Linux o Unix 695 00:31:33,120 --> 00:31:35,410 vostè podria haver fet alguna cosa com cd punt punt, on 696 00:31:35,410 --> 00:31:39,220 punt punt vol dir anar cap enrere en el temps, o anar cap enrere, o més amunt 697 00:31:39,220 --> 00:31:40,370 en el seu directori. 698 00:31:40,370 --> 00:31:43,090 Dot només significa mirar el directori actual. 699 00:31:43,090 --> 00:31:45,670 Vull saludar, que està just aquí. 700 00:31:45,670 --> 00:31:47,750 I, de fet, ara es diu hola Hannah. 701 00:31:47,750 --> 00:31:51,120 I si canvi de nou a Maria, recompilar 702 00:31:51,120 --> 00:31:55,650 faria hola, slash dot hola, el programa segueix canviant. 703 00:31:55,650 --> 00:31:58,060 >> Però això segueix sent una programa bastant estúpid. 704 00:31:58,060 --> 00:32:00,972 Si vull enviar aquest programa, o donar-lo a un amic, 705 00:32:00,972 --> 00:32:03,430 o donar-Maria o Anna per al cas, això està bé. 706 00:32:03,430 --> 00:32:07,300 Puc personalitzar per a tots dos, però mai va a ser dinàmic. 707 00:32:07,300 --> 00:32:10,870 No poden canviar un cop que es va compilar baix en aquests zeros i uns. 708 00:32:10,870 --> 00:32:12,350 Així que el que vam fer alguna cosa més intel·ligent? 709 00:32:12,350 --> 00:32:17,100 Què passaria si, en lloc de dur-codificació al programa el nom d'aquesta persona, 710 00:32:17,100 --> 00:32:20,890 ¿I si ens acaba d'arribar la cadena de la demanda? 711 00:32:20,890 --> 00:32:22,430 >> En altres paraules, deixa fer això. 712 00:32:22,430 --> 00:32:24,030 Vaig a tornar a compilar aquest programa. 713 00:32:24,030 --> 00:32:25,710 I permetin-me el zoom a la part inferior ara. 714 00:32:25,710 --> 00:32:29,920 Fer hola slash dot hola. 715 00:32:29,920 --> 00:32:31,710 Ara no està passant res. 716 00:32:31,710 --> 00:32:35,860 Podem obtenir un voluntari ràpida fer que alguna cosa succeeixi? 717 00:32:35,860 --> 00:32:36,360 Anem cap amunt. 718 00:32:36,360 --> 00:32:37,020 Com et dius? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Malan: Pacho? 721 00:32:38,361 --> 00:32:39,609 Anem cap amunt. 722 00:32:39,609 --> 00:32:42,150 Quan arribi aquí, això és serà molt decebedor, 723 00:32:42,150 --> 00:32:44,060 però és més interessant que jo escrivint-lo. 724 00:32:44,060 --> 00:32:49,007 Si vols seguir endavant i entreu la vostra nom, em va fer aquest programa només per a vostè. 725 00:32:49,007 --> 00:32:49,840 Només has d'escriure el teu nom. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Retorn. 728 00:32:53,900 --> 00:32:54,489 Meravellós. 729 00:32:54,489 --> 00:32:55,780 Molt bé, moltes gràcies. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Moltes gràcies. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Malan: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Aplaudiments] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Això va ser molt amable. 735 00:33:01,840 --> 00:33:03,145 Aquí tens. 736 00:33:03,145 --> 00:33:03,770 Què vam fer? 737 00:33:03,770 --> 00:33:05,930 Així que finalment, almenys, fet aquest programa dinàmic. 738 00:33:05,930 --> 00:33:08,400 Ara segueix sent dubte per disseny decebedor, 739 00:33:08,400 --> 00:33:11,480 però per fi tenim la capacitat ara que escriure codi per endavant, molt 740 00:33:11,480 --> 00:33:13,770 de la mateixa manera que els autors de printf, i després dinàmicament 741 00:33:13,770 --> 00:33:17,550 ADAPT basat en l'entrada som lliurat, ja sigui pel programador, 742 00:33:17,550 --> 00:33:20,610 o per l'ésser humà que és en realitat interactuar amb el programa. 743 00:33:20,610 --> 00:33:22,990 Així que anem a tractar en realitat ara fer algunes altres construccions 744 00:33:22,990 --> 00:33:26,625 i veure si no podem fer que els programes a si mateixos més sofisticat. 745 00:33:26,625 --> 00:33:29,250 Així que seguirem endavant i en lloc de escriure aquesta un des de zero, 746 00:33:29,250 --> 00:33:31,540 Vaig a anar a avui codi font, i tot això 747 00:33:31,540 --> 00:33:34,290 està disponible en el curs de lloc web, i vostè pot arrossegar 748 00:33:34,290 --> 00:33:36,590 en el seu propi entorn arribat divendres vegada problema 749 00:33:36,590 --> 00:33:38,506 conjunt 1 li dóna la instruccions, o vostè podria 750 00:33:38,506 --> 00:33:41,200 fer-ho en la línia d'ordres bé, però més per venir en conjunt 1 p. 751 00:33:41,200 --> 00:33:44,940 >> Anem a veure el que hi ha en aquest programa aquí es diu, punt sumador c. 752 00:33:44,940 --> 00:33:47,970 Ara que ja he comentat , Però què hi ha de nou? 753 00:33:47,970 --> 00:33:51,230 A primera vista, quina línia del codi és absolutament nou? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Probablement no, fonamentalment, familiaritzats ara. 756 00:33:56,780 --> 00:33:58,417 >> AUDIÈNCIA: [inaudible] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Malan: Sí, així int x és igual a tenir n. 758 00:34:00,250 --> 00:34:03,760 Mai hem vist una mica d'això abans, però int és probablement 759 00:34:03,760 --> 00:34:08,179 el símbol de la classe de variables, [? d '?] un nombre sencer. 760 00:34:08,179 --> 00:34:09,040 Així int del tot. 761 00:34:09,040 --> 00:34:11,420 És només sent més succinta. x és només arbitrària. 762 00:34:11,420 --> 00:34:13,920 x i y i z són encara bastant raonable per als nombres, 763 00:34:13,920 --> 00:34:16,790 però en general utilitzarem paraules una vegada els nostres programes es tornen més complexes. 764 00:34:16,790 --> 00:34:18,940 Obtenir int, per descomptat, de la mateixa manera que la cadena get, 765 00:34:18,940 --> 00:34:21,629 és, probablement, aconseguirà 1 int l'usuari, 766 00:34:21,629 --> 00:34:23,670 i després anem a fer el mateix amb i. 767 00:34:23,670 --> 00:34:27,610 I pel que sembla, tot i que aquest última línia, de 24 anys, sembla més complexa, 768 00:34:27,610 --> 00:34:32,679 que dirà la suma d'aquesta i és aquesta una altra cosa. 769 00:34:32,679 --> 00:34:35,840 >> I fixin-cent i probablement denota què? 770 00:34:35,840 --> 00:34:38,190 Quin paper fa cent i aparentment serveixo? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 És només marcadors de posició. 773 00:34:41,719 --> 00:34:42,219 Oi? 774 00:34:42,219 --> 00:34:45,149 Percentatge s era per a corda, cent i és del tot. 775 00:34:45,149 --> 00:34:47,690 No serà cent f per valor de punt, flotant que 776 00:34:47,690 --> 00:34:49,273 és només un número amb un punt decimal. 777 00:34:49,273 --> 00:34:50,590 En altres paraules, un nombre real. 778 00:34:50,590 --> 00:34:55,270 Així que anem a compilar aquesta realitat programar molt ràpid i no fer escurçó. 779 00:34:55,270 --> 00:34:57,962 Vaja. 780 00:34:57,962 --> 00:34:58,670 Bona oportunitat. 781 00:34:58,670 --> 00:35:02,970 Així que notar aquí, tot aquest temps el meu usuari nom per es jharvard aquest compte. 782 00:35:02,970 --> 00:35:06,620 Estic en IDE CS50, àlies IDE50. 783 00:35:06,620 --> 00:35:11,030 I ara en blau aquí, és una menció, però del medi ambient, d'on jo sóc. 784 00:35:11,030 --> 00:35:16,050 I de fet, si el zoom fins al cim aquí, fixa't que tinc una IDE50 785 00:35:16,050 --> 00:35:19,490 i veig aquesta paraula, si la classe de giri el cap cap a un costat, espai de treball. 786 00:35:19,490 --> 00:35:23,890 En poques paraules, el fet que Estic veient espai de treball de tala accent 787 00:35:23,890 --> 00:35:26,910 significa que en aquest text entorn d'ordres basada, 788 00:35:26,910 --> 00:35:32,300 Sóc al text equivalent de aquesta gràfica carpeta aquí. 789 00:35:32,300 --> 00:35:35,730 Així que quan ho faig slash dot escurçó, és a dir no la regla 790 00:35:35,730 --> 00:35:37,372 fer parada sumador objectiu. 791 00:35:37,372 --> 00:35:39,830 No sé el que això significa, però és dolent per alguna raó. 792 00:35:39,830 --> 00:35:43,310 el fitxer o directori no existeix és encara més clara. 793 00:35:43,310 --> 00:35:45,670 On és llavors? 794 00:35:45,670 --> 00:35:47,820 Basat en on vaig fer clic per obrir el fitxer anterior. 795 00:35:47,820 --> 00:35:49,442 On podria ser? 796 00:35:49,442 --> 00:35:52,050 >> És probablement a la font un sol w, per al dimecres, 797 00:35:52,050 --> 00:35:53,960 i puc veure que, en efecte, si obro això. 798 00:35:53,960 --> 00:35:57,220 Hi ha sumador de punt c, però en aquest entorn basat en text, 799 00:35:57,220 --> 00:35:59,380 de nou, he de ser molt explícit. 800 00:35:59,380 --> 00:36:03,950 Si vull canviar de directori a font d'un dimecres, necessito escriure, 801 00:36:03,950 --> 00:36:07,210 cd espai d'origen es Dimecres entrar i ara 802 00:36:07,210 --> 00:36:09,810 meus prompt canvia a dóna'm un senyal visual que 803 00:36:09,810 --> 00:36:12,330 Jo sóc, de fet, en altres llocs en el meu entorn, 804 00:36:12,330 --> 00:36:15,710 però ara que puc fer fer escurçó, sembla que funciona, 805 00:36:15,710 --> 00:36:18,190 punt slash escurçó, dóna'm un sencer. 806 00:36:18,190 --> 00:36:19,080 Un. 807 00:36:19,080 --> 00:36:20,070 Dos. 808 00:36:20,070 --> 00:36:21,630 La suma d'un i dos és tres. 809 00:36:21,630 --> 00:36:24,140 Però si jo no coopero, anem a veure el aconsegueix int fa. 810 00:36:24,140 --> 00:36:25,200 Dóna'm un sencer. 811 00:36:25,200 --> 00:36:26,590 No. 812 00:36:26,590 --> 00:36:27,350 Torneu a intentar-ho. 813 00:36:27,350 --> 00:36:29,060 D'ACORD. 814 00:36:29,060 --> 00:36:30,520 Fine. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Tot bé. 818 00:36:33,010 --> 00:36:34,055 Per tant, finalment coopera. 819 00:36:34,055 --> 00:36:36,430 I això és part de la funcionalitat que aquestes funcions 820 00:36:36,430 --> 00:36:37,760 s'han incorporat per a vostè. 821 00:36:37,760 --> 00:36:43,330 >> Per tant dins de la implementació d'aconseguir int, el que la programació 822 00:36:43,330 --> 00:36:47,990 construir a partir de la setmana passada és probablement en no per obligar a aquest comportament altre intent, 823 00:36:47,990 --> 00:36:49,962 tornar a intentar, torneu a intentar? 824 00:36:49,962 --> 00:36:51,670 Sí, és probable que hi hagi algun tipus de bucle. 825 00:36:51,670 --> 00:36:54,160 Es va a veure sintàcticament diferent de blocs de Scratch, 826 00:36:54,160 --> 00:36:55,880 però això és de fet el que hi ha dins de l'arxiu. 827 00:36:55,880 --> 00:36:58,505 I en unes setmanes anem a realment es veuen a la biblioteca CS50 828 00:36:58,505 --> 00:37:02,000 pel que fa al que hi ha dins, però hi ha un bucle imposar exactament això. 829 00:37:02,000 --> 00:37:04,840 >> Anem a jugar una mica ximple joc aquí amb aquest arxiu. 830 00:37:04,840 --> 00:37:06,550 Condició del zero punt c. 831 00:37:06,550 --> 00:37:08,960 Només anem a general començarà a comptar des de zero. 832 00:37:08,960 --> 00:37:11,220 I segueixo desplaçament passat algunes de les coses a la part superior. 833 00:37:11,220 --> 00:37:15,390 En blau aquí, demarcada amb tot d'aquestes estrelles i les barres, 834 00:37:15,390 --> 00:37:17,310 aquells de vostès que programar abans, què és això? 835 00:37:17,310 --> 00:37:18,690 Per què seguim saltant sobre ella? 836 00:37:18,690 --> 00:37:19,110 Què? 837 00:37:19,110 --> 00:37:19,490 >> AUDIÈNCIA: És un comentari. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Malan: Sí. 839 00:37:19,800 --> 00:37:20,633 És només un comentari. 840 00:37:20,633 --> 00:37:24,160 Aquest és un comentari per als éssers humans per llegir, que en el nostre cas, 841 00:37:24,160 --> 00:37:27,120 ens diu el que el nom del fitxer és a dir, que la va escriure, i el que fa, 842 00:37:27,120 --> 00:37:28,610 de manera que vostè no té per llegir el codi 843 00:37:28,610 --> 00:37:30,110 saber el que aquest arxiu es tracta. 844 00:37:30,110 --> 00:37:33,110 És només una descripció, però funcionalment és irrellevant. 845 00:37:33,110 --> 00:37:35,930 I jo ni tan sols puc esborrar de meu arxiu i que no té cap impacte. 846 00:37:35,930 --> 00:37:38,740 Les línies sucoses són aquests primer dos aquí, ara. 847 00:37:38,740 --> 00:37:41,405 void main int és l'equivalent de la nostra bandera verda quan es fa clic, 848 00:37:41,405 --> 00:37:44,030 així que deixarem que sigui per avui, i anem a tornar, 849 00:37:44,030 --> 00:37:46,940 Finalment, pel que fa al int i sense efecte són, però ara, 850 00:37:46,940 --> 00:37:49,500 compte del que he fet també en aquest cas, també pot, 851 00:37:49,500 --> 00:37:51,736 si té una en línia comentar, si vostè té 852 00:37:51,736 --> 00:37:54,670 Un pensament que voleu compartir sobre una determinada línia de codi, 853 00:37:54,670 --> 00:37:58,910 convenció a C és fer slash retallar, i després unes paraules breus, 854 00:37:58,910 --> 00:38:01,500 no una frase completa, generalment no un paràgraf, 855 00:38:01,500 --> 00:38:05,310 que simplement explica a vostè, o el seu TF, o altres lectors o companys de treball, 856 00:38:05,310 --> 00:38:06,990 el que el seu codi està fent. 857 00:38:06,990 --> 00:38:10,150 Així que en lloc d'haver de mirar en aquest i inferir a partir de línies 858 00:38:10,150 --> 00:38:12,550 09:00 i 10, el que és aquesta fent, en la línia de vuit 859 00:38:12,550 --> 00:38:14,945 Acabo de fer un comentari al preguntar a l'usuari un nombre sencer, 860 00:38:14,945 --> 00:38:17,820 llavors jo no he de pensar molt sobre el que les línies de nou i 10 són. 861 00:38:17,820 --> 00:38:19,720 Només sé que això és el que col·lectivament que estan fent. 862 00:38:19,720 --> 00:38:20,460 >> Com? 863 00:38:20,460 --> 00:38:22,060 Bé, aquí hi ha el símbol. 864 00:38:22,060 --> 00:38:23,610 Aquí hi ha el aconseguir l'int. 865 00:38:23,610 --> 00:38:25,984 I sobre la base de l'anterior comportament, sembla que get int 866 00:38:25,984 --> 00:38:29,080 és prou intel·ligent com per assegurar-se que l'humà coopera i l'hi dóna 867 00:38:29,080 --> 00:38:30,090 un enter. 868 00:38:30,090 --> 00:38:32,270 Però ara veiem això. 869 00:38:32,270 --> 00:38:33,740 I això és una reminiscència d'Scratch. 870 00:38:33,740 --> 00:38:36,140 Estic dient que estic l'anàlisi de la entrada de l'usuari, 871 00:38:36,140 --> 00:38:39,050 però alguna cosa inexacta. 872 00:38:39,050 --> 00:38:43,200 I això pel que sembla en C és com expressem un cas més, una branca, 873 00:38:43,200 --> 00:38:46,320 una forquilla a la carretera, però jo dir alguna cosa imprecisa. 874 00:38:46,320 --> 00:38:50,470 Quin és l'error en aquest programa? 875 00:38:50,470 --> 00:38:51,610 Sobre recolzar encara més? 876 00:38:51,610 --> 00:38:52,223 Sí. 877 00:38:52,223 --> 00:38:53,150 >> AUDIÈNCIA: [inaudible] zero. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Malan: Sí. 879 00:38:54,025 --> 00:38:57,630 Així que si jo escric en zero, considerarem exactament aquest cas cas, oa la cantonada, 880 00:38:57,630 --> 00:38:58,450 si es vol. 881 00:38:58,450 --> 00:39:02,790 Així que si jo escric en zero, el que l' blocs va aparentment per apoderar-se'n? 882 00:39:02,790 --> 00:39:04,660 El cas o de l'altra persona? 883 00:39:04,660 --> 00:39:07,340 L'altra persona, i que dirà, que va triar un nombre negatiu. 884 00:39:07,340 --> 00:39:10,476 I, en efecte, no se suposa zero a ser positiu o negatiu, 885 00:39:10,476 --> 00:39:11,850 i pel que seria erròniament. 886 00:39:11,850 --> 00:39:12,930 Això seria un error. 887 00:39:12,930 --> 00:39:14,580 Llavors, com podem solucionar aquest problema? 888 00:39:14,580 --> 00:39:16,360 Algú que mai ha programat abans? 889 00:39:16,360 --> 00:39:16,570 Vols-- 890 00:39:16,570 --> 00:39:17,480 >> AUDIÈNCIA: [inaudible] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Malan: Retracció? 892 00:39:17,990 --> 00:39:18,570 >> AUDIÈNCIA: [inaudible] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Malan: Oh, vostè té? 894 00:39:18,930 --> 00:39:20,350 Algú que mai ha programat abans. 895 00:39:20,350 --> 00:39:21,750 Vols provar la seva sort en la això, a la camisa vermella? 896 00:39:21,750 --> 00:39:22,600 Anem cap amunt. 897 00:39:22,600 --> 00:39:25,320 Oh sí, anem cap amunt, si no us importa. 898 00:39:25,320 --> 00:39:27,586 Així que mai haver programat abans, com et dius? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Malan: Lauren, d'acord. 901 00:39:29,626 --> 00:39:31,150 Així que corregir aquest error per a nosaltres. 902 00:39:31,150 --> 00:39:35,070 Vostè no ha vist C, presumiblement, i probablement cap altre idioma. 903 00:39:35,070 --> 00:39:38,380 Així que arreglar aquest programa per a nosaltres. 904 00:39:38,380 --> 00:39:39,100 Encantat de conèixer-te. 905 00:39:39,100 --> 00:39:39,615 No hi ha pressió. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Sí. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Malan: Però, de nou, si això aposta va d'acord al pla, 909 00:39:46,270 --> 00:39:48,350 el menjar per emportar aquí ho farà ser, simplement de nou, per iniciar 910 00:39:48,350 --> 00:39:51,080 a notar patrons i inferir de sintaxi existent 911 00:39:51,080 --> 00:39:55,420 com és possible expressar la resta vostè mateix, sense joc de paraules, per tal 912 00:39:55,420 --> 00:39:58,410 capturar alguna cosa escenari addicional. 913 00:39:58,410 --> 00:39:59,603 Així que estem dient else if. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, bo. 916 00:40:05,230 --> 00:40:09,120 I compta amb CS50 IDE, i l'IDE frankly-- 917 00:40:09,120 --> 00:40:11,110 representa Integrat Entorn de desenvolupament. 918 00:40:11,110 --> 00:40:14,110 És només una forma elegant de dir un programa que ajuda als programes. 919 00:40:14,110 --> 00:40:16,779 Ho fa fàcils d'usar coses com quan s'escriu un sol parèntesi, 920 00:40:16,779 --> 00:40:18,320 et dóna automàticament l'altre. 921 00:40:18,320 --> 00:40:20,760 La presumpció és que ets finalment voldrà escriure que, 922 00:40:20,760 --> 00:40:22,400 i també ho fa amb cometes. 923 00:40:22,400 --> 00:40:24,190 >> Per això m'agrada la línia 23. 924 00:40:24,190 --> 00:40:26,400 El 99% del camí. 925 00:40:26,400 --> 00:40:29,920 Algú vol ficar la seva cullera amb una punta? 926 00:40:29,920 --> 00:40:31,420 Vaig sentir un punt i coma de l'audiència. 927 00:40:31,420 --> 00:40:32,080 Bé. 928 00:40:32,080 --> 00:40:33,260 Així que completa això. 929 00:40:33,260 --> 00:40:37,930 I ara, només tinc una mica consternació amb la línia 21. 930 00:40:37,930 --> 00:40:41,370 Com volem expressar això? 931 00:40:41,370 --> 00:40:43,370 Què pregunta què volem preguntar, què et sembla? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Així que anteriorment vam fer la pregunta, si n és més gran que zero, fer això. 934 00:40:50,330 --> 00:40:51,870 Si no, fer això. 935 00:40:51,870 --> 00:40:54,317 Així que hem de triar un pregunta que fer aquí. 936 00:40:54,317 --> 00:40:55,192 AUDIÈNCIA: [inaudible] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Malan: Good. 938 00:40:56,530 --> 00:40:58,290 Així que si n és igual a zero. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Excel·lent. 941 00:41:02,100 --> 00:41:03,080 Així que farem una pausa aquí. 942 00:41:03,080 --> 00:41:04,850 Moltes gràcies per desafiar això. 943 00:41:04,850 --> 00:41:10,890 Deixeu-me donar-li una mica merescut bola de la tensió, potser no. 944 00:41:10,890 --> 00:41:11,900 Així que estem gairebé allà. 945 00:41:11,900 --> 00:41:14,790 De fet, Lauren, si no ho fa ment, permetin-me fer un sol pessigar aquí, 946 00:41:14,790 --> 00:41:17,850 només per ser coherent, fins i tot amb el que vam veure en Scratch, el 947 00:41:17,850 --> 00:41:21,080 faig el que vull fer amb línies 21 i 24, només es basa de nou 948 00:41:21,080 --> 00:41:23,290 de com ho vam fer en Scratch, potser? 949 00:41:23,290 --> 00:41:24,230 >> AUDIÈNCIA: Moveu cap amunt. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Malan: Sí, moure cap amunt. 951 00:41:25,605 --> 00:41:30,260 Així la condició més, la tercera, o quarta, o cinquena, o branca final, 952 00:41:30,260 --> 00:41:34,100 de fet havia de venir després, i això és només per convenció, 953 00:41:34,100 --> 00:41:36,047 perquè si es vol. 954 00:41:36,047 --> 00:41:37,380 Així que necessito per fer aquest truc. 955 00:41:37,380 --> 00:41:39,660 I he de posar la meva clau de volta aquí. 956 00:41:39,660 --> 00:41:42,700 I ara, aquest programa es compilarà. 957 00:41:42,700 --> 00:41:46,140 Estem tan a prop, però hi ha un error molt, molt subtil. 958 00:41:46,140 --> 00:41:47,200 Anem a veure què passa. 959 00:41:47,200 --> 00:41:49,660 >> En primer lloc, deixa anar endavant i allunyar la imatge. 960 00:41:49,660 --> 00:41:53,405 Vaig a seguir endavant i escrigui fer condició zero. 961 00:41:53,405 --> 00:41:55,070 Oh, vaig mentir. 962 00:41:55,070 --> 00:41:58,760 Ara és el compilador realment molt intel·ligent. 963 00:41:58,760 --> 00:42:00,950 I jo no entenc molt bé és un missatge d'error. 964 00:42:00,950 --> 00:42:04,310 Utilitzant el resultat d'una assignació com una condició sense parèntesis, 965 00:42:04,310 --> 00:42:05,740 aparentment és dolent. 966 00:42:05,740 --> 00:42:07,100 Però, què significa això? 967 00:42:07,100 --> 00:42:10,860 >> Doncs de nou, a la recerca de patrons en el codi que hem vist abans, 968 00:42:10,860 --> 00:42:16,640 el que és la línia 17 realment fer, tot i que Lauren pretén lleugerament 969 00:42:16,640 --> 00:42:18,790 d'una altra manera? 970 00:42:18,790 --> 00:42:19,290 Sí. 971 00:42:19,290 --> 00:42:21,565 >> AUDIÈNCIA: [inaudible] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Malan: Sí. 973 00:42:22,440 --> 00:42:26,610 Així que recorda el signe igual, pel que sembla, com hem fet servir abans, no és igual. 974 00:42:26,610 --> 00:42:29,240 La seva missió, de dreta a esquerra. 975 00:42:29,240 --> 00:42:33,810 Així que la línia 17 de moment és una condició, i és 976 00:42:33,810 --> 00:42:37,890 l'execució de codi dins dels parèntesis, però quan aquest codi s'executa, 977 00:42:37,890 --> 00:42:42,140 el que està succeint amb el valor de zero? 978 00:42:42,140 --> 00:42:45,250 Què està passant amb el valor de n? 979 00:42:45,250 --> 00:42:46,810 Convertir-se en zero. 980 00:42:46,810 --> 00:42:50,520 Així que si n s'està convertint en zero, i una altra, com la setmana passada, 981 00:42:50,520 --> 00:42:54,690 generalment diem que zero és fals i un és veritable, 982 00:42:54,690 --> 00:42:57,410 o si és una sola i no és zero. 983 00:42:57,410 --> 00:42:59,590 Així veritat i la falsedat, l'un i 0. 984 00:42:59,590 --> 00:43:06,090 Si n com de la línia 17 ha estat donat el valor 0, és zero cert? 985 00:43:06,090 --> 00:43:06,590 No. 986 00:43:06,590 --> 00:43:08,280 Per definició, el zero és fals. 987 00:43:08,280 --> 00:43:10,860 Aquesta és la convenció que estem va aferrar-se a seguir endavant. 988 00:43:10,860 --> 00:43:17,320 El mateix passarà amb les línies 18, 19 i 20 cada vegada s'apliquen ara, lògicament? 989 00:43:17,320 --> 00:43:18,320 No poden. 990 00:43:18,320 --> 00:43:21,640 Així que li preguntem a la pregunta però no amb prou precisió, 991 00:43:21,640 --> 00:43:25,620 i no vas a saber això a menys vostè ho ha vist, la solució en C 992 00:43:25,620 --> 00:43:29,610 és quan es vol expressar la igualtat, dius iguals iguals. 993 00:43:29,610 --> 00:43:33,140 Així signe igual ja estava esgotat mitjançant cessió, de dreta a esquerra. 994 00:43:33,140 --> 00:43:35,110 És igual a igual als mitjans és igual. 995 00:43:35,110 --> 00:43:37,950 I si realment vols que la teva ment a doblegar, en JavaScript i PHP, 996 00:43:37,950 --> 00:43:40,490 no és igual a igual als iguals, que significa una cosa completament diferent, 997 00:43:40,490 --> 00:43:41,990 però anem a arribar a que en poc temps. 998 00:43:41,990 --> 00:43:45,760 >> Així que aquesta és una solució simple, però s'adonen super fàcil de fer d'aquest error, 999 00:43:45,760 --> 00:43:48,700 i després es pregunten i la lluita per minut, si no una hora, 1000 00:43:48,700 --> 00:43:51,490 Per què és el meu codi no executar com tinc la intenció? 1001 00:43:51,490 --> 00:43:54,140 És perquè no l'hi vas dir és exactament el que volia dir. 1002 00:43:54,140 --> 00:43:56,450 Així que era gairebé perfecte, i va ser genial 1003 00:43:56,450 --> 00:44:00,760 que ens ensopeguem amb aquests dos petits coses perquè ara si les arreglem, 1004 00:44:00,760 --> 00:44:06,240 i ho faig fer condició de zero punt slash condició zero, 1005 00:44:06,240 --> 00:44:07,490 M'agradaria un enter per favor. 1006 00:44:07,490 --> 00:44:08,090 Anem a veure. 1007 00:44:08,090 --> 00:44:09,160 No. 1008 00:44:09,160 --> 00:44:10,740 Es va a obligar-me a fer-ho. 1009 00:44:10,740 --> 00:44:11,990 Així que 42. 1010 00:44:11,990 --> 00:44:13,590 Vaig triar un nombre positiu. 1011 00:44:13,590 --> 00:44:16,470 Així que ara Com demostro aquest programa correcte? 1012 00:44:16,470 --> 00:44:19,990 Si vostè és un matemàtic, no es pot realment provar això per assaig i error, 1013 00:44:19,990 --> 00:44:20,490 Oi? 1014 00:44:20,490 --> 00:44:23,180 Vostè pot impermeabilitzar no només per exemple, però almenys 1015 00:44:23,180 --> 00:44:25,494 com a programador no estem va a tractar de demostrar de moment 1016 00:44:25,494 --> 00:44:27,660 que aquest és en realitat correcte, però probablement hauria 1017 00:44:27,660 --> 00:44:29,470 provar alguns casos representatius. 1018 00:44:29,470 --> 00:44:31,070 >> He provat 42. 1019 00:44:31,070 --> 00:44:33,030 Vaig poder provar 43. 1020 00:44:33,030 --> 00:44:34,910 Vaig poder provar 44. 1021 00:44:34,910 --> 00:44:35,640 Prova 45. 1022 00:44:35,640 --> 00:44:36,140 Oi? 1023 00:44:36,140 --> 00:44:37,860 Però podria fer-ho un temps molt llarg. 1024 00:44:37,860 --> 00:44:39,925 Quin seria una mica més casos interessants per provar? 1025 00:44:39,925 --> 00:44:41,050 AUDIÈNCIA: [inaudible] zero. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Malan: Així que zero. 1027 00:44:41,740 --> 00:44:42,297 Certament. 1028 00:44:42,297 --> 00:44:44,880 I bé, el tenim en aquesta ocasió, gràcies al nou codi de Lauren. 1029 00:44:44,880 --> 00:44:46,213 Què hi ha un altre bon cas per tractar? 1030 00:44:46,213 --> 00:44:47,320 AUDIÈNCIA: Un punt negatiu. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Malan: un negatiu, i potser alguna cosa una mica més gran, 1032 00:44:50,070 --> 00:44:52,617 així que potser negatiu 42, però en general, quan 1033 00:44:52,617 --> 00:44:54,450 provar els programes seguir endavant, ets 1034 00:44:54,450 --> 00:44:56,325 voldrà pensar a si mateix, com ho 1035 00:44:56,325 --> 00:44:58,050 són els casos fonamentals diferents. 1036 00:44:58,050 --> 00:45:01,720 I m'atreveixo a dir un cas negatiu, un cas positiu, i un cas zero 1037 00:45:01,720 --> 00:45:03,365 gairebé arrodoneix a terme. 1038 00:45:03,365 --> 00:45:04,990 Fem una ullada a una variant d'aquest embargament. 1039 00:45:04,990 --> 00:45:06,930 Condicions un. 1040 00:45:06,930 --> 00:45:11,224 Aquesta és una solució correcta aquí, de manera que vostè veurà dos i en línia, 1041 00:45:11,224 --> 00:45:13,390 si vostè camina a través de la tutorials, generalment, 1042 00:45:13,390 --> 00:45:18,090 incrementar pas a pas fins que aquests obtenir exactament l'enfocament correcte. 1043 00:45:18,090 --> 00:45:20,070 El que si volíem demanar dues preguntes alhora? 1044 00:45:20,070 --> 00:45:22,200 >> Permetin-me obrir aquest lloc. 1045 00:45:22,200 --> 00:45:26,740 Non-switch, per raons anem a veure una altra vegada. 1046 00:45:26,740 --> 00:45:29,610 Què hi ha de nou sintàcticament aquí? 1047 00:45:29,610 --> 00:45:32,760 Actualment estic jugant un joc on l'equip està dient 1048 00:45:32,760 --> 00:45:35,550 jo, jo dono un sencer entre un i 10, 1049 00:45:35,550 --> 00:45:37,180 i després m'estic jutjant la entrada de l'usuari. 1050 00:45:37,180 --> 00:45:39,180 En Anglès, basat en el codi que veus aquí 1051 00:45:39,180 --> 00:45:41,530 en blau, el que fa aquest programa? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 AUDIÈNCIA: [inaudible] recollit un nombre gran o petit. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Malan: Sí. 1055 00:45:46,484 --> 00:45:49,450 És només l'adjudicació si Vaig triar un gran, o mitjà, 1056 00:45:49,450 --> 00:45:53,900 o nombre petit basa en una molt definició arbitrària de petites, mitjanes, 1057 00:45:53,900 --> 00:45:58,510 i grans aquí, però avís la sintaxi que és nou és la següent. 1058 00:45:58,510 --> 00:46:02,340 Hi ha no menys de int o igual a signar, o més gran que o igual a signar, 1059 00:46:02,340 --> 00:46:05,430 on un és sobre l'altre, que pot expressar en com Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Així que en un llenguatge de programació que normalment només fer dos personatges, 1061 00:46:08,180 --> 00:46:09,450 un després de l'altre. 1062 00:46:09,450 --> 00:46:12,695 ¿I què té això probablement representar, signe ampersand. 1063 00:46:12,695 --> 00:46:13,570 AUDIÈNCIA: [inaudible] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Malan: Sí. 1065 00:46:13,680 --> 00:46:16,910 Només significa i perquè Resulta que els autors de C 1066 00:46:16,910 --> 00:46:19,120 utilitzat un sol signe, que es podria pensar 1067 00:46:19,120 --> 00:46:22,430 seria perfecte per a la noció i de, ja està esgotat, 1068 00:46:22,430 --> 00:46:27,300 signe tan ampersand realitat capta el cas que realment volem. 1069 00:46:27,300 --> 00:46:30,610 >> Així que ara anem a ensopegar a través de dues coses. 1070 00:46:30,610 --> 00:46:32,640 Déjame anar per davant i obrir un. 1071 00:46:32,640 --> 00:46:36,590 Una cosa que és una mica preocupant. 1072 00:46:36,590 --> 00:46:37,970 La imprecisió del punt c. 1073 00:46:37,970 --> 00:46:40,260 Permetin-me presentar a dues coses aquí. 1074 00:46:40,260 --> 00:46:44,720 Un, l'avís que podem fer matemàtiques, ja que igual que abans, quan 1075 00:46:44,720 --> 00:46:47,797 vam fer més de dos nombres, x i y. 1076 00:46:47,797 --> 00:46:49,380 Què és aquest programa, aparentment fent? 1077 00:46:49,380 --> 00:46:52,140 Jo no he comentat encara, i jo he introduït cent f, 1078 00:46:52,140 --> 00:46:55,720 però ràpidament he dit abans cent f significa punt flotant 1079 00:46:55,720 --> 00:46:56,970 valor, que és un nombre real. 1080 00:46:56,970 --> 00:46:59,520 Una cosa amb un decimal punt, que no és un enter. 1081 00:46:59,520 --> 00:47:02,270 Què creus que aquest programa és tractant de mostrar a la pantalla? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Sí? 1084 00:47:06,050 --> 00:47:07,550 AUDIÈNCIA: El resultat d'una sobre 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Malan: Sí. 1086 00:47:07,780 --> 00:47:09,680 Quin és el resultat d'un dividit per 10. 1087 00:47:09,680 --> 00:47:12,721 És clar, perquè tots vostès tenen probablement crescut sabent que un de més de 10 1088 00:47:12,721 --> 00:47:14,502 es que? 1089 00:47:14,502 --> 00:47:16,220 Sí, és només un dècima o 0.1. 1090 00:47:16,220 --> 00:47:16,720 Oi? 1091 00:47:16,720 --> 00:47:19,010 Així que anem a veure el que això realment és. 1092 00:47:19,010 --> 00:47:21,010 Així que permetin-me anar endavant i salvar això. 1093 00:47:21,010 --> 00:47:21,970 Déjame anar aquí. 1094 00:47:21,970 --> 00:47:26,360 Fer slash dot imprecisió imprecisió i avís, també, 1095 00:47:26,360 --> 00:47:29,380 en un entorn Linux, no ho fa haver d'escriure la imprecisió i prendre 1096 00:47:29,380 --> 00:47:30,010 durant tot el dia. 1097 00:47:30,010 --> 00:47:32,910 En general, si es colpeja Tab, es acabarà el seu pensament per a vostè, 1098 00:47:32,910 --> 00:47:36,660 basat en les paraules que estan disponible al directori actual. 1099 00:47:36,660 --> 00:47:37,160 D'ACORD. 1100 00:47:37,160 --> 00:47:37,970 Així que vostè tenia raó. 1101 00:47:37,970 --> 00:47:41,239 Un dividit per 10 és, de fet, 0,1. 1102 00:47:41,239 --> 00:47:42,280 Però jo sóc una mica curiós. 1103 00:47:42,280 --> 00:47:44,196 I resulta printf recolza algunes característiques 1104 00:47:44,196 --> 00:47:48,700 mitjançant el qual es pot especificar més d' el nombre predeterminat de punts decimals. 1105 00:47:48,700 --> 00:47:52,140 Així que si vull veure 10 decimal punts que puc fer per cent, 1106 00:47:52,140 --> 00:47:55,510 per al símbol de marcador de posició, punt 10 per a, dóna'm 10 punts decimals, 1107 00:47:55,510 --> 00:47:58,140 i després segueix en coma flotant valor, i, com un a part, 1108 00:47:58,140 --> 00:48:01,550 ¿Què és aquesta barra invertida n pel que sembla seguim utilitzant? 1109 00:48:01,550 --> 00:48:03,450 Resulta que és un símbol d'una nova línia. 1110 00:48:03,450 --> 00:48:05,970 És la manera molt explícita de dir a l'ordinador, 1111 00:48:05,970 --> 00:48:08,759 moure el cursor a la següent línia després ja està. 1112 00:48:08,759 --> 00:48:10,800 I ja veurem què passa quan no fem això. 1113 00:48:10,800 --> 00:48:12,430 >> Permetin-me recompilar fer imprecisió. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Ara dot retallar imprecisió. 1116 00:48:18,356 --> 00:48:18,930 D'ACORD. 1117 00:48:18,930 --> 00:48:19,780 Encara dreta. 1118 00:48:19,780 --> 00:48:21,512 Un dividit per 10. 1119 00:48:21,512 --> 00:48:23,220 Ara m'estic posant un poc curiós, però. 1120 00:48:23,220 --> 00:48:27,599 Què passa si em veig 20 decimal assenyala, recompilar, torneu a executar, 1121 00:48:27,599 --> 00:48:29,390 i com una banda per velocitat, també pot utilitzar 1122 00:48:29,390 --> 00:48:31,800 les fletxes amunt i avall per desplaçar-se a través de la seva història, 1123 00:48:31,800 --> 00:48:35,476 per la qual cosa no ha de mantenir tornar a escriure aquestes comandes, introdueixi. 1124 00:48:35,476 --> 00:48:36,910 Eh. 1125 00:48:36,910 --> 00:48:39,220 No vaig aprendre que a l'escola primària. 1126 00:48:39,220 --> 00:48:43,260 Molt bé, així que em va deixar veure com 29 llocs fora. 1127 00:48:43,260 --> 00:48:44,300 Potser és només una casualitat. 1128 00:48:44,300 --> 00:48:46,907 Potser el meu ordinador està actuant estrany. 1129 00:48:46,907 --> 00:48:47,990 Això no és una cosa, oi? 1130 00:48:47,990 --> 00:48:50,300 S'està fent alguna cosa determinista. 1131 00:48:50,300 --> 00:48:53,410 Així que la imprecisió. 1132 00:48:53,410 --> 00:48:54,890 OK, res de bo. 1133 00:48:54,890 --> 00:48:57,620 Llavors, què està passant? 1134 00:48:57,620 --> 00:49:00,160 >> Així que pel que sembla la seva professor ha estat mentint 1135 00:49:00,160 --> 00:49:03,900 perquè tot aquest temps per raons que veurem en poc temps. 1136 00:49:03,900 --> 00:49:05,569 Però anem a acabar amb un altre programa. 1137 00:49:05,569 --> 00:49:07,860 Això és una mica dels programes algú va escriure fa alguns anys, 1138 00:49:07,860 --> 00:49:08,990 i és en realitat part d'un concurs. 1139 00:49:08,990 --> 00:49:11,198 En realitat, ningú escriu codi així, i si ho fa, 1140 00:49:11,198 --> 00:49:12,880 això és estilísticament un problema. 1141 00:49:12,880 --> 00:49:14,660 Però la gent fa això per exigir drets. 1142 00:49:14,660 --> 00:49:17,260 Per escriure el més confús programa que busca 1143 00:49:17,260 --> 00:49:19,110 però, fa alguna cosa interessant. 1144 00:49:19,110 --> 00:49:23,930 I la nota que pensem que ho deixem en avui, abans de Colton ens toca aquí, 1145 00:49:23,930 --> 00:49:27,840 és executar aquest programa, que, fins i tot en només usar 1146 00:49:27,840 --> 00:49:31,450 C en aquesta basat en text medi ambient, nosaltres això dóna. 1147 00:49:31,450 --> 00:49:32,264 Maleïda sigui. 1148 00:49:32,264 --> 00:49:34,930 >> [El] 1149 00:49:34,930 --> 00:49:36,800 >> Prepareu-vos. 1150 00:49:36,800 --> 00:49:39,340 [Inaudible] c tauler l m. 1151 00:49:39,340 --> 00:49:42,885 Vas a veure el màgic encantament que veurem en poc temps. 1152 00:49:42,885 --> 00:49:45,780 [Inaudible] Molt bé. 1153 00:49:45,780 --> 00:49:51,592 I ara vostè pot fins i tot fer coses com aquesta. 1154 00:49:51,592 --> 00:49:52,340 Això és. 1155 00:49:52,340 --> 00:49:56,410 Perquè nosaltres CS50, veurà que divendres. 1156 00:49:56,410 --> 00:49:58,910 >> [REPRODUCCIÓ DE MÚSICA] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Aplaudiments] 1159 00:52:41,440 --> 00:52:42,812