ZAMYLA CHAN: Ni-me, Zamyla.
Leo, tunakwenda kutekeleza Mario, ambapo sisi kuteka Mario
piramidi kamili kwa ajili yake na kuruka juu.
Hebu kuvunja chini kazi ndogo kwa tatizo hili.
>> Kwanza, tunataka kuchochea mtumiaji kwa urefu wa piramidi.
Na kisha tunataka kuhakikisha kwamba kwamba pembejeo ni halali.
Na kisha tunakwenda wanataka kuteka piramidi.
>> Hivyo hebu majadiliano juu na kusababisha na kuthibitisha user pembejeo.
Ni ili kuangalia kitu kama hii, kitanzi do-wakati kwamba
humshauri mtumiaji kwa integer na kisha tu kurudia
kama kwamba integer ni batili.
Hivyo kile lazima hali hii kuwa?
>> Kwa hili, hebu kwenda nyuma na vipimo.
Naam, spec anatueleza kwamba yoyote halali urefu ni kwenda kuwa kati ya 0 na 23,
umoja.
Hivyo basi hiyo ina maana kwamba yoyote batili urefu ni kwenda kuwa chini ya 0
au zaidi ya 23.
>> Hivyo sasa kwamba tuna habari hii, hebu kubuni hali yetu.
Lakini tunahitaji kuwa makini, kwa sababu sasa tuna
Booleans mbili kwamba tunataka kutathmini.
>> Hapa nimekuwa zinazotolewa wewe na meza ukweli.
Hii inaruhusu sisi kuchukua mbili Booleans, Boolean moja na mbili.
Na tunaweza kutathmini ama bool1 na bool2 au bool1 au bool2.
>> Basi nini tofauti kati na na au?
Naam, bool1 na bool2 mapenzi kutathmini kwa kweli ikiwa na tu
kama Booleans yote ni ya kweli, ilhali au operesheni
itakuwa kweli kama aidha moja ya Booleans au yote ni ya kweli.
Hivyo, pamoja na hili akilini, kuona kama unaweza kufikiri
nini hali mwafaka kwa do-wakati kitanzi yako kwa n batili
ni kwenda kuwa.
>> Pamoja na kwamba, tumekuwa ilisababisha na kuthibitishwa user kwa urefu wa piramidi
kwamba wanataka.
Hivyo sasa, ni juu yetu kuteka piramidi.
piramidi kamili kwa hili tatizo itakuwa kuangalia kidogo
kama hii, ambapo tuna piramidi kushoto, baadhi pengo, na kisha piramidi haki.
Basi hebu kuvunja hii chini kidogo.
>> Kama mimi kwenda kwa mhariri wa maandishi yangu, hapa mimi wameweza inayotolewa us kushoto na kompyuta piramidi.
Lakini hiyo si kufanya.
Nini tunataka kufanya ni tunataka kujenga kulia na kompyuta piramidi kwanza.
Hivyo kufanya hili, kushinikiza tu hashes yangu pamoja na upande,
Mimi tu kwenda kuweka baadhi ya wahusika katika kati, dots hizi tu.
Kisha mimi nina kwenda kuweka mbili juu ya line ya pili, na moja juu ya mstari huo.
Na hivyo hapa nina kulia na kompyuta piramidi.
>> Baada ya hapo, mimi nina kwenda kwa kwenda nyuma ya mstari wa juu
na kuweka katika pengo, ambayo ni, kwa spec, nafasi mbili.
Basi mimi nina kwenda kujaza upande wa pili wa piramidi.
Mimi nina kwenda kwa safu ya pili, kuandika nafasi mbili kwa pengo na kisha mbili
hashes.
Nyuma ya safu ya tatu nafasi mbili kwa pengo na hashes tatu.
Na mwisho, nafasi mbili kwa pengo na hashes nne.
Hivyo kwamba ni nini full piramidi itakuwa kuangalia kama.
>> Bila shaka, hatutaki dots hizi katika njia.
Hivyo sisi ni kwenda kuchukua nafasi ya hizi dots kwa kuweka baadhi ya maeneo katika.
Moja, mbili, tatu katika mstari wa kwanza.
Moja, mbili juu ya pili.
Na moja juu ya mstari wa tatu.
Hivyo hii ni nini tunataka kufanya kama sisi alitaka kufanya tu piramidi kamili,
kusema, katika mhariri wa maandishi yetu.
>> Basi hebu kuchukua hii, kuelewa mwelekeo,
na kubadilisha kwa mabavu na baadhi pseudocode.
Kwa kila mstari wa piramidi, tunataka magazeti piramidi kushoto na kisha
pengo na kisha piramidi haki.
Kwa piramidi kushoto, sisi magazeti zinazohitajika kiasi cha nafasi,
ikifuatiwa na hashes.
Kisha sisi magazeti pengo, ambayo ni mbili tu nafasi kila wakati.
Na katika piramidi haki, sisi magazeti zinazohitajika idadi ya hashes.
>> Kwa safu ya pili, tulifanya huo halisi ya mchakato.
Sisi magazeti mazingira kwa ajili ya kushoto piramidi, zinazohitajika kiasi
ya hashes, pengo, nafasi mbili, na kisha hashes kwa piramidi haki.
>> Hebu kukabiliana na mfano kwa piramidi kushoto.
Kama mimi alikuwa, kwa madhumuni ya mfano huu, urefu
ya nane ombi kwa user, basi mstari yangu ya kwanza
ingekuwa hash moja na nafasi saba.
mstari yangu ya pili ingekuwa mbili hashes, nafasi sita.
Tatu mfululizo, hashes tatu, nafasi tano.
Pengine unaweza kufanya hivyo mwenyewe kwa urefu wa nane
na kuamua kwa kila mstari ni wangapi hashes na jinsi nafasi nyingi unahitaji.
Lakini nini tunataka kufanya ni tunataka abstract yake.
Hivyo naomba kwa mstari yoyote nth, jinsi wengi hashes na jinsi nafasi nyingi tunahitaji?
>> Sasa, kama wewe kuamua mfano kwa hashes wangapi
na jinsi nafasi nyingi unahitaji kwa ajili ya yoyote mstari nth kwa urefu fulani,
kumbuka kuwa makini ya jinsi wewe ni Indexing.
Nini maana na hii ni kwamba katika kila siku maisha wengi wetu kuanza kuhesabu kwa moja.
Hivyo safu ya kwanza itakuwa namba moja.
Na safu ya pili itakuwa mstari namba mbili, kadhalika na kadhalika.
>> Lakini katika sayansi ya kompyuta na CS50, sisi ni zero-indexed.
Hivyo sisi kweli kuanza kuhesabu saa sifuri.
Hivyo safu ya kwanza ingekuwa kuwa mstari simu zero.
Na safu ya pili itakuwa mstari namba moja.
Hivyo kama mimi alikuwa urefu wa nane kwa piramidi yangu, basi thamani ya mwisho ya n
ingekuwa kweli kuwa saba na si minane.
>> Hivyo kuwa makini kuhusu hili.
Na kuwa na ufahamu wakati wewe ni kuamua muundo yako iwe yako zero-indexed
au moja ya indexed
>> SAWA.
Hivyo sasa kwamba tuna mfano kwa piramidi kushoto,
tunahitaji kuamua mfano kwa pengo.
Kwa bahati nzuri, hii ni kweli ni rahisi.
Ni tu daima nafasi mbili.
>> Hivyo sasa sisi kuendelea na mfano wa kulia.
safu ya kwanza itakuwa na hash moja.
safu ya pili miwili.
Tatu mstari, tatu.
Kadhalika na kadhalika.
Hivyo tena, kuamua kwa yoyote abstract n na urefu yoyote jinsi hashes wengi
na nafasi ngapi kila mstari wanapaswa kuwa.
>> SAWA.
Hivyo tunajua kwamba kwa kila sisi mstari haja ya kuendesha baadhi mchakato.
Jinsi gani sisi kufanya hivyo?
Naam, sisi kutumia kwa kitanzi kujenga, zikiwemo za initialization,
hali, na update.
Kwa loops inaweza kutumika kurudia taratibu.
>> Hivyo kusema mimi nataka kusema hello, Mara dunia 50, kisha yangu kwa kitanzi
bila kuangalia kitu kama hii, ambapo Mimi initialize variable yangu na sifuri.
hali ni kwamba i ni chini ya 50.
Na kisha update ni kwamba nyongeza kwa moja kila wakati.
Kwa hiyo kile hii itakuwa kufanya itakuwa magazeti hello, mara dunia 50 mfululizo.
>> Sasa, kusema nilitaka iterate zaidi ya urefu wa piramidi.
Kisha badala ya coding ngumu baadhi ya thamani katika hali,
Mimi tu kutumia urefu kutofautiana.
Kwa hiyo kile hii kufanya ni iterate zaidi ya urefu kila mstari.
Na siwezi kufanya kitu ndani ya mwili wa kitanzi kwamba.
>> Je, tunataka kufanya ndani ya mwili wa kitanzi?
Naam, kama tulivyoonyesha kabla, tunataka magazeti nafasi na hashes
kwa piramidi kushoto na kisha magazeti nafasi mbili na kisha magazeti hashes.
Hivyo tumekuwa tayari figured kwamba nje.
Ili tuweze kuanza kujaza katika mpango wetu mengi zaidi.
>> Hapa nina nje kwa kitanzi kwamba iterates juu ya kila mstari katika piramidi.
Na ndani ya mwili kwamba mimi nina kwenda magazeti nafasi tena na tena,
hashes tena na tena, na kisha pengo, na kisha hashes kwa piramidi haki,
na kisha, mwisho, mpya line ya kuanza mfululizo ijayo.
>> Pamoja na kwamba, tumekuwa ilisababisha user kwa ajili ya pembejeo.
Tumekuwa alifanya uhakika kwamba ni halali.
Na kisha tumekuwa inayotolewa piramidi.
Hivyo Mario unaweza mafanikio kupanda piramidi.
>> Jina langu ni Zamyla.
Na hii ni CS50.