1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,960 SPEAKER 1: Puhutaanpa vedestä. 3 00:00:01,960 --> 00:00:07,280 Tässä tehtävässä me pyytää käyttäjää kertomaan kuinka kauan minuuteissa niiden suihku oli 4 00:00:07,280 --> 00:00:11,040 ja sitten muunnetaan vastaavaksi lukumäärä vesipulloa 5 00:00:11,040 --> 00:00:12,970 että niiden suihku käytetty. 6 00:00:12,970 --> 00:00:16,379 >> Mitkä ovat meidän to-do: n tähän ongelmaan? 7 00:00:16,379 --> 00:00:20,050 Ensin aiomme haluta pyytämään ja vahvista sitten 8 00:00:20,050 --> 00:00:22,100 tulo, että käyttäjä antaa meille. 9 00:00:22,100 --> 00:00:24,790 Kun voimme varmistaa, että meillä on pätevä käyttäjä syöttää, 10 00:00:24,790 --> 00:00:28,230 aiomme laskea vastaava määrä vesipulloa 11 00:00:28,230 --> 00:00:30,770 että käyttäjä oli yhteydessä niiden suihku, ja sitten olemme 12 00:00:30,770 --> 00:00:33,720 kerron heille tulostamalla että määrä. 13 00:00:33,720 --> 00:00:37,230 >> Joten puuttua ensimmäinen tehtävä, kehotukset ja validointi 14 00:00:37,230 --> 00:00:38,550 käyttäjä syöttää. 15 00:00:38,550 --> 00:00:40,910 Tästä olemme kirjoittaneet toiminto soitit 16 00:00:40,910 --> 00:00:43,950 get_int sijaitsee CS50 kirjastosta. 17 00:00:43,950 --> 00:00:48,710 get_int varmistaa, että käyttäjä syöttää kokonaisluku, joten mitään positiivisia lukuja, 18 00:00:48,710 --> 00:00:51,700 negatiiviset luvut, tai nolla ovat kaikki hyväksytään. 19 00:00:51,700 --> 00:00:55,900 Mutta jos käyttäjä syöttää mitään muuta, joten mitä tahansa kirjaimia tai numeroita 20 00:00:55,900 --> 00:00:59,710 tai desimaalilukuja, niin käyttäjää kehotetaan yrittämään uudelleen 21 00:00:59,710 --> 00:01:04,319 ja toiminto ei hyväksy mitään kunnes käyttäjä antaa heille kokonaisluku. 22 00:01:04,319 --> 00:01:06,410 >> Miten käytämme get_int? 23 00:01:06,410 --> 00:01:10,830 Jos avaat työtilan ja luo tiedosto nimeltä integer.c katsotaanpa 24 00:01:10,830 --> 00:01:12,110 kirjoittamalla seuraavan. 25 00:01:12,110 --> 00:01:14,760 Hashtagia ovat cs50.h. 26 00:01:14,760 --> 00:01:18,480 Tämä on tarpeen, koska get_int on CS50 kirjaston funktion, 27 00:01:18,480 --> 00:01:21,890 joten meidän on hashtagin sisältää sen ilmoitus, jotta 28 00:01:21,890 --> 00:01:23,370 käyttää toimintoa. 29 00:01:23,370 --> 00:01:26,570 Ja sitten minun tärkein toimisi Olen juuri menossa 30 00:01:26,570 --> 00:01:29,560 yksinkertaisesti soittaa toiminto get_int. 31 00:01:29,560 --> 00:01:31,750 >> Joten suorittaa tämän ja miten se toimii. 32 00:01:31,750 --> 00:01:35,092 Olen jo koonnut sen, joten tehdään vain mennä eteenpäin ja suorita tämä ohjelma, 33 00:01:35,092 --> 00:01:36,480 ./kokonaisluku. 34 00:01:36,480 --> 00:01:39,880 Täällä on nopea ja tässä tarina Syötin arvo. 35 00:01:39,880 --> 00:01:44,880 Sano Laitoin vain joitakin kokonaisluku, 50, ohjelma excepts ja sulkeutuu 36 00:01:44,880 --> 00:01:45,960 ja se siitä. 37 00:01:45,960 --> 00:01:49,350 >> Mutta sanoa ajaa sen uudelleen ja Syötin jotain muuta. 38 00:01:49,350 --> 00:01:51,350 Ehkä, Hello World. 39 00:01:51,350 --> 00:01:55,660 Se ei ole kokonaisluku, joten Ohjelma pyytää minua uudelleen. 40 00:01:55,660 --> 00:01:59,160 Yritetään uudelleen ehkä desimaalin tällä kertaa. 41 00:01:59,160 --> 00:02:03,450 0,5, jälleen, ei ole kokonaisluku, joten ohjelma ei hyväksy sitä 42 00:02:03,450 --> 00:02:05,290 ja se kerron minulle uudelleen. 43 00:02:05,290 --> 00:02:07,070 Joten antaa sille toinen numero. 44 00:02:07,070 --> 00:02:09,830 Ohjelma hyväksyy sen, sulkeutuu, ja olemme tehneet. 45 00:02:09,830 --> 00:02:13,520 >> Joten nyt meillä on funktio jonka avulla voimme sekä varmistaa 46 00:02:13,520 --> 00:02:16,790 että käyttäjä syöttää kokonaisluku, mutta miten voimme 47 00:02:16,790 --> 00:02:20,330 itse seurata kokonaisluku käyttäjän syöttämän? 48 00:02:20,330 --> 00:02:25,260 No, kaikki teemme on kauppa Tämän arvon muuttujaan, sano n. 49 00:02:25,260 --> 00:02:30,580 Jos siis julistaa kokonaisluku n, ja asetan tämän arvon get_int, 50 00:02:30,580 --> 00:02:34,700 sitten n jälkeen kaikenlaiseen arvostavat käyttäjä syötetty. 51 00:02:34,700 --> 00:02:38,620 >> Selvä, joten nyt olemme varmistaneet, että käyttäjä antaa meille kokonaisluku 52 00:02:38,620 --> 00:02:42,550 ja osaamme seurata kokonaisluvun, mutta muista, 53 00:02:42,550 --> 00:02:45,610 kokonaisluvut ovat sekä positiivisia että negatiivisia. 54 00:02:45,610 --> 00:02:49,110 Joten se ei oikeastaan ​​järkeä yhteydessä tähän ongelmaan 55 00:02:49,110 --> 00:02:53,570 että käyttäjä ottaa suihku of sanoa negatiivinen 12 minuuttia. 56 00:02:53,570 --> 00:02:59,310 Joten meidän täytyy varmistaa, että käyttäjä itse asiassa antaa meille positiivinen kokonaisluku. 57 00:02:59,310 --> 00:03:02,130 Nyt meillä ei ole vain yksittäinen toiminto, että 58 00:03:02,130 --> 00:03:04,620 niin me aiomme olla luoda että itse. 59 00:03:04,620 --> 00:03:07,190 >> Niinpä haluamme jatkuvasti kysyy käyttäjältä 60 00:03:07,190 --> 00:03:09,730 kunnes ne antavat meille positiivinen kokonaisluku. 61 00:03:09,730 --> 00:03:14,300 Jos teen jotain jatkuvasti sitten se muistuttaa silmukan, toistuminen. 62 00:03:14,300 --> 00:03:19,130 Joten yksi rakenteet, jotka käytämme C toteuttaa toistoa ja silmukat 63 00:03:19,130 --> 00:03:20,410 on samalla silmukka. 64 00:03:20,410 --> 00:03:23,020 Joten vaikka silmukka, kuten kuvassa, tulee suorittaa 65 00:03:23,020 --> 00:03:27,030 mikä on kehossa kaareen kunhan annettu ehto arvioi 66 00:03:27,030 --> 00:03:27,900 totta. 67 00:03:27,900 --> 00:03:30,640 Heti kun tämä ehto epätosi, niin 68 00:03:30,640 --> 00:03:34,830 ohjelma etenee tahansa tulee sen jälkeen runko-silmukan. 69 00:03:34,830 --> 00:03:39,400 >> Joten kun silmukoita aikovat todella hyödyllinen CS50. 70 00:03:39,400 --> 00:03:42,590 Mutta tässä nimenomaisessa tapauksessa me tiedämme, että olemme 71 00:03:42,590 --> 00:03:48,140 menossa kysyy käyttäjältä ainakin kerran ja silloinkin vain silmukka tarvittaessa. 72 00:03:48,140 --> 00:03:51,080 Joten tässä tulemme erikoisen rakenteen ja siinä 73 00:03:51,080 --> 00:03:55,020 hyvin samankaltainen, kun taas silmukka kutsutaan do-while-silmukka. 74 00:03:55,020 --> 00:03:58,840 >> Joten tee-while-silmukka suorittaa elin silmukka ainakin kerran 75 00:03:58,840 --> 00:04:01,750 ja sitten se tarkistaa, onko se tulisi suorittaa, 76 00:04:01,750 --> 00:04:05,310 vastakohtana taas silmukka, joka tarkistaa ehdon 77 00:04:05,310 --> 00:04:07,200 ja suorita kehossa. 78 00:04:07,200 --> 00:04:11,880 Joten tee-while-silmukka, mitä voisimme vain pyytää käyttäjältä kokonaisluku, 79 00:04:11,880 --> 00:04:14,450 ja sitten tarkistaa, onko se virheellinen vai ei. 80 00:04:14,450 --> 00:04:18,130 Jos se on virheellinen, niin me toista prosessi pyytää käyttäjää 81 00:04:18,130 --> 00:04:22,290 antaa meille toinen kokonaisluku, ja sitten ainoastaan ​​silloin, kun se kokonaisluku on voimassa, 82 00:04:22,290 --> 00:04:25,060 jatkamme mitä tulee jälkeenpäin. 83 00:04:25,060 --> 00:04:28,030 >> Nyt huomaat, että julistus kokonaisluvun n 84 00:04:28,030 --> 00:04:31,670 on hieman erilainen kuin mitä me teki ennen edellisessä esimerkissä 85 00:04:31,670 --> 00:04:33,640 ja tämä johtuu soveltamisalaa. 86 00:04:33,640 --> 00:04:37,920 Jos olisimme ilmoittanut kokonaisluvun n sisällä rungon tee-while-silmukka, 87 00:04:37,920 --> 00:04:42,640 niin emme voi käyttää että arvo n ulkopuolella näitä kihara 88 00:04:42,640 --> 00:04:45,050 olkaimet osoittaa rungon silmukan. 89 00:04:45,050 --> 00:04:51,080 Mutta me emme itse asiassa halua käyttää arvo n myöhemmin ohjelmaamme. 90 00:04:51,080 --> 00:04:55,730 >> OK, joten nyt puhutaanpa mitä tämä ehto pitäisi olla. 91 00:04:55,730 --> 00:05:00,400 Haluamme vain reprompt Käyttäjä kunhan n on virheellinen. 92 00:05:00,400 --> 00:05:04,640 Joten kysy itseltäsi mitä virheellisen kokonaisluku näyttäisivät 93 00:05:04,640 --> 00:05:08,060 ja luo Boolen ilmaus ilmaista että. 94 00:05:08,060 --> 00:05:13,070 >> Olemme melkein valmis meidän subtask Tähystyslaitteet ja validointi käyttäjä syöttää. 95 00:05:13,070 --> 00:05:16,010 Joten tehdä tästä hieman bittinen käyttäjäystävällisempiä 96 00:05:16,010 --> 00:05:18,390 ja antaa käyttäjälle hieman hieman enemmän tietoa 97 00:05:18,390 --> 00:05:20,510 mitä me kehottaa heitä varten. 98 00:05:20,510 --> 00:05:24,500 Joten kysyy käyttäjältä, per spec, jossa merkkijono minuuttia. 99 00:05:24,500 --> 00:05:28,935 Joten käyttämällä printf lausuntoja, tehdä Varmista, että olet vastaa tätä tarkalleen. 100 00:05:28,935 --> 00:05:30,230 >> Selvä. 101 00:05:30,230 --> 00:05:33,840 Joten nyt meillä on voimassa oleva käyttäjätunnus input, positiivinen kokonaisluku 102 00:05:33,840 --> 00:05:37,400 arvon, kuinka monta minuuttia he viettivät suihkussa. 103 00:05:37,400 --> 00:05:41,300 Joten mitä seuraavaksi on laskea vastaava määrä pulloja. 104 00:05:41,300 --> 00:05:45,250 Mitä aiomme tehdä täällä saattaisi olla hyvin ilmeistä teille aluksi, 105 00:05:45,250 --> 00:05:46,640 ja se on OK. 106 00:05:46,640 --> 00:05:49,320 Mitä me haluamme tehdä, on meidän haluavat aloittaa harjoittelua 107 00:05:49,320 --> 00:05:53,810 ajatus havaita kuvioita ja kehittää kaavat ongelma. 108 00:05:53,810 --> 00:05:57,200 >> Joten emme kertoneet kohti spec että yksi minuutti suihkussa 109 00:05:57,200 --> 00:05:59,960 vastaa noin 12 pulloa vettä. 110 00:05:59,960 --> 00:06:03,020 Joten sitten kaksi minuuttia olisi vastattava 24, 111 00:06:03,020 --> 00:06:05,850 ja viisi minuuttia olisi vastattava 60. 112 00:06:05,850 --> 00:06:08,390 Joten nyt jos luulet sinulla on se, niin katsotaanpa 113 00:06:08,390 --> 00:06:10,390 katso jos voit keksiä kuviolla tai kaava 114 00:06:10,390 --> 00:06:14,990 ilmaista jos olemme sanoa, n minuuttia, kuinka monta pulloa vettä 115 00:06:14,990 --> 00:06:17,930 olisi joka ilmaistaan ​​n? 116 00:06:17,930 --> 00:06:20,680 >> Jälleen vaikka tämä ehkä yksinkertainen aluksi, 117 00:06:20,680 --> 00:06:23,240 myöhemmin, kun pääsemme monimutkaisempia ongelmia 118 00:06:23,240 --> 00:06:26,360 aiomme haluavat päästä käytäntö tunnistaa 119 00:06:26,360 --> 00:06:30,120 kuvioita ja kehittää kaavat selvittää näitä asioita. 120 00:06:30,120 --> 00:06:33,450 >> C voit käyttää standardin laskutoimituksia, 121 00:06:33,450 --> 00:06:36,520 yhteen-, vähennys-, kerto- ja jako. 122 00:06:36,520 --> 00:06:38,420 Joten Jätän sen nyt selvittää 123 00:06:38,420 --> 00:06:41,300 miten ilmaista vastaava määrä pulloja 124 00:06:41,300 --> 00:06:43,990 että käyttäjä kuluttaa aikana suihku. 125 00:06:43,990 --> 00:06:45,700 >> Selvä, olemme melkein valmis. 126 00:06:45,700 --> 00:06:50,650 Olemme kysytään käyttäjän heidän panoksestaan, Olemme varmistaneet, että se on pätevä panos, 127 00:06:50,650 --> 00:06:53,330 ja sitten olemme tajunnut, miten muunnetaan vastaavaksi 128 00:06:53,330 --> 00:06:55,480 määrä pulloja, että ne kulutetaan. 129 00:06:55,480 --> 00:06:59,430 Joten viimeinen asia tehdä, on ulostulo vastaava määrä pulloja 130 00:06:59,430 --> 00:07:02,410 ja toivottavasti kannustaa ne säästää vettä. 131 00:07:02,410 --> 00:07:06,270 >> Lähtönä arvo olla printf selvitys. 132 00:07:06,270 --> 00:07:09,720 Jos halusin kertoa, että minä on kolme lemmikkieläimiä, esimerkiksi 133 00:07:09,720 --> 00:07:13,090 Saatan käyttää printf selvitys että näyttää suunnilleen tältä. 134 00:07:13,090 --> 00:07:15,880 Minulla on kolme lemmikkieläimiä, ja uusi linja mukavaa muotoilua. 135 00:07:15,880 --> 00:07:17,880 >> Nyt emme halua yksinkertaisesti kova koodi asioita. 136 00:07:17,880 --> 00:07:20,740 Sano määrä minun lemmikit muuttuu ajan mittaan. 137 00:07:20,740 --> 00:07:25,080 Sitten aion hyödyntää paikkamerkkien minun printf selvitys. 138 00:07:25,080 --> 00:07:27,350 Joten tässä numeroni on kokonaisluku. 139 00:07:27,350 --> 00:07:31,480 Joten aion tehdä paikkamerkki for kokonaisluku käyttämällä% i. 140 00:07:31,480 --> 00:07:33,930 Aion kirjoittaa merkkijonon, ja sitten sen jälkeen merkkijono 141 00:07:33,930 --> 00:07:38,000 Kirjoitan pilkku ja sitten muuttuja Haluan tulostaa. 142 00:07:38,000 --> 00:07:42,730 Niin että arvo tulostetaan sijasta että paikanvaraajassa% i. 143 00:07:42,730 --> 00:07:47,630 >> Voit käyttää paikkamerkkejä, kuten hyvin, kelluvalle kanssa% f. 144 00:07:47,630 --> 00:07:50,420 Voit myös olla useita paikkamerkkejä merkkijono. 145 00:07:50,420 --> 00:07:53,950 Esimerkiksi, jos minulla on joitakin numero koirien ja joitakin kissoja, 146 00:07:53,950 --> 00:07:59,210 Laitoin kaksi paikkamerkit tänne ja sitten minun kaksi muuttujaa vastaavissa järjestyksessä. 147 00:07:59,210 --> 00:08:03,130 >> Joten nyt me tiedämme, miten tulostaa tallennettujen arvojen muuttujien 148 00:08:03,130 --> 00:08:06,030 aivan viimeinen asia tehdä, on varmistaa, että 149 00:08:06,030 --> 00:08:10,920 Tulosta arvo täsmällisessä muodossa mainittu tuoteselosteessa. 150 00:08:10,920 --> 00:08:14,990 Kanssa, että olemme sai Käyttäjä ja validoitu niiden panos. 151 00:08:14,990 --> 00:08:17,920 Olemme jälkeen laskettiin vastaavan lukumäärä vesipulloa 152 00:08:17,920 --> 00:08:22,100 että ne kuluttavat aikana suihku, ja olemme tulostetaan että arvo heille. 153 00:08:22,100 --> 00:08:24,440 Ja niin olemme valmiiksi vettä. 154 00:08:24,440 --> 00:08:28,730 >> Nimeni on [? Zamila,?] ja tämä on CS50. 155 00:08:28,730 --> 00:08:29,909