ZAMYLA CHAN: Það er-me, Zamyla.
Í dag, við erum að fara að innleiða Mario, þar sem við draga Mario
fullt pýramída fyrir hann að stökkva yfir.
Skulum brjóta niður sub-verkefni fyrir þessu vandamáli.
>> Í fyrsta lagi viljum við að hvetja notandann fyrir hæð pýramídans.
Og þá viljum við vera viss að það inntak sé gild.
Og þá erum við að fara að langar að teikna pýramída.
>> Svo skulum við tala um vekur og staðfesta notandi inntak.
Það gæti litið eitthvað svona þetta, do-while lykkju sem
hvetja notandann til að heiltala og þá aðeins endurtekningar
ef það heiltala er ógilt.
Svo hvað ætti þetta ástand að vera?
>> Fyrir þetta, við skulum fara aftur við forskrift.
Jæja, sérstakur segir okkur að við gilt hæð er að fara að vera á milli 0 og 23,
innifalið.
Svo þá þýðir að allir ógild hæð er að fara að vera minna en 0
eða meira en 23.
>> Svo nú er að við höfum þessar upplýsingar, skulum hönnun ástand okkar.
En við þurfum að vera varkár, því nú höfum við
tvær Booleans sem við viljum að meta.
>> Hér ég hef veitt þér með sannleikann borð.
Þetta gerir okkur kleift að taka tvö Booleans, Boolean eitt og tvö.
Og við getum metið annaðhvort bool1 og bool2 eða bool1 eða bool2.
>> Svo er það munurinn milli og eða?
Jæja, bool1 og bool2 mun meta að sönn ef og aðeins
ef báðir Booleans er satt, en það eða rekstri
mun vera satt, ef annaðhvort ein að Booleans eða bæði eru sönn.
Svo með þetta í huga, sjá hvort þú getur fundið út
hvað viðeigandi skilyrði fyrir do-while lykkju þitt fyrir ógilda n
er að fara til vera.
>> Með þessi, höfum við beðið og fullgilt notandi fyrir hæð pýramídans
sem þeir vilja.
Svo nú er það undir okkur komið að draga pýramída.
The fullur pýramída fyrir þetta Vandamálið mun líta svolítið
eins og þetta, þar sem við höfum vinstri pýramída, sumir bilið, og þá rétt pýramída.
Svo skulum brjóta þetta niður smá.
>> Ef ég fer til textaritlinum minn, hér hef ég dregið okkur vinstri-takt pýramída.
En það mun ekki gera.
Það sem við viljum gera er að við viljum búa rétt-takt pýramída fyrst.
Svo til að gera þetta, bara að ýta kjötkássa mínar meðfram til hliðar,
Ég ætla bara að fara að setja nokkrar stafi á milli, bara þessum punktum.
Þá ætla ég að setja tvö á Næsta lína, og einn á þeirri línu.
Og svo hér er ég hef hægri-takt pýramída.
>> Eftir það, ég ætla að fara aftur í efstu röð
og setja í skarð, sem er, og á sérstakur, tveggja rýma.
Þá er ég að fara að fylla í Hin hlið pýramída.
Ég ætla að fara í annarri röð, skrifa tveir rými fyrir bilið og síðan tveir
kjötkássa.
Til baka í þriðju röð, tveir rými fyrir bilið og þremur kjötkássa.
Og í lok, tveir rými fyrir bilið og fjórum kjötkássa.
Svo er það sem fullur pýramída mun líta út.
>> Að sjálfsögðu viljum við ekki þessir punktar í leiðinni.
Þannig að við erum að fara að skipta þessum punktar eftir að setja nokkrar rými í.
Einn, tveir, þrír á fyrstu línu.
Einn, tveir á sekúndu.
Og einn á þriðju línu.
Svo er þetta það sem við myndum gera ef við langaði bara að gera fulla pýramída,
segja, í textaritlinum okkar.
>> Svo skulum taka þetta, skilning munstur,
og umbreyta það yfir að einhverju sauðakóðanum.
Fyrir hverja röð pýramída, við viljum að prenta vinstri pýramída og þá
bilið og þá rétt pýramída.
Fyrir vinstri pýramída, prenta við nauðsynlegu magni af rými,
á eftir kjötkássa.
Þá erum við að prenta bilið sem er bara tvær rými í hvert skipti.
Og á réttum pýramída, prenta við tilskilinn fjölda kjötkássa.
>> Fyrir annarri röð, sem gerð var við sama nákvæmlega ferli.
Við prenta rými fyrir vinstri pýramída, nauðsynlegu magni
á kjötkássa, bilið, tvö rými, og þá eru kjötkássa fyrir hægri pýramída.
>> Við skulum takast á við mynstur fyrir vinstri pýramída.
Ef ég hefði, vegna þess dæmis, hæð
átta óskað eftir því notandi, þá fyrst röðin mín
myndi hafa einn hass og sjö rými.
annarri röð minn myndi hafa tveir kjötkássa, sex rými.
Þriðja röðin, þrír kjötkássa, fimm rými.
Þú getur sennilega gert þetta sjálfur fyrir hæð átta
og ákveða fyrir hverja röð hversu margir kjötkássa og hversu margir eru sem þú þarft.
En það sem við viljum gera er að Við viljum ágrip það.
Svo ég spyr þig fyrir hvaða nth röð, hversu margir kjötkássa og hversu margir eru þurfum við?
>> Nú, eins og þú ákveða fyrirmynd fyrir hversu margar kjötkássa
og hversu margir eru sem þú þarft að allir n-ta röð fyrir tiltekið hæð,
muna að vera varkár um hvernig þú ætlar að flokkun.
Það sem ég meina með þessu er að í daglegu Líf flest okkar byrja að telja frá einum.
Svo það fyrsta röðin væri númer eitt.
Og seinni röðin yrði röð númer tvö, svo framvegis og svo framvegis.
>> En í tölvunarfræði og CS50, við erum núll-verðtryggð.
Svo við byrjum í raun að telja á núlli.
Svo það fyrsta röðin myndi vera róður númer núll.
Og seinni röðin væri róður númer eitt.
Þannig að ef ég hefði hæð átta til pýramída minn, þá síðasta gildi á n
væri í raun að vera sjö og ekki átta.
>> Svo vera varkár um þetta.
Og vera meðvitaður þegar þú ert að ákveða sniðið þitt hvort þinn núll-verðtryggð
eða einn-verðtryggð
>> OK.
Svo nú er að við höfum mynstur fyrir vinstri pýramída,
þurfum við að ákveða mynstur fyrir bilið.
Sem betur fer, þetta er mjög auðvelt.
Það er bara alltaf tveir rými.
>> Svo nú erum við að halda áfram á réttri mynstri.
Það fyrsta röðin mun hafa eitt kjötkássa.
Önnur röðin tveir.
Þriðja röðin, þrír.
Svo framvegis og svo framvegis.
Svo aftur, ákveða fyrir hvaða ágrip n og hvaða hæð hversu margir kjötkássa
og hversu mörg rými hver róður ætti að hafa.
>> OK.
Þannig að við vitum að fyrir hverja röð vér þarf að sinna smá ferli.
Hvernig gerum við það?
Jæja, notum við til lykkja reisa, samanstendur af frumstilling,
ástand, og uppfærslu.
Fyrir lykkjur er hægt að nota að endurtaka ferli.
>> Svo segi ég vil það að segja halló, Heimurinn 50 sinnum, þá minn fyrir lykkju
myndi líta eitthvað eins og þetta, þar sem Ég frumstilla breytu mitt á núll.
Skilyrði er að ég er minna en 50.
Og þá er uppfærsla sem það stighækkandi eftir einn í hvert skipti.
Svo hvað þetta myndi gera væri að prenta halló, heimur 50 sinnum í röð.
>> Nú segi ég vildi árétta yfir hæð pýramídans.
Þá í staðinn fyrir harða erfðaskrá sumir gildi í því ástandi,
Ég nota bara breytilega hæð.
Svo hvað þetta mun gera er kunnugt yfir hæð hverri röð.
Og ég get gert eitthvað inni um líkama þess lykkju.
>> Hvað viljum við gera inni í líkama lykkju?
Jæja, eins og við fram áður, viljum við að prenta rými og á kjötkássa
fyrir vinstri pýramída og þá prenta tvö rými og þá prenta kjötkássa.
Þannig að við höfum nú þegar mynstrağur það út.
Þannig að við getum byrjað að fylla í prógramminu mikið meira.
>> Hér hef ég í ytri í lykkju sem iterates yfir í hverri umf í pýramída.
Og inni að líkama sem ég ætla að prenta rými ítrekað,
kjötkássa ítrekað, og þá bilið, og þá kjötkássa fyrir hægri pýramída,
og þá loks, ný lína að byrja á næsta róður.
>> Með þessi, höfum við beðið notandi fyrir inntak.
Við höfum gert úr skugga um að það sé gild.
Og þá höfum við dregið pýramída.
Svo Mario getur tekist klifra pýramída.
>> Mitt nafn er Zamyla.
Og þetta er CS50.