1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA CHAN: Tai man, Zamyla. 3 00:00:02,500 --> 00:00:06,910 Šiandien Mario, mes ketiname būti piešimo pusę piramidę Mario 4 00:00:06,910 --> 00:00:08,290 įkopti. 5 00:00:08,290 --> 00:00:11,570 >> Taigi pakalbėkime apie mūsų to-do-ųjų šią problemą. 6 00:00:11,570 --> 00:00:13,610 Mes ketiname norite kad tai paskatins ir patvirtinti 7 00:00:13,610 --> 00:00:18,290 už galiojantį įėjimo, kaip vartotojas aukštos jie nori Mario piramidės būti. 8 00:00:18,290 --> 00:00:20,090 Ir tada, mes ketiname jį piešti. 9 00:00:20,090 --> 00:00:24,870 Taigi pradėkime su paskatino ir už jų indėlį vartotoją patvirtinti. 10 00:00:24,870 --> 00:00:27,640 >> Mes galime pasinaudoti ir CS50 biblioteka funkcija 11 00:00:27,640 --> 00:00:31,160 gauti int, kad bus užtikrinti, kad vartotojas įveda sveikasis skaičius. 12 00:00:31,160 --> 00:00:35,730 Bet teigiami sveikieji skaičiai, neigiamas sveikieji skaičiai, skaičius 0 yra graži žaidimas. 13 00:00:35,730 --> 00:00:41,670 Priešingu atveju, vartotojas bus raginami bandykite dar kartą, kol jie įvesties galiojantį sveikasis skaičius. 14 00:00:41,670 --> 00:00:44,210 Dabar nors Gauti INT daro iš už mus daug darbo 15 00:00:44,210 --> 00:00:46,730 siekiant užtikrinti, kad vartotojas suteikia mums sveikasis skaičius, 16 00:00:46,730 --> 00:00:50,760 mes vis dar reikia taikyti kai papildomi apribojimai, kad. 17 00:00:50,760 --> 00:00:56,420 Galų gale, mes negalime turėti Mario laipioti pusė piramidės aukščio neigiamas 12. 18 00:00:56,420 --> 00:00:59,040 >> Be to, to, problema specifikacija 19 00:00:59,040 --> 00:01:02,490 sako, kad tik mes galime leidžia Mario lipti 20 00:01:02,490 --> 00:01:06,940 aukščių piramidės tarp 0 ir 23. 21 00:01:06,940 --> 00:01:11,120 Gerai, kad tai reiškia, kad turime nuolat raginimas vartotojui 22 00:01:11,120 --> 00:01:14,320 mums galiojanti skaičius ir tik toliau 23 00:01:14,320 --> 00:01:17,120 kai jie davė mums galiojantį aukštį. 24 00:01:17,120 --> 00:01:18,720 Kaip mes tai darome? 25 00:01:18,720 --> 00:01:23,760 >> Na, tęstinis procesas duoti mums iš loops-- darai kažką idėja 26 00:01:23,760 --> 00:01:24,720 pakartotinius. 27 00:01:24,720 --> 00:01:28,220 Vienas kilpa C kaip laiko kilpa, kad nuolat 28 00:01:28,220 --> 00:01:33,480 vykdyti kilpos kūną tol, kol duotas būklė įvertina tiesa. 29 00:01:33,480 --> 00:01:36,200 Kaip tik ši sąlyga įvertina false, 30 00:01:36,200 --> 00:01:39,770 programa bus pradėti kokia ateina po to. 31 00:01:39,770 --> 00:01:43,180 Taigi, nors kilpos vienas iš būdų užtikrinti, kad mes nuolat 32 00:01:43,180 --> 00:01:45,320 greitai galiojančiam įvesties vartotoją. 33 00:01:45,320 --> 00:01:50,070 Ir kai jie suteikia mums galiojantį įvestį, mes pereiti į ką kalbama toliau. 34 00:01:50,070 --> 00:01:54,380 Mes žinome, kad mes ketiname paklausti už įvesties vartotojo bent vieną kartą. 35 00:01:54,380 --> 00:01:59,200 Taigi dabar mes einame iki sesuo while cikle, kuris yra do while cikle. 36 00:01:59,200 --> 00:02:02,650 >> Daryti, o kilpos vykdys organas linijos bent vieną kartą. 37 00:02:02,650 --> 00:02:06,150 Taigi be tikrinant sąlygą, ši grupė vykdys kilpos kūną. 38 00:02:06,150 --> 00:02:09,750 Ir tada patikrinkite būklę pamatyti ar jis turi kartojasi. 39 00:02:09,750 --> 00:02:13,080 Tai praverčia, kai mes patvirtinti vartotojo įvestį. 40 00:02:13,080 --> 00:02:15,830 Mes žinome, kad mes ketiname juos užduoti bent vieną kartą. 41 00:02:15,830 --> 00:02:18,780 Taigi do while cikle galėtų atrodo kažkas panašaus į tai. 42 00:02:18,780 --> 00:02:20,090 Mes turime sveikasis skaičius n. 43 00:02:20,090 --> 00:02:22,760 Ir viduje darbų o kilpos, mes iš karto 44 00:02:22,760 --> 00:02:24,750 paskatinti už sveikasis skaičius vartotoją. 45 00:02:24,750 --> 00:02:29,740 Jei n yra neteisingas, tada mes greitai juos vėl ir vėl ir vėl, kol jie 46 00:02:29,740 --> 00:02:31,820 mums, kad galiojantį sveikasis skaičius. 47 00:02:31,820 --> 00:02:37,440 Galiausiai, kai n yra galiojanti įėjimas, mes pereiti prie mūsų programą poilsio. 48 00:02:37,440 --> 00:02:41,830 >> Taigi grįžkime prie spec ir patikrinimas kas už galiojantį įvesties sąlygos 49 00:02:41,830 --> 00:02:43,670 bus. 50 00:02:43,670 --> 00:02:48,090 Galiojantys aukščiai ketinate būti tarp 0 ir 23, imtinai. 51 00:02:48,090 --> 00:02:53,350 Taigi negaliojančių aukščiai ketinate negali būti mažesnis kaip 0 arba daugiau kaip 23. 52 00:02:53,350 --> 00:02:56,420 Taigi nepamirškite dizainas Jūsų būklė atidžiai, 53 00:02:56,420 --> 00:02:58,660 žinant, kad su sąlyga, už tai, o kilpos 54 00:02:58,660 --> 00:03:01,470 turėtų būti, o n yra negaliojantis. 55 00:03:01,470 --> 00:03:05,080 Dabar tai nesiruošia būti paprastas vieną Bulio logikos išraiška. 56 00:03:05,080 --> 00:03:07,630 Mes ketiname turėti derinti du skirtingi išsireiškimai 57 00:03:07,630 --> 00:03:09,900 kad visą mūsų būklę. 58 00:03:09,900 --> 00:03:13,290 >> Taigi tegul tiesiog pažvelgti į tiesos lentelę aš jau davė jums užuominą, kad mes 59 00:03:13,290 --> 00:03:15,200 bus susiję su dviem loginės reikšmės. 60 00:03:15,200 --> 00:03:19,620 Taigi čia tiesa stalo, kur aš turime du Booleans-- Būlio 1 ir 2. 61 00:03:19,620 --> 00:03:27,050 Taigi, mes turime galimybę įvertinti bool1 ir bool2 arba bool1 arba bool2. 62 00:03:27,050 --> 00:03:31,980 Ir bus tik tiesa, jei abu Loginę įvertinti, tiesa, kadangi visos 63 00:03:31,980 --> 00:03:37,280 arba bus teisinga tol, kol viena iš dvi loginės reikšmės įvertina tiesa. 64 00:03:37,280 --> 00:03:41,450 Gerai, kad šiek tiek laiko, pristabdyti šio vaizdo ir suvirškinti šią tiesą lentelę. 65 00:03:41,450 --> 00:03:42,930 Aš būsiu čia laukia. 66 00:03:42,930 --> 00:03:45,760 Kai grįšite, pamatyti jei galite suvesti 67 00:03:45,760 --> 00:03:51,910 Būlio išraiška jūsų sąlyga n invalidu įvestis. 68 00:03:51,910 --> 00:03:54,420 >> Taigi, dabar, kad mes turime galioja naudotojo įvesties, tegul 69 00:03:54,420 --> 00:03:58,710 eiti į priekį ir kalbėti apie tai, kaip mes gali atkreipti pusę piramidę. 70 00:03:58,710 --> 00:04:03,410 Čia šią paprastą teksto redaktorių, Aš atkreipė kairįjį suderinta piramidę. 71 00:04:03,410 --> 00:04:07,050 Bet mes žinome, kad reikia mūsų piramidė turi būti teisinga suderinti. 72 00:04:07,050 --> 00:04:08,650 Taigi, kaip galėčiau tai padaryti? 73 00:04:08,650 --> 00:04:11,440 Na, aš gali bandyti stumti viskas į šoną 74 00:04:11,440 --> 00:04:14,880 tiesiog išleisti šiek tiek charakteris tarp. 75 00:04:14,880 --> 00:04:16,779 Ir tada, ir kitą linija, aš ruošiuosi įdėti 76 00:04:16,779 --> 00:04:20,970 kai daugiau simbolių stumti jį kartu, ir further-- taip toliau ir taip forth-- 77 00:04:20,970 --> 00:04:23,360 kol turiu teisę suderinti piramidę. 78 00:04:23,360 --> 00:04:27,780 Taigi mes turime tinkamą lygiavimą piramidę, tačiau jis neatrodo toks didelis, su taškais. 79 00:04:27,780 --> 00:04:30,680 Bet mes vis dar norime išlaikyti tą gražią tarpai. 80 00:04:30,680 --> 00:04:35,260 Taigi, aš ruošiuosi pažodžiui įterpti keletą erdvių. 81 00:04:35,260 --> 00:04:39,420 >> Vietoj trijų taškų, aš įdėti vieną, du, tris erdves. 82 00:04:39,420 --> 00:04:40,370 Antroje eilutėje. 83 00:04:40,370 --> 00:04:42,640 Aš įdėti vieną, du erdves. 84 00:04:42,640 --> 00:04:45,370 Ir priešpaskutinę linija, tik vienas tarpas. 85 00:04:45,370 --> 00:04:48,290 Ir čia turiu teisę suderinti piramidę. 86 00:04:48,290 --> 00:04:52,170 Nuo daro pavyzdį tekste redaktorius, mes turime už modelio idėja 87 00:04:52,170 --> 00:04:54,590 kad mes naudosime atkreipti pusę piramidę. 88 00:04:54,590 --> 00:04:58,080 Už kiekvieną iš eilės, ką mes padarėme yra mes tipo kai erdves, 89 00:04:58,080 --> 00:05:00,170 ir tada atspausdinti kai maišos, tada atspausdinti 90 00:05:00,170 --> 00:05:03,020 klavišą Enter, kuri yra sukurti naują eilutę. 91 00:05:03,020 --> 00:05:07,770 Taigi, dabar, kad mes turime, kad eikime dar vieną žingsnį ir rasti modelį. 92 00:05:07,770 --> 00:05:10,170 >> Taigi, aš ruošiuosi pasakyti, nes interesai Šiame pavyzdyje, 93 00:05:10,170 --> 00:05:12,480 mes susiduriame su 8 aukštį. 94 00:05:12,480 --> 00:05:17,100 Pirma eilutė teks du maišos, išvardytos toliau septynias erdves. 95 00:05:17,100 --> 00:05:20,020 Į second-- trys maišas, šeši erdvėse. 96 00:05:20,020 --> 00:05:24,260 Trečiosios row-- keturi maišas, penki spaces-- taip toliau ir taip toliau 97 00:05:24,260 --> 00:05:26,350 kol mes gauti Neribotos eilės. 98 00:05:26,350 --> 00:05:31,540 Taigi, prašau jus Neribotos eilės kiek maišos mes ketiname turėti 99 00:05:31,540 --> 00:05:33,120 ir kiek erdves? 100 00:05:33,120 --> 00:05:37,000 Taigi, tai iki jums išsiaiškinti formulė atstovauti Kiek maišų 101 00:05:37,000 --> 00:05:42,020 ir kiek erdvės reikia Neribotos eilutėje, kai jūs turite tam tikrą aukštį. 102 00:05:42,020 --> 00:05:46,060 >> Dabar, kai jūs suprasti tai atlikti, būti atsargūs, kaip jūs indeksavimo. 103 00:05:46,060 --> 00:05:49,170 Ką reiškia tai, kad kasdieniame gyvenime mums visiems 104 00:05:49,170 --> 00:05:51,540 pradėti skaičiuoti, paprastai 1 d. 105 00:05:51,540 --> 00:05:55,950 Bet CS50 ir kompiuterių mokslo apskritai, esame 0 indeksuojami. 106 00:05:55,950 --> 00:06:00,620 Taigi pirmas eilėje būtų n 0, o ne 1. 107 00:06:00,620 --> 00:06:04,550 Būkite atsargūs tai, kai esate bando išsiaiškinti savo modelį. 108 00:06:04,550 --> 00:06:07,570 Taigi dabar grįžkime į tai, kaip mes ketiname padaryti mūsų piramidę. 109 00:06:07,570 --> 00:06:12,300 Už kiekvieną iš eilės, mes ketiname norite spausdinti erdves, spausdinti maišų, 110 00:06:12,300 --> 00:06:14,050 ir tada spausdinti naują eilutę. 111 00:06:14,050 --> 00:06:19,160 Užuomina čia yra Žodis "už" kiekvienoje eilutėje. 112 00:06:19,160 --> 00:06:21,470 C, turime konstruktą vadinamas for ciklas, 113 00:06:21,470 --> 00:06:25,250 kurią sudaro iniciacijos, sąlyga, atnaujinimas, 114 00:06:25,250 --> 00:06:26,790 ir kilpos kūno. 115 00:06:26,790 --> 00:06:31,360 >> Pasakyti, kad aš norėjau pasakyti, labas pasaulis, 50 kartų, mano for ciklas 116 00:06:31,360 --> 00:06:32,880 atrodytų kažką panašaus į tai. 117 00:06:32,880 --> 00:06:35,480 Aš inicijuoti mano sveikasis skaičius 0. 118 00:06:35,480 --> 00:06:38,230 Sąlyga, kad aš yra mažesnis nei 50. 119 00:06:38,230 --> 00:06:42,350 Ir tada mano atnaujinimas yra tik incrementing I viena kiekvieną kartą. 120 00:06:42,350 --> 00:06:45,140 Mes taip pat gali naudoti kilpomis į pakartoti užkliuvę. 121 00:06:45,140 --> 00:06:47,820 Atkreipkite dėmesį, čia, kaip mes turime ne sunku koduojami skaičių, 122 00:06:47,820 --> 00:06:51,820 o dedamas kintamąjį aukštis, o ne į su sąlyga,. 123 00:06:51,820 --> 00:06:56,420 Taigi, ką aš darau čia aš Iteracja per kiekvieną piramidės eilės. 124 00:06:56,420 --> 00:07:00,160 Galiu padaryti kažką kiekvienam eilutę viduje mano kilpa kūno. 125 00:07:00,160 --> 00:07:02,350 >> Ką mes darome vidaus iš ciklo kūnas? 126 00:07:02,350 --> 00:07:07,120 Na, kaip jau sakė, mes spausdinti erdves ir mes spausdinti maišų 127 00:07:07,120 --> 00:07:09,480 ir mes spausdinant nauja linija. 128 00:07:09,480 --> 00:07:11,950 Taigi, mano išorinis for ciklas atrodys taip. 129 00:07:11,950 --> 00:07:15,070 Aš pakartoti per kiekvieną eilutę piramidės, naudojant, 130 00:07:15,070 --> 00:07:18,890 šiuo atveju, aukštis yra kintamasis, , kuris saugo piramidės aukštį. 131 00:07:18,890 --> 00:07:22,870 Viduje tos kilpos kūną, aš ketinate spausdinti erdvių pakartotinai spausdinti 132 00:07:22,870 --> 00:07:26,730 pakartotinai šios maišos, ir tada spausdinti naują eilutę. 133 00:07:26,730 --> 00:07:31,010 >> Todėl dabar, naudojant visus iš koncepcijos, kad Aš kalbėjau apie šiame praeinamiesiems, 134 00:07:31,010 --> 00:07:35,210 jums turėtų būti suteikta galimybė paskatinti vartotojas įvesties, patvirtinti, kad įvesties, 135 00:07:35,210 --> 00:07:37,370 ir tada atkreipti pusę piramidę. 136 00:07:37,370 --> 00:07:41,510 >> Mano vardas Zamyla, ir tai yra CS50. 137 00:07:41,510 --> 00:07:43,167