ALLISON BUCHHOLTZ-AU: Hey, tothom. Benvinguts a la secció. Avui és només serà tot concurs revisar per al seu examen dimecres. Espero que tothom recorda que tenen un concurs per al Dimecres. I si no ho va fer, així, ara que has estat recordat. Així dimecres assegurar vostè es presenta per a la classe o com altres allotjaments necessari. Vostès seran impressionant. Serà gran. I jo faré tot el que pugui per ajudar a preparar-se avui per al seu concurs ara. I també en el cas que vostè no sap, hi ha una sessió de revisió àmplia curs avui a les 7 en punt de Laboratoris del Nord-oest B103 habitació. Vostè em pot veure de nou per fer un bis com Vaig a portar part d'aquesta sessió de revisió també. Així que si vostè no pot obtenir suficient de mi Ara, vostè pot venir una altra vegada aquesta nit. Molt bé pel que el primer és el primer ,. A només alguns consells de concurs abans que en realitat bussejar en les revisions. Així com amb qualsevol examen, la pràctica sens dubte ajudarà a terme. Hi ha exàmens del passat sis o set anys de l'existència, així que això és una gran quantitat de pràctica material per a que vostès tenen. I de fet, avui en dia és en realitat va a anar sobre qualsevol tema que vostès tenen preguntes sobre com així com treballar a través de problemes de pràctica de concurs zero. Així que vaig a vomitar zero concurs des de l'any passat aquí, i podem treballar amb qualsevol problema que vostès li agradaria. Així que la pràctica. Vas a començar a fer això avui. Codi en el paper. Així que sí, si tot el món en realitat podria sortir paper, que serà gran, perquè no ets tindrà l'equip en el examen i escriure el codi a mà és sovint molt més difícil que es podria esperar. Vostè està acostumat a només veient i escrivint, i vostè té el seu compilador ajudar-lo quan té errors, però no aconsegueix que en l'examen. Així que és realment important en realitat ser capaç d'escriure el codi, i que la memòria muscular de fer a mà realment l'ajudarà. Així que estem posant una mica estreta. És dilluns. El seu examen és el dimecres. Però si tens temps, Definitivament agafar un dels exàmens de l'any passat o el anys abans sota la restricció de temps d'una hora i mitja. Només noquejar a una hora i mitja de temps, i seure per si mateix, i només el treball a través dels problemes com si estigués realment prendre-ho, perquè un de les coses més grans que sentim parlar les proves és que són molt llargs. Es tracta d'una gran quantitat de material. Hi ha un munt de preguntes, i la majoria de la gent no pot acabar. Sé que estic totalment de no acabar les meves proves quan em van portar a la classe. En aquest sentit, com una menor secció còmode, entén que aquest curs està destinat per atendre les persones de tots els nivells. La raó per la qual hem de dividir menys còmode, en algun lloc entre, i més còmode és tipus de fer-la més justa. I si vostè és menys còmode, és no cal en si per aconseguir tot. Igual que si vostè estava rebent tot, ho faria probablement estar a la secció més còmode. Així que, òbviament, no pegar-se a si mateixos fins massa difícil si vostè no pot acabar l'examen. Presa de mi, jo no ho vaig fer. Segueixo sent un concentrador. Encara estic ajudant a ensenyar el curs. Vas a estar bé. Bé. I, finalment, dormir una mica. Òbviament amb qualsevol examen sempre diem això. Abarrotar la nit anterior i no aconseguir dormir fa no- potser sí que que funciona per a vostè, vagi per a ell. No obstant això, per a la gran majoria de gent, aconseguir una mica de son, deixant el seu descans cerebral i recuperar abans d'entrar en l'examen realment l'ajudarà. També hi haurà gairebé segurament dolços en l'examen, així que has d'esperar. Vostès van a fer molt bé. Va a estar bé. I ara, en la següent hora i mitja em tractarà i preparar de la millor manera que puc. Així que tinc diapositives de, bàsicament, totes les seccions fins ara. Jo no vaig a anar a través de tots ells perquè això no és factible en una hora i mitja, així com treballar a través de problemes de pràctica. Així que en comptes que tinc una llista de temes. Aquestes són totes les coses que poguéssim interrogar a vostè a. Si hi ha alguna cosa que realment salta a terme que vol anar més, que vull que em vagi més conceptualment, Puc tractar de donar vostè una visió general allà. O si vols saltar a la dreta en a fent problemes de pràctica junts, podem fer això. Tot depèn de vostès. No hi ha que molts de vostès. Així que és el que els agrada a vostès fer. Vull ser el més útil cap a vostès. Així que vaig a deixar que acaba de veure. AUDIÈNCIA: Una cosa és el gràfic que guardem dient sobre la pila i el munt. Només la idea darrere això i el que això significa. ALLISON BUCHHOLTZ-AU: Sí, està bé. Aquest és tot el camí a la final, així que em desplaço a través. AUDIÈNCIA: Nosaltres no hem de fer-ho ara, però el que sigui. ALLISON BUCHHOLTZ-AU: Va haver-hi anything-- aquest. És aquest tipus de difusa per a la gent? AUDIÈNCIA: Sí, el segon que. I podem també què buffer overflow? ALLISON BUCHHOLTZ-AU: Desbordament de memòria intermèdia? Okay. Així buffer overflow és bastant fàcil només per parlar. Es tracta bàsicament de buffers es pensa en part de la memòria de matriu que té, oi? En general parlem de desbordament de memòria intermèdia quan vostè no està comprovant quant l'usuari està posant en, oi? I la idea de ser amb tampó de desbordament és que estan posant en el moment massa dades per a l'espai que ha assignat per a ells, oi? Així que si vostè diu, dóna em algun missatge, estem assumint que van a donar nosaltres un missatge de longitud raonable. Potser un parell de línies, el que sigui. Així que no comprovem. En el seu lloc, ens donen de menjar en un tot llibre que és un missatge, i es desborda la quantitat de espai que hem assignat per això. I el que passa és que podria sobreescriure llocs que no suposa. Així que sé que el professor va dir Malan alguna cosa sobre els atacs de desbordament de memòria intermèdia. Així que aquí és on l'entrada de la voluntat de l'usuari una certa quantitat massiva de dades en les esperances que sobreescriu passat Al final de la seva memòria intermèdia i reemplaça alguna cosa-- em pregunto Jo que tinc aquestes diapositives aquí. Jo no crec que tinguem aquelles diapositives d'aquí. Però, bàsicament, que sobreescriu una part de la memòria que li permet l'accés a les parts del seu ordinador que no ho faria normalment tenir accés. El més important amb desbordament de memòria intermèdia és només entendre que passa quan vostè no està comprovació de la quantitat del seu usuari està posant en. Quan vostè no és tipus de salvaguardar contra això. I en la seva forma més simple cosa, és només el teu usuari la introducció d'una quantitat massiva de dades en un intent sobreescriure una mica de seguretat part de la seva memòria. Això és tot el que és. Així que aquesta aquí, la pila i el munt. Bàsicament tot això és només una representació de la memòria i on es guarden les coses. Això és molt amable de Tot el que necessites saber. Les coses més grans que el que necessita saber són que-- m'ho dius a mi veure si hi ha un millor-- aquí. Així que aquesta és la pila d'aquí. Així que la pila té a veure amb totes les seves funcions que vostè està trucant en qualsevol moment donat. I el que és important recordar anar fora de la setmana passada amb malloc és que vostè realment no té control necessari sobre ell. Tot depèn de quan certa funcions estan executant. I quan s'estan executant, que tenen el que s'anomenen marcs de pila que pugen aquí. Per tant, tota mena de passa sense cap entrada de béns de vostè. Vostè escriu el seu programa, i es deixa córrer, i la pila de tipus de presa tenir cura de si mateix, ja que necessita. Així que si en el principal que està trucant cub, que passarà per aquí. Es crearà un marc. Però no hi ha res que vostè fa de forma explícita per crear aquest marc de pila que no sigui escriure la funció, per començar, d'acord? Què és una espècie de baix de la seva el control és el munt amb malloc. Així que cada vegada que malloc alguna cosa, vostè està prenent memòria de la pila. I aquesta és la memòria que vostè tenir, per falta d'una paraula millor, control explícit sobre, perquè recordi amb malloc és bàsicament allà fins que diguin el contrari. Per a aquells de vostès que secció vist la setmana passada, que hi és fins que vostè li diu que es vagi. Serà allà a menys d'una altra manera no dit. Així que la pila és només una mica es pot pensar en com memòria que vostè té control sobre. I aquests són només els dos grans coses diferents. A part d'això, vostè no ha de tenir de preocupar massa sobre pila i el munt preguntes o típicament més just si té paràmetres locals o una funció seria a la pila o munt. Òbviament, en aquest cas seria la pila. Si vostè està mallocing alguna cosa, On és que ve? El munt. Si ens fixem en els concursos de pràctica, els són generalment el tipus de preguntes que tenen. Vostè no ha de preocupar massa en això. Et fiques en forma més explícita sobre de pila i el munt més tard o en altres classes de CS. Així que tenir una mena de idea general del que és això serà bo, que jo només una mica es va anar per dalt. Qualssevol altres temes? Sí? AUDIÈNCIA: Es pot anar més punters de nou molt ràpidament? ALLISON BUCHHOLTZ-AU: Punters? Vols conceptual visió general de punters o practiques amb els punters? AUDIÈNCIA: Una cosa així com la sintaxi. ALLISON BUCHHOLTZ-AU: La sintaxi? Sí. Bé, ens anem acostant. Sí, així que això és només una mica d'alguna cosa quan es té una funció recursiva, cada vegada que la funció recursiva és anomenat, que només afegeix un altre marc de pila. Més o menys un exemple de la forma en què realment no tenir control sobre el marcs a la pica. Acceptar, punters. Molt bé, de manera que la creació de punters. Recordeu, és només has d'escriure l'estrella. Així que qualsevol tipus de dades que vostè va a estar apuntant a. Així que aquest seria un punter a un int. Això seria un punter a un char. Això seria un punter a un flotador. Així que és bàsicament el que sigui vols d'estar apuntant a, estrella és com es declara el punter, d'acord? Però llavors, evidentment, posa una mica complicat quan tens punter o vostè ha protagonitzar el que sigui. Així que la gran diferència és quan estàs declaring-- així que tenim tan some-- això pren alguns int estrelles. Així que això és una mica de punter crida x a un int, oi? Així que recorda el que això fa és aquesta flama al sistema de x. I això va a tenir una mica de direcció, ¿no? Així que diguem que aquesta és la nostra adreça. Els punters tenen adreces. Així que el que diu és que en aquest ubicació, estem emmagatzemant un int. Així que una altra manera podem pensar en això és que això és algun int. Realment no hem assignat a res encara, però és només un int. Així que ens podem fer és si nosaltres STAR x és igual a 5, aquest es converteix en un 5, d'acord? Això diu anar a qualsevol x és apuntant a, de manera que anar a aquesta adreça i que sigui igual a 5. Així que assignem 5 a aquesta direcció, no? I llavors, si vostè fa això, això ens dóna l'adreça de. Aquesta és l'adreça de l'operador. Llavors, ¿quina és la direcció de x? No sabem. No hem dotat amb una adreça. Podríem dir que és some-- ara ens vam una adreça, per la qual cosa la direcció és de 4. I en realitat, si passem per alguna cosa com això, una mica del que vam fer. Així que treballar a través d'aquí-- Trobada ajuda si vostè dibuixa cap a fora punters. Si vostè està en el seu examen, el recomano dibuixar caixes. Així que aquesta primera, int x és igual a 5. Això només vol dir que tenim una mica de col·locar a la memòria que és 5, no? I la nostra taula aquí ens diu que és en la direcció 0x04. I llavors es crea una mica de punter. Així que anem a trencar això baix una alhora. Així que això crea alguns boxejar a un int, oi? Es va a celebrar alguna direcció d'un ell. Així que això és cert punter. I aquesta guix és realment petit. Així que tenim una mica de punter aquí. I la nostra taula ens diu que és l'adreça és 0x08. Refredar. I estem assignant a la direcció de x. Recordeu, els punters tenen adreces, d'acord? Així que si volem mantenir x, tenim utilitzar l'operador de direcció, la qual cosa és el símbol d'unió, per obtenir l'adreça de x, que en aquest cas, 0x04. I després, si tenim una còpia int, això només crea alguna altra caixa que manté un int anomenada còpia. I si assignem a esto-- de manera que aquest fa referència a ella. Així que diu anar a qualsevol punter de direcció es manté. Punter manté aquesta direcció, pel que ens agradaria anar per aquí, i diem, bé, el que està en ell? És maig. Llavors còpia es converteix en 5. Té sentit? Què passa si he tractat d'assignar és a només punter. Què significa en realitat punter igual? Només seria el punter conté, no? I llavors, ¿què si ho vaig fer? Quina seria la còpia ser ara? AUDIÈNCIA: 0x08. ALLISON BUCHHOLTZ-AU: Sí, la direcció del nostre punter. Qualsevol part d'això que necessita ser re-explica? Refredar. Definitivament hi ha una molt diversió problema en una prova que puguem sobre aquesta li dóna més pràctica. Els nois de la setmana passada pot dir-li que no era tan dolent. Arribem a través d'un sencer carta, i tothom ho van fer molt bé. OK, així que això és informació general de la sintaxi dels punters. El més important és entendre com crear-los, fer referència, i la direcció, d'acord? Refredar. Qualssevol altres temes abans ens submergim en la pràctica. A més, si estem passant per els problemes de la pràctica i hi ha una cosa que vostè vol un actualització sobre, podem fer això també. Té vostè alguna cosa? AUDIÈNCIA: Estructures i llistes enllaçades. ALLISON BUCHHOLTZ-AU: Les estructures i vinculat llistes, a D'acord. Així estructures. En realitat ens anem sobre aquesta nit també. OK, així estructures. Les estructures són bàsicament només un mètode perquè vostè mantingui múltiples valors de tipus diferents. Així que amb un arsenal som constreta a un tipus de dades. La nostra gamma ja sigui ha de ser només números, o simplement ser caràcters, o simplement ser carrosses. Però, potser necessitis contenir més que això. Potser vostè necessita per hold-- si estem parlant d'un estudiant, vostè va a tenir la seva casa, la seva Nombre d'identificació, la seva edat, lloc de residència, Oi? I tots els que són diferents tipus de tipus. Així que no es pot emmagatzemar els que tots en una matriu. Així que el que pot fer vostè és pot crear una estructura, la qual es pot pensar en com el teu propi tipus de dades de caràcter personal. Així que en lloc de només tenir ints i en lloc de només amb carrosses, vostè pot tenir un estudiant tipus que té tots aquests camps en el mateix. Així que la forma inicialitzem les nostres estructures és-- realitat ja que la meva escriptura és terrible, van a la transició a escriure. Woo. Acceptar, per la qual cosa si volem crear un struct-- Jo només vaig a aquí baix. No tingueu en compte el principal en el que sigui que utilitzarem més endavant. Així que la forma en què vols fer és amb typedef struct. I anem a trucar a aquest estudiant perquè això és el que jo estava fent servir. OK, així que typedef vol dir que ets la definició d'un nou tipus, d'acord? Hi ha matisos en tant ho fa només una estructura enfront d'una estructura typedef. Per a tots els intents i propòsits, vostès són només suposarà que són aproximadament el mateix i just utilitzar typedef struct per ara. Es convertirà de forma més evident en la seva següent P estableix quines són aquestes diferències, però jo no crec que es necessita preocupar d'això ara mateix. M'agradaria molt que saber com crear-ne un, accedir-hi, i assignar [? valor. ?] Un nou tipus d'estructura, i estem demanant que els estudiants. Així que després hem acabat la creació d'aquest, per a tots els intents i propòsits, vostè tindrà un tipus anomenat estudiant. I vostè pot pensar en ell només com un tipus com un int o float, o un char. És només un altre tipus, d'acord? Així que en aquest, què tenim? Tenim potser un nom. Així que potser volem un nom de cadena. I tenim potser una int que és un ID. I tenim un altre a aquest és el número de telèfon. I hem deixat some-- a veure. Què més podríem tenir? Tindrem una mica de corda a casa. Totes les coses que un estudiant té. Així que això crea una estructura ara. Llavors, ¿com podríem crear un estudiant? Si tenim alguna variable que és va a parlar de Walker aquí, així que tener-- només som va a trucar a aquest caminador. Ell necessita un tipus. Quin és el teu tipus? AUDIÈNCIA: Estudiant. ALLISON BUCHHOLTZ-AU: Estudiant. Així que això simplement crea un objecte que pugui pensar que té totes aquestes coses. Vostè acaba de crear un estudiant caminador. Així que ara hem de ser capaços assignar tots aquests, no? Així que algú recorda com accedim dins d'una estructura? AUDIÈNCIA: Període. ALLISON BUCHHOLTZ-AU: Període Exactament. Així que si volíem assignar ell un nom, que podria fer això. Òbviament, això faria ser-- aquesta part aquí seria estar dins de principal, per la qual en realitat m'ho dius a mi fer això. Declari que estigui per sobre de principal, així que podem usar-la dins de principal. Així que ara jo vull que faci ID, i només haurem de fer una mica d'allà, i després li assignarem una casa. Bam. Refredar. Així que ara si mai necessiten accés una mica més tard potser en-- nosaltres-- si mai necessitem accedir a qualsevol cosa, farem una còpia d'identificació int. I vull copiar ID de Walker en això. Com podria jo fer-ho? Vostè necessita tenir accés dins del caminant struct a [? anar a aquest?] [? I?]. I de la mateixa manera que assignat fins aquí, com podríem accedir-hi quan volem donar aquest valor a una altra cosa? AUDIÈNCIA: Walker.id. ALLISON BUCHHOLTZ-AU: Sí, exactament. Així que això és més o menys tot el que necessita saber per a estructures. Només ha de pensar en com una altra variable. Bàsicament un crear el seu propi tipus de variable, d'acord? S'utilitza per declarar les variables de cap manera. Aquí caminant continua sent una variable. Només té un estudiant tipus ara en lloc d'un tipus int, o una cadena de tipus, o un tipus char. Si hi havia una manera fàcil de parlar sobre estructures, és, literalment, només un crear el seu propi tipus de dades que li permet al grup totes aquestes diferents tipus de dades junts. Això té sentit? Okay. Això i l'accés amb punts. Gairebé tot el que necessita. Bé, d'on va la meva PowerPoint? Aquí el tens. Bé, això és rar. Ajá. Acceptar, fresc. Qualssevol altres coses o fer que adreçar-se a la pràctica? Practiqui? Okay. Impressionant. Vaig a sortir d'aquesta. Si en qualsevol moment durant preguntes de la pràctica, Estic content de renovar i passar per les coses. Així que tinc concurs zero fins aquí. Si vostès volen tirar que a l'equip, igual que prendre 5 minuts per navegar a través d '. Potser triar algun superior preguntes que volen repassar. Si vostès no pot decidir, només haurem de a poc a poc començar a treballar a través d'ells, però estic segur que hi haurà algun preguntes que vostè és particular amb ganes de parlar i tenir el meu treball a través de tots vostès. Així que seguir endavant i prendre cinc minuts. Desplaçar-se a través d '. I aquesta és la prova a partir de 2013. AUDIÈNCIA: Zero? ALLISON BUCHHOLTZ-AU: Sí, concurs zero. No estem fent un concurs de coses. Farem que en un parell de setmanes. També per a aquells de vostès que va arribar tard, tenim el caramel, pel que fa que vostès volen el caramel? AUDIÈNCIA: És clar. ALLISON BUCHHOLTZ-AU: Jo només sóc passarà voltant. Escolta, si vostès arriben aquí d'hora, s'obté més dolços. Això està bé. Ben, vols caramels? Vols una mica d'això? També hi ha Snickers si algú vol Snickers. Vaig a deixar aquí i aquí. Siéntase lliure. Vols més? AUDIÈNCIA: tot a punt. Gràcies. ALLISON BUCHHOLTZ-AU: I jo tenia una bona munt allà al principi. Vostès l'oportunitat de prendre la prova i Va arribar a tenir una festa concurs classificació. És un caos. 900 exàmens. Serà molt divertit. L'anar a ser gran. Estic bastant segur que és una de la major vinculació de personal nits de l'any. Algú ha fet prova de zero l'any passat encara per curiositat? AUDIÈNCIA: Parts d'ella. ALLISON BUCHHOLTZ-AU: Parts d'ella, a D'acord. Sabia vostè té preguntes sobre qualsevol d'ells? AUDIÈNCIA: Ja va anar a les hores d'oficina. Gràcies això. ALLISON BUCHHOLTZ-AU: Bé, amb sort és encara tipus d'estris. Quan vas a horari d'oficina perquè? AUDIÈNCIA: El meu TF ells tenia aquesta tarda. ALLISON BUCHHOLTZ-AU: Oh. Qui és el teu TF? AUDIÈNCIA: Fred [? Wujaya?]. ALLISON BUCHHOLTZ-AU: Hi ha tantes TFS. Així que molts. Bé. Algú té alguna per iniciar el que pugui Anoti que volem treballar? Suposo que els punters un amb la taula. No t'ho pensis. AUDIÈNCIA: Potser l'interruptor d'un. ALLISON BUCHHOLTZ-AU: Així que el número 12? Assumeixo número 8 i 9 són, probablement, El que la gent vol anar. AUDIÈNCIA: I 10 i 11. ALLISON BUCHHOLTZ-AU: I vostès saben vostè aconsegueix una pàgina de notes, oi? AUDIÈNCIA: Sí, i què són ens va permetre posar en això. ALLISON BUCHHOLTZ-AU: Està permès posar tot el que vulguis. I pot ser escrit. Pel que jo recordo, la nostra van ser mecanografiades. AUDIÈNCIA: Vostè pot fer esquena i banda i banda? ALLISON BUCHHOLTZ-AU: Sí, banda i banda. Així que alguna cosa com el munt i [? part de darrere?] munt, el seu funcionament vegades. Útil. Potser petites coses sobre punters per recordar. Sintaxi de les coses. Tenir la mateixa manera que un esquelet programa pot ser molt útil. Jo sé que sempre em vaig oblidar exactament el Se suposava que havia d'escriure per int main, perquè sempre acaba copio enganxar des del meu conjunt P anterior o que ja hi és, per la qual cosa Realment mai he escrit, així que tenir això pot ser super útil. OK, així que per què no fem nosaltres començar amb el número 8, llavors? Bé. Okay. Així que consideri el programa a continuació. Així que, òbviament, quan veiem punters, probablement una bona idea per començar a dibuixar, oi? Vull saber on tota la meva grans trossos de guix van ser. Això és una mica molest. Així que tenim aquí una funció d'intercanvi això va a prendre en dos punters. Així doncs, en aquest cas, en realitat hauria de ser el canvi coses enfront del nostre intercanvi inicial funció que només va prendre en còpies. Llavors, ¿què farà és-- comencem per principal, perquè aquí és on 1 és. Així que tenim una mica de int x 1. Tenim alguns i que és igual a 2. I després tenim algun intercanvi això va a prendre aquests. I anem a veure el que tenim aquí. I en el nostre table-- oh noi. Com vaig a fer això? Vaig a treure la meva taula aquí. Tot just pel que és allà. Tot just pel que és. 1, 2, 3, 4, 5, 6, 7. I ells ens donen que 1 és 1, i 2 gen. Refredar. Impressionant. Així que 3. I hi ha [? A 1.?] Bé. I a continuació, la direcció de x és 0x123. I I és Ox127. Refredar. Bé. Vull que els nois treballa en aquest per al treball just com-- en ell amb les persones que t'envolten. M'hauria agradat haver dit que mentre jo estava assegut a dalt. Treballar en ell. Intenta treballar-hi per vosaltres mateixos per un parell de minuts, i després vaig a treballar-hi amb vostè. A causa de que l'única manera que estiguis realment va a aprendre és fent-ho vostè mateix. No es preocupi. Bona sort. Bé, per què no fem que a poc a poc començar a treballar a través d'aquest. Així que tothom rep després de la línia 1, x és 1. Després de la línia dos, x i i són 1 i 2, oi? Refredar. Així que la línia 3 és on les coses posar-se interessant, és clar. Així que el que hem fet aquí és que ara tenim intercanviat. Diem que X i Y tenen aquests punts, o que tenen la direcció de x i y, Oi? Així que en aquest cas, tres, Quin és el valor d'una? una havia estat aprovada en, se li ha donat el valor de la direcció de x, oi? AUDIÈNCIA: 1? ALLISON BUCHHOLTZ-AU: Així que afegim a la x? Quina és l'adreça de x? AUDIÈNCIA: 0x123. ALLISON BUCHHOLTZ-AU: Exactament. Però el que és una realitat que apunta? Si haguéssim d'eliminar la referència a, ¿Quin valor hauria de donar-nos. AUDIÈNCIA: 1. ALLISON BUCHHOLTZ-AU: seria donar-nos 1, perquè el que que estem dient és anar a aquest direcció, ens diu quin és el valor. Llavors, ¿què seria de b? AUDIÈNCIA: 0x127. ALLISON BUCHHOLTZ-AU: Exactament. Així que és l'adreça de i. I llavors, ¿què [? eliminar la referència? ?] AUDIÈNCIA: 2. ALLISON BUCHHOLTZ-AU: OK, així que ara fa quatre. Vam dir a és equal-- bé ara que hem fet int temp és igual a l'estrella d'una. Llavors, ¿què canvia? Només hi ha una cosa això canvia aquí. Què és? AUDIÈNCIA: temp. ALLISON BUCHHOLTZ-AU: La temp. Així que podem tornar a escriure tot això. Una bona estratègia per a aquests s'acaba d'esbrinar quins canvis, perquè més sovint només hi ha una cosa que és canviarà en un moment donat, d'acord? Així hem assignat temp. Ara el nostre proper punt, cinc, ens han fet una estrella igual a protagonitzar b. Llavors, ¿què canvia ara? AUDIÈNCIA: Estrella a. ALLISON BUCHHOLTZ-AU: Estrella a, so tota la resta es manté igual. I què vol dir protagonitzar un igual? AUDIÈNCIA: 2. ALLISON BUCHHOLTZ-AU: 2. Preciós. Impressionant. Acceptar i, a continuació, ara tenim iniciar b és igual a temp. Així que l'únic que canvia és l'estrella b. Tota la resta es manté igual. ¿I quina és l'estrella b igual a ara? I que hi hagi completat la taula. Perquè ara, al final, si diem x ei, sabem que en aquest point-- sabem que quan ens canviat protagonitzar una de 2, el que van fer és que va dir que estava bé, en abordar 0x123 aquí, canviar-lo. Ara bé, això era febrer. I a continuació, en aquest punt, dèiem així, adreceu-vos a l'estrella b. Així que anar a la direcció en 0x127 i el converteixen en un 1. Així que ara al final quan en realitat ens tornem de main, en realitat tenim que x és igual a 2 i y és igual a 1. Tothom bé amb això? Acceptar, fresc. Número 9. Vostès treballar en això. Vaig a establir un consell pel que podem treure a través d'ell. Serà una explosió. Les grans taules poden ser realment fa por, ho sé. Però si només els pren en una fila un temps, ells donen molt menys por. Bé. Així que ja saps que això tindrà passat per principal primer, no? Inicialitza x i y i després tracta de canviar-los. Així que fins i tot està per sobre d'intercanvi, de manera real, Goes és que estem passant per principal, i llavors està trucant fins a canviar, d'acord? Així que tot el món sap això. Així que quin nois volen començar? Hi ha algú realment segur sobre un d'aquests? O fins i tot parcialment segur? Per què no comencem amb x? Què pensem x és? AUDIÈNCIA: 1. ALLISON BUCHHOLTZ-AU: 1. Així que per què és 2. I això és perquè el gran distinció aquí és que només som passant còpies, no? No estem passant per referència. Així que fins al final de aquest programa x i y han romàs igual, perquè són només còpies en la funció d'intercanvi. Ells en realitat no canvien, no? Llavors, què sobre a, b, i la temperatura? AUDIÈNCIA: A és B. ALLISON BUCHHOLTZ-AU: a és b. Així que en aquest cas, una era x, que és 1, no? Així que aquí, anem a caminar a través d'ell. Així que al principi, una i b són 1 i 2 i indefinit. Així que originalment temp aconsegueix assignat a una, pel que la temperatura és 1. a és igual a b, de manera que tenim 2, i b és igual a temp. Ara tenim 1. AUDIÈNCIA: En el qual anterior intercanviades ampersand x i signe i. Què significa això exactament? ALLISON BUCHHOLTZ-AU: Així que això significa que estàs passant per referència. Així que això significa que ets en realitat que passa a les adreces d'on x i i s'emmagatzemen. AUDIÈNCIA: Però vostè no és el canvi de la direcció. ALLISON BUCHHOLTZ-AU: No és intercanvi de les direccions. Vostè està intercanviant el que hi ha dins d'ells. Igual que el que està en aquesta direcció, i això és per què funciona. Versus en aquest programa aquí el que estàs fent és que estàs creant còpies. Així que tens x i i que existeixen com les seves pròpies variables aquí. Però després, quan es passa ells en permuta, és com si està creant tot aquest altre conjunt. Així que mai és en realitat x i i commovedores. AUDIÈNCIA: Si signe x el que està en la direcció de x, ¿quina seria l'estrella x ser? ALLISON BUCHHOLTZ-AU: Àmpersand x és el que està en la direcció de x, llavors star-- bé, en aquest cas, x no és un punter. AUDIÈNCIA: Oh, OK. Pel que només fa això perquè no és un punter. ALLISON BUCHHOLTZ-AU: Dret. Només es pot fer d'estrella cosa que és un punter. Potser vostè podria fer que a les coses que no ho són, però la compilació que fan que les coses boges que passaria. I jo no sóc exactament segur del que anava a succeir. Sempre es pot prendre la direcció d'alguna cosa, però no es pot eliminar la referència cosa que no és un punter. Si això té sentit, això és un bon distinció de tenir. Així que no és tan dolent, oi? Les taules són d'esperar aconseguir una mica menys de por. Bé. Ah, les divertides. Així que ara, a escriure el seu propi codi. Així que vaig a deixar que vostès treballa en això durant uns quatre minuts, i llavors podem parlar sobre de maneres d'apropar-se a ella. No dubti en parlar amb la gent que t'envolta. També això és interessant. És com una totes les nenes secció en aquest moment. Bastant emocionant. Excepte per Chang. Però Chang no és realment part de la secció. Impressionant. Perfecte. Així que li donaré un parell de consells. En el cas on s'ha més d'un caràcter, on vostè té una mica més com 123 o 1000 alguna cosa, ha de ser capaç de bucle i convertir a través de cada un d'aquells. Així que hi ha un parell maneres que vostè pot fer que, però vostè està definitivament va a tenir un bucle en algun lloc d'allà per bucle a través d'ells, que és alguna cosa així com el sorteig amb fins i tot si es diu a strlen, que és una cosa així com oh potser vol utilitzar la longitud de la cadena d'alguna manera. Bé. Llavors, què pensen vostès que podria ser una de les primeres coses que volem fer? Hi ha un parell de casos en aquí hem de tenir en compte, oi? O tenim una cosa que és nul. Què tenim? Casos. Null. Tenim el cas que té alguna cosa que no sigui 09, no? Així que anem a dir que té lletres. O tenim el cas que és vàlid. Tres casos per pensar. Així que quin pensa que podria ser la més fàcil per tenir cura de primera? AUDIÈNCIA: Nul. ALLISON BUCHHOLTZ-AU: El cas és nul. Llavors, ¿què anàvem a fer allà? AUDIÈNCIA: [inaudible]. ALLISON BUCHHOLTZ-AU: Sí. ¿I què és el que vull fer? AUDIÈNCIA: Torna 0. ALLISON BUCHHOLTZ-AU: Exactament. Impressionant. Okay. Així que ara el cas que tingui lletres i el cas de que és vàlid. De fet, podem tenir cura això dins d'un bucle, d'acord? Així que una manera de fer-ho it-- del que podria ser una manera simple de comprovar si és vàlida. Hauríem d'anar a través de cada lletra i fer què? AUDIÈNCIA: Comprovar si és en-- ALLISON BUCHHOLTZ-AU: Dret, es pot comprovar si és entre 0 i 9, no? I després, en el cas que és vàlida, estem va a acabar iteració a través de la nostra cadena de tota manera, no? Llavors, ¿per què no intentem i combinar-les en una de sola. Repetirem a través de la cadena fora, i com hem fer això, anem a primer fer una verificació per veure si aquesta lletra o si aquest personatge és vàlida. Si és així, realitzarem la operació que hem de convertir. En cas contrari, tornarà 0, ¿no? Així que abans de fer això, ens probablement voldrà alguna variable que podem tornar al final que serà el nostre valor real. Així que anem a inicialitzar algun valor sigui 0. I així és com vam començar. Així que vaig a desfer-se d'aquest. Llavors, ¿com anem a iterar a través d'aquesta cadena. AUDIÈNCIA: bucle For. ALLISON BUCHHOLTZ-AU: Un bucle for. Llavors, ¿quina és la nostra busques? AUDIÈNCIA: i és 0. ALLISON BUCHHOLTZ-AU: mm-hm. I el que estem iterant fins que? AUDIÈNCIA: longitud de str s. ALLISON BUCHHOLTZ-AU: OK, ara record hi ha una millor manera. [Inaudible]. AUDIÈNCIA: Sí, podem fer n és igual. ALLISON BUCHHOLTZ-AU: Exactament. AUDIÈNCIA: i és menor que n. ALLISON BUCHHOLTZ-AU: I per què voldríem fer això? Te'n recordes de la raó? AUDIÈNCIA: Hem de tornar a calcular la mateixa. ALLISON BUCHHOLTZ-AU: robava d'aquesta manera vostè només s'han de calcular strlen una vegada. Si ho fa i és menor que strlen s, això és dir que recalcula la longitud de cada vegada s'executa el bucle for, que no és un enorme cost de l'energia, però és millor pràctica per intentar fer coses com que una vegada. A menys que potser vostè té una cadena boja això està canviant en cada iteració. Però si es manté igual, la salvarà. Bé. I llavors jo plus plus. Impressionant. Estem en el nostre camí. AUDIÈNCIA: De debò ràpidament. En primer lloc, pel que anem a dir que acabem de He de menys de strlen de s, ens estan qualificant en el disseny en absolut o només la correcció? Ells no ho són. Estem de qualificacions en la correcció per a proves pel que jo sé. No puc fer una en el ple garantia, però en la seva major part, gran majoria és correcte, perquè estàs sota molta restricció de temps. Disseny normalment significa vostè té temps per pensar sobre l'elegància de la seva situació. Acceptar, per la qual cosa estem iterant a través. Així que hem de revisar, ja sigui a veure si aquest personatge és vàlida o si podem fer el nostre normal [? una per a i?] funció. Podem preocupar pel que és a dir en un segon. Llavors, ¿per què no ens take-- si algú pot pensar sobre una manera de comprovar que veure si això és vàlid. Sabem que serà si alguna condició, no? I recorda que això és en ASCII, així que com podria veiem si no és 0,1, 2, 3, 4, 5, 6, 7, 8, o 9. AUDIÈNCIA: Si alfa. ALLISON BUCHHOLTZ-AU: Així que si ho faria alfa només fes-nos saber si es tracta d'una carta. I si ens donen un símbol, és encara no del tot va a comprovar. Així que si vostè tira de la seva ASCII taula, sabem que del 0 al 9 estan en un segment. Digues-me els nombres que corresponen a si és possible. AUDIÈNCIA: 40. ALLISON BUCHHOLTZ-AU: Així que el rang és com 40-- AUDIÈNCIA: Potser. 48 a 57. No estic segur. ALLISON BUCHHOLTZ-AU: de 40-57? AUDIÈNCIA: 48, crec. ALLISON BUCHHOLTZ-AU: 48 a 57. Així que sabem que els ASCII symbols-- si el valor ASCII no és entre el 48 i el 57, no és vàlid, no? Així que podríem fer servir això per a el nostre avantatge possiblement? Com aconseguirem aquesta carta, en primer lloc? Com estem accedint això aquest personatge? AUDIÈNCIA: s i suport. ALLISON BUCHHOLTZ-AU: mm-hm. Perquè podem pensar en cadenes com arrays, recorden. Llavors, ¿què és el que volem dir? Volem dir si aquesta és-- et donaré una pista. Es tracta d'un menor que. Què creus que ha de ser inferior a? AUDIÈNCIA: 57? ALLISON BUCHHOLTZ-AU: 47, no? Però també representa que a mesura que un 0 en un sol [? els radis?], perquè això és el caràcter 0. També pot posar 47. Tenir la taula ASCII, com que es veu, és només una mica vostè ha de tenir en el seu full d'examen. Així que si aquest és el cas, si és una menys de 0-- i no necessàriament. No és més que qualsevol dels dos serà inferior o superior a 9. Així que vostè pot omplir aquesta última per a mi? Així que o es d'i és el que, Rhea? AUDIÈNCIA: Major que 9. ALLISON BUCHHOLTZ-AU: No. Això té sentit per tot el món, com vam arribar allà? Aquests problemes, que són com una vegada que veure les solucions, és com oh, OK. I és per això que la pràctica l'ajudarà. OK, així que tornem 0. Preciós. Bé. En cas contrari, ¿què volem fer? Aquesta és la part interessant on és una mica més com les matemàtiques enfront de CS al meu entendre. Algú té una idea de com podem fer això? Així que l'important s'adonen és el primer caràcter estem prenent serà el dígit d'ordre més alt, no? Així que si estem veient la conversió 123, la primera vegada iterem serà 1, però necessitem que per ser 100 per al final, oi? Així que una cosa que pots fer és que amb cada dígit subsegüent vostè pren, vostè multiplica el seu valor per 10, de manera que per al moment en què arribi a la final, tot ha estat desplaçat cap amunt, a la dreta? Així que la primera vegada que s'executa ell, vostè té 1 com a seu valor. Segona vegada que s'executa, vostè multiplicar el seu valor per 10. S'actualitzarà de manera que ara és 10, i afegir en el seu següent valor. I llavors vostè multiplica això per 10 i afegir en el seu següent valor. I és per això que diuen que això és molt més semblant a les proves un algoritme matemàtic front CS, però estic divagant. Jo no escric les proves. Així que una cosa que podem fer és que diuen que és igual a 10 vegades el valor. Així que això canviarà seu dígit un cop cada vegada. I després només volem afegir. Volem afegir en el acabem de rebre, no? Llavors, ¿com ens convertim en realitat la nostra De caràcters ASCII en el nombre que representa? Així que sabem que 0 és igual a 47, no? Així que si 0 és 47, el que hauríem de fer perquè per fer realitat sigui un int de 0? AUDIÈNCIA: És 48. ALLISON BUCHHOLTZ-AU: 48? Ho sento. Ens resta 48, no? Recordi matemàtiques ASCII? Podem tractar només com nombres normals. Si els tracta com a nombres, es converteixen en els números d'eficàcia. Així que si tenim es de i, que anem a dir en aquest cas és igual a 0. Així s de i en aquest cas seria el ASCII-- el int ASCII perquè seria 47. Així que podríem subtract-- o 48. Vostè podria fer això, és una manera. Algú sap d'un millor manera que podríem fer 48? Acabem de dir 0 és-- entrar en l'ASCII que podia fer cita 0. Així ho fa tipus de fer sentit de com funciona això? AUDIÈNCIA: En aquest punt, és el valor 0 perquè fins i tot si ho multipliques per 10, estàs començant amb zero, pel que en cas que s'encén? ALLISON BUCHHOLTZ-AU: Així que en aquest cas, voler multiplicar abans d'afegir, perquè en aquest cas, sí, ho faria encara ser: el meu punter no es troba. El valor en aquest cas, la primera temps correm serà zero. Així que només estàs afegint en aquest primer dígit. El que és important és que la propera vegada iterar, que vol desplaçar cap amunt abans d'afegir el seu següent dígit a. Això aclarir per a vostè? Okay. A vegades vas a aconseguir més coses estranyes Mathy. Si tingués més de això, vostè encara va a get-- faràs molt bé. Crèdit parcial és una molt gran cosa sobre concursos CS50. Així que escriure el que saps. Si tens tot a excepció d'aquí, ets encara va a fer molt bé el problema. Com que vostè està demostrant, OK, jo sé gairebé. Sé que he de recórrer. Jo sé el que he de comprovar. Acabo de fer no prou obtenir la forma de convertir-lo. Vas a estar bé. Sí, vostè va a perdre un parell de punts, però vostè encara va a aconseguir un bon nombre de punts per a alguna cosa com que si estàs falten aquestes dues línies. M'agradaria ser com bé, aquesta persona sap el que estan fent. Matemàtiques és difícil. Així que jo diria que estaria bé. Acceptar, de manera que els nois llestos per tracti de strlen amb punters ara que vostès són mestres punter? Així que vaig a deixar que vostès nois treballen que per una mica. Si algú necessita un repàs. Així que vostè vol utilitzar punter aritmètica, i després, si s és nul, la seva aplicació ha de tornar 0. Coses com aquesta que et fan molt feliç de simplement cridar strlen al final del dia. Crec que aquest podria ser una mica més fàcil que l'anterior, que és bo. Et vaig a donar un minut més nois, i després anem a treballar a través d'ell. I després hem d'anar als interruptors. Acceptar, nois llestos? Potser una mica. Així que jo li he donat el seu dues opcions, no? Qualsevol de comprovar nul·la i retornar 0 si que és, o realment calcular la longitud. Llavors, ¿qui vol escriure comprovar nul·la? No t'ho pensis. AUDIÈNCIA: Si parèntesi s és igual a és igual a nul·la rendibilitat 0. ALLISON BUCHHOLTZ-AU: Lovely. M'encanta quan la meitat del seu problema és simplement la comprovació de nuls. Sé que amb vostès últim setmana jo estava com a xec per nul literalment cada vegada. Acceptar, així que-- AUDIÈNCIA: Si return 0 és només una línia, Quina falta ens fan el suport arrissat? ALLISON BUCHHOLTZ-AU: No ho fa tècnicament necessitar, sempre ets consistent. És una bona pràctica només a adquirir l'hàbit de la utilització de claus, però tècnicament no. No els necessita per a una línia. Nosaltres només tendim a recomanar per a les persones que comencen a programar. Així que ara el que podríem voler fer aquí? Així que ara que sabem que la nostra cadena és vàlida. Volem mantenir càlcul de la longitud. Quin és, probablement, la primera El que volem fer? AUDIÈNCIA: Crear una int que és la longitud. ALLISON BUCHHOLTZ-AU: Exactament. AUDIÈNCIA: I volem configurar-lo perquè? ALLISON BUCHHOLTZ-AU: 0. Perfecte. Bé. Ara el que vull fer? Això és realment la major part d'ella. No t'ho pensis. AUDIÈNCIA: Així que probablement ho fa un bucle for. I després, ja quan es diu s ets obtenir l'adreça de la primera hora, vostè començaria amb i és igual a 0. I després, sempre i quan x a més que no està de tornada slash 0. ALLISON BUCHHOLTZ-AU: El separador nul. AUDIÈNCIA: El separador nul. A continuació, s'afegeix un de longitud. ALLISON BUCHHOLTZ-AU: Sí. Acceptar, pel que permet convertir aquesta en codi molt concreta. Però aquesta és la idea perfecta. Això és exactament el que estem fent. Anem a ser la iteració a través amb el punter. Així que el que volem fer és lloc d'un int aquí, perquè som no es refereix a una xarxa IT. Ens referim a l'inici d'una cadena, de començar a ser una mica de direcció, Oi? Per això volem un punter. Així que anem a tenir una mica d'estrella char, perquè correspon als nostres s, no? Així que aquest és un moment que estem inicialitzar l'inici de la cadena, d'acord? Així que anem a cridar i. Si és el principi de la cadena, ¿Què serà assignat a? No 0. Nosaltres volem que sigui la començament de la nostra cadena. El que representa l'inici de la nostra cadena que ens va ser donat? AUDIÈNCIA: Just s. ALLISON BUCHHOLTZ-AU: s. Així que això crea un nou punter que representa l'inici de la nostra cadena, d'acord? Una altra forma de pensar d'ella és com aquí està la nostra matriu. Aquesta és la nostra cadena, s. Així que diguem que aquest és el primer lloc, i això és 0x4. 04. Aquesta és la nostra s, que sosté que la direcció. I acabem de crear una altra anomenada i que només es refereix a la mateixa cosa. Així que els dos estan simplement apuntant a l'inici de la nostra cadena. Això és només una representació gràfica. Així que ara el que volem fer és que volem repetir la nostra condició d'iteració a través de la nostra cadena. Ara anar de compres. He d'anar a comprar, nois. És que volem mantenir l'actualització fins arribem al terminador nul, no? Llavors, què podria que sembla? Volem i, o volem estrella i és la pregunta? És el terminador nul una adreça o alguna cosa situat en una direcció? Situat en una direcció, ¿no? Així que hem d'eliminar la referència del que és aquí, perquè això és només una mica de direcció. Per aconseguir realment l'inici hem d'eliminar la referència d'aquest pel que en realitat obtenim el que hi ha en aquest primer lloc. Així que si ho fem Star I, el que No volem que la igualtat? AUDIÈNCIA: Tornar barra? ALLISON BUCHHOLTZ-AU: No. Això té sentit per a tothom? Hem d'entrar a la nostra cadena i assegurar-se que no és el final. I llavors podem simplement actualitzar així. Actualització normal. Així que, mentre aquests són Met, ¿què és el que hem de fer? AUDIÈNCIA: Longitud plus plus. ALLISON BUCHHOLTZ-AU: mm-hm. I després, després del bucle for acaba, ¿què és el que volem tornar? AUDIÈNCIA: longitud? ALLISON BUCHHOLTZ-AU: longitud. Cal anar. Òbviament la carn d'aquest és la comprensió d'aquest bucle. Tothom obtenir la forma que van treballar? Estic content d'anar-hi de nou. AUDIÈNCIA: La segona part, per la qual cosa l'estrella i allà, aquesta és l'adreça de la primer-- ALLISON BUCHHOLTZ-AU: No és la direcció. És el que està en. AUDIÈNCIA: Això és en realitat en aquest país. ALLISON BUCHHOLTZ-AU: Això és el que és en realitat en aquest país. Així que això és deixar que dient-- em faig aquesta millor. Així que això és 0x04, i jo només vaig per dir que vaig a fer això el meu nom. Okay. Sí, sé que tinc opinió concurs d'aquesta nit. Un munt d'opinió Quiz. Així que diguem que aquesta cadena és el meu nom, Allison. Poc desordenat, però hi és. I s representa la ubicació d'on comença la cadena, així que vaig a fer això real-- aquesta és l'adreça d'una, on comença la cadena, no? Així que el que fem aquí és que volem utilitzar punters per recórrer. Així que vam crear algun punter, i, que també és igual a la d'inici de la cadena. I en cada punt, volem continuar passant per la matriu aquí fins que ens colpegem el terminador nul. Així que sempre volem comprovar què és en cadascuna d'aquestes direccions. Per tant, eliminar la referència i, de manera que la primera vegada que ho fem nosaltres a dir, OK, el que està en la direcció 0x04? És un a. Bé, estem bé. Increment de longitud. Passar a la següent. Així que jo-- recordar punters augment pel mida del que estan assenyalant. Així doncs, en aquest cas, ja que és un char, que va a actualitzar a un. Així que ara anem a mirar a 5, el que significa que va per aquí. Pel que diu bé, anar a 0x05. Què hi ha aquí? És una l. I seguirà fent que fins que arriba a aquest. I diu bé, el que està en sigui quina sigui la direcció que és això? El separador nul, a D'acord. Sortida. I just tornar longitud. Perquè vostè necessita el que en realitat és a aquesta direcció, no l'adreça de si mateix. Hi ha molt pocs llocs on que realment necessita la direcció. La majoria de les vegades quan utilitzeu la i és quan vostè és el primer l'assignació d'un punter o quan estàs passant en una altra funció. Acceptar, tots bé allà? Tipus de? Okay. Així que sembla que hem té al voltant de 12 minuts per al final, així que anirem a potser el nostre últim problema, i després hi ha alguna conceptes que han sorgit mentrestant podem anar ràpidament sobre això. Així que canviar de marxa és l'última problema aquí, canviar estats. Així que el seu treball és tornar a escriure aquest de manera que es comporta de la mateixa però no utilitza els interruptors. Mans guix. Així que qualsevol pregunta sobre aquest fos el bat? Cap? Okay. Tothom entén que si el cas no té res després d'ella, que significa que ha segueixi el següent pas? Així que el cas 1 i 2 en aquest cas fer exactament el mateix. Algunes vegades un moment de confusió. Bé. Algú té alguna idea? Sí? AUDIÈNCIA: Així que vostè pot només ho fan si les declaracions. ALLISON BUCHHOLTZ-AU: mm-hm. Quina és la nostra primera? AUDIÈNCIA: Si n és igual és igual a 1, i les 2 línies per o n és igual és igual a 2, després la lletra petita. I a continuació, es pot fer una altra cosa si? O pots simplement fer un si? ALLISON BUCHHOLTZ-AU: Vostè pot fer una altra cosa si? AUDIÈNCIA: Li importa si ho fas si? ALLISON BUCHHOLTZ-AU: Pel que fa. Fa anyone-- així, obtindrà el mateix resultat si s'utilitza només passaria front si utilitza IFS altres. Podeu pensar en la raó per què és possible que vulgueu utilitzar una cosa si davant d'una gran quantitat de IFS? Ha de amb eficiència. Sí? AUDIÈNCIA: Es comprovaria tots els IFS cada vegada. ALLISON BUCHHOLTZ-AU: Així que fins i tot si va colpejar aquesta primera, que aniria en xec cada altre. Així que vostè vol utilitzar if-else IFS en casos on només un d'ells mai s'aplicarà. Així que l'exclusió mútua és el que tendim a dir. Si vostè té un munt de sís, significa que potser més d'un d'ells assumptes, i potser més de un d'ells pot ser veritat. I voleu tant d'ells per a executar si són certes. Si només desitja un d'ells per treballar en aquests casos mútuament excloents, voleu utilitzar un altre si, perquè tot té a veure amb l'eficiència. El seu codi és simplement millor dissenyat si s'adhereix a aquesta pràctica. Així que en aquest cas tindrem una persona si. I això seria? AUDIÈNCIA: n és igual és igual a 3. ALLISON BUCHHOLTZ-AU: Perfecte. Suports. I després, en la nostra última cas, ¿què tenim? Altres vendes o bé si? AUDIÈNCIA: Else. ALLISON BUCHHOLTZ-AU: Tenim want-- Vol més si ja tenim casos concrets. No és una mena de calaix de sastre. Si vostè tenia un defecte en un switch-- recordar en interruptors que pot tenir el cas, i llavors vostè té per defecte. Si vostè tenia un defecte, que és una espècie del seu estat de compte més allà. Però si només té casos, que significa que vostè necessita per comprovar si es tracta de cada un d'aquells. Així, en aquest cas, seria el 4 o 5. Volem una empremta. És gran. I aquí ho tens. I això seria el seu programa. Així que en aquest cas si tenia un defecte alguna cosa, tindríem una més en el que volia que féssim. Així que és una bona distinció és a dir, de comprendre. Això ajuda amb interruptors per a vostè? Perfecte. Bé. Tenim prop de vuit minuts per al final. Vostès tenen alguna altres conceptes d'alt nivell? Preguntes en general? Sí? AUDIÈNCIA: Vaig tenir una pregunta sobre d'un d'ells això va ser l'atzar generador de nombres en concurs zero. ALLISON BUCHHOLTZ-AU: Oh, això. Aquest és un altre on és més matemàtica no sigui: sí. La solució a que-- Jo fins i tot quan Jo ho veig, jo sóc com el que és això. AUDIÈNCIA: Era el número 7. ALLISON BUCHHOLTZ-AU: És estrany, al meu entendre. Així que bàsicament vostè vol utilitzar drand48, que li donarà una mica de nombre entre 0 i 1. I voleu utilitzar-lo de manera que d'alguna manera obtenir A-- i és molt més d'un problema de matemàtiques per a mi que crec que un problema CS. La forma en què ho fas i it-- de vegades només serà així. Una vegada més, aquests són els els casos en que és una espècie de com escriure el que pot i de crèdit parcial. Així que si volem un canvi, sabem que estem utilitzarà drand48 d'alguna manera, no? Així que per què no acaba d'anotar que cap avall. Estem utilitzant d'alguna manera. La forma que tenen vostès ho fa servir és com això, que vaig a tractar d'explicar. Així que bàsicament el que passa aquí és perquè és entre 0 i 1, el que estàs fent és que estàs multiplicant por-- això és en gran mesura una qüestió de matemàtiques. Simplement completa exempció de responsabilitat, és a dir completament una qüestió de matemàtiques. El que estàs fent és a causa de 0 i 1 i vull que sigui dins aquest rang, en realitat esbrinar què tan gran el rang és, i després que, bàsicament, l'escala cap amunt, que és el que això està fent. b almenys una li dóna aquest rang, el diferència entre aquests nombres. Vostè pot multiplicar entre 0 i 1, i després l'addició d'un sol vol dir que l'escalat cap amunt de manera que sigui entre a i b, que no em va agradar de veritat aquest problema. Com he dit, aquest qüestionari s'entén que abasta les persones que són menys còmodes, en algun punt intermedi, i més còmode. Així que si ho van fer de manera que es tractava d'alguna cosa que tothom en el menor còmode lloc aconseguiria, tindríem massa gent anotant perfecciona, i el més còmode seria avorrit. Així que sempre tenen aquests tipus de preguntes desafiament per a la ment que estan destinats a ser una mica més difícil que prengui una mica de pensament creatiu. Quan vostè els veu, no massa perplex. Definitivament, m'agradaria dir flip a través del seu concurs en primer lloc. Davant els problemes que vostè sap que pot, perquè no serveix de res quedar encallat en un problema quan hi ha tres o de quatre o cinc a la pàgina després que vostè pot fer fàcilment. AUDIÈNCIA: Per què és exactament el que es multiplica pel rang? ALLISON BUCHHOLTZ-AU: es multiplica el rang que vostè sabes-- és com la quantitat després d'un Vols? Així que vostè pot pensar, perquè retorna un nombre entre 0 i 1, es pot pensar en ell com un percentatge. Així que és bàsicament dient que si tenim la nostra línia número aquí, una és aquí, i b és aquí. Ets com la quantitat d'un passat és? És tot el que estem fent. Així que vostè està demanant el percentatge d'aquest rang, el qual és el que t'està donant. I llavors, bàsicament, només escalar cap amunt mitjançant l'addició d'a. És un desafiament per a la ment matemàtica. Si hi havia algun consell d'última hora, jo diria flip a través de les preguntes, esbrinar quines vostè Sé que com, oh jo m'encarrego. Gairebé segurament van a ser preguntes que vostè no sabrà o que vostè va a tenir temps per, per ho va copejar les seves fortaleses, d'acord? Vostès van a excel·lent. Hi ha una gran quantitat de preguntes per una raó, perquè vostè tingui temps per tipus de tenir l'oportunitat per demostrar el que vostè és realment bo. Així que està bé si estàs no és bo en tot. Jugar a les teves fortaleses. Sí? AUDIÈNCIA: Així és aquest va a tornar alguna cosa que ha truncat? Sí, ho farà, perquè Drand rendiments entre 0 i 1. Es tornarà una int, perquè va a truncar quan afegim una o multipliquem per ella. Refredar. Per a qualsevol dubte d'última hora? Vostès van a fer molt bé. Vostè serà fabulós. I fins i tot si no és així, hi haurà ser dolços aquí la propera setmana. I jo t'estimaré. T'estimo nois independentment. Molt bé, tothom, la bona sort. Tenen un gran temps. Vas a estar bé. I saps què? En dos dies es va haver acabat, mentre que jo tenir dos exàmens parcials dijous, per la qual cosa almenys es farà vostès. Molt bé, vaig a veure vostès la setmana que ve.