ZAMYLA CHAN: To je meni, Zamyla.
Danas u Mario, mi ćemo biti crtanje pola piramidu za Mario
popeti.
>> Tako ćemo govoriti o našem to-do-a za ovaj problem.
Mi ćemo željeti potaknuti i provjeriti
korisnik za valjan unos tome visoka žele Mario piramida biti.
A onda, idemo ga izvući.
Pa krenimo sa navelo i vrednovanje korisniku za ulaz.
>> Mi možemo iskoristiti CS50 Biblioteka funkcija
dobili int koji će osigurati da Korisnik unosi prirodni broj.
Bilo pozitivni cijeli brojevi, negativni cijeli brojevi, broj 0 su sve fer igra.
Inače, korisnik će biti zatraženo da ponovo pokušati dok su ulaz važeći cijeli broj.
Sada, iako get int radi puno posla za nas
kako bi se osiguralo da se korisnički nam daje prirodni broj,
mi još uvijek treba primjenjivati ​​neke dodatnih ograničenja na to.
Uostalom, ne možemo imati Mario penjanje pol piramida visine negativnog 12.
>> Osim toga, specifikacija problema
kaže da možemo jedino omogućiti Mario penjati
piramida visine između 0 i 23.
OK, to znači da trebamo stalno tražiti od korisnika
da nam valjana broj i samo nastavite
nakon što ste nam dali važeću visinu.
Kako ćemo to učiniti?
>> Pa, kontinuirani procesi nam dati ideja loops-- radi nešto
ponavljajući.
Jedna petlja u C kao neko petlja koja će kontinuirano
izvršiti tijelo petlje sve dok je zadani uvjet true.
Čim taj uvjet vrijednost false,
program će nastaviti s ono što dolazi nakon toga.
Dakle, dok petlje su jedan od načina osiguravanje da mi stalno
brz korisnik za valjanu ulaz.
I kad su nam dati valjan ulaz, mi ćemo nastaviti na ono što slijedi.
Znamo da ćemo pitati korisnik za unos barem jednom.
Dakle, sada smo došli do sestre while petlja, koja je do while petlja.
>> Da li dok će petlje izvršiti Tijelo petlje barem jednom.
Dakle, bez provjere stanja, to će izvršiti tijelo petlje.
A onda provjeriti stanje kako bi vidjeli da li to treba ponoviti.
To dolazi u ruci kada mi smo potvrđivanja korisničkog unosa.
Znamo da idemo pitati ih barem jednom.
Dakle, do while petlja možda izgledati nešto poput ovoga.
Imamo cijeli broj n.
A unutar obveza dok petlju, odmah smo
brz korisnik za cijeli broj.
Ako n nije valjan, a onda ćemo ih potaknuti opet i opet i opet dok ne
dajte nam tu valjani cijeli broj.
Konačno, nakon nje je valjana ulaz, mi ćemo nastaviti s ostatkom našeg programa.
>> Tako ćemo se vratiti u spec i provjere što su uvjeti za valjanu ulaz
će biti.
Valjana visine idu biti između 0 i 23, uključivo.
Dakle, invalid visine idu biti manji od 0 ili više od 23.
Dakle, ne zaboravite osmisliti vaše stanje pažljivo,
znajući da je stanje za do while petlja
bi trebao biti, a n je valjan.
Sada je to ne će biti jednostavno jedan logički izraz.
Mi ćemo morati kombinirati dva različita izraza
da bi cijeli naš uvjet.
>> Dakle, neka je samo pogledati istini stol sam već dao mig da smo
će se bave dvije logičke.
Dakle, ovdje je tablica stanja u kojem sam imaju dva Booleans-- logičku 1 i 2.
Dakle, imamo mogućnost za procjenu bool1 i bool2 ili bool1 ili bool2.
Te će biti točno samo ako oba Logičke procijeniti na true, dok su svi
ili će biti istina sve dok se jedan od dvije logičke true.
U redu, tako da se na trenutak, zaustaviti ovo video i probaviti ovu istinu stol.
Ja ću biti ovdje čeka.
Kad se vratio, pogledajte ako možete spojiti
Booleova izraz za stanje n bude invalid input.
>> Tako da sada imamo vrijedi korisnički ulaz, neka je
ići naprijed i razgovarati o tome kako se možda privući pola piramide.
Ovdje u ovom jednostavnom programu za uređivanje teksta, Ja sam nacrtao lijevi usklađeni piramidu.
No, znamo da je potrebna naša piramida biti u pravu poravnati.
Pa kako bih mogao to učiniti?
Pa, mogao bih pokušati gurnuti sve na stranu
po samo stavljanjem malo lik u sredini.
A onda, na sljedeći linija, idem staviti
neki više znakova da ga gurnuti zajedno, i further-- tako dalje i tako forth--
dok imam pravo usklađeni piramidu.
Dakle, mi imamo pravo align piramida, ali to ne izgleda tako velik s točkicama.
Ali mi još uvijek žele Tvrdimo da je lijepo razmak.
Tako da ću doslovno umetanje neke prostore.
>> Umjesto tri točkice, ja ću stavi jedan, dva, tri mjesta.
Na drugoj liniji.
Ja ću staviti jedan, dva mjesta.
A na predzadnjem linija, samo za jedno mjesto.
I ovdje imam pravo usklađeni piramidu.
Iz radi primjera u tekstu urednik, imamo ideju za uzorak
da ćemo koristiti za crtanje pola piramide.
Za svaki red, što smo radili je da upišete neke prostore,
a zatim upisali neki hashes, a zatim upisali
tipku Enter, koja stvara novu liniju.
Tako da sada imamo da idemo jedan korak dalje i naći uzorak.
>> Zato ću reći, jer je Interes iz ovog primjera,
imamo posla s visine od 8.
Prvi red će imati dva raspršivanja koja slijedi sedam mjesta.
U second-- tri raspršivanja šest mjesta.
Treće row-- četiri raspršivanja pet spaces-- tako dalje i tako dalje
dok ne dođemo do n-tog reda.
Dakle, pitam te po tko zna koji redak, koliko raspršivanja ćemo imati
i koliko mjesta?
Dakle, to je do vas shvatiti Formula za zastupanje kako mnoge hash
i koliko prostori su potrebne za n-ti red kad imate neku visinu.
>> Sada kada ste figuring ovo, pazite kako ste indeksiranje.
Što mislim pod to je da u svakodnevnom životu svih nas
početak brojanja, obično 1.
No, u CS50 i informatike u cjelini, mi smo 0 indeksiraju.
Dakle, prvi red bi bio n od 0, za razliku od 1.
Budite oprezni o tome kada ste pokušava shvatiti svoj uzorak.
Tako sada vratimo na to kako ćemo izvući našu piramidu.
Za svaki red, mi smo idući u ištanje to print prostore, print hash vrijednosti,
a zatim ispisati novu liniju.
Podsjetnik je ovdje Riječ "za" svakom redu.
U C, imamo konstrukt pozvao for petlje,
koji se sastoji od inicijalizacije, stanje, nadogradnja,
i tijelo petlje.
>> Recimo ja sam htjela reći, zdravo svijet, 50 puta, moji za petlje
će izgledati nešto poput ovoga.
Ja inicijalizirati moj cijeli broj na 0.
Uvjet je da je manje od 50 godina.
A onda mi je nadogradnja je samo povećavati i za jedan svaki put.
Mi također mogu koristiti za petlje iteraciju više stvari.
Primijetite da su ovdje nemamo Teško kodirani broj,
već stavio varijablu Visina umjesto u stanju.
Dakle, ono što ja radim ovdje sam iterating preko svakog reda piramide.
Ja mogu učiniti nešto za svaki red unutar tijela mog petlje.
>> Što radimo unutar Tijelo petlje?
Pa, kao što smo već rekli, mi smo ispis prostori i mi smo ispis hash
a mi smo tiskanje novog liniju.
Tako je moj vanjski za petlje će izgledati ovako.
I ponoviti preko svake red piramide, koristeći,
u ovom slučaju, kao što je visina varijable koji pohranjuje visinu piramide.
Unutar tijela tog procesa, ja sam tiskanja prostore u više navrata, print
više puta raspršivanja a zatim ispisati novu liniju.
>> Tako sada, koristeći sve pojmove koji Razgovarao sam o tome u ovom prolazna,
trebali biste biti u mogućnosti potaknuti Korisnik za unos, provjeriti da je ulaz,
a zatim nacrtati pola piramide.
>> Moje ime je Zamyla, a to je CS50.