1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> ROB BOWDEN: Sveiki, aš esu Robas, ir tegul šuolis į hacker leidimas Mario. 3 00:00:18,290 --> 00:00:21,760 Taigi pirmas dalykas, kurį reikia padaryti, tai gauti aukštį nuo naudotojo. 4 00:00:21,760 --> 00:00:26,290 Čia mes prašome juos ne neigiamas sveikasis skaičius mažesnis kaip 24 ir 5 00:00:26,290 --> 00:00:31,710 mes naudojame CS50 GetInt funkciją patraukti, kad sveikasis skaičius nuo naudotojo. 6 00:00:31,710 --> 00:00:35,260 Matome mes viduje do-while cikle kad ir toliau bus padarę tiek, kiek 7 00:00:35,260 --> 00:00:38,400 aukštis yra didesnis nei 23 arba mažesnis už 0. 8 00:00:38,400 --> 00:00:42,850 Ir todėl mes ir toliau, kol vartotojas faktiškai suteikia mums tai, ką norime. 9 00:00:42,850 --> 00:00:46,960 >> Kai mes turime tą aukštį, mes turime Pagrindinis Ciklas mūsų programą. 10 00:00:46,960 --> 00:00:49,510 Taigi, tegul pirmas pažvelgti pavyzdys iš pset spec. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Mes matome, kad šiame pavyzdyje, kai mes įvesti 4 aukščio, apatinėje eilutėje 13 00:00:56,940 --> 00:01:01,520 pirmasis spausdina keturis maišas, dviejų skyrių, ir dar keturios maišos. 14 00:01:01,520 --> 00:01:06,280 >> Tada vieną eilutę aukščiau, kad spausdina vieną kosmoso trys maišos, du tarpus 15 00:01:06,280 --> 00:01:09,690 atskirti piramides, ir dar trys maišos. 16 00:01:09,690 --> 00:01:13,460 Ir aukščiau, kad dvi erdves, du maišos, dvi erdves, du maišos. 17 00:01:13,460 --> 00:01:18,090 Ir, pagaliau, trys skyriai, vienas maišos, dviejų skyrių, vienas maišos. 18 00:01:18,090 --> 00:01:20,980 Taigi, jūs turėtumėte pastebėti modelis čia. 19 00:01:20,980 --> 00:01:22,545 >> Pažvelkime į kodą kaip mes ketiname daryti. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Čia mes matome, kad mes Iteracja per visus piramidės eilučių. 22 00:01:28,840 --> 00:01:31,720 Pirmiausia mes norime apskaičiuoti vietų skaičių. 23 00:01:31,720 --> 00:01:34,690 Ir atminkite, kad mes turime pradėti piramidės viršuje ir dirbti mūsų 24 00:01:34,690 --> 00:01:37,790 galo, nes mes negalime spausdinti apačioje po vieną eilutę aukštyn ir 25 00:01:37,790 --> 00:01:39,140 tada per vieną eilutę aukštyn. 26 00:01:39,140 --> 00:01:44,030 Taigi prie piramidės, pranešime viršuje kad vietų skaičius yra lygus 27 00:01:44,030 --> 00:01:45,720 aukštis minus 1. 28 00:01:45,720 --> 00:01:50,120 Mes ketiname spausdinti tris erdves, tada vienas maišos ir tada du erdvių 29 00:01:50,120 --> 00:01:53,350 atskira ir kita maišos. 30 00:01:53,350 --> 00:01:57,320 >> Taigi tarpai yra lygūs aukštis atėmus eilutę. 31 00:01:57,320 --> 00:02:03,180 Jei eilutė yra 1 ir mūsų aukštis yra 4, kad bus mums 3 erdves, kaip mes norime. 32 00:02:03,180 --> 00:02:06,900 Tai už kilpos tik nuotraukas kad vietų skaičių. 33 00:02:06,900 --> 00:02:12,630 Jei tarpai yra trys, tada mes ketiname sukurti vieną erdvę tris kartus. 34 00:02:12,630 --> 00:02:18,750 >> Tęstinis, dabar mes norime spausdinti hashes kairėje piramidės, kuri yra 35 00:02:18,750 --> 00:02:20,630 tiesiog lygios eilutės numerį. 36 00:02:20,630 --> 00:02:23,250 Žvelgiant atgal čia, eilės vienas, mes spausdinti vieną maišą. 37 00:02:23,250 --> 00:02:25,960 Antroje eilutėje mes spausdinti du, į trys eilutės mes spausdinti tris. 38 00:02:25,960 --> 00:02:30,440 Taigi mes tiesiog kilpa eilės kartų spausdinimas grotelėmis. 39 00:02:30,440 --> 00:02:34,830 Tada visiems piramidės eilučių, mes spausdinti lygiai du tarpus, kad atskirtumėte 40 00:02:34,830 --> 00:02:36,360 tos piramidės. 41 00:02:36,360 --> 00:02:39,590 >> Ir pagaliau, mes norime spausdinti teisę pusė piramidės, kuri yra 42 00:02:39,590 --> 00:02:42,160 vėl tą patį skaičių masyvus kaip kairėje pusėje. 43 00:02:42,160 --> 00:02:45,680 Ir todėl lygiai tas pats už linijos, kaip nurodyta aukščiau čia. 44 00:02:45,680 --> 00:02:49,445 Galiausiai, mes turime sukurti naują eilutę Siekiant pereiti į kitą eilutę 45 00:02:49,445 --> 00:02:51,690 piramidės ir tęsti spausdinimą. 46 00:02:51,690 --> 00:02:53,010 Štai ir viskas. 47 00:02:53,010 --> 00:02:54,860 Mano vardas yra Rob ir tai buvo Mario. 48 00:02:54,860 --> 00:03:01,718