Zamyla CHAN: Estas-mi, Zamyla. Hodiaŭ, ni tuj apliki Mario, kie ni desegni mario plena piramido lin salti super. Ni detruu la sub- taskoj por tiu problemo. Unue, ni volas instigi la uzanton la alto de la piramido. Kaj poste ni volas certigi ke tiu enigo estas valida. Kaj tiam ni tuj volas tiri la piramido. Do ni parolu pri instigante kaj validigi uzanto enigo. Ĝi povus rigardi ion kiel tiu, do-dum buklo ke instigas la uzanton por entjero kaj tiam nur ripetoj se tiu entjero estas nevalida. Do kion devus kondicxo esti? Por tiu, ni revenu al la specifo. Nu, la spec nin diras ke ajna valida alteco tuj estos inter 0 kaj 23, inkluziva. Tiel do signifas ke ajna nevalida alteco tuj estos malpli ol 0 aŭ pli ol 23. Do nun ni havas ĉi tiun informon, ni desegni nia kondiĉo. Sed ni devas esti zorgemaj, ĉar nun ni havas du Booleans ke ni volas taksi. Tie mi provizis vin kun vertabelo. Ĉi tio nin permesas preni du Bulea tipo, Bulea unu kaj du. Kaj ni povas taksi ĉu bool1 kaj bool2 aŭ bool1 aŭ bool2. Do kio estas la diferenco inter kaj kaj aŭ? Nu, bool1 kaj bool2 volo taksi al vera se kaj nur se ambaŭ Booleans estas vera, dum la aŭ operacio estos vera se ĉu unu el la Booleans aŭ ambaŭ estas veraj. Do kun ĉi tio en menso, ĉu vi povas diveni kio la konvena kondiĉo vian do-dum buklo por nevalidan n tuj estos. Kun tiu, ni instigis kaj validigitaj la uzanto por la alteco de la piramido ke ili volas. Tial nun, ĝi estas supren al ni desegni la piramido. La plena piramido por tiu problemo aspektos iomete kiel tiu, kie ni havas maldekstran piramido, iu breĉo, kaj tiam dekstre piramidon. Do ni rompos ĉi malsupren iomete. Se mi iras al mia tekstoredaktilo, tie mi havas tirita ni maldekstra-vicigita piramido. Sed tio ne faros. Kion ni volas fari estas ni volas krei dekstra vicigitaj piramido unue. Do fari tion, nur puŝi mia hashes kune al la flanko, Mi simple tuj metos iuj karakteroj intere, nur tiuj punktoj. Tiam mi tuj metis du sur la sekva linio, kaj unu sur tiu linio. Kaj tiel tie mi havas dekstra vicigitaj piramido. Post tio, mi tuj reiru al la supera vico kaj metis en la breĉon, kiun estas, por la spec, du spacoj. Tiam mi tuj plenigi la trans la piramido. Mi tuj iros al la dua vico, skribi du spacoj por la breĉo kaj tiam du hashes. Reen al la tria vico, du spacoj por la breĉo kaj tri hashes. Kaj fine, du spacoj por la breĉo kaj kvar hashes. Do jen kion plena piramido similos. Kompreneble, ni ne volas tiujn punktojn en la vojo. Do ni tuj anstataŭigi tiujn punktojn metante iuj spacoj en. Unu, du, tri sur la unua linio. Unu, du sur la dua. Kaj unu sur la tria linio. Do ĉi tiu estas kion ni povus fari, se ni volis nur fari kompletan piramido, diru, en nia tekstoredaktilo. Do ni prenu tiun, kompreni la mastroj, kaj konverti ĝin al iuj _pseudocode_. Por ĉiu vico de la piramido, ni volas presi maldekstre piramido kaj tiam la breĉo kaj tiam dekstre piramidon. Por la maldekstra piramido, ni presi la kondiĉo kvanton de spacoj, sekvita de la hashes. Tiam ni presi la interspacon, kiu Estas nur du spacoj ĉiufoje. Kaj en la dekstra piramido, ni presi la kondiĉo da hashes. Por la dua vico, ni direktis la sama ĝusta procezo. Ni presi la spacoj por la maldekstra piramido, la kondiĉo kvanto de hashes, la breĉo, du spacoj, kaj tiam la hashes por la dekstra piramido. Ni pritrakti la padrono por la maldekstra piramido. Se mi havis, por celoj de tiu ekzemplo, alteco de ok petita de la uzanto, tiam mia unua vico havus hash sep spacoj. Mia dua vico havus du hashes, ses spacoj. Tria vico, tri hashes, kvin spacoj. Vi povas verŝajne fari ĉi Vin alteco de ok kaj determini por ĉiu vico kiom hashes kaj kiom da spacoj vi bezonos. Sed kion ni volas fari estas ni volas abstrakta ĝin. Do mi demandas vin por ajna n vico, kiom da hashes kaj kiom da spacoj ni bezonas? Nun, kiel vi trovis la skemo por kiom da hashes kaj kiom da spacoj vi bezonas por ajna na vico por donita alto, memoru esti zorgema de kiel vi indicigo. Kion mi celas diri per tio, ke en ĉiutaga vivo plimulto de ni komencos rakonti de unu. Do la unua vico estus numero unu. Kaj la dua vico estus vico numeron du, tiel plu kaj tiel plu. Sed en komputiko kaj CS50, ni nul-indeksita. Do ni vere komencos rakonti ĉe nulo. Do la unua vico farus estu vico nombro nulo. Kaj la dua vico estus vico numero unu. Do se mi havis altecon de ok por mia piramido, do la fina valoro de n estus reale esti sep kaj ne ok. Sekve esti zorgema pri tio. Kaj konscii kiam vi determinado via mastro, ĉu via nulo-indeksita aŭ unu-indeksita BONE. Do nun ni havas la skemo por la maldekstra piramido, Ni devas determini la ŝablono por la breĉo. Feliĉe, ĉi tiu estas vere facila. Estas nur ĉiam du spacojn. Do nun ni procedi al la dekstra ŝablono. La unua vico havos unu hash. La dua vico, du. Tria vico, tri. Tiel plu kaj tiel plu. Do denove, determini por ajna abstrakta n kaj ajna alteco kiom hashes kaj kiom da spacoj ĉiu vico devus havi. BONE. Do ni scias, ke por ĉiu vico ni bezonas fari iun procezon. Kiel ni faru tion? Nu, ni uzas la por buklo konstrukcio, ĝi formis parton de inicialización, kondiĉo, kaj ĝisdatigo. Por cikloj povas kutimi ripeti procezoj. Tiel diru mi volas diri saluton, mondo 50 fojojn, tiam mia por buklo aspektus ion kiel tiu, kie Mi pravalorizi miaj variablo al nulo. La kondiĉo estas ke i estas malpli ol 50. Kaj tiam la ĝisdatigo estas kiu pliigoj de unu ĉiufoje. Do kion tio farus estus presi saluton, mondo 50 fojojn en vico. Nun diru mi volis persisti super la alteco de la piramido. Tiam anstataŭe de malmola kodigo iu valoro en la kondiĉo, Mi nur uzas la variablon alteco. Do kio estas tiu faros estas ripeti super la alteco ĉiu vico. Kaj mi povas fari ion interne de la korpo de tiu buklo. Kion ni volas fari en la korpo de la ciklo? Nu, kiel ni indikis antaŭe, ni volas presi la spacoj kaj la hashes por la maldekstra piramido kaj tiam presitaj du spacoj kaj tiam presi la hashes. Do ni jam kalkulis, ke el. Do ni povas starti plenigi en nia programo multe pli. Tie mi havas eksteran por buklo ke ripetas super ĉiu vico en la piramido. Kaj interne, ke korpo Mi tuj presi spacoj ree, hashes ree, kaj tiam la interspaco, kaj tiam hashes por la dekstra piramido, kaj poste, fine, nova linio por komenci la sekva vico. Kun tiu, ni instigis la uzanto por la enigo. Ni certigis ke ĝi estas valida. Kaj tiam ni tiris la piramido. Tial Mario povas sukcese grimpi la piramido. Mia nomo estas Zamyla. Kaj ĉi tiu estas CS50.