>> JASON Hirschhorn: Benvingut, tothom, fins a la setmana 10.
Aquesta és una setmana emocionant perquè demà és la prova 1, que aconseguirem
a en un segon.
Avui a la secció, anirem més d'alguns recursos per a la prova, i
a continuació, vaig a respondre a totes i cadascuna preguntes que vostès tenen.
I finalment acabarem amb alguns problemes de pràctica.
>> Podem passar tota la secció respondre a les preguntes.
Podem passar tota la secció passant pels problemes de la pràctica.
No fem més que expandir per omplir el l'espai i el temps que tenim.
>> Així que vaig posar aquesta llista cada setmana, però és particularment important aquesta setmana.
Per a l'estudi, si no ho ha començat ja, oh noi.
Però és d'esperar que hagi començat ja.
I vostè va a través dels materials i els recursos llistats aquí.
Jo recomanaria altament un nombre d'aquests.
>> En particular, els apunts de classe són molt important i útil.
El study.cs50.net proporciona una gran introducció a una gran quantitat de
els temes que cobreixen.
També té un gran practicar problemes.
I després, Google és genial, també.
No sé el que haurà d'utilitzar per.
Però utilitzar Google, també.
>> Arribar a mi si vostè té qualsevol preguntes, comentaris o inquietuds.
Mirar per sobre de la sessió de revisió diapositives de la nit anterior.
O, si vostè té algun temps, veure el vídeo.
Proporcionen una gran quantitat d'útils material i informació.
I tractar de cobrir si no totes, moltes de els temes que hem cobert i que vostè
podria veure en el qüestionari.
>> Parlant de la prova, que serà demà.
És 75 minuts.
Molts de vostès ho estan prenent en 1 en punt, i alguns de vostès són
portant a les 5:30.
De moment vostè està prenent i la ubicació que està prenent, assegureu-vos
comproves el document a la pàgina principal CS50.net.
>> Recordi que vostè pot aconseguir un d'8 1/2 en un 11 per full per portar amb vostè.
Sovint, la gent no utilitza aquest full en absolut durant la prova.
Però, en realitat, és un increïblement eina d'estudi útil.
Així armant aquest full hi Vaig passar probablement tres o quatre hores
fent quan estava estudiant per CS50, i que era sens dubte el més útil
manera que pogués estudiar per a l'examen.
Així que fins i tot si vostè té alguna altra de les persones guies d'estudi a la vista i
utilitzar com a referències, li recomano fer la seva pròpia guia d'estudi, posant
aquestes coses juntes.
Això realment ajuda a aprendre tot el material.
>> Finalment, però no menys important en aquesta secció, després de la prova de demà hi ha una
més conferències -
dilluns que ve.
Hi ha una secció més, no ve Dimarts abans d'Acció de Gràcies, però el
Dimarts després d'això.
Ens reunirem junts per a una final adéu partit i també fer una mica de fresc
coses per aconseguir que vostès s'entusiasmin amb la altres estudis en ciències de la computació.
>> Hi ha un projecte més, un més just, un més hackathon.
Estem arribant al final de CS50, que és emocionant -
sinó també, si vostè és com la jo, una mica trist.
Abans de passar, algú té alguna pregunta sobre el que
que hem cobert fins ara?
>> OK, bé anem a repassar algunes de les preguntes que té per a la prova i temes
podríem cobrir.
Així que aquesta és una llista que he creat.
No és de cap manera exhaustiva, però esperem que refrescar l'memòria si
tenir algunes preguntes sobre qualsevol d'aquests temes, o si té preguntes sobre
problemes de la pràctica de proves en els últims anys.
>> Vaig tenir un parell de preguntes que van ser vaig enviar un correu electrònic a mi, però vull mantenir a ratlla
en què per un segon.
Algú té alguna pregunta, problemes que no entenien,
respostes que no comprenien perquè puguem començar?
Avi.
>> AUDIÈNCIA: Pots anar més DOM i Ajax realment ràpid?
Igual que, el que necessita saber o haurien entendre sobre ells?
>> JASON Hirschhorn: Vaig a contestar en general aquesta qüestió de, què faig jo
necessita saber sobre determinat tema x?
Perquè tinc la sensació que molts de vostès em van a demanar que, o estan
curiositat sobre això.
Així que en la mesura que el tema era cobert de conferència, o secció, o en
study.cs50.net, un conjunt de problemes, que ha d'estar familiaritzat amb ell.
>> Així que vostè no necessita saber tots els tipus de l'etiqueta que està disponible en HTML o
cada tipus d'atribut o propietat vostè pot donar alguna cosa en CSS.
Però si ho has vist en un exemple de conferència, si ho vas veure en un problema
conjunt, probablement hauria d'estar familiaritzat amb ell, sobretot les coses que vesteix
en conferència.
Així que hem discutit el document model d'objectes una mica en
secció, més encara en conferència.
Vostè ha d'estar familiaritzat amb que gran part d'ella.
>> I vostè ha d'estar familiaritzat amb Ajax en la mateixa mesura.
Mai vam veure increïblement avançat o exemples complicats d'Ajax, per la qual
vostè no va a demanar fer alguna cosa increïblement complicat.
Però se li pot demanar, com puc fer una trucada Ajax fent servir jQuery?
Que és una cosa que has vist un nombre de vegades abans, tant en la
Sessió de Revisió i en la conferència, i és només de dues línies espanyoles de codi.
>> Així que això és una cosa que hauria de estar familiaritzat.
Però una vegada més, per a tots aquests temes, si vostè ho ha vist
abans, és un joc just.
I podríem demanar-li que - òbviament, estem anem a demanar que t'ho
no han vist abans.
Codificació de quelcom que no té vist abans.
La qual cosa no vol dir que vostè no té vist les eines per resoldre
aquest problema abans.
Vostè ha vist aquestes eines.
>> Per exemple, en la prova 1, si que necessita per codificar strlen.
No hem codificat strlen abans.
Però vostè sap com utilitzar un bucle for, vostè sap com utilitzar si les condicions.
Vostè sap com escriure variables en C. Serà la mateixa cosa aquí.
No va a demanar que faci res que no hagi vist abans, però
és possible que se li demani que, igual que, ja alguna cosa junts d'una manera nova, o
resoldre un tipus diferent de problema.
>> Ho sentim, però això no era específica per al seu pregunta, però jo no puc respondre sobre
cada tema el que fer o no necessita saber.
Però també, ho sento, l'últim en això.
Hem passat molt més temps en llistes d'enllaços que tenim a l'Ajax.
No utilitzar Ajax en un conjunt de problemes.
Una de les característiques centrals d'aquest problema d'ajust que hagi llistes d'enllaços.
I ens vam passar un munt de temps en la conferència i la secció d'usar-lo.
>> Així, les probabilitats són llista d'enllaços es plantejaran més sovint en el concurs de Ajax voluntat.
O les preguntes que tenen a veure amb el vincle llista tindrà un valor de més punts.
Així que sens dubte pot centrar-se i estret en les coses que són més
probable pujar perquè tenim passat més temps en ells.
>> Acceptar qualsevol altra pregunta?
Sí
>> AUDIÈNCIA: Podem anar sobre l'ús de funcions anònimes en JavaScript?
Sóc un són poc confós sobre això.
>> JASON Hirschhorn: Així que en JavaScript -
Estic tractant de pensar com em podria escriure això en -
així que anem a realment obren aquest codi.
Així que aquest és el codi que vam fer la setmana passada.
I vostè ha vist això abans si estaven aquí a la secció de la setmana passada.
O has vist alguna cosa similar a això abans.
>> Però es pot veure en aquesta primera línia.
Aquesta és la forma de començar -
tothom ha vist això abans.
Si vostè vol posar una mica de codi JavaScript, el poses dins d'aquest, en el supòsit
està usant jQuery.
Això és a dir, no fer res fins càrrega del document.
>> I després, Curt, es veu aquí estem fent alguna cosa com això -
funció parin obertes, tancades parin.
Així que no estem donant aquest funcionar un nom.
No definirem aquesta funció se suposa que executar i després
anomenar un munt de vegades.
Només estem dient aquest document ja pren una funció.
Un parell de coses a fer.
>> I no volem passar el temps donant-li un nom o guardar per
perpetuïtat.
Només volem fer algunes coses.
Així que una funció anònima espècie que serveix propòsit.
Quan vostè no va a utilitzar una cosa una i altra vegada, així que no cal
per donar-li un nom - que acaba de que voleu utilitzar una vegada -
vostè acaba de dir que la funció, per exemple, en aquest cas, i no ets més que
la definició d'alguna cosa que vostè podria donar un nom.
>> Igual, podríem tirar d'aquesta funció fora i donar-li un nom i després trucar a aquest
funcionar aquí.
Però nosaltres no necessitem perquè nosaltres no fem volen perdre el temps donant-li un nom o
perdent alguna cosa en el nostre espai de nom.
I veuràs que molt.
Per exemple, veiem que molt en aquest codi, però vostè ha vist això abans, quan
fer clic en alguna cosa -
executar aquest tipus de codi.
>> Podríem definir el codi que volem a córrer quan fem clic, en aquest cas,
aquest ID, com una funció separada i després executar aquesta funció.
Però en aquest cas, només estem saltant aquest pas i portar-los a aquí i
només per definir tot que volem que passi i
no donar-li un nom.
Això encara podria no tenir respost a la seva pregunta.
>> AUDIÈNCIA: No, ho fa.
Vull dir, suposo que simplement no se sap molt entenc per què seria una
funcionar en absolut, però.
Perquè en realitat no és la que crida.
En realitat, no té nom.
>> JASON Hirschhorn: És una funció en el sentit que és una sèrie de passos,
igual que ho va posar en una funció.
I llavors és per això que anomenem és funció anònima.
No anem a donar-li un nom.
No perdrem intentant donar-li un nom, però que vam poder.
>> Les funcions anònimes, que sempre es pot donar un nom.
Així, per exemple, el codi aquí, podríem posar aquest codi dins d'un
funció i després trucar aquesta funció aquí.
En lloc d'això, diem, no anem a molestar amb això.
Només anem a escriure tot aquí.
>> És com si de vegades, quan estàs escrivint 04:00 bucle en C - nois
han vist això abans - potser vostè està iteració a través d'un forloop
en i és igual a 0.
I és menys de strlen.
O vostè va a través d'alguns matriu, pot guardar array
índex i en alguna variable.
I utilitza aquesta variable.
Així que no cal tornar a escriure array suport d'i una i altra i una altra.
>> I això és una cosa així com una variable fictícia.
No està servint molt propòsit que no sigui Perquè el codi una mica més net
i més fàcil de llegir.
Funció similar aquí.
Just fa una mica més fàcil, però funcionalment no hi ha diferència.
Respon això a la seva pregunta?
>> AUDIÈNCIA: Si.
>> JASON Hirschhorn: OK ..
Mario?
>> AUDIÈNCIA: Ahir sovint posen funció parèntesi esdeveniment.
Això vol dir alguna cosa?
O és per coses com que farien
document.ready esdeveniment funció.
>> JASON Hirschhorn: Hem vist això, i de nou, aquestes són coses petites que
Probablement jo no vull passar massa temps en ell.
Perquè a vegades no vull que la gent aconseguir espantat que no tenen
sentit parlar d'aquestes coses tant.
Però parlem una mica sobre controladors d'esdeveniments.
Així que alguna cosa passa, i després aquesta funció s'executa.
I llavors nosaltres també volem saber alguns detalls sobre el que
passat en aquest cas.
>> Així que pensin en conjunt de problemes 4.
Aquesta és probablement la forma més fàcil de entendre que en esclat.
Hi havia una mica de codi -
com un esdeveniment anava a passar, però esdeveniment pot significar moltes coses.
Si podria significar el ratolí es fa clic, es podria significar colpejar una tecla de fletxa, et
cetera, et cetera.
>> Però tot es guarda en aquesta genèrica El va anomenar esdeveniments.
I llavors podem dir, és aquest esdeveniment aquesta cosa?
O és aquest esdeveniment aquesta cosa?
O bé, quina mena de passat amb aquest esdeveniment?
Així que per això es crea aquesta variable són per salvar aquesta informació addicional
sobre què és exactament el que va passar aquesta vostè va a voler
utilitzar en la funció.
Però, de nou, això és probablement un dels coses menys importants que ser Super
familiaritzat.
>> Bé, quines altres preguntes tenen les persones tingut, o blocs de ensopegada que han
trobat durant la revisió?
Anem a tornar a aquesta llista.
Què passa durant exàmens de pràctica, si la gent ha pres les ja?
Quins van ser alguns dels problemes que disparat vostès dalt?
Sé que és un fet que l'any passat qüestionari va ser molt dur.
>> AUDIÈNCIA: Pot explicar què un atac d'injecció SQL és?
>> JASON Hirschhorn: OK, molt bé.
Així que parlem d'això una mica.
Hi ha una conferència sobre la seguretat.
I de nou, com he esmentat abans, aquest és un part.
Però se li frustrat en el qüestionari quan es llegeix un petit de dos punts
pregunta, i vostè és com, quan Alguna vegada vas aprendre això?
>> Totes aquestes coses en aquestes conferències que no pensaves que necessitaves
sap, o vostè podria passar per alt, perquè que no tenien a veure amb la
conjunt de problemes, els que probablement pujar de nou al concurs.
Així que, coses divertides, fresc que acaba de David va pensar que estava dient per tu
gaudir, que t'estava dient per tu gaudir i fer que acaba de ser super
entusiasmats per aprendre tot el que cal aprendre
sobre la informàtica.
Aquestes coses també vénen cap amunt en proves.
Per tant, fins i tot aquestes petites coses que no ho van fer es relacionen directament amb el seu problema
establir, com vostès estan familiaritzats amb d' Qüestionari 0, probablement plantejaran.
I aquest és un bon exemple d'alguna cosa.
>> Així que els atacs a la injecció de SQL és quan es obtenir alguna informació de l'usuari i
voleu inserir en una taula utilitzant una inserció de SQL declaració, però
no desinfectar l'entrada abans d'hora.
Així que, òbviament hem vist Sentències SQL.
Vaig a obrir-me -
anirem -
anirem a la revisió -
Crec, que el va cobrir?
Crec Samala va fer.
Perquè puguem arribar -
>> AUDIÈNCIA: On vas trobar això?
>> JASON Hirschhorn: Així que si vas a CS50.net, proves, i llavors es pot
desplaçar-se una i obtenir diapositives de la sessió de revisió.
Però vostè pot veure que això és un bon exemple d'un atac d'injecció SQL.
Prenem una mica d'informació de l'usuari i ens donen una cadena, i després
voleu inserir aquesta cadena en una base de dades.
Generalment anem a desinfectar que d'entrada, el que significa que hi ha alguns
personatges que són perillosos.
>> Per exemple, en cadenes SQL, aquestes cites -
cometes simples o dobles -
significar alguna cosa.
Signifiquen acaba aquesta cadena aquí.
I pel que si l'usuari li dóna un sol o una doble cita, que podria ser
intentant fer ensopegar a la seva consulta de SQL i inserir algunes coses dolentes en ella.
I si ho fan, podrien guanyar el control de la base de dades o fer algun
coses que no vol que facin.
>> Així que per això cada vegada que prenem SQL consultes, desinfectar l'entrada abans de
posar a la base de dades, que significa que escapen als personatges.
Parlarem d'això en un segon.
Però conte llarg, una injecció SQL atac és si vostè no fa això -
si vostè no pren la cura de l'entrada que li van donar abans de posar el seu
base de dades, que poden, com veieu a sota aquí, feu una consulta que, de fet -
que posen en el seu codi aquí baix i aquesta línia de selecció aquí baix seleccionarà
tot, des de la taula sense importar del que se li dóna la contrasenya.
Perquè vostè té la o 1 és igual a 1.
>> Així que és bàsicament, conte llarg, una manera de fer-se càrrec de la base de dades.
La pregunta, llavors, per a vostès, és on en p sets 7 vas fer desinfecti totes
les entrades a les consultes SQL?
On va passar aquest pas?
On s'evita la injecció de SQL els atacs dels que passa a p fixi 7?
Sí
>> AUDIÈNCIA: Cripta?
>> JASON Hirschhorn: Pel que no cripta.
No vam fer el fa per a aquest problema particular ajustat, però passa
en la funció de consulta.
En realitat vaig escriure per a tu, i ens ocupem de la
desinfecció entrades per a vostè.
Però en els últims anys, els estudiants han tingut per escriure les entrades pel seu compte.
En conjunt p 7, que molts de vostès -
m'ho dius a mi obro un altre arxiu.
>> Llavors et donaràs compte de per aquí un munt de persones, en conjunt de problemes 7, no van cridar
aquesta funció en cadenes.
Aquesta funció, htmlspecialchars, nou -
aquesta cadena podria tenir algunes coses que en HTML significa alguna cosa més.
Igual que un aparell ortopèdic, un quadrat, o un angle Suport de dir alguna cosa en HTML.
>> I així, si imprimeix que a la pantalla o si vostè acaba de prendre això i
imprimir que anés a HTML, que el poder fer alguna cosa que no esperes.
Així htmlspecialchars va sobre tots aquells caràcters que tenen especial
reunions i se'ls escapa.
Pel que s'imprimeix com a text vostè vol veure, en lloc de
arruïnant la seva HTML.
Cridem a aquesta funció en la capçalera.
I un munt de gent es va oblidar de cridar a aquesta funció en la
codi que estaves escrivint.
>> Així, per exemple, si un nom de valors va tenir un claudàtor angular en ell i se li va oblidar
cridar a aquesta funció, que l'angle suport podria haver llançat del
seva HTML semblava.
Però cridar a aquesta funció s'escaparà que pel que realment mostri com
suport en angle i no llençar fora del seu codi HTML.
>> La mateixa raó per la qual hem vist, de vegades, ratlles verticals abans de les cometes dobles en una
línia printf perquè no volem que el cometes dobles per la corda.
Volem imprimir a la pantalla.
Així que tot això és la mateixa idea.
Respon això a la seva pregunta?
>> AUDIÈNCIA: Més o menys.
>> JASON Hirschhorn: Té vostè tenir un seguiment?
>> AUDIÈNCIA: Crec que la injecció de SQL atac té a veure amb això?
No entenc com Els dos estan relacionats.
Per què faries les specialChars?
>> JASON Hirschhorn: OK, així que l'SQL atac d'injecció és quan s'injecta
algunes cadenes maliciosos en algú de programa, i que només prenen i executen
la consulta SQL amb una cadena que els va donar.
Com es pot veure aquí baix, que podria ser problemàtic.
Així que la forma es preveu en contra que es vostè pren la seva cadena que donen
vostè - de manera que aquesta cadena aquí -
i desinfectar.
Vostè escapar de totes les coses que són potencialment problemàtic.
Així que no siguin interpretades com una cosa això significa alguna cosa.
>> I un exemple que amb HTML és aquesta funció.
Així que és la mateixa idea aquí.
I m'estava mostrant que una altra exemples de quan has
vist aquesta idea abans.
D'escapar de l'entrada de l'usuari abans d'imprimir a terme a una pantalla o el posi
dins d'una sentència SQL.
>> AUDIÈNCIA: Així que en aquest cas, l'usuari està jugant amb el programador.
>> JASON Hirschhorn: Si.
Amb tots aquests atacs a la seguretat, això sempre és generalment l'usuari, o
algú està intentant desastre amb vostè, el programador.
I aquestes són formes en què poden prevenir en contra d'ells.
>> AUDIÈNCIA: Així que tinc una pregunta sobre les funcions hash.
En la prova 1 a partir del 2011, hi ha dues preguntes sobre hashes d'un sol costat.
I m'estava preguntant el que això significava.
>> JASON Hirschhorn: OK, el que prova?
2011?
>> AUDIÈNCIA: Si.
>> AUDIÈNCIA: Qüestionari 1?
>> AUDIÈNCIA: [inaudible].
Això és com hash d'una contrasenya.
Això no és posar les coses -
>> JASON Hirschhorn: En quina pàgina va ser?
>> AUDIÈNCIA: Crec que va ser 9 o 10, o tots dos.
>> JASON Hirschhorn: Molt bé, seguir endavant, Curt.
Pot contestar mentre busquem.
>> AUDIÈNCIA: Crec que està parlant sobre hash d'una contrasenya.
Igual que, quan algú entra en una contrasenya, el converteixes en alguna cosa encriptat.
Aquest és el hash de la contrasenya, que és diferent d'una funció hash que
posa alguna cosa en una taula hash.
>> JASON Hirschhorn: Vegem.
Deixa treure el que ells donar com a resposta.
I després anem a caminar a través d'ell.
>> Així Curt li va donar un gran exemple d'un hash d'un sol sentit.
Quan ens hem vist abans, ens prendre la contrasenya i activar -
recorda, en conjunt p 7, algú podria tenir una contrasenya que és només una contrasenya,
però després aquest es xifra en alguna cosa realment llarg.
El hash d'un sol sentit vol dir que és molt fàcil per passar d'una manera a un altre, però
és molt difícil passar de l'altre camí de tornada.
>> I perquè sàpigues, quan marxàvem contrasenyes de la gent en un problema
fixi 7, que el portarà al seu -
així, per exemple, diuen que volien canviar la contrasenya, se'ls pregunta
per la seva antiga contrasenya.
Vostè va prendre la seva antiga contrasenya.
Xifrar ell.
I després va comparar els dos encriptacions en lloc de unencrypting l'original
un, perquè és molt difícil anar d'aquesta manera.
Sí
>> AUDIÈNCIA: Com en profunditat fa la nostra comprensió de telnet ha de ser?
>> JASON Hirschhorn: Si es va esmentar breument en la conferència, només un breu
enteniment.
De nou, de tornada a la resposta a la pregunta de Avi -
més coses sorgeixen, més probable és el que ha de ser super
familiaritzar-se amb elles.
Si només he arribat a la conferència, això és només un lloc.
Però si entren a la conferència, secció, i un problema establert, llavors vostè
probablement haurà de ser súper familiaritzar-se amb elles.
>> Així que jo tenia una pregunta d' abans sobre -
és era la tardor de 2010 -
Qüestionari 1, tirarem cap amunt -
aquesta pregunta en piles i cues, que ens van fer passar una mica de temps
parlant en conferència, fins i tot encara que nosaltres no ho vam fer realment
Alguna vegada ho va colpejar a la secció.
Així que aquesta pregunta et dóna una sèrie d'ordres i li demana que ho
s'imprimeix en aquest cas.
Així que aquesta és una pregunta totalment raonable que es pot demanar de vostès
nois, i llavors vostès haurien ser capaç de respondre-hi.
>> Llavors, per què no el mira durant 30 segons i, a continuació, si algú vol
proposar les respostes a mi, i llavors anem a caminar a través d'ell.
D'acord, que té una resposta a la pregunta 27?
Sí
>> AUDIÈNCIA: és 1, 2, 3, 3?
>> JASON Hirschhorn: Això és correcte.
27 és 1, 2, 3, 3.
Així que donem una ullada a com aconseguim això.
>> En primer lloc, estem dient, si s és una cua, el que s'imprimeix?
Així que una q és primer a entrar, primer a sortir.
Hem vist això abans.
Vam veure la imatge de les persones esperant a la Poma
Botiga a comprar algun producte.
Les primeres persones en són les primeres persones fora.
Les primeres coses en una cua són les primeres coses a terme.
>> Així que si empenyem alguna cosa en una cua, premi el 1, després que el pop a la 1.
Pop només significa portar.
En aquest cas, simplement prengui alguna cosa.
Prenem la primera cosa, això és un 1.
Així que posarem les coses que imprimir fins aquí.
Això ja no es troba a la nostra cua.
>> Després empenyem en un 2 i un 3, i que sobresurten de la primera hora.
Un cop més, perquè és una cua.
Així que vam arribar a 2, després posem en un altre 3 i truqui pop de nou.
La nostra 3 és primer.
>> I després vam tenir un munt de altres coses i crida pop.
Però, de nou, ja que aquesta és una cua, primer a entrar, primer a sortir.
Traiem el primer que alguna vegada es va posar polz
Aquest és el nostre 3.
I, en aquest cas, no ens preocupem sobre totes aquestes altres coses.
Així que això és si es tracta d'una cua.
Una pregunta sobre una cua?
>> A és diferent de la pila.
Quin és l'acrònim que tenim per a la comprensió d'una pila?
>> AUDIÈNCIA: últim a entrar, primer a sortir.
>> JASON Hirschhorn: LIFO, crec.
Últim a entrar, primer a sortir.
Així que vam veure un exemple d'una pila de safates en un menjador.
Qualsevol que sigui la safata està a la part superior és recollit.
I llavors, si les noves safates vénen endins, aconseguir posar a la part superior.
I llavors el que està en Top Obté recollit.
Així que aquestes safates sobre el poder inferior quedar-s'hi durant un temps.
>> En aquest cas, un cop més, anem a allargar això.
Empenyem en un, de manera que un és el primer a la fila.
I ens pop alguna cosa.
I només hi ha una cosa en allà, així que ens movem 1 aquí baix.
Després posem els dies 2 i 3 i ens pop alguna cosa.
>> Però, de nou, ja que aquesta és una col -
o es tracta d'una pila, en lloc -
prenem el que fos en el passat.
El que està en últim surt primer.
I 3 és en passat.
Per això, vam posar el 3 per allà, llavors posem en un altre 3 i
pop alguna cosa nova.
Finalment, posem en el 4, 5, 6 i 7, i aquí ens pop.
I perquè és una pila, prenem el que va ser posat en l'última i escriure
que aquí baix.
Així que vam acabar amb 1, 3, 3, 7.
Algú té alguna pregunta sobre piles o cues, o aquest exemple?
>> D'acord.
Tornem a la llista de temes.
Per aquí no, per aquí.
Quines altres preguntes té la gent?
>> AUDIÈNCIA: No sé l'important és a dir, però jo estava confós per la
diferència entre diferents tipus de llengües com el marcatge, compilats,
interpretat.
>> JASON Hirschhorn: Això és una bona pregunta.
Crec que això és una cosa important, així que anem a repassar ràpidament.
Les grans llengües que hem vist fins ara són C, PHP i JavaScript, en termes
de llenguatges de programació.
HTML, com vostè ha esmentat, no és un llenguatge de programació.
És un llenguatge de marques.
I després hem CSS, que és també no és un llenguatge de programació.
>> També hem vist SQL, que no és un llenguatge de programació qualsevol.
Així SQL permet escriure consultes d'una base de dades.
HTML és un llenguatge de marques.
Defineix com s'estructuren les coses.
I CSS li permet l'estil de les coses.
Aquesta és probablement la mesura del que necessita saber sobre aquests tres.
Però és més interessant figura les diferències entre C, PHP,
i JavaScript.
>> Així que una de les diferències més grans, com vostè ha esmentat, és la forma en què estan
compilat, o el que sigui l'equivalent és.
Així que C es compila.
Sempre ens correríem un compilador.
I llavors on són els seus errors en executar el compilador de C?
D'on vostè la mostra errors en el codi?
Com saps que hi ha un error en el codi en C?
>> AUDIÈNCIA: Li mostra en el terminal.
>> JASON Hirschhorn: Es mostra en el terminal com s'està compilant.
I si hi ha errors, en realitat no es compilarà.
Així que ja saps que hi ha errors correctes de distància, abans d'hora, abans que vostè
fins i tot executar el seu codi.
>> Per descomptat, és possible executar el codi i aconseguir una fallada de segmentació, però això va ser
probablement pel fet que vostè va fer cosa lògica ximple.
Però el codi amb tècnicament tot correcte i podria funcionar.
Així codi C es compila abans d'hora.
Què passa amb el codi PHP?
On estaven els errors en el seu codi PHP?
Com se sap que va tenir errors en el codi PHP?
>> AUDIÈNCIA: Temps d'execució?
>> JASON Hirschhorn: Sí, quan aniria en ella, hauria d'executar la
Codi PHP en la part posterior.
I després, veureu la pantalla.
És possible que vegi algunes coses a la part superior, però llavors vostè veuria, com, alguns
taronja, taula lleig.
I li donarà un número de línia i diguem, bla, bla, bla, això
que no va funcionar.
>> Així que PHP s'interpreta línia per línia i executat al servidor.
I a continuació, el resultat és enviat a vostè.
Gran.
Executat en la línia de servidors de línia i després enviat a vostè.
I si hi ha un error, que va a enviar que l'error, però és possible que tingui
aconseguit algunes coses abans d'hora.
Així que alguns dels que podria haver funcionat, però més tard, algunes coses no podria tenir
sense treballar.
>> Què passa amb JavaScript?
On has vist els errors de JavaScript?
En p setembre 8, quan va rebre un error, com ho saps?
On apareix?
>> AUDIÈNCIA: A la consola, a la part inferior.
>> JASON Hirschhorn: Al consola, a la part inferior.
També li donaria la número de línia, i que ho faria
mostrarà a la part inferior.
I JavaScript no s'ha executat al servidor.
JavaScript va ser enviada al seu ordinador, i després, quan va arribar el moment d'executar el
JavaScript, el codi JavaScript es executar línia a línia en el
client, del seu costat.
No el servidor, el costat del client.
>> I de la mateixa manera, va ser executar línia per línia.
I després, quan s'arriba a un error, es mostraria a la part inferior.
Igual que en PHP, alguns d'ells podrien executar, i llavors vostè pot ser que aconsegueixi un
error més endavant.
>> A més, una mica de PHP a diferència, si que tens un error de JavaScript -
dius que ho has fet la dreta codi per a un quadre d'alerta -
vostè podria mantenir el funcionament del seu programa.
El quadre d'alerta no anava a funcionar, però seu programa estaria bé.
Només potser aquesta funció seria un fracàs.
>> Així que hi ha alguns dels més grans diferència en termes de com aquests
idiomes, o com el codi de programació Pots escriure en realitat s'està avaluant.
També hi ha altres diferències en termes de - la major diferència
que hem vist en termes de variables en els diferents idiomes.
Llavors, pot algú donar-me una diferència entre les variables
en els tres idiomes?
Sí
>> AUDIÈNCIA: En C, són estrictament escrit.
En els altres dos, que estan vagament escrit.
>> JASON Hirschhorn: I Què significa això?
>> AUDIÈNCIA: Que en C, vostè ha de declarar el tipus de la variable quan
es declara la variable, com interbool o char.
>> JASON Hirschhorn: Excel · lent.
En C, sempre vam haver de posar un tipus d'una variable.
I no podíem barrejar tipus.
No es podia fer un sencer més una cadena.
Però com hem vist en altres llengües, en realitat es poden barrejar tipus,
i vostè mai ha de donar cosa que un tipus, mai.
>> Llavors, com sabem que les coses són variables en PHP i JavaScript?
>> AUDIÈNCIA: En PHP, comencen amb un signe de dòlar.
En JavaScript, quan es declara ells, vostè ha de tenir un bar.
>> JASON Hirschhorn: així.
Així que en PHP, comencen amb un signe de dòlar.
En JavaScript, ells han de tenir bar, encara que de vegades no ho fan realitat
ha de tenir bar.
Però això és correcte.
>> Així que això és una gran diferència entre les variables.
Crec que aquests són probablement, fora de la la part superior del meu cap, els dos més grans
diferències entre aquests tres idiomes.
Però, sí.
>> AUDIÈNCIA: I l'àmbit de les variables C es limita a les claus,
on els altres, que és com, mor si és només una funció,
però d'altra banda, és -
>> JASON Hirschhorn: així.
Així àmbit d'aplicació és lleugerament diferent en C. Com Recordes, les claus defineixen
l'àmbit de les variables.
Així que si es defineix dins un if condició, que està dins d'un bucle for,
la variable només existeix allà.
>> En JavaScript, si es defineix una variable dins d'una condició if -
dins d'un bucle for - que existirà per aquesta funció, però no existirà
fora d'aquesta funció.
Així àmbit d'aplicació és una mica més flexible en JavaScript i PHP.
Això respon a la pregunta?
Bé, alguna altra pregunta?
Podem fer quatre minuts més de preguntes, a continuació,
anem a saltar a la codificació.
>> AUDIÈNCIA: Podem anar a Ajax i parlar del que és això?
>> JASON Hirschhorn: Parli amb Avi després.
Ell va fer aquesta pregunta abans.
>> AUDIÈNCIA: El meu mal.
>> JASON Hirschhorn: No es preocupi.
>> AUDIÈNCIA: Què és exactament JSON?
>> JASON Hirschhorn: Què és JSON?
Quina és la teva pregunta?
>> AUDIÈNCIA: Només molt ràpid, la diferència entre els
print i fet en PHP.
>> JASON Hirschhorn: Per què no busques a google la diferència entre la impressió i l'eco?
Petita diferència.
No és gran cosa.
Però definitivament ha google, i que et vaig a donar una bona resposta.
>> JSON, probablement més gran d'un acord.
Suports per a JavaScript Object Notation.
I quan hem vist JSON utilitzeu?
Quan s'ha vist -
Per què tan sols coneix la paraula JSON?
Quan has vist?
>> AUDIÈNCIA: Quan estàvem preparant les cotitzacions d'accions de les finances.
>> JASON Hirschhorn: Així que vesteix quan vostè estava rebent
les cotitzacions d'accions de les finances.
I per què has vist?
>> AUDIÈNCIA: Quan ens recuperem tota la informació que
va arribar en aquest format.
>> JASON Hirschhorn: Així que t'ho donen -
si.
Endavant.
>> AUDIÈNCIA: [inaudible] informació d'un objecte?
>> JASON Hirschhorn: Tant dels que reunit és la resposta
estem buscant.
Vols informació de aquesta altra pàgina web.
I és d'esperar que quan estàs aconseguir aquesta informació, seria
presentat a vostè en algun tipus de format normalitzat.
>> Tothom és probablement familiar amb valors separats per comes.
Podeu exportar un full de càlcul d'Excel o qualsevol tipus de full de càlcul com una llista de
Valors separats per comes.
I les comes divideixen tot els diferents camps.
JavaScript Object Notation -
JSON -
és un altre tipus de estandarditzada el disseny de les coses.
I això és sovint com ens recuperem informació de les nostres consultes Ajax.
>> Així que en aquest cas, ho vam aconseguir des del lloc de Yahoo.
Tornen les coses a nosaltres en un objecte JSON.
I llavors el que sabem, perquè és una norma, el que és
va a semblar.
Així que podem recórrer l'array que es retorna a nosaltres, la gran varietat de
objectes que es tornen nosaltres.
>> Nosaltres probablement necessitem conèixer les claus, però en general li donen
documentació al lloc web quan vostè està portant una mica de JSON
notació per a ells.
De la mateixa manera, pot JSON codificar un objecte.
Així que hi ha una funció de JSON subratllar codificar.
I perquè pugui prendre un objecte que que has creat, JSON codificar, i
passar a alguna cosa una altra cosa, si vols.
I JSON descodificació també existeix per un propòsit similar, o per
el propòsit oposat.
>> AUDIÈNCIA: Necessitem saber escriure codi per a les taules hash i tries?
O només hem d'entendre com s'usen, conceptualment?
>> JASON Hirschhorn: Llavors, aixeca la mà si es va fer una taula hash per p fixar abril
amb una llista d'enllaços.
O p setembre 5.
Així que va ser una gran majoria de la gent.
P va fixar 5, 6, qui sap.
Fa molt de temps.
>> Així que la gran majoria dels que va fer taules hash amb llistes d'enllaços.
I pel fet que aquesta és probablement la més enfocament comú, i perquè vam passar
un munt de temps fent llistes de vincles i de hash taules, probablement hauria de ser
bastant familiaritzat amb la forma de codi una taula hash i una llista d'enllaços.
>> I si vostè pensa de nou a aquest problema establir, en realitat no era
tan dur com vostè esperava.
I hi havia molt menys codi del que esperava.
Jo diria que vostè ha de saber codificar una taula hash o una llista d'enllaços.
No és que fos a convidar al fet que, necessàriament, però que hauria de
certament saber això.
>> A més, si es mira a través dels concursos anteriors, ha hagut una gran quantitat de
preguntes sobre l'escriptura de funcions en llistes d'enllaços o llistes doblement enllaçades.
Aquesta sembla arribar cada any.
Inserir el botó dret en una llista d'enllaços, a la dreta esborrar d'una llista d'enllaços, inserir la dreta
per obtenir una llista doblement enllaçada, et cetera.
Així que, em sento molt còmode dient que vostè ha de saber això.
>> Per intentar-ho, jo diria que hauria de sens dubte saben com funciona, i potser
donar una mica de pseudocodi per saber com per codificar i configurar-lo.
Però no seria la pitjor cosa en el món si vostè no sap com
codificar en C. Seria fantàstic si Sabia com codificar en C, però crec
probablement pseudocodi per intentar faria és el màxim que es necessita
saber per intentar-ho.
>> AUDIÈNCIA: Crèdit addicional?
>> JASON Hirschhorn: I el mateix amb, si entrar en arbres binaris de cerca, és possible que
necessites - i que ha vist en el passat, hem fet un munt de - vostè sap com
arbre binari de cerca funciona.
Probablement hauria de ser capaç de establir un en pseudo-codi.
Però com que la gran majoria de les persones no va fer això en el problema
conjunt, jo diria que és probablement menys important que vostè sàpiga com codificar
i establir un arbre així.
>> Alguna altra pregunta?
També, podem demanar a ells al llarg a mesura que avancem a través d'alguns problemes.
Bé, seguirem endavant.
Saltar aquesta diapositiva per ara.
>> Parlant d'arbres, que és la primera pregunta que tinc per a vostès.
Com que aquest és un problema.
Jo diria que és molt probable que vostè obtenir un problema com aquest en el seu concurs
demanant-li que codificar algun tipus d'inserció, eliminar, buscar, per a un tipus
d'estructura de dades que hem vist.
>> Això ve cada any i vam passar una molt temps la segona meitat d'aquest
semestre repassant aquests tipus de dades.
Així que ara mateix, he definit un node en un arbre de cerca binària.
I el que m'agradaria que fessis és donat un arbre de recerca binari que comença
en aquest node arrel estrella, completi la implementació de la funció a continuació,
que passa a ser una funció de cerca.
I fer-ho amb i sense recurrències.
>> Així que vull que escriguis dues funcions.
Un fer això amb recursió, un fent això sense recursió.
I no assumeixi que la arrel serà no nul · la.
Així que estem buscant per al sencer ia l'arbre a partir de l'arrel, i necessitem
per escriure aquesta manera recursiva i de forma iterativa.
Sí
>> AUDIÈNCIA: ¿Així que vols que tornem veritable si el trobem, i fals si
no el troba.
>> JASON Hirschhorn: Com ho vas saber?
Com ho saps?
>> AUDIÈNCIA: M'estava preguntant primer, però jo estava assumint, perquè diu bool a
el principi de la funció.
>> JASON Hirschhorn: així.
Diu bool, de manera que no necessita ni tan sols dir-li el que espero que tornis
perquè diu allà mateix.
Però és cert.
Tornar, vertader o fals.
>> Així que abans de començar, jo recomanaria, si no està familiaritzat amb
arbres binaris de cerca, dibuix ràpidament una foto d'ella per obtenir el seu
la comprensió, a la dreta.
Això també l'ajudarà a l'hora d'escriure el seu codi i revisar-la.
Una vegada més, vostè també no ha de molt temps en el qüestionari per fer totes les coses
que els demanem de fer.
Així que escriure pseudocodi és molt útil.
>> I en general, donem sobre -
si el pseudocodi és perfectament correcte, això és
en general, el 50% en una pregunta.
Així que no és una regla fixa, però si que acaba d'escriure pseudocodi i és
correcta, en general és de 50%.
Així que jo sempre recomano -
si vostè està pressionat pel temps, o fins i tot si vostè està tractant d'esbrinar -
començant amb el pseudocodi.
I, finalment, si vostè podria escriure aquest tots al carrer, això seria fantàstic.
>> Així que anem a prendre tres minuts per treballar en aquest programa.
I després anem a escriure pseudocodi per una sola vegada, i després
anem a codificar de forma recursiva i després iterativament.
>> Si vostè té alguna pregunta, si lliure d'aixecar la mà.
Feliç caminar i respondre- abans de començar com un grup.
>> Resumim, i anem a Pseudocodi la versió recursiva de
això, i després anem a codificar.
Així que una funció recursiva necessita dues coses.
Això pot ser una pregunta que vostè podria demanar.
Necessita dues coses.
Qui pot aixecar la mà i em diu quines són les dues coses que un recursiu
funció de les necessitats?
Per definició té dues coses.
Quines són aquestes dues coses?
Noves mans.
Sí, Alden.
>> AUDIÈNCIA: Així que no estic molt segur de si aquesta és la terminologia, però -
>> JASON Hirschhorn: m'alegro que està aixecant la mà.
>> AUDIÈNCIA: Es necessita un cas base, i necessita un pas recursiu.
>> JASON Hirschhorn: Perfect.
Necessita d'un cas base i un pas recursiu.
Quin és el nostre cas base aquí?
>> AUDIÈNCIA: root F és igual a és igual a nul.
Ho sento, només en pseudocodi, si és nul.
Si l'arrel és nul.
>> JASON Hirschhorn: Si l'arrel és nul.
Això és excel · lent.
Aquest és el nostre cas base.
Això és el que per comprovar en tot moment.
I cas base és el el primer que fas.
Si xoca amb la hipòtesi de base, ja està fet.
>> Ara necessitem la nostra crida recursiva, i em disposat a apostar que necessitem un parell
recursiva es diu aquí.
Com que és un arbre, i ens podria anar de moltes maneres.
Així que si l'arrel és nul, estem bé.
>> Què proposes?
I ara vaig a començar a trucar a terme en vosaltres, perquè sé que vostès
tots ho saben.
Però Annie, què ha de la següent línia a ser?
I si el trobem?
Què fem?
>> AUDIÈNCIA: Si ens trobem?
>> JASON Hirschhorn: O el que ha de ser que -
dóna'm el pseudocodi per a la línia en què ens trobem.
>> AUDIÈNCIA: Si i és igual a l'arrel i?
>> JASON Hirschhorn: I llavors, què fem?
>> AUDIÈNCIA: Retorna true.
>> JASON Hirschhorn: Molt bé.
Així que si i és i -
oh, els dos estan cridats i.
Això fa confús.
Però si i és i return true.
Aquesta és probablement la propera El que hem de fer.
Té sentit.
>> Bé, ara que no hem fet el nostre recursiva truqui però, però, perquè una recursiva
anomenada cridés aquesta funció de nou.
Llavors, què deu el següent línia de pseudocodi a ser?
Anna.
>> AUDIÈNCIA: El costat esquerre.
>> JASON Hirschhorn: Sigui específic, però.
Aquest és un arbre binari de cerca, així que el que no el control de la part esquerra implicaria?
>> AUDIÈNCIA: Així node -
Ho sento, l'arrel.
I després la fletxa esquerra.
Node, node, ho sento.
No estic llegint correctament.
Es diu node, oi?
>> JASON Hirschhorn: Es dirà root en aquesta funció, però de qualsevol manera.
El costat esquerre - Sí?
>> AUDIÈNCIA: Si no ho fa igual I, a continuació, anem a trucar a
la funció de nou?
>> JASON Hirschhorn: Això és correcte.
Si no ho fa igual i, anem per cridar a la funció.
Però, què costat de l'arbre anem cridar a la funció de nou?
>> AUDIÈNCIA: Al costat esquerre.
>> JASON Hirschhorn: No estem sempre anem a trucar a l'esquerra, si
no és igual que.
>> AUDIÈNCIA: Oh, ho sento.
Truqui a la dreta.
>> JASON Hirschhorn: Volem saber específicament, però - recorda, en un
arbre binari de recerca, tot per el costat esquerre és més petit.
Tot a la dreta banda és més gran.
Així que no és només - si, endavant.
>> AUDIÈNCIA: Si és menys d'i, llavors -
si és en l'esquerra -
>> JASON Hirschhorn: Així que si RI és inferior a -
pel que si el nostre número és menor que jo, de quin costat volem anar?
>> AUDIÈNCIA: Volem anar al costat dret.
>> JASON Hirschhorn: Volem anar -
permetin-me cridar un arbre ràpid.
Si això és 5, aquest és 3.
Així que si ri és inferior a cinc, la qual cosa banda volem anar?
>> AUDIÈNCIA: Perdona, què?
>> JASON Hirschhorn: El nostre número és menor que el nombre que estem
mirant ara.
>> AUDIÈNCIA: Oh, llavors volem per anar a la part esquerra.
Sí
Ho sento.
>> JASON Hirschhorn: Exactament.
No hi ha problema.
En l'arbre binari de recerca, tot menor és a l'esquerra,
major està a la dreta.
Així que si el nostre nombre és menor que l'i estem comprovant -
perquè es veu en el node, que té un i -
llavors vostè vol anar a l'esquerra.
>> I aquesta és una tasca fàcil.
Què és l'altra línia de pseudocodi hem d'escriure?
Carles?
>> AUDIÈNCIA: La mateixa cosa, que acaba de canviar a un signe més gran que
i aneu a la dreta.
>> JASON Hirschhorn: Pot vostè dir que una vegada més?
>> AUDIÈNCIA: Si el nostre nombre és més gran que jo, vaig a la dreta.
>> JASON Hirschhorn: Excel · lent treball en el pseudocodi.
Farem això en el codi real.
I de nou, aquest pseudocodi es probablement aconseguirà, perquè és
correcta, el 50% en aquesta qüestió.
Però aquest pseudocodi també es tradueix 1 a un, essencialment, en el codi.
>> Així que anem a fer això en C Qui pot donar a mi la primera línia de codi?
En realitat, en primer lloc, abans que faci que, deixa, trobaré sobre -
>> AUDIÈNCIA: Tinc una pregunta.
Per què s'aplica sagnia a la línia que et vaig donar?
>> JASON Hirschhorn: Perquè Jo no podia escriure.
No.
Tens raó.
Aquesta línia ha d'estar allà.
>> Bé, aquí és la nostra funció.
I permetin-me detinc, també, nostra definició d'un node.
Què passa si no ho féssim escriure typedef?
Algú sap?
>> AUDIÈNCIA: No seria compilar.
>> JASON Hirschhorn: seria compilar, si.
>> AUDIÈNCIA: Seria just declarar una instància en lloc de convertir-lo en un nou
tipus vostè pot declarar múltiple casos d'?
>> JASON Hirschhorn: Així que no ho faria saber - que no ho faria
simplement declarar un tipus.
Vostè encara pot fer una gran quantitat de nodes.
>> AUDIÈNCIA: Però, no hem de escriure struct node cada vegada?
>> JASON Hirschhorn: Això és correcte.
Vostè hauria d'escriure node struct cada vegada, en lloc de només node.
Però amb typedef, vostè pot tot just escriure node cada vegada.
Bé, qui no ha donat - sí, AVICA.
>> AUDIÈNCIA: Si l'arrel és igual als iguals null, retorna false.
>> JASON Hirschhorn: Gran, i aquest és el nostre cas base.
La següent línia de codi.
Algú que no ha donat em una línia de codi encara?
Sí
>> AUDIÈNCIA: Root fletxa i és igual igual a i.
A continuació, torneu realitat.
>> JASON Hirschhorn: Molt bé.
Següent línia?
Sí
Algú més?
I llavors vostè pot anar a continuació.
>> AUDIÈNCIA: Perquè si l'arrel de fletxa i és menor que torno
funció anomenada find root -
>> JASON Hirschhorn: Ho sento.
>> AUDIÈNCIA: root troballa Retorn apunta a l'esquerra coma i.
>> JASON Hirschhorn: Així que si ri és més gran que la cosa a l'arbre, volem
anar a l'esquerra?
>> AUDIÈNCIA: No, vaig haver de canviar.
>> JASON Hirschhorn: Quin?
>> AUDIÈNCIA: No, si.
Tinc menys de signar allà.
>> JASON Hirschhorn: Correcte, si ri és menys del que està en l'arrel -
nostra arrel actual - llavors vull anar a l'esquerra.
I quina és l'última línia, oi?
>> AUDIÈNCIA: Bàsicament el mateix, excepte commutar el major o
igual a menys de i d'esquerra a dreta.
>> JASON Hirschhorn: Excel · lent.
Algú té alguna pregunta sobre això?
Pel que algunes altres coses que faria han estat correctes, és que
podria ser el-ltiff.
Suposo que, tècnicament, cap d'aquestes Realment també necessiten ser ltiff.
>> A més, hi ha probablement només un cas aquí.
Així que això és probablement el seu últim cas.
Vostè ni tan sols necessita que-ltiff.
Però probablement bo per escriure que, per ser clars.
Sí
>> AUDIÈNCIA: Llavors vostè no creu que el concurs - si fem errors, per exemple,
en la sintaxi -
petits errors de sintaxi -
Com que s'ocupaven en el concurs?
>> JASON Hirschhorn: En general en l'examen, petits errors de sintaxi o petit
errors d'estil no perds punts.
Així que si se li va oblidar un punt i coma aquí, no estaria malament.
Si vostè es va oblidar de tancar aquest parèntesi, que estaria bé.
>> Errors de sintaxi enormes que alteren la significat funcional del seu codi
dràsticament, podria obtenir tret punts per.
O en general, només de classificació sobre la conveniència o no de la seva
funcions de codi, fins i tot -
no el seu disseny tant, i no el seu estil.
>> Ara anem a codificar una iteratiu versió de la troballa.
Així que serà molt similar, però Hi ha certament serà
algunes diferències clau.
No obstant això, la nostra pseudocodi probablement pot anar -
encara podem tenir una línia de la pseudocodi i esbrinar el que el
la línia és en aquest cas.
>> Així que en una versió iterativa, el que Què et sembla, Julia, en cas de
ser la primera línia?
>> AUDIÈNCIA: Un cop més, en boolean iteratiu, que necessita per crear un bucle, oi?
>> JASON Hirschhorn: OK.
>> AUDIÈNCIA: Així que per igual, k, per x és igual a 0, x és menor que jo.
O No, x és menor que el mida de l'arbre.
>> JASON Hirschhorn: L'arbre.
Així que realment no sabem la mida de la arbre, i nosaltres no sabem realment per
Quantes vegades es pot anar, així que què és un diferent tipus de bucle que pot ser
millor en aquest cas?
>> AUDIÈNCIA: Si una altra persona?
>> JASON Hirschhorn: Si una altra persona no pot ser un bucle.
Llavors, què és un tipus de llaç que pot simplement vagi fins que es compleixi algun cas?
Quin és l'únic altre tipus de bucle en C, a més d'un bucle?
>> AUDIÈNCIA: While.
>> JASON Hirschhorn: Mentrestant, exactament.
En un bucle de temps, no necessita saber com -
un bucle while i for loop poden fer el exactament el mateix, però el bo
al voltant d'un bucle while és que no necessitem saber què tan gran és el nostre arbre.
Així que anirem fins que el que?
>> AUDIÈNCIA: Fins que equival a la mida de -
>> JASON Hirschhorn: Bé, és molt similar al nostre cas recursiu.
Per tant -
>> AUDIÈNCIA: Si bé arrel i no és igual a i.
>> JASON Hirschhorn: Això és molt estreta.
Mentre que l'arrel i -
ho intentarem.
No crec que [inaudible]
on root i no és igual a i.
És possible que necessitem canviar en una mica poc, però això sona com que és bastant
bo, per ara.
Així que anem a fer això.
>> A més, recordem, no podem assumir per la pregunta.
No assumir que el arrel serà no nul · la.
Llavors, què creu vostè que el molt El primer que hem de fer és?
>> AUDIÈNCIA: Simplement fer el mateix El que abans.
Si l'arrel és igual als iguals null, retorna false.
>> JASON Hirschhorn: Molt bé.
Així que podria ser nul.
Així que volem desfer d'això de seguida.
I llavors estem anant xec si arrel i no és igual a i.
Per tant, diem que estem buscant en aquest arbre per a 3, arrel i no i igual, ara
estem en el nostre bucle while.
Què volem fer?
I de nou, serà bastant similar a la nostra versió recursiva.
Sí
>> AUDIÈNCIA: Així que t'agradaria repetir, o seguir per l'arbre, sempre que
l'arrel no és igual a nul.
>> JASON Hirschhorn: Mentre el arrel no és igual a null?
>> AUDIÈNCIA: El guió arrel i no és igual a nul.
Només l'arrel, si.
Com sempre que l'arrel és no és igual a null.
>> JASON Hirschhorn: ¿Així que vols per canviar això en l'arrel
no és igual a nul?
>> AUDIÈNCIA: Si.
>> AUDIÈNCIA: Podríem combinar aquests, no?
No necessitem el cas, al principi.
>> JASON Hirschhorn: OK, així que si no ho fem -
si els combinem, per la qual cosa farem mentre que l'arrel no és igual a null, i
si l'arrel passa a ser nul en el començant, què fem aquí?
>> AUDIÈNCIA: return false.
>> JASON Hirschhorn: Molt bé.
Així que de les dues maneres, probablement hauria funcionat.
Aquesta és una manera diferent, i això ho combina.
Però, de nou, si es va fer de qualsevol manera, estem no va a enlairar-se de disseny
punts en el concurs.
Però això es veu bé.
>> Així, mentre que l'arrel no és igual a null, el que és el primer
El que volem comprovar?
Algú més?
Null, què és el primer?
>> AUDIÈNCIA: Si ri és inferior a -
oh, suposo, si ja trobat a l'arrel.
Així que si l'arrel fletxa i és igual a i -
>> JASON Hirschhorn: Ho sents?
>> AUDIÈNCIA: Si l'arrel de fletxa i és igual a és igual a i -
>> JASON Hirschhorn: Què fem?
>> AUDIÈNCIA: Retorna true.
>> JASON Hirschhorn: Molt bé.
I què és el següent?
Jeff, quina és la següent línia de codi?
>> AUDIÈNCIA: Si i és menor que l'arrel de fletxa I, llavors és igual a l'arrel de l'arrel de fletxa esquerra.
>> JASON Hirschhorn: iguals d'arrel arrel de fletxa esquerra.
Així que aquesta és probablement la major diferència aquí en aquest iteratiu
la versió oposada a la versió recursiva.
La versió recursiva, ens cridar a la funció de nou.
Estarem actualitzant root quan que anomenem la nova funció.
Aquí no estem cridant a una nova funció.
Estem simplement actualitzar arrel en aquesta funció.
Això és excel · lent.
I quina és l'última línia de codi?
Sí, Mario?
>> AUDIÈNCIA: iguals arrel Else arrel de fletxa dreta.
>> JASON Hirschhorn: Ho sents?
>> Iguals d'arrel: AUDIÈNCIA arrel de fletxa dreta.
>> JASON Hirschhorn: Podria vostè també escriure alguna cosa com això?
>> AUDIÈNCIA: No tinc ni idea.
>> JASON Hirschhorn: No es pot.
No es pot fer més iguals.
OK, així que això es veu bé.
Per què no simplement el que per netejar-lo.
Això es veu molt bé, i això anava a funcionar.
I ens esclatar.
>> Si l'arrel esquerra tenia raó nul · la o arrel era nul, arribaríem fins aquí.
Root seria igual a nul.
Ens agradaria sortir del nostre bucle, i ens agradaria tornar falsa.
Així que quan sortim de la bucle, tornarà false.
>> I de nou, el bucle d'un temps era perfecte aquí perquè no sabem com
gran és el nostre arbre.
Tractem d'escriure el bucle, però es va adonar que has de trobar la manera
gran que és abans d'hora.
Sí
>> AUDIÈNCIA: Si aquest no fos un binari arbre de recerca, seria matemàtiques reals-i
escriure de manera iterativa, oi?
Igual que, si es tractava d'un arbre, però no necessàriament -
pel que no era tot el més petit a l'esquerra, i tot el gran a la dreta.
Seria molt difícil iterar sobre ella, oi?
Hauríem de salvar el que era abans en a l'arbre i tornar,
i coses per l'estil.
>> JASON Hirschhorn: Si no fos un binari arbre de recerca, si era només un
arbre i les coses no eren ordenats com això -
i ens vam adonar abans, quan Anna ens estava ajudant a que pel que és
ordenat ens ajuda molt -
hauríem de, això sí, sempre guardi on érem abans.
Però podria haver-hi una gran quantitat de on estàvem previouslys.
No pot haver-hi una gran quantitat de nodes primaris.
>> Probablement la millor manera de fer-ho seria ser la de seguir empenyent les coses cap a alguns
tipus de pila o cua.
Mai hauria de codificar aquesta perquè és un problema difícil.
Però vostè empeny algunes coses en una pila o cua i després fer-los esclatar apagat, i
després avaluar-los.
>> I després tenir alguna altra cosa on en realitat estàs posant els nodes i
a continuació, creu que, a continuació, buscar a través d'això.
Aquesta podria ser la millor manera de fer-ho.
Bé, qualsevol pregunta sobre aquest problema?
>> AUDIÈNCIA: Aquesta és una nota relacionada.
Haurem de comparar els temps d'execució per a les taules de hash, binari
arbres de recerca, etcètera?
>> JASON Hirschhorn: Probablement.
Així que anem a fer això molt ràpid.
Temps d'execució per a la taula hash -
Quins són els altres?
Arbre binari?
>> AUDIÈNCIA: llistes d'enllaços.
>> JASON Hirschhorn: OK, ho farem d'inserció.
Quin és el gran O d'inserció en una taula hash?
Quins són els supòsits vostè està fent?
>> AUDIÈNCIA: Vostè està inserint en la a partir de la llista d'enllaços.
>> JASON Hirschhorn: Probablement la primera suposició és que no hi col · lisions.
Si no hi ha col · lisions, llavors el temps d'inserció és un.
Si hi ha col · lisions, i ja està fent encadenament separat i inserint
al principi de la llista d'enllaç, a continuació, la inserció és també constant.
>> Si vostè està fent una taula hash, però vostè tenir un mètode diferent de tractar
amb les col · lisions, el que és un mètode diferent?
Què és d'un mètode diferent de tractar amb
col · lisió en una taula hash?
>> AUDIÈNCIA: La programació lineal.
>> JASON Hirschhorn: Programació lineal.
Així que seguirem buscant per al següent punt obert.
Això no és temps d'inserció constant.
Vostè podria haver de passar per tota la taula, de manera que
podria ser gran O de n.
Sí
>> AUDIÈNCIA: Si no gairebé encadenar?
>> JASON Hirschhorn: Vam encadenament separat.
Aquesta va ser la primera.
Això és el que la llista d'enllaços.
El nom de fantasia és encadenament separat.
Podria ser qualsevol tipus d'estructura de la llista ens ha tocat fer a la llista d'enllaços.
>> Així que de nou, la inserció en una taula hash podria ser la constant de temps.
Què passa amb la inserció en una cua apilador?
>> AUDIÈNCIA: No és constant?
>> JASON Hirschhorn: És la constant de temps.
No ets més que empènyer a engegar.
D'acord.
Inserció, quins eren els altres?
En un intent?
Què és la gran O d'inserció en una oportunitat?
>> AUDIÈNCIA: La longitud és constant.
Longitud dels més llargs -
la longitud de la paraula vas a inserir.
>> JASON Hirschhorn: Ho sents?
Espera, així que el que vaig sentir?
Vostè va dir -, què vas dir?
Quina va ser la seva resposta, Marcus?
>> AUDIÈNCIA: La longitud de la paraula vas a inserir en caràcters,
assumint que és una prova de caràcter.
>> JASON Hirschhorn: OK, així que la longitud de la paraula.
Anem a fer una suposició que és una cadena de caràcters.
Vostè ha dit una cosa diferent, però.
Vostè va dir que la longitud de paraula més llarga.
>> AUDIÈNCIA: Això és només constant, no?
>> JASON Hirschhorn: Per què sigui constant?
>> AUDIÈNCIA: Igual que, si s'utilitza gran O notació, llavors no varien en funció de
de la quantitat de coses que ja estan en l'intent.
>> JASON Hirschhorn: De manera que ho faria diuen que és la constant de temps.
És inserció constant, i això és perquè aquesta idea -
diguem que tenim una paraula que és de 45 anys, o una paraula que és el 60, que
té un nombre constant.
I que només s'inseriria en temps constant.
>> A la pràctica, però, no seria, òbviament, succeir en un mil · lisegon,
per exemple.
Però diríem gran O és constant per intentar-ho.
I aquesta és una de les seves avantatges.
>> Què passa amb la inserció en una llista d'enllaços?
Només una, ordenades llista d'enllaços genèric?
Sí
>> AUDIÈNCIA: jo tenia una pregunta.
En la prova, és que alguna vegada ens la demani temps d'inserció que és quatre passos,
o alguna cosa així?
O és només -
quan dius temps d'inserció és una, això només vol dir que la constant de temps?
>> JASON Hirschhorn: Sí, ho farien sempre preguntar, és gran O de n?
Big O de log n?
N al quadrat constant.
Aquests són realment l'única els que necessita saber.
Què passa amb la inserció en ordenats llista d'enllaços?
>> AUDIÈNCIA: jo tenia una pregunta -
una pregunta -
>> JASON Hirschhorn: Quina és la resposta a aquesta pregunta, però?
>> AUDIÈNCIA: Espera, què ho preguntes?
>> JASON Hirschhorn: Què és la gran O de inserció en una llista d'enllaços ordenats?
>> AUDIÈNCIA: One?
No s'espera, sense esperar, n.
>> JASON Hirschhorn: N. més la llista d'enllaços.
I quina era la seva pregunta?
>> AUDIÈNCIA: Així que escriuries o de k o o 1 per al -
>> JASON Hirschhorn: Oh.
M'agradaria escriure o d'1, probablement.
Hi havia una altra estructura de dades això hauria estat bo.
Arbre, arbre binari de cerca.
El inserció en un arbre binari de cerca?
>> AUDIÈNCIA: Login.
>> JASON Hirschhorn: Llavors, quina és la pitjor cas en un arbre binari de cerca?
Així que si ens toca començar a les 5, i cada nombre és més gran que 5, i després
tenim 5, 7, 9, 11, etc.
En aquest cas, és bàsicament un enllaç llista, i hem d'inserir tota
la forma a l'extrem.
Així que és gran O de n.
>> Aquesta podria ser la nostra pitjor dels casos en un arbre de cerca binària.
Òbviament, mai es construirà un arbre de recerca binari amb 5 a la
mitjà, sabent que 5 ser el número més baix.
Però podria ser, si ets començar des de zero.
Teniu alguna pregunta respecte això abans que passar a una altra pregunta?
Aquesta era una bona pregunta.
Sabria gran O de -
>> AUDIÈNCIA: Què passa amb la recerca per als quatre?
>> JASON Hirschhorn: Definitivament ens tenia recerca i classificació.
Vam fer tots els algoritmes, és clar.
Esperi, va ser que per a la prova 1?
Va ser això cobert -
Ja ha de pregunta en la prova 1?
El gran temps d'execució O de recerca binària, ordenació per inserció, l'ordenació de bombolla?
>> AUDIÈNCIA: Si.
>> JASON Hirschhorn: Si haguessis de pregunta sobre la Prova 0, les probabilitats són que no ho faràs
aconseguir exactament la mateixa pregunta a la prova 1.
Podria ser bo saber això.
Hauríeu de poder saber gh ja.
>> Però altres temps d'execució logarítmiques són probablement bo saber-ho.
Les coses que no van ser coberts en concurs 0.
Igual que tots aquests operadors en aquests tipus de dades abstractes.
>> OK, seguirem endavant.
Aquest ha de ser bastant ràpid.
I aquest és un nou llenguatge que no tenim en realitat codificada en abans.
Aquesta és una pregunta que demana codificar en PHP.
Així que considera la matriu PHP a continuació.
Escriure codis PHP i / o HTML, que sortida a una taula de dues columnes amb TFS
noms i cases.
>> Vostè mai ha fet això abans, aquest problema específic.
Però això ha de ser molt familiar per el que vas fer en el problema conjunt juliol.
Així que jo estaria disposat a apostar que serà demanat que codificar alguna cosa en PHP que
és molt similar al que van fer en conjunt de problemes 7.
>> En primer lloc, la matriu no és tan específic.
Quin tipus d'arranjament és això?
>> AUDIÈNCIA: Associatiu.
>> JASON Hirschhorn: És una matriu associativa.
I quina és la diferència entre una array associatiu i un objecte?
>> AUDIÈNCIA: Una matriu d'objectes té un índex d'enters i una matriu associativa
és un índex d'una cadena, o alguna cosa per l'estil.
>> JASON Hirschhorn: Així que una gran varietat de objectes tindrien índexs de
sencers, però un objecte té camps.
Té els noms de camp com nom, casa, estudiant.
Té una idea?
>> AUDIÈNCIA: Bé, associatiu array és en PHP, oi?
I és objecte en JavaScript?
>> JASON Hirschhorn: Honestament, no hi ha diferència real entre els dos.
Tots dos tenen cadenes com les claus, i pot tenen bàsicament qualsevol cosa com a valor.
Diferents idiomes truqui a un El matriu associativa,
una cosa un objecte.
Així que, honestament, no hi ha una veritable diferència, però no hi ha dubte
diferències sintàctiques entre els dos.
Sí
>> AUDIÈNCIA: Així és objecte també codifica sota la campana com una taula hash, llavors?
>> JASON Hirschhorn: El que es fa dir, codificats sota el capó?
>> AUDIÈNCIA: Ens van dir que associatiu varietat era tècnicament un
la taula de hash.
Així que és objecte també tècnicament taules hash?
>> JASON Hirschhorn: Jo no vaig per respondre a aquesta pregunta.
Em posaré en contacte amb vostè en això.
Però no se m'acudiria, ja sigui dels que són com això.
Però, en qualsevol forma, matriu associativa i objecte, en general, la gent fa servir els
termes indistintament.
En aquest cas, la part freda és que vostè pot utilitzar les tecles.
Cadenes com a claus, en lloc de només números simples.
>> Així que he estat parlant això per una estona.
Amb sort, algunes persones tenen fet més que començar en això.
Escriurem una mica de PHP i HTML codi, de manera que tenim una de dues columnes
taula amb noms i cases de TFS.
>> Bé, també m'agradaria una capçalera remar en aquesta taula.
Així que vaig a anar directe en això.
Presentarem, nou, i anem a -
>> D'acord.
Com començament a una taula?
Quina és l'etiqueta, Michael, per iniciar una taula?
>> AUDIÈNCIA: Taula.
>> JASON Hirschhorn: Taula.
I si obro una etiqueta, el que més necessito?
>> AUDIÈNCIA: Al capdavant?
O bé, suposo, de classe.
>> JASON Hirschhorn: Així que, ho sento.
Suposem que ja hem escrit doctab, HTML, totes aquestes coses.
Però si obro aquesta etiqueta taula, el que més he d'escriure?
per validar HTML?
>> AUDIÈNCIA: tancar-la.
>> JASON Hirschhorn: Tancament l'etiqueta.
Com s'escriu una etiqueta de prop taula?
>> AUDIÈNCIA: Dot slash taula.
>> JASON Hirschhorn: Raya vertical de taula, molt bé.
Probablement té sentit escriure tant de les juntes perquè
ho has de fer.
Bé, si vull una fila de capçalera, com Escric una fila de capçalera amb els títols?
>> AUDIÈNCIA: És menys de 10 hores a prop -
TR, si.
>> JASON Hirschhorn: TR?
>> AUDIÈNCIA: Llavors el mateix, la barra, si.
>> JASON Hirschhorn: OK, i dóna'm dues columnes.
>> AUDIÈNCIA: T D?
>> JASON Hirschhorn: OK.
Vull dues columnes.
Això em dóna dues columnes?
Quantes columnes és això?
Una.
Així que anem a copiar i enganxar això.
>> Així que en realitat, en l'examen, tot aquest codi que hem escrit fins ara era
realitat que li donen.
Però vostè ha probablement encara saber com escriure-ho.
Sí
>> AUDIÈNCIA: La teva casa està entre les dues.
>> JASON Hirschhorn: Boom.
S'ha d'anar a la dreta, no?
Bona decisió.
Així que de nou, tot aquest codi és en realitat que li ha assignat en l'examen real.
Però és divertit d'escriure, i vostè ha de saber com escriure-ho.
Així que aquí és on vostè necessita per iniciar el seu codi.
Què necessitem per escriure aquí?
>> Ho sentim, però he de canviar el nom d'aquest arxiu.
Així que ens estalviem en un arxiu HTML., no en un arxiu PHP ..
Aquestes coses no significarien res en un arxiu PHP ..
Així que estem en un arxiu HTML ..
¿Què és el primer He de escriure?
Vull posar una mica de PHP codi en un arxiu HTML.
>> AUDIÈNCIA: PHP, com un altre de pastanaga i signe d'interrogació PHP, oi?
>> JASON Hirschhorn: Molt bé.
I com puc acabar això?
>> AUDIÈNCIA: Amb un signe d'interrogació.
>> JASON Hirschhorn: Això és genial.
Aquesta és la primera cosa que necessito si vull posar una mica de codi PHP a aquí.
>> AUDIÈNCIA:. Vaig pensar que un PHP arxiu podria tenir HTML.
>> JASON Hirschhorn: Si.
Un arxiu PHP. Podeu portar el seu HTML i visualitzar.
Aquest va ser el meu error.
Jo només estava tractant d'imitar el que era en el qüestionari.
>> Bé, ho sento per confondre't.
Sí, practice.HTML.
Ara posarem una mica de codi PHP polz
Quina és la primera línia de Codi PHP he d'escriure?
Vaig a anar a través d'aquesta matriu i convertir-la en una taula.
Sí
>> AUDIÈNCIA: Vostè pot utilitzar un bucle for H o ​​un bucle for.
>> JASON Hirschhorn: OK, què Què vols fer servir?
>> AUDIÈNCIA: M'agradaria utilitzar un bucle for.
Per, i després ho fa el signe de dòlar i és igual a 0 i coma dòlar
signar i inferior a 2.
I llavors coma i dòlar signar i plus plus.
>> JASON Hirschhorn: Com vostè sap utilitzar febrer 1?
>> AUDIÈNCIA: Perquè hi havia dos matrius associatives dins de la més gran
matriu associativa.
>> JASON Hirschhorn: Així que el més gran de no un conjunt associat.
El més important és simplement una matriu normal.
Però tens raó, hi ha dues matrius associatives
dins de la nostra gamma més gran.
És per això que utilitza dos.
Em sento incòmode assumir que són 2, així que el que és una manera d'escriure
això sense assumir que són 2?
>> AUDIÈNCIA: [inaudible]?
>> JASON Hirschhorn: OK, com Com s'escriu això?
>> AUDIÈNCIA: signe de dòlar foreach tfs o com a signe de dòlar tf.
>> JASON Hirschhorn: OK, així que per a cada tfs tfs com, vull, ara
de nou, tenir la meva taula.
Llavors, qui em pot donar la següent línia de codi?
>> AUDIÈNCIA: Imprimir i, a continuació, en cites, extrem tr suport
suport, fi de la cita.
Parèntesi End, i coma.
>> JASON Hirschhorn: OK, i Què és això que farà?
>> AUDIÈNCIA: Es dirà, nova fila.
Es posarà el etiquetar per a una nova fila.
>> JASON Hirschhorn: Correcte, aquest PHP, com hem parlat abans - aquesta
PHP serà avaluat, i després que voleu imprimir en l'arxiu una
taula de remolc i, a continuació, que S'avaluarà HTML.
Només estem copiant aquest HTML que vam tenir aquí.
Sí
>> AUDIÈNCIA: [inaudible]?
>> JASON Hirschhorn: Ho sents?
Està just aquí.
Tardor 2012.
No miri les respostes, anem a resoldre junts.
Així imprimim fila de la taula.
Així que és probable que en el ritme de les coses.
Quina és la pròxima línia de codi que necessitem per escriure?
Assam, dóna'm la següent línia de codi.
>> AUDIÈNCIA: Cal el nom del tf.
Tf suports oberts cometes nomenar suports tancats.
>> JASON Hirschhorn: Deme el seu nom.
>> AUDIÈNCIA: Vostè necessita imprimir això.
>> [VEUS interposant]
>> JASON Hirschhorn: OK, Com ho imprimeixo?
>> [VEUS interposant]
>> JASON Hirschhorn: em falta alguna cosa ara.
Què m'estic perdent?
>> AUDIÈNCIA: Vostè necessita un signe de dòlar.
>> JASON Hirschhorn: Què cosa que m'estic perdent?
Tots hem imprès fins al moment és el tr.
>> AUDIÈNCIA: Tanqueu el tr després d'ella.
>> JASON Hirschhorn: Així que necessitem per tancar el TR després.
Qui veu el que ens falta en la línia 16?
Sí, Anna.
>> AUDIÈNCIA: Vostè necessita obrir 01:00 td i claus.
>> JASON Hirschhorn: I on posem les claus?
>> AUDIÈNCIA: Al voltant del nom tf.
>> JASON Hirschhorn: Així?
>> AUDIÈNCIA: Si.
I a continuació, tanqui el td.
>> JASON Hirschhorn: Així?
>> AUDIÈNCIA: Necessita cometes marques al costat de les claus?
>> JASON Hirschhorn: Aquí mateix?
No, no ho fas.
Així que això és exactament correcte.
Sí
>> AUDIÈNCIA: Així que la diferència entre aquest i encatenating amb punts és, si
utilitza punts, vostè hauria de tenir la cometes dobles, a continuació, un punt,
llavors el punt -
>> JASON Hirschhorn: Correcte.
Així que estàs dient que hi ha un final manera d'escriure aquesta així.
El que l'operador de concatenació en JavaScript?
>> AUDIÈNCIA: Un signe més.
Vostè es va oblidar de posar el arrissat cotilla per a l'esquena.
>> JASON Hirschhorn: Molt bé.
I hi ha una línia més de codi que falta.
Qui em pot donar l'última línia de codi que ens falta?
>> AUDIÈNCIA: Només exactament el mateix, només amb la casa en lloc del nom.
Gran
>> JASON Hirschhorn: Molt bé.
I la seva sintaxi és exactament l'adequat per fer les coses en una matriu associativa.
Així que en la prova real, vostè és realitat donada fins aquí.
Així que aquest codi se li va donar a vostè.
Tot el que havia d'escriure eren aquests quatre línies i recordar
tancar l'etiqueta de taula.
Vostès realment va fer tot això i més.
Sí
>> AUDIÈNCIA: Així que seria funcionalment el mateix si vostè acaba de tenir que tots en
una trucada impressió gran, oi?
I a continuació, només concatenat en, et cetera?
>> JASON Hirschhorn: Així?
>> AUDIÈNCIA: Si.
Simplement no es veu bé si fossis mirar quan s'està inspeccionant
l'element al seu lloc web, no?
>> JASON Hirschhorn: Estic d'acord.
Si Vaig carregar aquesta pàgina web, seria jo capaç de veure el codi PHP, mai?
>> AUDIÈNCIA: No
>> JASON Hirschhorn: No
I, de fet, no ho faria.
>> AUDIÈNCIA: Aquest no és l'HTML, oi?
Així que vostè pot ser capaç de -
>> JASON Hirschhorn: Així que això faria PHP avaluar costat del servidor.
PHP sempre s'avalua costat del servidor, de manera que mai s'és capaç de veure el codi PHP.
>> AUDIÈNCIA: Però vostè seria capaç de veure el resultat de les impressions.
>> JASON Hirschhorn: així.
I sincerament, no podria posar tot en la línia.
Podria donar-li format molt bé per a vostè, o pot posar-la en una línia.
Incert.
Però això sí, bon punt.
>> AUDIÈNCIA: Com és que hi ha sense ressaltar text per
qualsevol dels comandaments de PHP?
Perquè jo recordo haver vist això.
>> JASON Hirschhorn: Perquè és una Arxiu. HTML aquí a la part superior.
Aquí el tens.
>> AUDIÈNCIA: Si ho féssim el mètode inicial amb la dels bucles, dreta, si ens
volgut accedir a un tfs, oi fer suport tfs 0 suport, llavors
[Inaudible]?
>> JASON Hirschhorn: El faries -
pel que dius per el bucle for ho faria en el signe de dòlar tfs suport 1
o I, és clar.
O signe de dòlar tanco suport i després claudàtor
cometes, si.
>> Bé, excel · lent.
Tenim un més un ràpid.
Set minuts, de manera que vull per repassar aquesta.
Aquest és un altre exemple.
Estem ara totalment un altre idioma.
>> Tenim una mica de codi HTML.
És una mica petita a la pantalla, però Vull que mira a través del que realment
ràpidament, i potser algú em digui, si jo fos a mostrar la pàgina web,
el que veuria?
Descriure tot el relacionat amb aquesta pàgina web.
Noè?
Què vaig a veure?
>> AUDIÈNCIA: Codi a la part davantera de Google, amb una idea de text i un
botó d'enviar.
>> JASON Hirschhorn: I què diria el botó?
>> AUDIÈNCIA: Submit.
Oh, en aquesta categoria.
Ho sento.
>> JASON Hirschhorn: Diria cerca.
Recordeu que el nom.
Per a què utilitzem el nom de?
Aquest atribut de nom, el que és que s'utilitza?
>> [VEUS interposant]
>> AUDIÈNCIA: Aquest és el seu nom per quan es fa clic?
>> JASON Hirschhorn: Això podria ser.
Però, ¿què és el que generalment veiem - per què estem donant aquesta col es diu?
Per què veiem això?
Sí
>> AUDIÈNCIA: Això no convertir índex de la variable súper global?
>> JASON Hirschhorn: Sí, generalment quan Així presentaria, i llavors, on
seria aquest present a?
En quina pàgina?
Noè, el que seria aquesta pàgina sotmetre a?
>> AUDIÈNCIA: No estic segur.
>> JASON Hirschhorn: On Podríem podem trobar-lo?
On trobes el que la pàgina se sotmet a?
Quina línia de codi?
>> AUDIÈNCIA: acció Form.
>> JASON Hirschhorn: Exactament.
Acció.
Pel que se sotmet a la pàgina de cerca.
Cerca barra invertida.
Així que això és exactament correcte.
Quin mètode?
>> AUDIÈNCIA: Obtenir.
>> JASON Hirschhorn: Obtenir.
Exactament.
Així llegim això.
Això serà una forma.
Tens tota la raó.
Dues coses sobre la forma, el títol de la pàgina i la part superior seria Google.
>> Així que aquí hi ha dues preguntes que ha de ser capaç de respondre sobre aquesta pàgina.
Si aquest codi HTML viu en aquest lloc web i l'usuari introdueix error en aquest text
camp aquí, què URL l'usuari a trobar-se a si mateixa en
enviar el formulari?
>> Així que tenim aquesta aquí.
Vaig a tornar a aquesta pàgina, però.
Vaig a escriure aquesta primera part.
Tots poden veure per aquí?
Bé, Mario, que creus que saps?
En quina pàgina?
>> AUDIÈNCIA: backslash cerca.
>> JASON Hirschhorn: Vaig per baixar aquí.
D'acord, la barra invertida question marca q és igual a error.
Algú té un suggeriment diferent?
Sí
>> Llavors, com fem perquè això?
Bé, hem vist això abans.
I se li va acudir això abans.
Tenies raó, Noah, que el acció ens està dient el que
pàgina anem a.
>> També sabem quin mètode.
Estem fent get.
I la diferència entre GET i POST és que aconsegueixen mostra a la URL
i després no ho fa.
Així que si escrivia pal dret hi ha al mètode, què seria diferent?
>> AUDIÈNCIA: Seria just ser la recerca de frega.
>> JASON Hirschhorn: seria només es frega la cerca.
Res per aquí anava a succeir.
Però pel fet que és un fer, la URL es mostra de la següent manera.
En primer lloc veiem un signe d'interrogació i veiem que el nom i el valor.
Digui hi havia un altre camp de text i Li vaig donar un nom de r i d'entrada un
valor, eruga.
Com seria això ara sembla?
Tinc un més camp de text, em donarà una nom de r i un valor d'eruga.
>> AUDIÈNCIA: Després de bar hauries l'eruga i comercial.
>> JASON Hirschhorn: Això és No ampersand.
>> AUDIÈNCIA: O només ho i el símbol.
>> JASON Hirschhorn: Sí, no.
Tenies raó, em vaig equivocar.
Això és com un g.
>> AUDIÈNCIA: Caterpillar.
r és igual a l'eruga, ho sento.
>> JASON Hirschhorn: Hi ha no r aquí?
>> AUDIÈNCIA: No, no n'hi ha.
>> JASON Hirschhorn: Parlarem sobre que després de la classe.
Això és exactament correcte.
Així que l'i és correcta.
I llavors vostè podria tenir molts d'aquests, i tots ells es poden concatenar
juntament amb que i.
Així que això és exactament correcte.
>> Hi ha una pregunta més.
Dibuixeu DOM d'aquest HTML, a partir amb el document.
Podríem fer això en dos minuts.
Ho farem aquí.
Vaig a tornar a aquesta pàgina web.
Bé, comencem amb el document.
>> Què segueix?
Així que quan vostè està llegint a través de -
>> AUDIÈNCIA: HTML.
>> JASON Hirschhorn: HTML és el següent.
Anirem etiqueta per etiqueta.
Què hi ha després d'HTML?
>> AUDIÈNCIA: Head.
>> JASON Hirschhorn: Head.
Què hi ha després del cap?
>> AUDIÈNCIA: Títol.
>> JASON Hirschhorn: Títol.
I el títol té un valor de Google, però jo no vaig a
escriure que en per ara.
Bé, a on va el cos?
>> AUDIÈNCIA: A més sortint de l'HTML.
>> JASON Hirschhorn: Exactament.
Cos surt d'aquí.
Tothom entén per què aquest és el cas?
Probablement hauria de ser capaç d'esbrinar això, també, encara que jo no tenia
aquest bonic sagnia.
>> La sagnia espècie del delata, però es pot veure que l'etiqueta del cap té
han tancat, la qual cosa ens indica que probablement no es pot baixar aquí.
Hem de tornar a pujar al Va ser just abans del cap
etiqueta, o en virtut d'això.
Estem encara amb l'etiqueta del cap.
>> I sota el cos va formulari.
Sota la forma, hi ha dues entrades.
D'acord.
Això és tot el que tinc.
Prova 1 és demà.
Estic tan emocionada per vostès.
Serà una explosió.
>> Si vostè té -
>> AUDIÈNCIA: [Aplaudiments]
>> JASON Hirschhorn: Oh per, per.
Però no, no estic fent broma.
Si vostè té alguna pregunta, per dret després de la secció, vaig a estar fora.
Si vostè té alguna pregunta aquesta nit, no dubteu a trucar, correu electrònic, Gchat,
portadora em Pigeon.
Bona sort demà.
Tenir un descans d'Acció de Gràcies meravellós, si jo no et veig abans d'aquesta data.
I vaig a veure't després d'Acció de Gràcies dimarts per la nostra última
secció de festa de la història.
>> AUDIÈNCIA: [inaudible].
>> JASON Hirschhorn: Molt bé.
Bé, vaig a veure vostès el proper setmana, o en dues setmanes.
I bona sort demà.