1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA CHAN: Se on-me, Zamyla. 3 00:00:02,640 --> 00:00:06,950 Tänään aiomme toteuttaa Mario, jossa arvomme Mario 4 00:00:06,950 --> 00:00:10,730 täydellinen pyramidi hänelle hypätä. 5 00:00:10,730 --> 00:00:14,430 Katsotaan murtaa osatehtävien tähän ongelmaan. 6 00:00:14,430 --> 00:00:17,930 >> Ensinnäkin haluamme pyytää käyttäjältä korkeus pyramidin. 7 00:00:17,930 --> 00:00:20,510 Ja sitten me haluamme varmistaa että tulo on pätevä. 8 00:00:20,510 --> 00:00:23,280 Ja sitten me aiomme Kiinnitän pyramidin. 9 00:00:23,280 --> 00:00:26,850 >> Joten puhua kehotetaan ja validointi käyttäjä syöttää. 10 00:00:26,850 --> 00:00:29,920 Se voi näyttää Tämän tee-while-silmukka, joka 11 00:00:29,920 --> 00:00:33,250 kehottaa käyttäjää varten kokonaisluku ja sitten vain toistoja 12 00:00:33,250 --> 00:00:35,700 jos tämä kokonaisluku on virheellinen. 13 00:00:35,700 --> 00:00:38,220 Joten mitä pitäisi tämän ehdon olla? 14 00:00:38,220 --> 00:00:40,630 >> Tätä varten mennään takaisin spesifikaation. 15 00:00:40,630 --> 00:00:46,240 No, spec kertoo, että mitään pätevää korkeus tulee olemaan välillä 0 ja 23, 16 00:00:46,240 --> 00:00:47,350 inclusive. 17 00:00:47,350 --> 00:00:51,400 Niin se tarkoittaa, että mitä tahansa kelpaa korkeus tulee olemaan pienempi kuin 0 18 00:00:51,400 --> 00:00:53,840 tai yli 23. 19 00:00:53,840 --> 00:00:57,220 >> Joten nyt meillä on tämä tieto, nyt suunnittelemme kunnossa. 20 00:00:57,220 --> 00:00:59,230 Meidän on kuitenkin oltava varovaisia, koska nyt meillä on 21 00:00:59,230 --> 00:01:02,130 kaksi Booleans että haluamme arvioida. 22 00:01:02,130 --> 00:01:04,150 >> Tässä olen antanut sinulle kanssa totuustaulu. 23 00:01:04,150 --> 00:01:07,520 Tämä antaa meille mahdollisuuden ottaa kaksi Booleans, Boolen yksi ja kaksi. 24 00:01:07,520 --> 00:01:13,600 Ja voimme arvioida joko bool1 ja bool2 tai bool1 tai bool2. 25 00:01:13,600 --> 00:01:17,390 >> Joten mitä eroa välillä ja ja tai? 26 00:01:17,390 --> 00:01:21,810 No, bool1 ja bool2 tulee on tosi jos ja vain 27 00:01:21,810 --> 00:01:25,680 jos molemmat Booleans ovat totta, kun taas tai toimintaa 28 00:01:25,680 --> 00:01:30,190 on totta, jos jompikumpi Booleans tai molemmat ovat tosia. 29 00:01:30,190 --> 00:01:33,110 Joten tässä mielessä, katso jos voit selvittää 30 00:01:33,110 --> 00:01:37,460 mitä sopiva edellytys sinun do-while-silmukka varten virheellisen n 31 00:01:37,460 --> 00:01:38,850 tulee olemaan. 32 00:01:38,850 --> 00:01:43,540 >> Kanssa, että olemme pyydettäessä ja validoitu käyttäjältä korkeus pyramidin 33 00:01:43,540 --> 00:01:44,550 että he haluavat. 34 00:01:44,550 --> 00:01:47,740 Joten nyt, se on jopa meille piirtää pyramidin. 35 00:01:47,740 --> 00:01:50,520 Täydellinen pyramidi tähän Ongelma näyttää hieman 36 00:01:50,520 --> 00:01:56,340 näin, jossa meillä on vasen pyramidi, joitakin kuilu, ja sitten oikealle pyramidi. 37 00:01:56,340 --> 00:01:58,630 Joten rikkoa tätä hieman alaspäin. 38 00:01:58,630 --> 00:02:03,510 >> Jos menen tekstieditori, täällä olen piirretään meille vasemmalle kohdistetulla pyramidi. 39 00:02:03,510 --> 00:02:05,160 Mutta se ei tee. 40 00:02:05,160 --> 00:02:10,139 Mitä me haluamme tehdä, on haluamme luoda oikean linjassa pyramidin ensin. 41 00:02:10,139 --> 00:02:13,580 Joten tehdä tämän, vain työntää minun hash pitkin sivuun, 42 00:02:13,580 --> 00:02:18,240 Olen juuri menossa laittaa joitakin merkkejä välissä, vain nämä pisteet. 43 00:02:18,240 --> 00:02:22,560 Sitten aion laittaa kaksi on seuraavalle riville, ja toinen, että verkossa. 44 00:02:22,560 --> 00:02:26,070 Ja joten tässä minulla on oikea-linjassa pyramidi. 45 00:02:26,070 --> 00:02:28,540 >> Sen jälkeen aion palata ylärivissä 46 00:02:28,540 --> 00:02:33,930 ja laittaa kuilu, joka on, per spec, kaksi paikkaa. 47 00:02:33,930 --> 00:02:37,680 Sitten aion täyttää toisella puolella pyramidin. 48 00:02:37,680 --> 00:02:42,030 Aion mennä toiselle riville, kirjoita kaksi tilat kuilu ja sitten kaksi 49 00:02:42,030 --> 00:02:42,920 hash. 50 00:02:42,920 --> 00:02:47,020 Takaisin kolmannen rivin, kaksi paikkaa että kuilu ja kolme hash. 51 00:02:47,020 --> 00:02:51,480 Ja lopussa, kaksi paikkaa että kuilu ja neljä tiivisteiden. 52 00:02:51,480 --> 00:02:54,400 Niin, että mitä täyden pyramidin näyttää. 53 00:02:54,400 --> 00:02:57,260 >> Tietenkään emme halua Näiden pisteiden tavalla. 54 00:02:57,260 --> 00:03:01,220 Joten aiomme korvata nämä pisteitä laittamalla välilyöntejä. 55 00:03:01,220 --> 00:03:03,720 Yksi, kaksi, kolme ensimmäisellä rivillä. 56 00:03:03,720 --> 00:03:05,650 Yksi, kaksi toisessa. 57 00:03:05,650 --> 00:03:08,200 Ja toinen kolmannella rivillä. 58 00:03:08,200 --> 00:03:12,060 Joten tämä on mitä tekisimme, jos me halusi vain tehdä täydellinen pyramidi, 59 00:03:12,060 --> 00:03:13,700 sanovat, meidän tekstieditori. 60 00:03:13,700 --> 00:03:15,860 >> Joten tätä, ymmärtäminen kuvioita, 61 00:03:15,860 --> 00:03:19,870 ja muuntaa sen yli joitakin pseudokoodit. 62 00:03:19,870 --> 00:03:24,500 Kunkin rivin pyramidin haluamme tulostaa vasemmalle pyramidin ja sitten 63 00:03:24,500 --> 00:03:26,580 kuilu ja sitten oikealle pyramidi. 64 00:03:26,580 --> 00:03:30,260 Vasemmalle pyramidi, me painamme tarvittava määrä tiloja, 65 00:03:30,260 --> 00:03:31,740 jonka jälkeen hash. 66 00:03:31,740 --> 00:03:35,030 Sitten tulostaa kuilu, joka on vain kaksi paikkaa joka kerta. 67 00:03:35,030 --> 00:03:38,080 Ja oikeaan pyramidin, me painamme tarvittava määrä tiivisteitä. 68 00:03:38,080 --> 00:03:41,410 >> Toisen rivin teimme täsmälleen sama prosessi. 69 00:03:41,410 --> 00:03:44,510 Me tulostaa tilat vasemmalle pyramidi, tarvittava määrä 70 00:03:44,510 --> 00:03:49,930 tiivisteiden, kuilu, kaksi paikkaa, ja sitten tiivisteiden oikea pyramidin. 71 00:03:49,930 --> 00:03:52,490 >> Oletetaan puuttua malli vasemmalle pyramidin. 72 00:03:52,490 --> 00:03:55,660 Jos saisin tarkoituksia varten Tämän esimerkin korkeus 73 00:03:55,660 --> 00:03:58,790 kahdeksan pyytämien käyttäjä, niin minun ensimmäinen rivi 74 00:03:58,790 --> 00:04:01,020 olisi yksi hash ja seitsemän tilat. 75 00:04:01,020 --> 00:04:03,860 Toinen rivi olisi kaksi hash, kuusi tilat. 76 00:04:03,860 --> 00:04:06,749 Kolmas rivi, kolme hash, viisi tilat. 77 00:04:06,749 --> 00:04:09,040 Voit ehkä tehdä tämän itseäsi korkeus kahdeksan 78 00:04:09,040 --> 00:04:13,470 ja määrittää kunkin rivin montako tiivisteiden ja kuinka monta ruutua tarvitset. 79 00:04:13,470 --> 00:04:16,209 Mutta mitä me haluamme tehdä, on haluamme abstrakteja sitä. 80 00:04:16,209 --> 00:04:22,660 Siksi pyydän teitä mistään nnen rivin, kuinka monta tiivisteiden ja kuinka monta ruutua tarvitsemme? 81 00:04:22,660 --> 00:04:25,410 >> Nyt kun määritetään ohje kuinka monta hash 82 00:04:25,410 --> 00:04:29,920 ja kuinka monta ruutua tarvitset mitään nnen rivi tietylle korkeudelle, 83 00:04:29,920 --> 00:04:32,910 Muista olla varovainen miten olet indeksointi. 84 00:04:32,910 --> 00:04:37,160 Mitä tarkoitan tällä, että jokapäiväisessä elämä useimmat meistä alkaa laskea yhdellä. 85 00:04:37,160 --> 00:04:39,680 Joten ensimmäinen rivi olisi ykkönen. 86 00:04:39,680 --> 00:04:43,620 Toinen rivi olisi rivi numero kaksi, niin edelleen ja niin edelleen. 87 00:04:43,620 --> 00:04:47,620 >> Mutta tietotekniikassa ja CS50, olemme nolla-indeksoitu. 88 00:04:47,620 --> 00:04:50,750 Joten me todella alkaa laskea nollasta. 89 00:04:50,750 --> 00:04:54,020 Joten ensimmäinen rivi olisi olla rivi numero nolla. 90 00:04:54,020 --> 00:04:56,640 Toinen rivi Olisi rivi ykkönen. 91 00:04:56,640 --> 00:05:02,510 Jos siis korkeus oli kahdeksan minun pyramidi, sitten viimeinen arvo n 92 00:05:02,510 --> 00:05:05,850 olisi oikeastaan ​​seitsemän eikä kahdeksan. 93 00:05:05,850 --> 00:05:07,010 >> Joten ole varovainen tästä. 94 00:05:07,010 --> 00:05:10,750 Ja olla tietoinen, kun olet määritettäessä lukituskuviosi onko nolla-indeksoitu 95 00:05:10,750 --> 00:05:12,360 tai yksi-indeksoitu 96 00:05:12,360 --> 00:05:13,070 >> OK. 97 00:05:13,070 --> 00:05:15,380 Joten nyt meillä on kuvio vasemmalle pyramidi, 98 00:05:15,380 --> 00:05:18,650 meidän on määriteltävä kaavat kuilu. 99 00:05:18,650 --> 00:05:20,480 Onneksi tämä on todella helppoa. 100 00:05:20,480 --> 00:05:22,690 Se on vain aina kaksi välilyöntiä. 101 00:05:22,690 --> 00:05:25,240 >> Nyt siirrymme oikeaan kuvio. 102 00:05:25,240 --> 00:05:27,220 Ensimmäinen rivi on yksi hash. 103 00:05:27,220 --> 00:05:28,640 Toinen rivi, kaksi. 104 00:05:28,640 --> 00:05:29,530 Kolmas rivi, kolme. 105 00:05:29,530 --> 00:05:30,790 Niin edelleen ja niin edelleen. 106 00:05:30,790 --> 00:05:35,540 Joten jälleen, määritellä abstrakteja n ja mahdolliset korkeus kuinka monta hash 107 00:05:35,540 --> 00:05:38,810 ja kuinka monta ruutua jokainen rivi tulisi olla. 108 00:05:38,810 --> 00:05:39,700 >> OK. 109 00:05:39,700 --> 00:05:45,050 Joten me tiedämme, että jokainen rivi me täytyy suorittaa jokin prosessi. 110 00:05:45,050 --> 00:05:46,600 Miten se tehdään? 111 00:05:46,600 --> 00:05:50,440 No, käytämme silmukka konstruktio, koostuu alustusarvon, 112 00:05:50,440 --> 00:05:52,310 edellytys, ja päivityksen. 113 00:05:52,310 --> 00:05:54,830 Silmukoita voidaan käyttää toistaa prosesseihin. 114 00:05:54,830 --> 00:05:59,610 >> Sano Haluan sen tervehtimään, maailman 50 kertaa, niin minun silmukka 115 00:05:59,610 --> 00:06:03,510 voisi näyttää tältä, jos I alustaa minun muuttuja nollaan. 116 00:06:03,510 --> 00:06:06,200 Ehtona on, että i on pienempi kuin 50. 117 00:06:06,200 --> 00:06:09,670 Ja sitten päivitys on, että se kasvaa yhdellä joka kerta. 118 00:06:09,670 --> 00:06:14,700 Joten mitä tämä tekisi olisi tulosta hei, maailma 50 kertaa peräkkäin. 119 00:06:14,700 --> 00:06:18,080 >> Nyt sanoa halusin kerrata yli korkeus pyramidin. 120 00:06:18,080 --> 00:06:21,560 Sitten sijaan kovaa koodausta jotain arvoa siinä kunnossa, 121 00:06:21,560 --> 00:06:23,280 Olen vain käyttää korkeutta. 122 00:06:23,280 --> 00:06:27,180 Joten mitä tämä tekee on toistaa yli korkeus jokaisen rivin. 123 00:06:27,180 --> 00:06:30,280 Ja voin tehdä jotain sisällä ruumiin että silmukka. 124 00:06:30,280 --> 00:06:32,710 >> Mitä haluamme tehdä kehossa silmukan? 125 00:06:32,710 --> 00:06:36,550 No, kuten olemme aiemmin todettiin, me haluamme tulostaa tiloihin ja tiivisteiden 126 00:06:36,550 --> 00:06:40,730 vasemmalle pyramidin ja tulosta kaksi tilaa ja tulosta hash. 127 00:06:40,730 --> 00:06:42,500 Siksi olemme jo tajunnut, että ulos. 128 00:06:42,500 --> 00:06:45,670 Joten voimme alkaa täyttää ohjelmassamme paljon enemmän. 129 00:06:45,670 --> 00:06:49,850 >> Tässä olen ulompi silmukka, joka iteroi jokaisen rivin pyramidin. 130 00:06:49,850 --> 00:06:53,340 Ja sisällä että kehon aion tulostaa tiloihin toistuvasti, 131 00:06:53,340 --> 00:06:56,860 hash toistuvasti, ja sitten kuilu, ja sitten hash oikea pyramidi, 132 00:06:56,860 --> 00:07:00,440 ja sitten lopuksi uusi rivi aloittaa seuraavan rivin. 133 00:07:00,440 --> 00:07:02,860 >> Kanssa, että olemme pyydettäessä käyttäjää tulo. 134 00:07:02,860 --> 00:07:04,510 Olemme varmistaneet, että se on voimassa. 135 00:07:04,510 --> 00:07:06,280 Ja sitten olemme kiinnittänyt pyramidi. 136 00:07:06,280 --> 00:07:09,540 Joten Mario voi onnistuneesti kiivetä pyramidin. 137 00:07:09,540 --> 00:07:10,970 >> Nimeni on Zamyla. 138 00:07:10,970 --> 00:07:13,840 Ja tämä on CS50. 139 00:07:13,840 --> 00:07:15,419