ZAMYLA Chan: Ez egy-me, Zamyla.
Ma megyünk végrehajtani Mario, ahol húzunk Mario
teljes piramis neki átugrani.
Nézzük meg a részfeladatok erre a problémára.
>> Először is, azt akarjuk, hogy figyelmezteti a felhasználót A magassága a piramis.
És akkor azt akarjuk, hogy győződjön meg arról, hogy bemenet érvényes.
Aztán megyünk szeretnénk felhívni a piramis.
>> Tehát beszéljünk megkérdezése és ellenőrzi a felhasználói input.
Úgy tűnhet, mint valami Ennek a do-while ciklus, amely
kéri a felhasználót egy egész szám, és akkor is csak ismétlések
ha az egész érvénytelen.
Tehát mi kell ezt a feltételt?
>> Ehhez menjünk vissza A specifikáció.
Nos, a spec azt mondja, hogy minden érvényes magasság lesz 0 és 23 között,
beleértve.
Tehát ez azt jelenti, hogy az érvénytelen magasság lesz kisebb, mint 0
vagy több, mint 23.
>> Most, hogy ezt az információt, nézzük tervezzük meg a feltételt.
De meg kell, hogy legyen óvatos, mert most már
Két Logikai hogy meg akarjuk értékelni.
>> Itt megadtam egy igazság táblázatot.
Ez lehetővé teszi számunkra, hogy két Logikai adattípus, logikai egy és kettő.
És mi lehet értékelni sem bool1 és bool2 vagy bool1 vagy bool2.
>> Tehát mi a különbség és között és vagy?
Nos, bool1 és bool2 lesz értékeli, hogy pontosan akkor
ha mindkét Logikai igazak, mivel a művelet vagy
lesz igaz, ha valamelyik A Logikai vagy mindkettő igaz.
Így ezt szem előtt tartva, ha lehet kitalálni
mi a megfelelő feltétele A do-while ciklus egy érvénytelen n
lesz.
>> Azzal, hogy már kéri és validált a felhasználó számára a magassága a piramis
amit akarnak.
Tehát most, ez rajtunk múlik felhívni a piramis.
A teljes piramis erre probléma meg egy kicsit
mint ez, ahol van egy bal piramis, Néhány különbség, majd a jobb oldali piramis.
Úgyhogy megtörni ezt le egy kicsit.
>> Ha megyek a szövegszerkesztő, itt voltam rajzolt nekünk egy balra igazított piramis.
De ez nem lesz jó.
Amit akarok, azt akarjuk, hogy hozzon létre egy jobbra igazított piramis először.
Így kell ezt csinálni, hogy csak nyomja én hash mentén oldalra,
Én csak megy, hogy néhány karakter között, csak ezeket a pontokat.
Akkor megyek, hogy két a következő sorban, és egy ezen a vonalon.
És így itt van egy jobbra igazított piramis.
>> Ezt követően, megyek menj vissza a felső sorban
és tegye a rés, amely van, egy a spec, két tér.
Akkor megyek, hogy töltse ki a másik oldalon a piramis.
Megyek, hogy menjen a második sorban, levelet Két terek a különbség, majd két
hash.
Vissza a harmadik sorban, két szóköz A rés és három hash.
És a végén, két tér A rés és négy hash.
Tehát ez az, ami a teljes piramis fog kinézni.
>> Természetesen nem akarjuk Ezek a pontok az utat.
Így fogunk cserélni ezeket pontok által üzembe néhány terek.
Egy, kettő, három, az első sorban.
Egy, két, a második.
És az egyik a harmadik sorban.
Tehát ez az, amit tenne, ha akarta csak, hogy egy teljes piramis,
mondjuk, a mi szövegszerkesztő.
>> Szóval vessünk ennek, megérteni a szokások,
és átalakítani, hogy több mint néhány pszeudokód.
Minden egyes sor a piramis, azt akarjuk, nyomtassa ki a bal piramis, majd
a különbség, majd a jobb piramis.
A bal piramis kiírjuk a szükséges mennyiségű terek,
majd a hash-eket.
Ezután kiírjuk a rés, amely mindössze két tér minden alkalommal.
És a jobb piramis kiírjuk A szükséges számú hash-eket.
>> A második sorban, mi végzett pontosan ugyanolyan folyamatot.
Kiírjuk a terek a bal piramis, a szükséges mennyiségű
hash, a különbség, két tér, és akkor a hash a jobb piramis.
>> Lássuk a feladat minta A bal piramis.
Ha lenne, célokra Ennek a példának, magassága
Nyolc által kért felhasználó, akkor az első sorban
lenne egy hash és hét szünetet.
A második sorban volna két hash hat terek.
Harmadik sor, három hash öt terek.
Akkor talán ezt magát a magassága nyolc
és meghatározza az egyes sorok hány hash és hány szóköz van szüksége.
De mit akarunk csinálni az akarjuk absztrakt azt.
Tehát kérem minden n-edik sor, hogy hány hash és hány mezőt van szükségünk?
>> Most, ahogy meghatározza a minta hány hash
és hány mezőt, amire szükség van bármely n-edik sor adott magasságú,
emlékszem, hogy legyen óvatos hogyan te indexel.
Mit értek az, hogy a mindennapi élet a legtöbb ember elkezd számolás eggyel.
Tehát az első sorban lenne az első.
A második sor lenne sorban szám két, így tovább és így tovább.
>> De a számítástechnikában és CS50 vagyunk nulla indexelt.
Tehát valójában kezdeni a számlálást nulla.
Tehát az első sor is legyen sor száma nulla.
A második sor lenne sorban az első.
Tehát, ha volt egy magasságban nyolcat én piramis, majd az utolsó n értékét
ténylegesen nem hét, de nem nyolc.
>> Ezért legyen óvatos erről.
És tudatában kell lennie, ha éppen meghatározó a mintát, hogy a zéró-indexált
vagy egy-indexált
>> RENDBEN.
Most, hogy megvan a minta a bal piramis,
meg kell határoznunk A mintát a különbség.
Szerencsére, ez nagyon egyszerű.
Csak mindig két mezőt.
>> Tehát most indulunk jobbra mintát.
Az első sor lesz egy hash.
A második sorban, kettő.
Harmadik sor, három.
Tehát tovább és így tovább.
Tehát újra, meg minden absztrakt n és bármilyen magasságban hány hash
és hány mezőt minden sorban legyen.
>> RENDBEN.
Tehát tudjuk, hogy minden sorban van kell, hogy végezzen néhány folyamatot.
Hogyan csináljuk?
Nos, mi használjuk a for ciklus konstrukció, áll egy inicializáló,
feltétele, és a frissítés.
Mert hurkokat lehet használni megismételni folyamatokat.
>> Tehát mondjuk azt akarom köszönni, világ 50-szer, akkor a hurok
valahogy így néz ki ez, ahol Azt inicializálni én változó nulla.
A feltétel az, hogy i kisebb, mint 50.
És akkor a frissítést, hogy egyesével minden alkalommal.
Tehát mi ez az lenne, hogy print hello, world 50-szor egymás után.
>> Most azt mondják, azt akartam, hogy ismételget A magasságban a piramis.
Aztán ahelyett, hogy keményen kódolás bizonyos értéket a feltétellel,
Csak használja a változó magasságú.
Szóval mi ez fog tenni a hajtogat A magasságban minden sorban.
És tudok tenni valamit belülről A test ezen hurok.
>> Mit akarunk csinálni a testben a hurok?
Nos, ahogy azt korábban is jeleztük, szeretnénk nyomtatni a terek és a hash
A bal piramis, majd nyomtatás két mezőt, majd nyomtassa ki a hash-eket.
Így már rájött.
Így tudjuk kezdeni, hogy töltse programunkban sokkal több.
>> Itt van egy külső hurok, amely megismétli át minden sorban a piramis.
És azon belül, hogy a test megyek nyomtatni terek többször,
hash többször, majd a különbség, majd hash az egyenes gúla,
majd végül egy új vonal kezdeni a következő sort.
>> Azzal, hogy már kéri a felhasználó számára a bemenet.
Mi már biztos, hogy ez érvényes.
És akkor már felhívta a piramis.
Tehát Mario sikeresen mászni a piramis.
>> A nevem Zamyla.
És ez CS50.