ZAMYLA Chan: Hej, ĉiuj. Bonvenon al sekcio. Hodiaŭ estas nur tuj estos ĉiu kvizo revizii vian kvizon merkrede. Mi esperas ke ĉiuj memoras ke ili havas kvizon merkrede. Kaj se vi ne, nu, Nun vi rememoron. Do merkredo certigi vin montri supren por klaso aŭ aliaj tranoktejoj kiel necesa. Vi uloj tuj estos imponega. Ĝi tuj estos granda. Kaj Mi faros ĉion kion mi povas por helpi prepari vin hodiaŭ por via kvizo nun. Kaj ankaŭ en kazo vi ne scias, estas kompreneble ampleksa revizio kunsido hodiaŭ je la 7a horo Nordokcidenta laboratorioj ĉambro B103. Vi povas vidi min denove kiel aldonaĵo al Mi kondukos parto de tiu revizio kunsido ankaŭ. Do, se vi ne povas akiri sufiĉe de mi Nun vi povas revenos nokte. Bone, do unue aĵojn unua. Nur iuj kvizo konsiletoj antaŭ ni efektive plonĝi al recenzoj. Tiel kiel kun ajna ekzameno praktiko definitive helpi vin. Ekzistas ekzamenoj de la estinteco ses aŭ sep jaroj sur tie, tiel ke estas multe da praktiko materialo por vi uloj havas. Kaj fakte, hodiaŭ estas vere ĝuste tuj iros super ajna temoj ke vi infanoj havas demandojn tiel kiel laborante tra praktiko problemoj el kvizo nulo. Do mi ĵetu supren kvizo nulo de lasta jaro en ĉi tie, kaj ni povas labori tra ajna problemoj ke vi uloj volus. Tiel praktiki. Vi tuj komencos fari tion hodiaŭ. Kodo sur papero. Do jes, se ĉiuj povus reale eliri papero, tio estos granda ĉar vi estas ne tuj havas vian komputilon sur la ekzamenon kaj skribi el kodon mane estas ofte multe pli malfacilaj ol vi povus atendi. Vi kutimis simple vidante ĝin kaj tajpi ĝin, kaj vi havas vian tradukilo helpi vin kiam vi havas erarojn, sed vi ne havas tiun en la ekzameno. Do ĝi estas vere grava por reale povi skribi la kodon, kaj ke muskolo memoro de faranta ĝi mane estos vere helpi vin. Do ni ricevas iom proksime. Estas lundo. Via ekzameno estas merkrede. Sed se vi havas tempon, definitive prenas unu el la ekzamenoj de la pasinta jaro aŭ la jaro antaŭe sub la tempon limigo de horo kaj duona. Nur elbatos horo kaj duono de tempo, sidu vin malsupren, kaj ĝuste labori tra la problemoj kvazaŭ vi estus reale portante ĝin, ĉar oni de la plej granda aferojn kiujn ni aŭdas pri la kvizojn estas ke ili estas tre longaj. Estas multe da materialo. Estas multaj de demandoj, kaj la plej multaj homoj ne povas fini. Mi scias, ke mi tute ne finis miaj kvizojn kiam mi prenis la klaso. En tiu noto, kiel malpli komforta sekcio, kompreni ke ĉi tiu kurso estas intencita por provizi por homoj de ĉiuj niveloj. La tuta kialo ni havi vin fendi malpli komfortaj, ie inter, kaj pli komfortaj estas speco de fari ĝin pli justa. Kaj se vi estas malpli komforta, estas Ne necesas por _se_ akiri ĉion. Kiel se vi fartas ĉio, vi versxajne esti en la plej komforta sekcio. Do evidente ne batis vin sur nefarebla se vi ne povas fini la ekzameno. Prenu min, mi ne faris tion. Mi ankoraŭ concentrador. Mi ankoraŭ helpas instrui la kurson. Vi estos bone. Bone. Kaj laste, akiri iom dormi. Evidente kun iu ekzameno ni ĉiam diras tion. Cramming la nokto antaŭe kaj ne akiranta ajnan dormon faras not-- eble se tiu laboras por vi, iru por ĝi. Sed por la vasta plimulto de homoj, iom da dormo, lasanta via cerbo ripozo kaj rekuperi antaŭ venado por la ekzameno Mi vere helpi vin. Ankaŭ estos preskaŭ farigxos dolĉaĵoj en la ekzameno do vi devas rigardi antaŭen por. Vi uloj iras fari grandajn. Ĝi tuj estos bone. Kaj nun en la sekvanta horo kaj duono mi provos kaj Prep vin kiel bona kiel mi povas. Do mi havas diapozitivoj de esence ĉiuj sekcioj ĝis nun. Mi ne tuj trairos ĉiuj ili ĉar tio estas ne farebla en horo kaj duono tiel kiel laborante tra praktiko problemoj. Do anstataŭe mi havas lerta de temoj. Tio estas cxiuj aferoj ke ni povus Quiz vin. Se estas io kiu vere elsaltas ke vi volas iri, por ke vi deziras min transiru koncepte, Mi povas provi doni superrigardon tie. Aŭ se vi volas salti bone al faranta praktiko problemoj kune, ni povas fari tion. Ĝi dependas de vi uloj. Tie ne estas kiu multaj de vi. Do estas kion vi infanoj ŝatas fari. Mi volas esti la plej helpema al vi uloj. Do mi lasos vin nur rigardu. Publiko: Unu afero estas La abako ke ni observas dirante pri la pilo kaj la ruino. Nur la tuta ideo malantaŭ tion kaj kion tio signifas. ZAMYLA Chan: Yeah, OK. Ĉi estas la tuta vojo al la Fine, do lasu min rulumi tra. Publiko: Ni ne devas faras ĝin nun, sed kion ajn. ZAMYLA Chan: CXu anything-- ĉi tiu. Estas tiu speco de nebula por homoj? Publiko: Yeah, Mi dua tion. Kaj ni povas ankaŭ fari buffer overflow? ZAMYLA Chan: Buffer overflow? OK. Do buffer overflow estas bela facila ĝuste paroli. Ĝi estas esence buffers vi pensas iu tabelo memoro kiun vi havas, ĉu ne? Ni kutime parolas pri buffer overflow kiam vi ne kontrolanta kiom La uzanto estas funkciigo, dekstra? Kaj la ideo kun buffer overflow estas ili metas en malproksimaj tro da datumoj por la spaco ke vi destinis por ili, ĉu? Do se vi diras, donu Min iu mesaĝo, ni estas supozante ke ili tuj donu ni racian longo mesaĝo. Eble kelkaj linioj, whatnot. Do ni ne kontrolu. Anstataŭe ili nutru nin en tuta libro estas mesaĝo, kaj ĝi superfluas la kvanto de spaco kiun ni destinis por tio. Kaj kio okazas estas eble anstataŭigi lokoj kiujn ĝi ne supozis. Do mi scias Profesoro Malan diris ion pri buffer overflow atakoj. Do tie estas kie la uzanto volo enigo iu amasa kvanto de datumoj en la esperoj ke li overwrites pasinteco la fino de via kuseneto kaj anstataŭas something-- Mi scivolas Mi ni havas tiuj diapozitivoj tien. Mi ne kredas ke ni havas tiuj diapozitivoj tien. Sed esence li overwrites certa parto de memoro kiu permesas aliri al partoj de via komputilo ke vi ne volis kutime havas aliron. Biggest aferon kun buffer overflow estas nur kompreni ke okazas kiam vi ne estas kontrolanta kiom via uzanto funkciigo. Kiam vi ne estas speco de defendon kontraŭ tiu. Kaj ĉe ĝia plej simpla afero, estas via uzanto inputting amasa kvanto de datumoj en provo anstataŭigi kelkajn sekureco parto de via memoro. Jen ĉio estas. Do ĉi tie, pilo kaj ruino. Esence ĉiu tio estas nur prezento de memoro kaj kie ajn estas stokitaj. Tio estas vere ia oni nur bezonas scii. La plej grandaj aferoj vi bezonas scii estas that-- mi volas vidi se tie estas better-- tie. Do tio estas la stako tie. Do stako devas vidi kun ĉiuj viaj funkcioj ke vi vokas en ajna donita tempo. Kaj kio estas grave memori pafante de lasta semajno kun malloc estas ke vi ne vere havas necesan kontrolon super ĝi. Ĉio dependas de kiam iuj funkcioj ekzekuti. Kaj kiam ili ekzekuti, ili havas kio nomiĝas pilo kadroj kiuj iras tien. Do ĉiaj okazas sen reala enigo de vi. Vi skribas vian programon, kaj vi lasu ĝin funkcii, kaj la stako ia prenas Zorgi pri kiel ĝi bezonas. Do se en ĉefaj vi vokas kubo, kiu estos pasis supren tie. Ĝi devos krei kadron. Sed estas nenio vi eksplicite fari krei tiu stako escepte skribi funkcion por komenci kun, OK? Kio speco de sub via kontrolo estas la monteto kun malloc. Do kiam ajn vi malloc ion, vi prenas memoro de la monteto. Kaj kiu estas memoro, kiun vi havi, pro manko de pli bona vorto, eksplicita kontrolon super, ĉar memoru kun malloc ĝi estas esence ĝis vi diros alimaniere. Por tiuj el vi, kiuj spektis sekcio pasintsemajne, ĝi estas tie, ĝis vi diros al foriras. Estos tie se alie diris ne. Do la monteto estu ĝuste ion vi povas pensi pri kiel memoro ke vi havas kontrolon super. Kaj tiuj estas nur la du malsamaj grandaj aĵoj. Krom tio, vi ne devus havi maltrankviligi tro multe pri stako kaj ruino demandojn aŭ tipe pli simple se vi havas lokajn parametroj aŭ funkcio estus, sur la stako aŭ la monteto. Evidente en tiu kazo estus la stako. Se vi mallocing ion, kie estas tiu venanta de? La havaĵo. Se vi rigardas al la praktiko kvizojn, tiuj Ĝenerale estas la tipo de demandoj ke ili havas. Vi ne devas maltrankviligi tro multe pri tio. Vi akiras en pli eksplicite pri stako kaj ruino poste aŭ en aliaj CS klasoj. Do nur havi specon de ĝenerala ideo de kio tiu estas Estos bone, ke mi nur ia trapasis. Ajna aliaj temoj? Jes? Publiko: Ĉu vi iros trans pointers denove vere rapide? ZAMYLA Chan: Pointers? Ĉu vi volas koncepta ĉefrigardo de punteros aŭ ĉu vi praktikas kun montriloj? Publiko: Speco de kiel la sintakso. ZAMYLA Chan: La sintakso? Yeah. OK, ni ricevas tie. Yeah, do tio estas simple speco de io kiam vi havas rekursie funkcio, ĉiufoje ke rekursia funkcio estas nomis lin simple aldonas aliajn stako. Pli malpli ekzemplo de kiel vi faras ne vere havos kontrolon super la kadrojn sur via pilo. OK, punteros. Bone, do krei punteros. Memori, nur tajpu stelo. Do kio tipo de datumoj kiuj vi tuj estos indikante. Do tiu estus puntero al int. Tiu estus puntero al Char. Tiu estus montrilon al kaleŝego. Do ĝi estas esence ajn vi volas esti indikante, stelo estas kiel vi deklarus la montrilo, OK? Sed tiam evidente ricevas iom malfacila kiam oni havas montrilon aŭ vi havos star ajn. Do la granda diferenco kiam vi declaring-- do ni havos some-- tiel tio prenas iom int stelo. Do tio estas iu montrilo flamo x al int, dekstra? Do memoru kion tiu faras Estas ĉi nomas la sistemon x. Kaj tiu tuj havi iun adreson, dekstra? Do ni simple diri ĉi estas nia adreso. Pointers teni adresoj. Do kio estas tiu diras estas ke en tiu situo, ni stokante la int. Do alia maniero ni povas pensi jen tio ĉi estas kelkaj int. Ni ne vere atribuis ĝin al io ankoraŭ, sed estas nur int. Do ni povas fari estas se ni star x egalas 5, tiu iĝas 5, OK? Tiu diras iri al kiom x estas fingromontrante, do iru al la adreso kaj fari ĝin egala al 5. Do ni atribuos 5 al tiu adreso, dekstra? Kaj tiam, se vi faros tion, tio donas al ni la adreson de. Jen estas la adreso de operatoro. Do kio estas la adreso de x? Ni ne scias. Ni ne atribuis adreson. Ni povus diri ke estas some-- nun ni donis ĝi adreson, do la adreso estas 4. Kaj efektive, se ni iros tra ion kiel tiu, speco de kion ni faris. Do laborante tra here-- Mi trovas helpas se vi elingigos punteros. Se estas en via ekzameno, mi tre rekomendas desegnante skatoloj. Do tiu unua, int x egalas 5. Tiu nur signifas ke ni havas iom Loko en memoro kiu estas 5, dekstra? Kaj nia tablo tie diras nin ke estas ĉe adreso 0x04. Kaj tiam ni kreu iun montrilo. Do ni rompi ĉi malsupren unuope. Do ĉi tio kreas iun boksi al int, dekstra? Ĝi tuj tenos iuj adreson de ĝi. Do tio estas iu montrilo. Kaj ĉi kreto estas vere malgranda. Do ni havas iun montrilon tie. Kaj nia tablo diras nin kiu estas adreso 0x08. Malvarmeta. Kaj ni asignanta ĝin al la adreso de x. Memoru, punteros teni adresoj, OK? Do se ni volas teni x, ni havas uzi la adreson operatoro, kiu Estas la ampersand, por ricevi la adreson de x, kiu en ĉi tiu kazo, 0x04. Kaj tiam se ni havas kelkaj int kopion, tiu simple kreas alian skatolon kiu okazigas int nomita kopion. Kaj se ni atribuas ĝin al this-- tial tiu estas referenco ĝin. Do diras iri al cuantos adreso montrilo veras. Pointer tenas ĉi adreso, do ni irus tien, kaj ni diru, bone, kio estas en gxi? Ĝi estas 5. Do kopion iĝas 5. Sencon? Kio se mi provis atribui tion nur Pointer. Kion faras puntero reale egalaj? Estus simple estu kio ajn montrilo enhavas, dekstra? Kaj tiam se mi faris cxi tiu? Kio estus kopio esti nun? Publiko: 0x08. ZAMYLA Chan: Jes, la adreso de nia montrilo. Ajna parto de tiu, kiu bezonas esti re-klarigi? Malvarmeta. Estas definitive tre amuza problemo en kvizo oni ke ni povas over ke donas al vi pli da praktiko. La infanoj de la lasta semajno povas diri al vi ne estis malbona. Ŝablonaj tutan letero, kaj ĉiuj faris grandan. OK, do tio trarigardo de sintakso de punteros. Biggest afero kompreni kiel krei ilin fari referenco, kaj adreson de, OK? Malvarmeta. Ajna aliaj temoj antaŭe ni plonĝi en praktiko. Ankaŭ se ni iras tra la praktiko problemoj kaj ne estas io, kion vi volas refresher, ni povas fari tion ankaŭ. Ĉu vi havas ion? Publiko: structs kaj ligitaj lertaj. ZAMYLA Chan: structs kaj ligitaj lertaj, OK. Do structs. Ni vere iras super cxi tiu nokto ankaŭ. OK, do structs. Structs estas esence nur vojo por vi teni multnombraj valoroj de malsamaj tipoj. Do kun tabelo ni estas constricted unu datumtipo. Nia tabelo ĉu devas esti nur numerojn, aŭ simple estu signojn, aŭ esti simple flosoj. Sed eble vi bezonas enhavas pli ol tio. Eble vi bezonas hold-- se vi parolas pri studentaj, vi tuj havos sian domon, siajn ID nombro, ilia aĝo, loĝloko, dekstra? Kaj ĉiuj el tiuj estas diversajn tipojn. Do vi ne povas stoki tiuj ĉiuj en tabelo. Do, kion vi povas fari, estas vi kreu struct, kiu vi povas pensi pri kiel via propra persona datumtipo. Do anstataŭ simple havanta ints kaj anstataŭ simple havanta kaleŝegoj, Vi povas havi tipon studento ke havas ĉiujn el tiuj kampoj en ĝi. Do kiel ni pravalorizi nia structs is-- reale ekde mia skribo estas terura, ni tuj transiri al tajpadon. Woo. OK, do se ni volas krei struct-- Mi nur tuj ĝin tie. Ignori la en ĉefa ajn kiun ni uzos poste. Do kiel vi volas fari estas kun typedef struct. Kaj ni simple nomas tiun studenton ĉar tio estas kion mi uzas. OK, do typedef signifas ke vi estas difinanta nova tipo, OK? Ekzistas nuancoj en kiam vi faras nur struct kontre oni typedef struct. Por iuj celoj, vi uloj estas nur tuj supozi ke ili estas proksimume la sama kaj nur uzi typedef struct nun. Ĝi devos fariĝi vojon pli evidenta en via sekva P starigis kio tiuj diferencoj estas, sed mi ne opinias ke vi bezonas maltrankviligi ke ĝuste nun. Mi farus multe pli vi scipovas krei, konsenti ŝi, kaj asigni [? valoro. ?] Nova tipo de struct kaj Ni nomas gxin studento. Do post ni faritaj krei tion, por ĉiuj celoj, vi havos tipo nomita studento. Kaj vi povas pensi pri tio kiel tipo kiel int aŭ kaleŝego, aux char. Estas nur alia tipo, OK? Do en ĉi tiu, kion ni havas? Ni havos eble nomo. Do eble ni volas ĉenon nomo. Kaj ni havas eble la int tio IRU. Kaj ni havas la alian tio telefonnumero. Kaj ni some-- ni vidu. Kio alia eble ni havas? Ni havos kelkajn kordo ĉe sia domo. Cxio ke studento havas. Do ĉi tio kreas struct nun. Do kiom eble ni kreu studento? Se ni havas iun variablo kiu estas tuj parolos pri Walker tie, do ni have-- ni ĵus tuj nomas tiun Walker. Li bezonas tipo. Kio estas via tipo? Publiko: Student. ZAMYLA Chan: Student. Tiel ĉi nur kreas objekton vi povas pensi, ke ĝi havas ĉiujn tiujn aferojn. Vi ĵus kreis walker studento. Do nun ni bezonas por povi atribui ĉiuj tiuj, dekstra? Do ĉu iu memoras kiom ni aliron ene de struct? Publiko: Periodo. ZAMYLA Chan: Periodo Ĝuste. Do se ni volis atribui li nomon, kiu povis fari tion. Evidente ĉi tio be-- tiu parto tie estus esti ene ĉefa, do efektive lasu min fari tion. Anoncu tion supre ĉefa tiom ke ni povas uzi ĝin ene ĉefa. Do nun mi volas tion fari ID, kaj ni nur faru iun tie, kaj tiam ni devos atribui domon. Bam. Malvarmeta. Do nun ni iam bezonas aliro ion poste on-- eble we-- se ni iam bezonas aliri ion, ni nur faros int kopion ID. Kaj mi volas kopii Walker ID en tiun. Kiel povus mi faru? Vi bezonos por aliri ene la walker struct al [? iri al tiu?] [? E?]. Kaj la sama maniero kiun ni atribuis ĝin tie, kiel eble ni aliri ĝin kiam ni volas doni tiun valoron por io alia? Publiko: Walker.id. ZAMYLA Chan: Yeah, precize. Do tio estas preskaux cxiuj vi bezonas scii por structs. Vi nur bezonas pensi ilin kiel alia variablo. Esence krei viajn propra variablo tipo, OK? Vi uzu ĝin deklari variabloj iamaniere. Jen walker ankoraŭ variablo. Ĝi nur havas tipon studento nun anstataŭe de tipo int aŭ tipo kordoj, aŭ tipo char. Se estis facilan manieron paroli pri structs, estas laŭvorte nur krei vian propran datumtipo kiu permesas kolekti ĉiuj tiuj malsamaj speco de datumoj kune. Ĉu tio havas sencon? OK. Tio kaj alirante per punktoj. Preskaux cxiuj vi bezonas. OK, kien mia PowerPoint iras? Jen ĝi. Nu tio estas stranga. Aha. OK, malvarmeta. Ajna alia aĵoj aŭ ĉu ni voli estri praktiki? Ekzercu? OK. Awesome. Mi iras al eliri ĉi. Se en ajna punkto dum praktiko demandoj Mi feliĉas revamp kaj trairu tion. Do mi havas kvizo nulo ĝis tie. Se vi uloj volas tiri ĝin sur via komputilo, nur ŝatus preni kvin minutojn por trarigardi. Eble elektos iun supro demandojn vi volas iri. Se vi uloj ne povas decidi, ni simple malrapide komencas labori per ili, sed mi certas ke tie tuj estos iuj demandojn kiujn vi aparte avidaj paroli kaj havi mi laboras per vi cxiuj. Do simple iru antaŭen kaj preni kvin minutoj. Rulumu tra. Kaj jen estas la kvizo de 2013. Publiko: Zero? ZAMYLA Chan: Yeah, kvizo nulo. Ni ne faras kvizon unu ajxoj. Ni faros tion post kelkaj semajnoj. Ankaŭ por tiuj el vi, kiuj venis malfrue, havu dolĉaĵon, tiel do vi uloj volas bombono? Publiko: Certe. ZAMYLA Chan: Mi estas nur preterpasonta tie. Hej, se vi uloj tien Komence, oni akiras pli dolĉa. Ke estas bone. Ben, ĉu vi volas bombono? Vi volas iun el tiuj? Ekzistas ankaŭ Snickers se iu volas Snickers. Mi lasos gxin cxi tie kaj tie. Feel libera. Ĉu vi volas plu? Publiko: Ĉiuj starigis. Dankon. ZAMYLA Chan: Mi ricevis belan iom amaso tie komence. Vi ĉiuj alvenas al la kvizo kaj Mi alvenas al havi kvizon grading partio. Ĝi estas ĥaoso. 900 ekzamenojn. Ĝi tuj estos tiel amuza. Tuj estos granda. Mi estas sufiĉe certa ke tio estas unu de la plej granda bastono kunligon noktoj de la jaro. Ĉu iu faris kvizon nulo de lasta jaro tamen pro scivolemo? Publiko: Partoj el ĝi. ZAMYLA Chan: Partoj de ĝi, OK. Ĉu vi havas demandojn pri iu el ili? Publiko: mi jam iris al oficejo horoj. Dankon tamen. ZAMYLA Chan: Nu, mi esperas ĝi estas ankoraŭ ia helpema. Kiam vi iros al oficejo horoj por tio? Publiko: Mia TF havis ilin ĉiposttagmeze. ZAMYLA Chan: Oh. Kiu estas via TF? Publiko: Fred [? Wujaya?]. ZAMYLA Chan: Estas tiom multaj TFS. Tantos. Bone. Iu havas komenci ke mi povas jot malsupren ke ni volas labori pri? Mi supozas la punteros unu kun la tablo. Iri por ĝi. Publiko: Eble la ŝaltilo oni. ZAMYLA Chan: Do numero 12? Mi supozas numero 8 kaj 9 estas probable tiuj homoj volas iri. Publiko: Kaj 10 kaj 11. ZAMYLA Chan: Kaj vi uloj konas vi ricevas unu paĝon de notoj, dekstra? Publiko: Yeah, do kia estas ni rajtas meti sur tio. ZAMYLA Chan: Vi permesis meti ajn vi volas. Kaj ĝi povas esti tajpita. Kiom mi memoras, nia estis tajpita. Publiko: Vi povas fari reen kaj ambaŭ flankoj? ZAMYLA Chan: Yeah, ambaŭ flankoj. Do iun kiel la monteton kaj trans [? reen fino?] monteto, via kurado fojoj. Utila. Eble iom aferojn ĉirkaŭ punteros memorigi vin. Sintakso por aĵoj. Havante nur kiel skeleto programo povas esti súper utila. Mi scias ke mi ĉiam forgesas precize kion Mi supozis skribi por int main, ĉar mi ĉiam simple kopiu alglui el miaj antaŭaj P aro aŭ ĝi estas jam tie, do Mi neniam vere skribis tion, tiel havante kiu eblas súper utila. OK, do kial ne ni komenci kun numero 8 tiam? Bone. OK. Do konsideru la programo sube. Do evidente kiam ni vidas punteros, estas probable bona ideo komenci desegni, dekstra? Mi volas scii kie ĉiuj miaj grandaj pecoj de kreto iris. Tiu estas speco de ĝena. Do ni havas ĉi tie kelkajn swap funkcio ke tuj prenos en du montriloj. Do en ĉi tiu kazo, ili devus reale esti ŝaltanta aferojn kontre nia originala swap funkcio kiu prenis nur en kopioj. Do kio tuj faros is-- ni komencu kun ĉefaj, ĉar tio estas kie 1 estas. Do ni havas kelkajn int x 1. Ni havas kelkajn y tio egala al 2. Kaj tiam ni havas kelkajn swap ke tuj prenos tiujn. Kaj ni vidos, kion ni havas ĉi tie. Kaj en nia table-- Oh Boy. Kiamaniere mi povos fari tion? Mi tuj eltiros mian tablon super tie. Apenaŭ farante ĝin tie. Apenaŭ farante ĝin. 1, 2, 3, 4, 5, 6, 7. Kaj ili donos al ni, ke 1 estas 1, kaj 1 2. Malvarmeta. Awesome. Do 3. Kaj tie estas [? oni 1.?] Bone. Kaj tiam adreso de x estas 0x123. Kaj y estas Ox127. Malvarmeta. Bone. Mi volas ke vi infanoj laboras sur tiu por ĝuste like-- laboro sur ĝi kun la homoj ĉirkaŭ vi. Volonte mi ja diris, ke dum mi starigadon. Laboro sur ĝi. Provu kaj laboras sur ĝi per vin dum kelkaj minutoj, kaj tiam mi laboros sur ĝin kun vi. Ĉar la sola maniero vi estas vere lernos estas de faranta ĝin vi mem. Neniu maltrankviliĝas. Bonŝancon. OK, kial ne ni malrapide komenci labori tra tiu. Do ĉiuj ricevas post linio unu, x estas 1. Post linio du, x kaj y estas 1 kaj 2, dekstra? Malvarmeta. Do linio tri estas kie aferoj akiri interesajn kompreneble. Do kion ni faris ĉi tie Estas ni nun interŝanĝitaj. Ni diru, ke x kaj y havas tiuj punktoj, aŭ ili havas la adreson de x kaj y, dekstra? Do en ĉi tiu kazo, tri, Kio estas la valoro de? oni estis pasita en, estis donitaj la valoro de la adreso de x, dekstra? Publiko: 1? ZAMYLA Chan: Do ni aldonu ĝin al la x? Kio estas x adreso? Publiko: 0x123. ZAMYLA Chan: Ekzakte. Sed kio estas vere montrante? Se ni devis dereference a, kio valoro donas al ni. Publiko: 1. ZAMYLA Chan: estus donu al ni 1, ĉar kio ni diris iru ĉi adreso, diru al ni kio estas la valoro estas. Do kion devus esti B? Publiko: 0x127. ZAMYLA Chan: Ekzakte. Do estas la adreso de y. Kaj tiam kia [? dereference? ?] Publiko: 2. ZAMYLA Chan: OK, nun kvar. Ni diris unu estas equal-- bone nun ni farita int temp egalas al stelo de. Do kio ŝanĝas? Estas nur unu afero kiu ŝanĝu tie. Kio estas tio? Publiko: Temp. ZAMYLA Chan: La temp. Do ni povas reverki ĉiujn tiujn. Bona strategio por tiuj Estas nur decidi kion ŝanĝoj, ĉar plej ofte ekzistas nur unu afero estas tuj ŝanĝos je ĉiu punkto, OK? Do ni atribuis temp. Nun nia proksima punkto, kvin, ni faris stelon al egala star b. Do kio ŝanĝas nun? Publiko: Star a. ZAMYLA Chan: Star a, do ĉio alia restas la sama. Kaj kion star oni egala? Publiko: 2. ZAMYLA Chan: 2. Amindaj. Awesome. OK, kaj tiam ni nun komenci b estas egala al temp. Do la sola ŝanĝo estas stelo b. Ĉio alia restas la sama. Kaj kio estas stelo b egalas al nun? Kaj vi jam kompletigis la tablo. Ĉar nun fine, se ni diros x kaj y, ni scias, ke en cxi tiu point-- Ni scias, ke kiam ni ŝanĝis star unu al 2, kio faris estas ĝi diris OK, je alparoli 0x123 tie, ŝanĝu ĝin. Nun tio estis 2. Kaj tiam ĉe tiu punkto, Ni diris OK, iru al star b. Do iru al la adreso ĉe 0x127 kaj faros gxin 1. Do nun la fino, kiam ni fakte reveni por ĉefa, ni fakte havas x estas egala al 2 kaj y estas egala al 1. CXiu bona kun tio? OK, malvarmeta. Numero 9. Vi uloj laboras en tiu. Mi iras starigante estraro do ni povas desegni per ĝi. Estos ráfaga. La grandaj tabloj povas esti vere timiga, mi scias. Sed se vi simple prenas ilin unu vico ĉe tempo, ili ricevas multe malpli timiga. Bone. Do vi scias, ke tio havos trairinte ĉefa unua, ĉu ne? Inicializa x kaj y kaj tiam provas interŝanĝi ilin. Do eĉ swap estas supre, reala modo iras estas kiu ni iras tra ĉefa, kaj tiam ĝi estas vokante ĝis interŝangi, bone? Tiel ĉiuj scias tion. Do kion oni faras vin infanoj volas komenci kun? Ĉu iu vere certas pri unu el tiuj? Aŭ eĉ parte certa? Kial ni ne komencas kun x? Kion ni pensu x estas? Publiko: 1. ZAMYLA Chan: 1. Do kial estas 2. Kaj tio estas pro la granda distingo tie estas ke ni estas nur pasante kopioj en, dekstra? Ni ne pasi por referenco. Do eĉ fine de tiu programo x kaj y restis la samaj, ĉar ili estas nur kopioj en swap funkcio. Usonanoj ne ŝanĝos, dekstra? Do kio pri a, b, kaj temp? Publiko: a estas b. ZAMYLA Chan: a estas b. Do en ĉi tiu kazo, estis x, kiu estas 1, dekstra? Do jen, ni iru tra ĝi. Do je la komenco, kaj b estas 1 kaj 2 kaj nedifinita. Do origine temp ricevas atribuita al a, do temp estas 1. a estas egala al b, do ni preni 2 kaj b estas egala al temp. Nun ni preni 1. Publiko: En la antaŭa tio interŝanĝitaj ampersand x kaj ampersand kaj. Kion ekzakte tio signifas? ZAMYLA Chan: Do tio signifas ke vi preterpasas referenco. Do tio signifas ke vi estas reale pasante en la adresoj de kie x kaj y estas stokitaj. Publiko: Sed vi ne interŝanĝante la adreson. ZAMYLA Chan: Vi ne interŝanĝi adresojn. Vi interŝanĝante kio estas en ili. Kiel tio estas ĉe la adreso: kaj tio estas kial ĝi funkcias. Kontraŭ ĉi tiu programo tie kio vi faras estas vi krei kopiojn. Do vi havas x kaj y ke ekzistas kiel siajn proprajn variablojn el tie. Sed tiam kiam vi pasos ilin en swap, estas kvazaŭ vi kreas tiu tuta alia aro. Do vi neniam reale conmovedor x kaj y. Publiko: Se ampersand x kio estas je La adreso de x, kio star x esti? ZAMYLA Chan: Kaj simbolo x estas kio estas je La adreso de x, tiam star-- bone, en tiu kazo, x estas ne puntero. Publiko: Oh, OK. Do vi nur faros ĉar ne puntero. ZAMYLA Chan: Ĝuste. Vi nur povas fari stelo de iu kiu estas puntero. Eble vi povus fari ĝin al aferoj ne estas, sed la compilación ke vi fari frenezaj aferoj okazos. Kaj mi ne precize certa kio okazus. Vi povas ĉiam prenu la adreson de iu, sed vi ne povas dereference iu kiu ne estas montrilo. Se tio havas sencon, ke estas bonan distingon havi. Do ne tro malbone, ĉu? La tabloj estas espereble ricevas iomete malpli timiga. Bone. Ha, la amuzaj aĵoj. Do nun, skribante vian propran kodon. Do mi lasos vin infanoj laboras sur tiu dum proksimume kvar minutoj, kaj tiam ni povas paroli pri manieroj por alproksimigi ĝin. Bonvolu paroli al homoj ĉirkaŭ vi. Ankaŭ tio estas interesa. Estas kiel ĉiuj knabinoj sekcio nun. Bela ekscita. Krom Chang. Sed Chang ne estas vere parto de la sekcio. Awesome. Perfekta. Do mi donos al vi du aludoj. En la kazo kie vi havas pli ol unu signo, kie vi havas ion alian kiel 123 aŭ 1000 io, vi bezonas por povi maŝo tra kaj konverti ĉiun el tiuj. Do tie estas paro manieroj vi povas fari tion, sed vi definitive tuj havos a por buklo ie tie maŝo per ili, kiu estas speco de kiel la evidenta sinmalkaŝo kun eĉ se vi nomas strlen, kiu estas ia ŝatas ho eble vi volas uzi la longo de la kordo iel. Bone. Do kion vi uloj pensas povus esti unu el la unuaj aferoj kiujn ni volas fari? Ekzistas kelkaj kazoj tie ni bezonas klarigi, dekstra? Ĉu ni havos iun kiu estas nula. Kion ni havas? Kazoj. Nula. Ni havas la kazon kiu havas io alia ol 09, dekstra? Tiel diru havas literojn. Aŭ havas la kazon kiu estas valida. Tri kazoj pensi. Do kiu vi pensas povus esti la plej facila unu prizorgi antauxe? Publiko: Nulaj. ZAMYLA Chan: La kazo estas nula. Do kion ni faru ĉi tie? Publiko: [inaudible]. ZAMYLA Chan: Yeah. Kaj kion mi volas fari? Publiko: Reiru 0. ZAMYLA Chan: Ekzakte. Awesome. OK. Do nun kazon kiu havas literojn kaj la kazo ke ĝi estas valida. Ni povas reale prizorgas de tiu interne de unu buklo, OK? Do unu maniero fari it-- kio povus esti simpla maniero por kontroli se estas valida. Ni devus iri tra ĉiu litero kaj fari kion? Publiko: Kontrolu se estas in-- ZAMYLA Chan: Dekstra, vi povas kontroli se ĝi estas inter 0 kaj 9, dekstra? Kaj poste en la kazo ke ĝi estas valida, ni estas tuj finos ripetanta tra nia kordoj anyways, dekstra? Do kial ni ne provu kombini ilin en unu. Ni iras persisti tra el ŝnuro, kaj kiam ni fari tion, ni iras al la unua fari ĉekon por vidi se tiu letero aŭ se tiu karaktero estas valida. Se jes, ni tuj plenumos la operacion ke ni devas konverti ĝin. Alie gxi revenos 0, dekstra? Do antaŭ ol ni faras tion, ni verŝajne volas iun variablo ke ni povas reveni al la fino ke tuj estos nia reala valoro. Do ni tuj pravalorizi iu valoro al esti 0. Kaj tio estas precize kiel ni komencu. Do mi tuj forigi ĉi. Do kiel ni tuj persisti tra tiu ĉeno. Publiko: Por buklo. ZAMYLA Chan: A por buklo. Do kio estas nia por? Publiko: i estas 0. ZAMYLA Chan: Hmm. Sed kio estas ni ripetanta ĝis? Publiko: str longo de s. ZAMYLA Chan: OK, nun memoras ekzistas pli bona maniero. [Inaudible]. Publiko: Yeah, ni povas fari n egalas. ZAMYLA Chan: Ekzakte. Publiko: i estas malpli ol n. ZAMYLA Chan: kial estus ni volas fari tion? Ĉu vi memoras la kialon? Publiko: Ni devas _recalculate_ ĝin. ZAMYLA Chan: Becasue tiamaniere vi nur devos kalkuli strlen unufoje. Se vi faras i estas malpli ol strlen s, tio signifas ke recalcula longo ĉiufoje vi kuros la por buklo, kiu ne estas grandegaj kostoj de energio, sed estas bona praktiko por provi fari aferojn kiel tio iam. Krom se eble vi havas frenezan kordo ke estas ŝanĝanta ĉe ĉiu ripeto. Sed se ĝi estas resti la sama, savi ŝin. Bone. Kaj tiam i plus plus. Awesome. Ni estas survoje. Publiko: Vere rapide. Unue, do diru ni simple Ĉu mi malpli ol strlen de s, cxio grading nin je dezajno en ĉiuj aŭ nur praveco? Ili ne estas. Ni grading pri praveco por kvizojn kiom mi scias. Mi ne povas fari kompletan sur garantio, sed plejparte, vasta plimulto estas korekto, ĉar vi estas sub multa tempo limigo. Dezajno tipe signifas vi havos tempon por pensi pri la eleganteco de via situacio. OK, do ni ripetanta tra. Do ni bezonas aŭ kontroli al vidi se tiu karaktero estas valida aŭ se ni povas plenumi nian normala [? al i?] funkcio. Ni povas zorgi pri kio kiu estas en dua. Do kial ni ne take-- se iu povas pensi pri maniero por kontroli por vidi se ĉi tiu estas valida. Ni scias ke tuj estos iuj se kondiĉo, dekstra? Kaj memoru tio en ASCII, do kiel multobligita Ni vidos se ĝi ne estas 0,1, 2, 3, 4, 5, 6, 7, 8, aŭ 9. Publiko: Se alpha. ZAMYLA Chan: Do se alfa farus nur permesu al ni, se ĝi estas letero. Kaj se ili ne donos al ni simbolo, estas ankoraŭ ne tute tuj kontrolu. Do se vi elsxiros vian ASCII tablo, ni scias, ke 0 tra 9 Estas en unu segmento. Rakontu al mi la numerojn, ke ili konforma al, se eblas. Publiko: 40. ZAMYLA Chan: Do la gamo estas kiel 40-- Publiko: Eble. 48 al 57. Mi ne certas. ZAMYLA Chan: 40 al 57? Publiko: 48, mi opinias. ZAMYLA Chan: 48 al 57. Do ni scias ke tiuj ASCII symbols-- se la ASCII valoro ne estas inter 48 kaj 57, ne estas valida, dekstra? Do ni povus uzi tiun por nia avantaĝo eble? Kiel ni iras por akiri tiu letero, unue ekstere? Kiel ni aliru ĉi tiu gravulo? Publiko: s krampo i. ZAMYLA Chan: Hmm. Ĉar ni povas pensi kordoj kiel arrays, memoru. Do kion ni volas diri? Ni volas diri se ĉi is-- Mi donos al vi aludo. Ĝi estas malpli ol. Kion vi opinias bezonas esti malpli ol? Publiko: 57? ZAMYLA Chan: 47, dekstra? Sed ĝi ankaŭ reprezentas ke kiel vi 0 en sola [? spokoj?], ĉar tio la karaktero 0. Vi povus ankaŭ meti 47. Havante la ASCII tablo egale vi vidas, estas nur io Vi devus havi vian kvizon folio. Do se tio estas la kazo, se ĝi estas malpli ol 0-- ne nepre kaj. Ĝi estas nur ĉu tuj estos malpli ol aŭ pli granda ol 9. Do vi povas plenigi tiun lastan por mi? Do aŭ s de i estas kio, Rea? Publiko: Pli granda ol 9. ZAMYLA Chan: Tie. Ĉu tio havas sencon ĉiuj, kiel ni alvenis tie? Tiuj problemoj, ili estas kiel iam vi vidi la solvojn, estas kiel Ho, OK. Kaj tio estas kial praktiko helpos vin. OK, do ni revenos 0. Amindaj. Bone. Alie kion ni volas fari? Tiu estas la interesa parto kie ĝi estas iom pli kiel math kontre CS miaopinie. Ĉu iu havas ideon de kiel ni povus fari tion? Do la grava afero rimarkas estas la unua karaktero ni prenas tuj estos La plej alta celo ciferaj, dekstra? Do se ni rigardas konvertanta 123, la unuan fojon ni persisti Estas tuj esti 1, sed ni bezonas ke estos 100 por la fino, ĉu ne? Do unu afero vi povas fari estas ke kun cxiu posta cifera vi prenas, vi multigos vian valoro de 10, tiel ke kiam vi atingos la finon, ĉio estis moviĝis supren, ĉu ne? Do la unua fojo kiam vi kuros ĝin, vi havas 1 kiel via valoro. Duafoje vi kuros, vi multipliki via valoro de 10. Ĝi ĝisdatigos ĝin tiel ke ĝi estas nun 10 kaj vi aldonas en via proksima valoro. Kaj tiam vi multigos ke per 10 kaj aldoni en via proksima valoro. Kaj tio estas kial ili tion diras Estas multe pli kiel testado matematiko algoritmo kontre CS, sed mi divagar. Mi ne skribos la kvizojn. Do unu aferon ni povos fari estas ni diru valoro tempoj egalas 10. Do ĉi tio tuj ŝanĝos via cifera unufoje ĉiufoje. Kaj do ni nur volas aldoni. Ni volas aldoni en kio Ni ĵus ricevis, ĉu ne? Do kiel ni fakte igi nian ASCII en la kalkulon kiu reprezentas? Do ni scias ke 0 egalas al 47, dekstra? Do se 0 estas 47, kio estus ni devas fari, por ke al reale fari esti int de 0? Publiko: Estas 48. ZAMYLA Chan: 48? Pardonu. Ni devus subtrahi 48, dekstra? Memoru ASCII math? Ni povas trakti ilin nur kiel normalaj nombroj. Se vi traktas ilin kiel nombroj, ili fariĝis nombroj efike. Do se ni havas s de i, kiu ni diru en tiu kazo estas egala al 0. Do s de mi en ĉi tiu kazo estus la ASCII-- la ASCII int cxar estus 47. Do ni povus subtract-- aŭ 48. Vi povus fari tion, estas unu vojo. Ĉu iu scias pli bonan Tiel ni povus fari 48? Ni ĵus diris 0 is-- iru en la ASCII vi povus fari citaĵo 0. Tiel faras specon de fari senco kiel tio funkcias? Publiko: Ĉe tiu punkto, estas la valoro 0 ĉar eĉ se multipliki ĝin per 10, vi startanta ekster kun nulo, tiel devus esti ŝanĝita? ZAMYLA Chan: Do tiukaze vi volas multobligi gxin antaux vi aldonas, ĉar en tiu kazo, jes, estus Ankoraŭ be-- mia montrilo mankas. La valoro de ĉi tiu kazo, la unua tempo kuras estos nulo. Do vi simple aldonante en tiu unua cifero. Kio gravas estas la sekva fojo vi persisti, vi volas ŝanĝi ĝin antaux vi aldonas vian proksiman ciferon sur. Ĉu tio klarigas por vi? OK. Kelkfoje vi tuj ricevi strangajn pli mathy aĵoj. Se vi havus plimulton de tiu, vi ankoraŭ irante al get-- vi faros sufiĉe bone. Parta kredito estas tre granda afero en CS50 kvizojn. Do skribu kion vi scias. Se vi ĉion krom ĉi tie, vi estas ankoraŭ faros bonege la problemon. Ĉar vi montras, OK, mi preskaŭ scias. Mi scias ke mi devas persisti tra. Mi scias, kion mi bezonos por kontroli. Mi simple ne tute preni kiel konverti ĝin. Vi tuj estos bone. Jes, vi tuj perdi paro punktoj, sed vi ankoraŭ tuj akiri bonan numeron de punktoj por io kiel ke se vi estas mankas tiuj du linioj. Mi estus kiel OK, tiu persono scias kion ili faras. Math estas malmola. Do mi dirus ke vi estus bone. OK, do vi uloj pretaj provu strlen kun punteros nun ke vi uloj estas puntero mastrojn? Do mi lasos vin infanoj laboras sur tiu por iomete. Se iu bezonas refresher. Do vi volas uzi montrilon aritmetiko, kaj tiam, se s estas nula, via efektivigo turnigxu 0. Aĵoj kiel ĉi tiu vin vere feliĉa simple nomas strlen ĉe la fino de la tago. Mi pensas ĉi tiu povus esti iom facila ol la lasta, kiu estas bona. Mi donos al vi uloj alia minuto, kaj tiam ni devos labori tra ĝi. Kaj tiam ni preni por iri al ŝaltiloj. OK, preta infanoj? Eble iomete. Do mi donis al vi via du ebloj, ĉu ne? Ĉu kontroli nula returne 0 se ĝi estas, aŭ reale kalkuli la longon. Do kiu volas skribi kontroli nula? Iri por ĝi. Publiko: Se krampoj s egalas egalas nula reveno 0. ZAMYLA Chan: Lovely. Mi amas kiam duono via problemo Estas simple kontrolanta por nula. Mi konas vin infanoj lasta semajno mi estis kiel ĉeko nula laŭvorte ĉiufoje. OK, so-- Publiko: Se reveno 0 estas nur unu linio, ni ankoraŭ bezonas la krispa krampo? ZAMYLA Chan: Vi ne teknike bezonas ilin kiel longe vi estas kohera. Bonas praktiko simple akiri la kutimon uzi frizita krampoj, sed teknike ne. Vi ne bezonas ilin por unu linio. Ni nur emas rekomendi ĝin por homoj komenci programon. Tiel nun kio povus ni volas fari tie? Do nun ni scias ke nia linio estas valida. Ni deziras teni komputi la longo. Kio estas verŝajne la unua kion ni volas fari? Publiko: Kreu int tio la longeco. ZAMYLA Chan: Ekzakte. Publiko: Kaj ni volas agordi ĝin? ZAMYLA Chan: 0. Perfekta. Bone. Nu, kion volas fari? Tiu estas vere la plejparto de ĝi. Iri por ĝi. Publiko: Do ​​vi probable fari por buklo. Kaj poste ekde kiam vi nomas s vi atingi la adreson de la unua horo, vi devus komenci kun i egalas 0. Kaj tiam, kiel longe kiel x plus i ne reen slash 0. ZAMYLA Chan: La nula Terminator. Publiko: La nula Terminator. Poste vi aldonas al longeco. ZAMYLA Chan: Yeah. OK, do ebligas igi tiun en tre konkretaj kodon. Sed kiu estas la perfekta ideo. Tio estas ekzakte kion ni faras. Ni tuj estos ripetanta tra la montrilo. Do kion ni volas fari Estas anstataŭ int tie, ĉar ni estas Ne temas pri tio. Ni raportas al la komenco de tendeno, komenci esti iu adreso, dekstra? Do ni volas puntero. Do ni iras por havi iun char stelo, ĉar ĝi respondas al nia s, dekstra? Do ĉi tiu estas iam ni inicialización al la komenco de la ĉeno, OK? Do ni simple nomas i. Se ĝi estas la komenco de la linio, kio ĝi tuj atribuos? Ne 0. Ni volas, ke ĝi estu la komenci de nia kordoj. Kion reprezentas la komencon de nia kordoj donitan al ni? Publiko: Nur s. ZAMYLA Chan: s. Do ĉi tio kreas novajn puntero ke reprezentas la komencon de nia kordoj, OK? Alia maniero pensi pri ĝi similas jen nia tabelo. Tio estas nia kordoj, s. Do ni diru tiu estas la unuan lokon, kaj tio estas 0x4. 04. Tio estas nia s, kiu tenas la adreso. Kaj ni ĵus kreis alian nomitan i tiu nur temas pri la sama afero. Do oni tiel simple indikante al la komenco de nia kordoj. Tiu estas nur grafika reprezento. Do nun kion ni volas fari estas ni volas persisti nia kondiĉo por ripetanta tra nia kordoj. Nun butikumado. Got aĉetadi, knaboj. Ĉu ni volas konservi ĝisdatigo ĝis ni atingas la nula Terminator, dekstra? Do kio povus kiuj aspektas kiel? Ĉu ni volas ke i, aŭ ĉu ni volas stelo i estas la demando? Estas la nula terminator adreson aŭ io situas je adreso? Lokita je adreson, dekstra? Do ni bezonas dereference kiom estas ĉi tie, ĉar tio estas nur iuj adreso. Por reale preni ĝis la komenco ni bezonas dereference ĉi tiel ke ni reale preni kio estas en tiu unua loko. Do se ni faros star i, kio ni ne volas ke egala? Publiko: Reen oblikvo? ZAMYLA Chan: Tie. Ĉu tio havas sencon por ĉiuj? Ni devas iri en nia kordoj kaj certiĝu ke ne estas la fino. Kaj tiam ni povas simple ĝisdatigi kiel ĉi. Normala ĝisdatigo. Tiel longe kiel ili estas Met, kion ni devas fari? Publiko: Longa plus plus. ZAMYLA Chan: Hmm. Kaj tiam post la por buklo finiĝas, kion ni volas reveni? Publiko: Longitudo? ZAMYLA Chan: Longitudo. Tie vi iru. Evidente la karno de ĉi tiu komprenas tion por buklo. Ĉu ĉiuj ricevas kiel tio funkciis? Mi feliĉas transiru ĝin denove. Publiko: La dua parto, do la stelo i tie, jen la adreso de la first-- ZAMYLA Chan: Ne la adreson. Estas kio estas ĉe. Publiko: Tiu estas certe en tie. ZAMYLA Chan: Tio kio estas vere tie. Tial tiele komencis diri lasu mi faros ĉi bona. Do tio estas 0x04, kaj mi nur tuj diri Mi tuj faros ĉi mian nomon. OK. Jes, mi scias ke mi havas kvizo recenzo ĉinokte. Multa kvizo recenzo. Do ni diru tiu kordo Estas mia nomo, Allison. Iom senorda, sed estas tie. Kaj s reprezentas la situon de kie la kordoj komencas, tiel mi tuj faros ĉi real-- tiu estas la adreso de: kie la kordo startas, dekstra? Do kion ni faru ĉi tie estas ni volas uzi punteros persisti tra. Do ni kreu iun montrilon, i, kiu ankaŭ estas egala al la komenco de la kordo. Kaj ĉe ĉiu punkto, ni volas daŭre irante tra la tabelo tie ĝis ni trafis la nula Terminator. Do ni ĉiam volas kontroli kio estas ĉe ĉiu el tiuj adresoj. Do ni dereference i, por ke la unuan fojon ni faru ni diras, OK, kio estas je adreso 0x04? Ĝi estas al. OK, ni estas bonaj. Pliigo longo. Movu al la venonta unu. Do i-- memori punteros pliigo de la grandeco de kion ili iras indikante. Do en ĉi tiu kazo, ĉar estas oni char, ĝi devos ĝisdatigi al oni. Do nun ni iras por rigardi 5 kio signifas, ke ĝi okazas ĉi tie. Do diras OK, iru 0x05. Kio estas tie? Ĝi estas l. Kaj ĝi malebligos ke fari tion ĝis kolizias ĉi tiu. Kaj ĝi diras OK, kio estas en ajn adreso ĉi estas? La nula Terminator, OK. Eliro. Kaj simple reveni longo. Ĉar vi bezonas kio estas fakte ĉe adreso, ne la retadreso mem. Ekzistas tre malmultaj lokoj kie vi vere bezonas la adreson. Plejparto de la tempo, kiam vi uzas la kaj ĝi estas kiam vi unue atribuante montrilo aŭ kiam vi pasante ŝin alia funkcio. OK, ĉiuj bone tie? Speco de? OK. Tiel ĝi aspektas kiel ni akiris ĉirkaŭ 12 minutoj, do ni devos iri al eble nia lasta problemo, kaj tiam ekzistas neniu konceptoj kiuj elvenas dume ni povas rapide transiru tio. Do ŝaltanta dentaĵoj estas la lasta problemo ĉi tie, ŝalti deklaroj. Do via tasko estas reskribi ĉi tiel ke ĝi kondutas la sama sed ne uzas ŝaltiloj. Yesosas manojn. Do demandojn pri ĉi ekstere la batilo? Neniu? OK. Ĉu ĉiuj komprenis ke se la kazo havas nenion por ĝi, ĝi signifas ke ĝi devus sekvi la sekva paŝo? Do kazo 1 kaj 2 en tiu kazo fari la ĝustan saman aferon. Kelkfoje punkton de konfuzo. Bone. Iu havas ideojn? Yeah? Publiko: Do ​​vi povas nur faru se deklaroj. ZAMYLA Chan: Hmm. Do kio estas nia unua? Publiko: Se n egalas egalas 1, kaj la 2 linioj por aŭ n egaluloj egalas 2, tiam presi malgranda. Kaj tiam vi povas fari alie, se? Aŭ ĉu vi simple fari se? ZAMYLA Chan: Vi povas fari alie, se? Publiko: Ĉu gravas, se vi farus, se? ZAMYLA Chan: Prave. Ĉu anyone-- tiel, vi ricevos la saman eligo se vi uzas nur oj kontre se vi uzas alian oj. Cxu vi uloj pensas pri la kialo kial vi eble volas uzi alian se kontre multa oj? Devas kun eficiencia. Yeah? Publiko: Estus kontroli ĉiuj oj ĉiufoje. ZAMYLA Chan: Do eĉ se ĝi koliziis tiu unua, irus sur ĉeko ĉiu alia. Do vi volas uzi, se alie oj en kazoj kie nur unu el ili iam aplikeblas. Do reciproka ekskludo estas kion ni kutimas diri. Se vi havas faskon da oj, tio signifas ke eble pli ol unu el ili aferoj, kaj eble pli ol unu el ili povas esti vera. Kaj vi volas ambaux ekzekuti se ili estas veraj. Se vi nur volas unu el ili por labori en tiuj reciproke ekskluzivaj kazoj, vi volas uzi alian, se, ĉar ĉion devas vidi kun eficiencia. Via kodo estas ĝuste bona desegnita se ĝi aliĝas al tiu praktiko. Do en ĉi tiu kazo ni havas alian se. Kaj tio estus? Publiko: n egalas egalas 3. ZAMYLA Chan: Perfekta. Print mediumo. Kaj tiam en nia lasta kazo, kion ni havas? Alie aŭ alia se? Publiko: Else. ZAMYLA Chan: Do ni want-- Vi volas alie se ĉar ni havas konkretajn kazojn. Ĝi ne estas speco de forprenu cxion. Se vi havus defaŭlte en switch-- memoru en ŝaltiloj povas havi kazon, kaj tiam vi havas defaŭlte. Se vi havus defaŭlte, jen speco de via alia aserto tie. Sed se gxi havas nur kazojn, tio celas vin bezonas kontroli por vidi se ĝi estas unu el tiuj. Do en ĉi tiu kazo, estus la 4 aŭ 5. Ni volas presi ekstere. Ĝi estas granda. Kaj vi iros. Kaj tio estos via programo. Do en tiu kazo, se ni havis defaŭlta ion, ni havus alian en ajn volis proponis fari. Do tio estas bona distingo scii, kompreni. Ĉu tio helpas kun ŝaltiloj por vi? Perfekta. Bone. Ni havas proksimume ok minutoj. Ĉu vi infanoj ajnan aliaj alta nivelo konceptoj? Demandojn, ĝenerale? Jes? Publiko: Mi havis demando pri unu el ili kiu estis pri hazardaj numeron generatoro sur kvizo nulo. ZAMYLA Chan: Ho, tiu. Tiu estas alia kie estas pli math than-- jes. La solvo al that-- eĉ mi kiam Mi vidas ĝin, mi ŝatas kion estas tio. Publiko: Estis numero 7. ZAMYLA Chan: Estas strange laŭ mi. Do esence vi volas uzi drand48, kiu donos al vi kelkajn nombro inter 0 kaj 1. Kaj vi volas uzi ĝin tiel ke vi iel akiri a-- Kaj ĝi estas multe pli de math problemo al mi ol mi pensas CS problemon. La maniero ke vi faru it-- kaj kelkfoje simple esti tiel. Denove, tio estas la kazoj kie estas speco de kiel skribi kion vi povas kaj parta kredito. Do se ni volas revenon, Ni scias, ke ni estas tuj estos uzante drand48 iel, dekstra? Do kial ni ne simple jot ke suben. Ni uzas ĝin iel. La vojo, kiun ili havas vi uloj uzi ĝin estas kiel tiu, kiun mi provos kaj klarigi. Do esence kio okazas ĉi tie estas ĉar ĝi estas inter 0 kaj 1, kion vi faras estas vi multiplikante by-- ĉi estas tre multe pri matematiko demando. Nur plenajn malgarantio, tiu estas tute matematiko demando. Kion vi faras estas pro 0 kaj 1 kaj vi volas ke tio estu ene tiu rango, vi reale elkompreni kiel granda La gamo estas, kaj tiam vi esence grimpi ĝin, kiu estas kion ĉi faras. b minus unu donas ke gamo, La diferenco inter tiuj nombroj. Vi povas multipliki inter 0 kaj 1, kaj tiam aldonante nur signifas ke via krustanta ĝin tiel ke ĝi estas inter a kaj b, kion mi ne vere ŝatas tiun problemon. Kiel mi jam diris, tiu kvizo estas intencita por ĉirkaŭpreni homoj kiuj estas malpli komfortaj, ie inter, kaj pli komforta. Do se oni faris tiel ke io ke ĉiuj en la malpli komfortan lokon akirus, ni havus tro multe da homoj notante tornas, kaj la pli komforta estus enuiga. Do ili ĉiam havas tiujn speco de cerbo teaser demandoj kiuj celas esti iom malfacila ke ili prenu iom da kreiva pensado. Kiam vi vidos ilin, ne iras tro difuminada. Mi certe dirus flip tra via kvizo unue. Pritrakti la problemojn ke vi scias ke vi povas, ĉar ne estas senutile akiranta kaptita sur problemo kiam estas tri aŭ kvar aŭ kvin paĝoj post tio oni povas facile fari. Publiko: Kial ĝuste vi multipliki ĝin per la gamo? ZAMYLA Chan: Vi multiplikas la gamo kiu vi know-- estas kiel kiom post ĉu vi volas? Do vi povas pensi, ĉar Revenas numero inter 0 kaj 1, Vi povas pensi pri tio kiel procento. Do ĝi estas esence dirante se ni havas nia nombra linio tie, estas tie ĉi, kaj b estas tie. Vi ŝatas kiom pasinteco estas? Estas ĉiuj ni faras. Do vi simple petante la procento de tiu rango, kiu Estas kio donos vin. Kaj tiam vi esence nur grimpi ĝin per aldoni. Estas math cerbo teaser. Se ekzistus lasta minuto konsiloj, mi dirus flip tra la demandoj, elŝeligi kion aĵoj vi scias, ke kiel, ho mi atingis ĉi. Preskaŭ certe ili tuj esti demandojn kiujn vi ne konas aŭ ke vi tuj havos tempon cxar tiel trafis viajn fortojn, OK? Vi uloj tuj granda. Ekzistas multe de demandoj por kialo, tiel ke vi havos tempon speco de havi la ŝancon pruvi kion vi estas tre bona ĉe. Do estas OK se vi estas Ne bona ĉio. Ludu viajn fortojn. Jes? Publiko: Tia estas cxi tuj reveni iun kiu estas detranĉita? Jes, tio estos, ĉar drand revenoj inter 0 kaj 1. Ĝi revenos al int, ĉar tion senpintigas Kiam ni aldonas aŭ multipliki per ĝi. Malvarmeta. Ajna lasta minuto demandoj? Vi uloj iras fari grandajn. Vi tuj estos fabela. Kaj eĉ se ne, estos esti dolĉaĵoj tien venontan semajnon. Kaj mi amos vin. Mi amos vin por infanoj sendistinge. Bone, ĉiuj, la bona sorto. Havi grandan tempon. Vi tuj estos bone. Kaj vi scias kion? En du tagoj ĝi okazas super, dum mi havas du midterms ĵaŭdon, tiel almenaŭ vi uloj estos farita. Bone, mi vidos vin infanoj venontan semajnon.