DAVID J. Malan: Així que això és CS50. I això era propi Colton Ogden del CS50, per més de qui és la música que es pot descarregar en soundcloud.com/cs50. Així que avui ens enfoquem tant més en l'art de la programació. I prenem on ho vam deixar la setmana passada, centrant-se en Scratch, que era aquesta llenguatge de programació gràfica. I prendre les coses a un nivell més baix, utilitzant una programació més tradicional llenguatge conegut com a C. Però en el camí, en adonar- que les mateixes idees que va parlar sobre el passat divendres es repetirà, no només en aquest llenguatge C, però en la majoria de tots els altres que ens fixem en aquest semestre. Així que cridem a aquesta cosa aquí el que l'última vegada? Això és representatiu d'un comunicat. Així que cridem a això un comunicat. I ho fa alguna cosa. És una instrucció que un ordinador o esgarrapades podrien executar. I a partir d'ara, anem a començar també cridar alguna cosa com això una funció, per raons que aviat veurem. Mentrestant, hem vist coses com aquesta. I aquests són en general conegut com el construir? AUDIÈNCIA: Loop. DAVID J. Malan: Així que un bucle. Així que bastant senzill. És, literalment, fa el que diu. I en Scratch, si vols ficar més peces del trencaclosques en allà, la peça creixerà per adaptar-s'hi. I veurem en C que podem fer el mateix. Un altre tipus de bucle, però, en scratch podria ser per sempre, o hi ha qualsevol nombre d'altres enfocaments. Però donem una més mirada generalista, amb una cara això és probablement molt familiar, en bucles de manera més general. Mark Zuckerberg: Un cosa que els ordinadors són realment bons en és repetint ordres. Com a persona, s'obtindria molt avorrit si hagut de fer el mateix un munt de vegades en una fila. Però un ordinador pot fer la mateixa cosa milions o fins i tot milers de milions de vegades, i no s'avorreixen, i poder per complir realment bé. Així, per exemple, si volia desitjar a tots a Facebook un feliç aniversari mitjançant l'enviament d'un correu electrònic, em podria prendre més d'una segle per escriure realment a terme tots els correus electrònics a tot el món. Però amb només unes poques línies de codi, el que pugui té un sistema d'enviar un correu electrònic a tot el món a Facebook que vulguin un feliç aniversari. Així que això és el que els bucles són i per què són valuoses i una mica que els ordinadors poden fer molt bé. DAVID J. Malan: Així que si vostè ha estat el destinatari d'alguns CS50 i de Espai de Dropbox en els últims temps, que en realitat és precisament el que fer, utilitzant el codi exactament així. Essencialment tenim una gran full de càlcul en la qual la gent ha estat la introducció del seu noms i adreces de correu electrònic. I escrivim una mica de codi que pot iterar sobre aquestes adreces i escopir adreces úniques a si algú ha presentat diverses vegades. I a partir de llavors, li enviarem un automatitzat de bot de CS50, incloent el codi de cupó. Ara també hem buscat a aquesta construcció última vegada. I aquest és un particular, exemple de què? Així que, sí, una expressió booleana. I la forma es vol dir per capturar això també. Totes aquestes qüestions de la formar veritables o falses en scratch es veurà una mica d'alguna cosa com això. I cridem a això una expressió booleana. Això és realment cert o fals, sí o no. És una manera de respondre a una pregunta. I Mentrestant vostè pot utilitzar aquests Boolean expressions dins de constructes com aquests, que de curs són condicions o branques, proverbial bifurcacions en el camí. I poden veure no només d'aquesta manera, però també poden vigilés han associat amb ells. I en realitat es pot tenir una forma de tres forquilla a la carretera o una forquilla de quatre vies en el camí, simplement per implantació d'aquestes coses, com veuràs en scratch si vostè no té ja. I com es pot fer en C també. Prenguem un altre generalista mirar un alumnist, a més, que podria presentar un enfocament diferent a aquestes coses anomenades condicions. BILL GATES: La gent fa decisions cada dia. Per exemple, abans de sortir fora que tipus de tenir una sentència if que diu: si està plovent llavors necessitarà aconseguir el meu jaqueta. I els ordinadors són increïbles una vegada que decidir aquest tipus de declaracions, que poden executar de forma fiable aquestes coses a una velocitat increïble. I pel que un programa d'ordinador realment és una mica de matemàtiques i alguns si els estats on la decisió es va fer. DAVID J. Malan: Així com vostès saben, va ser gent com Bill Gates, Paul Allen, i altres que realment va donar inici a la anomenat ordinador personal revolució fa uns anys. Vaig pensar, abans de submergir-nos en alguns administrivia, ens agradaria relacionar un conte des del Albuquerque, Nou Mèxic Museu d'Història Natural i la ciència, on alguns de Bill Gates i les històries més primerenques de Pablo Allen es relata la manera que tenim ara PC actuals i les Macs i més. Per això, però, necessitem dos voluntaris que tenen molt bones veus de narració per llegir un guió en veu alta. Molt bé, què hi ha a tornar-hi. Anem amunt. ¿I què hi ha al davant aquí. Anem cap avall. Prengui seus llocs aquí. Com vostès vénen cap amunt, un parell d'anuncis administratius. seccionar, el procés de l'elecció d'una secció, començarà aquest De dimecres a divendres. Més sobre això ve Dimecres a conferència. Seccions Súper, per la seva banda, són cosa que li oferim la setmana la qual es convida a tota la classe per participar en escala prou gran seccions, una més còmoda, un menys còmode. I anem a anunciar els detalls que, a més, aquesta mateixa setmana. Mentrestant, les seccions sí, s'iniciarà en la tercera setmana del curs, l'índex zero, el que significa que aquests són un parell de setmanes fora. Així que no es preocupi. Encara no ha perdut res per l'estil. Mentrestant, en el interí, si vostè té alguna pregunta administrativament, un correu electrònic a mi mateix i Devon i Gabe i Rob en aquesta direcció aquí. Finalment, estableix problema 0 és, per descomptat, fora. Vostè pot haver notat que a la pàgina web del curs. S'ha de proveir de vostè totes les respostes a les preguntes és possible que tingui al llarg del camí per començar a utilitzar el conjunt de problemes. Però si vostè es troba en la necessitat d'una mà d'ajuda, per tots els mitjans atendre les hores d'oficina, Dilluns, dimarts, dimecres, dijous d'aquesta setmana a la tarda en quatre menjadors. Veure URL que hi ha de les indicacions d'on les hores d'oficina seran. Ara Complirem el nostre dos convidats aquí presents. Quin és el teu nom? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Paul, un plaer conèixer-te. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Encantat de conèixer-te també. Jay Paul i Hikari tenen en enfront d'ells en aquests música destaca 02:00 scripts que vaig imprimir a terme aquest matí al Nou Mèxic Museu d'Història Natural i Ciència. I el que jo pensava Ho faria en el projector és acompanyar a la seva recitació del guió i aquesta història amb algunes imatges visuals, no hi ha sorpreses. I el que he fet amb antelació està ressaltat previ en la seqüència de comandaments el que vostè ha de llegir, i el que ha de llegir. I anem essencialment paràgrafs només alterns. Així que és molt semblant que et poden ho han fet a la classe d'anglès. Això és realment obligar a l'audiència creure en la seva història aquí. Hem? Així que la història aquí és que tenim un BASIC, i comença a Cambridge. JAY PAUL: Era hivern de 1974, a Cambridge, Massachusetts on els hiverns poden ser freds. Un barbut, de pèl llarg desertor de la universitat nomenada Paul Allen va ser drudging través Harvard Quadrat, absort en els seus pensaments. La seva principal preocupació en aquests dies era com arribar al seu amic, Bill Gates, de deixar l'escola i anar en negocis amb ell. Hikari: Els dos ja havien anat a través d'una sèrie de projectes empresarials junts, a partir de la vora del llac escola a Seattle, on se'ls pagava en el temps lliure de l'ordinador a provar un ordinador PDP-10 a una hora local compartir companyia. El pla més recent havia estat la de deixar de fumar escola i formar una companyia de programari. Allen havia deixat Washington Universitat de l'Estat. Però en l'últim minut, Portes decidit seguir amb Harvard. JAY PAUL: Aquest dia, creuant Harvard Quadrat, Allen va descobrir el gener 1975 emissió de Popular Electronics amb el titular de parada de la terra, Kit del Primer Món per miniordinadors per rivalitzar Models Comercials. Sota el titular era una imatge d'una petita caixa adornat amb llums i interruptors. Es deia el MITS Altair 8800. I Allen sabia que això era el que que havia estat buscant. Hikari: Dies de debat va seguir. Allen i Gates entenen la importància de l'Altair. Havien parlat sovint sobre microprocessadors i estaven esperant a veure què que es faria amb ells. Ara hi havia un kit miniordinador a la portada de Popular Electronics. Pel que sembla, no tenia el programari encara. S'imaginaven una nació de programadors descendien per MITS. I pel que van cridar Ed Roberts, el cap de l'empresa, legant tenir una versió de la Llenguatge de programació BASIC gairebé llest per l'Altair. No ho van fer. I Roberts ha d'haver sabut que no ho van fer. S'estava fent 10 trucades al dia de persones que tenien un BASIC gairebé llest. I la seva resposta d'estoc va ser: "La primera persona que es presenta amb un treball BASIC obté el contracte. " JAY PAUL: Gates i Allen Mai havia vist un Altair. Ells mai havien vist la Intel 8080 microprocessadors al cor de l'Altair. Però un parell d'anys abans Allen havia escrit un programa en un ordinador central que emulava l'operació d'un Intel anterior microprocessador. I aquesta vegada es faria el mateix. Hikari: Amb un processador Intel 8080 Manual al seu costat, Allen es va asseure a una Harvard ordinador PDP-10 i va escriure l'emulador i programari eines necessàries per fer la programació. Mentrestant Gates, va deixar d'anar a les classes i es va dedicar per dissenyar el BASIC, usant tots els trucs ell sabia que per obtenir la mida per sota de 4 kilobytes. JAY PAUL: Out in Albuquerque, Ed Roberts va rebre una trucada de Gates demanant informació sobre com el Altair maneja rutines específiques. Ningú li havia preguntat això abans. I Roberts va començar a interessar. Hikari: Amb el desenvolupament eines i el disseny llest, Gates i Allen van escriure el codi de la PDP-10, allistar altre estudiant de Harvard, Muntanya Davidoff, escriure rutines matemàtiques. Després d'una última nit de programació, Allen va agafar un avió per lliurar la seva BASIC per MITS. Va passar el viatge en avió a preocupar-se. I de tornada a Cambridge Gates, era preocupant. Havien provat la seva BASIC i que havia treballat en l'emulador. Però i si l'emulador es va equivocar? JAY PAUL: Quan l'avió acostat a Albuquerque, Allen va adonar que el seu BASIC, ara continguda prolixament en un petit rotllo de cinta perforada, es inútil sense una separada programa, anomenat un carregador, que diria l'Altair com per llegir l'ésser cinta de paper alimentat a la màquina de teletip. Va treure la seva llibreta i ràpidament gargotejar un programa carregador en llenguatge assemblador, a continuació, de forma manual traduït en què els 1s i 0s l'Altair entendria. Hikari: Allen esperava un neta poc, la companyia, d'alta tecnologia dirigit per homes en vestits de negocis. Així que es va sorprendre quan Roberts es va reunir ell a l'aeroport l'aspecte d'un ranxo mà. Roberts també es va sorprendre. Quan se li va caure la Harvard programador en un hotel car, Allen va haver de confessar que no podia donar-se el luxe de l'habitació. JAY PAUL: MITS, en si, era ubicat en un centre comercial amb molta pols. Dins un desordenat banc de treball va ser un Altair carregat amb 5 kilobytes de memòria i connectat per un cable a una màquina de teletip. Roberts i l'Enginyer Cap, Bill Iots, va esperar expectant com Allen alternar la configuració programa en l'Altair. El teletip va començar esbufegant quan es va aturar la cinta de paper a través del lector de cinta. Va prendre potser 15 minuts per carregar el programa. Llavors el teletip imprès abruptament 1 ràpida memòria, llavors el símbol del preparat, i Allen va començar a teclejar alguns comandaments de prova. Per a sorpresa de tots, el programari va funcionar. Hi havia bestioles, és clar. Però el principal era que funcionava. Hikari: Més tard, en el seu camí a un 3,00 $ dinar en Pancho, una vespa volar a la finestra de la camioneta camió i va picar Allen al braç. Però en aquest moment res podria espatllar l'estat d'ànim. El Altair ara tenia el seu BASIC, el primer programari comercial per a una llar ordinador, fet per Paul Allen i Bill Gates, fent negocis com Microsoft. DAVID J. Malan: Molts gràcies als nostres dos lectors. [Aplaudiments] DAVID J. Malan: Ara vostè té la seva opció, abans de sortir, d'un brillant o una resplendor al dark-- oh, esperi un segon, espera-- brillant i una resplendor en la foscor elefant a partir del CS50 propi Cheng Gong. Hikari: Aw, gràcies. DAVID J. Malan: Tots bé, moltes gràcies. [Aplaudiments] DAVID J. Malan: Així veritable història. Això és per dir que tots aquests màquines i la facilitat amb què utilitzar ara i prendre per descomptat, de veritat començat aquí, a prop d'aquest teatre real. I avui, si no has estat, és a dir Maxwell Dworkin, l'ordinador edifici de ciències, També al voltant de la cantonada. I a la segona planta d'aquest edifici fa penjar tres pàgines a partir del codi font original que Bill Gates i Paul Allen van escriure. De fet, si l'ús que un zoom en es pot veure no només els seus noms a la Tipus d'original, sinó també seves firmes que adornaven 1 uns anys l'última vegada que van visitar. Però el que era especialment convincent sobre això és el que es van proposar fer era escriure un programa que faria permetre a altres persones a escriure els seus propis programes. En aquest moment tot el que hi havia amb aquesta màquina Altair feta per MITS. I tot el que necessitaven era alguna forma de pel que és fàcil per als aficionats i la gent Ens agradaria en aquest espai per realment programa que sense necessàriament comprendre Codi assemblador o màquina codi, o Déu no ho vulgui, 0s i 1s. Nosaltres els programadors, com els que en aquesta habitació, ens vull ser capaç d'expressar nosaltres mateixos molt més com pseudo codi encara que és una mica més nit exigent del que parlem la setmana passada. No volem escriure codi com aquest, que van fer Paul Allen i Bill Gates. Nosaltres, en canvi, volem escriure codi que es veu una mica més fàcil d'utilitzar. Ara bé, aquest és un llenguatge conegut com BASIC. I els números de línia no són el que utilitzar simplement comptar les línies de codi que vostè està escrivint. Ni tan sols hem de fer això en aquests dies. Però es pot veure aquí com escriure "Hola, món" seria de fet presumiblement imprimir precisament això. I així el que Bill i Paul van fer va ser donar poder a la gent a escriure codi com aquest lloc de-- si vostè pren una mirada al ciències de la computació pared-- codi com aquest. De fet, recentment CS50 tingut l'oportunitat seure amb el professor Harry Lewis en el departament de ciència d'ordinadors, que realment ensenyat Bill Gates, fa alguns anys, i és aquí de peu davant aquestes tres pàgines d'extractes. Anem a fer una ullada. HARRY LEWIS: El que tenim aquí és una l'oferta d'una peça primerenca de programari escrit per Bill Gates i Paul Allen, els fundadors de Microsoft. Així que el codi és interessant per dues raons. En primer lloc, es va fer El primer producte de Microsoft, que era un intèrpret per el llenguatge de programació BASIC. I en segon lloc, es tractava d' un dels primers intents per crear un intèrpret tan ordinari la gent podria utilitzar els ordinadors personals. Així que Bill Gates va ser una estudiant a Harvard. Vaig començar a ensenyar a Harvard el 1974. Això es va fer el 1975. Així que va ser a principis de la seva carrera i al principi de la meva carrera. De fet, em van ensenyar a Bill en un curs en aquesta època. Paul Allen no era un Harvard estudiant, però havia estat una escola secundària company de Bill Gates. Si véns i mires a la llista, podràs en realitat trobar tercera nom, Muntanya Davidoff, qui va ser company de classe de Gates aquí a Harvard. OK, així que aquí hi ha un interessant comentari aquí. Diu "A 4K pot eliminar d'arrel quadrada però per bucles encara han de treballar ". OK, així que el que això significa és que hi ha Hi havia dues formes de compilar aquest programa. Un era per executar-se en una versió d'aquest equip Altair que només tenia 4K paraules de memòria, 4.096 paraules de memòria. Però la gran versió tenia 8K. I així, el que diu és que en la versió 4K calia esborrar alguns codi perquè s'ajusti. I una de les coses que suprimiria seria la rutina d'arrel quadrada. Però pel que sembla, la per llaços encara ha treballar fins i tot quan estàs compilant baix per només la versió de 4K de l'ordinador. DAVID J. Malan: Així que un dels temes, com veurem en ciències de la computació, És aquesta noció de capes i l'abstracció, i realment dempeus sobre les espatlles de persones que ens han precedit, no a diferència d'alguns dels Bill Gates i narrativa Paul Allen aquí. I el que això significa és que avui podem donar per fet que les coses són en realitat més fàcil per a nosaltres per escriure codi. De fet el codi, com vam dir divendres, és més tècnicament conegut com codi font. I és aquest anglès com sintaxi això és més propi i més ben definit que alguna cosa com pseudo codi, per que no existeix una definició formal. I avui ho anem és centrar-se en el codi font que té aquest aspecte, el que és cert que a primera vista sembla completament críptica. I, francament, és molt més estètic complex que el programa subjacent és. Tot aquest programa ho fa, record, és el que vam dir? Simplement imprimeix "Hola món". I no obstant això, mira totes les coses que necessitem per embolicar al voltant d'aquesta frase molt simple. Però al poc temps tots aquestes línies i més farà molt millor sentit per a vostè. I el flux és el següent. El que necessitem a la nostra disposició és prendre codi, com a font codi que acabem de veure. I necessitem un nou programa per executar a través. Necessitem algorismes que poden convertir el codi font, així, en codi objecte, 0s i 1s. En altres paraules, el que anem a aprendre avui és com fer això, escriure codi font sobre de la tapa, passar com a entrada a un especial programa conegut com un compilador, i anem a produir codi objecte. La qual cosa és només una forma elegant de dient anem a prendre alguna cosa que són aquestes, passar- en un programa anomenat un compilador, produir codi objecte que són aquestes. Així que aquests són literalment els patrons de 0s i 1s que s'entén per un Ordinador Intel en aquests dies, que si s'interpreta per la CPU, els cervells a l'interior d'un ordinador, literalment imprimir, simplement, "hola món". Ara no hi ha manera més 0s i 1s que vostè que espero pugui ser necessària per a això. Però això és perquè estem construint en una bona part de la complexitat que a partir d'ara podem donar per fet. En altres paraules, un munt de gent intel · ligent ens han donat una gran quantitat d'eines interessants i programari de gran abast amb el qual ara pot fer projectes propis. Així que anem a començar. Mentre que divendres passat, i per Problemes de 0 aquesta setmana, estaràs jugant en un món que s'assembla a això. A partir d'avui i per al problema Setembre 1 la propera setmana, el codi va a mirar una mica més críptica, però funcionalment és serà el mateix. Així previ avís, la part superior és Scratch, conclusió és C. Francament esgarrapades és molt més fàcil amable i accessible. Però si ara comparar visualment superior a part inferior, hi ha una espècie d'un a un correspondència entre el peces d'un trencaclosques i l'idioma estem a punt de jugar. En particular, per exemple, la trencaclosques blau peça sobre de la tapa, aparentment és equivalent al que la paraula clau o frase especial en aquest idioma anomenat C? AUDIÈNCIA: printf. DAVID J. Malan: printf. Això significa que la impressió amb format. I això és només una fantasia manera de dir printf en C serà una declaració o una funció que imprimeix alguna cosa a la pantalla. Què vol imprimir a la pantalla? El que vostè li digui que a l'interior de cotitzacions, dins de parèntesi. Així que de nou, és cert, hi ha un munt de coses que cal tenir en compte, parèntesi, cometes, punts i comes, i tot això. Però tot això és una espècie de fora de lloc. La lliçó interessant per ara és que el bloc de veu en scratch és més o menys equivalent a la sentència printf en C. Mentrestant, la peça del trencaclosques de color groc sobre de la tapa, quan la bandera verda es fa clic, és probablement equivalent al que la paraula clau aquí? AUDIÈNCIA: Principal. DAVID J. Malan: Així principal. Potser int, potser sense efecte. Però principal tipus de sons com que és important, i de fet ho és. Així que quan la bandera verda fa clic és, de nou, la peça del trencaclosques que arrenca un programa d'Scratch sencer. Però anem a començar ara trucant que la principal, aquesta funció coneguda com a principal. Ara mentrestant anem a generalitzar de la següent manera. Podríem trucar a dir una funció. I pot semblar específicament com aquest. Bé, què passa amb bucles? Si volem iniciar la conversió o traduir més en Scratch per a C, aquesta cosa aparentment només diu "hola món" per sempre. Així que si vostè associa aquests scripts amb un gat en Scratch, que només seguirà dient en una mena de bombolla de la historieta, "Hola món, hola món, hola món ", fins a la sacietat, per sempre. Si volem fer alguna cosa semblant a C, va a semblar una mica críptic. Però podem aconseguir el mateix resultats, ja que amb el temps esbrinar, amb una sintaxi com aquesta. Vaig a utilitzar printf de nou, perquè al final del dia Vull imprimir "hola món". I estic semblar servir un paraula clau que no és per sempre. És el seu lloc, mentre que la paraula. Però només semànticament en Anglès, mentre que tipus de suggereix algun tipus de bucle o cicle. Així que passa a ser la paraula clau que utilitza C. I encara que és cert, per què, mentre que veritable valor eficaç per sempre? Bé, mentre que, com veurem aviat apreciar encara més, té aquesta entre parèntesis al costat d'ell on vostè pot posar una expressió booleana. I mentre que expressió és veritable, el codi, com s'indica entre aquests dos claus com anem a cridar, s'acaba de seguir corrent una i altra vegada. Tan cert és cert. Així, mentre que els mitjans veritables només fer això per sempre. És gairebé un estúpid construcció d'expressar-se. Però allà no era sempre paraula clau en C. No hi havia temps. I hi havia una molt simple Expressió booleana com a veritable. I pel que aquest, ja veurem, aconsegueix el mateix resultat. Com més podria implementar un bucle? Bé, en scratch que et poden codificar un nombre específic d'iteracions en el bucle aquí. I això és exactament el que podria fer en aquesta versió de C, pel que tenim una trucada per al bucle. I el bucle aquí va per repetir, de manera una mica críptica, des del valor 0 en fins a a però menys de 10. Ara variables en zero. Potser no hagi tingut ocasió d'utilitzar aquests. Però quin sentit té, en general, d'una variable vam dir la setmana passada? Què és això? AUDIÈNCIA: Punts. DAVID J. Malan: destacar? Oh, assenyala. Acceptar, fer el seguiment dels punts, per exemple, en un joc. O més en general fer el que amb la variable? Quina és la utilitat d'ells? AUDIÈNCIA: Memòria. DAVID J. Malan: Sí, i la memòria. És per guardar alguna cosa. I la classe de ximple em visual utilitzat l'última vegada va ser com aquest recipient de vidre. I si volguéssim emmagatzemar quelcom a una variable, per exemple, en aquest moment el valor és 6 perquè hi ha són 6 pilotes de taula a aquí. És només una espècie d'emmagatzematge contenidor que sota el capó s'implementa amb bits, 0 i 1, però, un equip passa a fer això. Així que en Scratch, si volen tenir una variable, podem utilitzar un bloc de color taronja com aquest. Anomenarem a aquest comptador en aquest cas particular. Jo inicialitza a 0. I el que jo faig llavors? Sempre, dir comptador, que si jugues amb això en Scratch, vostè només veu les ratllades. El gat o el que sigui el vestit es posa en ell parlarà el nombre en qüestió. Canviar comptador a 1 és com a increment a 1. I així això va a comptar de què i què? Des de 0 fins a l'infinit, o fins que es trenca de Scratch, o fins que tipus de perdre interès a veure què tan alt que realment pot comptar. Així que com podem convertir això en C? Va a semblar una mica críptic. Però, de nou, si ens fixem en cada d'aquestes línies individualment quin tipus de formació general. Així que pel que sembla int va a tenir algun significat especial en C. Anem a veure això de nou. Com acotació al marge que significa sencer. Així que només significa nombre. Així que aquest és el tipus de recipient de vidre que vull, un que pot emmagatzemar nombres, No una taula boles. I jo vaig a utilitzar el signe igual cal assignar-li un valor de 0. Així que això és bastant com a conjunt comptador a 0, però en C. Mentrestant, mentre que la veritable, que era equivalent, per descomptat, per sempre, tot i que és una mica críptic, i després dins de les claus. I vostè pot pensar en aquestes claus, el que pot escriure en el teclat, com realment ser com la curvatura en aquests blocs de llaç de color groc al principi. Abasta diverses línies de codi. Printf és cada vegada un mica de por ara perquè veure no només cita entre parèntesis. Però, què més hi ha de nou sintàcticament en aquest exemple? Hi ha un percentatge d. I a continuació, la barra invertida n hi és. Ens van fer veure que abans, fins i tot encara que jo no ho vaig esmentar. Llavors hi ha una coma. I després hi ha un taulell. Però ja veurem en tan sols un moment en què això és només una forma estàndard de dir una impressió "Nombre decimal", cometes, tanca, un nombre decimal. Però jo vaig a dir més tard qual cosa el nombre decimal és. Així que el fet que hi ha una coma en aquesta línia refrany printf, significa seguir endavant i d'impressió un nombre decimal. Ah, i per cert, el número és qualsevol que sigui el valor d'aquesta variable és. I així, per fer això més clar, anem a veure un exemple poc temps que implica exactament printf en el context dels programes de real c. Ara acaba de concloure alguns d'aquestes construccions. Expressions booleanes, potser no tingui ocasió per utilitzar aquests en el seu programa Però és possible que molt bé, especialment si l'ús de condicions. I pel que aquests dos exemples de Raspe significaria si x és menor que i, o si x és menor que i i i és menys de z, com podríem traduir això? Bé, en C és només tindrà aquest aspecte. Una mica críptiques, més parèntesi, alguns símbols d'unió estrany, però fonamentalment les idees són tan simples com estan en el món peça del trencaclosques. Simplement estem comprovant si alguna cosa és menor que una altra cosa. Què hi ha de les condicions? En poques paraules en anglès, el que fa aquest tros de codi de Scratch do li diries? AUDIÈNCIA: Compara dos nombres. DAVID J. Malan: Compara dos números, i si x és menor que i diu tant. Si x és més gran que i diu tant, una altra cosa si x és igual a i diu tant. Ara on x i i vénen? Qui sap. Aquest tros d'esgarrapades codi està fora de context. Però el que volem fer ara és traduir això per un moment per veure. Així com vostè se senti còmode aquesta setmana a de problemes 0 jugant en aquest món a l'esquerra, s'adonen que les idees no estan canviant aquesta setmana o la que ve o més enllà. Estem simplement anar a començar a escriure coses d'una manera diferent amb la nostra teclat en lloc del nostre ratolí. Així que si x és menor que i, i hi ha alguns parèntesis, allà, llavors hi ha algunes claus de nou al tipus d'encapsular igual que les peces d'un trencaclosques de color groc fan. I vaig a printf x és menor que i i així successivament. El millor de C, com es pot veure aquí, és que no obté aquesta jerarquització, implantació, niant això és necessàriament va a empènyer al seu codi a la dreta. Vostè pot tenir tot al seu lloc alineació agrada prolixament això. Però això és només una estètica detall veurem de nou en poc temps. Bé. Així que això ens porta de nou a aquest programa busca críptica. Anem a realment escriure una mica de codi. Ara, com anar sobre l'escriptura de codi? Tots aquests anys que he posseït un Mac o un PC, d'escriptori o portàtil, que realment ha tingut la capacitat de per començar a escriure codi de programació. Però és probable que falta un tipus especial de programa. Per descomptat que pot escriure codi. Però no es pot necessàriament, fora de la caixa, convertir aquest codi font en codi objecte, 0s i 1s sense que en el seu ordinador? AUDIÈNCIA: Compiler. DAVID J. Malan: Així que un compilador, dreta. Ara, la majoria de vostès probablement no són amos d'un compilador, mai han descarregat un compilador. Però veuràs el pot descarregar com la majoria de qualsevol altra peça de programari. En el món de Mac OS, és possible que descarregar o ja han descarregat cosa anomenada Xcode o GCC o Clang. Si ve de la Finestres món que et poden han descarregat Visual Studio, Visual Basic, entorns com això. Hi ha dotzenes de compiladors en aquests dies en què pot utilitzar. No obstant això, el curt d'ell aquí és que seria un dolor i, francament, una tecnològica malson per a centenars de les persones amb diferent configuracions d'ordinador a tot configurar les seves màquines exactament de la mateixa manera de manera que tots podem estar a la mateixa pàgina. Així que el que, en canvi, fem CS50 és que li donem un entorn estàndard, un Entorn de Linux que és va a semblar una mica alguna cosa com això. Vas a veure més d'això en el Problema 1 set especificació que anirà en línia aquest divendres a la nit. I el que això significa és que d'ara endavant seran capaços de descarregar i instal lar un programa cridat el CS50 Appliance. I vostè va a descarregar i instal · lar un altre programa anomenat 1 hipervisor, que és només un forma elegant de aconseguir-ho. Si vostè és propietari d'un Mac o un PC o un Ordinador Linux o un ordinador Solaris, o el que sigui operatiu boig sistema que s'està executant, vas a descarregar un programa anomenat l'hipervisor que és va a executar el CS50 Appliance en el seu ordinador no importa quin sigui el seu sistema operatiu és. Un hipervisor és a dir converteix les nostres coses a qualsevol idioma, qualsevol instrucció que els seus pròpia ordinador entén. Així que aquesta és una estratificació. I de nou, això és una espècie de temàtica a l'ordinador la ciència, l'edifici en la part superior de les coses. És possible tenir Windows. És possible que tingui Mac OS. Però a partir de la setmana que vostè és hi haurà descarregat un programari gratuït anomenat l'hipervisor. Vostè va a haver descarregat una peça de programari cridat el CS50 Appliance. Això va a executar en l'hipervisor, que es va a executar en el seu equip. I el resultat final és que tots nosaltres tenir una finestra simple com això en el seu Mac o PC això ens dóna la il · lusió de tots executar el mateix sistema operatiu, sense cap altre impacte en l'equip. I vostè pot pantalla completa i essencialment comportar com si vostè està executant una sistema operatiu anomenat Linux, que és el que el CS50 Appliance es basa en. Així que utilitzarem realment aquest ara a escriure un programa. Vostè pot escriure un programa utilitzant Microsoft Word. Vostè pot escriure un programa utilitzant TextEdit o Bloc de notes, o WordPad, o gairebé qualsevol paraula programa de processament que mai ha utilitzat. Però la realitat és que no hauria utilitzar realment qualsevol d'aquests programes. Per cert, no ha d'usar alguna cosa com Microsoft Word, que té orientació i cursiva negreta, i fonts més grans i fonts més petites, perquè l'equip no preocupar-se per res d'això. Tot l'equip està tindrà en compte és Anglès com instruccions escrites en C. Així que el que farem dins del Appliance CS50 és utilitzar un programa de lliure disponibles, i és pre-instal lat en aquest aparell, anomenat Gedit. I Gedit és només un super simple editor de text com TextEdit de Mac OS, com el Notepad de Windows que va a mirar una mica alguna cosa com això. Així que anem en realitat no mirar les diapositives d'aquesta. Però anirem en realitat a el propi medi ambient. Vaig a seguir endavant i començar la sessió, en aquesta altra finestra, al meu CS50 Appliance, que tinc pre-instal lat en el meu ordinador portàtil aquí. Tingueu en compte que, igual que Windows i Mac OS, té alguns menús. Igual que Windows posa allà baix en comptes de Mac OS, el que el col · loca allà. Però la realitat és que és tot tipus de la mateixa. I aquí és en el seu conjunt manat de programari. Hi ha Dropbox. Hi ha un munt d'accessoris, programes gràfics que anem a utilitzar més tard al terme dels butlletins de problemes. Hi ha un navegador web integrat a la que es tracta d'un ordinador de ple dret a l'interior d'un ordinador. Però jo faré clic en aquest més a l'esquerra icona blanc aquí, que és la icona per Gedit. I es va a obrir una finestra que compta amb tres panells a la mateixa, una esquerra, una superior i una inferior. Ara està a la part superior d'aquest dret que Vaig a escriure una mica de codi en realitat. Així que anem a fer això,. Vaig a anar a Arxiu, Guardar. I no pot ser que alguna vegada ha vist aquesta finestra particular abans. Però això és com Mac OS o Windows. És només una finestra amb totes les carpetes que tinc dins d'aquest equip. I em vaig a guardar l'arxiu com hello.c. I jo vaig a anar endavant i feu clic a Desa. I ara noto que tinc una pestanya a la part superior esquerra anomenat hello.c. Així que, probablement, bastant familiaritzats, fins i tot si no tens utilitzat aquest programa en particular abans. I ara vaig a escriure en els seqüència bastant críptica de comandaments que vam veure fa un moment. Inclogui, I estàndard / O.h. Més sobre això aviat. Void main Int, arrissat obert cotilla, tancat claudàtor. I després dins d'allà, crec que és on vam tenir "hola món", punt i coma. I ara estalviar. Així que aquest és un programa escrit en C, escrit, per tant, en el codi font. Però jo no puc executar aquest programa. Jo com que vull duplicar feu clic a una icona en algun lloc, però no hi ha altra icona que l'arxiu de codi font. El que, de nou, és el procés ara que He de executar aquest fitxer a través de? AUDIÈNCIA: Compiler. DAVID J. Malan: Així que un compilador. Així que en diferents equips que fer això de diferents maneres. Però el que hem fet aquí a el Appliance CS50 que és representatiu de com et poden fer això en molts sistemes diferents, és que estic simplement anant a executar una ordre anomenat make. I marca és, literalment, va a fer això. Em un programa Make. Així que va a executar un compilador per a mi. I el nom del programa Vull fer és saludar. Ara que és un programa. I que és prou intel · ligent per adonar-se que si jo dic hola fan, que buscarà automàticament un arxiu anomenat hello.c simplement perquè aquesta és la manera com està configurat. Així que quan em va colpejar ara Introduïu aquí, aquesta línia críptica boig acaba de ser executat. I confia en mi, abans de de llarg, d'aquí a pocs dies, vas a entendre el que tots que els mitjans sense sentit. Però per ara, només sé que fer execució disparada d'un compilador. En altres paraules, es va trobar un compilador al meu ordinador això és pre-instal lat al Appliance CS50 que li lliurarem a vostè en el problema 1 set. I llavors va prendre hola.c com d'entrada, i produït aparentment 0 i 1 com a sortida. I per defecte el que fa és que estalvia els 0s i 1s en un fitxer anomenat hola. I encara que aquesta sintaxi també podria ser nou per a vostè, simplement dient dot slash hola serà la mitjà pel qual executo aquest programa. Per ara, i durant almenys un parell de setmana, gairebé tots els programes escrivim estarem en finestres de text en blanc i negre. No ratolins, sense fer clic, sense finestres, sense icones. Anem a mantenir simple i centrar-se en les idees subjacents inicialment abans que arribem a alguna cosa nivell superior, per exemple, com el joc de ruptura que parlem aproximadament en la primera conferència la setmana passada. Així que quan em va colpejar Introduïu aquí, és equivalent en un text únic entorn en fer doble clic a una icona anomenat hola. Què esperes voluntat succeir quan copejo Introduïu llavors? AUDIÈNCIA: Es va a imprimir "hola món". DAVID J. Malan: Esperem s'imprimirà "hola món". I de fet ho va fer. Ara que hi ha hagut un sintaxi críptica aquí. Anem a retrocedir per només un moment i veure si podem no es pot iniciar inferir amb només retocs, intents i fracassos, quant al que està passant aquí. Què passa si em desfaig de la barra invertida n? Ara alguns de vostès que han programada abans probablement saben l'instant el que això significa. Però per a aquells de vostès que han mai programada abans, almenys, pensa a si mateix el que està passant canviar quan torneu a executar aquest programa? Així que vaig a tornar al meu petita finestra en blanc i negre, que és la finestra en la qual Puc compilar aquest. Vaig a tornar a compilar hola. Anem a veure el mateix seqüència críptica de comandaments. I jo faré slash dot hola. I ara algú, si ho faria, que mai ha programat abans, el que podria ser diferent aquesta vegada? Sí. AUDIÈNCIA: No s'aturarà imprimir "hola món". DAVID J. Malan: Va A-- ho sento? AUDIÈNCIA: No deixarà d'imprimir? DAVID J. Malan: No ho farà deixar d'imprimir "hola món". Així que no és una mala idea. Altres idees? Sí. AUDIÈNCIA: Missatge d'error? DAVID J. Malan: Error missatge, OK, podria ser. Què més? AUDIÈNCIA: Podeu imprimir el suport amb el punt i coma així? DAVID J. Malan: Podria imprimir la suport amb el punt i coma també. Així que potser que la barra invertida és, llavors, alguns tipus de terminous que és important. Alguna altra idea? Així que totes les bones idees. I, de fet, va ser un missatge d'error. Això és probablement el més probable ser la resposta en general per a les pròximes setmanes a mesura que aprenem a codificar aquí. Però per ara recordar que els ordinadors només fer el que els diuen que facin. Igual que el cacauet ridícul mantega i gelea d'exemple. Els nostres equips humans només es suposava per fer el que vostè els va dir que fer. Així que en aquest cas, si no li diguis a l'ordinador per moure aquest cursor parpellejant a la següent línia, que no va a fer-ho. Així que quan executo aquest programa ara, notarà la diferència. Sembla un error. És un error estètic, potser. Però el que és diferent sobre aquesta sortida en funció de l'última òbviament? Sí. AUDIÈNCIA: No va fer una nova línia. DAVID J. Malan: No va fer una nova línia. Ara bé, aquells de vostès que tenen pàgines web potser fetes abans, vostè pot ser que sàpiga de la BR etiqueta o l'etiqueta de paràgraf, molt similar en esperit. Un navegador web li ignorar fins vostè li diu exactament què fer. De la mateixa manera, és un llenguatge com C només farem el que vostè digui que faci. Així que la raó per la qual tots aquests exemples, fins al moment, té tipus de casualment tenia aquesta barra invertida allà, això és els mitjans pel qual vostè s'expressa com un caràcter de nova línia, per així dir-ho. I vostè pot tipus d'apreciar, potser, que aquest seria una mica estúpid si res més. Si volia una nova línia, simplement prement Enter i després tipus d'esquarterar el codi com aquest no ha de realment li fregui el camí correcte. I fins i tot si no ho fa m'importa en aquest moment, t'adonaràs que això no és un particular bona peça a la recerca de codi. I així, el que el món Fa anys decidit és que quan es vol posar l' cursor en una nova línia de forma explícita, ha de dir explícitament nova línia, la barra invertida n. I hi ha alguna altra símbols com aquelles. Però per ara només haurem de centrar-se en la barra invertida n. Ara anem a fer el programa una mica més interessant. Vaig a seguir endavant i aquesta vegada a obrir un nou arxiu. Vaig a guardar això com hola-1.c. I només per diversió, em vaig a anar el va posar en el meu carpeta de Dropbox. Com veuràs en el CS50 documentació de l'aparell, finals d'aquesta setmana per al problema Setembre 1, ens animarem utilitzar Dropbox o algun servei equivalent, perquè llavors tot el codi de serà una còpia de seguretat automàticament. I per això és que tinc entrat en aquesta carpeta aquí. I ara vaig a escriure una lleugerament diferent programa. Inclogui, I estàndard / O.h, void main int. I llavors aquí printf, hola món, que és exactament el mateix que abans. Però ara vull imprimir alguna cosa això és una mica diferent. Vull imprimir a terme, dir: "Hola, David." Molt bé, així que òbviament, el que hauria d'esperar ser el cas que si recompilar aquest programa, tornar a executar, que dirà "hola, David." Però el que si vull introduir aquest tipus de la variable, la noció d'un contenidor que està passant per emmagatzemar D-a-v-i-d i no és difícil de codi que en el meu programa. Bé, i si em poso fer alguna cosa com això? String s, de manera que aquesta és una variable. Si vols una cadena, àlies una paraula o una frase. Una seqüència de caràcters és el que que en la programació anomenem una cadena. Només anem a genèricament anomenada que s, perquè és un nom simple agradable. Però jo podria dir-res. Vaig a dir iguals cadena s entre cometes, "David," punt i coma. I ara vull inserir D-una-v-i-d en el que jo sóc la impressió. I abans que ens vam veure un teaser en la pantalla d'una sintaxi especial que ens va permetre suplent en un valor. Quin va ser l'especial símbol fa unes diapositives? Així per cent. En el moment que era cent d per al nombre decimal. Això realment no són rellevants aquí. Resulta que hi ha un altre símbol de percentatge, que és per cent s, que significa per un marcador de posició per a una cadena. Així que ara, simplement, estic va a anar a fer hola-1, perquè aquest arxiu es diu hola-1.c, i premeu Enter. I l'he cagat. Què està passant? Bé, aquí és on hem de començar a Apreciem que estem en aquesta comanda entorn de línia, aquesta text únic entorn. No hi ha clic en les icones com carpetes en aquests moments. I pensar de nou fa un moment. En quina carpeta fer que dic Ho estava guardant el meu codi? Així que la carpeta de Dropbox. Podria haver estat cridat res. Però passa a dir Dropbox. Així que d'alguna manera he de fer doble clic a aquesta carpeta Dropbox per tal d'aconseguir en ell i arribar al meu codi diu hola-1.c. De fet, deixa anar per davant i minimitzar aquesta finestra només per un moment. Igual que Windows i Mac OS, hi ha carpetes en Linux. Hi ha carpetes en el CS50 Appliance. És només ara estem confinant nosaltres mateixos a aquest entorn de text. Però si faig doble clic en Dropbox, notarà que hi ha és l'arxiu que vull compilar. Però jo necessito això en blanc i negre finestra de terminal, per així dir-ho. Però necessito, per tant, per moure en aquesta carpeta o directori. Així que una mica arcà, però Ja t'acostumaràs a això també. En el món de Linux, que al seu torn és l'operatiu sistema ens estem quedant en l'interior de la CS50 Appliance, hi ha una ordre anomenat CD. El que significa que puc fer CD, espai, Dropbox. CD, canvi de directori. Dreta. De tornada en el dia, quan la gent estava inventar els ordinadors i operar sistemes com aquest, que volien escrigui les pulsacions de teclat menor quantitat possible. Així que la forma més fàcil de dir directori de canvi era de CD. Així que si em va colpejar CD, espai Dropbox, compte del que ha canviat aquí. Dins dels parèntesis l'aparell és una espècie de seguir la corrent i recordar on sóc. Així que la carpeta oberta és Dropbox. Si ara escric ls per llista, un cop més succinta, perquè la gent no volia escrigui en el seu dia l-i-s-t. Així que en lloc fer ls. Intro. Noti que veig dues coses, hola-1.c, i després aquesta cosa críptica, 1m font. Aquesta és la meva manera de dir codi font de la setmana 1 dilluns. Això és una carpeta que vaig descarregar El lloc web de CS50 que vaig fer el dia d'avui i només cal posar al aparell per endavant. Però per ara l'únic que importa és fer aquest programa. Així que quan escric fan hola-1, Enter. Maleïda sigui. Quelcom ha fallat. Així que anem a burlen d'aquesta separació. I, per desgràcia això és on les coses ser una mica estressant al principi, almenys si vostè té mai programada abans. Déu meu. Vaig escriure un programa de dues línies i Tinc quatre línies d'errors. Llavors, què està passant aquí. Primer i abans que res sempre desplaçar-se cap enrere i trobar el primer missatge d'error, perquè moltes vegades compiladors només confondre pel que tu i jo ho fem. Els compiladors són bastant ximple. Ells només fan el vostè els diu que fer. I si se'ls confon, són només llançarà tipus de les seves mans i potser llançar més missatges d'error que són realment rellevants. Així que donem una ullada a la primera. Súper críptica al principi. Però avís, aquí hi ha el nom de la arxiu en el qual em va ficar la pota pel que sembla. Colon 5, còlon 5 només significa el la línia 5 en el cinquè caràcter. Així cinquena columna de caràcters, si es vol, d'error. L'ús de cadena d'identificador no declarat. Vol norma n? No, em referia a la cadena. I llavors és el tipus de copiar i enganxar el que he escrit per realment treure el meu atenció a on vaig ficar la pota. Així que per alguna raó C, o almenys el compilador no entén la cadena de paraules. I això és perquè ens ho inventem. Així cadena no existeix en C. Què fa CS50, durant les primeres setmanes només de la classe, està proporcionem algun tipus de formació rodes, per així dir-ho. I posem aquestes rodes d'entrenament dins d'un fitxer especial anomenat CS50.h. Així que aquest és el segon de dos arxius noms que aparentment acaben en punt h. Anem a rebobinar. Printf és una declaració o funció que aparentment imprimeix alguna cosa a la pantalla. Però no em va veure implementar printf, dreta. Fa anys algú implementades printf. En un arxiu vols apostar que o ella va posar la implementació per printf, el codi per printf? En un arxiu anomenat estàndard d'E / O.h. De fet, és probable que en dos arxius, I estàndard / O.h, que és sinònim de capçalera arxiu, i jo estàndard / O.c, que significa el codi font C. Així que fa ell o ella alguns anys plopped el codi que ells van escriure en aquest arxiu perquè la gent com nosaltres anys més tard poden incloure, per així dir-ho, en els nostres propis programes. I de fet, això és el que el signe de lliura seguit de la paraula inclouen ho fa. Es veu en el disc dur local, troba l'arxiu anomenat estàndard d'E / O.h, i després còpia eficaçment i el pega a l'interior del meu propi arxiu. Així que ara el meu programa sap com imprimir a la pantalla. Així que per aquesta lògica, on es defineix la cadena? AUDIÈNCIA: CS50.h. DAVID J. Malan: CS50.h. I de fet, això és el que nosaltres, el personal de base, hauria fet. Hem inventat uns tipus de dades, per dir-ho, com una cadena, a més dels que obtenir de forma gratuïta, com un int. I anem a veure a altres com un char per a un caràcter i uns quants més. A l'interior de CS50.h és aparentment almenys algun esment de cadena. Així que ara em deixis anar per davant i torneu a executar make hola-1. Vaig a apropar un nou i creuo els dits. Ara per haver fet una canviar Vaig fixar la majoria de les coses. Però maleïda sigui. Més percentatges que els arguments de dades. Què vaig fer malament aquesta vegada? Així que tot i així és bastant críptic. Però aquest error està en la línia 7 i el caràcter 21. Així que anem a mirar cap amunt aquí. És una mica subtil. Però si vostè pensa sobre el que les idees fonamentals d'aquí són, potser puguem fer broma això a part. Així printf és el nom de la funció. Els parèntesis, fins al moment, és de la mateixa manera que el que posem en tot les coses que estem passant com entrades a una funció. Molt bé, només un convenció humana arbitrària. Utilitzeu parèntesis. Dins d'aquests parèntesis hem estat posant cometes dobles, i després una cadena com "hola món". Però molt en aquest exemple anterior breument va fer mirem amb esgarrapades. I vam tenir el percentatge d, què més estava dins dels parèntesis que vaig trucar a terme verbalment? Sí. AUDIÈNCIA: Així que és el que està prenent [Inaudible] en el termini de [inaudible] què és això [inaudible]? DAVID J. Malan: Exactament. Així que vam tenir el percentatge d. Però després vam tenir prop cita, coma, taulell. Dreta. Nosaltres especifiquem el que volem per fer el que el marcador de posició. Així que el que vaig a fer aquí és coma, què vols que em posi? AUDIÈNCIA: S. DAVID J. Malan: S, s perquè en aquest cas és el nom del contenidor d'emmagatzematge. És el nom d'aquest recipient de vidre. Mentre que abans era comptador en què exemple simple esgarrinxada miràvem. Així que ara, havent realitzat dos canvis, em van deixar el zoom i tractar una vegada més per compilar aquest programa. Ara veig que la línia críptica. Però això és en realitat el nom del compilador. Clang és el nom del compilador. Fer que se m'acaba de salvar el mal de cap de tant escriure aquest comando llarg boig fora. Així que ara si em dot slash hola-1, Hauria de veure "hola, David." Bastant decebedor, però, no? Podríem haver fet això molt més simple sense parlar de les variables i CS50.h i tot això. Així que anem a fer que un poc més interessant. A més de CS50.h, tenir coses com cordes declarada, la biblioteca CS50 també té algunes funcions. Així que fa com any, algú va escriure printf i el va posar en l'estàndard d'E / O.h i algun altre arxiu. Nosaltres, el personal CS50, escrivim una funció anomenat GetChar, GetDouble GetFloat, GetInt, GetLongLong, GetString, i posem els que estan dins d'un arxiu anomenat CS50.h i CS50.c. I els posem dins del CS50 Appliance. I la gent també pot descarregar en línia si volen posar-los en la seva ordinadors propis també. El que equival a dir que hem creat funcions que aconsegueixen l'entrada de l'usuari. No sé el que tot d'aquests tipus de dades són. GetInt és una cosa senzilla, com obtenir un nombre enter d'alguna manera l'usuari. I GetString és probablement com get una paraula o una frase de l'usuari. Així que anem a centrar-nos en això. I em vaig a anar de nou al aparell i seguiré endavant i guardi aquest arxiu com, anem a trucar a que hola-2.c com la meva segona versió. I farem un parell de canvis. Aquesta vegada en lloc de David codificació dur, que fa un increïblement consistent però el programa que s'esperava, ¿I si en lloc de fer GetString? Ara noti GetString té un parèntesi d'obertura, parèntesi tancat, perquè no necessita cap entrada. Només va a anar a buscar una cadena de l'usuari. I ara unes paraules sobre una altra sintaxi. Punt i coma acaba d'acabar una línia de codi. No cal a tot arreu. Però això només significa que estic fet amb aquesta línia de codi. Passem a un altre declaració o funció. Cadena declara una variable. La cadena és com dir dóna'm un bol, si us plau. I m'ho dius a mi posar una cadena en el mateix. I ara el signe igual. Quin és el signe igual essencialment equivalent a? AUDIÈNCIA: Assignar. DAVID J. Malan: Sí, l'assignació d'un valor. Així que si, per exemple, l'anomenada GetString aquesta funció, i anem a veure en un moment que és va a demanar a l'usuari una cadena. Això és com deixar-me després escric D-una-v-i-d en un tros de paper. I quan dic cadena s és igual a GetString, potser no significa realment igualtat en la programació C. Això significa assignar des de la dreta costat de la mà esquerra. Així que m'he ficat una cadena. I el signe d'igualtat que significa posar en l'emmagatzematge de contenidors flama s. I llavors passar això a printf fer realitat la seva cosa. Així, el resultat final, llavors es va a mirar una mica diferent. Fem-ho fan hola-2. O bé podria funcionar. Vostè està seguint al llarg. Fes hola-2 va funcionar. Dot slash hola-2, Enter. Sembla que tinc un infinit bucle o alguna cosa. Res està succeint. Per què? AUDIÈNCIA: Està fent un bucle infinit. DAVID J. Malan: És un bucle infinit. És una mica esperant que jo realment dotar d'alguna entrada. Així que m'ho dius a mi anar endavant i escric en David, i premeu Enter. I ara es diu "hola, David." Si em quedo de nou. Escrivim en Rob, "hola, Rob." Ara bé, aquest és el pitjor interfície d'usuari cada vegada. L'usuari és aparentment suposat saber què fer. Però no importa. L'ús d'aquests mateix edifici blocs igual que en Scratch, podem resoldre aquest problema i dir alguna cosa així com el seu nom, si us plau, còlon, espai, tancat cita, prop parèntesi, coma. Així que un munt de nou estupidesa amb la sintaxi. Però noto Acabo d'afegir un peça del trencaclosques sobre d'aquesta i per sobre d'aquest. Així que ara si em torneu a executar això, hola-2, Enter. Espera un minut. El que passa / el que està malament? No es comporta de manera diferent. Sí. AUDIÈNCIA: No fes make de nou. DAVID J. Malan: no ho vaig fer executar make novament, dreta. Així que he canviat de codi font. Però de nou, no hi ha aquest flux. El codi font a través del compilador dóna Ets nou codi objecte o 0s i 1s. Així que he de realment make reestrena hola-2 Retorn. Bé, alguna cosa que sembla haver succeït. Dot slash hola-2. El seu nom, si us plau. I per ser clar ara, ¿per què és el cursor en la mateixa línia? Exactament. No vaig posar la barra invertida n fins aquí en el meu codi. Així que ara puc escriure una mena de Daven, Enter. Puc córrer de nou i escriviu una mena Gabe, Enter, i tenim un programa diferent una i altra vegada i una altra. Ara en última instància, necessitarem utilitzar uns pocs capacitats diferents. Cal introduir en última instància alguna condicions que es poden fer les coses de forma condicional. Potser bucles perquè puguem fer coses una i altra vegada. Potser seria bo si ens podria implementar les nostres pròpies funcions, com si poguéssim implementar la nostra pròpia printf o la nostra pròpia versió de GetString i GetFlow, perquè en última instància, fins i tot utilitzant aquest entorn de línia d'ordres podem fer fins i tot el més visualment interessant de les coses. De fet, en conclusió m'ho dius a mi fer això. Vaig a seguir endavant i tancar aquestes finestres i obrir aquesta icona aquí, que és només una més gran versió que s'incrusta finestra de terminal. Així Gedit té no només el lloc del meu codi, sinó també construït a la finestra de terminal, la finestra en blanc i negre on puc córrer les ordres. M'acaba de passar per obrir una versió més gran d'aquesta. I ara vaig a entrar en la carpeta que ja he posar a la bestreta en la pàgina web del curs. I jo seguiré endavant i obrir un fitxer anomenat thadgavin.c, que va ser escrit per una altra persona. I si ens fixem en això, aquest no és el tipus de codi estarem escrivint des l'objectiu d'aquest codi era escriure la més bonica mirant codi que ell o ella podria, independentment de si o no altre ésser humà mai podria entendre el codi. De fet, cada any hi ha és el que hi ha anomenat un concurs ofuscat C, que és per als frikis reals que escriuen codi que ningú més pot llegir, sinó que fa alguna cosa bé realment simple o realment increïble. I vam pensar que seria millor concloure amb aquest look en una cosa que és bastant increïble que podria haver vist una vegada abans. Però anem a acabar en aquest nota, slash dot, thadgavin. Aquesta és, llavors, el que li espera. Això és tot per CS50. Ens veiem dimecres. [REPRODUCCIÓ DE MÚSICA]