[Music kucheza] Rob BOWDEN: Ni mimi, Rob. Hebu kutembea kwa njia ya jinsi ya kutekeleza Mario. Hivyo jambo la kwanza tunahitaji kufanya ni haraka user ajili ya pembejeo. Tunahitaji kuwauliza ni jinsi gani mrefu piramidi lazima. Hivyo hapa, tunaona sisi ni kufanya urefu = GetInt. Na kukumbuka kwamba kazi GetInt unatekelezwa katika CS50 maktaba, hivyo juu juu, tunahitaji kumbuka # ni pamoja na cs50.h. Hivyo kwa nini tuna hii amefungwa katika do-kitanzi wakati? Naam, sisi pia haja ya kukumbuka kuwa pembejeo mtumiaji ina kuwa halali. Ni pembejeo batili nini? Vizuri pset spec hasa anasema kwamba urefu chini ya 0 au zaidi zaidi ya 23 ni batili. Hivyo hapa, tunaona kwamba sisi ni kufafanua mara kwa mara aitwaye MAX_HEIGHT na thamani ya 23. Hii kitanzi do-wakati itaendelea wakati urefu ni chini ya 0 au MAX_HEIGHT ni chini ya urefu, ambayo ina maana kwamba 23 ni chini ya urefu. Hivyo kama urefu ni 24 au zaidi, sisi ni kwenda kuendelea wanaoendesha. Kumbuka kwamba kufanya-wakati tanzi ni pretty kusaidia wakati wowote tunataka kupata user pembejeo na kisha kuhalalisha yake, tangu sisi inevitably haja ya kuuliza user katika angalau mara moja kwa thamani wanataka. Hivyo mara tuna mchango wao, sisi sasa wanaweza kujenga piramidi. Moja ya mbinu ya tatizo hili kuweka ni kwamba tuna kuanza saa juu ya piramidi. Huwezi printf chini ya piramidi na kisha kujenga njia yako juu. Basi hebu tuangalie mfano kutoka pset spec. Tunaona hapa kwamba wakati sisi kuingia urefu ya 8, chini kabisa ya piramidi Prints hashes tisa. Moja ngazi ya juu na kwamba prints nafasi moja na hashes nane. Moja ngazi ya juu na kwamba ni nafasi mbili na hashes saba, njia yote mpaka sisi kupata juu ya piramidi, ambayo ni ngazi nane up, ambayo Prints saba nafasi na hashes mbili. Basi kumbuka kwamba tuna kufanya ngazi hii ya juu kwanza. Hapa sisi ni iterating kutoka ngazi ya juu, safu ya 8, kuendelea mpaka mstari fika 0. Nafasi Hivyo ni jinsi wengi hawakuwa tunahitaji magazeti katika mstari kwamba juu? Sisi kuchapishwa nafasi saba na hashes mbili. Hivyo idadi ya nafasi tunataka ni mstari waliokuwa juu ya minus 1. Kama safu ya juu ni 8, 8 minus 1 inatupa nafasi saba. Basi tuna kitanzi kwamba magazeti nje kila mmoja nafasi ya wakati huo. Hivyo wakati nafasi ni 7, kitanzi hii mara saba, uchapishaji saba nafasi ya mtu binafsi. Hivyo sasa tunahitaji magazeti hashes haya mwishoni mwa piramidi. Hivyo hapa, tunahitaji mahesabu ya idadi ya hashes. Tunaona kwamba sisi ni kufanya urefu minus mstari plus 2. Hivyo ni jinsi gani sisi kupata kwamba? Kumbuka kwamba juu ya piramidi ni mstari 8, na urefu ni 8. Na sisi bado kuchapishwa hashes mbili. Basi angalau sana, 8 minus 8 pamoja na 2 inatupa jibu sahihi. Na kisha kufikiria chini ya piramidi, mstari 1. Mstari urefu minus kutupa 7, na kisha plus 2 inatupa hashes tisa, ambayo ni hasa idadi ya hashes kwamba sisi kuchapishwa. Hivyo hii ni formula tunataka kutumia hesabu hashes katika kila mstari. Kutumia idadi hiyo, sisi kisha na mwingine kwa kitanzi, sawa na kwa kitanzi kwamba sisi kutumika kwa ajili ya maeneo, kwamba iterates idadi ya hashes mara uchapishaji hash moja kila wakati. On mstari wa juu, kwamba utakuwa magazeti hashes mbili. Juu ya mstari wa chini, kwamba utakuwa magazeti hashes tisa. Na kila mstari wengine magazeti kila idadi ya hashes katika kati ya. Na kisha mwishoni sana, tunahitaji magazeti line wetu mpya kwenda ijayo mstari katika piramidi. Hatimaye, tunahitaji magazeti line mpya mwishoni mwa mfululizo ili uweze kuendelea ijayo mstari wa piramidi. Na mwisho wa mpango wetu, sisi kuwa na kurudi 0. Kama kwa pset spec, kurudi 0 si madhubuti muhimu. Lakini haina yanamaanisha kwamba kuu ni kosa. Jina langu ni Rob, na hii ilikuwa Mario. [Music kucheza]