ZAMYLA CHAN: Se on-me, Zamyla. Tänään aiomme toteuttaa Mario, jossa arvomme Mario täydellinen pyramidi hänelle hypätä. Katsotaan murtaa osatehtävien tähän ongelmaan. Ensinnäkin haluamme pyytää käyttäjältä korkeus pyramidin. Ja sitten me haluamme varmistaa että tulo on pätevä. Ja sitten me aiomme Kiinnitän pyramidin. Joten puhua kehotetaan ja validointi käyttäjä syöttää. Se voi näyttää Tämän tee-while-silmukka, joka kehottaa käyttäjää varten kokonaisluku ja sitten vain toistoja jos tämä kokonaisluku on virheellinen. Joten mitä pitäisi tämän ehdon olla? Tätä varten mennään takaisin spesifikaation. No, spec kertoo, että mitään pätevää korkeus tulee olemaan välillä 0 ja 23, inclusive. Niin se tarkoittaa, että mitä tahansa kelpaa korkeus tulee olemaan pienempi kuin 0 tai yli 23. Joten nyt meillä on tämä tieto, nyt suunnittelemme kunnossa. Meidän on kuitenkin oltava varovaisia, koska nyt meillä on kaksi Booleans että haluamme arvioida. Tässä olen antanut sinulle kanssa totuustaulu. Tämä antaa meille mahdollisuuden ottaa kaksi Booleans, Boolen yksi ja kaksi. Ja voimme arvioida joko bool1 ja bool2 tai bool1 tai bool2. Joten mitä eroa välillä ja ja tai? No, bool1 ja bool2 tulee on tosi jos ja vain jos molemmat Booleans ovat totta, kun taas tai toimintaa on totta, jos jompikumpi Booleans tai molemmat ovat tosia. Joten tässä mielessä, katso jos voit selvittää mitä sopiva edellytys sinun do-while-silmukka varten virheellisen n tulee olemaan. Kanssa, että olemme pyydettäessä ja validoitu käyttäjältä korkeus pyramidin että he haluavat. Joten nyt, se on jopa meille piirtää pyramidin. Täydellinen pyramidi tähän Ongelma näyttää hieman näin, jossa meillä on vasen pyramidi, joitakin kuilu, ja sitten oikealle pyramidi. Joten rikkoa tätä hieman alaspäin. Jos menen tekstieditori, täällä olen piirretään meille vasemmalle kohdistetulla pyramidi. Mutta se ei tee. Mitä me haluamme tehdä, on haluamme luoda oikean linjassa pyramidin ensin. Joten tehdä tämän, vain työntää minun hash pitkin sivuun, Olen juuri menossa laittaa joitakin merkkejä välissä, vain nämä pisteet. Sitten aion laittaa kaksi on seuraavalle riville, ja toinen, että verkossa. Ja joten tässä minulla on oikea-linjassa pyramidi. Sen jälkeen aion palata ylärivissä ja laittaa kuilu, joka on, per spec, kaksi paikkaa. Sitten aion täyttää toisella puolella pyramidin. Aion mennä toiselle riville, kirjoita kaksi tilat kuilu ja sitten kaksi hash. Takaisin kolmannen rivin, kaksi paikkaa että kuilu ja kolme hash. Ja lopussa, kaksi paikkaa että kuilu ja neljä tiivisteiden. Niin, että mitä täyden pyramidin näyttää. Tietenkään emme halua Näiden pisteiden tavalla. Joten aiomme korvata nämä pisteitä laittamalla välilyöntejä. Yksi, kaksi, kolme ensimmäisellä rivillä. Yksi, kaksi toisessa. Ja toinen kolmannella rivillä. Joten tämä on mitä tekisimme, jos me halusi vain tehdä täydellinen pyramidi, sanovat, meidän tekstieditori. Joten tätä, ymmärtäminen kuvioita, ja muuntaa sen yli joitakin pseudokoodit. Kunkin rivin pyramidin haluamme tulostaa vasemmalle pyramidin ja sitten kuilu ja sitten oikealle pyramidi. Vasemmalle pyramidi, me painamme tarvittava määrä tiloja, jonka jälkeen hash. Sitten tulostaa kuilu, joka on vain kaksi paikkaa joka kerta. Ja oikeaan pyramidin, me painamme tarvittava määrä tiivisteitä. Toisen rivin teimme täsmälleen sama prosessi. Me tulostaa tilat vasemmalle pyramidi, tarvittava määrä tiivisteiden, kuilu, kaksi paikkaa, ja sitten tiivisteiden oikea pyramidin. Oletetaan puuttua malli vasemmalle pyramidin. Jos saisin tarkoituksia varten Tämän esimerkin korkeus kahdeksan pyytämien käyttäjä, niin minun ensimmäinen rivi olisi yksi hash ja seitsemän tilat. Toinen rivi olisi kaksi hash, kuusi tilat. Kolmas rivi, kolme hash, viisi tilat. Voit ehkä tehdä tämän itseäsi korkeus kahdeksan ja määrittää kunkin rivin montako tiivisteiden ja kuinka monta ruutua tarvitset. Mutta mitä me haluamme tehdä, on haluamme abstrakteja sitä. Siksi pyydän teitä mistään nnen rivin, kuinka monta tiivisteiden ja kuinka monta ruutua tarvitsemme? Nyt kun määritetään ohje kuinka monta hash ja kuinka monta ruutua tarvitset mitään nnen rivi tietylle korkeudelle, Muista olla varovainen miten olet indeksointi. Mitä tarkoitan tällä, että jokapäiväisessä elämä useimmat meistä alkaa laskea yhdellä. Joten ensimmäinen rivi olisi ykkönen. Toinen rivi olisi rivi numero kaksi, niin edelleen ja niin edelleen. Mutta tietotekniikassa ja CS50, olemme nolla-indeksoitu. Joten me todella alkaa laskea nollasta. Joten ensimmäinen rivi olisi olla rivi numero nolla. Toinen rivi Olisi rivi ykkönen. Jos siis korkeus oli kahdeksan minun pyramidi, sitten viimeinen arvo n olisi oikeastaan ​​seitsemän eikä kahdeksan. Joten ole varovainen tästä. Ja olla tietoinen, kun olet määritettäessä lukituskuviosi onko nolla-indeksoitu tai yksi-indeksoitu OK. Joten nyt meillä on kuvio vasemmalle pyramidi, meidän on määriteltävä kaavat kuilu. Onneksi tämä on todella helppoa. Se on vain aina kaksi välilyöntiä. Nyt siirrymme oikeaan kuvio. Ensimmäinen rivi on yksi hash. Toinen rivi, kaksi. Kolmas rivi, kolme. Niin edelleen ja niin edelleen. Joten jälleen, määritellä abstrakteja n ja mahdolliset korkeus kuinka monta hash ja kuinka monta ruutua jokainen rivi tulisi olla. OK. Joten me tiedämme, että jokainen rivi me täytyy suorittaa jokin prosessi. Miten se tehdään? No, käytämme silmukka konstruktio, koostuu alustusarvon, edellytys, ja päivityksen. Silmukoita voidaan käyttää toistaa prosesseihin. Sano Haluan sen tervehtimään, maailman 50 kertaa, niin minun silmukka voisi näyttää tältä, jos I alustaa minun muuttuja nollaan. Ehtona on, että i on pienempi kuin 50. Ja sitten päivitys on, että se kasvaa yhdellä joka kerta. Joten mitä tämä tekisi olisi tulosta hei, maailma 50 kertaa peräkkäin. Nyt sanoa halusin kerrata yli korkeus pyramidin. Sitten sijaan kovaa koodausta jotain arvoa siinä kunnossa, Olen vain käyttää korkeutta. Joten mitä tämä tekee on toistaa yli korkeus jokaisen rivin. Ja voin tehdä jotain sisällä ruumiin että silmukka. Mitä haluamme tehdä kehossa silmukan? No, kuten olemme aiemmin todettiin, me haluamme tulostaa tiloihin ja tiivisteiden vasemmalle pyramidin ja tulosta kaksi tilaa ja tulosta hash. Siksi olemme jo tajunnut, että ulos. Joten voimme alkaa täyttää ohjelmassamme paljon enemmän. Tässä olen ulompi silmukka, joka iteroi jokaisen rivin pyramidin. Ja sisällä että kehon aion tulostaa tiloihin toistuvasti, hash toistuvasti, ja sitten kuilu, ja sitten hash oikea pyramidi, ja sitten lopuksi uusi rivi aloittaa seuraavan rivin. Kanssa, että olemme pyydettäessä käyttäjää tulo. Olemme varmistaneet, että se on voimassa. Ja sitten olemme kiinnittänyt pyramidi. Joten Mario voi onnistuneesti kiivetä pyramidin. Nimeni on Zamyla. Ja tämä on CS50.