1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] David J. MALAN: Selvä, tämä on CS50, ja tämä on 2 00:00:11,630 --> 00:00:14,790 alkavat viikolla kaksi. 3 00:00:14,790 --> 00:00:16,300 Kiitos. 4 00:00:16,300 --> 00:00:19,000 Aloitetaan täällä puhelinsoitolla. 5 00:00:19,000 --> 00:00:30,005 Olen aikeissa soittaa 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Tämä on CS50. 7 00:00:31,230 --> 00:00:33,930 Shuttle Poika, paina 1. 8 00:00:33,930 --> 00:00:36,660 Aloittaa alusta, paina 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. MALAN: Niin hän sanoi Shuttle Boy, paina 1. 10 00:00:38,180 --> 00:00:41,560 Joten aiomme paina 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Mikä on alkuperä? 12 00:00:43,230 --> 00:00:45,340 Quad, paina 1. 13 00:00:45,340 --> 00:00:47,080 Mather, paina 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, paina 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, paina 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, paina 5. 17 00:00:53,210 --> 00:00:55,660 Aloittaa alusta, paina 0. 18 00:00:55,660 --> 00:00:59,590 DAVID J. MALAN: Me paina 1 Quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Seuraava sukkula lähtee tämän erittäin minuutissa 13:10, ja 20 00:01:03,610 --> 00:01:09,820 sitten 13:20, 13:30, 13:40. 21 00:01:09,820 --> 00:01:12,030 Tämä on CS50. 22 00:01:12,030 --> 00:01:15,570 >> DAVID J. MALAN: Eli tämä on CS50 ääni. 23 00:01:15,570 --> 00:01:18,030 Ja se on esimerkki lajittelee lopullinen hankkeita, 24 00:01:18,030 --> 00:01:19,500 Esimerkiksi voit purra kohti 25 00:01:19,500 --> 00:01:20,600 lukukauden loppuun. 26 00:01:20,600 --> 00:01:23,840 Esimerkiksi, että shuttleboy.cs50.net olemassa - 27 00:01:23,840 --> 00:01:28,200 oikeastaan ​​hanke, että olen ensimmäinen kirjoitti otettuaan CS51 28 00:01:28,200 --> 00:01:29,740 takaisin kun olin perustutkintoa. 29 00:01:29,740 --> 00:01:32,250 Ja inspiraatio täällä oli tuolloin, kaikki heillä oli 30 00:01:32,250 --> 00:01:34,320 painettu bussikuljetus aikataulut, ja ei ollut 31 00:01:34,320 --> 00:01:35,970 käsite etsivät asioita verkossa. 32 00:01:35,970 --> 00:01:38,730 Ja niin minä tavallaan kyyhky yhden viikonlopun, kaadetaan kautta 33 00:01:38,730 --> 00:01:41,460 painettu aikataulu, ja siirretty se tietokoneohjelma. 34 00:01:41,460 --> 00:01:43,790 Ajankohtana, tietokone-ohjelman tapahtui kirjoitetaan 35 00:01:43,790 --> 00:01:47,110 in C. Ja olet todella juoksi sen kirjoittamalla Shuttle Boy 36 00:01:47,110 --> 00:01:48,600 vilkkuu kehotteen olemme tehneet tähän mennessä. 37 00:01:48,600 --> 00:01:50,450 Mutta vuosien mittaan, se kehittyi hetkessä 38 00:01:50,450 --> 00:01:51,390 messaging bot. 39 00:01:51,390 --> 00:01:53,970 Se on kehittynyt viime aikoina osaksi tällä sivustolla, osaksi 40 00:01:53,970 --> 00:01:57,720 SMS-pohjainen työkalu, samoin kuin tähän ääni-pohjainen työkalu. 41 00:01:57,720 --> 00:02:00,170 Ja tämä on aavistuksen asioita, joita voit 42 00:02:00,170 --> 00:02:02,380 tee itsellesi lukukauden lopussa. 43 00:02:02,380 --> 00:02:05,490 >> Esimerkiksi siellä, SMS versio Shuttle Boy tapahtuu 44 00:02:05,490 --> 00:02:06,510 toimimaan seuraavasti. 45 00:02:06,510 --> 00:02:10,880 Jos kännykkäsi, voit lähettää tekstiviestin 41411 ja 46 00:02:10,880 --> 00:02:14,300 sitten lähettää erikoismerkkejä sboy varten Shuttle Boy, 47 00:02:14,300 --> 00:02:18,350 jonka jälkeen A ja B, jossa A on peräisin, ja B on 48 00:02:18,350 --> 00:02:19,070 kohde - 49 00:02:19,070 --> 00:02:21,030 Esimerkiksi Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 Mitä sinun pitäisi saada takaisin muutamassa sekunnissa on teksti 51 00:02:23,330 --> 00:02:25,820 viesti Shuttle Poika kertoo tarkasti, milloin 52 00:02:25,820 --> 00:02:28,990 Muutaman seuraavan sukkulat ovat tästä näkökulmasta menossa että 53 00:02:28,990 --> 00:02:29,640 kohta B. 54 00:02:29,640 --> 00:02:32,510 Ja tämä on enemmän yleinen esimerkki siitä, mitä kutsutaan 55 00:02:32,510 --> 00:02:33,920 käyttäen API. 56 00:02:33,920 --> 00:02:36,930 >> Joten esimerkiksi, tämä tässä on vain shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 todellinen web-pohjainen ruumiillistuma tästä. 58 00:02:39,300 --> 00:02:42,480 Mutta tietojen korostaa tätä ja muita sovelluksia, jotka CS50 59 00:02:42,480 --> 00:02:45,560 on kehittänyt kaikki ovat alttiina kaikille täällä muodossa 60 00:02:45,560 --> 00:02:49,340 API, Application Programming Interface. 61 00:02:49,340 --> 00:02:52,220 Ja se on vain hieno tapa sanoa, että ihmiset haluavat meidän päälle 62 00:02:52,220 --> 00:02:56,010 Internet ja muut on viettänyt aikaa luoda 63 00:02:56,010 --> 00:02:59,970 ohjelmisto, jonka voit käyttää, jotta napata tiedot meiltä ja 64 00:02:59,970 --> 00:03:02,510 sitten rakentaa oman sovelluksia päälle 65 00:03:02,510 --> 00:03:03,840 Tämän tietokokonaisuutta. 66 00:03:03,840 --> 00:03:06,610 Niinpä esimerkiksi tämä Kuljetuspalvelu Boy API sivu täällä, mikä 67 00:03:06,610 --> 00:03:09,390 sattuu olemaan CS50 käsikirja, lähinnä asiakirjat 68 00:03:09,390 --> 00:03:13,080 miten voit mennä noin pyytää CS50 palvelimet tietoja. 69 00:03:13,080 --> 00:03:16,240 Esimerkiksi, jos olet perehtynyt CSV-tiedostoja, pilkku 70 00:03:16,240 --> 00:03:18,940 erotetut arvot, nämä ovat vain eräänlainen nopea ja likainen 71 00:03:18,940 --> 00:03:20,310 Excel-kuten tiedostoja. 72 00:03:20,310 --> 00:03:23,110 Joten voit kysyä Shuttle Boy kaikkien tiedot kaikista 73 00:03:23,110 --> 00:03:25,090 taloja ja niiden GPS koordinaatit, ja saat 74 00:03:25,090 --> 00:03:27,300 takaisin lähinnä taulukkolaskenta kaltainen, että 75 00:03:27,300 --> 00:03:30,820 voit sitten lukea osaksi ohjelmaa oman ja sitten 76 00:03:30,820 --> 00:03:33,250 tuottaa tuloksia, kuten Shuttle Boy itse 77 00:03:33,250 --> 00:03:34,160 sattuu tehdä. 78 00:03:34,160 --> 00:03:37,030 Niille tutumpi, enemmän modernia tieto edustustot 79 00:03:37,030 --> 00:03:39,420 ovat JSON, JavaScript Object Notation. 80 00:03:39,420 --> 00:03:40,620 Jotain tulee takaisin sinua kohti 81 00:03:40,620 --> 00:03:41,720 lukukauden loppuun. 82 00:03:41,720 --> 00:03:45,440 >> Mutta jälleen kerran, tämä on vain yksi monien CS50 oman API. 83 00:03:45,440 --> 00:03:48,320 Ja jännittävä asia on nyt näinä päivinä, Facebook ja 84 00:03:48,320 --> 00:03:51,110 Twitter ja Google ja melko paljon joka suosittu verkkosivusto ulos 85 00:03:51,110 --> 00:03:54,130 siellä on jonkinlainen API, mikä tarkoittaa, että jos olet lukenut 86 00:03:54,130 --> 00:03:56,620 dokumentaatiota niiden verkkosivuilla, kirjaudut 87 00:03:56,620 --> 00:03:59,980 tilin, voit alkaa kirjoittaa ohjelmisto päälle 88 00:03:59,980 --> 00:04:03,680 mitä työkaluja tai tietoja, jotka yritys siellä tarjoaa. 89 00:04:03,680 --> 00:04:06,210 Ja niin yksi oman opetuksen kaverit pari vuotta sitten 90 00:04:06,210 --> 00:04:07,620 kirjoitti Mac-versio tästä. 91 00:04:07,620 --> 00:04:10,990 Joten linkkiä Mac täällä ylhäällä vasemmalla, voit itse 92 00:04:10,990 --> 00:04:13,940 Lataa Mac OS widgetin, joka toimii oman Mac tehdä 93 00:04:13,940 --> 00:04:15,040 samanlaisia ​​asioita. 94 00:04:15,040 --> 00:04:17,970 Eli kyse on rakentaa päälle aineistojen, kuten nämä. 95 00:04:17,970 --> 00:04:21,839 Mutta siitä lisää loppupuolella lukukauden. 96 00:04:21,839 --> 00:04:25,780 >> Joten sukeltaa todella nopeasti ja bug, vain sellaista saada 97 00:04:25,780 --> 00:04:27,990 asiat lämmennyt tänään, ja muistelen joitakin 98 00:04:27,990 --> 00:04:29,660 asioita me katsoimme viime viikolla. 99 00:04:29,660 --> 00:04:32,840 Erityisesti haluan mennä eteenpäin ja vetää vaikkapa 100 00:04:32,840 --> 00:04:34,080 Tässä esimerkki tästä. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, tämä on saatavilla kurssin kotisivuilla Jos haluat 102 00:04:37,500 --> 00:04:40,250 haluat ladata sen ja penkoa itse. 103 00:04:40,250 --> 00:04:43,520 Mutta katsotaanpa zoomata täällä tähän melko lyhyt ohjelma, ja juuri 104 00:04:43,520 --> 00:04:46,550 supernopea kertaus joitakin kulmakivistä että 105 00:04:46,550 --> 00:04:48,880 mennään todellakin vain alkaa ottamaan itsestäänselvyytenä. 106 00:04:48,880 --> 00:04:51,860 >> Joten sininen kamaa, riveillä 1: stä 9, ovat vain 107 00:04:51,860 --> 00:04:53,670 softball kysymyksiä. 108 00:04:53,670 --> 00:04:54,590 Joten nämä ovat vain kommentteja. 109 00:04:54,590 --> 00:04:56,230 Niillä ei ole toiminnallista merkitystä. 110 00:04:56,230 --> 00:04:58,460 Mutta he huomautuksia siinä mielessä, että he toteaa 111 00:04:58,460 --> 00:05:02,010 Minä, ihminen, teki itselleni niin, että luento ja sen jälkeen 112 00:05:02,010 --> 00:05:04,340 luento, voin oikeastaan ​​muista mitä tämän ohjelman 113 00:05:04,340 --> 00:05:07,120 ei ilman lukea läpi rivi riviltä ja 114 00:05:07,120 --> 00:05:08,990 uudestaan ​​historiaa mielessäni. 115 00:05:08,990 --> 00:05:11,000 Lisäksi jos ojennan tämän ohjelman joku muu kuin 116 00:05:11,000 --> 00:05:14,420 te, se on paljon selkeämpi teille, koska kommentit näin, 117 00:05:14,420 --> 00:05:16,680 mitä ohjelman todella tekee, tai ainakin mitä 118 00:05:16,680 --> 00:05:18,210 Ohjelman pitäisi tehdä. 119 00:05:18,210 --> 00:05:20,760 Vai ei se oikein on toinen asia. 120 00:05:20,760 --> 00:05:25,040 Nyt, C, multi-line kommentteja, muistuttaa, että linja 121 00:05:25,040 --> 00:05:27,880 kukaan täällä on maaginen symboli, / *. 122 00:05:27,880 --> 00:05:30,380 Se tarkoittaa tässä tulee alku kommentin. 123 00:05:30,380 --> 00:05:34,560 Ja Nothing Else Matters, kunnes tulet loppuun terminaattori, 124 00:05:34,560 --> 00:05:36,700 joka on * /, päinvastoin. 125 00:05:36,700 --> 00:05:39,120 Niin että minulla on 80-joitakin outoa tähteä tänne 126 00:05:39,120 --> 00:05:41,550 vasemmalta oikealle on oikeastaan ​​vain esteettinen yksityiskohta. 127 00:05:41,550 --> 00:05:43,370 Sillä ei ole toiminnallista merkitystä. 128 00:05:43,370 --> 00:05:44,490 >> Nyt Entä line 11? 129 00:05:44,490 --> 00:05:46,940 Mitä tämä tehdä maallikon termein? 130 00:05:51,560 --> 00:05:52,540 Mikä tuo on? 131 00:05:52,540 --> 00:05:54,280 YLEISÖ: Sisältää vakio. 132 00:05:54,280 --> 00:05:54,740 DAVID J. MALAN: OK, hyvä. 133 00:05:54,740 --> 00:05:57,500 Niin se sisältää stdio.h kirjasto. 134 00:05:57,500 --> 00:05:58,230 Joten mitä se tarkoittaa? 135 00:05:58,230 --> 00:06:01,570 No, sisällä tiedoston, stdio.h ovat koko joukko 136 00:06:01,570 --> 00:06:03,320 toiminto ilmoitukset - 137 00:06:03,320 --> 00:06:05,290 eli koodi, että joku muu kirjoitti. 138 00:06:05,290 --> 00:06:08,160 Ja täydellinen esimerkki toiminto, joka on ilmoitettu 139 00:06:08,160 --> 00:06:10,250 stdio.h on - 140 00:06:10,250 --> 00:06:11,980 joka suosikki tähän mennessä? 141 00:06:11,980 --> 00:06:14,300 Niin printf, yksi yleisimpiä käyttää, varmasti 142 00:06:14,300 --> 00:06:15,840 varhain, kuin kirjasto on olemassa. 143 00:06:15,840 --> 00:06:19,290 Jos olen pois että koodirivin, clang tulee huutaa 144 00:06:19,290 --> 00:06:22,550 minua jotain käyttämällä pimeää symboli. 145 00:06:22,550 --> 00:06:24,930 Jotain pimeän lienee avainsana, sillä 146 00:06:24,930 --> 00:06:27,770 emme ole ilmoittanut kääntäjä mitä printf näyttää 147 00:06:27,770 --> 00:06:29,230 kuten ellemme kuuluu, että linjaa. 148 00:06:29,230 --> 00:06:31,830 Ja enemmän maanläheinen, todella, mitä se viiva on sanonta on 149 00:06:31,830 --> 00:06:34,890 avata tiedoston, stdio.h, missä se on palvelimen 150 00:06:34,890 --> 00:06:38,200 kiintolevy tai laitteen kovalevylle, ja kopioi se 151 00:06:38,200 --> 00:06:40,240 tuolla minun tiedoston, ilman minun 152 00:06:40,240 --> 00:06:41,730 ottaa tehdä manuaalisesti. 153 00:06:41,730 --> 00:06:44,420 >> Nyt, kun saamme tänne main ennen pitkää aloitamme 154 00:06:44,420 --> 00:06:46,900 kiusanteko toisistaan ​​mitä int ja mikä tyhjiö on. 155 00:06:46,900 --> 00:06:48,430 Mutta nyt, katsokaamme kolmea 156 00:06:48,430 --> 00:06:50,350 15-17. 157 00:06:50,350 --> 00:06:52,250 Tämä tässä Väitän niin buginen. 158 00:06:52,250 --> 00:06:54,900 Rivi 7 minun kommentit sanoo "pitäisi tulostaa 10 159 00:06:54,900 --> 00:06:59,410 tähtiä, mutta ei. "Miksi tätä ei tulostu, itse asiassa, 160 00:06:59,410 --> 00:07:01,097 10 kuten tähdet? 161 00:07:01,097 --> 00:07:02,347 YLEISÖ: [kuulumattomissa]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. MALAN: Aivan. 163 00:07:05,800 --> 00:07:08,720 Niin huomaa, että olemme alkaneet laskea alkaen 0. 164 00:07:08,720 --> 00:07:10,780 Ja tämä on todella yleissopimus ohjelmoinnin ja 165 00:07:10,780 --> 00:07:13,230 tietojenkäsittelytiede yleisemmin alkaa laskea 166 00:07:13,230 --> 00:07:14,610 0-1 sijaan. 167 00:07:14,610 --> 00:07:16,690 Ja tämä oikeastaan ​​vain johtuu siitä, että 168 00:07:16,690 --> 00:07:18,940 Esimerkiksi silloin, kun meillä oli kahdeksan ihmistä lavalle, kun 169 00:07:18,940 --> 00:07:20,680 kukaan ei ollut nostaa kätensä, he olivat 170 00:07:20,680 --> 00:07:22,340 kaikki tehokkaasti nollia. 171 00:07:22,340 --> 00:07:24,260 Ja niin se on vain eräänlainen tietokoneen yleissopimuksen niin, 172 00:07:24,260 --> 00:07:26,030 siksi alkaa laskea 0. 173 00:07:26,030 --> 00:07:29,130 Jos tämä on pienin määrä voi edustaa binary. 174 00:07:29,130 --> 00:07:32,270 >> Joten tässä olemme aloittaneet alustetaan i 0. 175 00:07:32,270 --> 00:07:34,230 Olemme asetetaan i 0.. 176 00:07:34,230 --> 00:07:37,780 Mutta sitten tein tämän virheen tässä, että minun on pienempi tai 177 00:07:37,780 --> 00:07:38,820 yhtä suuri kuin 10. 178 00:07:38,820 --> 00:07:41,700 Mutta jos luulet, että läpi, jos alkaa 0 ja sitten menen 179 00:07:41,700 --> 00:07:46,410 enintään 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, olen itse menossa 180 00:07:46,410 --> 00:07:49,980 tulostaa 11 tähtiä näyttöön, koska olen mennyt ylös 181 00:07:49,980 --> 00:07:52,410 ja vastaa 10. 182 00:07:52,410 --> 00:07:55,090 Niin helppo korjata tässä sitten on, mitä? 183 00:07:55,090 --> 00:07:56,070 YLEISÖ: [kuulumattomissa]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. MALAN: Vain muuttaa sen alle. 185 00:07:57,350 --> 00:07:59,700 Jos todella haluat, voit tehdä tämän. 186 00:07:59,700 --> 00:08:01,370 Mutta yleensä, että on paheksuttavaa. 187 00:08:01,370 --> 00:08:04,020 Ja niin alkaa laskea alkaen 0 on vain jotain sinun pitäisi 188 00:08:04,020 --> 00:08:05,510 tyypillisesti tottua. 189 00:08:05,510 --> 00:08:07,810 Nyt, mitä tästä koko rakennelma itsessään? 190 00:08:07,810 --> 00:08:10,640 Tämä linja 15 demarks varten silmukka. 191 00:08:10,640 --> 00:08:12,510 Joten ei ole funktio. 192 00:08:12,510 --> 00:08:13,640 Se on vain lausunto. 193 00:08:13,640 --> 00:08:16,180 Se silmukoiden rakennelma, kuten näimme Scratch. 194 00:08:16,180 --> 00:08:17,600 Ja se on kolme osaa. 195 00:08:17,600 --> 00:08:19,740 Huomaa, että on olemassa ensimmäinen osa 196 00:08:19,740 --> 00:08:21,350 vasemmalle puolipiste. 197 00:08:21,350 --> 00:08:24,200 On keskimmäinen osa kahden puolipisteillä. 198 00:08:24,200 --> 00:08:26,250 Ja sitten on oikea osa oikeaan 199 00:08:26,250 --> 00:08:27,640 Toisen puolipiste. 200 00:08:27,640 --> 00:08:31,822 Nyt, ensimmäinen näistä tekee mitäkin? 201 00:08:31,822 --> 00:08:33,679 YLEISÖ: [kuulumattomissa]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. MALAN: Back siellä? 203 00:08:34,270 --> 00:08:34,816 Niin? 204 00:08:34,816 --> 00:08:35,980 YLEISÖ: Alustus. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. MALAN: Alustus. 206 00:08:36,850 --> 00:08:37,840 Mitä tämä tarkoittaa? 207 00:08:37,840 --> 00:08:40,690 Olemme julisti muuttuja nimeltä i. 208 00:08:40,690 --> 00:08:43,840 Se on tyyppiä int, koska olen määritellyt int i. 209 00:08:43,840 --> 00:08:46,470 Ja olen alustettaessa i arvo 0. 210 00:08:46,470 --> 00:08:47,730 Joten mitä tämä todella sanovat? 211 00:08:47,730 --> 00:08:50,680 Se tehokkaasti sanoo tietokoneeseen hei, anna minulle tarpeeksi 212 00:08:50,680 --> 00:08:53,660 muisti, tarpeeksi RAM, sopii numero, ja sitten laittaa 213 00:08:53,660 --> 00:08:56,130 numero 0, että kimpale muistia. 214 00:08:56,130 --> 00:08:59,100 Ja kuten syrjään, kuinka suuri on int tyypillisesti ainakin sisäpuolella 215 00:08:59,100 --> 00:09:00,280 Laitteen? 216 00:09:00,280 --> 00:09:01,000 YLEISÖ: 32 bit. 217 00:09:01,000 --> 00:09:01,670 David J. MALAN: 32 bittiä. 218 00:09:01,670 --> 00:09:04,890 Niin se tarkoittaa, että antaa minulle 32 bittiä, joka tunnetaan myös 4 tavua, 219 00:09:04,890 --> 00:09:07,250 ja laita arvo 0 sitä, mikä on melko helppoa, koska 220 00:09:07,250 --> 00:09:09,110 Se vain tarkoittaa, asettaa kaikki bitit 0. 221 00:09:09,110 --> 00:09:11,690 >> Niin nyt, toinen osa tässä on kunnossa. 222 00:09:11,690 --> 00:09:14,590 Ja kunnossa, kuten nimestä voi päätellä, mitä tarkastetaan 223 00:09:14,590 --> 00:09:18,100 uudestaan ​​ja uudestaan ​​ja uudestaan, onko se totta vai tarua. 224 00:09:18,100 --> 00:09:21,410 Joten tämä on vain sanonta tee seuraava riviä koodia - 225 00:09:21,410 --> 00:09:23,950 nimittäin linja 16, koska se on ainoa sisennetty 226 00:09:23,950 --> 00:09:24,820 alla - 227 00:09:24,820 --> 00:09:26,980 niin kauan kuin i on pienempi kuin 10. 228 00:09:26,980 --> 00:09:30,520 Ja jokaisen iteraation kautta silmukka, tee 229 00:09:30,520 --> 00:09:33,840 inkrementointi, joka tässä tapauksessa on i + +. 230 00:09:33,840 --> 00:09:35,580 Nyt, sen ei tarvitse olla i + +. 231 00:09:35,580 --> 00:09:37,610 Se voisi olla i -. 232 00:09:37,610 --> 00:09:39,860 Mutta jos tein tätä, mitä käytös menee 233 00:09:39,860 --> 00:09:41,370 olla tämän ohjelman? 234 00:09:41,370 --> 00:09:42,290 YLEISÖ: Se tulee olemaan ikuinen silmukka. 235 00:09:42,290 --> 00:09:44,060 DAVID J. MALAN: Se tulee olemaan jonkinlainen loputon silmukka, 236 00:09:44,060 --> 00:09:47,720 ellemme onnistaa jälkeen negatiivinen 2000000000 tai niin. 237 00:09:47,720 --> 00:09:51,320 Ehkä asiat kietoa, vain luonne äärellisen 238 00:09:51,320 --> 00:09:53,930 bittien määrä, että olemme varattu int. 239 00:09:53,930 --> 00:09:56,270 Mutta se varmasti tulee toistaa paljon enemmän kuin 10 ja 240 00:09:56,270 --> 00:09:58,630 varmasti yli 11 kertaa täällä. 241 00:09:58,630 --> 00:10:02,240 >> Ja nyt, aivan kuten syrjään, ymmärtää, että i + + ja I - 242 00:10:02,240 --> 00:10:04,420 ovat oikeastaan ​​vain syntaktinen sokeri. 243 00:10:04,420 --> 00:10:07,210 Se on vain lyhennetty merkintätapa mikä on hieman enemmän 244 00:10:07,210 --> 00:10:08,720 erikseen kirjoitettu seuraavasti: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 , Joka on identtinen i + +. 247 00:10:13,460 --> 00:10:15,860 Se vain eräänlainen näyttää kauniimpi sanoa i + +. 248 00:10:15,860 --> 00:10:17,490 Se on suppeampi, luettavuutta. 249 00:10:17,490 --> 00:10:19,030 Ja niin useimmat ihmiset tekevät, että sen sijaan. 250 00:10:19,030 --> 00:10:21,840 Mutta tämä on identtinen toiminnallisesti 251 00:10:21,840 --> 00:10:22,900 mitä juuri näimme. 252 00:10:22,900 --> 00:10:27,770 Eli lyhyesti sanottuna, pikaratkaisua tässä vain sanoa iteroida i 253 00:10:27,770 --> 00:10:30,690 0-kaikki tavalla jopa alle 10. 254 00:10:30,690 --> 00:10:32,700 Ja sitten me todellakin saada 10 tähteä. 255 00:10:32,700 --> 00:10:33,430 >> Joten kokeile tätä. 256 00:10:33,430 --> 00:10:35,310 Saanen avata terminaali alareunassa. 257 00:10:35,310 --> 00:10:37,420 Sallikaa minun mennä hakemistoon, että tämä on in 258 00:10:37,420 --> 00:10:40,030 Ja aion kääntää sen manuaalisesti clang nyt. 259 00:10:40,030 --> 00:10:44,880 Ja aion koota tätä buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 Ja nyt buggy1, miksi ei ole Tiedostoa tai hakemistoa 261 00:10:50,280 --> 00:10:52,026 kutsutaan buggy1? 262 00:10:52,026 --> 00:10:53,850 YLEISÖ: [kuulumattomissa]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. MALAN: Joo. 264 00:10:54,240 --> 00:10:55,420 Joten se on todella kutsutaan a.out. 265 00:10:55,420 --> 00:10:57,480 Joten muistaa jos vain ajaa clang, missä clang on 266 00:10:57,480 --> 00:11:00,420 kääntäjä, ja et määritä nimeä, jonka haluat 267 00:11:00,420 --> 00:11:03,550 antaa ohjelman, se tulee oletuksena a.out. 268 00:11:03,550 --> 00:11:05,030 Joten todellakin jos teen ls - 269 00:11:05,030 --> 00:11:05,510 oho. 270 00:11:05,510 --> 00:11:07,680 Ja minä didn't - musta-valko kysymys joidenkin 271 00:11:07,680 --> 00:11:08,840 olet kohdannut on korjattu. 272 00:11:08,840 --> 00:11:10,670 Mutta anna minun tehdä tätä. 273 00:11:10,670 --> 00:11:14,570 Siellä on a.out vasemmalla puolella siellä. 274 00:11:14,570 --> 00:11:17,360 Joten meidän täytyy juosta a.out sijaan buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Joten anna minun mennä eteenpäin ja tehdä tätä. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 Ja minä ilmeisesti ole mitä? 278 00:11:26,160 --> 00:11:26,620 YLEISÖ: Tallenna. 279 00:11:26,620 --> 00:11:27,390 DAVID J. MALAN: Save my tiedosto. 280 00:11:27,390 --> 00:11:31,520 Niin että se on helposti ratkaistavissa lyömällä Control S tai menossa 281 00:11:31,520 --> 00:11:33,450 Tiedosto, Tallenna, kuten useimmissa ohjelmissa. 282 00:11:33,450 --> 00:11:36,360 Päästä minut tänne, tyhjentää näytön, käynnistä se uudelleen. 283 00:11:36,360 --> 00:11:37,960 Ja siellä on vielä bugi. 284 00:11:37,960 --> 00:11:41,618 Joten mitä tapahtuu - 285 00:11:41,618 --> 00:11:42,980 YLEISÖ: Et kääntää. 286 00:11:42,980 --> 00:11:44,040 DAVID J. MALAN: Ah, hyvä. 287 00:11:44,040 --> 00:11:45,010 En kääntää sitä. 288 00:11:45,010 --> 00:11:47,250 Kuin idiootti, Etsin koodia nähdä mikä on vialla. 289 00:11:47,250 --> 00:11:51,275 Niin clang buggy1.c, nyt a.out. 290 00:11:51,275 --> 00:11:52,640 Ja Huh pelasti. 291 00:11:52,640 --> 00:11:55,090 >> Joten se näyttää hieman ruma, koska ei ole mitään uutta linjaa 292 00:11:55,090 --> 00:11:55,970 missä tahansa ohjelman. 293 00:11:55,970 --> 00:11:57,390 Mutta jälleen kerran, se on vain esteettinen yksityiskohta. 294 00:11:57,390 --> 00:11:59,430 Ja ainakin jos laskemme ne pois, meidän pitäisi 295 00:11:59,430 --> 00:12:01,160 nyt nähdä 10 tällaista tähteä. 296 00:12:01,160 --> 00:12:03,260 No, entä tämä toinen lämmittely esimerkki? 297 00:12:03,260 --> 00:12:07,750 Joten buggy2, väitän, että tämä versio myös tulostaa 298 00:12:07,750 --> 00:12:10,110 10 tähteä, yksi per rivi. 299 00:12:10,110 --> 00:12:12,340 Joten tällä kertaa, minulla rivinvaihtomerkki, vain tehdä 300 00:12:12,340 --> 00:12:13,520 asioita hieman kauniimpi. 301 00:12:13,520 --> 00:12:15,410 Mutta sen sijaan mitä saan on tämä. 302 00:12:15,410 --> 00:12:19,590 Joten anna minun tehdä clang buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Nyt sitä taas kutsutaan a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Näen vain yhden uuden rivin, vain viimeinen uuden linjan, että 306 00:12:26,900 --> 00:12:29,370 siirtyy minun nopeasti seuraavalle riville. 307 00:12:29,370 --> 00:12:32,660 Ja silti selvästi olen tulostus *, sitten uusi rivi, 308 00:12:32,660 --> 00:12:33,990 * Ja sitten uusi rivi. 309 00:12:33,990 --> 00:12:35,490 Mutta mitä bug täällä? 310 00:12:35,490 --> 00:12:35,974 Niin? 311 00:12:35,974 --> 00:12:37,224 YLEISÖ: [kuulumattomissa]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. MALAN: Aivan. 313 00:12:40,470 --> 00:12:44,110 Joten toisin joitakin kieliä, kuten Python, jossa sisennys 314 00:12:44,110 --> 00:12:46,030 todella on toiminnallinen merkitys, ja 315 00:12:46,030 --> 00:12:47,150 kieli kuten C - 316 00:12:47,150 --> 00:12:49,140 kuten näemme, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 sisennys on oikeastaan ​​vain ihmiselle eduksi. 318 00:12:51,940 --> 00:12:55,690 Niin että olen sisennetty rivi 16 ja 17 näyttää hyvältä, 319 00:12:55,690 --> 00:12:57,530 mutta sillä ei ole mitään toiminnallista merkitystä tässä. 320 00:12:57,530 --> 00:13:00,700 Jos haluan molemmat linjat suorittaa osana varten 321 00:13:00,700 --> 00:13:05,140 silmukka, sitten täytyy liittää ne aaltosulkeita tekemällä näin. 322 00:13:05,140 --> 00:13:08,540 Voit leikata joka nurkkaan ja jättää aaltosulkeita jos 323 00:13:08,540 --> 00:13:10,036 Mikä asia? 324 00:13:10,036 --> 00:13:10,410 YLEISÖ: Vain yksi rivi. 325 00:13:10,410 --> 00:13:11,130 DAVID J. MALAN: Vain yksi rivi. 326 00:13:11,130 --> 00:13:15,280 Joten se on vain eräänlainen mukava eräänlainen syntaksin yksityiskohtaisesti, jotta 327 00:13:15,280 --> 00:13:17,900 et tuhlaa aikaa kirjallisesti kolme riviä, joista kaksi on 328 00:13:17,900 --> 00:13:20,040 aaltosulkeita vain kirjoittaa riviäkään koodia. 329 00:13:20,040 --> 00:13:21,650 Mutta jos sinulla on kaksi tai useampia linjoja, me 330 00:13:21,650 --> 00:13:22,860 todellakin täytyy tehdä tämä. 331 00:13:22,860 --> 00:13:24,210 >> Joten nyt haluan pelastaa tämän. 332 00:13:24,210 --> 00:13:27,140 Anna minun mennä eteenpäin ja ajaa uudelleen clang. 333 00:13:27,140 --> 00:13:31,375 Sitten haluan uusintana a.out, ja nyt saan niitä yksi per rivi. 334 00:13:31,375 --> 00:13:33,670 Nyt a.out taas on eräänlainen tyhmä nimi ohjelman. 335 00:13:33,670 --> 00:13:37,500 Miten voin kertoa clang todella antaa minulle tiedostonimen 336 00:13:37,500 --> 00:13:39,820 joka on käyttäjäystävällisempi, kuten buggy2 itse? 337 00:13:43,200 --> 00:13:44,466 Hieman selvemmin? 338 00:13:44,466 --> 00:13:45,220 YLEISÖ: [kuulumattomissa]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. MALAN: ok, joten en voi itse ottaa hyvin 340 00:13:47,810 --> 00:13:51,000 käyttäjäystävällinen pikakuvaketta ja vain kirjoittaa tekevät buggy2. 341 00:13:51,000 --> 00:13:53,840 En määritä. C tässä tapauksessa, ja paina Enter. 342 00:13:53,840 --> 00:13:58,530 Ja mitä tekee ei se laatii buggy2.c For Me 343 00:13:58,530 --> 00:14:00,260 pyytää clang tehdä se. 344 00:14:00,260 --> 00:14:05,100 Erityisesti se kehottaa clang, se kulkee clang käyttäen paljon enemmän 345 00:14:05,100 --> 00:14:08,540 komentoriviargumenteista tai kytkinten kuin minun todella tarvitsevat. 346 00:14:08,540 --> 00:14:11,270 Aikanaan tulemme takaisin, mitä kaikkia näitä eri 347 00:14:11,270 --> 00:14:13,810 arvoituksellinen yhdistelmätekniikoiden ilmaisuja tarkoittaa. 348 00:14:13,810 --> 00:14:16,910 Mutta nyt, että on vain säästää minua vaivaa 349 00:14:16,910 --> 00:14:19,600 tarvitse muistaa ja ottaa kirjoittaa kaikki nämä 350 00:14:19,600 --> 00:14:21,150 eri yhdistelmätekniikoiden ilmaisuja. 351 00:14:21,150 --> 00:14:23,240 Ja ylösalaisin se lopulta on 352 00:14:23,240 --> 00:14:25,900 että nyt minulla on buggy2. 353 00:14:25,900 --> 00:14:27,480 Jos haluan tehdä tämän manuaalisesti, vaikka olen 354 00:14:27,480 --> 00:14:28,775 voi sen sijaan tehdä - 355 00:14:28,775 --> 00:14:34,110 clang-o buggy2 ja sitten buggy2.c. 356 00:14:34,110 --> 00:14:37,980 Ja joka samalla antaa minulle tiedosto nimeltä buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Eli lyhyesti sanottuna, clang on kääntäjä. 358 00:14:39,710 --> 00:14:43,080 Tee vain käyttäjäystävällinen työkalu, joka Käytämme enemmän 359 00:14:43,080 --> 00:14:44,420 ja enemmän, koska se vain alkaa 360 00:14:44,420 --> 00:14:47,330 yksinkertaistaa asioita meille. 361 00:14:47,330 --> 00:14:49,430 Ja palaamme 0 lopuksi. 362 00:14:49,430 --> 00:14:51,890 Nyt vain siksi, mutta aloitamme kiusanteko että osa 363 00:14:51,890 --> 00:14:52,930 tänään ja keskiviikkona. 364 00:14:52,930 --> 00:14:55,560 Mahdolliset kysymykset tästä mitään? 365 00:14:55,560 --> 00:14:56,450 Niin? 366 00:14:56,450 --> 00:14:58,234 YLEISÖ: [kuulumattomissa] 367 00:14:58,234 --> 00:15:00,020 Onko lainausmerkeissä siellä? 368 00:15:00,020 --> 00:15:01,710 DAVID J. MALAN: OK. 369 00:15:01,710 --> 00:15:05,880 Kun olen kirjoittanut ls lainausmerkkeihin, joka oli minulle tehdä joitakin taika 370 00:15:05,880 --> 00:15:07,160 kulissien takana korjata vian. 371 00:15:07,160 --> 00:15:09,370 Unohdin, kuten olemme kertoneet monet teistä 372 00:15:09,370 --> 00:15:11,600 keskustelupalstat, tehdä - 373 00:15:11,600 --> 00:15:17,220 teemme tätä nyt - sudo yum-y update appliance50. 374 00:15:17,220 --> 00:15:19,790 Oho, että on kirjoitettu oikein. 375 00:15:19,790 --> 00:15:23,240 Joten laite on kuin käyttöjärjestelmä. 376 00:15:23,240 --> 00:15:25,650 Se juoksee tämän käyttöjärjestelmän kehittämisen nimeltään Fedora. 377 00:15:25,650 --> 00:15:27,450 Ja nyt, koska minun hidas internet-yhteys, olen 378 00:15:27,450 --> 00:15:28,260 todella huuhdella se. 379 00:15:28,260 --> 00:15:31,620 Joten käynnissä sudo yum update, kuten me teille tehdä 380 00:15:31,620 --> 00:15:34,080 Harjoitus on lähinnä kuin käynnissä automaattiset päivitykset 381 00:15:34,080 --> 00:15:35,420 Mac OS tai Windows. 382 00:15:35,420 --> 00:15:37,280 Ja syy käynnissä tämän vuoden alusta lähtien 383 00:15:37,280 --> 00:15:39,640 Harjoitus on, koska kun olemme luoneet laitteen, minä 384 00:15:39,640 --> 00:15:42,480 sekaisin, ja olen vahingossa tehnyt kaikki ohjelmat näyttävät 385 00:15:42,480 --> 00:15:45,210 musta musta ruutu, minkä vuoksi et näe niitä 386 00:15:45,210 --> 00:15:45,860 oletuksena. 387 00:15:45,860 --> 00:15:48,020 Mutta uusin versio laitteen korjaa tämän. 388 00:15:48,020 --> 00:15:50,500 Ja minä korjata että sisäänajon aikana kun olen Internet 389 00:15:50,500 --> 00:15:51,280 liitettävyys. 390 00:15:51,280 --> 00:15:54,630 >> Joten lainaa vain kätkee minun vikani, hyvin hienovaraisesti, 391 00:15:54,630 --> 00:15:55,730 ilmeisesti. 392 00:15:55,730 --> 00:15:56,980 Muita kysymyksiä? 393 00:15:59,750 --> 00:16:00,668 Kyllä? 394 00:16:00,668 --> 00:16:02,012 YLEISÖ: Mistä tee tulee? 395 00:16:02,012 --> 00:16:03,810 [Kuulumattomissa] 396 00:16:03,810 --> 00:16:04,280 DAVID J. MALAN: Hyvä kysymys. 397 00:16:04,280 --> 00:16:05,460 Mistä ei tee kotoisin? 398 00:16:05,460 --> 00:16:09,390 Se on Linux-ohjelma, joka on jo useiden vuosien ajan, pitkä 399 00:16:09,390 --> 00:16:10,570 ennen CS50. 400 00:16:10,570 --> 00:16:12,930 Ja se tulee käyttöjärjestelmän kuten Fedora. 401 00:16:12,930 --> 00:16:14,830 Se ei tule CS50 kirjastosta. 402 00:16:14,830 --> 00:16:17,560 Itse asiassa ainoa asia, jotka tulevat CS50 kirjastosta 403 00:16:17,560 --> 00:16:20,470 toistaiseksi, että olemme nähneet, ovat GetString, GetInt kaikki 404 00:16:20,470 --> 00:16:25,550 näitä Get toiminnot, ja sana merkkijono, ja jossain 405 00:16:25,550 --> 00:16:26,575 määrin sana bool. 406 00:16:26,575 --> 00:16:29,180 Mutta me kiusaa että toisistaan ​​kun sukeltaa CS50 407 00:16:29,180 --> 00:16:30,580 laite itse. 408 00:16:30,580 --> 00:16:32,820 >> Joten kyllä, yksi kysymys. 409 00:16:32,820 --> 00:16:36,636 YLEISÖ: Kun sanoit tehdä ja sitten buginen, miten 410 00:16:36,636 --> 00:16:39,980 tietokone tietää [kuulumattomissa]? 411 00:16:39,980 --> 00:16:40,520 DAVID J. MALAN: Hyvä kysymys. 412 00:16:40,520 --> 00:16:43,830 Joten kun vain ajaa tekemään buggy1 tai tehdä buggy2, miten 413 00:16:43,830 --> 00:16:45,220 ei tee tietää? 414 00:16:45,220 --> 00:16:49,900 Joten oletuksena, jos kirjoitat tehdä buggy1, tee etsii 415 00:16:49,900 --> 00:16:52,330 tiedosto nimeltä buggy1.c. 416 00:16:52,330 --> 00:16:55,570 Ja sitten se suorittaa asianmukaista clang komennot, 417 00:16:55,570 --> 00:17:00,380 mikä ohittaa oletustulostusnopeutta tiedosto nimeltä a.out. 418 00:17:00,380 --> 00:17:03,670 Itse asiassa, jos katsomme, mitä tehdä, mitä - 419 00:17:03,670 --> 00:17:04,839 Katsotaanpa lopettaa tämän. 420 00:17:04,839 --> 00:17:09,530 Jos katsomme mitä tehdä todella tekemässä, tee buggy2, 421 00:17:09,530 --> 00:17:10,470 se on jo ajan tasalla. 422 00:17:10,470 --> 00:17:13,020 Haluan siis poistaa rm-komennon, 423 00:17:13,020 --> 00:17:14,319 Ohjelma kirjoitin aiemmin. 424 00:17:14,319 --> 00:17:17,319 Kirjoittamalla Y-E-S vahvista, että haluan poistaa sen. 425 00:17:17,319 --> 00:17:20,480 Jos nyt eivät tee, huomaat, että tämä erittäin pitkä rivi, 426 00:17:20,480 --> 00:17:22,980 on tämä viimeinen juttu täällä,-O buggy2. 427 00:17:22,980 --> 00:17:26,959 Kaikki tekevät tekee kulkee tämän väitteen, niin sanotusti 428 00:17:26,959 --> 00:17:29,665 Kalahtaa, joten minun ei tarvitse kirjoittaa sitä itse. 429 00:17:29,665 --> 00:17:32,660 >> Selvä, joten nopea pari hallinnollisten 430 00:17:32,660 --> 00:17:33,470 ilmoitukset. 431 00:17:33,470 --> 00:17:36,940 Joten kohdat, joita alkoi virallisesti tulevana 432 00:17:36,940 --> 00:17:38,970 Sunnuntai, haluat aina tuoda, jos 433 00:17:38,970 --> 00:17:40,120 sinulla on yksi, kannettava tietokone. 434 00:17:40,120 --> 00:17:42,570 Jos sinulla ei ole kannettavaa tietokonetta, älä tavoittaa minua 435 00:17:42,570 --> 00:17:43,580 pudottamalla minulle sähköpostia. 436 00:17:43,580 --> 00:17:44,810 Ja me selvittää työnkulkua. 437 00:17:44,810 --> 00:17:47,100 Mitä yleensä löydät jaksossa on, että ne ovat osa 438 00:17:47,100 --> 00:17:48,770 käsitteellinen, osa käytännön. 439 00:17:48,770 --> 00:17:52,190 Me nimenomaan käyttää osan kysymyksiä, osa 440 00:17:52,190 --> 00:17:54,110 viikon Harjoitus, kävellä läpi joitakin 441 00:17:54,110 --> 00:17:55,820 käsitteellinen materiaalia luento. 442 00:17:55,820 --> 00:17:57,480 Ja että kaikki nykyisen ongelman asetettu. 443 00:17:57,480 --> 00:18:00,010 Ja me myös sukeltaa joitakin käytännön toimintaa, joskus 444 00:18:00,010 --> 00:18:02,190 josta vaaditaan esitettävä, joskus 445 00:18:02,190 --> 00:18:02,830 mikä ei. 446 00:18:02,830 --> 00:18:04,630 Esimerkiksi tämä ensimmäinen viikko, he tarkoitus yhtä 447 00:18:04,630 --> 00:18:05,780 warm-up harjoitus. 448 00:18:05,780 --> 00:18:07,800 Ja huomaat, että nämä ongelmat ovat oikeastaan ​​vain se. 449 00:18:07,800 --> 00:18:10,220 He tarkoitus olla melko pieni, mutta ei välttämättä 450 00:18:10,220 --> 00:18:13,100 triviaali ohjelmia kirjoittaa, jotka eivät välttämättä ole 451 00:18:13,100 --> 00:18:16,230 jännittävä ja itsestään, mutta on hyvät mahdollisuudet 452 00:18:16,230 --> 00:18:19,620 harjoitella syntaksi, jossa uusia toimintoja, mukavasti 453 00:18:19,620 --> 00:18:21,900 osiossa, jossa sinulla on muutama oppilastoverisi esittämään mahdollisimman 454 00:18:21,900 --> 00:18:22,870 hyvin kuin TF. 455 00:18:22,870 --> 00:18:26,210 >> Ja mitä me teemme ajan on käytettävä työkalu nimeltään CS50 Spaces, 456 00:18:26,210 --> 00:18:28,940 jolloin sijasta käyttää CS50 Appliance, sinun 457 00:18:28,940 --> 00:18:32,450 vaan mene Web-sivun selaimessa, jossa voit 458 00:18:32,450 --> 00:18:35,610 kirjoittaa koodia selainikkunassa aikana osiossa. 459 00:18:35,610 --> 00:18:38,240 Ja sitten jos otat, sinun opetuksessa kaveri voi sitten näyttää 460 00:18:38,240 --> 00:18:40,980 mitä se on olet kirjoittamassa näytön selaimessasi 461 00:18:40,980 --> 00:18:43,930 ikkuna ylös luokan edessä, myös nimettömänä tai 462 00:18:43,930 --> 00:18:47,250 julkisesti, jotta hän voi sitten kävellä läpi 463 00:18:47,250 --> 00:18:50,080 oppilastoverisi mitä teit hyvin, mitä et tehnyt hyvin. 464 00:18:50,080 --> 00:18:52,750 Ja vielä, varma kaikki tämä voidaan mukavasti anonyymeiksi. 465 00:18:52,750 --> 00:18:54,410 Mutta se tulee olemaan mukava tilaisuus paljon enemmän 466 00:18:54,410 --> 00:18:56,810 vuorovaikutteisuus kuin jotain luentoa sallii. 467 00:18:56,810 --> 00:18:58,910 >> Sillä välin, meillä on nämä asiat nimeltään Super 468 00:18:58,910 --> 00:19:01,610 osastot, jotka ovat valinnaisia, mutta ne ovat avoinna kaikille 469 00:19:01,610 --> 00:19:04,030 luokka, jotta voit tehdä enemmän kootusti 470 00:19:04,030 --> 00:19:05,190 Ongelma asetettu. 471 00:19:05,190 --> 00:19:06,010 Tässä aikataulussa. 472 00:19:06,010 --> 00:19:08,870 Tämä on nähtävissä myös etusivulle osoitteessa cs50.net. 473 00:19:08,870 --> 00:19:10,850 Huomaa, että siellä tulee olla hakkeri-spesifinen 474 00:19:10,850 --> 00:19:12,430 yksi huomenna iltapäivällä. 475 00:19:12,430 --> 00:19:15,460 Ja me elokuvan yksi tänään ja yksi huomenna ja lähettää ne 476 00:19:15,460 --> 00:19:16,720 verkossa 24 tunnin kuluessa. 477 00:19:16,720 --> 00:19:19,370 Joten jos et voi tehdä mitään näistä ajoista, ei hätää. 478 00:19:19,370 --> 00:19:22,720 Ja vielä, aikataulu on verkossa nyt cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Kannalta leikkaus itse sinun pitäisi saanut 480 00:19:25,350 --> 00:19:28,520 sähköpostitse ohjeistaa sinua menemään kurssin kotisivulta löytää 481 00:19:28,520 --> 00:19:29,610 ulos osiossa. 482 00:19:29,610 --> 00:19:32,890 Jos elämä on muuttunut ja sinun täytyy muuttaa osan 483 00:19:32,890 --> 00:19:33,560 ei ole ongelma. 484 00:19:33,560 --> 00:19:37,900 Mene takaisin sama URL-osoite cs50.net/section, yksikkö, 485 00:19:37,900 --> 00:19:40,090 ja voit täyttää kaltaisessa muodossa, jotta voit 486 00:19:40,090 --> 00:19:41,260 sitten antaa meille mieltymykset. 487 00:19:41,260 --> 00:19:43,360 Ja me jatkotoimet viikon loppuun mennessä, mitä voimme 488 00:19:43,360 --> 00:19:44,240 mahtuu. 489 00:19:44,240 --> 00:19:49,530 Viime viikolla, muistuttaa, että ehdotimme käyttää CS50 Keskustele, 490 00:19:49,530 --> 00:19:51,370 Kurssin keskustelu työkalu, luennossa. 491 00:19:51,370 --> 00:19:53,680 Joten meillä oli 40 kysymystä, jotka pyydettiin ja 492 00:19:53,680 --> 00:19:54,720 vastasi aikana luento. 493 00:19:54,720 --> 00:19:56,280 Joten se tuntui toimivan hyvin, joten jatkamme 494 00:19:56,280 --> 00:19:57,180 yrittää tehdä tätä. 495 00:19:57,180 --> 00:19:59,600 Jos aikana luento, et vain levollisin mielin lisääminen 496 00:19:59,600 --> 00:20:00,780 kätesi, ei ole ongelma. 497 00:20:00,780 --> 00:20:04,640 Siirry cs50.net/discuss, lähettää sinne, ja yksi opetus 498 00:20:04,640 --> 00:20:07,270 apurahan joko vastata sähköisesti tai nostamaan 499 00:20:07,270 --> 00:20:10,620 käsi puolestasi anonyymisti kysyä, riippuen 500 00:20:10,620 --> 00:20:12,470 luonteesta kysymykseen. 501 00:20:12,470 --> 00:20:15,000 Ja mitä palautetta, yleensä psets tulee 502 00:20:15,000 --> 00:20:16,760 palasi viikon kuluessa. 503 00:20:16,760 --> 00:20:19,080 Koska se vie vähän aikaa osioihin saavuttaa 504 00:20:19,080 --> 00:20:22,430 tasapainon, ensimmäinen PSET, 0 ja 1, on hieman 505 00:20:22,430 --> 00:20:24,130 myöhässä kuin asiat asettuvat. 506 00:20:24,130 --> 00:20:27,130 Mutta pysy kuulolla että lähiviikkoina. 507 00:20:27,130 --> 00:20:29,750 >> Selvä, joten haluan laittaa minun vakava 508 00:20:29,750 --> 00:20:31,040 ääni vain hetken. 509 00:20:31,040 --> 00:20:32,690 Joten tämä on todella mielenkiintoinen ilmastonmuutoksen olevan 510 00:20:32,690 --> 00:20:35,210 ottaa tätä keskustelua, mitä kaikkien muiden asioiden 511 00:20:35,210 --> 00:20:37,310 meneillään kampuksella niihin liittyvät. 512 00:20:37,310 --> 00:20:40,220 Mutta CS50 on varmasti ollut sen historian tähän nimenomaiseen 513 00:20:40,220 --> 00:20:43,360 aihe, niin paljon kuin joka vuosi, tämä tietenkin monien 514 00:20:43,360 --> 00:20:46,910 vuotta, Ad-levyt noin 3% luokkaa. 515 00:20:46,910 --> 00:20:51,620 Tämä viimeisin vuosi, 2011, CS50 Ad-pysäytettyä 35 opiskelijaa. 516 00:20:51,620 --> 00:20:54,120 Tämä ei ole mielestäni johtuu epäselvyyttä. 517 00:20:54,120 --> 00:20:56,760 Ymmärtäkää, että kurssin oppimäärä on sivun 518 00:20:56,760 --> 00:20:59,020 lausuma, jossa selitetään missä linjat ovat. 519 00:20:59,020 --> 00:21:01,350 Tuo sama ilmoitus toistuu jokaisen 520 00:21:01,350 --> 00:21:03,070 Ongelma asetetaan sivulla yksi. 521 00:21:03,070 --> 00:21:05,760 >> Joten Mainitsen tämän nyt todellakin vain tehdä 522 00:21:05,760 --> 00:21:07,030 ihmiset tietoisia tästä. 523 00:21:07,030 --> 00:21:08,080 Ja olemme yrittäneet eri asioita. 524 00:21:08,080 --> 00:21:10,630 Ja mitä ajattelin me tekisimme tänään on vain hetki 525 00:21:10,630 --> 00:21:13,830 todella katsoa joitakin aikaisemmista tapauksista, jotka ovat tulleet esille. 526 00:21:13,830 --> 00:21:16,160 Sen sijaan pitämään nämä likainen pikku salaisuuksia, oikeastaan 527 00:21:16,160 --> 00:21:19,170 huomauttaa, mitä opiskelijat ovat tehneet ja miten olemme havainneet 528 00:21:19,170 --> 00:21:21,630 sen ja oikeastaan ​​yleisenä motivaatio on 529 00:21:21,630 --> 00:21:23,950 vaikka tätä keskustelua. 530 00:21:23,950 --> 00:21:27,060 Niin, että sanoi, linja lähinnä on tämä - 531 00:21:27,060 --> 00:21:29,200 kohti oppimäärä, olet tervetullut, olet kannustetaan, jotta 532 00:21:29,200 --> 00:21:30,210 puhua luokkatoverit. 533 00:21:30,210 --> 00:21:31,910 Tuo koko tarkoitus ottaa nämä yhteistyöhön 534 00:21:31,910 --> 00:21:34,470 virka-ajan Annenberg ja kannustaa ihmisiä 535 00:21:34,470 --> 00:21:35,755 Opinnäytetyön toimimaan yhdessä. 536 00:21:35,755 --> 00:21:38,590 Mutta piirretään, kun on aika todella kirjoittaa 537 00:21:38,590 --> 00:21:39,790 lopullisen ratkaisun. 538 00:21:39,790 --> 00:21:42,590 Puhuminen Englanti, täysin kunnossa, puhuu pseudo-koodi, 539 00:21:42,590 --> 00:21:43,400 täysin kunnossa. 540 00:21:43,400 --> 00:21:46,340 Sähköpostitse luokkatoveri teidän PSET, antaen heille näyttää yli 541 00:21:46,340 --> 00:21:48,610 Näytön kädet jatkaa kirjoittamista, 542 00:21:48,610 --> 00:21:50,110 yli linjan samoin. 543 00:21:50,110 --> 00:21:52,250 Älä odottavat oppimäärän erityisen linjat. 544 00:21:52,250 --> 00:21:55,850 >> Mutta vain maalata kuvan siitä, miten tämä on valitettavasti 545 00:21:55,850 --> 00:21:58,370 Todellisuudessa, ymmärtää, että on olemassa sivustoja siellä, jotka 546 00:21:58,370 --> 00:22:01,490 on ratkaisuja tähän luokkaan ja monet muut luokat. 547 00:22:01,490 --> 00:22:04,940 Se, että sinä tai noin 3% teistä tietää, että on olemassa 548 00:22:04,940 --> 00:22:07,240 tarkoittaa sitä, että me tiedämme, että on olemassa. 549 00:22:07,240 --> 00:22:09,340 Se, että on olemassa sivustoja, kuten tämä, jossa 550 00:22:09,340 --> 00:22:11,540 voi maksaa joku todella tehdä ongelman sarjaa - tämä oli 551 00:22:11,540 --> 00:22:13,450 todellinen tapaus, joka tuli viime vuonna. 552 00:22:13,450 --> 00:22:15,790 Tämä on sivuston nimeltä odesk.com. 553 00:22:15,790 --> 00:22:20,090 Ja Tim oli nimi henkilö täällä joka julkaistavaksi 554 00:22:20,090 --> 00:22:24,580 Tämä sivusto ja pyysi jonkun tekemään hänen PSET 7 555 00:22:24,580 --> 00:22:25,570 Tässä nimenomaisessa tapauksessa. 556 00:22:25,570 --> 00:22:28,350 No, odesk.com on hyvin Google-osaa, ja mekin olemme 557 00:22:28,350 --> 00:22:30,310 erittäin hyvä Googling. 558 00:22:30,310 --> 00:22:32,360 Tässäkin on sivustoja - ja tämä on melko 559 00:22:32,360 --> 00:22:34,234 kamalaa, rehellisesti. 560 00:22:34,234 --> 00:22:38,050 [Naurua] 561 00:22:38,050 --> 00:22:39,610 DAVID J. MALAN: hauska juttu tästä sivustosta on jos 562 00:22:39,610 --> 00:22:41,970 luet Tietoja-sivulla, he puhuvat yrityksen 563 00:22:41,970 --> 00:22:44,390 Kulttuuri ja kuinka asiakaspalvelu on heidän numero yksi 564 00:22:44,390 --> 00:22:46,190 ensisijaisesti varmistaa, että tehtävät saavat 565 00:22:46,190 --> 00:22:47,890 kääntyi ajoissa. 566 00:22:47,890 --> 00:22:50,580 >> Mutta kaikella vakavuudella, jälleen, että nämä sivustot 567 00:22:50,580 --> 00:22:52,910 olemassa, ymmärtävät mekin olemme tietoisia 568 00:22:52,910 --> 00:22:53,730 tällaisia ​​sivustoja. 569 00:22:53,730 --> 00:22:55,890 Ja antaa sinulle tunteen minkälaista tämä yleensä 570 00:22:55,890 --> 00:22:58,570 vie, emme yleensä ole suuria skandaaleja, joissa ihmiset 571 00:22:58,570 --> 00:23:01,080 tekevät yhteistyötä minkäänlaista laajamittaista, vaan pikemminkin 572 00:23:01,080 --> 00:23:04,540 se on näitä myöhäisillan hetkiä heikkous, jos sinulla on niin 573 00:23:04,540 --> 00:23:07,550 paljon tehtävää, se on 04:00, olet uupunut, ja te 574 00:23:07,550 --> 00:23:09,770 ajatella itse, hyvin, haluan vain vilkaista minun 575 00:23:09,770 --> 00:23:11,770 kämppäkaveri n tai ystäväni koodia tai vastaavaa. 576 00:23:11,770 --> 00:23:14,800 Ja ilmenemismuotoja tämä valitettavasti kuuluu Student 577 00:23:14,800 --> 00:23:17,640 Lähettämällä jotain tällaista ja Student B lähettäminen 578 00:23:17,640 --> 00:23:20,370 jotain tällaista, mikä varmasti on tietokone 579 00:23:20,370 --> 00:23:23,830 tiede luokka, on erittäin helppo tietojenkäsittelyasiantuntijat 580 00:23:23,830 --> 00:23:25,690 havaita ohjelmistoja. 581 00:23:25,690 --> 00:23:28,410 Tämä on toinen yhteinen paradigma, jossa olet tavallaan 582 00:23:28,410 --> 00:23:31,010 työskennellyt yhdessä jonkun, ehkä puhu 583 00:23:31,010 --> 00:23:32,360 Englanti, hienosti, pseudokoodilla. 584 00:23:32,360 --> 00:23:35,080 Mutta sitten se tulee aika todella esittää, ja psets 585 00:23:35,080 --> 00:23:37,910 vain saada vaihtaa sähköpostitse tai Dropbox tms.. 586 00:23:37,910 --> 00:23:41,120 Mutta yrittää tehdä vähemmän ilmeistä, että tämä on 587 00:23:41,120 --> 00:23:44,830 mitä on tapahtunut, niin tämä on mitä toimitetaan. 588 00:23:44,830 --> 00:23:47,880 Tämäkin ei kömmähdys hyvin kirjoitettua kappaletta 589 00:23:47,880 --> 00:23:50,360 ohjelmistoja, kuten meidän on todellakin havaita 590 00:23:50,360 --> 00:23:51,280 tällaisia ​​asioita. 591 00:23:51,280 --> 00:23:53,760 Ja todellakin mitä teemme on ajaa ohjelma, joka vertaa kaikkia 592 00:23:53,760 --> 00:23:55,540 Tämän vuoden väitteet vastaan ​​kaikki viime vuoden 593 00:23:55,540 --> 00:23:57,380 väittää vastaan ​​kaiken löysimme 594 00:23:57,380 --> 00:24:00,060 Internet, vastaan ​​jokainen työpaikka verkkosivuilla siellä. 595 00:24:00,060 --> 00:24:01,710 Se on hyvin automatisoitu. 596 00:24:01,710 --> 00:24:05,665 Ja niin me teemme tätä todella suuri oikeudenmukaisuus on 97%, joka 597 00:24:05,665 --> 00:24:07,760 todella toimivat niiden aasit pois tässä ja muissa 598 00:24:07,760 --> 00:24:11,530 luokat ja ottamalla kaikki tämä vaivaa, jotta työ 599 00:24:11,530 --> 00:24:13,030 he lopulta esittämään on omia. 600 00:24:13,030 --> 00:24:14,220 Ja voin mennä vuosikausia. 601 00:24:14,220 --> 00:24:16,030 >> Nämä ovat vain muutamia viime vuoden tapauksia. 602 00:24:16,030 --> 00:24:19,350 Muutaman opiskelijat esittivät nämä tiedostot identtisesti varten PSET 2, 603 00:24:19,350 --> 00:24:22,460 PSET 3, PSET 4, PSET 5, PSET 6, PSET 9. 604 00:24:22,460 --> 00:24:26,360 Tässä tapauksessa tämä oli tietokilpailu 0 ja viime vuonna, jossa kaksi 605 00:24:26,360 --> 00:24:29,570 Opiskelija esitti identtisesti tämä lause joukossa 606 00:24:29,570 --> 00:24:32,210 muut "pyynnön tyyppi -" piste, piste, piste. 607 00:24:32,210 --> 00:24:34,530 Joten vaikka luokassa 600 saimme havaita tämän 608 00:24:34,530 --> 00:24:36,310 on toimitettu tietokilpailuja. 609 00:24:36,310 --> 00:24:39,080 Eli lyhyesti sanottuna, tässä - suoraan sanottuna inhoan joilla tällaista 610 00:24:39,080 --> 00:24:41,300 keskustelu - mutta tämä on todella tahallinen vaivaa 611 00:24:41,300 --> 00:24:43,540 tänä vuonna yrittää ajaa alas, että numero. 612 00:24:43,540 --> 00:24:45,650 Koska vaikka sanomme tällaisia ​​asioita joka 613 00:24:45,650 --> 00:24:48,100 vuosi, luulen todellisuus ottaa asuivat sitä muutaman 614 00:24:48,100 --> 00:24:50,800 Vielä sekuntia tavallista ja oikeastaan ​​vain muistuttaa 615 00:24:50,800 --> 00:24:53,600 että mitä voisi tuntua, eh, ei niin iso juttu, ainakin 616 00:24:53,600 --> 00:24:56,390 muistelen tässä vaiheessa, niin oikeudenmukaisuus 617 00:24:56,390 --> 00:25:00,100 itseäsi ja luokkatoverit täällä. 618 00:25:00,100 --> 00:25:02,480 Joten jos sinulle tulee kysyttävää, missä linja 619 00:25:02,480 --> 00:25:04,290 on, kiitos vain tavoittaa minua henkilökohtaisesti. 620 00:25:04,290 --> 00:25:07,190 Mutta vastaus on aina, täysin korosti 621 00:25:07,190 --> 00:25:09,090 viime hetken, käteistä myöhään päivässä. 622 00:25:09,090 --> 00:25:11,080 Tai jos se on asia, jolla ei ole mitään myöhässä päivän, 623 00:25:11,080 --> 00:25:12,900 rehellisesti, lähetä minulle henkilökohtaisesti. 624 00:25:12,900 --> 00:25:14,110 Me keksiä jotain. 625 00:25:14,110 --> 00:25:17,480 Älä laita aikaa täällä Harvardissa vaarassa. 626 00:25:17,480 --> 00:25:18,570 >> Nyt ajattelin meidän pitäisi keventää tunnelmaa, joten 627 00:25:18,570 --> 00:25:20,264 mukaan tämä seuraavan dian. 628 00:25:20,264 --> 00:25:22,770 [Naurua] 629 00:25:22,770 --> 00:25:23,630 DAVID J. MALAN: Tämä sivusto oli loistava. 630 00:25:23,630 --> 00:25:24,820 Olen itse saanut hieman hajamielinen. 631 00:25:24,820 --> 00:25:26,330 On tämä yksi. 632 00:25:26,330 --> 00:25:29,590 Ja sitten tämä oli hämmästyttävä. 633 00:25:29,590 --> 00:25:35,190 Okei, niin ajattele, että pentu myöhään yöllä, kun tehdään 634 00:25:35,190 --> 00:25:36,040 nämä päätökset. 635 00:25:36,040 --> 00:25:40,110 Selvä, joten takaisin enemmän hauskaa ja vähemmän vakavia juttuja, kuten 636 00:25:40,110 --> 00:25:40,780 olosuhteissa. 637 00:25:40,780 --> 00:25:43,900 >> Selvä, joten puhuimme lyhyesti näistä. 638 00:25:43,900 --> 00:25:46,080 Tämä on jotain, joka on todennäköisesti melko tuttuja 639 00:25:46,080 --> 00:25:47,260 maailman Scratch. 640 00:25:47,260 --> 00:25:49,860 Ja maailman Scratch, meillä on tämä tarve joskus 641 00:25:49,860 --> 00:25:51,110 mennä tekemään haarukat tien. 642 00:25:51,110 --> 00:25:54,840 Joko teemme tämän tai tuon tai tämän toinen juttu täällä. 643 00:25:54,840 --> 00:25:58,990 Ja kun me haluamme tehdä tämän, voimme käyttää, C nyt, tämä jos 644 00:25:58,990 --> 00:26:00,860 muu rakentaa. 645 00:26:00,860 --> 00:26:06,420 Ja sitten täällä on Boolen lausekkeita. 646 00:26:06,420 --> 00:26:09,260 Esimerkiksi Boolen täällä, voimme TAI 647 00:26:09,260 --> 00:26:12,260 ne yhteen, siinä mielessä, että meillä on tämä sairaus TAI 648 00:26:12,260 --> 00:26:13,200 tämä edellytys. 649 00:26:13,200 --> 00:26:15,100 Me voimme ja niitä yhdessä, siinä mielessä, että haluamme 650 00:26:15,100 --> 00:26:17,710 Tarkista tämä kunnossa ja kunnossa. 651 00:26:17,710 --> 00:26:22,440 Ja tässä meillä kytkimen lausuman nyt, mikä ei ole niin 652 00:26:22,440 --> 00:26:26,040 samanlaisia ​​syntaktisesti kuin erilaisia ​​ehtoja, mutta 653 00:26:26,040 --> 00:26:30,160 antaa meille mahdollisuuden tehdä vastaava, jos if, if, else 654 00:26:30,160 --> 00:26:34,990 jos, ja vastaavat yksinkertaisesti luetellaan ne tapauskohtaisesti 655 00:26:34,990 --> 00:26:36,670 mukaan tapauskohtaisesti. 656 00:26:36,670 --> 00:26:38,370 Joten näimme nuo viime kerralla. 657 00:26:38,370 --> 00:26:40,430 Ja sitten aloimme joka koskettaa asioita, kuten silmukoita. 658 00:26:40,430 --> 00:26:42,070 Näimme näistä vain hetki sitten. 659 00:26:42,070 --> 00:26:44,180 Mutta on näitä muita looping konstruktioita. 660 00:26:44,180 --> 00:26:46,370 >> Esimerkiksi, tämä tässä. 661 00:26:46,370 --> 00:26:50,140 Joten while (ehto), tehdä sitä uudestaan ​​ja uudestaan. 662 00:26:50,140 --> 00:26:53,070 Joten pohjimmiltaan, mikä näyttää olevan erilainen välinen 663 00:26:53,070 --> 00:26:55,760 varten silmukka ja tämä taas silmukka täällä? 664 00:27:00,810 --> 00:27:05,045 Tämä silmukka ja tämä taas silmukka. 665 00:27:05,045 --> 00:27:07,840 Niin? 666 00:27:07,840 --> 00:27:08,800 Mikä tuo on? 667 00:27:08,800 --> 00:27:10,050 YLEISÖ: [kuulumattomissa]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. MALAN: Hyvä. 669 00:27:15,120 --> 00:27:17,130 Eli taas on silmukka kunnossa, siellä on selvästi 670 00:27:17,130 --> 00:27:17,940 enemmän syntaksi. 671 00:27:17,940 --> 00:27:20,560 On tämä alustusta, on tämä päivitys. 672 00:27:20,560 --> 00:27:23,820 Vuonna while-silmukka, siellä on vain tämän ehdon. 673 00:27:23,820 --> 00:27:26,630 Näyttää siis siltä, ​​että se on hieman supistettu vs. varten 674 00:27:26,630 --> 00:27:28,770 silmukka, mikä tarkoittaa, että jos haluamme olla muuttujia ja haluamme 675 00:27:28,770 --> 00:27:30,800 on inkrementointi, oikeastaan ​​on 676 00:27:30,800 --> 00:27:32,500 tehdä sitä itse. 677 00:27:32,500 --> 00:27:34,420 >> Joten anna minun mennä eteenpäin ja avata gedit. 678 00:27:34,420 --> 00:27:36,320 Saanen siirtyä laitteen. 679 00:27:36,320 --> 00:27:38,110 Ja eiköhän tehdä nopeasti vähän esimerkiksi, että 680 00:27:38,110 --> 00:27:40,550 erottaa yksi näistä muista. 681 00:27:40,550 --> 00:27:42,490 Ja takana mielessäni täällä, minun pitäisi sanoa yksi asia. 682 00:27:42,490 --> 00:27:44,120 Olen erikseen mainittu nimi Tim. 683 00:27:44,120 --> 00:27:47,740 Tim oli todella joku, että opiskelija yritti löytää tekemistä 684 00:27:47,740 --> 00:27:48,680 läksyjään heille. 685 00:27:48,680 --> 00:27:51,280 Meillä ei ollut Tim kyseisessä jaksossa. 686 00:27:51,280 --> 00:27:53,690 Joten ymmärtää, etten esitetty opiskelija, se ei ollut oppilas. 687 00:27:53,690 --> 00:27:55,720 Se oli satunnainen henkilö internetissä tekemään asioita 688 00:27:55,720 --> 00:27:57,180 valtakirjalla viime vuonna. 689 00:27:57,180 --> 00:27:58,670 Niin huomaamme, että myös. 690 00:27:58,670 --> 00:28:00,630 Eli tässä tapauksessa tänne, anna minun mennä eteenpäin ja 691 00:28:00,630 --> 00:28:02,810 avata uuden tiedoston. 692 00:28:02,810 --> 00:28:04,800 Tiedosto, Uusi. 693 00:28:04,800 --> 00:28:06,050 Tämä antaa minulle välilehti täällä. 694 00:28:06,050 --> 00:28:09,940 Anna minun mennä eteenpäin ja tallenna se loop.c. 695 00:28:09,940 --> 00:28:11,810 Anna minun mennä ja valitse Tallenna. 696 00:28:11,810 --> 00:28:15,340 Ja sitten tänne, mennään eteenpäin ja alkaa kirjoittaa 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Saanen Lähennä 699 00:28:20,520 --> 00:28:23,410 Nyt teemme int main (void). 700 00:28:23,410 --> 00:28:30,020 Nyt haluan mennä eteenpäin ja tehdä (int i = 0; i < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 Ja nyt aion mennä eteenpäin ja tehdä tulosta tähti että olen 703 00:28:36,620 --> 00:28:37,890 aikaisemmin. 704 00:28:37,890 --> 00:28:39,390 Ja sitten lopussa ohjelman, olemme juuri menossa 705 00:28:39,390 --> 00:28:41,130 tulostaa uuden rivin, juuri niin että minun nopea 706 00:28:41,130 --> 00:28:42,470 ei näytä kaikkia sotkuinen. 707 00:28:42,470 --> 00:28:45,170 palauttaa 0. 708 00:28:45,170 --> 00:28:47,610 Näyttävät syntaktisesti oikein? 709 00:28:47,610 --> 00:28:48,040 Tähän mennessä. 710 00:28:48,040 --> 00:28:48,560 Joten katsotaanpas. 711 00:28:48,560 --> 00:28:51,290 >> Sallikaa minun loitontaa mennä minun pääteikkuna. 712 00:28:51,290 --> 00:28:54,570 Ja anna minun mennä eteenpäin ja ajaa silmukka, koska kutsuin tämän 713 00:28:54,570 --> 00:28:55,690 asia loop.c. 714 00:28:55,690 --> 00:28:56,780 Joten tee silmukka. 715 00:28:56,780 --> 00:28:57,840 Näyttää koota OK. 716 00:28:57,840 --> 00:29:00,210 Saanen ajaa silmukka, ja nyt Enter. 717 00:29:00,210 --> 00:29:01,820 Ja se näyttää painettu 10 tähteä. 718 00:29:01,820 --> 00:29:03,780 Joten vain muuntaa tämä taas silmukan ja mitä 719 00:29:03,780 --> 00:29:05,220 erilaisia ​​asioita me kompastua. 720 00:29:05,220 --> 00:29:11,290 Joten sen sijaan tämän, anna minun mennä tänne ja sanovat, kun i on 721 00:29:11,290 --> 00:29:12,760 vähemmän kuin 10 - 722 00:29:12,760 --> 00:29:14,910 Haluan päästä eroon varten silmukka. 723 00:29:14,910 --> 00:29:17,170 OK, joten meillä on pari ongelmaa jo. 724 00:29:17,170 --> 00:29:21,110 Eli ehto on sama, mutta olen ilmeisesti puuttuu 725 00:29:21,110 --> 00:29:21,680 alustus. 726 00:29:21,680 --> 00:29:23,840 Minulta puuttuu inkrementointi. 727 00:29:23,840 --> 00:29:28,020 Joten mitä pitäisi kääntäjä todennäköisesti kertoa minulle, kun yritän 728 00:29:28,020 --> 00:29:29,170 kääntää tämän ohjelman? 729 00:29:29,170 --> 00:29:29,666 Niin? 730 00:29:29,666 --> 00:29:31,154 YLEISÖ: [kuulumattomissa]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. MALAN: Hyvä. 732 00:29:31,650 --> 00:29:34,180 Joten se tulee sanoa jotain pimeää - tässä 733 00:29:34,180 --> 00:29:35,280 Tällöin muuttuja i. 734 00:29:35,280 --> 00:29:37,980 Ja todellakin, käytä Pimeän tunnisteen i. 735 00:29:37,980 --> 00:29:40,960 Ja niin tämä on vastoin kieliä kuten PHP ja 736 00:29:40,960 --> 00:29:43,120 Python ja Ruby, jonka jotkut teistä ehkä tuttu, 737 00:29:43,120 --> 00:29:44,820 jossa voit vain sellaista alkua käyttäen muuttujia 738 00:29:44,820 --> 00:29:47,420 halusipa ja ei tarvitse murehtia nimetä ne 739 00:29:47,420 --> 00:29:48,560 nimenomaisesti aina. 740 00:29:48,560 --> 00:29:51,770 C ja kielet kuten Java ja C + +, sinun täytyy olla 741 00:29:51,770 --> 00:29:53,020 erittäin selkeä. 742 00:29:53,020 --> 00:29:55,760 Ja jos haluat muuttuja nimeltä i, sinun täytyy kertoa minulle 743 00:29:55,760 --> 00:29:57,360 millainen muuttujan se on. 744 00:29:57,360 --> 00:29:59,360 Joten aiomme pitää korjata seuraavasti. 745 00:29:59,360 --> 00:30:05,510 Aion mennä tänne ja kirjoita int i; siksi 746 00:30:05,510 --> 00:30:07,860 Olen ilmoittanut muuttuja nimeltä i. 747 00:30:07,860 --> 00:30:09,180 Nyt olen ohitetaan askeleen. 748 00:30:09,180 --> 00:30:11,340 Olen ilmeisesti ole alustettu, mutta katsotaanpa, että 749 00:30:11,340 --> 00:30:13,650 vähintään merkkeihin clang lopettaa valittaminen. 750 00:30:13,650 --> 00:30:15,770 Sallikaa minun remake ohjelman. 751 00:30:15,770 --> 00:30:16,770 >> Okei, nyt se on vain valittavat 752 00:30:16,770 --> 00:30:17,870 eri syystä. 753 00:30:17,870 --> 00:30:21,130 "Muuttuja 'i' on alustamattoman kun käytetään täällä." Selvä, joten 754 00:30:21,130 --> 00:30:22,340 se on aika selkeä. 755 00:30:22,340 --> 00:30:25,510 Alustetaan tarkoittaa vain asettamalla se yhtä suuri kuin arvo. 756 00:30:25,510 --> 00:30:30,820 Ja olemme tehneet sitä, joten haluan kokeilla on 0. 757 00:30:30,820 --> 00:30:35,030 Nyt kokeile tätä uudelleen ja uudelleen ajaa clang. 758 00:30:35,030 --> 00:30:36,140 Koottu tällä kertaa. 759 00:30:36,140 --> 00:30:37,210 Ja olen aikeissa käyttää sitä. 760 00:30:37,210 --> 00:30:43,120 Mutta iso vanha loputon silmukka, koska olen tehnyt 761 00:30:43,120 --> 00:30:45,530 Alustuksen olen tehnyt kunnossa, mutta en ole koskaan tehnyt 762 00:30:45,530 --> 00:30:47,030 minkäänlaista inkrementointi. 763 00:30:47,030 --> 00:30:48,780 Joten miten voin tehdä inkrementointi? 764 00:30:48,780 --> 00:30:51,170 No, kun silmukka, se tuntuu aion olla 765 00:30:51,170 --> 00:30:54,180 tehdä sen sisällä silmukan, koska aivan kuten ensimmäisessä 766 00:30:54,180 --> 00:30:56,570 Viikon esimerkkejä tekee kiehkura rakenteita, kuten kanssa 767 00:30:56,570 --> 00:30:59,040 sukat ja itsensä laskenta, meidän piti tehdä 768 00:30:59,040 --> 00:31:01,550 jotain aivan lopussa, haluaisin palata seuraavalle riville. 769 00:31:01,550 --> 00:31:05,040 Mitä jos menen eteenpäin ja tehdä tämä i + + täällä? 770 00:31:05,040 --> 00:31:06,030 Älkäämme edes kääntää tätä. 771 00:31:06,030 --> 00:31:06,890 Catch minua jo. 772 00:31:06,890 --> 00:31:09,704 Mikä on vialla täällä? 773 00:31:09,704 --> 00:31:10,690 YLEISÖ: [kuulumattomissa]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. MALAN: siis todellakaan ole int. 775 00:31:11,770 --> 00:31:13,080 Se on i. 776 00:31:13,080 --> 00:31:15,110 Ja aaltosulkeita, kuten ennen, 777 00:31:15,110 --> 00:31:16,800 sisennys ei riitä. 778 00:31:16,800 --> 00:31:18,410 Joten nyt olen tässä rakentaa. 779 00:31:18,410 --> 00:31:21,780 Joten kun i on pienempi kuin 10, tulostaa tähti, 780 00:31:21,780 --> 00:31:23,220 Sitten kasvattaa i. 781 00:31:23,220 --> 00:31:25,680 Ja miten kun silmukka toimii on, että heti kun osut 782 00:31:25,680 --> 00:31:29,630 silmukan pohjaan, joka tässä tapauksessa näyttää rivi 10, 783 00:31:29,630 --> 00:31:32,880 se tulee palata linja 6, jolloin 784 00:31:32,880 --> 00:31:34,400 ehto tarkastetaan uudelleen. 785 00:31:34,400 --> 00:31:37,500 Ja jos minä vielä alle 10, teemme linjat 8 ja 786 00:31:37,500 --> 00:31:41,250 sitten 9, niin me osuma 10, ja palaa 6, uudelleen ja 787 00:31:41,250 --> 00:31:45,580 uudestaan ​​ja uudestaan ​​ja uudestaan, niin kauan kuin i on vähemmän kuin 10. 788 00:31:45,580 --> 00:31:47,860 Joten uusinnassa tekevät täällä. 789 00:31:47,860 --> 00:31:48,940 >> Okei, olemme koonneet kunnossa. 790 00:31:48,940 --> 00:31:50,300 Saanen uusinnassa silmukka. 791 00:31:50,300 --> 00:31:52,620 Ja nyt se todella tuntuu toimivan. 792 00:31:52,620 --> 00:31:55,100 Joten plussia ja miinuksia täällä? 793 00:31:55,100 --> 00:31:58,910 No, toistaiseksi siellä oikeastaan ​​ole koko PLO - 794 00:31:58,910 --> 00:31:59,420 niin söpö. 795 00:31:59,420 --> 00:32:01,870 Okei, se oli - ah, se oli onnettomuus. 796 00:32:01,870 --> 00:32:05,200 Selvä, joten mennään takaisin varten silmukka. 797 00:32:05,200 --> 00:32:07,530 Joten silmukat ovat mukavia, koska ne ovat erittäin selkeä. 798 00:32:07,530 --> 00:32:09,720 Ja vaikka he hieman kömpelöitä kirjoittaa, se on 799 00:32:09,720 --> 00:32:11,500 erittäin voimakas ja sen avulla voit tehdä 800 00:32:11,500 --> 00:32:12,980 useita asioita samanaikaisesti. 801 00:32:12,980 --> 00:32:16,240 Vaikka silmukat eivät näytä olevan valtava määrä arvo vain 802 00:32:16,240 --> 00:32:18,500 vielä, koska se tuntuu meidän on vain tehtävä enemmän työtä. 803 00:32:18,500 --> 00:32:20,670 Meidän täytyy laittaa alustuksen tänne, 804 00:32:20,670 --> 00:32:23,480 päivittää tänne, ja meidän on muistettava tehdä kaiken. 805 00:32:23,480 --> 00:32:26,260 Niin näemme ajoissa, että vaikka silmukoita todellisuudessa lainata 806 00:32:26,260 --> 00:32:29,380 itse vain eri yhteyksissä, eri tietojen 807 00:32:29,380 --> 00:32:33,900 rakenteita kuten luetteloita ja hash taulukoita, asiat me saamme 808 00:32:33,900 --> 00:32:34,970 puolivälissä lukukauden. 809 00:32:34,970 --> 00:32:37,900 Mutta nyt, tietää, että tämä kolmas tyyppi tunnetaan do- 810 00:32:37,900 --> 00:32:38,480 while-silmukka. 811 00:32:38,480 --> 00:32:39,540 Ja olemme nähneet tämän lyhyesti. 812 00:32:39,540 --> 00:32:41,830 Ja tämä voisi olla erittäin avulias PSET 1. 813 00:32:41,830 --> 00:32:45,570 Aina kun haluat tehdä jotain ja sitten tarkistaa, jos 814 00:32:45,570 --> 00:32:48,940 käyttäjä yhteistyössä, ja jos he eivät, tee se uudelleen, tee- 815 00:32:48,940 --> 00:32:51,460 while-silmukka omiaan tällaista logiikkaa. 816 00:32:51,460 --> 00:32:55,640 Koska kun tilaus ylhäältä alas tässä ymmärtää, 817 00:32:55,640 --> 00:32:57,750 älä tarkoittaa kirjaimellisesti tehdä tämän. 818 00:32:57,750 --> 00:32:59,830 Ja tehdä tämän uudestaan ​​ja uudestaan, mikä voisi olla? 819 00:32:59,830 --> 00:33:03,000 Ehkä se tarkoittaa soittamalla GetInt tai GetString sitten 820 00:33:03,000 --> 00:33:05,830 tarkkailun arvo GetInt tai GetString ja sitten huutaa 821 00:33:05,830 --> 00:33:08,260 klo käyttäjälle, jos ne eivät ole toimineet yhteistyössä pyytämällä heitä 822 00:33:08,260 --> 00:33:10,100 uudestaan ​​ja uudestaan ​​ja uudestaan. 823 00:33:10,100 --> 00:33:11,730 Minne haluat tehdä jotain kerran, 824 00:33:11,730 --> 00:33:13,210 sitten tarkistaa joitakin kunto. 825 00:33:13,210 --> 00:33:14,110 >> Joten kokeile tätä. 826 00:33:14,110 --> 00:33:17,130 Saanen todella muuttaa nyt do-while silmukka. 827 00:33:17,130 --> 00:33:18,830 Ja aion mennä eteenpäin ja tehdä seuraavasti. 828 00:33:18,830 --> 00:33:21,830 Joten toimi seuraavasti. 829 00:33:21,830 --> 00:33:26,870 Tehdään int i = GetInt (), mutta katsotaanpa ensin kertoa käyttäjälle 830 00:33:26,870 --> 00:33:27,410 mitä tehdä. 831 00:33:27,410 --> 00:33:29,050 Joten hieman erilainen tällä kertaa. 832 00:33:29,050 --> 00:33:31,270 "Anna minulle int". 833 00:33:31,270 --> 00:33:32,910 Joten minä käytän printf siitä. 834 00:33:32,910 --> 00:33:35,740 Ja nyt minä menen tänne, ja aion tehdä tämän 835 00:33:35,740 --> 00:33:41,520 kun i on, sanotaanko, yli - 836 00:33:41,520 --> 00:33:47,540 Katsotaanpa, i on, sanokaamme, vähemmän kuin 0 tai i on 837 00:33:47,540 --> 00:33:48,730 suurempi kuin 10. 838 00:33:48,730 --> 00:33:51,810 Toisin sanoen, haluan numero 1-9, vain 839 00:33:51,810 --> 00:33:52,720 mielivaltaisesti. 840 00:33:52,720 --> 00:33:55,290 Joten olen käyttäen yhdistettyä Boolen lauseke tästä 841 00:33:55,290 --> 00:33:59,930 Varmista, että i on pienempi kuin 0 tai suurempi kuin 10, jossa 842 00:33:59,930 --> 00:34:02,530 Jos teen tämän silmukan täällä taas. 843 00:34:02,530 --> 00:34:04,400 Joten jälleen, tee tätä - 844 00:34:04,400 --> 00:34:08,480 kun i on pienempi kuin 0 tai i on suurempi kuin 10. 845 00:34:08,480 --> 00:34:11,440 >> Joten nyt mennään eteenpäin ja tehdä tämän kerran olemme tehneet sen. 846 00:34:11,440 --> 00:34:13,270 Toivotaan vain tehdä nopeasti järki tarkistaa. 847 00:34:13,270 --> 00:34:18,929 printf ("Kiitos, i on% d", i). 848 00:34:18,929 --> 00:34:21,350 Joten tämä yksinkertainen ohjelma kysyy käyttäjältä int- 849 00:34:21,350 --> 00:34:24,000 varmistaa se joissakin alueella, 1-9 osallistavaa, 850 00:34:24,000 --> 00:34:26,280 ja sitten kiittää käyttäjä muistuttamalla heille mitä he vain 851 00:34:26,280 --> 00:34:27,940 kirjoitettu, aivan kuten vähän järki tarkistaa. 852 00:34:27,940 --> 00:34:30,659 Mutta katsotaanpa, jos tämä toimii kuten on tarkoitettu. 853 00:34:30,659 --> 00:34:34,533 Anna minun mennä pää tänne ja uusinnassa tekevät silmukka. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Käytä pimeän tunniste 'i'". Se on outoa. 856 00:34:38,600 --> 00:34:41,509 Luulin päätimme että. 857 00:34:45,489 --> 00:34:47,560 Sama oire mutta eri koodi. 858 00:34:47,560 --> 00:34:47,899 Niin? 859 00:34:47,899 --> 00:34:50,191 YLEISÖ: [kuulumattomissa] sisällä kaksi meidän on 860 00:34:50,191 --> 00:34:52,639 [Kuulumattomissa]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. MALAN: Aivan. 862 00:34:53,260 --> 00:34:55,989 Joten tämä todella johtaa meidät aiheeseen tunnetaan laajuutta. 863 00:34:55,989 --> 00:34:59,350 On käynyt ilmi, että C, jälleen, se todella vie kirjaimellisesti. 864 00:34:59,350 --> 00:35:02,970 Ja jos teet jotain tällaista, jossa voit ilmoittaa int 865 00:35:02,970 --> 00:35:06,120 ja sitten antaa se jotain arvoa, mutta sinä tuon sisällä 866 00:35:06,120 --> 00:35:09,840 pari aaltosulkeita, mitä C ei se olettaa sinun 867 00:35:09,840 --> 00:35:14,800 haluavat vain ne 32 bittiä kutsutaan i esiintyy 868 00:35:14,800 --> 00:35:18,200 yhteydessä näiden aaltosulkeita puitteissa rivien 869 00:35:18,200 --> 00:35:22,420 6: sta 9. Joten i on ilmoitettu, ja se on osoitettu 870 00:35:22,420 --> 00:35:26,530 arvo vastaa 8, mutta heti kun saat ulkopuolella 871 00:35:26,530 --> 00:35:30,270 rivi 9 alapuolella kihara ahdin, i ei ole enää 872 00:35:30,270 --> 00:35:31,910 soveltamisala, niin sanoakseni. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Se ei ole enää oikeassa yhteydessä. 874 00:35:35,030 --> 00:35:37,940 Joten nyt ei ole minun, joten se on ikään kuin meillä ei ollut edes 875 00:35:37,940 --> 00:35:38,770 julisti sitä ollenkaan. 876 00:35:38,770 --> 00:35:41,520 >> Joten mitä korjata sitten jotain tällaista, jos 877 00:35:41,520 --> 00:35:44,300 Syy on se, että olen julistetaan sisällä aaltosulkeita, joka 878 00:35:44,300 --> 00:35:45,120 on ilmeisesti huono? 879 00:35:45,120 --> 00:35:45,410 Täällä? 880 00:35:45,410 --> 00:35:46,820 YLEISÖ: [kuulumattomissa]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. MALAN: Joo. 882 00:35:47,150 --> 00:35:48,710 Joten voimme alustaa sen ulkopuolella. 883 00:35:48,710 --> 00:35:53,530 Joten anna minun mennä eteenpäin ja poista ilmoitus osat jolloin 884 00:35:53,530 --> 00:35:55,820 Olen eritellä, ja haluan tehdä sen täällä. 885 00:35:55,820 --> 00:36:00,220 Joten rivi 5, nyt sanoo "Anna minulle int." Soita se i. 886 00:36:00,220 --> 00:36:03,400 Huomaa linjassa 9, en halua tehdä tätä, koska olen 887 00:36:03,400 --> 00:36:04,830 jo 32 bittiä. 888 00:36:04,830 --> 00:36:06,140 En halua kysyä tietokoneen 889 00:36:06,140 --> 00:36:07,630 Eri 32 bittiä. 890 00:36:07,630 --> 00:36:09,850 Haluan käyttää samat 32 bittiä. 891 00:36:09,850 --> 00:36:13,190 Ja nyt, koska minä on ilmoitettu rivi 5, on silti legit 892 00:36:13,190 --> 00:36:16,550 käyttää sitä linjaa 11 ja linja 12. 893 00:36:16,550 --> 00:36:19,310 >> Sallikaa minun yrittää kääntää tätä ja nähdä 894 00:36:19,310 --> 00:36:20,490 jos clang pysähtyy huutaa. 895 00:36:20,490 --> 00:36:22,380 tee silmukka. 896 00:36:22,380 --> 00:36:25,470 Joten nyt se on "implisiittinen ilmoitus toiminnan 897 00:36:25,470 --> 00:36:29,880 "GetInt" on pätemätön C99. "Mikä tuo on? 898 00:36:29,880 --> 00:36:30,400 Niin? 899 00:36:30,400 --> 00:36:32,330 YLEISÖ: [kuulumattomissa]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. MALAN: Joo. 901 00:36:32,690 --> 00:36:35,520 Joten nyt olen todella käyttävät GetInt, tämä ei ole jotain 902 00:36:35,520 --> 00:36:38,190 että vain mukana C. Tämä tulee CS50. 903 00:36:38,190 --> 00:36:39,890 Tarvitsemme siis täällä. 904 00:36:39,890 --> 00:36:41,450 Ja anna minun mennä takaisin nopeasti alas 905 00:36:41,450 --> 00:36:43,500 täällä ja uusinnassa tekevät. 906 00:36:43,500 --> 00:36:44,160 Okei, vihdoin. 907 00:36:44,160 --> 00:36:46,270 Nyt olemme ratkaistu, että sekä muu virhe. 908 00:36:46,270 --> 00:36:48,930 Saanen nyt ajaa silmukka ja katso mitä tapahtuu. 909 00:36:48,930 --> 00:36:51,740 "Anna minulle int." Annan sen 11. 910 00:36:51,740 --> 00:36:53,100 Annan sen -1. 911 00:36:53,100 --> 00:36:54,470 Annan sen foo. 912 00:36:54,470 --> 00:36:56,080 Annan sen 5. 913 00:36:56,080 --> 00:36:57,450 Ja nyt se todella toimii. 914 00:36:57,450 --> 00:36:59,410 Mutta nopeasti muuttunut syy tähän. 915 00:36:59,410 --> 00:37:02,800 Miksi se sanoa yritä näistä kertoja, mutta antaa minulle 916 00:37:02,800 --> 00:37:03,920 int muut kolme kertaa? 917 00:37:03,920 --> 00:37:05,500 Miksi se käyttäytyminen erilainen? 918 00:37:05,500 --> 00:37:06,980 YLEISÖ: Antoi se merkkijono. 919 00:37:06,980 --> 00:37:07,830 DAVID J. MALAN: Anteeksi? 920 00:37:07,830 --> 00:37:08,570 YLEISÖ: Annoit sen merkkijono. 921 00:37:08,570 --> 00:37:08,990 DAVID J. MALAN: Joo. 922 00:37:08,990 --> 00:37:11,450 Niinpä annoimme sen merkkijono tässä kolmannella yrityksellä, 923 00:37:11,450 --> 00:37:12,490 kun olen kirjoittanut foo. 924 00:37:12,490 --> 00:37:13,200 Foo on merkkijono. 925 00:37:13,200 --> 00:37:14,340 Se ei tietenkään INT. 926 00:37:14,340 --> 00:37:17,500 Ja siten, että CS50 on toteutettu GetInt on se, että 927 00:37:17,500 --> 00:37:20,330 älä tarkista jos jotain on alle 0 tai yli 10 928 00:37:20,330 --> 00:37:22,260 sinulle, sillä miten me tiedämme etukäteen millaisia 929 00:37:22,260 --> 00:37:23,130 int haluat? 930 00:37:23,130 --> 00:37:25,880 Mutta voimme vähän tarkistaa sinulle, ei käyttäjä vähintään 931 00:37:25,880 --> 00:37:26,730 kirjoita kokonaisluku? 932 00:37:26,730 --> 00:37:30,500 Ja jos he eivät, me huuda käyttäjän kirjoittamalla "yritä uudelleen" on 933 00:37:30,500 --> 00:37:31,440 näytön. 934 00:37:31,440 --> 00:37:34,210 >> Joten nyt meillä on ohjelma, joka on kiehkura. Okei. 935 00:37:34,210 --> 00:37:37,070 Nyt, mikä näistä on tavallaan parempi rakentaa? 936 00:37:37,070 --> 00:37:39,060 Joten tämä on, jos asiat alkavat saada hieman sotkuinen, 937 00:37:39,060 --> 00:37:42,360 että sinun täytyy muistaa julistaa muuttuja täällä 938 00:37:42,360 --> 00:37:44,630 Jos haluat käyttää sitä sisällä joidenkin 939 00:37:44,630 --> 00:37:46,460 aaltosulkeita ulkopuolella. 940 00:37:46,460 --> 00:37:48,490 Mutta vaikka tämä näyttää hieman arvoituksellisesti ensin 941 00:37:48,490 --> 00:37:50,750 silmäyksellä, vain kerran, muista yksinkertainen logiikka. 942 00:37:50,750 --> 00:37:54,630 Voidakseen käyttää mitään C, onko se toiminto tai 943 00:37:54,630 --> 00:37:57,680 se muuttuja, sinun täytyy sisällyttää se, jos se on tehtävä 944 00:37:57,680 --> 00:37:59,770 joissakin kirjastossa, tai sinun täytyy julistaa sitä. 945 00:37:59,770 --> 00:38:02,405 Mutta nyt sinun täytyy olla erityisen tietoinen siitä, että 946 00:38:02,405 --> 00:38:04,940 olet julistaa oikeaan piiriin. 947 00:38:04,940 --> 00:38:08,150 Et laitat sen liian tiukasti sisällä suluissa. 948 00:38:08,150 --> 00:38:09,410 >> Haluan siis todella perua. 949 00:38:09,410 --> 00:38:12,660 Jos menemme takaisin meidän esimerkiksi aiemmin, ja menen 950 00:38:12,660 --> 00:38:19,245 takaisin varten int, int i = 0; i <10; i + +, ja minä 951 00:38:19,245 --> 00:38:26,370 do printf tähdet, kuten tämä, ja sulje sitten Paren, ja nyt 952 00:38:26,370 --> 00:38:30,410 printf i on nyt - 953 00:38:30,410 --> 00:38:33,500 mukaan samaa logiikkaa, mitä tapahtuu, kun yritän 954 00:38:33,500 --> 00:38:35,500 kääntää tämän ohjelman? 955 00:38:35,500 --> 00:38:36,790 YLEISÖ: Virheellinen tunniste. 956 00:38:36,790 --> 00:38:38,560 DAVID J. MALAN: Eli se toinen virheellinen tunniste, 957 00:38:38,560 --> 00:38:39,470 pimeän tunniste. 958 00:38:39,470 --> 00:38:41,810 Nyt syy on hieman erilainen. 959 00:38:41,810 --> 00:38:44,370 Ei tietenkään ole aaltosulkeita täällä, mutta samaa 960 00:38:44,370 --> 00:38:46,790 idea, sama tarina soveltamisala koskee. 961 00:38:46,790 --> 00:38:50,340 Jos olet ilmoittanut muuttuja kuin olisin sisällä 962 00:38:50,340 --> 00:38:53,960 varten silmukka, vaikka et ole erikseen kirjoitettu kihara 963 00:38:53,960 --> 00:38:56,980 housunkannattimet, ajatella niitä henkisesti silti siellä, jossa 964 00:38:56,980 --> 00:39:00,310 Jos i on voimassa vain sisällä ja silmukka. 965 00:39:00,310 --> 00:39:03,080 Se ei ole kelvollinen kun saat seuraavalle riville, joka 966 00:39:03,080 --> 00:39:05,090 Tässä tapauksessa on nyt 10. 967 00:39:05,090 --> 00:39:09,060 Joten vain muutamia kysymyksiä laajuus ja vastaavat. 968 00:39:09,060 --> 00:39:12,620 Selvä, kysyttävää? 969 00:39:12,620 --> 00:39:15,310 >> Okei, joten tämä on tavallaan triviaali pieni ohjelma, 970 00:39:15,310 --> 00:39:17,450 tulostaa vain pikku tähtiä. 971 00:39:17,450 --> 00:39:20,400 Mutta katsotaanpa jos muistat tämän laulun täällä. 972 00:39:20,400 --> 00:39:22,530 Tämä on uskomattoman ärsyttävää song kids laulaa 973 00:39:22,530 --> 00:39:23,550 koulubussi ja vastaavat. 974 00:39:23,550 --> 00:39:25,990 Mutta mitä mukavaa on se, että se on tämä syklisyys, 975 00:39:25,990 --> 00:39:27,910 jolloin se on "99 pulloa olutta seinälle, 976 00:39:27,910 --> 00:39:28,520 99 pulloa olutta. 977 00:39:28,520 --> 00:39:31,030 Ota yksi alas, siirtää se noin, 98 pulloa olutta 978 00:39:31,030 --> 00:39:34,330 seinään. "Ja sitten laulun toistaa 97, sitten 96, sitten 979 00:39:34,330 --> 00:39:38,040 95, sitten 94, kaikki alas 0 jos todella saanut että 980 00:39:38,040 --> 00:39:38,920 mennessä bussissa. 981 00:39:38,920 --> 00:39:41,960 Joten tämä on mukava ohjelma tavallaan toteuttaa, koska minun 982 00:39:41,960 --> 00:39:43,650 Jumala, jos voisi vain toteuttaa tätä muutaman 983 00:39:43,650 --> 00:39:46,660 riviä koodia, voit sylkäistä koko lyrics tähän 984 00:39:46,660 --> 00:39:48,240 laulu melko nopeasti. 985 00:39:48,240 --> 00:39:50,420 Mutta matkan varrella, voimme alkaa nyt erottaa toisistaan ​​jonkin 986 00:39:50,420 --> 00:39:52,460 Näiden perus kiehkura rakenteita ja nyt myös 987 00:39:52,460 --> 00:39:55,830 esitellä toimintoja kirjoitamme itseämme, palauta arvoja 988 00:39:55,830 --> 00:39:57,020 että me kiertämään. 989 00:39:57,020 --> 00:39:58,910 Mutta ensin, miksi emme mene eteenpäin ja otamme viiden minuutin 990 00:39:58,910 --> 00:39:59,320 rikkoa täällä? 991 00:39:59,320 --> 00:40:01,480 Ja kun palaamme, emme laulaaksesi tämän laulun. 992 00:40:05,680 --> 00:40:08,760 >> Selvä, joten olemme takaisin. 993 00:40:08,760 --> 00:40:11,850 Ja kun sanon me nyt laulaa tämän laulun, tarkoitan 994 00:40:11,850 --> 00:40:13,250 ohjelmallisesti, ei sanallisesti. 995 00:40:13,250 --> 00:40:19,370 Joten tässä meillä on beer1.c, joka on yksi täytäntöönpanon 996 00:40:19,370 --> 00:40:20,580 Erityisesti kappaleen. 997 00:40:20,580 --> 00:40:23,110 Ja vain olla selkeitä, niille tunne mitä 998 00:40:23,110 --> 00:40:24,460 tämä asia näyttää, anna minun mennä eteenpäin 999 00:40:24,460 --> 00:40:27,070 ja tehdä beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Nyt haluan juosta beer1, ja mitä näemme - kuinka monta pulloa 1001 00:40:30,400 --> 00:40:31,140 Oluen tuleeko? 1002 00:40:31,140 --> 00:40:33,240 Minä kirjoita 99, kuten laulussa sanotaan. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 Ja nyt jos me selata - 1005 00:40:35,650 --> 00:40:38,280 oho - jos me selata kaikkia tämän, näemme, että 1006 00:40:38,280 --> 00:40:41,350 tämä todellakin laulaa koko laulun. 1007 00:40:44,050 --> 00:40:44,540 Hetkinen. 1008 00:40:44,540 --> 00:40:46,240 Minun vierityspalkki on hieman sekaisin. 1009 00:40:46,240 --> 00:40:47,940 Katsotaanpa käyttää isompi ikkuna. 1010 00:40:47,940 --> 00:40:53,500 Joten beer1, 99, sinne siis. 1011 00:40:53,500 --> 00:40:56,420 Joten tässä meillä on koko laulu, laulaa paljon nopeammin 1012 00:40:56,420 --> 00:40:58,450 tietokone kuin se olisi voinut olla meille. 1013 00:40:58,450 --> 00:41:00,340 Joten huomaa kuitenkin, suhdanneherkkyys täällä. 1014 00:41:00,340 --> 00:41:03,380 Siinä sanotaan 99, sitten 99, sitten "ottaa yksi alas, vie se 1015 00:41:03,380 --> 00:41:04,740 noin, "sitten 98. 1016 00:41:04,740 --> 00:41:06,640 Ja nyt se toistaa uudelleen ja uudelleen. 1017 00:41:06,640 --> 00:41:08,840 >> Joten tämä on todella erinomainen tilaisuus jonkinlaista 1018 00:41:08,840 --> 00:41:10,400 silmukointi rakentaa. 1019 00:41:10,400 --> 00:41:12,950 Huomaa, että olen sellainen leikkaus nurkassa täällä. 1020 00:41:12,950 --> 00:41:15,960 Huomaa, että sanon "98 pulloa olutta seinälle, 1021 00:41:15,960 --> 00:41:19,010 97 pulloa olutta seinälle ", ja se oli juuri niin 1022 00:41:19,010 --> 00:41:21,640 että uusista yhteen pulloa olutta, minulla ei ole 1023 00:41:21,640 --> 00:41:23,300 murehtia Englanti kielioppi. 1024 00:41:23,300 --> 00:41:25,790 Mutta voimme myös korjata tätä hieman, jos 1025 00:41:25,790 --> 00:41:26,910 kunnossa, ehkä. 1026 00:41:26,910 --> 00:41:30,110 Jos tämä on ainutlaatuinen, mennä eteenpäin ja sanoa "pullo" 1027 00:41:30,110 --> 00:41:31,840 toisin, jos se on monikossa, sano "pulloja". 1028 00:41:31,840 --> 00:41:34,150 Mutta nyt, olen täysin leikkaus, joka nurkkaan. 1029 00:41:34,150 --> 00:41:35,520 Joten mitä meillä täällä. 1030 00:41:35,520 --> 00:41:37,150 Joten meillä on joitakin huomautuksia yläreunassa. 1031 00:41:37,150 --> 00:41:39,450 Olen myös näiden kirjastojen, kuten 1032 00:41:39,450 --> 00:41:41,140 olemme yleensä olleet. 1033 00:41:41,140 --> 00:41:43,610 Ja nyt haluaisin selaa ensimmäisen 1034 00:41:43,610 --> 00:41:44,990 todellinen riviä koodia. 1035 00:41:44,990 --> 00:41:47,020 Rivi 17 käynnistymässä tärkein. 1036 00:41:47,020 --> 00:41:50,610 Rivi 21 ja 20 on kuinka monta pulloa olutta tuleeko? 1037 00:41:50,610 --> 00:41:52,060 Ja sitten kutsun GetInt. 1038 00:41:52,060 --> 00:41:53,800 Ja nyt minulla on vähän järki tarkistaa. 1039 00:41:53,800 --> 00:41:57,030 >> Joten tämä on yleissopimuksen että me nyt alkaa omaksuttu 1040 00:41:57,030 --> 00:41:59,620 tarkemmin tarkista käyttäjän syöttää. 1041 00:41:59,620 --> 00:42:01,710 Joskus vain halua pyytää niitä uudelleen 1042 00:42:01,710 --> 00:42:02,630 ja uudestaan ​​ja uudestaan. 1043 00:42:02,630 --> 00:42:05,620 Jos käyttäjä mokaa ja ei tee yhteistyötä, hienoa. 1044 00:42:05,620 --> 00:42:07,430 Lopeta ja eivät vain käsitellä niitä. 1045 00:42:07,430 --> 00:42:08,990 Ja niin se mitä olen täällä. 1046 00:42:08,990 --> 00:42:12,520 Jos n on pienempi kuin 1, olen juuri menossa huutamaan käyttäjä, 1047 00:42:12,520 --> 00:42:14,330 "Anteeksi, että ei ole mitään järkeä." Ja sitten aion 1048 00:42:14,330 --> 00:42:16,650 mielivaltaisesti palaa 1. 1049 00:42:16,650 --> 00:42:18,550 Joten jälleen, tämä on vain yleissopimuksen tottua. 1050 00:42:18,550 --> 00:42:19,850 Nyt ottaa sitä uskossa. 1051 00:42:19,850 --> 00:42:22,700 Mutta tähän asti, olemme aina palaavat 0, koska 1052 00:42:22,700 --> 00:42:25,204 olemme sanoneet palaamassa 0 tarkoittaa mitä? 1053 00:42:25,204 --> 00:42:26,000 YLEISÖ: Menestys. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. MALAN: Success, siinä kaikki. 1055 00:42:27,320 --> 00:42:29,740 Joten nyt olemme vihdoin alkaneet miettiä 1056 00:42:29,740 --> 00:42:31,330 ei onnistumisia - 1057 00:42:31,330 --> 00:42:33,760 Toisin sanoen, kulma tapauksissa, virhetilanteet - 1058 00:42:33,760 --> 00:42:37,520 Nyt minulla on ääretön tarjonta, tai ainakin neljä miljardia 1059 00:42:37,520 --> 00:42:39,790 mahdolliset asiat, jotka voivat mennä pieleen minun ohjelmia. 1060 00:42:39,790 --> 00:42:42,300 Ja voin aloittaa osoittamalla niitä yksittäisiä numeroita. 1061 00:42:42,300 --> 00:42:44,340 Nyt, yleensä se riittää vain palata 1062 00:42:44,340 --> 00:42:45,730 jotain muuta kuin 0. 1063 00:42:45,730 --> 00:42:48,040 Joten aiomme yksinkertaisesti palauttaa 1 nyt. 1064 00:42:48,040 --> 00:42:51,440 Mutta syy palauttaa 1 on, että heti kun palaat 1065 00:42:51,440 --> 00:42:55,110 1, arvaa mitä tapahtuu muun ohjelman? 1066 00:42:55,110 --> 00:42:55,720 Se pysähtyy. 1067 00:42:55,720 --> 00:42:56,560 Siinä kaikki. 1068 00:42:56,560 --> 00:42:59,150 Niin että olen palaamassa 1 on tehokkaasti 1069 00:42:59,150 --> 00:43:02,950 oikosulkuun tämän ohjelman toteuttamista, jotta 1070 00:43:02,950 --> 00:43:06,780 mitään alla line 27 jatkaa täytäntöönpanovaltiossa. 1071 00:43:06,780 --> 00:43:09,210 Niin pian kuin pää-palaa, että se on. 1072 00:43:09,210 --> 00:43:13,160 >> Selvä, joten jos käyttäjä tekee yhteistyötä ja tavoitamme linja 30 1073 00:43:13,160 --> 00:43:15,680 koska ne kirjoitetaan oikeutetun määrän, tässä on minun 1074 00:43:15,680 --> 00:43:16,990 täytäntöönpanoa tämän laulun. 1075 00:43:16,990 --> 00:43:19,050 Joten haluan ensin tulostaa rivinvaihtomerkki, vain 1076 00:43:19,050 --> 00:43:19,880 estetiikka. 1077 00:43:19,880 --> 00:43:21,500 Minulla on nyt varten silmukka. 1078 00:43:21,500 --> 00:43:22,930 Ja huomaa Teen asioita hieman 1079 00:43:22,930 --> 00:43:23,880 on eri suuntaan. 1080 00:43:23,880 --> 00:43:26,210 Minun ei tarvitse tehdä alle, minun ei tarvitse tehdä + +. 1081 00:43:26,210 --> 00:43:30,660 Voin vaan sanoa alustaa muuttujan i, aseta se vastaa 1082 00:43:30,660 --> 00:43:35,080 n, numero käyttäjä kirjoitettu, tee seuraavat, joten 1083 00:43:35,080 --> 00:43:39,590 kauan kuin minulla on suurempi kuin 0, niin I - 1084 00:43:39,590 --> 00:43:42,070 kun olet lopettanut yhden iteraation tämän silmukan. 1085 00:43:42,070 --> 00:43:44,310 Joten voimme laskea alas käyttämällä varten silmukka samoin. 1086 00:43:44,310 --> 00:43:47,520 Nyt tämä on melko paljon viikolla yksi tavaraa nyt, printf. 1087 00:43:47,520 --> 00:43:51,770 Joten print "% d pulloa olutta seinälle." Print "% d 1088 00:43:51,770 --> 00:43:54,990 pulloa olutta. "" Ota yksi alas, siirtää se noin. "Print 1089 00:43:54,990 --> 00:43:58,880 "% D pulloa olutta seinälle." Joten se on vielä% d, mutta 1090 00:43:58,880 --> 00:44:02,770 huomaa, että argumentti printf muuttuu. 1091 00:44:02,770 --> 00:44:05,840 Pilkun jälkeen, olen minä, koska en halua sanoa 99. 1092 00:44:05,840 --> 00:44:08,590 Tämän jälkeen pilkku, olen minä, koska en halua sanoa 99. 1093 00:44:08,590 --> 00:44:14,030 Tämän jälkeen pilkku, olen minä - 1, koska haluan sanoa 98 1094 00:44:14,030 --> 00:44:16,260 tämän ensimmäisen iteraation, ja niin edelleen. 1095 00:44:16,260 --> 00:44:18,520 Ja nyt tänne, minulla on vain joitakin tyhmä pikku huomautuksen. 1096 00:44:18,520 --> 00:44:22,270 Ja sitten linja 42, palaan 0 sopimuksen mukaan, merkitsee, että 1097 00:44:22,270 --> 00:44:23,650 kaikki on kunnossa. 1098 00:44:23,650 --> 00:44:24,490 >> Joten mitä jos minä goofed? 1099 00:44:24,490 --> 00:44:26,350 Mikä voisi yleinen virhe täällä on? 1100 00:44:26,350 --> 00:44:29,200 No, mitä jos olen vahingossa sanonut hyvin, en halua laskea 1101 00:44:29,200 --> 00:44:31,640 alas 0, haluan 0 pulloa olutta seinälle? 1102 00:44:31,640 --> 00:44:34,620 Joten sanon, i on suurempi tai yhtä suuri kuin 0. 1103 00:44:34,620 --> 00:44:38,920 Mitä tulee olemaan oire että nyt näen jos kääntää 1104 00:44:38,920 --> 00:44:41,173 beer1 ja ajaa se? 1105 00:44:41,173 --> 00:44:42,120 YLEISÖ: Negatiivinen. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. MALAN: Joo, se on menossa negatiivinen. 1107 00:44:43,590 --> 00:44:45,950 Tämä on off-by-yksi virhe, uskomattoman 1108 00:44:45,950 --> 00:44:47,270 yleinen virhe tehdä. 1109 00:44:47,270 --> 00:44:48,960 Mennään itse mennä takaisin pääteikkuna ja tehdä se 1110 00:44:48,960 --> 00:44:50,620 täällä, joten voimme nähdä enemmän kerralla. 1111 00:44:50,620 --> 00:44:53,280 Anna, 99 pulloa olutta. 1112 00:44:53,280 --> 00:44:56,580 Lähellä, mutta menimme koskaan niin hieman liian pitkälle. 1113 00:44:56,580 --> 00:45:00,500 Me lauloimme laulun liian alas, niin että nyt osui 1114 00:45:00,500 --> 00:45:01,510 negatiivinen luku. 1115 00:45:01,510 --> 00:45:03,680 Joten se ei oikein toimi. 1116 00:45:03,680 --> 00:45:06,450 >> Selvä, joten voimme helposti korjata, että menemällä takaisin 1117 00:45:06,450 --> 00:45:07,650 miten se kerran oli. 1118 00:45:07,650 --> 00:45:10,360 Mutta mitkä ovat mahdollisuudet nyt 1119 00:45:10,360 --> 00:45:11,190 parannusta? 1120 00:45:11,190 --> 00:45:17,200 No, haluan avata beer2.c ja selaa täällä ja ottaa 1121 00:45:17,200 --> 00:45:19,310 katsokaa tätä versiota. 1122 00:45:19,310 --> 00:45:21,370 Mikä on ensimmäinen asia, että hyppää ulos sinua eri 1123 00:45:21,370 --> 00:45:23,715 Tämän version täällä? 1124 00:45:23,715 --> 00:45:24,190 YLEISÖ: [kuulumattomissa]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. MALAN: Joo, niin enää en, koska se tapahtui 1126 00:45:26,510 --> 00:45:29,350 minulle tiedätkö mitä, minä pyydän käyttäjältä n, ja sitten olen 1127 00:45:29,350 --> 00:45:33,580 jossa I on n, ja sitten olen muuttumassa I, mutta en ole koskaan 1128 00:45:33,580 --> 00:45:34,590 koskettamalla n uudelleen. 1129 00:45:34,590 --> 00:45:37,390 Joten mitä ihmettä oli kohta te jakamisesta toisen 32 1130 00:45:37,390 --> 00:45:45,210 bittiä kutsutaan Olen vain niin, että voin olla eri muuttujaa? 1131 00:45:45,210 --> 00:45:47,960 Eli tässä tapauksessa olen tavallaan tunnustanut, että tarpeettomat 1132 00:45:47,960 --> 00:45:49,190 design ominaisuus. 1133 00:45:49,190 --> 00:45:52,730 Ja minä lähden nyt sanoa, kun n on suurempi kuin 0, siirry 1134 00:45:52,730 --> 00:45:56,180 eteenpäin ja tulostaa samaan kappaleeseen, kulkee N printf kuin 1135 00:45:56,180 --> 00:46:00,210 Toinen perustelu, ja n - 1 koska toinen argumentti täällä. 1136 00:46:00,210 --> 00:46:02,930 Ja sitten jokaisen iteraation tämän silmukan, mennä eteenpäin ja juuri 1137 00:46:02,930 --> 00:46:05,080 dekrementoidaan n itse. 1138 00:46:05,080 --> 00:46:06,960 Nyt, toiminnallisesti, tämä ohjelma 1139 00:46:06,960 --> 00:46:08,010 tulee olemaan sama. 1140 00:46:08,010 --> 00:46:10,730 Jos minä kirjoita 99, N alkaa 99. 1141 00:46:10,730 --> 00:46:12,890 Minä vähennys, vähennys, vähennys, vähennys. 1142 00:46:12,890 --> 00:46:15,875 Aion saada kaikki alas "Yksi pullo olutta 1143 00:46:15,875 --> 00:46:16,740 seinään, yksi pullo olutta. 1144 00:46:16,740 --> 00:46:18,020 Ota yksi alas, siirtää sen ympärillä. 1145 00:46:18,020 --> 00:46:21,480 0 pulloa olutta seinälle. "Loppu, koska tein 1146 00:46:21,480 --> 00:46:23,200 saada tila oikea. 1147 00:46:23,200 --> 00:46:24,280 Se on suurempi kuin 0. 1148 00:46:24,280 --> 00:46:26,220 En tee tätä virhettä. 1149 00:46:26,220 --> 00:46:28,470 >> Joten mikä on parempi, versio yksi tai version kaksi? 1150 00:46:31,380 --> 00:46:33,480 Kuulin nippu nurinasta kaksi. 1151 00:46:33,480 --> 00:46:34,730 Miksi kaksi? 1152 00:46:37,210 --> 00:46:38,225 Mikä tuo on? 1153 00:46:38,225 --> 00:46:39,215 YLEISÖ: [kuulumattomissa]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. MALAN: Ai, okei. 1155 00:46:40,070 --> 00:46:42,870 Joten se ei mene alle 0, mutta muistan, versio yksi, 1156 00:46:42,870 --> 00:46:45,870 alkuperäinen oikea versio ei mene alle 0 myöskään. 1157 00:46:45,870 --> 00:46:48,340 Muista siis, että tämä on oikea versio. 1158 00:46:48,340 --> 00:46:51,630 Joten ainakin verrata kahta oikeat versiot. 1159 00:46:51,630 --> 00:46:53,300 Mikä puoltaa version 1160 00:46:53,300 --> 00:46:55,146 kaksi on, mmm, paremmin? 1161 00:46:55,146 --> 00:46:55,642 Niin? 1162 00:46:55,642 --> 00:46:57,630 YLEISÖ: Se käyttää vähemmän tilaa. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. MALAN: Okei, joten se käyttää vähemmän tilaa, eikö? 1164 00:46:59,530 --> 00:47:02,900 Muunnos, jota käytetään 32 bittiä n, ja sitten toinen 1165 00:47:02,900 --> 00:47:07,680 32 bittiä i. 1166 00:47:07,680 --> 00:47:10,060 Versiossa kaksi käyttää vain 32 bittiä n, siten, että 1167 00:47:10,060 --> 00:47:11,700 näyttää olevan plus. 1168 00:47:11,700 --> 00:47:12,950 Muita ajatuksia? 1169 00:47:18,070 --> 00:47:21,520 Haluaako joku puoltavat yhden? 1170 00:47:21,520 --> 00:47:22,070 Niin? 1171 00:47:22,070 --> 00:47:25,240 YLEISÖ: Sinun täytyy käyttää ylimääräistä koodiriviä n -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. MALAN: Okei, varmasti. 1173 00:47:26,090 --> 00:47:26,960 Joten se on reilua. 1174 00:47:26,960 --> 00:47:29,040 Joten tämä vain, ainakin minulle - 1175 00:47:29,040 --> 00:47:31,940 Tarkoitan, tämä todella tuntuu vähän Messier, että 1176 00:47:31,940 --> 00:47:35,120 En voi tavallaan kiteyttää kaikki minun logiikka yhdessä 1177 00:47:35,120 --> 00:47:38,030 kaunis viiva, on silmukka, kuten for-silmukan voi. 1178 00:47:38,030 --> 00:47:40,240 Täällä olen sellainen täytyy tack tätä n - 1179 00:47:40,240 --> 00:47:41,120 lopussa silmukka, koska 1180 00:47:41,120 --> 00:47:42,550 se on loogisesti välttämätöntä. 1181 00:47:42,550 --> 00:47:45,190 Mutta se tavallaan hieroo minua väärin, vain koska se 1182 00:47:45,190 --> 00:47:48,260 näyttää erillään logiikan täällä, vaikka 1183 00:47:48,260 --> 00:47:49,430 uudelleen, se on välttämätöntä. 1184 00:47:49,430 --> 00:47:50,990 Muita ajatuksia? 1185 00:47:50,990 --> 00:47:51,490 Niin? 1186 00:47:51,490 --> 00:47:52,740 YLEISÖ: [kuulumattomissa]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. MALAN: Joo. 1188 00:47:58,350 --> 00:48:00,730 Joten mitä jos sen sijaan, lopussa laulun, halusi 1189 00:48:00,730 --> 00:48:02,950 tulostaa uudelleen kappaleen nimi? 1190 00:48:02,950 --> 00:48:05,660 Kuten "Kiitos pelaa 99 pulloa olutta", tai jotain 1191 00:48:05,660 --> 00:48:06,690 typerä tuollaista? 1192 00:48:06,690 --> 00:48:09,750 Mutta kohta on, halusitte käyttää alkuperäiseen arvoon. 1193 00:48:09,750 --> 00:48:13,180 Se, että olet mutatoitunut tai muuttanut n välein 1194 00:48:13,180 --> 00:48:16,330 iteraatio ja siksi ovat tuhonneet sen alkuperäistä arvoa 1195 00:48:16,330 --> 00:48:18,650 tarkoittaa juuri voi tehdä sitä loppuun. 1196 00:48:18,650 --> 00:48:20,660 Nyt, luultavasti, emme selvästikään halua tehdä 1197 00:48:20,660 --> 00:48:21,450 että tässä ohjelmassa. 1198 00:48:21,450 --> 00:48:22,350 Joten kuka välittää? 1199 00:48:22,350 --> 00:48:23,630 Mutta se on hyvin pätevä kohta. 1200 00:48:23,630 --> 00:48:25,520 Ja ollakseni rehellinen, ei todellakaan ole ketään 1201 00:48:25,520 --> 00:48:26,630 Oikea vastaus täällä. 1202 00:48:26,630 --> 00:48:28,740 He molemmat yhtä oikeita. 1203 00:48:28,740 --> 00:48:30,210 Voisin olla vakuuttunut joko tavalla. 1204 00:48:30,210 --> 00:48:33,310 Sanon, että yleensä se on hyvä periaate, jos 1205 00:48:33,310 --> 00:48:36,030 kysyi käyttäjältä jotain arvoa ja te tallennettu muuttujan 1206 00:48:36,030 --> 00:48:38,730 kuten n, vain eräänlainen periaatteessa, se on luultavasti hyvä 1207 00:48:38,730 --> 00:48:40,160 pitää, että noin. 1208 00:48:40,160 --> 00:48:43,400 Ja kaikki tiedot, jotka haluat muuttua uudestaan ​​ja uudestaan, vain 1209 00:48:43,400 --> 00:48:46,030 anna itsellesi kopion muuttujan, juuri niin, että 1210 00:48:46,030 --> 00:48:47,830 saada alkuperäistä. 1211 00:48:47,830 --> 00:48:51,040 Vietät 32 enemmän bittejä, mutta todellisuus on tämä 1212 00:48:51,040 --> 00:48:53,490 tietokone on kuin, kaksi gigatavua keskusmuistia näinä päivinä, 1213 00:48:53,490 --> 00:48:55,310 ja me kinastelu yli 32 bittiä? 1214 00:48:55,310 --> 00:48:56,320 Todellakaan ole niin iso juttu. 1215 00:48:56,320 --> 00:48:58,550 Ja vaikka tämän laitteen täällä, puoli keikka tai 1216 00:48:58,550 --> 00:49:01,700 gigatavu RAM-muistia, 32 bittiä vs. 64 bittiä, 1217 00:49:01,700 --> 00:49:02,920 ole niin iso juttu. 1218 00:49:02,920 --> 00:49:05,890 Varmasti tänään, se tulee olemaan tapa hukkua koko 1219 00:49:05,890 --> 00:49:08,400 itse ohjelman, joka tulee olemaan useita satoja 1220 00:49:08,400 --> 00:49:10,890 kilotavua, jos ei muutamia megatavuja, näinä päivinä. 1221 00:49:10,890 --> 00:49:13,550 >> Joten kohtuullinen koskee, ole yhtä oikeaa vastausta. 1222 00:49:13,550 --> 00:49:15,490 Mutta ainakin ne ovat ajatuksia, jotka tulisi aloittaa 1223 00:49:15,490 --> 00:49:16,790 läpi mielesi? 1224 00:49:16,790 --> 00:49:19,600 Koska PSET 0, vaikka emme oikeastaan ​​vain odottaa 1225 00:49:19,600 --> 00:49:22,340 oikeellisuudesta, tai ainakin vastuutaan eri vikoja jotka 1226 00:49:22,340 --> 00:49:25,440 olet ehkä kohdannut, kun menemme eteenpäin, suunnittelu on 1227 00:49:25,440 --> 00:49:27,910 olemaan toinen keskeinen näkökohta, sekä kirjoittaa koodia 1228 00:49:27,910 --> 00:49:29,770 ja myös arvioida koodia. 1229 00:49:29,770 --> 00:49:32,310 Ja niin ainakin antaa ajatellut asioita, kuten tämä. 1230 00:49:32,310 --> 00:49:35,590 Ja vain siksi, että jotain töitä ei tarkoita se on hyvä, 1231 00:49:35,590 --> 00:49:37,130 ei tarkoita sitä hyvin suunniteltu. 1232 00:49:37,130 --> 00:49:38,820 Ja se on yksi niistä asioista, opetus kaverit ja 1233 00:49:38,820 --> 00:49:41,990 ongelma sarjat auttaa meitä kiusaa osa ajan. 1234 00:49:41,990 --> 00:49:45,020 >> No, entä, sanotaanko, tämä versio täällä? 1235 00:49:45,020 --> 00:49:49,090 Anna minun tehdä jotain hieman seksikäs täällä hetken. 1236 00:49:49,090 --> 00:49:50,740 Ensinnäkin haluan päästä eroon tästä. 1237 00:49:50,740 --> 00:49:54,120 Ja nyt mennään korjata kielioppi ongelman. 1238 00:49:54,120 --> 00:49:58,780 Joten tässä versiossa, haluan korjata kielioppia niin, että 1239 00:49:58,780 --> 00:50:02,460 eikä vain sanoa sulkeissa s, kuten "pullo" 1240 00:50:02,460 --> 00:50:03,360 tai "pullojen" - 1241 00:50:03,360 --> 00:50:04,900 En halua leikata että kulma - 1242 00:50:04,900 --> 00:50:08,350 Haluan myös dynaamisesti tulostaa sanan "pullot" 1243 00:50:08,350 --> 00:50:12,820 tai "pullo", jolloin käytetään näitä% s paikkamerkit tänään. 1244 00:50:12,820 --> 00:50:16,550 Joten minun täytyy ehdollisesti tarkistaa, mitä on arvo i. 1245 00:50:16,550 --> 00:50:19,590 Ja jos se on 1, haluan sanoa "pullo", ja jos se on jotain 1246 00:50:19,590 --> 00:50:23,115 muuta, haluan sanoa "pulloja". Joten yritä tehdä tätä. 1247 00:50:23,115 --> 00:50:31,340 Joten jos i == 1, niin haluan mennä eteenpäin ja julistaa - 1248 00:50:31,340 --> 00:50:34,080 Tarvitsen merkkijonon, joten haluan tehdä merkkijonon s1, koska se on 1249 00:50:34,080 --> 00:50:36,070 ensimmäinen merkkijono Välitän juuri nyt. 1250 00:50:36,070 --> 00:50:40,980 Aion sanoa "pullo". Ja sitten, katsotaanpas, merkkijono 1251 00:50:40,980 --> 00:50:43,110 s2 - ja selitän minne olen menossa hetken - 1252 00:50:43,110 --> 00:50:47,650 "Pullot". Niin muistaa, että tämä laulu, meidän täytyy pystyä 1253 00:50:47,650 --> 00:50:50,580 tulostaa muassa kaksi eri sanaa mahdollisesti. 1254 00:50:50,580 --> 00:50:53,590 Joten jos katsomme tänne, huomaat, että kun pääsemme 1255 00:50:53,590 --> 00:50:56,440 Tässä esimerkki tästä "kaksi pulloa olutta seinälle, 1256 00:50:56,440 --> 00:50:59,490 kaksi pulloa olutta, ottaa yksi alas, siirtää se noin ", haluan 1257 00:50:59,490 --> 00:51:02,380 tämä neljäs rivi nyt sanoa "yksi pullo olutta 1258 00:51:02,380 --> 00:51:04,900 seinä ". Joten minun täytyy päättää, en halua sanoa" pulloja "tai 1259 00:51:04,900 --> 00:51:07,780 "Pullo"? Joten aion mielivaltaisesti sanoa, kaikki hyvin, 1260 00:51:07,780 --> 00:51:10,530 Aion nyt julistaa muuttuja nimeltään S1, merkkijono 1261 00:51:10,530 --> 00:51:13,830 yksi, joka tulee saada kytketty täällä ja myös täällä, 1262 00:51:13,830 --> 00:51:16,070 koska nämä sanat ovat aina samat, vain koska 1263 00:51:16,070 --> 00:51:17,290 luonne laulun. 1264 00:51:17,290 --> 00:51:20,100 Ja aion soittaa s2 mitä sana haluan 1265 00:51:20,100 --> 00:51:21,560 lopulta näkyvät täällä. 1266 00:51:21,560 --> 00:51:25,530 Nyt, kirjaimellisesti, 99 kertaa ulos 100, se tulee olemaan 1267 00:51:25,530 --> 00:51:28,820 sama kummassakin näistä tapauksista, koska 3 on monikossa, 2 on 1268 00:51:28,820 --> 00:51:30,200 monikko, 4 on monikossa. 1269 00:51:30,200 --> 00:51:34,640 Mutta tässä nurkassa tapauksessa, jossa saamme 2 ja sitten 1, tai 1270 00:51:34,640 --> 00:51:37,250 jopa 1 ja sitten 0, minä tarvitsen tätä logiikkaa. 1271 00:51:37,250 --> 00:51:41,020 Joten minun täytyy viettää aikaa minun koodi saada tätä oikeutta. 1272 00:51:41,020 --> 00:51:47,530 Joten jos teen tämän, jos i == 1, aseta S1 yhtä "pullo" 1273 00:51:47,530 --> 00:51:52,010 ja s2 yhtä suuri kuin "pulloja", koska tämä tulee olemaan 1 1274 00:51:52,010 --> 00:51:56,340 pullo, ja tämä tulee olemaan 0 pulloja. 1275 00:51:56,340 --> 00:51:58,250 Ja tämä tässä, mitä se edustaa? 1276 00:51:58,250 --> 00:51:59,780 Vain olla selvä. 1277 00:51:59,780 --> 00:52:00,620 Tämä on vain kommentti. 1278 00:52:00,620 --> 00:52:03,730 Niin että voit olla yksilinjainen kommentteja tarkoittaa 1279 00:52:03,730 --> 00:52:06,110 voi kommentoida koodisi näin, mutta toinen yleinen 1280 00:52:06,110 --> 00:52:09,050 paradigma, myös se, että jos sinulla on super-lyhyt lause 1281 00:52:09,050 --> 00:52:11,410 haluat laittaa itsesi ja se on vain luettavuuden laittaa 1282 00:52:11,410 --> 00:52:13,270 oikein lopussa koodirivin, voit 1283 00:52:13,270 --> 00:52:15,230 ehdottomasti tehdä jotain tällaista. 1284 00:52:15,230 --> 00:52:20,150 >> Joten nyt mitä jos teen tämän? If i ei ole yhtä suuri kuin 1. 1285 00:52:20,150 --> 00:52:21,620 Joten bang vastaa - 1286 00:52:21,620 --> 00:52:23,150 huutomerkki kutsutaan "bang". 1287 00:52:23,150 --> 00:52:25,080 Joten bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Joten jos i ei ole yhtä kuin 1, mitä voin sijaan haluan tehdä? 1289 00:52:28,530 --> 00:52:31,700 No, ensimmäinen sana Haluan olla mitä? 1290 00:52:34,620 --> 00:52:40,030 Joten merkkijono 1 olisi "pulloja" useille pullot, 1291 00:52:40,030 --> 00:52:42,440 ja sitten tämä on monikko "pulloja" samoin, nyt. 1292 00:52:42,440 --> 00:52:43,800 Ja näemme, jos tämä todella saa meidät 1293 00:52:43,800 --> 00:52:44,870 minne haluamme mennä. 1294 00:52:44,870 --> 00:52:47,680 Joten nyt jos en selaa täällä, huomaat että olen kytkemällä 1295 00:52:47,680 --> 00:52:50,170 paitsi minä, vaan s1. 1296 00:52:50,170 --> 00:52:51,860 Olen kytkemällä I ja s1. 1297 00:52:51,860 --> 00:52:54,440 Ja sitten alas tässä, olen miinus 1, joka on sama kuin 1298 00:52:54,440 --> 00:52:55,920 ennen, mutta s2. 1299 00:52:55,920 --> 00:52:58,730 Toisin sanoen, haluan Englanti sana muuttaa perustuvat 1300 00:52:58,730 --> 00:52:59,930 tätä logiikkaa. 1301 00:52:59,930 --> 00:53:03,310 Nyt siellä on jo jonkin verran ongelmia tämän koodin. 1302 00:53:03,310 --> 00:53:08,460 Mikä on rikki jo ulos portista täällä? 1303 00:53:08,460 --> 00:53:10,796 Niin? 1304 00:53:10,796 --> 00:53:13,210 YLEISÖ: [kuulumattomissa]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. MALAN: Aivan. 1306 00:53:13,800 --> 00:53:16,030 Joten olen jo rikkonut opetus soveltamisalaa. 1307 00:53:16,030 --> 00:53:19,610 Joten olen ilmoittanut S1 ja S2, mutta olen tehnyt sen sisällä 1308 00:53:19,610 --> 00:53:22,980 aaltosulkeita, mikä tarkoittaa joo, tämä koodi toimii ylös 1309 00:53:22,980 --> 00:53:27,430 asti linja 42, mutta heti kun osuin linja 43, arvaa mitä ei 1310 00:53:27,430 --> 00:53:28,900 enää ole olemassa? 1311 00:53:28,900 --> 00:53:32,600 No, arvaa mitä enää soveltamisala - ei s1 tai s2. 1312 00:53:32,600 --> 00:53:33,780 Joten meidän täytyy korjata. 1313 00:53:33,780 --> 00:53:36,180 Haluan siis poistaa ilmoitukset. 1314 00:53:36,180 --> 00:53:39,320 Ja jätän muuttujien nimet ja poistaa täältä 1315 00:53:39,320 --> 00:53:40,120 ja poistaa täältä. 1316 00:53:40,120 --> 00:53:43,557 Ja missä linjat pitäisi oikeastaan ​​julistaa näitä asioita? 1317 00:53:43,557 --> 00:53:44,960 YLEISÖ: [kuulumattomissa]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. MALAN: Joo, niin varmaan 1319 00:53:45,410 --> 00:53:46,850 asti täällä, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Joten merkkijono s1 ja sitten merkkijono s2. 1321 00:53:50,670 --> 00:53:51,950 Ja se kääntyy pois, en voi tehdä tätä. 1322 00:53:51,950 --> 00:53:54,260 Jos olet julistaa kahden muuttujan samantyyppistä, 1323 00:53:54,260 --> 00:53:57,420 voit itse vain käyttää pilkkua ja tehdä sen C Kaikki 1324 00:53:57,420 --> 00:53:58,970 oikealle, joten nyt minulla on kaksi muuttujaa - 1325 00:53:58,970 --> 00:53:59,860 S1 ja S2. 1326 00:53:59,860 --> 00:54:02,000 Olen osoitetaan ne arvot näissä 1327 00:54:02,000 --> 00:54:04,210 olosuhteet täällä, tai täällä. 1328 00:54:04,210 --> 00:54:06,690 Ja sitten Käytän niitä alhaalla. 1329 00:54:06,690 --> 00:54:10,960 Kuinka hyvin tämä nyt menossa töihin? 1330 00:54:10,960 --> 00:54:12,740 >> No, se on vielä vähän buginen, mutta katsotaan ainakin nähdä 1331 00:54:12,740 --> 00:54:13,730 kuinka pitkälle olemme päässeet. 1332 00:54:13,730 --> 00:54:16,500 Joten anna minun mennä eteenpäin ja tehdä beer3. 1333 00:54:16,500 --> 00:54:17,695 Onko tämä beer3? 1334 00:54:17,695 --> 00:54:19,410 Jep, tämä on beer3. 1335 00:54:19,410 --> 00:54:21,510 Ja nyt haluan mennä eteenpäin ja ajaa beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Voimme luultavasti ohittaa useimmat. 1338 00:54:25,840 --> 00:54:29,100 Ja täällä, katso tuota. 1339 00:54:29,100 --> 00:54:31,110 "Yksi pullo olutta seinälle, yksi pullo olutta ottaa 1340 00:54:31,110 --> 00:54:34,306 yksi alaspäin, siirtää se noin, 0 pulloa olutta seinälle. " 1341 00:54:34,306 --> 00:54:37,570 Mutta olen kiinnittää huomionne vain puolet ratkaisu. 1342 00:54:37,570 --> 00:54:39,620 Kind of mokasi täällä. 1343 00:54:39,620 --> 00:54:43,030 Joten näyttää siltä, ​​että rajatapauksissa syntyy, kun I on mitä 1344 00:54:43,030 --> 00:54:44,030 kaksi arvoa? 1345 00:54:44,030 --> 00:54:45,020 YLEISÖ: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 David J. MALAN: 2 ja 1. 1347 00:54:46,190 --> 00:54:48,180 Se ei ole 1 eikä 1. 1348 00:54:48,180 --> 00:54:51,890 Se on oikeastaan ​​vain nämä kaksi viimeistä säkeistöä tämän laulun. 1349 00:54:51,890 --> 00:54:53,890 Joten mitä minun sen sijaan haluat tehdä? 1350 00:54:53,890 --> 00:54:58,890 Olen siis ilmeisesti kiinni silloin kun i on == 1, 1351 00:54:58,890 --> 00:55:02,240 Sitten ensimmäinen sana on "pullo", mutta toinen sana 1352 00:55:02,240 --> 00:55:07,230 on "pullojen". Mutta täällä, haluan muuttaa tämän olevan == 2. 1353 00:55:07,230 --> 00:55:08,570 Ja jos näin on, mitä haluan 1354 00:55:08,570 --> 00:55:09,620 Ensimmäinen sana on? 1355 00:55:09,620 --> 00:55:10,430 YLEISÖ: "Pullot". 1356 00:55:10,430 --> 00:55:12,890 David J. MALAN: "Pullot", joten kaksi pulloa. 1357 00:55:12,890 --> 00:55:14,690 Ja sitten tämä sana täällä olisi - 1358 00:55:14,690 --> 00:55:15,340 YLEISÖ: "pullo". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. MALAN: "Pullo", yksikkö. 1360 00:55:20,430 --> 00:55:25,160 >> Selvä, mennään loitontaa, palaa tänne, uusinnassa tehdä, 1361 00:55:25,160 --> 00:55:28,590 Re-run beer3, tyyppi 99 uudelleen. 1362 00:55:28,590 --> 00:55:30,710 Okei, "Segmentointi vika (core polkumyynnillä)." 1363 00:55:30,710 --> 00:55:32,780 Mitä olen tehnyt väärin? 1364 00:55:36,050 --> 00:55:38,722 YLEISÖ: Sinulla ei ole arvoa [kuulumattomissa]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. MALAN: Ah, erinomainen kohta. 1366 00:55:40,480 --> 00:55:43,310 Selvä, joten mikä hätänä täällä? 1367 00:55:43,310 --> 00:55:45,450 Joten segmentointi vika, ja olemme todella menossa nähdä 1368 00:55:45,450 --> 00:55:49,020 Tämä aika monta kertaa tulevaisuudessa, tarkoituksella. 1369 00:55:49,020 --> 00:55:51,030 Mutta nyt, mitä tämä oikeastaan ​​tarkoittaa? 1370 00:55:51,030 --> 00:55:53,620 Segmentointi vika lähes aina tarkoittaa, että olet 1371 00:55:53,620 --> 00:55:56,760 jotenkin yrittänyt käyttää muistia, RAM tietokoneeseen, 1372 00:55:56,760 --> 00:56:00,600 että et omista, että et ole itse pyytänyt 1373 00:56:00,600 --> 00:56:02,050 käyttöjärjestelmä. 1374 00:56:02,050 --> 00:56:04,440 Joten tässä tapauksessa, huomaa, mitä olen tehnyt, mikä on 1375 00:56:04,440 --> 00:56:05,870 puutteellinen minun logiikka. 1376 00:56:05,870 --> 00:56:09,500 Olen määritetty s1 ja s2 arvo jos i on 1. 1377 00:56:09,500 --> 00:56:11,590 Olen myös tehnyt, että jos en vastaa 2. 1378 00:56:11,590 --> 00:56:13,710 Mutta en ole tehnyt sitä lukemattomia muita 1379 00:56:13,710 --> 00:56:14,690 mahdollisuuksia - 1380 00:56:14,690 --> 00:56:17,940 erityisesti, 3 tai 4 tai piste-, piste, dot, 99. 1381 00:56:17,940 --> 00:56:20,100 Joten korjaus tämä voisi vain olla katsotaanpa 1382 00:56:20,100 --> 00:56:22,190 on muuten kunnossa. 1383 00:56:22,190 --> 00:56:26,780 Ja anna minun mennä ja sanoa S1 vastaa - 1384 00:56:26,780 --> 00:56:28,180 mikä sen pitäisi olla täällä? 1385 00:56:28,180 --> 00:56:28,750 YLEISÖ: [kuulumattomissa]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. MALAN: "Pullot", koska tyypillisin tapaus, 1387 00:56:30,460 --> 00:56:32,020 se on aivan sama asia. 1388 00:56:32,020 --> 00:56:35,580 Joten sama lainaus, lainaus päättyy "pulloja". Niin useille 1389 00:56:35,580 --> 00:56:41,010 pullot, ja sitten täällä, useille pulloja. 1390 00:56:41,010 --> 00:56:44,580 Okei, joten nyt haluan mennä takaisin minun pääteikkunaa 1391 00:56:44,580 --> 00:56:47,200 käännöksen, uusinnassa sitä. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Vau. 1394 00:56:49,150 --> 00:56:50,610 Ja tehkäämme nopeasti järki tarkistaa. 1395 00:56:50,610 --> 00:56:52,400 Teknisesti, me haluaisi lukea kaikki nämä varmista 1396 00:56:52,400 --> 00:56:53,370 he oikein, mutta katsotaanpa 1397 00:56:53,370 --> 00:56:54,640 ainakin tunnettu syyllisiä. 1398 00:56:54,640 --> 00:56:57,370 3 pulloa, 2 pulloa, 2 pulloa, 1 1399 00:56:57,370 --> 00:57:00,380 pullo, 1 pullo, 0 pullot. 1400 00:57:00,380 --> 00:57:03,080 Olemme ilmeisesti ainakin korjasin sen nyt. 1401 00:57:03,080 --> 00:57:06,010 Mutta saalis on, että mitä Jumala kauhea sotku tämä on 1402 00:57:06,010 --> 00:57:07,470 vain ratkaista tyhmä 1403 00:57:07,470 --> 00:57:09,540 yhden merkin kieliopin yksityiskohtia. 1404 00:57:09,540 --> 00:57:11,150 Joten siellä sellainen syy, että olen leikata tämä kulma 1405 00:57:11,150 --> 00:57:14,090 aikaisemmin, koska se on vain täysin ärsyttävää joutua 1406 00:57:14,090 --> 00:57:15,020 kirjoittaa näin paljon koodia. 1407 00:57:15,020 --> 00:57:17,530 Mutta näyttää siltä, ​​että siellä on hieman enemmän tyylikäs tapoja 1408 00:57:17,530 --> 00:57:20,110 ilmaisee täsmälleen sama asia. 1409 00:57:20,110 --> 00:57:22,040 Ja voimme tehdä tämän seuraavasti. 1410 00:57:22,040 --> 00:57:23,890 >> Saanen jättää ruudulle hetkeksi ja 1411 00:57:23,890 --> 00:57:27,320 esitellä jotain kutsutaan kolmen komponentin operaattori. 1412 00:57:27,320 --> 00:57:29,600 Tämä on eräänlainen sutkaus joka on vain tarkoitus tehdä myös 1413 00:57:29,600 --> 00:57:31,880 asuu vähän seksikkäämpi, kuten luvattiin. 1414 00:57:31,880 --> 00:57:33,130 Ja aion tehdä tämän seuraavasti. 1415 00:57:33,130 --> 00:57:35,810 Anna merkkijono nimeltä s1, ja haluan 1416 00:57:35,810 --> 00:57:37,200 määrittää sen seuraavasti. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Pullo", muuten "pullojen". String s2 saa (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Pullo", muuten "pullojen". 1420 00:57:52,670 --> 00:57:57,050 Joten mitä sitten on ero täällä? 1421 00:57:57,050 --> 00:57:59,370 Nämä kaksi riviä koodia, väitän, voi 1422 00:57:59,370 --> 00:58:02,200 korvaa tämän koko sotkun. 1423 00:58:02,200 --> 00:58:04,280 Joten pyydän sitä sotkua, vain koska se tavallaan hieroo minua 1424 00:58:04,280 --> 00:58:05,940 väärin siten, että se on niin monta riviä koodia. 1425 00:58:05,940 --> 00:58:06,650 Ei väärin. 1426 00:58:06,650 --> 00:58:07,700 Se ei ole huono suunnittelu. 1427 00:58:07,700 --> 00:58:10,140 Kuten, tämä on täysin oikein ja hienosäätää. 1428 00:58:10,140 --> 00:58:12,970 Mutta koodaus saa ikävä, jos sinulla on ilmaista itseäsi niin 1429 00:58:12,970 --> 00:58:15,530 damn nimenomaan uudestaan ​​ja uudestaan ​​ja uudestaan ​​yksinkertaisella 1430 00:58:15,530 --> 00:58:16,620 skenaario näin. 1431 00:58:16,620 --> 00:58:19,470 Joten C on joitakin pikavalintoja, kuten tämä. 1432 00:58:19,470 --> 00:58:24,270 Joten tämä pohjimmiltaan sanoo julistaa merkkijono nimeltä s1 ja 1433 00:58:24,270 --> 00:58:32,610 määrittää sen joko tämä arvo tai tätä arvoa jos i on == - 1434 00:58:32,610 --> 00:58:35,290 Anteeksi, minun pitäisi sanoa tätä selvemmin. 1435 00:58:35,290 --> 00:58:41,680 Julistaa muuttuja s1, määritä se tämä arvo, jos tämä on totta. 1436 00:58:41,680 --> 00:58:44,280 Muuten, antaa se tämän arvon. 1437 00:58:44,280 --> 00:58:47,220 Eli toisin sanoen, tämä on eräänlainen yhden rivin tapa 1438 00:58:47,220 --> 00:58:51,490 sanonta jos muu kuin tehdä tehtävän matkan varrella. 1439 00:58:51,490 --> 00:58:55,540 Joten jos i on 1, sitten mennä eteenpäin ja kutsuvat tätä "pullo". Ja 1440 00:58:55,540 --> 00:58:59,830 Sitten tämä toinen, kutsuvat sitä "pulloja". Samaan aikaan, s2, 1441 00:58:59,830 --> 00:59:04,060 Toinen sana, että meidän on määriteltävä, jos i on 2, käymme 1442 00:59:04,060 --> 00:59:08,350 aseta s2 "pullo". Muuten, aseta se "pulloja". Ja mitä 1443 00:59:08,350 --> 00:59:11,460 Tämä tarkoittaa nyt voin mennä läpi tämän ja poistaa kaikki 1444 00:59:11,460 --> 00:59:12,860 nämä riviä koodia. 1445 00:59:12,860 --> 00:59:17,220 Ja kun sanon, hieman naurettavan, että tämä on nyt 1446 00:59:17,220 --> 00:59:20,060 seksikkäämpi, se seksikkäämpi on eräänlainen tyylillinen järkeä. 1447 00:59:20,060 --> 00:59:22,660 Että toiminnallisesti, tämä koodi on todella menossa 1448 00:59:22,660 --> 00:59:24,610 tehdä täsmälleen sama asia. 1449 00:59:24,610 --> 00:59:26,890 Ja vaikka se saattaa näyttää hieman arvoituksellisesti ensin 1450 00:59:26,890 --> 00:59:29,250 silmäyksellä, koska emme ole nähnyt tätä rakentaa ennen, olisin 1451 00:59:29,250 --> 00:59:31,850 väittävät, että se on lopulta olemaan niin paljon enemmän 1452 00:59:31,850 --> 00:59:34,820 luettavissa ja niin paljon helpompaa me ihmiset tavallaan 1453 00:59:34,820 --> 00:59:36,830 ymmärtää, koska nyt voit vain lukea 1454 00:59:36,830 --> 00:59:38,830 koodin kaikki yhdellä rivillä. 1455 00:59:38,830 --> 00:59:41,550 Se on edelleen hengeltään samanlaisia ​​mukaan, jos tämä on 1456 00:59:41,550 --> 00:59:44,920 kunnossa ja sitten tämä on mitä sisällä jos ja tämä 1457 00:59:44,920 --> 00:59:46,480 on mitä sisällä muuta. 1458 00:59:46,480 --> 00:59:49,450 Mutta me voimme tehdä tämän vain paljon enemmän tyylikkäästi. 1459 00:59:49,450 --> 00:59:52,650 >> Ja jos minä nyt mennä takaisin minun terminaalin, joka on poistettu kaikki 1460 00:59:52,650 --> 00:59:55,530 Näiden linjojen ja korvasi ne vain nämä kaksi, 1461 00:59:55,530 --> 01:00:00,150 käännöksen, uusinnassa pulloa olutta 99, huomaa, että minun 1462 01:00:00,150 --> 01:00:03,350 kielioppi on itse asiassa edelleen paikkansa. 1463 01:00:03,350 --> 01:00:06,160 Joten jälleen, jotain alkaa. 1464 01:00:06,160 --> 01:00:08,840 2 pulloa olutta, 1 pullo olutta. 1465 01:00:08,840 --> 01:00:09,370 Näyttää oikealta. 1466 01:00:09,370 --> 01:00:10,100 Joo. 1467 01:00:10,100 --> 01:00:13,900 Joten on meillä paljon ytimekkäämpi ratkaisu. 1468 01:00:13,900 --> 01:00:16,020 Joten tämäkin saat enemmän mukava C, ei 1469 01:00:16,020 --> 01:00:18,630 välttämättä kanssa ensimmäisen PSET tai jopa toinen, mutta 1470 01:00:18,630 --> 01:00:21,170 ymmärtää, että nämä rakenteet voivat antaa meille mahdollisuuden tehdä asioita koskaan 1471 01:00:21,170 --> 01:00:22,810 enemmän tyylikkäästi. 1472 01:00:22,810 --> 01:00:25,200 Nyt jokin muu asia täällä. 1473 01:00:25,200 --> 01:00:31,460 Anna minun mennä eteenpäin ja avata return1.c. 1474 01:00:31,460 --> 01:00:34,340 Nyt alkaa ratkaista toinen ongelma siten, että 1475 01:00:34,340 --> 01:00:37,140 voimme kirjoittaa kehittyneempiä koodia. 1476 01:00:37,140 --> 01:00:39,960 >> Joten tässä on yksinkertainen pieni ohjelma, jonka tarkoitus elämässä 1477 01:00:39,960 --> 01:00:41,870 on kasvattaa arvoihin. 1478 01:00:41,870 --> 01:00:43,100 Ja itse asiassa, otetaan askel taaksepäin. 1479 01:00:43,100 --> 01:00:44,400 Anna minun tehdä tämä manuaalisesti. 1480 01:00:44,400 --> 01:00:52,200 Anna minun tehdä kuuluvat ja int main (void). 1481 01:00:52,200 --> 01:00:53,450 Ja soitan tätä increment.c. 1482 01:00:57,150 --> 01:00:58,570 Ja mitä haluan tehdä? 1483 01:00:58,570 --> 01:01:02,240 Aion mennä eteenpäin ja sanoa jotain - 1484 01:01:02,240 --> 01:01:04,280 me kutsumme numerot sama - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Joten int x saa 2; printf x on% d, uusi rivi, x. 1487 01:01:13,670 --> 01:01:16,780 Joten olen kirjoittamalla nopeasti, mutta tavallaan tuttua kamaa nyt. 1488 01:01:16,780 --> 01:01:18,830 Sitten aion tehdä x + +. 1489 01:01:18,830 --> 01:01:21,710 Sitten aion tulostaa saman lauseen uudelleen. 1490 01:01:21,710 --> 01:01:24,550 Ja sitten aion palata 0 vain lopettaa ohjelman. 1491 01:01:24,550 --> 01:01:25,960 Okei, joten tämä on ohjelma, joka 1492 01:01:25,960 --> 01:01:26,960 askelin numero. 1493 01:01:26,960 --> 01:01:29,830 Se ensimmäinen menee alustaa jotain 2, ja sitten se on 1494 01:01:29,830 --> 01:01:33,470 menossa kasvattaa sitä ja tulostaa sen uudelleen. 1495 01:01:33,470 --> 01:01:36,930 >> Joten ajaa lisäys, uskomattoman yksinkertainen ohjelma. 1496 01:01:36,930 --> 01:01:40,940 Mutta oletetaan nyt, että haluan kuution arvoa, joten älä 1497 01:01:40,940 --> 01:01:42,490 jotain melko sattumanvaraisesti. 1498 01:01:42,490 --> 01:01:45,140 Ja minä todella haluan tehdä x saa kuution sitä. 1499 01:01:45,140 --> 01:01:47,570 Niin voisin käyttää mitä kutsutaan Pow toiminto, mutta en 1500 01:01:47,570 --> 01:01:48,650 todella tietää missä se on vielä. 1501 01:01:48,650 --> 01:01:50,580 Joten aion tehdä tämän vanhanaikaisella tavalla. 1502 01:01:50,580 --> 01:01:54,550 x kertaa tämä vastaa x kertaa x kertaa x. 1503 01:01:54,550 --> 01:01:56,880 Joten olen cubing arvo kertomalla se itse uudelleen 1504 01:01:56,880 --> 01:02:00,440 ja uudestaan ​​ja uudestaan, niin että saamme voimaa 1505 01:02:00,440 --> 01:02:02,050 3 tässä tapauksessa. 1506 01:02:02,050 --> 01:02:06,000 Joten nyt numerot minun pitäisi tulostaa pitäisi olla, kuten näemme 1507 01:02:06,000 --> 01:02:08,450 täällä - tee lisäys, joten se ei oikeastaan ​​ole oikeastaan ​​kasvattaa 1508 01:02:08,450 --> 01:02:10,260 enää, mutta jätämme nimi yksin - 1509 01:02:10,260 --> 01:02:11,590 2 ja sitten 8. 1510 01:02:11,590 --> 01:02:17,670 Nyt meillä on alku mahdollisuuden tarkentaminen 1511 01:02:17,670 --> 01:02:21,570 täällä, jolloin tämä cubing juttu kertomalla numero 1512 01:02:21,570 --> 01:02:24,680 itse itse itse tuntuu tämä saattaa vain olla 1513 01:02:24,680 --> 01:02:27,920 hyödyllistä saada funktiona, aivan kuten joku päätti 1514 01:02:27,920 --> 01:02:30,430 vuotta sitten - tiedäthän, sellainen hyvä, jos joku meistä istuu alas 1515 01:02:30,430 --> 01:02:33,120 ja kirjoittaa printf niin, että muualla maailmassa voi käyttää sitä, 1516 01:02:33,120 --> 01:02:36,160 miksi emme istua alas ja kirjoittaa toiminto nimeltään kuutio 1517 01:02:36,160 --> 01:02:39,250 että tämä cubing meille, joten meidän ei tarvitse manuaalisesti 1518 01:02:39,250 --> 01:02:41,500 täytäntöön käsite cubing arvoista täällä? 1519 01:02:41,500 --> 01:02:44,040 >> Joten yksinkertainen esimerkki, mutta mennään eteenpäin ja käyttää tähän on 1520 01:02:44,040 --> 01:02:46,280 mahdollisuus kirjoittaa omia toimintoa. 1521 01:02:46,280 --> 01:02:49,110 Joten toistaiseksi, olemme käytetään vain tärkeimmät, ja olemme käyttäneet muita 1522 01:02:49,110 --> 01:02:51,780 ihmisten toiminnoista, mutta emme ole kirjoittaneet omia. 1523 01:02:51,780 --> 01:02:52,650 Joten tässä sitä mennään. 1524 01:02:52,650 --> 01:02:56,330 Aion mennä eteenpäin ja kirjoittaa toiminto nimeltään kuutio. 1525 01:02:56,330 --> 01:02:58,490 Ja aion olla se ottaa tulo. 1526 01:02:58,490 --> 01:03:02,070 Joten sen tulo tulee olemaan kokonaisluku. 1527 01:03:02,070 --> 01:03:03,570 Ja mitä se aikoo tehdä? 1528 01:03:03,570 --> 01:03:08,500 Se tulee julistaa int lähtö = tulo ajat tulo 1529 01:03:08,500 --> 01:03:09,880 kertaa sisääntulo. 1530 01:03:09,880 --> 01:03:12,190 Ja sitten se tulee palauttaa tuon tuotoksen. 1531 01:03:12,190 --> 01:03:14,500 Ja sitten minun on oltava täsmällistä. 1532 01:03:14,500 --> 01:03:16,820 Tämä toiminto on palaamassa int. 1533 01:03:16,820 --> 01:03:19,130 Joten tässä on sitten miten haluat kirjoittaa omia funktioita. 1534 01:03:19,130 --> 01:03:20,850 Ensin päättää mikä nimi 1535 01:03:20,850 --> 01:03:21,720 toiminto tulee. 1536 01:03:21,720 --> 01:03:23,964 Ja yleisesti, jotain selittävä on hyvä, niin minä 1537 01:03:23,964 --> 01:03:25,060 kutsuvat sitä kuutio. 1538 01:03:25,060 --> 01:03:27,180 Sitten sinun täytyy määrittää, mitä se tulee palauttaa, mitä 1539 01:03:27,180 --> 01:03:28,240 sen teho tulee olemaan. 1540 01:03:28,240 --> 01:03:29,595 Ja meillä ei ole, että monia vaihtoehtoja vielä. 1541 01:03:29,595 --> 01:03:32,260 Int, char, float, bool, merkkijono. 1542 01:03:32,260 --> 01:03:34,260 Nyt aion kiinni int, koska haluan sen 1543 01:03:34,260 --> 01:03:35,880 palauttaa kokonaisluvun. 1544 01:03:35,880 --> 01:03:38,770 Sitten sinun täytyy määrittää, mitä sen tuloa, jos sellaista on,. 1545 01:03:38,770 --> 01:03:41,570 Ja jos kuutio tekee väitteen, vie jotain välillä 1546 01:03:41,570 --> 01:03:44,970 suluissa, sinun täytyy antaa väitteen nimeä niin, että 1547 01:03:44,970 --> 01:03:47,860 voit kutsua sitä jotain niin olet toteuttamisessa tai kirjallisesti 1548 01:03:47,860 --> 01:03:50,550 tämä toiminto, ja sinun on annettava se tyyppi, joka tässä 1549 01:03:50,550 --> 01:03:51,810 tapauksessa tulee olemaan int. 1550 01:03:51,810 --> 01:03:54,690 Niin lyhyt, kuutio on funktio, joka ottaa kokonaisluku 1551 01:03:54,690 --> 01:03:57,560 tulona ja palaa kokonaisluku tuotokseksi. 1552 01:03:57,560 --> 01:03:59,240 >> Joten mitä se tehdä että panos? 1553 01:03:59,240 --> 01:04:03,710 No, linja 14, julistan muuttuja nimeltä tuotos, ja minä 1554 01:04:03,710 --> 01:04:07,410 antaa se arvo, tulo ajat tulo kertaa panos. 1555 01:04:07,410 --> 01:04:11,490 Ja sitten palaan lähdön. 1556 01:04:11,490 --> 01:04:14,890 Joten miten voin käyttää tätä sitten? 1557 01:04:14,890 --> 01:04:19,210 Mitä voin muuttaa korostettuna merkkiä rivillä 1558 01:04:19,210 --> 01:04:21,006 7 on, luulet? 1559 01:04:21,006 --> 01:04:21,800 YLEISÖ: [kuulumattomissa]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. MALAN: Joo, niin kuutio x. 1561 01:04:25,570 --> 01:04:28,290 Joten x on muuttuja, eli se pitää jotain arvoa. 1562 01:04:28,290 --> 01:04:30,190 Onneksi se on tyyppiä integer. 1563 01:04:30,190 --> 01:04:34,280 Ja koska x on int, joka tarkoittaa, että voin siirtää sen kuution. 1564 01:04:34,280 --> 01:04:39,500 Ja vaikka olen ohittaa arvon x arvon kanssa 1565 01:04:39,500 --> 01:04:42,780 kuution x, kuten on käynyt tähän mennessä, milloin tahansa 1566 01:04:42,780 --> 01:04:46,150 on yhtäläisyysmerkki ja koodirivin tavaraa oikealla 1567 01:04:46,150 --> 01:04:49,090 saa suorittaa ja sitten saa osoitettu 1568 01:04:49,090 --> 01:04:50,150 arvon vasemmalta. 1569 01:04:50,150 --> 01:04:52,950 Joten järjestys toiminnan on kuin toivoisimme. 1570 01:04:52,950 --> 01:04:56,620 Joten tämä toimii? 1571 01:04:56,620 --> 01:04:58,410 No, anna minun mennä tänne. 1572 01:04:58,410 --> 01:04:59,970 Saanen avata minun pääteikkuna. 1573 01:04:59,970 --> 01:05:03,610 Saanen eivät tee lisäys, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Implisiittinen ilmoitus toiminto" kuutio "on pätemätön 1575 01:05:07,140 --> 01:05:13,700 C99. "Sivuhuomautuksena C99 viittaa kieli C, sillä se oli 1576 01:05:13,700 --> 01:05:16,790 määriteltiin vuonna 1999, joka oli päivitetty yli version 1577 01:05:16,790 --> 01:05:19,360 1989, joka on päivitetty verrattuna alkuperäiseen. 1578 01:05:19,360 --> 01:05:21,740 Niin, että kaikki keinot. 1579 01:05:21,740 --> 01:05:24,250 >> Joten mitä se tarkoittaa, että "implisiittinen ilmoitus 1580 01:05:24,250 --> 01:05:26,790 toiminto "kuutio" ei kelpaa? "Se on täällä. 1581 01:05:26,790 --> 01:05:28,430 Se on tuolla linjalla 12. 1582 01:05:28,430 --> 01:05:30,460 YLEISÖ: [kuulumattomissa]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. MALAN: Mikä se on? 1584 01:05:30,730 --> 01:05:32,470 YLEISÖ: Se ei ole ennen. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. MALAN: Se ei ole ennen. 1586 01:05:33,540 --> 01:05:34,740 Joten tämä on asia. 1587 01:05:34,740 --> 01:05:38,190 C on typerää tai C kääntäjät ovat typerää. 1588 01:05:38,190 --> 01:05:41,060 He todella vain tehdä mitä kerrot heille tehdä. 1589 01:05:41,060 --> 01:05:44,770 Ja he, etenkin, vain lukea koodi ylhäältä alas, 1590 01:05:44,770 --> 01:05:45,620 vasemmalta oikealle. 1591 01:05:45,620 --> 01:05:49,140 Joten jos kääntäjä, clang, lukee koodin, rivi 1, se 1592 01:05:49,140 --> 01:05:50,120 keksii miten se tehdään. 1593 01:05:50,120 --> 01:05:50,940 Oh, tässä tulee tärkein. 1594 01:05:50,940 --> 01:05:53,000 Okei, anna minun mennä eteenpäin ja julistaa muuttuja x. 1595 01:05:53,000 --> 01:05:54,160 Minäpä tulostaa jotain. 1596 01:05:54,160 --> 01:05:55,890 Rivi 7, mitä hittoa on kuution? 1597 01:05:55,890 --> 01:05:58,230 Se ei ilmoitettu stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Se ei tullut C. Minulla ei ole aavistustakaan, mitä tehdä. 1599 01:06:00,950 --> 01:06:03,960 Ja niin clang vain bails ja sulkeutuu kanssa virheilmoituksen. 1600 01:06:03,960 --> 01:06:05,850 Jotta voimme korjata tämän pari tapaa. 1601 01:06:05,850 --> 01:06:10,530 Voimme opettaa clang mitä cube on vain liikuttamalla missä 1602 01:06:10,530 --> 01:06:11,820 ilmoitus. 1603 01:06:11,820 --> 01:06:14,640 Olen siis leikata ja liimata sen huipulla tärkein. 1604 01:06:14,640 --> 01:06:17,770 Nyt ymmärtää, että vain koska pääasiassa ei ole enää ensimmäinen, se on 1605 01:06:17,770 --> 01:06:19,150 edelleen suorittaa oletusarvoisesti. 1606 01:06:19,150 --> 01:06:20,060 Main on tärkein. 1607 01:06:20,060 --> 01:06:21,022 Se on oletuksena funktion nimi. 1608 01:06:21,022 --> 01:06:22,930 Sillä ei ole väliä, jos se on tiedosto. 1609 01:06:22,930 --> 01:06:26,910 Mutta ainakin nyt clang on nähnyt kuutio ennen kuin käytän sitä. 1610 01:06:26,910 --> 01:06:28,500 Joten onko clang on onnellisempi nyt. 1611 01:06:28,500 --> 01:06:31,410 Tee lisäys, se kokoaa tällä kertaa. 1612 01:06:31,410 --> 01:06:33,060 >> Saanen juosta kasvu. 1613 01:06:33,060 --> 01:06:34,810 Ja todellakin, se näyttää toimivan. 1614 01:06:34,810 --> 01:06:36,810 Nyt voit keksiä skenaarioita lopulta missä 1615 01:06:36,810 --> 01:06:38,650 se ei ole mahdollista laittaa jokainen toiminto 1616 01:06:38,650 --> 01:06:39,740 kaikkien muiden yläpuolelle toimintoa. 1617 01:06:39,740 --> 01:06:42,140 Sinun juuttua tähän päättymättömän silmukan todellisuudessa 1618 01:06:42,140 --> 01:06:43,480 jos tämä kaveri haluaa olla täällä, mutta tämä 1619 01:06:43,480 --> 01:06:44,390 kaveri on siellä. 1620 01:06:44,390 --> 01:06:45,830 Niin että ei aina toimi. 1621 01:06:45,830 --> 01:06:49,020 Joten onneksi, C on elegantin ratkaisun. 1622 01:06:49,020 --> 01:06:50,790 Aion laittaa tämän takaisin missä se oli, vain koska olen 1623 01:06:50,790 --> 01:06:53,390 mieluummin, koska periaatteessa se tärkein aina 1624 01:06:53,390 --> 01:06:55,550 huipulla, koska se on vain kiva nähdä, mitä tämä ohjelma 1625 01:06:55,550 --> 01:06:56,920 tekee oletuksena. 1626 01:06:56,920 --> 01:06:58,950 Ja mitä aion tehdä täällä on julistaa mitä kutsutaan 1627 01:06:58,950 --> 01:07:00,250 prototyyppi. 1628 01:07:00,250 --> 01:07:05,730 Aion uudelleen julistamaan minun datakuutiofunktioiden kirjaimellisesti 1629 01:07:05,730 --> 01:07:07,180 kopioiminen ja liittäminen. 1630 01:07:07,180 --> 01:07:08,290 Oikeastaan ​​se ei ole kirjaimellisesti. 1631 01:07:08,290 --> 01:07:13,060 Niin kirjaimellisesti kopioiminen ja liittäminen linja 15 1632 01:07:13,060 --> 01:07:15,160 ylhäällä rivi 6. 1633 01:07:15,160 --> 01:07:17,010 Sillä ei ole väliä, mitä linjaa tämä päätyy. 1634 01:07:17,010 --> 01:07:18,380 Se sattuu olemaan verkossa 4. 1635 01:07:18,380 --> 01:07:19,950 Mutta se ei tarvitse olla ennen main. 1636 01:07:19,950 --> 01:07:21,150 Mutta huomaa eron. 1637 01:07:21,150 --> 01:07:24,100 Linja 4 päättyy puolipisteellä, joka tarkoittaa hei, 1638 01:07:24,100 --> 01:07:27,510 Kalahtaa, sanaani se, että on olemassa funktio 1639 01:07:27,510 --> 01:07:31,350 kutsutaan kuutio joka vie int ja palauttaa int. 1640 01:07:31,350 --> 01:07:33,020 Mutta en aio kertoa teille, mitä se on vielä. 1641 01:07:33,020 --> 01:07:35,180 Vain tietäkää, että lupaan kertoa lopulta. 1642 01:07:35,180 --> 01:07:38,490 Ja todellakin, nyt se on okei, että tämä on alhaalla. 1643 01:07:38,490 --> 01:07:41,275 >> Joten tämä on yleensä parempi, koska silloin yläosassa 1644 01:07:41,275 --> 01:07:44,240 tiedoston, voit vain suoltaa, nopean palon yksi rivi 1645 01:07:44,240 --> 01:07:46,470 jokainen, mitä nimiä teidän toimintoja, mitä heidän 1646 01:07:46,470 --> 01:07:49,120 tulot ovat, mitä heidän lähdöt. 1647 01:07:49,120 --> 01:07:52,210 Ja selkeämmäksi, tulo tarkoittaa yleensä väitettä tai 1648 01:07:52,210 --> 01:07:54,110 parametri, synonyymi. 1649 01:07:54,110 --> 01:07:56,890 Tuotos tarkoittaa paluuta arvoa, mitä se 1650 01:07:56,890 --> 01:07:58,700 käsi takaisin minulle. 1651 01:07:58,700 --> 01:08:03,420 Eli tässä tapauksessa täällä, kuutio on julistettu huipulla, mutta 1652 01:08:03,420 --> 01:08:06,940 on määritelty, joka tunnetaan myös toteutettu alareunassa. 1653 01:08:06,940 --> 01:08:09,620 Joten nyt mennään tänne ja uusinnassa tätä. 1654 01:08:09,620 --> 01:08:13,430 Joten nyt haluan mennä eteenpäin ja ajaa uudelleen tehdä, uusinnassa kasvu. 1655 01:08:13,430 --> 01:08:16,500 Ja nyt näyttää toimivan hienosti. 1656 01:08:16,500 --> 01:08:19,450 Joten nyt voimme mennä eteenpäin ja tekijän ulos jotain 1657 01:08:19,450 --> 01:08:23,720 olutta esimerkiksi tähän neljäs versio. 1658 01:08:23,720 --> 01:08:25,590 Haluan siis selaa tänne. 1659 01:08:25,590 --> 01:08:28,149 Ja huomaa, että olen sellainen otti tämän oppitunnin sydämen juuri nyt. 1660 01:08:28,149 --> 01:08:31,140 Se, että lauloin samalla säkeistö uudelleen ja 1661 01:08:31,140 --> 01:08:34,130 uudestaan ​​ja uudestaan, sama kuoro linjaa laulu, huopa 1662 01:08:34,130 --> 01:08:36,439 like Miksi en seikka, että ulos funktio? 1663 01:08:36,439 --> 01:08:38,470 Ja todellakin, tämä olisi yksi motiiveista. 1664 01:08:38,470 --> 01:08:40,960 Sen lisäksi, että joku muu maailmassa ehkä 1665 01:08:40,960 --> 01:08:42,390 käyttää datakuutiofunktioiden - 1666 01:08:42,390 --> 01:08:44,560 se on hyvä syy tekijä jotain ja kirjoita 1667 01:08:44,560 --> 01:08:45,720 omia toiminto - 1668 01:08:45,720 --> 01:08:48,720 jos on kimpale koodi in your ohjelma, joka vain tekee 1669 01:08:48,720 --> 01:08:51,370 käsitteellinen mielessä, että et sellaista halua antaa sitä 1670 01:08:51,370 --> 01:08:53,740 nimi - kuten tässä tapauksessa, Chorus - 1671 01:08:53,740 --> 01:08:57,380 voit samalla kirjoittaa, että erillisenä toimintona. 1672 01:08:57,380 --> 01:08:59,560 Sinun ei tarvitse kirjoittaa kaikki tärkeimmät, jos se vain 1673 01:08:59,560 --> 01:09:02,609 tuntuu puhtaampaa erottaa sitä ja antaa sille nimen. 1674 01:09:02,609 --> 01:09:05,529 >> Eli tässä tapauksessa täällä, huomaat että olen kommentoida huipulla 1675 01:09:05,529 --> 01:09:06,859 Tämä toiminto, joka juuri laulaa 1676 01:09:06,859 --> 01:09:08,630 määritetty määrä pulloja. 1677 01:09:08,630 --> 01:09:10,609 Huomaa tässä, että minun ei tarvitse soittaa näitä 1678 01:09:10,609 --> 01:09:12,520 asioita tulon ja lähdön. 1679 01:09:12,520 --> 01:09:16,090 Itse asiassa tällä kertaa olen vain kutsuin input B pullo. 1680 01:09:16,090 --> 01:09:19,960 Ja huomaa täällä, mitätön ehdottaa mitä? 1681 01:09:19,960 --> 01:09:21,309 Tuo Chorus - 1682 01:09:21,309 --> 01:09:22,660 YLEISÖ: Ei palauta sitä. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. MALAN: ei palauta arvoa. 1684 01:09:23,870 --> 01:09:26,800 Ja todellakin, toimintoja ei tarvitse palata arvoja. 1685 01:09:26,800 --> 01:09:28,060 He voivat vain tehdä jotain. 1686 01:09:28,060 --> 01:09:30,270 Ne voivat olla mitä kutsutaan sivuvaikutuksia, joka tässä 1687 01:09:30,270 --> 01:09:33,109 tapaus on vain koko joukko tulostaa ruudulla. 1688 01:09:33,109 --> 01:09:36,580 Niin huomaa, että tämä koodi täällä, olen kirjaimellisesti vain varasti 1689 01:09:36,580 --> 01:09:37,680 edellisessä esimerkissä. 1690 01:09:37,680 --> 01:09:39,930 Ainoa ero on, sen sijaan että käytettäisiin i minun 1691 01:09:39,930 --> 01:09:42,890 muuttuja, olen nyt käyttää b minun muuttuja. 1692 01:09:42,890 --> 01:09:45,880 Joten minulla on b tänne, minulla on b tänne, olen b 1693 01:09:45,880 --> 01:09:47,109 miinus 1 täällä. 1694 01:09:47,109 --> 01:09:49,279 Mutta koodi on täsmälleen sama. 1695 01:09:49,279 --> 01:09:52,529 Mutta vain näyttää nyt miten voimme käyttää tätä, anna minun mennä 1696 01:09:52,529 --> 01:09:56,780 eteenpäin ja todella muuttaa tämän olevan varten silmukka. 1697 01:09:56,780 --> 01:10:03,850 for (int i = n; i> n, i -). 1698 01:10:03,850 --> 01:10:06,230 >> Joten olen varastanut että meidän edellisestä esimerkistä. 1699 01:10:06,230 --> 01:10:08,970 Aiemmin se on yhdenmukainen 37 että olisin alkanut 1700 01:10:08,970 --> 01:10:10,640 laulaa tätä ärsyttävää laulua. 1701 01:10:10,640 --> 01:10:15,810 Mutta sen sijaan, olen juuri menossa nyt soittaa kuoroon i. 1702 01:10:15,810 --> 01:10:16,870 Valmis. 1703 01:10:16,870 --> 01:10:20,260 Joten nyt kaikki iterointia tämän silmukan, Kutsun tätä muuta 1704 01:10:20,260 --> 01:10:22,220 toiminto, chorus, että satuin kirjoittamaan. 1705 01:10:22,220 --> 01:10:24,110 Se ei ollut kirjoittanut joku muu vuotta sitten. 1706 01:10:24,110 --> 01:10:27,930 Mutta kuoro puolestaan ​​käyttää printf tulostaa 1707 01:10:27,930 --> 01:10:29,840 nämä neljä riviä. 1708 01:10:29,840 --> 01:10:32,720 Mutta se, että soitan kertosäe uudestaan ​​ja uudestaan 1709 01:10:32,720 --> 01:10:35,900 loop tarkoittaa sitä, että aion saada, aivan lopussa, 1710 01:10:35,900 --> 01:10:39,310 täsmälleen sama laulu kuin olen tähän mennessä. 1711 01:10:39,310 --> 01:10:42,130 Eli lyhyesti sanottuna, nyt kun katson taaksepäin minun koodi, vaikka 1712 01:10:42,130 --> 01:10:44,240 toiminnallisesti tämä vastaa, huomaat, että se on 1713 01:10:44,240 --> 01:10:46,020 alkaa saada vieläkin luettavissa. 1714 01:10:46,020 --> 01:10:48,410 En tarkalleen tiedä miten GetInt 1715 01:10:48,410 --> 01:10:49,250 toteutetaan. 1716 01:10:49,250 --> 01:10:52,050 Rehellisesti, en tiedä miten kuoro toteutetaan. 1717 01:10:52,050 --> 01:10:52,970 Mutta sillä ei ole väliä minulle. 1718 01:10:52,970 --> 01:10:55,620 En välitä, koska nyt voin tavallaan, kuten ihmisen, lue 1719 01:10:55,620 --> 01:10:57,050 Tässä ylhäältä alas. 1720 01:10:57,050 --> 01:10:59,950 Ja koska toiminnot on nimetty mukaan, mitä he 1721 01:10:59,950 --> 01:11:02,910 tehdä, minun koodi on yhä luettavissa. 1722 01:11:02,910 --> 01:11:05,190 Ja meidän ohjelmat saavat paljon monimutkaisempi - 1723 01:11:05,190 --> 01:11:07,220 mennessä lukukauden lopussa, voit kirjoittaa satoja rivejä 1724 01:11:07,220 --> 01:11:10,970 koodin kielten kuten PHP ja Javascript ja vastaavat - 1725 01:11:10,970 --> 01:11:13,550 huomaat, että se on niin paljon helpompaa kuin seurata 1726 01:11:13,550 --> 01:11:14,080 mitä olet tehnyt. 1727 01:11:14,080 --> 01:11:15,810 Ja kun aloitat yhteistyötä ystävien tai 1728 01:11:15,810 --> 01:11:19,010 kumppaneita tai työtovereiden, voit kirjoittaa paljon enemmän 1729 01:11:19,010 --> 01:11:22,910 massiivinen ohjelmien alkavat käyttää näitä perus 1730 01:11:22,910 --> 01:11:23,990 rakennuspalikoita. 1731 01:11:23,990 --> 01:11:25,550 >> Niin, että sanoi, miksi emme kutsu sitä päivässä? 1732 01:11:25,550 --> 01:11:27,190 Ja näemme sinut keskiviikkona. 1733 01:11:27,190 --> 01:11:33,611 [Taputuksia]