1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA CHAN: Það er-me, Zamyla. 3 00:00:02,640 --> 00:00:06,950 Í dag, við erum að fara að innleiða Mario, þar sem við draga Mario 4 00:00:06,950 --> 00:00:10,730 fullt pýramída fyrir hann að stökkva yfir. 5 00:00:10,730 --> 00:00:14,430 Skulum brjóta niður sub-verkefni fyrir þessu vandamáli. 6 00:00:14,430 --> 00:00:17,930 >> Í fyrsta lagi viljum við að hvetja notandann fyrir hæð pýramídans. 7 00:00:17,930 --> 00:00:20,510 Og þá viljum við vera viss að það inntak sé gild. 8 00:00:20,510 --> 00:00:23,280 Og þá erum við að fara að langar að teikna pýramída. 9 00:00:23,280 --> 00:00:26,850 >> Svo skulum við tala um vekur og staðfesta notandi inntak. 10 00:00:26,850 --> 00:00:29,920 Það gæti litið eitthvað svona þetta, do-while lykkju sem 11 00:00:29,920 --> 00:00:33,250 hvetja notandann til að heiltala og þá aðeins endurtekningar 12 00:00:33,250 --> 00:00:35,700 ef það heiltala er ógilt. 13 00:00:35,700 --> 00:00:38,220 Svo hvað ætti þetta ástand að vera? 14 00:00:38,220 --> 00:00:40,630 >> Fyrir þetta, við skulum fara aftur við forskrift. 15 00:00:40,630 --> 00:00:46,240 Jæja, sérstakur segir okkur að við gilt hæð er að fara að vera á milli 0 og 23, 16 00:00:46,240 --> 00:00:47,350 innifalið. 17 00:00:47,350 --> 00:00:51,400 Svo þá þýðir að allir ógild hæð er að fara að vera minna en 0 18 00:00:51,400 --> 00:00:53,840 eða meira en 23. 19 00:00:53,840 --> 00:00:57,220 >> Svo nú er að við höfum þessar upplýsingar, skulum hönnun ástand okkar. 20 00:00:57,220 --> 00:00:59,230 En við þurfum að vera varkár, því nú höfum við 21 00:00:59,230 --> 00:01:02,130 tvær Booleans sem við viljum að meta. 22 00:01:02,130 --> 00:01:04,150 >> Hér ég hef veitt þér með sannleikann borð. 23 00:01:04,150 --> 00:01:07,520 Þetta gerir okkur kleift að taka tvö Booleans, Boolean eitt og tvö. 24 00:01:07,520 --> 00:01:13,600 Og við getum metið annaðhvort bool1 og bool2 eða bool1 eða bool2. 25 00:01:13,600 --> 00:01:17,390 >> Svo er það munurinn milli og eða? 26 00:01:17,390 --> 00:01:21,810 Jæja, bool1 og bool2 mun meta að sönn ef og aðeins 27 00:01:21,810 --> 00:01:25,680 ef báðir Booleans er satt, en það eða rekstri 28 00:01:25,680 --> 00:01:30,190 mun vera satt, ef annaðhvort ein að Booleans eða bæði eru sönn. 29 00:01:30,190 --> 00:01:33,110 Svo með þetta í huga, sjá hvort þú getur fundið út 30 00:01:33,110 --> 00:01:37,460 hvað viðeigandi skilyrði fyrir do-while lykkju þitt fyrir ógilda n 31 00:01:37,460 --> 00:01:38,850 er að fara til vera. 32 00:01:38,850 --> 00:01:43,540 >> Með þessi, höfum við beðið og fullgilt notandi fyrir hæð pýramídans 33 00:01:43,540 --> 00:01:44,550 sem þeir vilja. 34 00:01:44,550 --> 00:01:47,740 Svo nú er það undir okkur komið að draga pýramída. 35 00:01:47,740 --> 00:01:50,520 The fullur pýramída fyrir þetta Vandamálið mun líta svolítið 36 00:01:50,520 --> 00:01:56,340 eins og þetta, þar sem við höfum vinstri pýramída, sumir bilið, og þá rétt pýramída. 37 00:01:56,340 --> 00:01:58,630 Svo skulum brjóta þetta niður smá. 38 00:01:58,630 --> 00:02:03,510 >> Ef ég fer til textaritlinum minn, hér hef ég dregið okkur vinstri-takt pýramída. 39 00:02:03,510 --> 00:02:05,160 En það mun ekki gera. 40 00:02:05,160 --> 00:02:10,139 Það sem við viljum gera er að við viljum búa rétt-takt pýramída fyrst. 41 00:02:10,139 --> 00:02:13,580 Svo til að gera þetta, bara að ýta kjötkássa mínar meðfram til hliðar, 42 00:02:13,580 --> 00:02:18,240 Ég ætla bara að fara að setja nokkrar stafi á milli, bara þessum punktum. 43 00:02:18,240 --> 00:02:22,560 Þá ætla ég að setja tvö á Næsta lína, og einn á þeirri línu. 44 00:02:22,560 --> 00:02:26,070 Og svo hér er ég hef hægri-takt pýramída. 45 00:02:26,070 --> 00:02:28,540 >> Eftir það, ég ætla að fara aftur í efstu röð 46 00:02:28,540 --> 00:02:33,930 og setja í skarð, sem er, og á sérstakur, tveggja rýma. 47 00:02:33,930 --> 00:02:37,680 Þá er ég að fara að fylla í Hin hlið pýramída. 48 00:02:37,680 --> 00:02:42,030 Ég ætla að fara í annarri röð, skrifa tveir rými fyrir bilið og síðan tveir 49 00:02:42,030 --> 00:02:42,920 kjötkássa. 50 00:02:42,920 --> 00:02:47,020 Til baka í þriðju röð, tveir rými fyrir bilið og þremur kjötkássa. 51 00:02:47,020 --> 00:02:51,480 Og í lok, tveir rými fyrir bilið og fjórum kjötkássa. 52 00:02:51,480 --> 00:02:54,400 Svo er það sem fullur pýramída mun líta út. 53 00:02:54,400 --> 00:02:57,260 >> Að sjálfsögðu viljum við ekki þessir punktar í leiðinni. 54 00:02:57,260 --> 00:03:01,220 Þannig að við erum að fara að skipta þessum punktar eftir að setja nokkrar rými í. 55 00:03:01,220 --> 00:03:03,720 Einn, tveir, þrír á fyrstu línu. 56 00:03:03,720 --> 00:03:05,650 Einn, tveir á sekúndu. 57 00:03:05,650 --> 00:03:08,200 Og einn á þriðju línu. 58 00:03:08,200 --> 00:03:12,060 Svo er þetta það sem við myndum gera ef við langaði bara að gera fulla pýramída, 59 00:03:12,060 --> 00:03:13,700 segja, í textaritlinum okkar. 60 00:03:13,700 --> 00:03:15,860 >> Svo skulum taka þetta, skilning munstur, 61 00:03:15,860 --> 00:03:19,870 og umbreyta það yfir að einhverju sauðakóðanum. 62 00:03:19,870 --> 00:03:24,500 Fyrir hverja röð pýramída, við viljum að prenta vinstri pýramída og þá 63 00:03:24,500 --> 00:03:26,580 bilið og þá rétt pýramída. 64 00:03:26,580 --> 00:03:30,260 Fyrir vinstri pýramída, prenta við nauðsynlegu magni af rými, 65 00:03:30,260 --> 00:03:31,740 á eftir kjötkássa. 66 00:03:31,740 --> 00:03:35,030 Þá erum við að prenta bilið sem er bara tvær rými í hvert skipti. 67 00:03:35,030 --> 00:03:38,080 Og á réttum pýramída, prenta við tilskilinn fjölda kjötkássa. 68 00:03:38,080 --> 00:03:41,410 >> Fyrir annarri röð, sem gerð var við sama nákvæmlega ferli. 69 00:03:41,410 --> 00:03:44,510 Við prenta rými fyrir vinstri pýramída, nauðsynlegu magni 70 00:03:44,510 --> 00:03:49,930 á kjötkássa, bilið, tvö rými, og þá eru kjötkássa fyrir hægri pýramída. 71 00:03:49,930 --> 00:03:52,490 >> Við skulum takast á við mynstur fyrir vinstri pýramída. 72 00:03:52,490 --> 00:03:55,660 Ef ég hefði, vegna þess dæmis, hæð 73 00:03:55,660 --> 00:03:58,790 átta óskað eftir því notandi, þá fyrst röðin mín 74 00:03:58,790 --> 00:04:01,020 myndi hafa einn hass og sjö rými. 75 00:04:01,020 --> 00:04:03,860 annarri röð minn myndi hafa tveir kjötkássa, sex rými. 76 00:04:03,860 --> 00:04:06,749 Þriðja röðin, þrír kjötkássa, fimm rými. 77 00:04:06,749 --> 00:04:09,040 Þú getur sennilega gert þetta sjálfur fyrir hæð átta 78 00:04:09,040 --> 00:04:13,470 og ákveða fyrir hverja röð hversu margir kjötkássa og hversu margir eru sem þú þarft. 79 00:04:13,470 --> 00:04:16,209 En það sem við viljum gera er að Við viljum ágrip það. 80 00:04:16,209 --> 00:04:22,660 Svo ég spyr þig fyrir hvaða nth röð, hversu margir kjötkássa og hversu margir eru þurfum við? 81 00:04:22,660 --> 00:04:25,410 >> Nú, eins og þú ákveða fyrirmynd fyrir hversu margar kjötkássa 82 00:04:25,410 --> 00:04:29,920 og hversu margir eru sem þú þarft að allir n-ta röð fyrir tiltekið hæð, 83 00:04:29,920 --> 00:04:32,910 muna að vera varkár um hvernig þú ætlar að flokkun. 84 00:04:32,910 --> 00:04:37,160 Það sem ég meina með þessu er að í daglegu Líf flest okkar byrja að telja frá einum. 85 00:04:37,160 --> 00:04:39,680 Svo það fyrsta röðin væri númer eitt. 86 00:04:39,680 --> 00:04:43,620 Og seinni röðin yrði röð númer tvö, svo framvegis og svo framvegis. 87 00:04:43,620 --> 00:04:47,620 >> En í tölvunarfræði og CS50, við erum núll-verðtryggð. 88 00:04:47,620 --> 00:04:50,750 Svo við byrjum í raun að telja á núlli. 89 00:04:50,750 --> 00:04:54,020 Svo það fyrsta röðin myndi vera róður númer núll. 90 00:04:54,020 --> 00:04:56,640 Og seinni röðin væri róður númer eitt. 91 00:04:56,640 --> 00:05:02,510 Þannig að ef ég hefði hæð átta til pýramída minn, þá síðasta gildi á n 92 00:05:02,510 --> 00:05:05,850 væri í raun að vera sjö og ekki átta. 93 00:05:05,850 --> 00:05:07,010 >> Svo vera varkár um þetta. 94 00:05:07,010 --> 00:05:10,750 Og vera meðvitaður þegar þú ert að ákveða sniðið þitt hvort þinn núll-verðtryggð 95 00:05:10,750 --> 00:05:12,360 eða einn-verðtryggð 96 00:05:12,360 --> 00:05:13,070 >> OK. 97 00:05:13,070 --> 00:05:15,380 Svo nú er að við höfum mynstur fyrir vinstri pýramída, 98 00:05:15,380 --> 00:05:18,650 þurfum við að ákveða mynstur fyrir bilið. 99 00:05:18,650 --> 00:05:20,480 Sem betur fer, þetta er mjög auðvelt. 100 00:05:20,480 --> 00:05:22,690 Það er bara alltaf tveir rými. 101 00:05:22,690 --> 00:05:25,240 >> Svo nú erum við að halda áfram á réttri mynstri. 102 00:05:25,240 --> 00:05:27,220 Það fyrsta röðin mun hafa eitt kjötkássa. 103 00:05:27,220 --> 00:05:28,640 Önnur röðin tveir. 104 00:05:28,640 --> 00:05:29,530 Þriðja röðin, þrír. 105 00:05:29,530 --> 00:05:30,790 Svo framvegis og svo framvegis. 106 00:05:30,790 --> 00:05:35,540 Svo aftur, ákveða fyrir hvaða ágrip n og hvaða hæð hversu margir kjötkássa 107 00:05:35,540 --> 00:05:38,810 og hversu mörg rými hver róður ætti að hafa. 108 00:05:38,810 --> 00:05:39,700 >> OK. 109 00:05:39,700 --> 00:05:45,050 Þannig að við vitum að fyrir hverja röð vér þarf að sinna smá ferli. 110 00:05:45,050 --> 00:05:46,600 Hvernig gerum við það? 111 00:05:46,600 --> 00:05:50,440 Jæja, notum við til lykkja reisa, samanstendur af frumstilling, 112 00:05:50,440 --> 00:05:52,310 ástand, og uppfærslu. 113 00:05:52,310 --> 00:05:54,830 Fyrir lykkjur er hægt að nota að endurtaka ferli. 114 00:05:54,830 --> 00:05:59,610 >> Svo segi ég vil það að segja halló, Heimurinn 50 sinnum, þá minn fyrir lykkju 115 00:05:59,610 --> 00:06:03,510 myndi líta eitthvað eins og þetta, þar sem Ég frumstilla breytu mitt á núll. 116 00:06:03,510 --> 00:06:06,200 Skilyrði er að ég er minna en 50. 117 00:06:06,200 --> 00:06:09,670 Og þá er uppfærsla sem það stighækkandi eftir einn í hvert skipti. 118 00:06:09,670 --> 00:06:14,700 Svo hvað þetta myndi gera væri að prenta halló, heimur 50 sinnum í röð. 119 00:06:14,700 --> 00:06:18,080 >> Nú segi ég vildi árétta yfir hæð pýramídans. 120 00:06:18,080 --> 00:06:21,560 Þá í staðinn fyrir harða erfðaskrá sumir gildi í því ástandi, 121 00:06:21,560 --> 00:06:23,280 Ég nota bara breytilega hæð. 122 00:06:23,280 --> 00:06:27,180 Svo hvað þetta mun gera er kunnugt yfir hæð hverri röð. 123 00:06:27,180 --> 00:06:30,280 Og ég get gert eitthvað inni um líkama þess lykkju. 124 00:06:30,280 --> 00:06:32,710 >> Hvað viljum við gera inni í líkama lykkju? 125 00:06:32,710 --> 00:06:36,550 Jæja, eins og við fram áður, viljum við að prenta rými og á kjötkássa 126 00:06:36,550 --> 00:06:40,730 fyrir vinstri pýramída og þá prenta tvö rými og þá prenta kjötkássa. 127 00:06:40,730 --> 00:06:42,500 Þannig að við höfum nú þegar mynstrağur það út. 128 00:06:42,500 --> 00:06:45,670 Þannig að við getum byrjað að fylla í prógramminu mikið meira. 129 00:06:45,670 --> 00:06:49,850 >> Hér hef ég í ytri í lykkju sem iterates yfir í hverri umf í pýramída. 130 00:06:49,850 --> 00:06:53,340 Og inni að líkama sem ég ætla að prenta rými ítrekað, 131 00:06:53,340 --> 00:06:56,860 kjötkássa ítrekað, og þá bilið, og þá kjötkássa fyrir hægri pýramída, 132 00:06:56,860 --> 00:07:00,440 og þá loks, ný lína að byrja á næsta róður. 133 00:07:00,440 --> 00:07:02,860 >> Með þessi, höfum við beðið notandi fyrir inntak. 134 00:07:02,860 --> 00:07:04,510 Við höfum gert úr skugga um að það sé gild. 135 00:07:04,510 --> 00:07:06,280 Og þá höfum við dregið pýramída. 136 00:07:06,280 --> 00:07:09,540 Svo Mario getur tekist klifra pýramída. 137 00:07:09,540 --> 00:07:10,970 >> Mitt nafn er Zamyla. 138 00:07:10,970 --> 00:07:13,840 Og þetta er CS50. 139 00:07:13,840 --> 00:07:15,419