ZAMYLA CHAN: To je-me, Zamyla.
Danas ćemo provesti Mario, gdje skrećemo Mario
pun piramide za njega preskočiti.
Idemo razbiti pod-zadatke za taj problem.
>> Prvo, želimo brz korisnik za visinu piramide.
A onda želimo biti sigurni da je ulaz vrijedi.
A onda ćemo želim nacrtati piramidu.
>> Dakle, pričajmo o navelo i potvrđivanju korisničkog unosa.
To može izgledati nešto poput ovaj, do-while petlja koja
traži od korisnika ima li cijeli broj i onda samo ponavlja
ako je taj broj nije valjan.
Tako što bi ovo stanje moglo biti?
>> Za to, vratimo se natrag u specifikaciji.
Pa, spec nam govori da bilo koji valjani visina će biti između 0 i 23,
inclusive.
Dakle, to znači da je bilo koji nevažeći visina će biti manji od 0
ili više od 23.
>> Tako da sada imamo tu informaciju, neka je dizajn naše stanje.
No, moramo biti oprezni, jer sada imamo
dvije logičke koje želimo procijeniti.
>> Ovdje sam te pod uvjetom sa stolom istine.
To nam omogućuje da se dva Logičke, Boolean jedan i dva.
I možemo ocijeniti bilo bool1 i bool2 ili bool1 ili bool2.
>> Dakle, u čemu je razlika između i i ili?
Pa, bool1 i bool2 će procijeniti da vrijedi ako i samo
ako su obje logičke istinite, a ili rad
će biti istina, ako ni jedan od su logičke ili i jedno i drugo istina.
Tako je s tim na umu, vidjeti ako možete shvatiti
ono što je prikladno uvjet za Vaš do-while petlja za nevažeće n
će biti.
>> Uz to, mi smo to zatraži, a potvrđen korisnik za visinu piramide
da oni žele.
Tako sada, to je do nas nacrtati piramidu.
Puna piramida za to Problem će izgledati malo
ovako, gdje imamo lijevi piramida, neka praznina, a onda pravo piramida.
Tako ćemo razbiti ovaj dolje malo.
>> Ako odem na moj tekst editor, ovdje imam nacrtana nam u lijevu usklađeni piramidu.
No, to neće učiniti.
Ono što želimo učiniti je želimo stvoriti pravi poravnat piramidu na prvom mjestu.
Pa za to, da se samo gurnuti moji raspršivanja zajedno sa strane,
Samo ću staviti neke znakove između, samo tih točaka.
Onda ću staviti dva na Sljedeći linija, a jedna na toj liniji.
I tako ovdje imam Pravo poravnat piramidu.
>> Nakon toga, ja ću povratak na vrh reda
i staviti u prazninu, koja se je, po spec, dva prostora.
Onda ću ispuniti u Druga strana piramide.
Ja ću ići u drugi red, pisati Dva mjesta za razmak, a zatim dva
hashes.
Natrag na treći red, dva razmaka za jaz i tri hashes.
I na kraju, dva razmaka za jaz i četiri hashes.
Dakle, to je ono full Piramida će izgledati.
>> Naravno, ne želimo ove točke na putu.
Tako ćemo zamijeni točkice Stavljanjem neke prostore u.
Jedan, dva, tri na prvoj crti.
Jedan, dva na drugom.
I jedan na trećem retku.
Dakle, to je ono što će učiniti ako mi želio samo napraviti puni piramida,
Naime, u našem programu za uređivanje teksta.
>> Dakle, uzmimo to, razumijevanje obrasce,
i pretvoriti ga na neki pseudokod.
Za svaki red piramide, želimo ispisati utakmice piramide, a zatim
jaz, a zatim desnu piramida.
Za lijevoj piramide, mi ispisati nužna količina prostora,
Slijede hashes.
Onda smo ispisali prazninu koja samo dva mjesta svaki put.
I u pravu piramidu, mi ispisati potreban broj hashes.
>> Za drugog reda, proveli smo isti točan postupak.
Tiskamo prostore za lijevo piramida, nužna količina
hashes, jaz, dva prostora, i onda raspršivanja za pravom piramide.
>> Ajmo uhvatiti u koštac uzorak za lijevi piramide.
Da jesam, za potrebe ovog primjera, visine
osam zatražio od strane korisnik, onda je moj prvi red
će imati jednu mljeveno meso i sedam mjesta.
Moj drugi red bi Dva raspršivanja šest mjesta.
Treći red, tri raspršivanja pet mjesta.
Vjerojatno možete to učiniti sami za visine od osam
i odrediti za svaki red koliko raspršivanja i koliko prostora je potrebno.
No, ono što želimo učiniti je želimo apstraktno to.
Zato vas molim za bilo tko zna red, koliko raspršivanja i koliko mjesta trebamo?
>> Sada, kao što se utvrdilo Uzorak na koliko hashes
i koliko prostora je potrebno za bilo n-ti red za određenu visinu,
sjećam se da budu oprezni kako ste indeksiranje.
Što mislim je to da se u svakodnevnom život je većina nas početi računati po jedan.
Dakle, prvi red bi bio broj jedan.
I drugi red bi bio red broj dva, tako dalje i tako dalje.
>> No, u računalnih znanosti i CS50, mi smo nula klauzulom.
Tako smo zapravo početi brojati od nule.
Dakle, prvi red bi biti red broj nula.
I drugi red bio bi red broj jedan.
Dakle, ako sam imao visinu od osam za moje piramide, tada je zadnji vrijednost n
zapravo bi biti sedam, a ne osam.
>> Dakle, budite oprezni o tome.
I imajte na umu kad ste određivanju Vaš uzorak je li vaš nula indeksiranih
ili jedan indeksiranih
>> U REDU.
Tako da sada imamo Obrazac za lijevi piramide,
moramo utvrditi uzorak za jaz.
Srećom, to je stvarno lako.
To je samo uvijek dva mjesta.
>> Dakle, sada smo prešli na pravom uzorak.
Prvi red će imati jedan mljeveno meso.
Drugi red, dva.
Treći red, tri.
Tako dalje i tako dalje.
Pa opet, odrediti za bilo apstraktno n i bilo kojoj visini koliko raspršivanja
i koliko mjesta svaki red bi trebao imati.
>> U REDU.
Tako znamo da je za svaku zaredom potrebno je provesti neki proces.
Kako ćemo to učiniti?
Pa, mi koristimo za petlje konstrukt, Sastoji se od inicijalizacije,
stanje i ažuriranje.
Za mogu koristiti petlje ponoviti procesa.
>> Tako kažu Želim pozdraviti, Svijet 50 puta, a zatim moj for petlje
će izgledati nešto poput ovoga, gdje je Ja inicijalizirati svoju varijablu na nulu.
Uvjet je da je i manje od 50 godina.
A onda se ažuriranje da to koracima po jedan svaki put.
Pa što će to učiniti da bi se ispisati Hello, World 50 puta zaredom.
>> Sada, recimo ja sam htjela ponoviti više visine piramide.
Tada umjesto tvrdog kodiranja neke vrijednosti u stanju,
Ja samo koristiti podesivu visinu.
Pa što će to učiniti je mijenjajte više visine svakog reda.
I ja mogu učiniti nešto iznutra tijela te petlje.
>> Što želimo napraviti unutar tijela petlje?
Pa, kao što smo prije navedeno, želimo Za ispis prostore i hash
za lijevi piramide, a zatim ispisati dva razmaka, a zatim ispisati hash vrijednosti.
Dakle, već smo shvatili da je van.
Tako možemo početi popuniti u našem programu puno više.
>> Evo ja imati vanjski za petlje da iterira preko svakog reda u piramidi.
A unutar tog tijela idem ispisati prostore u više navrata,
hashes u više navrata, a zatim razmak, a zatim hashes za pravu piramidu,
a onda, konačno, nova linija za početak sljedećeg retka.
>> Uz to, mi smo to zatraži korisnik za unos.
Napravili smo sigurni da je valjana.
A onda smo izvučeni piramidu.
Dakle, Mario uspješno popeti se na piramidu.
>> Moje ime je Zamyla.
A to je CS50.