1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA CHAN: Se on minulle, Zamyla. 3 00:00:02,500 --> 00:00:06,910 Tänään Mario, aiomme olla piirustus puoli pyramidin Mario 4 00:00:06,910 --> 00:00:08,290 kiivetä. 5 00:00:08,290 --> 00:00:11,570 >> Joten puhua meidän to-do: n tähän ongelmaan. 6 00:00:11,570 --> 00:00:13,610 Aiomme haluta kysymään ja vahvistaa 7 00:00:13,610 --> 00:00:18,290 käyttäjältä pätevä panos miten korkea he haluavat Mario pyramidi olla. 8 00:00:18,290 --> 00:00:20,090 Ja sitten, me aiomme vetää sitä. 9 00:00:20,090 --> 00:00:24,870 Joten Aloitetaan kanssa suostuttelu ja validointi käyttäjä heidän panoksestaan. 10 00:00:24,870 --> 00:00:27,640 >> Voimme hyödyntää CS50 Arkistotoimintoluettelo 11 00:00:27,640 --> 00:00:31,160 saada int, joka varmistaa, että käyttäjä syöttää kokonaisluvun. 12 00:00:31,160 --> 00:00:35,730 Mikä tahansa positiivista kokonaislukua, negatiivinen kokonaisluvut, lukumäärä 0 ovat kaikki reilun pelin. 13 00:00:35,730 --> 00:00:41,670 Muussa tapauksessa käyttäjä kehotetaan uudelleen, kunnes ne tulo kelvollinen kokonaisluku. 14 00:00:41,670 --> 00:00:44,210 Nyt vaikka get int tekee paljon työtä meille 15 00:00:44,210 --> 00:00:46,730 sen varmistamiseksi, että Käyttäjä antaa meille kokonaisluku, 16 00:00:46,730 --> 00:00:50,760 tarvitsemme vielä soveltaa joitakin lisärajoituksia että. 17 00:00:50,760 --> 00:00:56,420 Loppujen lopuksi meillä ei voi olla Mario kiipeily puoli pyramidin korkeus negatiivinen 12. 18 00:00:56,420 --> 00:00:59,040 >> Lisäksi siitä, että ongelma erittely 19 00:00:59,040 --> 00:01:02,490 sanoo, että voimme vain anna Mario kiivetä 20 00:01:02,490 --> 00:01:06,940 pyramidi korkeuksia välillä 0 ja 23. 21 00:01:06,940 --> 00:01:11,120 OK, niin se tarkoittaa, että tarvitsemme jatkuvasti kysyy käyttäjältä 22 00:01:11,120 --> 00:01:14,320 antaa meille pätevä numero ja vain jatkaa 23 00:01:14,320 --> 00:01:17,120 kun he ovat antaneet meille pätevä korkeus. 24 00:01:17,120 --> 00:01:18,720 Miten se tehdään? 25 00:01:18,720 --> 00:01:23,760 >> No, jatkuvia prosesseja antaa meille ajatus loops-- tehdä jotain 26 00:01:23,760 --> 00:01:24,720 toistuvasti. 27 00:01:24,720 --> 00:01:28,220 Yksi silmukka C kuin aikaa silmukka, joka tulee jatkuvasti 28 00:01:28,220 --> 00:01:33,480 suorittaa rungon silmukan niin kauan kuin tietyn ehto on tosi. 29 00:01:33,480 --> 00:01:36,200 Heti kun tämä ehto epätosi, 30 00:01:36,200 --> 00:01:39,770 ohjelma etenee mitä tulee sen jälkeen. 31 00:01:39,770 --> 00:01:43,180 Joten kun silmukat ovat yksi tapa varmistamalla, että me jatkuvasti 32 00:01:43,180 --> 00:01:45,320 kehottavat käyttäjää varten pätevän sisääntulon. 33 00:01:45,320 --> 00:01:50,070 Ja kun he antavat meille pätevä panos, me siirrymme mitä tulee seuraavaksi. 34 00:01:50,070 --> 00:01:54,380 Tiedämme, että me aiomme kysyä käyttäjä syöttämään ainakin kerran. 35 00:01:54,380 --> 00:01:59,200 Nyt tulemme sisar kun taas silmukka, joka on do while-silmukka. 36 00:01:59,200 --> 00:02:02,650 >> Tehdä, kun silmukoita suorittaa elin silmukan ainakin kerran. 37 00:02:02,650 --> 00:02:06,150 Joten tarkistamatta ehto, se tulee suorittaa kehon silmukan. 38 00:02:06,150 --> 00:02:09,750 Ja sitten tarkistaa ehdon nähdä onko se tarvitsee toistaa itseään. 39 00:02:09,750 --> 00:02:13,080 Tämä on kätevä, kun olemme validointi käyttäjä syöttää. 40 00:02:13,080 --> 00:02:15,830 Tiedämme, että olemme menossa kysyä heiltä ainakin kerran. 41 00:02:15,830 --> 00:02:18,780 Joten tee taas silmukka voisi näyttää tältä. 42 00:02:18,780 --> 00:02:20,090 Meillä on kokonaisluku n. 43 00:02:20,090 --> 00:02:22,760 Ja sisäpuoli do kun silmukka, me heti 44 00:02:22,760 --> 00:02:24,750 pyytää käyttäjältä kokonaisluvun. 45 00:02:24,750 --> 00:02:29,740 Jos n ei kelpaa, niin me pyytää heitä uudestaan ​​ja uudestaan ​​ja uudestaan, kunnes ne 46 00:02:29,740 --> 00:02:31,820 meille, että voimassa oleva kokonaisluku. 47 00:02:31,820 --> 00:02:37,440 Lopuksi, kun n on pätevä panos käymme edetä loput meidän ohjelman. 48 00:02:37,440 --> 00:02:41,830 >> Joten mennään takaisin spec ja tarkistaa mitä edellytykset kelvollisen panos 49 00:02:41,830 --> 00:02:43,670 tulee olemaan. 50 00:02:43,670 --> 00:02:48,090 Voimassa olevat korkeudet ovat menossa olla välillä 0 ja 23, mukaan lukien. 51 00:02:48,090 --> 00:02:53,350 Joten kelpaa korkeudet ovat menossa olla alle 0 tai yli 23. 52 00:02:53,350 --> 00:02:56,420 Muista siis suunnitella vointisi huolellisesti, 53 00:02:56,420 --> 00:02:58,660 tietäen, että ehto 'tee samalla silmukka 54 00:02:58,660 --> 00:03:01,470 pitäisi olla taas n on virheellinen. 55 00:03:01,470 --> 00:03:05,080 Nyt tämä ei tule olemaan yksinkertainen yhden Boolen lauseke. 56 00:03:05,080 --> 00:03:07,630 Aiomme on yhdistettävä kaksi eri ilmaisuja 57 00:03:07,630 --> 00:03:09,900 tehdä meidän koko kunnossa. 58 00:03:09,900 --> 00:03:13,290 >> Joten katsokaa totuustauluna olen jo antanut sinulle vihjeen siitä, että olemme 59 00:03:13,290 --> 00:03:15,200 aiotaan käsitellä kaksi Booleans. 60 00:03:15,200 --> 00:03:19,620 Joten tässä on totuustaulu, jossa olen on kaksi Booleans-- Boolen 1 ja 2. 61 00:03:19,620 --> 00:03:27,050 Joten meillä on mahdollisuus arvioida bool1 ja bool2 tai bool1 tai bool2. 62 00:03:27,050 --> 00:03:31,980 Ja vain olla totta, jos molemmat Booleans on tosi, kun taas kaikki 63 00:03:31,980 --> 00:03:37,280 tai on totta, niin kauan kuin yksi kaksi Booleans tosi. 64 00:03:37,280 --> 00:03:41,450 OK, joten hetki, tauko tämä video- ja sulattaa tämän totuustaulu. 65 00:03:41,450 --> 00:03:42,930 Olen täällä odottamassa. 66 00:03:42,930 --> 00:03:45,760 Kun tulet takaisin, katso Jos voit koota 67 00:03:45,760 --> 00:03:51,910 Boolen lausekkeen oman kunto n on virheellisen syötteen. 68 00:03:51,910 --> 00:03:54,420 >> Joten nyt meillä on pätevä käyttäjä syöttää, katsotaanpa 69 00:03:54,420 --> 00:03:58,710 mennä eteenpäin ja puhua siitä, miten me ehkä piirtää puoli pyramidin. 70 00:03:58,710 --> 00:04:03,410 Täällä tämä yksinkertainen tekstieditori, Olen piirtänyt vasemman linjassa pyramidi. 71 00:04:03,410 --> 00:04:07,050 Mutta me tiedämme, että me tarvitsemme pyramidi on oikeassa linjassa. 72 00:04:07,050 --> 00:04:08,650 Miten voisin tehdä tämän? 73 00:04:08,650 --> 00:04:11,440 No, voisin yrittää työntää kaikki sivuun 74 00:04:11,440 --> 00:04:14,880 n vain asettamalla vähän merkki välillä. 75 00:04:14,880 --> 00:04:16,779 Ja sitten seuraavalle linja, aion laittaa 76 00:04:16,779 --> 00:04:20,970 lisää merkkejä työntää sitä pitkin, ja further-- niin edelleen ja niin forth-- 77 00:04:20,970 --> 00:04:23,360 kunnes on oikeus kohdakkain pyramidin. 78 00:04:23,360 --> 00:04:27,780 Joten meillä on oikeus align pyramidi, mutta se ei näytä niin hyvältä pisteitä. 79 00:04:27,780 --> 00:04:30,680 Mutta haluamme kuitenkin väittävät, että mukavaa välit. 80 00:04:30,680 --> 00:04:35,260 Joten aion kirjaimellisesti lisätä joitakin tiloja. 81 00:04:35,260 --> 00:04:39,420 >> Sen sijaan, että kolme pistettä, minä laittaa yksi, kaksi, kolme tiloja. 82 00:04:39,420 --> 00:04:40,370 Toisella rivillä. 83 00:04:40,370 --> 00:04:42,640 Laitan yksi, kaksi paikkaa. 84 00:04:42,640 --> 00:04:45,370 Ja toiseksi viimeinen line, vain yhden tilan. 85 00:04:45,370 --> 00:04:48,290 Ja tässä on oikeus linjassa pyramidi. 86 00:04:48,290 --> 00:04:52,170 Tekemästä esimerkiksi tekstissä toimittaja, meillä on idea kuviota 87 00:04:52,170 --> 00:04:54,590 että käytämme tehdä puoli pyramidin. 88 00:04:54,590 --> 00:04:58,080 Sillä jokainen rivi, mitä teimme on meidän kirjoittamalla jotain tiloja, 89 00:04:58,080 --> 00:05:00,170 ja sitten kirjoitetaan jotkut hash, ja sitten kirjoitetaan 90 00:05:00,170 --> 00:05:03,020 Enter-näppäintä, joka luo uusi rivi. 91 00:05:03,020 --> 00:05:07,770 Joten nyt meillä on, että mennään askeleen pidemmälle ja löytää malli. 92 00:05:07,770 --> 00:05:10,170 >> Joten aion sanoa, että etua tämän esimerkin, 93 00:05:10,170 --> 00:05:12,480 olemme tekemisissä korkeus 8. 94 00:05:12,480 --> 00:05:17,100 Ensimmäinen rivi on menossa kaksi hash joka seuraa seitsemän tiloissa. 95 00:05:17,100 --> 00:05:20,020 Second-- kolme hash, kuusi tilat. 96 00:05:20,020 --> 00:05:24,260 Kolmas row-- neljä hash, viisi spaces-- niin edelleen ja niin edelleen 97 00:05:24,260 --> 00:05:26,350 kunnes saamme NTH riville. 98 00:05:26,350 --> 00:05:31,540 Niin, pyydän teitä NTH rivin, kuinka monta tiivisteiden aiomme olla 99 00:05:31,540 --> 00:05:33,120 ja kuinka monta ruutua? 100 00:05:33,120 --> 00:05:37,000 Joten se on sinun selvittää kaava edustaa kuinka monta hash 101 00:05:37,000 --> 00:05:42,020 ja kuinka monta ruutua tarvitaan nnen rivin, kun on joitakin korkeus. 102 00:05:42,020 --> 00:05:46,060 >> Nyt kun olet mietitään tätä, olla varovainen miten olet indeksointi. 103 00:05:46,060 --> 00:05:49,170 Mitä tarkoitan tällä, että jokapäiväisessä elämässä meille kaikille 104 00:05:49,170 --> 00:05:51,540 alkaa laskea, yleensä 1. 105 00:05:51,540 --> 00:05:55,950 Mutta CS50 ja tietotekniikassa yleensä, olemme 0 indeksoitu. 106 00:05:55,950 --> 00:06:00,620 Joten ensimmäinen rivi olisi n on 0 vastakohtana 1. 107 00:06:00,620 --> 00:06:04,550 Ole varovainen tästä, kun olet yrittää selvittää oman kuvio. 108 00:06:04,550 --> 00:06:07,570 Nyt mennään takaisin, miten aiomme tehdä meidän pyramidi. 109 00:06:07,570 --> 00:06:12,300 Jokaista rivi, aiomme haluavat tulostaa tilat, tulosta hash, 110 00:06:12,300 --> 00:06:14,050 ja sitten tulostaa uusi rivi. 111 00:06:14,050 --> 00:06:19,160 Vihje täällä on Sana "for" jokaisella rivillä. 112 00:06:19,160 --> 00:06:21,470 C, meillä on konstrukti kutsutaan silmukka, 113 00:06:21,470 --> 00:06:25,250 joka koostuu sellaisen Alustuksen ehto, päivitys, 114 00:06:25,250 --> 00:06:26,790 ja rungon silmukan. 115 00:06:26,790 --> 00:06:31,360 >> Sano Halusin sanoa, hei maailma, 50 kertaa, minun silmukka 116 00:06:31,360 --> 00:06:32,880 voisi näyttää tältä. 117 00:06:32,880 --> 00:06:35,480 I alustaa minun kokonaisluku 0. 118 00:06:35,480 --> 00:06:38,230 Ehtona on, että I on alle 50. 119 00:06:38,230 --> 00:06:42,350 Ja sitten minun päivitys on vain monesko I yhdellä aina. 120 00:06:42,350 --> 00:06:45,140 Voimme myös käyttää silmukoita kerrata läpi asioita. 121 00:06:45,140 --> 00:06:47,820 Huomaa, täällä kuinka meillä ei koodattu useita, 122 00:06:47,820 --> 00:06:51,820 vaan sijoitetaan muuttujan korkeus sen sijaan osaksi kunnossa. 123 00:06:51,820 --> 00:06:56,420 Joten mitä teen täällä olen iteroimalla jokaista riviä pyramidin. 124 00:06:56,420 --> 00:07:00,160 Voin tehdä jotain jokaiselle rivi kehossa minun silmukka. 125 00:07:00,160 --> 00:07:02,350 >> Mitä teemme sisällä runkoon silmukan? 126 00:07:02,350 --> 00:07:07,120 No, kuten jo mainittu, olemme painatus tilat ja olemme tulostus hash 127 00:07:07,120 --> 00:07:09,480 ja olemme painatus uuden linjan. 128 00:07:09,480 --> 00:07:11,950 Joten ulompi silmukka näyttää tältä. 129 00:07:11,950 --> 00:07:15,070 Olen kerrata yli joka krs Pyramidin käyttäen, 130 00:07:15,070 --> 00:07:18,890 Tässä tapauksessa korkeudella kuin muuttuja joka tallentaa korkeus pyramidin. 131 00:07:18,890 --> 00:07:22,870 Kehossa tuon silmukan, olen painoon tiloihin toistuvasti, tulostaa 132 00:07:22,870 --> 00:07:26,730 tarkistussummat toistuvasti, ja sitten tulostaa uusi rivi. 133 00:07:26,730 --> 00:07:31,010 >> Joten nyt, käyttäen kaikkia käsitteitä, jotka Olen puhunut tässä selattava, 134 00:07:31,010 --> 00:07:35,210 sinun pitäisi pystyä kysymään käyttäjä syöttää, vahvistamaan, että syöttö, 135 00:07:35,210 --> 00:07:37,370 ja sitten piirtää puoli pyramidin. 136 00:07:37,370 --> 00:07:41,510 >> Nimeni on Zamyla, ja tämä on CS50. 137 00:07:41,510 --> 00:07:43,167