DAVID J. Malan: Tout dwat. Se konsa, Byenveni nan premye a tout tan tout tan CS50 otopsi pou yon egzamen. Nou te panse ke nou ta inogire sa a tradisyon ane sa a. Lè sa a pral yon okazyon mache nan la yon solisyon ak egzamen an. Epitou, n ap pi vit oswa ralanti ki baze sou enterè nan sa yo isit la. Se konsa, w ap pwobableman isit la paske w ap ta enterese nan jan ou ta ka genyen oswa ta dwe gen reponn kèk nan pwoblèm sa yo. Se konsa, poukisa pa nou pran yon gade nan seksyon sa a an premye? Se konsa, jwenn strings. Sa a te ban nou twa diferan vèsyon nan yon pwogram ki te, finalman, vle di yo ka resevwa yon fisèl ki sòti nan yon itilizatè. Si ou pa li te fè sa ki te kite jwenn ou pou detèmine. Apre sa, nou te mande nan Kesyon 0, ta kwè se vèsyon 1 se konpile ak egzekite. Poukisa pwogram nan ta ka segfault? Nan premye gade, nenpòt sigjesyon kòm poukisa? Yeah. ODYANS: Se konsa, mwen sonje wè sa a nan yon egzanp anvan yo chèche nan nan Char * a ak wè optik la nan s yo, epi wè paske li nan yon konsèy, ki jan li te afekte ki sa ou tcheke nan? Èske li s oswa adrès ki nan s? DAVID J. Malan: OK. Bon. Se konsa, finalman, sous la nan nenpòt pwoblèm ki se prezimableman ale nan redwi ak sa yo ki s varyab. Epi li tout bon yon varyab. Kalite nan done varyab sa a se Char *, ki vle di li nan ale nan gen adrès ki nan yon karaktè. Apre sa, ladan l 'bay manti insight la. Li nan ale nan gen adrès ki nan yon karaktè oubyen, plis jeneralman, nan adrès nan karaktè a an premye nan yon blòk antye nan karaktè. Men, trape an se ke optik a, objektif nan lavi a, yo bay yon adrès yo ak ba yo yon kòd fòma, tankou% s, li yon kòd nan moso an nan memwa nan adrès sa a. Men, paske se gen nan pa gen siy egal devan ki pwenvigil sou premye a liy nan Kòd, paske nou pa fè sa aktyèlman asiyen nenpòt memwa ak malok, paske li pa t 'aktyèlman asiyen yon etalaj nan kèk gwosè yo, tout w ap fè ap li a nan itilizatè D 'klavye nan kèk konplè valè fatra, ki se nan yo pa default. Se konsa, chans yo w ap ale nan segfault si adrès ki pa jis pou rive yo dwe yon valè ke ou kapab, an reyalite, ekri nou nan. Se konsa, move pa asiyen memwa ou a. Se konsa, nan kesyon 1, nou te mande, ta kwè se vèsyon 2 a se konpile ak egzekite. Poukisa pwogram sa a ta ka segfault? Se konsa, yon sèl sa a ki pi piti a buggy. Apre sa, gen nan reyèlman sèlman yon sèl fason evidan ki kote ou kapab deklanche yon segfault isit la. Lè sa a se tematik. Nenpòt ki lè nou ap lè l sèvi avèk c nan memwa, ki sa ki ou ta ka fè pwovoke yon segfault ak vèsyon 2? ODYANS: Si ou itilize ke D 'nan yon kòd ki nan pi lontan pase 49 karaktè. DAVID J. Malan: Egzakteman. Nenpòt ki lè w wè yon bagay fiks longè lè li rive yon etalaj, ou rada ta dwe ale nan ke sa a ta ka pwoblèm si ou pa ap tcheke nan limit nan yon etalaj. Epi sa a, pwoblèm nan isit la. Nou toujou ap lè l sèvi avèk skanf. Nou toujou ap lè l sèvi avèk% s, ki vle di eseye li yon fil ki soti nan itilizatè a. Sa k ap pase ou dwe li nan s, ki, nan pwen sa a, se efektivman an adrès nan yon ti moso nan memwa oswa li nan ekivalan. Li nan non an nan yon etalaj nan karaktè nan memwa. Men, egzakteman sa, si ou li yon fisèl sa a, se pi long pase 49 karaktè, 49 paske ou bezwen plas pou antislach a 0, w ap ale nan debòde ki pezib. Apre sa, ou ta ka jwenn chans epi yo dwe kapab ekri yon karaktè 51st, 52yèm, 53rd. Men, nan kèk pwen, eksplwatasyon an ki pral di, pa gen. Sa a definitivman se pa memwa w ap pèmèt yo manyen. Apre sa, pwogram nan se ale nan segfault. Se konsa, gen, eristik yo ta dwe gen nenpòt ki tan ou te gen fiks longè, ou gen asire w ke ou ap tcheke longè a nan tou sa li se w ap eseye li nan li. ODYANS: Se konsa, yo rezoud sa a, ou ta ka te gen yon deklarasyon tcheke aktyèlman Kisa ki pi konsekan an longè pase oswa mwens pase? DAVID J. Malan: Absoliman. Ou jis gen yon kondisyon ki di, si - a oswa olye ou pa nesesèman konnen davans ki jan anpil karaktè a itilizatè ki pral tape, paske ou gen poul ak ze a. Se pa jouk ou te li li l 'nan ak skanf Èske ou ka konpwan konbyen tan li ye. Men, nan pwen sa, li a twò ta, paske ou te deja li li l 'nan kèk blòk nan memwa. Se konsa, kòm yon sou kote, evite yo bibliyotèk CS50 pwoblèm sa a tout ansanm, sonje lè l sèvi avèk fgetc. Apre sa, li li yon karaktè nan yon moman, pwent-toeing ansanm, konnen ke ou pa ka debòde yon karaktè si w ap li yon sèl nan yon tan. Trape a ap kanpe ak getstring sonje se ke nou gen toujou ap re-gwosè ki moso nan memwa, ki se jis yon doulè. Li se yon anpil nan liy nan Kòd fè sa. Se konsa, yon lòt apwòch ta dwe aktyèlman sèvi ak yon kouzen, se konsa yo pale, nan skanf. Gen variantes de yon anpil nan sa yo fonksyon ki aktyèlman tcheke nan longè ki jan anpil karaktè ou ta ka li omaksimòm. Apre sa, ou ta ka presize, pa li plis pase 50 karaktè. Se konsa, ki ta ka yon lòt apwòch men mwens pou akòmode nan pi gwo faktè pwodiksyon. Se konsa, kesyon 2 mande, ann sipoze ke vèsyon 3 se konpile ak egzekite. Poukisa ke pwogram ka segfault? Se konsa, yon sèl sa a se aktyèlman menm bagay la tou reponn, menm si li sanble yon ti kras amateur. Nou ap lè l sèvi avèk malok, ki santi l tankou nou ap bay tèt nou plis opsyon. Lè sa a, n ap libere ki memwa nan fen an. Li la toujou jis 50 bytes nan memwa. Se konsa, nou ta ka toujou eseye li nan 51, 52, 1,000 bytes. Li ale nan segfault pou egzakteman menm rezon an. Men, gen yon lòt rezon tou. Ki lòt bagay te kapab malok retounen san konte adrès ki nan yon ti moso nan memwa? Li kapab retounen nil. Apre sa, paske nou pa ap tcheke pou sa, nou ta ka fè yon bagay estipid pou yon lòt rezon ki fè, ki se ki nou ta ka di skanf, li D 'itilizatè a nan soti nan klavye a nan 0 kote, AKA nil. Epi ki, tou, yo pral definitivman deklanche yon segfault. Se konsa, nan bi pou egzamen an, nou ta te aksepte swa nan tout sa yo kòm yon rezon ki fè ki valid. Youn nan se ki idantik. Youn nan se yon ti kras plis nuans. Anfen, ki gen rapò ak nan pwogram nan pou sèvi ak memwa, ki jan fè vèsyon 2 ak vèsyon 3 diferan? Se konsa, pou ki sa li vo, nou te wè yon ekipman pou w pèdi kontinuèl nan posib repons a sa a. , Ak nan mitan repons moun nan, sa nou te tann pou, men nou aksepte lòt bagay sa yo, te gen kèk mansyone nan la reyalite ki vèsyon 2 ap itilize ap itilize chemine a sa yo rele. Version 3 se lè l sèvi avèk pil wòch la. Apre sa, fonksyonèl, sa a pa fè sa vrèman fè tout sa ki anpil nan yon diferans. Nan fen jou a, nou ap toujou jis ap resevwa 50 bytes nan memwa. Men, ki te youn nan repons yo posib ke nou te gade nan. Men, ou pral wè, menm jan ou jwenn ti tès ou tounen soti nan TFs a, se sa nou te fè sa aksepte lòt diskisyon nan yo itilizasyon disparate nan memwa tou. Men, chemine e yo ta pil wòch yo te yon repons fasil ale avèk yo. Nenpòt kesyon? Mwen ban nou Rob. ROB BOWDEN: Se konsa, pwoblèm 4. Sa a se youn nan kote ou te gen yo ranpli nan kantite bytes soti nan tout sa yo kalite diferan itilize yo. Se konsa, premye bagay nou wè. Sipoze yon achitekti 32-ti jan, tankou sa a aparèy CS50. Se konsa, youn nan bagay ki fondamantal sou 32-bit architectures, ki di nou egzakteman ki jan gwo yon konsèy ki pral yo dwe nan achitekti la. Se konsa, imedyatman, nou konnen ke nenpòt ki konsèy di ki kalite se 32-Bits oswa 4 bytes. Se konsa, gade nan tablo sa a, yon ne * se yon kalite konsèy. Sa a pral fè 4 bytes. Konstri ne *, sa a, se literalman ki idantik ak zetwal ne. Se konsa, ki nan ale nan gen 4 bytes. Fisèl, kidonk li pa gade tankou yon konsèy ankò, men tipedèf, yon an fisèl se jis yon * Char, ki se yon kalite konsèy. Se konsa, ki k ap pase yo dwe 4 bytes. Se konsa, sa yo twa yo tout 4 bytes. Koulye a, ne ak elèv yo yon ti jan pi plis konplike. Se konsa, gade nan ne ak elèv, nou wè ne kòm yon nonb antye ki pè ak yon konsèy. Apre sa, elèv la de pwent andedan nan li. Se konsa, omwen pou ka nou an isit la, wout la ke nou fini kalkile gwosè a nan konstri sa a se jis ajoute jiska tout bagay sa a, se andedan konstri la. Se konsa, pou ne, nou gen yon nonb antye ki pè, ki se 4 bytes. Nou gen yon konsèy, ki se 4 bytes. Se konsa, yon sèl ne ki pral yo pran moute 8 bytes. Apre sa, Menm jan an tou pou elèv, nou gen yon konsèy sa a, se 4 bytes ak yon lòt konsèy sa a, se 4 bytes. Se konsa, ki k ap pase nan fen yo te 8 bytes. Se konsa, ne ak elèv yo se 8 bytes. Apre sa, twa bagay sa yo, yo tout 4 bytes. Kesyon sou sa? Wi. ODYANS li: Eske se te yon 64-ti jan achitekti, ta pito wè double tout nan yo? ROB BOWDEN: Li pa t 'vle double tout nan yo. Se konsa, 64-ti jan achitekti, li, ankò, chanjman ki bagay fondamantal ke yon konsèy se kounye a 64 miyèt moso. Yeah. Se konsa, yon konsèy se 8 bytes. Se konsa, sa yo ki te 4 bytes yo ale nan pral 8 bytes. Yon elèv, sa ki te de pwent, byen, kounye a li nan ale nan pral 8 bytes, 8 bytes. Li pral fè 16 bytes. Men, yon ne se toujou 4 bytes. Se konsa, konsèy sa a ki pral yo dwe 8 ​​bytes. Sa a se 4 bytes. Se konsa, yon ne se sèlman pral yo dwe 12 bytes. Nenpòt lòt kesyon sou sa yon sèl? Se konsa, yon sèl kap vini an, sa yo, se sitiyasyon HTTP kòd yo. Apre sa, ou te gen a dekri sikonstans anba ki sa yo ta ka dwe retounen nan ou. yon pwoblèm ki mwen tande kèk elèv gen se yo ke yo eseye fè nan erè dwe sou fen kliyan an. Se konsa, lè nou eseye fè demann lan nan sèvè a, yon bagay ale sa ki mal sou fen nou an. Men, jeneralman, kòd sa yo, se ke yo te tounen pa sèvè a. Se konsa, nou vle konnen ki sa k ap pase mal oswa dwa sou sèvè a ki lakòz bagay sa yo k ap tounen. Se konsa, poukisa ta ka yon retounen sèvè sitiyasyon Kòd 200? Nenpòt panse? Yeah. Se konsa, yon bagay sou siksè demann lan mache ale nan tout. Apre sa, yo ap kapab retounen tou sa ou mande pou. Se konsa, tout bagay te amann. Ki sa ki sou 302 yo te jwenn? Yeah. ODYANS: sèvè a te kap pou sa ou mande a. Men, li pa t 'kapab jwenn li ankò. Se konsa, gen nan yon erè. ROB BOWDEN: Se konsa, sèvè a te kap chèche sa ou te vle. Se konsa, jis kap isit la, 302 jwenn, li te kapab jwenn li ankò. ODYANS: mwen regrèt. Twouve vle di ke yo te fè jwenn li ankò. M regrèt. ROB BOWDEN: Se konsa, 302 te jwenn yo. Sèvè a se kapab jwenn ki sa ou te vle. ODYANS: Men, li pa nan montre li? ROB BOWDEN: Diferans ki genyen ant sa a 302 ak 200 se ke li konnen sa ki ou vle. Men se pa egzakteman ki kote ou te vle mande la a. Se konsa, 302 se yon redireksyon òdinè. Se konsa, ou mande yon paj. Li konnen, o, mwen vle retounen ou sa a. Men, sa a se nan yon URL diferan. Se konsa, hey, ou aktyèlman vle sa a. DAVID J. Malan: Se yon moso ki t'ap di: ke nou te ban nou mesye yon redireksyon fonksyon ki itilize fonksyon an header ki, nan vire, enprime soti kote, kolon, ak Lè sa a, URL la nan ki ou vle rejte itilizatè a. Menm si ou pa t 'wè 302 klèman la, se sa ki PHP ta maji insert kòm lento a li di ekzakteman ki sa Rob di: - jwenn. Men, ale isit la pito. ROB BOWDEN: OK. Se konsa, sa ki sou 403 entèdi? ODYANS: Mwen panse ke li a ki sèvè a se fondamantalman ki di ke kliyan an pa ka jwenn aksè paj la kay la. ROB BOWDEN: Se konsa, repons lan se wi. Oke, repons lan tipik nou te ap tann se yon bagay tankou, dosye yo yo pa chmodded kòmsadwa. Sa a pwobableman nan ki sikonstans ou te wè yo. Men, gen yon rezon ki fè ke kliyan an ta ka nan fay isit la. Genyen aktyèlman yon lòt Kòd estati - 401. Se konsa, sa yo, se trè sanblab. 401 se san otorizasyon. Apre sa, 403 se entèdi. Se konsa, san otorizasyon ou sèlman jwenn si ou pa ap louvri sesyon pous Men, ouvri sesyon an ta ka vle di ke ou ap otorize. Men, si w ap deja louvri sesyon an, epi ou toujou pa gen pèmisyon, lè sa a ou ka jwenn entèdi tou. Se konsa, si w ap louvri sesyon an epi yo pa gen pèmisyon, entèdi tou se yon bagay ou ka jwenn. DAVID J. Malan: Apre sa, mekanis a pa ki pwoblèm sa yo yo anjeneral rezoud sou sèvè a se atravè sa ki komand yo ye? Chmod, si li nan, tout bon, yon otorizasyon bay nan dosye a oswa anyè. ROB BOWDEN: Lè sa a, 404 pa jwenn. Yeah. Se konsa, kontrèman ak 302 kote li te pa egzakteman ki kote ou ap mande men li konnen sa ki ou vle, sa a, li jis gen gen okenn lide ki sa ou vle. Epi ou pa ap mande yon bagay ki valid. 418 mwen se yon teyèr ak Lè sa a, 500 sèvè entèn yo. Se konsa, poukisa ou ta ka jwenn sa? Se konsa, segfault - Mwen aktyèlman pa konnen jan yo bay nòt estanda pou sa a. Men, si Kòd PHP ou te gen yon bagay sa ki mal nan li, nan teyori, li te kapab aktyèlman segfault, nan ki ka, sa a 500 sèvè entèn erè, yon bagay se sa ki mal ak nan sèvè ou konfigirasyon. Oswa gen yon erè sentaks nan Kòd PHP ou. Oswa yon move bagay ki pral sou. DAVID J. Malan: Nou t 'wè segfault nan mitan repons yon kèk moun. Apre sa, teknikman, li te ka rive. Men, ki ta ka yon PHP, pwogram lan ekri pa lòt moun, aktyèlman segfaulted, ki te sèlman si moun sa yo vise leve, li te ekri kòd buggy nan entèprèt yo ta PHP tèt li segfault. Se konsa, menm si 500 se tankou yon segfault nan Lespri Bondye, li nan prèske toujou la rezilta nan yon pwoblèm dosye konfigirasyon ak sèvè sit entènèt ou oubyen, jan Rob te di, yon erè sentaks, tankou ou pa t 'fèmen yon quote. Oswa ou pèdi yon pwenvigil yon kote. ODYANS: Se konsa, pou pset la Shuttle, mwen panse lè m 'te fè li yon fwa mwen klike la navigatè, men pa gen anyen li moute soti deyò, sa yo te rele paj blan. Men, li te paske nan kòd la. Mwen panse ke sa ki te JavaScript, dwa? ROB BOWDEN: Yeah. ODYANS: Èske ke erè toujou vini? ROB BOWDEN: Se konsa, ou pa ta vinn erè sa a paske tout bagay nan pèspektiv sèvè wèb la a te konplètman amann. Men, ou mande index.html. Ou mande shuttle.js ak service.js. Apre sa, li te kapab avèk siksè retounen ou tout nan bagay sa yo - 200. OK. Li nan sèlman lè navigatè ou a te eseye entèprete kòd la JavaScript ki Se tankou, rete tann, sa a se pa ki valid JavaScript erè. Nenpòt lòt kesyon? Tout dwa. DAVID J. Malan: Se konsa, pwochen moute te nimewo 11. Apre sa, 11 te efreyant la pou yon anpil nan moun. Se konsa, bagay ki pi enpòtan sonje isit la te ke sa a te, tout bon, sou yon lis doubl lye. Men, sa a pa t 'menm bagay la tou kòm ane pase a doubl lye pwoblèm lis, ki pa t 'ba ou opozisyon an ki lis la t 'kapab, an reyalite, gen triye. Se konsa, lefèt ke lis la te triye ak lefèt ke mo sa a te souliye te gen vle di ke yo transmèt ke sa a se aktyèlman yon senplifikasyon nan sa ki otreman ta gen yon pwoblèm ki pi difisil ak youn ki pi long. Se konsa, yon erè komen isit la se te ou te mete solisyon ane pase a sou yon sèl ou bipè ak Lè sa a, jis je fèmen kopi ki desann kòm repons lan, ki se dwa pou reponn a yon kesyon diferan menm jan an nan Lespri Bondye. Men, sibtilite sa yo isit la te jan sa a. Se konsa, yon sèl, nou te yon ne te deklare ak sa defini nan wout la nòmal isit la. Lè sa a, nou defini lis gen yon mondyal konsèy initialisé nil. Lè sa a, aparamman, gen nan de fonksyon nou gen prototip pou isit la, insert epi retire. Lè sa a, nou gen kèk Kòd echantiyon isit la pou fè yon pakèt moun sou parusyon. Lè sa a, nou mande w yo fini nan aplikasyon nan insert anba a nan sa yo yon fason ke li foure n nan lis la nan tan konstan, tou souliye, menm si deja prezan. Se konsa, bote nan ke yo te kapab insert nan tan konstan se ke li implique ki di ou gen insert ne nan nouvo ki kote? Nan devan an. Se konsa, li elimine, Erezman, omwen youn nan ka yo ki te konn mande pou menm plis liy nan Kòd, tankou li te fè ane pase a e menm nan klas lè nou te pale nan sa a kalite bagay ak imen ak ak kèk vèbal Kòd pseudo. Se konsa, nan solisyon an isit la, se pou yo sote sou ak sa yo ki jis yo gen yon sou vizyèl ekran an. Remake n ap fè sa ki annapre yo. Epi tou remake lòt senplifikasyon an te ke menm si li nan deja prezan, se konsa sa sa vle di menm si nimewo a se deja a, ou kapab jis je fèmen insert yon lòt kopi li. Epi ki, tou, te vle di ke yo gen yon senplifikasyon, se konsa ke ou te kapab konsantre sou, reyèlman, kèk nan pi plis nan entelektyèlman enteresan pati ak pa sèlman kèk erè plis tcheke bay tan an limite. Se konsa, nan echantiyon solisyon sa a, nou asiyen yon konsèy sou-men la kite bò isit la nan yon ne. Koulye a, reyalize ke konsèy, menm jan Rob te di, se sèlman 32 miyèt moso. E li pa aktyèlman gen yon adrès jiskaske ou bay li adrès la. Apre sa, nou fè sa sou-bò dwat bò atravè malok. Tankou yon bon sitwayen, nou tcheke ki malok se pa, an reyalite, nil, se konsa ke nou pa aksidantèlman kreye yon segfault isit la. Apre sa, nenpòt ki lè ou itilize malok nan lavi yo, ou yo ta dwe tcheke pou nil, pou ou gen yon ensèk sibtil. Lè sa a, nou inisyalize ki nil pa plase n ak Previous ak pwochen. Apre sa, nan ka sa a isit la, mwen initialisé anvan nil, paske sa a nouvo ne a pwal nouvo a kòmanse nan lis mwen an. Se konsa, gen k ap pase yo dwe pa gen anyen devan li. Apre sa, mwen vle esansyèlman kole nan lis ki ekziste nan ale ne nan nouvo pa mete pwochen egal a lis tèt li. Men, mwen pa fè jis ankò. Se konsa, si lis nan tèt li deja egziste, e te gen omwen yon ne deja an plas, si sa a se lis la isit la e mwen mete yon nouvo ne isit la, mwen bezwen asire w ke ansyen ne m ' pwen bak nan nouvo ne m 'yo, paske sa a se, ankò, yon lis doubl lye. Se konsa, nou fè yon chèk saniti. Si lis se pa nil, si gen nan deja youn oswa plis nœuds a, Lè sa a, ajoute ke tounen referans se konsa yo pale. Lè sa a, bagay la trè dènye nou bezwen dwe fè se aktyèlman aktyalizasyon mondyal la varyab lis tèt li nan pwen ak sa yo ki nouvo ne. Yeah. ODYANS: Nan flèch la konsèy [Fèbl] egal nil, fè sa fè fas ak lis la paske lis la se nil? DAVID J. Malan: non. Sa se tou senpleman m 'yo te dinamik atansyon, nan ki si sa a se mwen an lis orijinal ak petèt kèk nœuds plis sou isit la ak mwen yo mete m ' nouvo ne sou isit la, gen k ap pase yo dwe pa gen anyen plis pase isit la. Apre sa, mwen vle pran lide sa a pa mete anvan nil sou ne a nouvo. Apre sa, prezimableman, si Kòd mwen an se kòrèk ak gen nan pa gen lòt fason yo insert nœuds lòt pase fonksyon sa a, prezimableman, menm si lis deja gen youn oswa plis nœuds nan li, prezimableman la lis, ne a an premye, ta gen yon konsèy anvan yo nil tèt li. ODYANS: Apre sa, jis yon suivi. Rezon ki fè la ou mete konsèy egal pwochen lis ki ou ap fè konsèy la anvan lis nan ke li nan montre pwochen an, mwen devine - Mwen pèdi san fwa - jis bay lis? DAVID J. Malan: Egzakteman. Se konsa, kite a aktyèlman konsidere de ka isit la reyèlman, menm si la lòd nou pral konsidere yo se pa byen menm jan ak kòd la. Men, sou yon nivo ki wo, si sa a reprezante lis ak sa a se yon 32-bit konsèy, senaryo a ki pi senp lan se ke sa a se nil pa default. Apre sa, ta kwè mwen vle insert la nimewo 50 te nimewo a an premye. Se konsa, mwen pral ale pi devan epi asiyen yon ne, ki se ale nan gen twa jaden - n, anvan, epi kap vini an. Mwen pral mete nimewo a 50 isit la, paske sa a pral n. Sa a pral vini yo. Lè sa a yo pral anvan yo. Se konsa, sa m 'fè nan ka sa a? Oke, Mwen te jis fè liy 1 isit la. Pwente n vin n. Mwen Lè sa a, li di yo: anvan ta dwe pran nil. Se konsa, sa a se pral yo dwe nil. Lè sa a, mwen pral di pwochen ki pral jwenn lis. Lè sa a jis travay yo deyò byen. Sa a se nil. Se konsa, m ap di, ne la nan nouvo pwochen jaden ta dwe pran tou sa sa a se. Se konsa, ki mete yon lòt nil la. Lè sa a, bagay la pase Mwen se tcheke isit la. Si lis se pa egal a nil, men li ki egal a nil, se konsa nou sote ki tout ansanm. Se konsa tout m 'fè pwochen se lis vin konsèy, ki pictorially rezilta yo nan yon foto tankou sa. Se konsa, sa a, se yon sèl senaryo. Apre sa, youn nan ki ou te poze kesyon sou espesyalman se yon sitiyasyon tankou sa a, kote nou deja genyen yon lis yon sèl-ne. Men, si m 'ale tounen moute nan orijinal la deklarasyon pwoblèm, pwochen an nou pral insert di se 34, jis pou dedomajman pou la nan diskisyon. Se konsa, mwen pral jis yon bon trase ke plis pase isit la. Mwen te jis malloced. Se pou yo asime mwen tcheke pou nil. Koulye a, mwen pral inisyalize n yo dwe 34. Lè sa a yo pral n. Sa a pral vini yo. Lè sa a yo pral anvan yo. Se pou yo asire yo ke mwen pa t ' jwenn sa a fè bak. Previous ki vini anvan nan definisyon an. Kite m 'ranje sa a. Sa a se anvan yo. Sa a se kap vini an. Menm si sa yo, se idantik, kite a kenbe l 'ki konsistan. Anvan yo. Sa a se kap vini an. Se konsa, mwen te jis malloced nòt m 'yo, tcheke pou nil, plase 34 nan ne an. Previous vin nil. Se konsa, ki ban m 'sa. Next vin lis. Se konsa, lis la se sa a. Se konsa, sa a se menm bagay la tou kounye a kòm desen sa a flèch, sa yo ke yo lonje dwèt sou yon sèl nan menm bagay la. Lè sa a, mwen tcheke si lis se pa egal a nil. Epi li pa tan sa a. Lè sa a, mwen pral fè lis anvan yo vin konsèy. Se konsa, fè lis anvan vin ptr. Se konsa, sa a gen efè a nan mete yon flèch grafik isit la. Epi sa a, ap resevwa yon ti kras tranble, liy yo. Lè sa a,, alafen, mwen mete lis nan pwen konsèy. Se konsa, kounye a sa a lonje dwèt nan nèg sa a. Epi, koulye a, se pou yo fè yon rapid saniti chèk la. Isit la nan lis la, ki se varyab mondyal la. Ne an premye se, tout bon, 34, paske Mwen vin apre flèch. Epi sa a, kòrèk paske mwen vle insert nan konmansman an nan lis la tout nouvo ne. Jaden pwochen l 'mennen m nan nèg sa a. Si m 'kenbe ale, mwen frape pwochen se nil. Se konsa, gen nan pa gen lis plis ankò. Si m 'frape anvan, mwen jwenn tounen kote mwen atann. Se konsa, gen toujou yon pwent kèk, evidamman, yo manipile. Men, lefèt ke yo te di ou fè sa a nan tan konstan vle di ou sèlman gen yon nimewo fini de bagay sa yo w ap pèmèt yo fè. Ak sa ki ladan nimewo? Li ka fè yon sèl etap. Li ta ka gen de. Li ta kapab 1,000 etap. Men, li la fini, ki vle di ou pa kapab te nenpòt kalite loupin ale sou isit la, pa gen rkursyon, pa gen pasan. Se jis te rive nan gen liy difisil-kode nan kòd jan nou gen nan echantiyon sa a. Se konsa, pwoblèm nan pwochen 12 mande nou ranpli aplikasyon an nan retire anba a nan yon fason ke li retire n nan lis la nan tan lineyè. Se konsa, ou gen yon ti kras pi plis chanm Ajite kounye a. Ou ka asime ke n, si prezan nan lis la, ap prezan pa gen plis pase yon fwa. E ke tou ki te vle di yo dwe yon ki baze sou egzamen senplifye sipozisyon, se konsa ke si ou jwenn nimewo 50 yon kote an nan lis la, ou pa fè sa tou gen enkyete sou kontinye repňte, kap pou chak posib kopi 50, ki ta jis transfere nan kèk karakteristik nan tan limite. Se konsa, avèk retire, yon sèl sa a te definitivman pi difisil ak plis ankò Kòd ekri. Men, nan premye gade, franchman, li ta ka gade akablan ak tankou yon bagay gen nan pa gen fason ou ka gen vini ak sou yon egzamen. Men, si nou konsantre sou etap sa yo endividyèl, èspere ke, li pral toudenkou frape ou ke chak nan sa yo moun etap fè sans evidan nan retrospective. Se konsa, kite a pran yon gade. Se konsa, premye, nou inisyalize konsèy yo dwe fè lis tèt li. Paske mwen vle tan lineyè, ki vle di Mwen pral gen kèk bouk. Apre sa, yon fason komen nan repňte sou la nœuds nan yon estrikti lis oswa nenpòt kalite nan estrikti iterativman se pran yon konsèy devan nan done yo estrikti ak Lè sa a, jis kòmanse à li epi li mache fason ou nan estrikti a done. Se konsa, mwen pral fè egzakteman sa. Pandan ke konsèy, varyab pou yon ti tan m 'yo, se pa egal a nil, se pou yo ale pi devan epi tcheke. Èske mwen kapab jwenn chans? Èske jaden an n nan ne an mwen se kounye a gade nan egal a la nimewo m 'ap chache? Men, si se konsa, se pou yo fè yon bagay. Koulye a, remake sa a si kondisyon antoure tout la liy sa yo nan kòd. Sa a se bagay la sèlman mwen pran swen sou - jwenn yon nimewo nan kesyon an. Se konsa, gen nan pa gen lòt moun, ki senplifye bagay sa yo concept yon ti kras. Men koulye a,, mwen reyalize, epi ou ka gen sèlman reyalize sa a apre panse li nan yon ti jan, gen nan aktyèlman de ka isit la. Youn nan se kote ne a se nan la kòmanse nan lis la, ki se yon ti kras anmèdan, paske sa a, se yon ka espesyal, paske ou gen fè fas ak bagay sa a, ki se anomali a sèlman. Tout kote lòt moun nan lis la, li nan menm bagay la. Genyen yon ne anvan ak yon pwochen ne, ne anvan, pwochen ne. Men, nèg sa a se yon ti kras espesyal si li nan premye jou a. Se konsa, si konsèy la egal lis la tèt li, Se konsa, si mwen se nan konmansman an nan lis la ak mwen te jwenn n, mwen bezwen fè yon koup la bagay sa yo. Youn, mwen bezwen chanje lis pwen nan jaden an kap vini an, 50. Se konsa, ta kwè se mwen ap eseye yo retire 34. Se konsa, nèg sa a te rive nan ale lwen nan jis yon ti moman. Se konsa, mwen pral di, lis vin konsèy kap vini an. Oke, sa a se konsèy. Next ap montre sou isit la. Se konsa, sa a se chanje sa a dwa flèch kounye a nan pwen nan nèg sa a isit la. Koulye a, sonje, nou gen yon varyab pou yon ti tan. Se konsa, nou pa t 'òfelen nenpòt nœuds, paske mwen yo te genyen tou nèg sa a nan mwen mete sou pye retire. Se konsa, koulye a, si lis tèt li se pa nil, Mwen bezwen ranje yon ti kras yon bagay. Mwen bezwen kounye a asire w ke flèch sa a, ki se deja montre soti nan 50 a 34, sa a te gen l 'ale, paske si mwen ap eseye debarase m nan 34, 50 te gen pi bon pa kenbe nenpòt ki kalite tounen referans a li kòm la flèch sijere. Se konsa, mwen jis te fè liy sa a. Se konsa, Lè sa a, mwen fè. Sa a se aktyèlman trè fasil. Découper koupe tèt la nan lis la se relativman senp. Malerezman, gen nan sa a anmèdan lòt moun blòk. Se konsa, koulye a, mwen gen yo konsidere ka-a kote ki gen nan yon bagay nan mitan yo. Men, li la pa twò terib yo, eksepte pou sentaks tankou sa a. Se konsa, si mwen pa nan konmansman an nan la lis, mwen se yon kote nan mitan an. Epi se liy sa a isit la li di yo: kòmanse nan tou sa ne ou nan. Ale nan pwochen jaden anvan ne la epi montre ke nan konsèy la. Se pou yo fè sa pictorially. Ki te resevwa konplike. Se konsa, si mwen gen yon jaden anvan isit la - ann fè sa a - jaden pwochen isit la. Mwen pral senplifye endikasyon mwen an olye pase trase yon pakèt tout bagay sa yo dèyè, yo soti crisscrossing youn ak lòt. Koulye a, kite yo jis di sa a se 1, 2, 3 pou dedomajman pou la nan diskisyon, menm menm si ki pa liy moute ak pwoblèm nan nan kesyon an. Se konsa, isit la nan lis lye m 'yo. Mwen ap eseye retire de nan sa a vèsyon patikilye nan istwa a. Se konsa, mwen te mete ajou konsèy dwe montre nèg sa a. Se konsa, sa a se ptr. Li te montre isit la. Sa a se lis, ki egziste globalman tankou anvan. Apre sa, li te montre isit la pa gen pwoblèm sa. Epi, koulye a, mwen ap eseye retire de. Se konsa, si konsèy ap montre isit la, mwen se pral swiv, aparamman, nan konsèy anvan yo, ki mete m 'nan 1. Mwen Lè sa a, ale nan di ke pwochen an jaden, ki pote m 'nan men sa a bwat isit la, se ale nan egal konsèy kap vini an. Se konsa, si konsèy sa a, sa a se kap vini an. Sa vle di ke sa a bezwen flèch nan pwen sa a Guy. Se konsa, sa ki liy nan Kòd gen jis fè a se yon ti kras nan sa a. Epi, koulye a, sa a se kap tankou yon etap nan bon direksyon an. Nou esansyèlman vle li ka koupe 2 soti nan mitan an nan 1 ak 3. Se konsa, li fè sans ke nou vle wout konsèy sa a fè wonn li. Se konsa, liy sa a pwochen se tcheke si konsèy pwochen se pa nil, gen nan tout bon yon moun a dwat a 2, sa vle di nou gen tou fè yon ti kras ka koupe isit la. Se konsa, mwen koulye a bezwen swiv konsèy sa a epi mete ajou konsèy la anvan sou nèg sa a fè yon ti kras nan yon solisyon isit la pwen an isit la. Epi, koulye a, vizyèlman sa a se bèl. Li se yon ti kras lèd nan ki gen nan pa gen yon sèl montre nan 2 a ankò. 2 ap montre sou bò goch la. Ak 2 yo montre sou bò dwat la. Men, li ka fè kèlkeswa sa li vle, paske li a sou jwenn te libere. Apre sa, li pa gen pwoblèm sa valè sa yo yo ankò. Ki sa ki nan enpòtan se ke rete nan mesye yo routage pi wo a ak anba a l 'kounye a. Ak tout bon, se sa ki nou fè kap vini an. Nou gratis konsèy, ki vle di nou di a sistèm opere, se ou ki akeyi nan reklame sa a. Lè sa a, Finalman, nou retounen. Lòt Bagay chal, si nou pa te retounen ankò, nou te gen kenbe gade. Se konsa, konsèy egal konsèy pwochen jis vle di deplase nèg sa a isit la. Deplase nèg sa a isit la. Deplase nèg sa a isit la si, an reyalite, nou pa t 'jwenn kantite nou ap chèche pou ankò. Se konsa, franchman, li sanble konplètman akablan, mwen panse ke, nan premye ti koutje sou, espesyalman si w plede ak sa a pandan egzamen an Lè sa a, wè yon bagay tankou sa a. Epi ou PAT tèt ou sou do an. Oke, gen nan pa gen fason mwen te kapab gen vini ak sa a sou egzamen an. Men, mwen ta diskite, ou ka si ou kase li desann nan sa yo moun ka ak jis mache nan li ak anpil atansyon, kwake, Byensir, anba sikonstans estrès. Erezman, foto a te fè tout bagay pi kontan. Ou te kapab trase sa a nan nenpòt ki kantite fason. Ou pa oblije fè crisscrossing la bagay isit la. Ou te kapab fè l 'ak tou dwat liy tankou sa a. Men, esansyèl la nan pwoblèm sa a, nan jeneral, te reyalize ke nan foto nan fen a ta dwe gade yon ti kras yon bagay tankou sa a, paske tan konstan enplisit ke ou kenbe blocage ak blocage ak blocage a nouvo nœuds nan kòmansman an nan lis la. Nenpòt kesyon? Pwobableman pi difisil la nan sètènman kesyon yo kodaj. ODYANS: Se konsa, se lis ki sanble ak tèt nan egzanp anvan yo. DAVID J. Malan: Egzakteman, egzakteman. Jis yon non diferan pou yon varyab mondyal la. World Wide ki sa? ROB BOWDEN: OK. Se konsa, sa a se youn nan kote ou te gen yo ekri paragraf la. Gen kèk moun ki te ekri redaksyon pou kesyon sa a. Men, ou jis bezwen sèvi ak sis tèm sa yo a dekri sa ki pase lè ou eseye kontakte facebook.com. Se konsa, mwen pral jis pale atravè tout pwosesis la lè l sèvi avèk tout tèm sa yo. Se konsa, nan navigatè nou yo, nou tape facebook.com ak frape Mete. Se konsa, navigatè nou an ale nan konstwi yon HTTP mande pou li a pral voye atravè kèk pwosesis Facebook pou Facebook yo pou yo reponn nou ak nan HTML nan paj li yo. Se konsa, sa se pwosesis la pa ki demann lan HTTP aktyèlman vin Facebook? Se konsa, premye, nou bezwen tradui Facebook.com. Se konsa, jis bay non an Facebook.com, kote aktyèlman fè demann lan HTTP bezwen ale? Se konsa, nou bezwen tradui Facebook.com nan yon adrès IP, ki inikman idantifye sa ki machin nou aktyèlman vle voye demann sa a. Laptop ou a gen yon adrès IP. Nenpòt bagay konekte ak entènèt la gen yon adrès IP. Se konsa, dns, Domèn Non System, se sa ki sa k ap pase okipe tradiksyon an soti nan facebook.com nan yon adrès IP ki ou aktyèlman vle kontakte a. Se konsa, nou kontakte serveurs yo dns ak di, ki sa ki facebook.com? Li di, o, li nan adrès IP 190,212 yon bagay, yon bagay, yon bagay. Tout dwa. Koulye a, mwen konnen ki sa machin Mwen vle kontakte a. Se konsa, Lè sa a, ou voye demann HTTP ou sou ak sa yo ki machin. Se konsa, li montre kouman li jwenn ak sa yo ki machin? Oke, demann lan ale soti nan routeur routeur rebondi. Sonje egzanp lan nan klas, kote nou aktyèlman wè wout la ki la sache ki te pran lè nou te eseye yo kominike. Nou te wè li sote sou Atlantik la Oseyan nan yon pwen oswa kèlkeswa sa. Se konsa, pò ki sot pase a tèm. Se konsa, sa a se kounye a sou òdinatè ou. Ou ka gen plizyè bagay sa yo kounye a kominike ak entènèt la. Se konsa, mwen ka kouri, di, Skype. Mwen ta ka gen yon navigatè entènèt louvri. Mwen ta ka gen yon bagay ki torrenting dosye. Se konsa, tout bagay sa yo, se kominike ak nan entènèt nan kèk fason. Se konsa, lè òdinatè w lan ap resevwa kèk done soti nan entènèt la, ki jan fè li konnen ki sa aplikasyon aktyèlman vle done yo? Ki jan li konnen si sa a an patikilye se done vle di pou la torrenting aplikasyon tankou yo te opoze navigatè wèb la? Se konsa, sa a se bi pou yo pò nan ki tout nan aplikasyon sa yo gen reklame yon pò sou òdinatè ou. Se konsa, navigatè entènèt ou di, hey, M'ap koute ou sou pò 1000. Epi se pwogram torrenting ou li di yo: M'ap koute ou sou pò 3000. Apre sa, Skype di, mwen lè l sèvi avèk pò 4000. Se konsa, lè ou jwenn kèk done pou moun ki te nan youn nan aplikasyon sa yo, done yo se te make ak ki pò li aktyèlman yo ta dwe voye ansanm ak li. Se konsa, sa a di, o, mwen fè pati nan pò 1000. Mwen konnen lè sa a mwen bezwen voye sa a sou ti navigatè entènèt mwen an. Se konsa, rezon ki fè yo li nan ki enpòtan isit la se ke serveurs entènèt yo gen tandans koute sou pò 80. Se konsa, lè mwen kontakte Facebook.com, mwen se kominike ak kèk machin. Men, mwen bezwen di ki pò nan ki machin mwen vle kominike avèk yo. Ak serveurs entènèt gen tandans yo dwe koute sou pò 80. Si yo te vle, yo ka mete l ' moute se konsa li bay lis kòm sou pò 7000. Lè sa a, nan yon navigatè entènèt, mwen te kapab manyèlman tape Facebook.com: 7000 voye demann lan nan pò 7000 nan sèvè wèb Facebook a. DAVID J. Malan: Apre sa, nan ka sa a, menm menm si nou pa t 'mande pou ke gen moun ki mansyone sa a, nan ka sa a, ki sa ki pò ta demann lan aktyèlman ale nan? Eseye ankò. Egzakteman. Pa kap chèche sa, men yon sibtilite sa a, se gen pesonn dènye an. ROB BOWDEN: Se konsa, t la, depi li nan koute espesyalman pou la chiffres, li la sou pò 4430. ODYANS: Apre sa, Imèl yo se 25, dwa? DAVID J. Malan: sortan Imèl, 25, wi. ROB BOWDEN: Mwen pa menm konnen pi fò nan - tout nan nan yo menm ki pi ba gen tandans yo dwe rezève pou bagay sa yo. Mwen panse ke tout bagay anba 1024 se rezève. ODYANS: Poukisa ou te di 3 te nimewo a mal? ROB BOWDEN: Paske nan yon adrès IP, gen nan kat gwoupman nan chif. Apre sa, yo ap ki ant 0 a 255. Se konsa, 192.168.2.1 se yon komen lokal rezo IP adrès. Avi tout moun ki gen mwens pase 255. Se konsa, lè m 'te kòmanse avèk 300, ki pa t 'kapab pètèt gen te yonn nan nimewo yo. DAVID J. Malan: Men, sa komik clip soti nan - li te ksi, kote yo te gen yon nimewo ki te twò gwo pou adrès la IP. ROB BOWDEN: Nenpòt kesyon sou sa a? Yon sèl kap vini an, chanjman pou ranpli nan sijè, men nou gen sa a etalaj PHP pou kay yo ki nan kwadwilatè la. Epi nou gen yon lis unordered. Apre sa, nou vle enprime soti chak lis atik jis ki gen non an kay la. Se konsa, nou gen yon bouk fortch. Se konsa, sonje, sentaks la se fortch etalaj kòm atik nan etalaj la. Se konsa, nan chak iterasyon nan bouk la, kay ki pral pran sou youn nan valè andedan nan etalaj la. Sou premye iterasyon, kay la yo pral Cabot House. Sou yon iterasyon dezyèm lan, kay yo pral gen Courier House ak sou sa. Se konsa, pou chak kwadwilatè kòm kay, nou ap jis ale nan ekri ak lèt ​​detache - nou menm tou nou te kapab répéta - atik la lis ak Lè sa a, Non kay la ak Lè sa a, fèmen lis atik la. Aparèy òtopedik yo Curly yo se si ou vle isit la. Lè sa a, nou menm tou nou te di nan kesyon an tèt li, sonje yo fèmen an lis unordered tag. Se konsa, nou bezwen sòti mòd PHP yo nan lòd yo fè sa. Oswa nou te ka genyen répéta la fèmen lis unordered tag. DAVID J. Malan: Epitou amann isit la ta yo te sèvi ak yon lekòl fin vye granmoun pou bouk ak yon $ mwen = 0 0 ak lè l sèvi avèk konte rive sou konnen longè a nan ray la. Totalman amann tou, jis yon ti kras wordier. ODYANS: Se konsa, si ou te ale nan [Fèbl], ou ta fè - Mwen bliye sa bouk la [fèbl] se. Èske ou ta $ kwadwilatè bracket mwen? DAVID J. Malan: Egzakteman. Yeah, egzakteman. ROB BOWDEN: Nenpòt bagay lòt moun? DAVID J. Malan: Tout dwat. Komès-konpwomi. Se konsa, te gen grap rezen repons posib pou chak nan sa yo. Nou te vrèman jis kap chèche yon bagay impérieux pou yon tèt ak yon enkonvenyans. Ak nimewo 16 mande l ': validation itilizatè' D 'kliyan-kòt, menm jan ak JavaScript, olye pou yo sèvè-bò, menm jan ak PHP. Se konsa, sa se yon tèt nan fè kliyan-kòt? Oke, youn nan bagay sa yo nou pwopoze a se ke ou diminye latansi, paske ou pa gen bezwen deranje w kontakte nan sèvè, ki ta ka pran kèk milisgond oswa menm yon koup la segonn nan evite ke ak jis validation itilizatè 'D' kliyan kòt-a lakòz yon Handler sou-soumèt ak jis kont kouran, yo te tape yon bagay nan pou non? Eske yo te tape yon bagay nan pou adrès imèl? Eske yo te chwazi yon dòtwa soti nan meni an gout-desann? Ou ka ba yo Feedback Enstantane lè l sèvi avèk òdinatè a jigaèrts oswa kèlkeswa sa yo gen ki nan aktyèlman sou biwo yo. Se konsa, li nan jis yon itilizatè pi bon eksperyans tipikman. Men, yon inconvénient pou fè kliyan-kòt Validasyon, si ou fè li san yo pa tou fè sèvè-bò validation se ke pi nenpòt moun ki ap vini soti nan CS50 konnen ke ou ka jis voye nenpòt done ou vle nan yon sèvè nenpòt ki kantite fason. Franchman, nan pi fò nenpòt ki navigatè, ou ka klike sou alantou an anviwònman yo ak jis fèmen JavaScript, ki ta, Se poutèt sa, enfim nenpòt fòm Validasyon. Men, nou menm tou nou ta ka sonje ke menm mwen te fè kèk bagay Esoteric nan klas lè l sèvi avèk telne ak aktyèlman parèt tankou mwen gen yon navigatè pa voye Pran demann nan yon sèvè. Epi sa a, sètènman pa lè l sèvi avèk nenpòt ki JavaScript. Se jis m 'tape kòmandman nan yon klavye. Se konsa, reyèlman, nenpòt pwogramè nan ase konfò ak sit entènèt la ak HTTP te kapab voye tou sa done li oswa li te vle nan yon sèvè san yo pa validation. Men, si sèvè ou se pa tou kont kouran, yo te ban m 'yon non, se sa a aktyèlman yon adrès imel ki valab, te fè yo chwazi yon dòtwa, ou ta ka fini moute yo mete fos oswa jis done vid nan baz done ou a, ki pwobableman se pa pral fè yon bon bagay si ou te asepte li te la. Se konsa, sa a se yon reyalite anmèdan. Men, an jeneral, kliyan-kòt Validasyon se gwo. Men, sa vle di li de fwa lavalè travay. Malgre ke gen fè egziste divès kalite bibliyotèk, JavaScript pou egzanp, ki fè sa a anpil, anpil mwens nan yon tèt fè mal. Epi ou ka jam itilize kèk nan kòd la sèvè-bò, kliyan-kòt. Men mwen reyalize ke li se tipikman plis travay. Yeah. ODYANS: Se konsa, si nou jis di mwens ki an sekirite - DAVID J. Malan: [ri] Pwa. Moun sa yo ki yo toujou pi rèd la moun deside. ROB BOWDEN: ki ta yo te aksepte. DAVID J. Malan: Ki sa? ROB BOWDEN: mwen te kreye pwoblèm sa a. Sa ta yo te aksepte. DAVID J. Malan: Yeah. ODYANS: Cool. ROB BOWDEN: Men, nou pa t 'resevwa pou youn nan premye - byen, ki sa nou te kap chèche se yon bagay tankou ou pa bezwen kominike ak sèvè a. Nou pa t 'resevwa jis pi vit. ODYANS: Ki sa ki sou pa Reload paj? ROB BOWDEN: Wi. Sa ki te yon repons aksepte. DAVID J. Malan: Nenpòt bagay ki kote nou te santi li te plis chans pase pa gen anpil chans ke ou te konnen sa ou te li di, ki se yon difisil liy trase pafwa. Lè l sèvi avèk yon lis lye olye pou nan yon etalaj yo kenbe yon Ranje lis nonm antye. Se konsa, yon tèt nou souvan site ak lye lis ki motive tout yo entwodiksyon te ou jwenn vanse. Yo ka grandi. Yo ka retresi. Se konsa, ou pa gen so nan sèrkl ki aktyèlman kreye plis memwa ak yon etalaj. Oswa ou pa bezwen jis di, regrèt sa, itilizatè. Se etalaj la plen. Se konsa, dinamik kwasans nan lis la. Yon inconvénient menm si nan lis lye? ODYANS: Se lineyè. Rechèch sou lis lye se lineyè olye pou yo sa ou louvri sesyon DAVID J. Malan: Egzakteman. Rechèch sou yon lis lye se lineyè, menm si li nan Ranje, paske ou kapab sèlman swiv sa yo ti kal pen pen, sa yo endikasyon, ki soti nan kòmansman an nan lis la nan fen an. Ou pa ka ogmante aksè o aza, epi, Se konsa, binè rechèch, menm si li nan Ranje, ke ou ta ka fè ak yon etalaj. Apre sa, gen nan yon lòt pri. Yeah. ODYANS: memwa rezèvwa? DAVID J. Malan: Yeah. Bon, mwen ta pa nesesèman di rezèvwa. Men, li koute ou plis memwa, paske ou bezwen 32 Bits pou chak ne pou konsèy la adisyonèl, nan pi piti a pou yon lis separeman lye. Koulye a, si w ap sèlman estoke nonm antye ak w ap ajoute konsèy la, ki nan aktyèlman kalite ki pa trivial. Li double kantite lajan an nan memwa. Men, an reyalite, si w ap estoke yon lis lye nan strukt ki ka gen 8 bytes, 16 bytes, menm plis pase sa, petèt li mwens nan yon pri majinal. Men, li la yon pri Sepandan. Se konsa, swa nan tout sa yo ta te gen te amann kòm enkonvenyans. 18. Lè l sèvi avèk PHP olye pou yo C yo ekri yon pwogram lòd-liy. Se konsa, isit la, li konn byen souvan pi vit sèvi ak yon lang tankou PHP oswa Ruby oswa Piton. Ou jis byen vit louvri moute yon editè tèks. Ou gen anpil plis fonksyon disponib nan ou. PHP gen koule nan kwizin nan fonksyon, Lè nou konsidere ke nan C, ou gen trè, trè ti kras. An reyalite, mesye yo konnen wout la difisil ke ou pa gen tab hash. Ou pa gen lye lis. Si ou vle sa yo, ou gen aplike yo tèt ou. Se konsa, yon sèl tèt nan PHP oswa reyèlman nenpòt ki entèprete lang se rapidite la ak ki ou ka ekri kòd. Men, yon inconvénient, nou te wè sa a lè m ' byen vit te vide yon misspeller aplikasyon nan konferans lè l sèvi avèk PHP, se ki lè l sèvi avèk yon lang entèprete se nòmalman pi dousman. Apre sa, nou te wè ki demontre ki gen yon ogmante nan tan soti nan 0.3 segonn nan 3 segonn, paske nan rèv la vle ki aktyèlman k ap pase. Yon lòt tèt te ke ou pa gen konpile. Se konsa, li tou vitès moute devlopman fortwit, paske ou pa gen de etap sa yo kouri yon pwogram nan. Ou jis gen youn. Se konsa, sa a, se bèl konvenkan kòm byen. Lè l sèvi avèk yon baz done SQL olye pou yo yon dosye CSV nan magazen done. Se Se konsa, SQL baz done yo itilize pou pset7. CSV dosye ou pa t 'sèvi ak anpil. Men, ou te itilize li endirèkteman nan pset7 kòm byen pa pale ak Yahoo Finans. Men, CSV se jis tankou yon dosye Excel men super senp, ki kote kolòn yo se jis demarked pa vigil andedan nan yon lòt dosye tèks. Apre sa, lè l sèvi avèk yon baz done SQL se yon ti kras plis irezistib. Se yon tèt, paske ou jwenn bagay sa yo tankou chwazi ak insert ak efase. Epi ou jwenn, prezimableman, endis ki Miskl ak lòt baz done, tankou Oracle, bati pou ou nan memwa, ki vle di chwazi ou se pwobableman pa pral fè tèt lineyè jouk anba a. Li nan aktyèlman pral fè yon bagay tankou rechèch binè oswa yon bagay menm jan an nan Lespri Bondye. Se konsa, yo ap jeneralman pi vit. Men, yon inconvénient se ke li jis plis travay. Li nan plis efò. Ou gen konprann baz done. Ou gen mete l 'kanpe. Ou bezwen yon sèvè nan kouri ki baz done sou. Ou bezwen konprann ki jan yo configured li. Se konsa, sa yo, se jis sa yo kalite komès-konpwomi. Lè nou konsidere ke yon dosye CSV, ou ka kreye li ak jdi. Epi w ap bon yo ale. Gen nan pa gen konpleksite pi lwen pase sa. Sèvi ak yon trye olye de yon tab hash ak separe Anchènman nan magazen yon diksyonè nan mo okoumansman nan pset5. Se konsa, yon eseye tèt, nan teyori omwen, se ki sa? Constant tan, omwen si w ap achin sou chak nan moun nan lèt nan yon mo, tankou ou ta ka gen pou pset5. Ke sa ta kapab senk achaj, sis achaj si gen nan senk oubyen sis lèt nan mo a. Epi sa a, trè bon. Men, si gen nan yon mare anwo sou ki jan lontan mo ou yo ka, ki nan tout bon asenptotik konstan tan. Lè nou konsidere ke yon tab hash ak separe Anchènman, pwoblèm nan la ansanm ak ki kalite estrikti done se ke an pèfòmans nan algoritm ou a anjeneral depann sou ki kantite bagay deja nan estrikti a done. Epi sa a, definitivman ka a ak chenn, annakò ak sa bagay la pi plis ou mete nan yon tab hash, ankò an moun ki chenn ale, ki vle di nan pi move a ka, bagay la ou ka kap chèche se tout wout la nan fen a nan yon sèl nan prizon sa yo, ki efektivman devolu nan yon bagay lineyè. Koulye a, nan pratik, li te kapab absoliman ka a ke yon tab hash ak chenn se pi vit pase yon korespondan trye aplikasyon. Men, sa a pou plizyè rezon, nan mitan ki fè yo ap eseye sèvi ak yon anpil tout memwa ki kapab, an reyalite, bagay sa yo ralanti l 'atè, paske ou pa jwenn bèl benefis yo nan yon bagay yo rele caching, kote bagay ki fèmen ansanm nan memwa ou kapab jwenn aksè souvan pi vit. Epi pafwa ou ka vini ak yon fonksyon hash vrèman bon. Menm si ou gen nan fatra yon ti jan nan memwa, ou ta ka, tout bon, kapab jwenn bagay sa yo vit epi yo pa tankou move jan linear. Se konsa, nan kout, te gen pa nesesèman avèk nenpòt nan yon sèl sa yo oswa menm de bagay espesifik nou te kap chèche. Vrèman anyen konvenkan kòm yon tèt ak inconvénient jeneralman kenbe je nou an. ROB BOWDEN: Se konsa, pou tèt la, nou te fè sa pa aksepte sou pwòp li yo "pi vit." Ou te di yon bagay sou li. Menm si ou di teyorikman pi vit, nou te konnen ke ou kalite konprann ke li nan 0 a 1. Apre sa, tab hash, nan teyori, se pa 0 a 1. Mansyone anyen sou ègzekutabl jeneralman te resevwa ou pwen yo. Men, "pi vit," pi fò nan solisyon yo yo te sou tablo a gwo ke yo te ap eseye yo te objektivman pi dousman pase solisyon ki te tab hash. Se konsa, pi vit nan ak tèt li se pa reyèlman vre. DAVID J. Malan: Dom de Dom Dom. Mwen se pwobableman youn nan sèlman ki reyalize sa a, se ki jan ki nan sipoze moun lan, dwa? ROB BOWDEN: mwen te gen aktyèlman okenn lide. DAVID J. Malan: Li te fè sans nan tèt mwen. ROB BOWDEN: m ap fè yon sèl sa a. OK. Se konsa, sa a se youn nan kote ou te gen fè desen dyagram lan menm jan ak ou ka te wè nan egzamen sot pase yo. Se konsa, kite yo jis gade nan sa a. Se konsa, ki soti nan ne an HTML, nou gen de timoun yo, tèt la ak kò a. Se konsa, nou branch - tèt ansanm ak tout kò. Tèt la gen yon tag tit. Se konsa, nou gen yon tit. Koulye a, bagay la yon sèl yon anpil moun ki bliye se ke sa yo nœuds tèks yo eleman ki nan pyebwa sa a. Se konsa, isit la nou rive fè desen yo kòm oval diferansye yo soti nan sa yo kalite nœuds. Men, avi yo isit la tou nou gen tèt, presegondè, ak anba pral yo te fini tèks nœuds. Se konsa, bliye sa yo te yon ti jan nan yon erè komen. Kò a gen twa timoun - twa div sa yo. Se konsa, div, div, div ak Lè sa a, tèks la ne timoun nan tout sa yo div. Sa a bèl anpil li pou sa kesyon yo. DAVID J. Malan: Lè li nan vo anyen, menm si nou pa rete sou sa yo detay nan tan an nou depanse nan JavaScript, ki lòd la fè, nan reyalite, pwoblèm teknikman. Se konsa, si tèt vini anvan kò nou nan la HTML, Lè sa a, li ta dwe parèt devan yo a rete nan kò nou nan Dom a vrè. Sa l 'se, an jeneral, jis Fyi, yon bagay yo rele lòd dokiman, kote li fè sa matyè. Men, si ou te mete ann aplikasyon yon analizeur, yon pwogram ki li HTML nan bilding moute pye bwa a nan memwa, yo dwe onèt, sa a, se entwitif pwobableman sa ou fè de tout fason - anwo jouk anba, gòch a dwat. ROB BOWDEN: Kesyon sou sa? Èske mwen ta dwe fè youn nan pwochen? DAVID J. Malan: Asire w. ROB BOWDEN: OK. Se konsa, sa a se tanpon la anvahi atak kesyon. Bagay la prensipal yo rekonèt isit la se, byen, ki jan ta ka yon Trick lènmi pwogram sa a nan egzekite abitrè Kòd? Se konsa, argv1, liy la lòd premye agiman nan pwogram sa a, ki kapab abitrèman lontan. Men, isit la nou ap lè l sèvi avèk manki a kapab bay kopi argv1, ki isit la se ba. Nou ap pase li kòm agiman an. Se konsa, li la pran sou ba a non. Se konsa, nou ap memcpying ba nan zòn de defans sa a c. Konbyen bytes yo nou kopye? Oke sepandan anpil bytes ba k ap pase nan dwe itilize, longè a nan ki agiman. Men, c se sèlman 12 bytes lajè. Se konsa, si nou tape yon agiman liy lòd sa a, se pi long pase 12 bytes, nou ale nan debòde sa a patikilye tanpon. Koulye a, ki jan ta ka yon lènmi jwe fent la pwogram nan egzekite abitrè Kòd? Se konsa, sonje ke isit la prensipal ap rele foo. Se konsa, Lè sa a, apèl prensipal foo. Se pou yo desine sa a. Se konsa, nou gen chemine nou an. Apre sa, prensipal gen yon ankadreman chemine nan pati anba a. Nan kèk pwen, apèl nan prensipal foo. Oke, imedyatman, apèl nan prensipal foo. Se konsa, foo vin pwòp li yo ankadreman chemine. Koulye a, nan kèk pwen, foo ki pral retounen. , L 'al retounen foo, nou bezwen konnen nan sa ki liy nan Kòd andedan nan nou prensipal yo te yo nan lòd yo konnen ki kote nou ta dwe rezime nan prensipal la. Nou ka rele foo soti nan yon antye pakèt moun sou diferan kote. Ki jan nou fè konnen ki kote yo retounen? Oke, nou bezwen nan magazen ki yon kote. Se konsa, yon kote dwa alantou isit la, nou sere kote nou ta dwe retounen nan yon fwa foo retounen. Lè sa a se adrès la retounen. Se konsa, kouman yon lènmi ta ka pran avantaj sa a se lefèt ke tanpon sa a c estoke, se pou yo di, dwa isit la se c. Se konsa, nou te gen 12 bytes pou c. Sa a se c. Lè sa a se bag chemine foo la. Se konsa, si itilizatè a move antre nan plis bytes pase 12 oswa yo antre nan yon lòd liy agiman sa a, se pi long pase 12 karaktè, Lè sa a, nou pral debòde tanpon sa a. Nou ka kenbe prale. Apre sa, nan kèk pwen, n 'al jwenn lwen ase ke nou kòmanse ranplasan adrès sa a tounen-an. Se konsa, yon fwa nou recouvrir adrès la retounen, sa vle di ke lè foo retounen, nou retounen nan kote a move itilizatè ap di li nan pa tou sa valè li te antre nan, pa kèlkeswa sa karaktè itilizatè a te antre nan. Se konsa, si itilizatè a move se ke yo te patikilyèman entelijan, li ka gen sa a retounen nan yon kote nan printDef la fonksyon oswa yon kote nan malok la fonksyon, jis nenpòt kote abitrè. Men, menm plis entelijan se sa ki si li gen itilizatè a retounen nan dwa isit la. Lè sa a, ou kòmanse egzekite sa yo kòm liy nan kòd. Se konsa, nan pwen sa, itilizatè a kapab antre nan kèlkeswa sa li vle nan rejyon sa a. Apre sa, li gen kontwòl konplè sou pwogram ou an. Kesyon sou sa? Se konsa, nan pwochen kesyon an se konplè a reimplementation nan foo nan yon fason ke li nan pa gen okenn ankò ki frajil yo. Se konsa, gen nan yon koup nan fason ou ta ka te fè sa a. Nou toujou gen c sèlman yo te longè 12. Ou te kapab te chanje sa a kòm yon pati nan solisyon ou. Nou menm tou nou te ajoute yon chèk fè asire w ke bar pa t 'nil. Menm si ou pa t 'bezwen ke pou tout kredi. Se konsa, nou ap tcheke premye a longè fil la ba. Si li la pi gran pase 12, Lè sa a, pa aktyèlman fè kopi a. Se konsa, sa a, se yon fason nan repare-l. Yon lòt fason nan repare-l se olye pou yo li te gen c sèlman gen yon longè 12, genyen li gen longè strlèn (ba). Yon lòt fason nan repare-l se ki aktyèlman jis retounen. Se konsa, si ou te fèk sot debarase m de tout sa a, si ou te fèk efase tout liy nan Kòd, ou ta gen vinn tout kredi, depi fonksyon sa a pa aktyèlman akonpli anyen. Li kopye liy lan lòd agiman nan kèk etalaj nan ankadreman chemine lokal li yo. Lè sa a, bagay la ap retounen. Apre sa, tou sa li akonpli se ale. Se konsa, retounen te tou yon ase fason pou trape tout kredi. DAVID J. Malan: Pa byen Lespri Bondye a nan kesyon an, men ki akseptab pou chak nan SPEC Sepandan. ROB BOWDEN: Kesyon sou nenpòt nan sa? Bagay la yon sèl ke ou omwen bezwen yo te konpile kòd. Se konsa, menm si teknikman ou pa frajil si Kòd ou pa fè sa konpile, nou pa t 'resevwa sa a. Pa gen kesyon? OK. DAVID J. Malan: ou vle yo di tit sa a? ROB BOWDEN: No DAVID J. Malan: Se konsa, nan yon sèl sa a, sa a te swa bon nouvèl oswa move nouvèl. Sa a se literalman menm pwoblèm nan kòm egzamen an premye. Apre sa, li prèske menm bagay la tou pwoblèm kòm pset1. Men, li te fè espre senplifye yo dwe yon piramid ki pi senp, yon sèl ki ka rezoud ak yon yon ti kras ki pi senp iterasyon. E reyèlman, ki sa ki nou te resevwa nan isit la pa t 'konsa anpil lojik la, paske pwobableman, pa pwen sa a, w ap pi alèz pase ou te nan semèn youn ki gen pou pasan oswa poukisa pasan, men vrèman toumante apa ki ou se yon ti kras konfòtab ak nan nosyon ki PHP se pa sèlman sou sa ki pwogram. Li ka aktyèlman dwe itilize kòm yon lang yo ekri pwogram liy lòd. Ak tout bon, se sa ki nou te ap eseye trase atansyon ou a. Sa a se yon pwogram PHP liy lòd. Se konsa, C Kòd isit la, pandan y ap kòrèk nan C, pa korije pou PHP. Men, kòd la vrèman se menm bagay la. Si ou konpare solisyon yo yo te pou egzamen 0 kont egzamen 1, w ap jwenn ki li prèske ki idantik yo, eksepte pou kèk siy dola ak pou la absans nan yon kalite done. An patikilye, si nou pran yon gade isit la, ou pral wè ke nou repňte, nan ka sa ka, ki soti nan 1 moute a 7. Nou te kapab te fè sa 0 endèks. Men pafwa, mwen panse ke li jis mantalman pi fasil yo reflechi sou bagay sa yo nan 1 rive nan 7. Si ou vle yon blòk, lè sa a de blòk, Lè sa a, twa, Lè sa a, dot, dot, dot sèt moun. Nou te j yo te initialisé nan 1 ak Lè sa a konte sou jiska mwen. Ak tout bagay isit la se otreman ki idantik. Men, merite pou yo nòt yo yon koup la bagay sa yo. Nou ba ou de liy sa yo, sa a premye yon sèl, goofily yo te rele tankou yon kaz pou byen file Bang. Apre sa, ki jis presize chemen an, nan katab, nan ki yon pwogram yo ka te jwenn ke ou vle itilize ka esplike nou rèv sa a ranpli. Lè sa a, liy lan apre sa, nan kou, vle di antre nan mòd PHP. Apre sa, liy lan nan pati anba a trè vle di mòd sòti PHP. Lè sa a travay, an jeneral, ak entèprete lang yo. Li nan kalite anmèdan si ou ekri yon pwogram nan yon dosye rele foo.php. Lè sa a, itilizatè ou gen jis sonje, OK, nan kouri pwogram sa a, mwen gen tape "foo.php espas php." Kalite nan anmèdan si pa gen anyen lòt bagay. Apre sa, li tou devwale ke pwogram ou an ki ekri nan PHP, ki se pa tout ki limine pou itilizatè a. Se konsa, ou ka retire php la. Tout ansanm sonje soti nan konferans. Epi ou ka aktyèlman fè. / Foo si ou te chmodded li pa fè li ègzèkutabl. Se konsa, ta chmod yon + x foo te fè sa. Men, si nou menm tou nou ajoute kaz la isit la. Men, reyèlman, te pwoblèm nan ap resevwa nan enprime soti yon bagay tankou sa a. Pa gen HTML, pa gen okenn C-Kòd sètènman, sèlman kèk PHP. Se konsa, Milo Lè sa a, retounen nan pwoblèm 25. Ak nan 25, ou te ba yo sa ki annapre yo Kòd chapant, ki te yon trè senp paj entènèt. Ak pati nan juicy HTML-ki gen bon konprann te desann isit la, kote nou gen andedan nan kò a yon fòm ki gen inik ID nan entrain andedan nan yo ki te de entrain, yon sèl ak yon lide sou non, yon sèl ak yon lide sou bouton. Premye bèt la te tèks kalite, nan dezyèm nan kalite soumèt. Se konsa, nou te ban nou, aktyèlman, plis engredyan pase ou bezwen, jis pou ou nèg te gen opsyon ak ki yo rezoud pwoblèm sa a. Ou pa entèdi bezwen tout kat idantite ki gen sa yo. Men, li pèmèt ou rezoud li nan diferan fason. Apre sa, moute nan tèt la, remake ke objektif la se te deklanche yon fenèt tankou sa a - Hello, Milo! - an pòp moute nan navigatè a lè l sèvi avèk super senp la, si pa lèd, alèt fonksyon. Se konsa, finalman, sa a klou desann concept yon jan kanmenm tande pou soumèt nan fòm kliyan-bò a , Pa sèvè-bò lanmè a, yon jan kanmenm reponn a ki soumèt pa arachman valè a ki itilizatè a tape nan nan jaden an Non, ak Lè sa a, montre li nan kò a nan yon alèt. Se konsa, yon fason ou ka fè sa se ak jQuery, ki sanble yon ti kras syntactically konplitché nan premye. Ou ka fè sa ak pi bon kalite Kòd Dom - document.getelement pa ID. Men, kite a pran yon gade nan vèsyon sa-a. Mwen gen yon koup la enpòtan liy an premye. Se konsa, yon sèl, nou gen liy sa a, ki se ki idantik ak sa ou te ka wè nan, mwen kwè, form2.html nan klas nan semèn 9. Lè sa a se jis di li: egzekite Kòd ki anba la a lè dokiman an se pare. Sa a se enpòtan sèlman paske Paj HTML yo li anwo jouk anba, gòch a dwat. Se poutèt sa, si ou eseye fè yon bagay nan Kòd moute isit la nan kèk Dom eleman, gen kèk tag HTML, ki nan desann isit la, ou ap fè li twò bonè, paske sa a gen pa menm te li nan memwa. Se konsa, lè li di document.ready sa a liy, n ap di yo: isit la nan kèk kòd, navigatè. Men, pa egzekite sa a jouk tout la dokiman se pare, se sa ki Dom la pye bwa ki egziste nan memwa. Sa a se yon sèl yon ti kras plis senp, si syntactically yon ti jan diferan, kote m ap di, gen tan pwan eleman ki HTML ki gen inik idantifyan se entrain. Sa a ki sa tag a hash vle di, ID a inik. Lè sa a, m ap rele. Soumèt. Se konsa,. Soumèt isit la se yon fonksyon, otreman li te ye kòm yon metòd, ki nan andedan nan objè a sou-men la kite bò gen pou m 'pa t' mete aksan sou. Se konsa, si ou panse a entrain kòm yon objè nan memwa - ak tout bon li ye. Li se yon ne nan yon pye bwa - . Soumèt vle di lè fòm sa a ak ID sa a se soumèt, egzekite Kòd sa a. Mwen pa pran swen sa non an nan la fonksyon se mwen egzekite. Se konsa, isit la mwen lè l sèvi avèk, tankou anvan, sa ki nan rele fonksyon an LAMBDA oswa yon anonim fonksyon. Li pa nan tout entelektyèlman enteresan lòt pase li pa gen okenn non, ki se amann si w ap sèlman janm ale nan rele li yon fwa. Ak andedan la tout mwen te aktyèlman okipe soumèt a nan fòm nan. M 'premye deklare yon varyab rele valè. Lè sa a, ki sa ki efè a nan sa a make pòsyon isit la kounye a? Ki sa ki ki fè nan yon wo nivo pou mwen? ODYANS: Li vin valè a ki la itilizatè pa t 'nan HTML ki anba a. Li vin ke ID ak Lè sa a, jwenn valè a nan li. DAVID J. Malan: Egzakteman. Li bèn ne a, ki gen inik idantifyan se non. Li vin valè a ladan l ', ki se, prezimableman, ki sa ki itilizatè a tape l 'oswa tèt li. Lè sa a, li magazen ki nan la varyab yo rele valè. Kòm yon sou kote, ou ta ka genyen tou fè sa yon ti jan diferan. Totalman akseptab pa fè yon bagay valè manti var vin document.getElementById. Lè sa a se poutèt sa li yon ti kras fatigan pa sèvi ak jQuery. "Non" valè.. Se konsa, totalman akseptab. Fason diferan fè sa. jQuery jis gen tandans ka yon ti kras plis somèr ak definitivman pi popilè nan mitan pwogramasyon. Koulye a, m ap fè yon ti jan nan yon saniti tcheke, paske se nan pwoblèm nan deklarasyon nou klèman di, si nan itilizatè pa gen ankò tape li oswa li non, pa montre yon alèt. Men, ou ka tcheke pou sa, pa jis tcheke pou fisèl la vid pou yon quote-unquote si gen nan pa gen anyen aktyèlman la. Men, si li pa egal a quote-unquote, Mwen vle rele alèt. Ak pati nan enteresan isit la se ke nou ap lè l sèvi avèk operatè a plis, ki fè sa nan JavaScript? Anchene. Se konsa, li tankou PHPs dot operatè. Menm lide, yon ti kras diferan sentaks. Apre sa, mwen jis kreye fisèl la ki ou te wè sou piki a ekran - Bonjou, se konsa ak sa. Lè sa a, dènye detay a se sa a. Poukisa pou m 'tounen fo andedan nan fonksyon sa a anonim? ODYANS: Gen nan pa gen valè. Ou mete l 'nan fòm. Li jis di, si valè se pa egal a vid, Lè sa a, fè li. Te gen yon vid ki nan ke founi. DAVID J. Malan: OK. Atansyon menm si. Genyen pa gen yon lòt isit la. Epi ki fo retounen se deyò nan si a kondisyon. Se konsa, sa a make liy, retounen fo, ègzekutra pa gen pwoblèm sa lè se fòm nan soumèt. Ki sa ki retounen fo andedan nan sa a evènman Handler, menm jan sa yo rele li, evènman an nan kesyon yo te soumèt? ODYANS: Paske li sèlman k ap pase yon fwa. DAVID J. Malan: Se sèlman k ap pase yon fwa. Pa byen. Yeah? ODYANS: Li anpeche fòm nan soti nan soumèt ak konpòtman an default, ki ta fè paj Reload la. DAVID J. Malan: Egzakteman. Se konsa, mwen twòp chaj tèm nan soumèt isit la, paske m ap di, fòm la se yo te soumèt. Men, jan ou sijere, li la aktyèlman pa te soumèt nan chemen an HTTP vre. Lè ou klike Soumèt, paske nan nou an onSubmit Handler, nou entèrsèptan ki fòm soumèt se konsa yo pale. Nou ap Lè sa a, fè bagay nou ak JavaScript kòd. Men, mwen fè espre retounen fo, paske sa m 'pa vle rive yon fann dezyèm pita se pou tout fòm nan tèt li dwe soumèt nan entènèt la sèvè ak valè kle pè pa chanje URL la yo dwe yon bagay tankou q = chat oswa kèlkeswa sa nou te fè sa, pou egzanp, nan klas la. Mwen pa vle sa rive fèt, paske pa gen okenn tande sèvè pou sa a fòme soumèt. Li nan piman fè l 'nan JavaScript kòd. Ak Se poutèt sa mwen pa t 'menm gen yon aksyon atribi sou fòm a, paske mwen pa gen entansyon pou sa a nan tout tan tout tan ale nan sèvè a. Se konsa, li k ap soumèt. Men, nou ap entèrsèptan ki fòm soumèt yo ak nan anpeche default la konpòtman, ki se yo aktyèlman ale tout wout la nan sèvè a. ODYANS: Se konsa, kenbe li kliyan-kòt. DAVID J. Malan: Kenbe li kliyan-kòt. Egzakteman dwat. Next moute te mwen oh miskl. ROB BOWDEN: OK. Se konsa, kesyon sa a premye te jeneralman ki graj pou moun yo. Menm si yo menm ki pita te ale pi byen. Se konsa, ou te gen yo chwazi done ki kòrèk la kalite pou tou de nan kolòn sa yo. Apre sa, tou de nan sa yo fè gen kèk bagay sou moun ki fè chwa a difisil. Se konsa, Int pa t 'yon valab tape pou yon nimewo pou. Rezon ki fè la ke yo te yon kont 12-chif nimewo, yon Int se pa gwo ase yo magazen chif total. Se konsa, ta yon chwa ki valab yo te yon gwo int si ou rive konnen sa. Te kapab yon lòt chwa yo te yon jaden Char longè 12. Se konsa, swa nan tout sa yo ta yo te travay. Int pa t 'vle. Koulye a, balans, panse tounen nan pset7. Se konsa, nou espesyalman itilize desimal magazen valè a de aksyon oswa - DAVID J. Malan: Lajan Kach. ROB BOWDEN: Lajan Kach. Nou itilize desimal nan magazen kantite lajan an nan lajan kach ki itilizatè a kounye a gen. Se konsa, rezon ki fè yo nou fè sa se paske, sonje, flote. Genyen k ap flote pwen nan presizyon. Li pa ka jisteman magazen lajan kach la valè tankou nou vle isit la. Se konsa, desimal se kapab jisteman magazen yon bagay yo, di, de kote desimal. Se poutèt sa balans, nou ta renmen li yo dwe desimal epi yo pa flote. DAVID J. Malan: Epi tou, tou, menm si li ta ka yo te entelijan nan lòt kontèks yo panse, petèt sa a se yon chans pou yon Int. Mwen pral jis kenbe tras nan bagay sa yo nan peni. Paske nou klèman te montre default la valè pou yo te 100.00, ki vle di li te kapab jis pou yon Int. Ak yon lòt sibtilite twò ak nimewo te ke li pa te vle di yo dwe yon kesyon Trick. Men, sonje ke yon Int nan miskl, tankou nan C, omwen nan la aparèy, se 32-ti jan. Apre sa, menm si nou pa atann ou a konnen egzakteman ki jan anpil chif ki vle di, sonje ke nimewo a pi gwo ou ka reprezante potansyèlman ak yon kantite 32-bit se apeprè ki sa? Ki nonb nou toujou di nou fè? 2 a nan 32, ki se sa ki mal? Ou pa oblije konnen jisteman. Men, apeprè se itil nan lavi yo. Li nan apeprè 4 milya de dola. Se konsa, nou te di ke yon fwa kèk. Mwen konnen mwen te di ke yon fwa kèk. Epi li se apeprè 4 milya de dola. Epi sa a, yon règ bon nan gwo pous yo konnen. Si ou gen 8 Bits, 256 se nimewo a majik. Si ou gen 32 Bits, 4 milya dola bay oswa pran. Se konsa, si ou jis ekri 4 milya de dola, ou pral wè ke li nan mwens chif pase 12, ki vle di sa a, se klèman pa ase ekspresyon pran yon 12-chif nimewo kont. ROB BOWDEN: OK. Se konsa, yo menm ki lòt ale pi byen. Se konsa, ta kwè ke bank la enpoze yon benefis chak mwa $ 20 frè antretyen sou tout kont. Ak sa SQL sijè rechèch t 'kapab bank la retire $ 20 nan tout konte, menm si li rezilta yo nan kèk balans negatif? Se konsa, fondamantalman, gen kat prensipal kalite demann - insert, chwazi, aktyalizasyon, ak efase. Se konsa, sa nou kwè ke nou ap pwal itilize isit la? Mete ajou. Se konsa, kite a pran yon gade. Se konsa, isit la nou ap à. Ki sa ki tab yo nou à kont? Se konsa, à kont. Lè sa a, sentaks la di, ki sa ki nan kont yo nou à? Oke, nou ap mete balans egal a la valè aktyèl la nan balans mwens 20. Se konsa, sa a pral mete tout ranje nan kont, soustraksyon $ 20 ki soti nan balans lan. DAVID J. Malan: A erè komen isit la, menm si nou pafwa te padonnen li, te gen aktyèlman Kòd PHP isit la rele fonksyon an rechèch oswa mete quotes alantou tout bagay ki pa t 'bezwen yo dwe la. ROB BOWDEN: Sonje ke miskl se yon lang apa soti nan PHP. Nou rive yo dwe ekri miskl nan PHP. Apre sa, PHP se lè sa a voye li sou nan sèvè a miskl. Men, ou pa bezwen PHP yo nan lòd yo kominike avèk yon sèvè miskl. DAVID J. Malan: Egzakteman. Se konsa, pa gen okenn varyab ak siy dola yo ta dwe nan yon kontèks sa a. Li ka jis fè tout moun nan matematik la nan baz done nan tèt li. ROB BOWDEN: OK. Se konsa, yon sèl kap vini an. Èske sa se youn nan pwochen? Yeah. Se konsa, avèk sa ki SQL sijè rechèch t 'kapab bank la rekipere chif yo kont nan li yo pi rich kliyan, moun ki gen balans ki pi konsekan pase 1,000? Se konsa, ki nan kat kalite prensipal nou pral vle isit la? Chwazi. Se konsa, nou vle chwazi. Ki sa nou vle chwazi? Ki sa ki kolòn nou vle chwazi? Nou pral espesyalman vle yo ka chwazi nimewo. Men, si ou di zetwal, nou tou aksepte ke. Se konsa, chwazi nimewo soti nan sa ki tab? Kont. Lè sa a, kondisyon an nou vle? Ki kote balans ki pi konsekan pase 1,000. Nou menm tou nou aksepte pi gwo pase oswa egal. Dènye yon sèl. Ak sa SQL sijè rechèch t 'kapab bank la fèmen, dir, efase tout kont ki gen yon balans nan $ 0? Se konsa, ki nan kat la yo se nou pral vle itilize? Efase. Se konsa, sentaks la pou sa? Efase soti nan sa ki tab? Kont. Lè sa a, kondisyon an ki te sou nou vle efase - kote balans egal zewo. Se konsa, efase tout ranje soti nan kont kote balans lan se zewo. Kesyon sou nenpòt nan sa yo? Vle nat? DAVID J. Malan: gid keu. Se konsa, nan yon sèl sa a, nou te ban nou yon ti jan abitye estrikti ke nou eksplore yon ti jan nan klas ansanm ak nan strukt, ki te yon done estrikti ki gen rapò nan Lespri Bondye. Diferans lan menm si ak yon keu se ke nou te yon jan kanmenm sonje ki te an de sou devan keu a, nan gwo pati pou nou te kapab fè plis itilizasyon efikas memwa nan, nan omwen si nou te lè l sèvi avèk yon etalaj. Paske sonje, si nou gen yon etalaj, si, pou egzanp, sa a se devan nan keu a, si mwen jwenn nan keu la isit la, ak Lè sa a, yon moun vin nan liy dèyè do m ', dèyè do m', dèyè do m ', epi yon sèl moun ki etap soti nan liy, ou te kapab, kòm nou te wè kèk nan moun nou yo volontè nan klas yo, yo gen tout moun chanjman nan fason sa. Men, an jeneral, li te gen tout moun fè yon bagay ki pa sèvi ak la pi byen nan tan nan yon pwogram, paske li vle di ou algorithm ap kouri nan sa ki tan kouri asenptotik? Li nan lineyè. Apre sa, mwen santi tankou sa a, se kalite estipid. Si moun nan nan pwochen liy se pwochen an moun ki nan sipoze ale nan nan magazen yo, yo pa tout gen pou avanse pou pi ansanm. Jis kite moun sa a ap rache lè lè a va rive, pou egzanp. Se konsa, nou ka sove yon ti jan nan tan la. Se konsa, fè sa menm si, ki vle di ke tèt la nan keu la oswa nan devan keu la se ale nan progresivman deplase pi fon ak pi fon nan etalaj la ak evantyèlman ta ka aktyèlman vlope toutotou si n ap sèvi ak yon etalaj nan magazen pèp la nan keu sa a. Se konsa, ou ka prèske panse a nan etalaj kòm yon done sikilè estrikti nan sans sa. Se konsa, ou yon jan kanmenm te kenbe tras nan la gwosè nan li oswa vrèman nan fen li ak Lè sa a, kote nan konmansman an nan li ye. Se konsa, nou pwopoze ke ou deklare yon sèl keu sa yo, rele li q, jis yon lèt. Lè sa a, nou pwopoze ke devan an dwe initialisé a zewo epi ki gwosè a dwe initialisé a zewo. Se konsa, kounye a, pa gen anyen andedan nan ki keu. Apre sa, nou mande w yo fini nan aplikasyon nan enqueue anba a nan yon fason ke fonksyon an ajoute n nan fen q ak Lè sa a, retounen vre. Men, si q se konplè ou oswa ou negatif, nan fonksyon yo ta dwe olye pou retounen bay manti. Lèfini, nou te ban nou yon koup nan sipozisyon. Men, yo pa ap reyèlman fonksyonèl ki enpòtan, jis ki bouleen ki egziste, paske, teknikman, bouleen fè sa ki pa egziste nan C sof si ou genyen ladan yo yon sèten dosye header. Se konsa, ki te jis asire w ke gen yo te pa gen okenn se sa a yon Trick kesyon jan de bagay konsa. Se konsa, enqueue, nou pwopoze nan echantiyon an solisyon aplike jan sa a. Youn, nou premye tcheke fasilite a, pandye byen ba yo fwi yo. Si keu a se tout oswa nimewo a ki w ap eseye insert ki pi piti a pase zewo, ki nou te di nan la spesifikasyon nan pwoblèm nan ta dwe pa dwe pèmèt, paske nou sèlman vle valè ki pa negatif, Lè sa a, ou ta dwe jis retounen fo imedyatman. Se konsa, kèk relativman fasil erè tcheke. Si menm si ou vle ajoute ke aktyèl nimewo, ou te fè yon ti jan nan panse isit la. Lè sa a se kote li nan yon ti kras anmèdan mantalman, paske ou gen figi konnen kouman okipe antourant. Men, jèm la nan lide an isit la sa a, se nan enterè ak nou se ke antourant souvan implique modilè aritmetik ak operatè a mod, bò lanmè a pousan, kote ou ka ale soti nan yon valè pi gwo tounen nan zewo ak Lè sa a, youn ak de ak twa ak Lè sa a, tounen alantou a zewo, youn ak de ak twa ak pou fè ankò e ankò. Se konsa, wout la nou pwopoze fè sa se ke nou vle endèks nan la etalaj rele nimewo ki kote nonm antye nou an bay manti. Men, yo rive, nou premye vle fè tou sa gwosè a nan keu la se men Lè sa a, ajoute nan tou sa la devan lis la se. Apre sa, efè a nan se sa ki mete nou nan pozisyon nan dwa nan keu la ak Pa sipoze premye moun ki nan liy se nan kòmansman an, ki li oswa li absoliman ta ka si nou yo tou te chanje tout moun. Men, nou ap jis kreye travay pou tèt nou si nou te pran ki chemen an patikilye. Se konsa, nou kapab kenbe l 'relativman senp. Nou dwe sonje ke nou jis te ajoute yon Int keu la. Lè sa a, nou jis retounen vre. Pandan se tan, nan dequeue, nou te mande ou fè sa ki annapre yo. Aplike li nan yon fason ke li dequeues, se sa ki siprime epi retounen, Int la an de sou devan keu. Pou retire Int a, li sifizan bliye l '. Ou pa bezwen pase sou desizyon ti jan li yo. Se konsa, li la toujou aktyèlman la. Jis tankou done sou yon kondwi difisil, nou ap jis inyore reyalite a ke li nan kounye a gen. Men, si q se vid, nou ta dwe olye pou retounen negatif 1. Se konsa, sa a santi l abitrè. Poukisa retounen negatif 1 olye pou yo fo? Yeah. ODYANS: K ap estoke pozitif valè. Depi ou sèlman magazen valè pozitif nan q an, negatif se yon erè. DAVID J. Malan: OK, vre. Se konsa, paske n ap sèlman estoke pozitif valè oswa zewo, Lè sa a, li la amann yo retounen yon valè negatif kòm yon Sentinel valè, yon senbòl espesyal. Men, w ap reekri istwa a, paske rezon ki fè yo nou ap sèlman retounen valè ki pa negatif se paske nou vle gen yon valè Sentinel. Se konsa, plis espesyalman, poukisa pa jis retounen fo nan ka nan erè? Yeah. ODYANS: Ou te echwe retounen yon nonb antye relatif. DAVID J. Malan: Egzakteman. Lè sa a se kote C vin bèl kontrent. Si w ap di w ap ale retounen yon Int, ou te gen retounen yon Int. Ou pa ka jwenn anpenpan epi yo kòmanse retounen yon bouleen oswa yon flote oswa yon fisèl oswa yon bagay tankou sa. Koulye a, pandan se tan, JavaScript ak PHP ak kèk lòt lang kapab, an reyalite, ou retounen diferan kalite ak valè yo. Apre sa, ki ka aktyèlman ap itil, kote ou kapab retounen antye pozitif, zewo, antye negatif, oswa ki fo oswa ki nil jouk yo rive nan siyifi erè. Men, nou pa genyen ki adaptabilite nan C. Se konsa, avèk dequeue, ki sa nou pwopoze fè se - ROB BOWDEN: Ou ka retounen fo. Se yon bagay ki fo se hash defini fo a zewo. Se konsa, si ou retounen fo, w ap retounen zewo. Apre sa, zewo se yon bagay ki valab nan keu nou an, Lè nou konsidere ke negatif 1 se pa si fo ki te pase yo dwe negatif 1. Men, ou pa ta dwe menm bezwen konnen sa. DAVID J. Malan: Sa se poutèt sa mwen pa t 'di li. ROB BOWDEN: Men, li te pa vre ke ou pa kapab retounen fo. DAVID J. Malan: Asire w. Se konsa, dequeue, remake nou aksepte anile kòm agiman li yo. Epi sa a, paske nou pa ap pase anyen pous Nou jis vle retire eleman ki an de sou devan keu la. Se konsa, kouman ta ka nou ale sou fè sa a? Oke, an premye, se pou yo fè sa rapid saniti chèk la. Si gwosè a keu se 0, gen nan pa gen travay yo dwe fè. Retounen negatif 1. Fè. Se konsa, sa a, se yon liy kèk nan pwogram m 'yo. Se konsa, sèlman kat liy rete. Se konsa, isit la mwen deside dekrwasans gwosè a. Apre sa, decrementing gwosè a efektivman vle di ke mwen bliye yon bagay ki nan la. Men, mwen menm tou nou gen nan aktyalizasyon kote devan an nan nimewo ki yo ye. Se konsa, yo fè sa, mwen bezwen fè de bagay sa yo. M 'premye bezwen sonje ki sa nimewo a se an de sou devan keu a, paske mwen bezwen retounen ke bagay. Se konsa, mwen pa vle aksidantèlman bliye sou li e Lè sa a, recouvrir li. Mwen jis ale nan sonje nan yon Int. Epi, koulye a, mwen vle mete q.front yo dwe q.front +1. Se konsa, si sa a se te premye moun ki nan liy, koulye a, mwen vle fè plis 1 a pwen nan moun nan nan pwochen liy. Men, mwen gen okipe ki antourant. Men, si kapasite se yon konstan mondyal, ki k ap pase pou pou pèmèt mwen asire w ke jan mwen lonje dwèt sou moun nan anpil sot pase a nan liy, operasyon an modulo pral pote m 'tounen nan zewo a nan devan keu la. Apre sa, ki okipe zafè antourant la isit la. Lè sa a, mwen ale nan retounen n. Koulye a, estrikteman pale, mwen pa t ' gen deklare n. Mwen pa t 'gen tan pwan li epi sere li pou yon ti tan, paske valè a se toujou la. Se konsa, mwen te kapab jis fè aritmetik nan dwa retounen tèt la ansyen nan keu la. Men, mwen jis te santi ke sa a te pi klè ki aktyèlman gen tan pwan Int a, mete l ' nan n, ak Lè sa a, retounen ke pou dedomajman pou klè nan men pa entèdi sa nesesè. Psst. Yo ap tout pronounceable nan tèt mwen. ROB BOWDEN: Se konsa, premye kesyon ki pwoblèm nan pye bwa binè. Se konsa, premye kesyon an se, nou ap bay nimewo sa yo. Apre sa, nou vle yon jan kanmenm insert yo nan nœuds sa yo sa yo ke li se yon ki valid binè pyebwa rechèch la. Se konsa, bagay la yon sèl sonje sou pye bwa rechèch binè se ke li pa jis ke bagay la sou bò goch la ki pi piti a ak bagay nan dwa a gen plis pouvwa. Li bezwen yo dwe ki pye bwa an tout antye yo bò gòch la ki pi piti a, ak pye bwa a tout antye sou bò dwat la ki pi gwo. Se konsa, si mwen mete 34 isit la nan tèt la, ak Lè sa a, Mwen mete 20 isit la, se konsa sa a, se valab pou byen lwen, paske 34 Moute bò isit. 20 ki pral bò gòch la. Se konsa, sa a, se mwens. Men, mwen pa ka Lè sa a, mete 59 isit la, paske menm si 59 se sou bò dwat la nan 20, li la toujou sou bò gòch la nan 34. Se konsa, avèk ki contrainte nan tèt ou, nan fason pi fasil nan pwobableman rezoud sa a pwoblèm se jis sòt nan nimewo sa yo - Se konsa, 20, 34, 36, 52, 59, 106. Lè sa a, insert sa yo de gòch a dwat. Se konsa, 20 ale isit la. 34 ale isit la. 36 ale isit la. 52, 59, 106. Apre sa, nou menm tou nou te kapab kalkile avèk kèk branche nan ak ka akonpli, oh, rete tann, mwen pa gen nimewo ase ranpli sa a nan plis pase isit la. Se konsa, mwen bezwen reshift sa mwen wout nòt a pwal. Men, remake ke nan twa final la, si w ap li de goch a dwat, li se nan ogmante lòd. Se konsa, koulye a, nou vle di nou sa a konstri a pwal pou la nœuds nan pyebwa sa a. Se konsa, sa nou bezwen nan yon pye bwa binè? Se konsa, nou gen yon valè de kalite Int, se konsa kèk valè Int. Mwen pa konnen sa nou te rele li nan solisyon an - int n. Nou bezwen yon konsèy ak timoun nan bò gòch ak yon konsèy ak pitit la dwat. Se konsa, li pral gade tankou sa a. Apre sa, li pral aktyèlman gade anvan lè t '-lye a doubl lis bagay, se konsa avi - Mwen pral fè yo woulo liv tout nan fason tounen desann nan pwoblèm 11. Se konsa, remake li sanble ki idantik ak sa a, eksepte nou jis rive yo rele sa yo non diferan. Nou toujou gen yon nonb antye relatif valè ak de pwent. Se jis ke olye pou yo trete a endikasyon kòm montre bagay la pwochen ak bagay la anvan, n ap trete endikasyon yo nan pwen nan yon timoun gòch ak pitit dwat. OK. Se konsa, sa a, se ne konstri nou an. Epi, koulye a, fonksyon a sèlman nou bezwen aplike pou sa a se Traverse, ki nou vle ale sou pye bwa, enprime nan soti valè yo nan pye bwa a nan lòd. Se konsa, kap isit la, nou ta vle ekri an lèt detache soti 20, 34, 36, 52, 59, ak 106. Ki jan nou fè sa? Se konsa, li trè menm jan an. Si ou te wè nan egzamen ki sot pase a pwoblèm nan ke ou te vle ekri ak lèt ​​detache soti pye bwa an antye ak vigil nan ant tout bagay, li te aktyèlman menm pi fasil pase sa. Se konsa, isit la se solisyon an. Sa te siyifikativman pi fasil si nou te fè sa recursive. Mwen pa konnen si nenpòt moun te eseye fè li iterativman. Men, anvan, nou gen ka baz nou an. E si rasin lan se nil? Lè sa a, nou ap jis ale nan retounen. Nou pa vle ekri ak lèt ​​detache anyen. Lòt Bagay nou pral travèse recursive desann. Enprime tout subtree gòch la. Se konsa, ekri ak lèt ​​detache tout bagay mwens pase valè aktyèl m 'yo. Lè sa a, mwen pral ekri ak lèt ​​detache tèt mwen. Lè sa a, mwen pral recurse desann m ' tout subtree dwa, se konsa tout bagay pi gran pase valè m 'yo. Lè sa a se ale nan ekri ak lèt ​​detache soti tout bagay nan lòd. Kesyon sou ki jan sa a aktyèlman akonpli sa? ODYANS: Mwen gen yon kesyon sou [fèbl] la. ROB BOWDEN: Se konsa, yon sèl fason pou apwoche nenpòt pwoblèm repetitif se jis panse sou li renmen ou gen yo panse sou tout kwen ka yo. Se konsa, konsidere ke nou vle ekri ak lèt ​​detache tout pyebwa sa a. Se konsa, tout nou pral konsantre sou se ne sa a an patikilye - 36. Apèl yo repetitif, nou pretann moun ki jis travay. Se konsa, isit la, sa a rele repetitif Traverse, nou san yo pa menm panse sou li, jis travès bò gòch la twa, imajine ki deja simagri 20 ak 34 pou nou. Lè sa a, lè nou evantyèlman recursive rele Traverse sou la dwat, ki pral kòrèkteman ekri an lèt detache 52, 59, ak 106 pou nou. Se konsa, bay yo ke sa a kapab ekri an lèt detache 20, 34, ak lòt la ka enprime 52, 59, 108, tout sa nou bezwen pou kapab fè se ekri ak lèt ​​detache ourself an nan mitan sa a. Se konsa, enprime soti tout bagay anvan nou. Enprime ourself, se konsa ekri ak lèt ​​detache nan ne aktyèl 36, printf regilye, ak Lè sa a, ekri ak lèt ​​detache tout bagay apre nou. DAVID J. Malan: Sa a se kote rkursyon vin vrèman bèl. Li nan kwasans sa a etonan konfyans nan Bondye kote ou fè ti jan a mwendr nan travay yo. Lè sa a, ou kite yon moun lòt moun fè rès la. Apre sa, ke yon lòt moun se, iwonilman, ou. Se konsa, pou pwen brownie grav, si ou woulo liv moute sou kesyon yo - ROB BOWDEN: Sou kesyon yo? DAVID J. Malan: Apre sa, desann yon ti chif yo, nenpòt moun ki konnen ki kote nimewo sa yo soti? ROB BOWDEN: Mwen gen literalman gen okenn lide. DAVID J. Malan: Yo parèt nan tout egzamen an. ODYANS: Eske yo se moun nimewo yo menm? DAVID J. Malan: nimewo sa yo. Yon ti kras Pak ze. Se konsa, pou moun nan nou ap gade sou entènèt la nan lakay ou, si ou ka di nou via yon imel bay heads@CS50.net sa ki siyifikasyon an nan renouvlab sis nimewo sa yo, se nan tout egzamen 1, n ap douch ou avèk atansyon etonan nan final la konferans ak yon boul estrès. Bèl, sibtil. ROB BOWDEN: Nenpòt kesyon dènye sou anyen sou egzamen an?