1 00:00:00,000 --> 00:00:03,944 >> [Musiikkia] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID MALAN: Selvä. 4 00:00:11,690 --> 00:00:14,674 Tämä on CS50, ja tämä on viikon lopussa 2. 5 00:00:14,674 --> 00:00:16,840 Olen niin pahoillani, etten voinut olla siellä te kaikki tänään, 6 00:00:16,840 --> 00:00:18,300 mutta olet hyvissä käsissä. 7 00:00:18,300 --> 00:00:21,710 Saanen esitellä CS50 oma Rob Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB BOWDEN: Ja tietenkin sitten meidän on pilkata siitä 10 00:00:31,730 --> 00:00:36,820 että hän lähetti meille pystysuora video ja näytettävä tämä. 11 00:00:36,820 --> 00:00:38,320 >> [VIDEOTOISTOSTA] 12 00:00:38,320 --> 00:00:39,820 >> [Musiikkia] 13 00:00:39,820 --> 00:00:42,350 >> [ASKELMILLA] 14 00:00:42,350 --> 00:00:44,730 >> -Tämä Video ei on tarkasteltava tällä tavalla. 15 00:00:44,730 --> 00:00:46,570 Se olisi voitu estää. 16 00:00:46,570 --> 00:00:49,070 Sanoa ei pystysuora videoita. 17 00:00:49,070 --> 00:00:53,310 >> Pystytunnistin videoita tapahtuu, kun Pidä kamera väärällä tavalla. 18 00:00:53,310 --> 00:00:55,880 Videosi päättyy ylös näyttämään paska. 19 00:00:55,880 --> 00:00:57,650 >> - [MURISIJA] 20 00:00:57,650 --> 00:01:02,240 >> -On Enemmän ja enemmän ihmiset riippuvaisiksi tekemään pystysuora videoita päivittäin. 21 00:01:02,240 --> 00:01:06,240 Se ei halki tai ei mitään, mutta se on silti todella huono. 22 00:01:06,240 --> 00:01:10,410 On olemassa kaksi erilaista ihmiset jotka kärsivät kanssa VVS. 23 00:01:10,410 --> 00:01:14,160 Ensimmäinen ryhmä käsittelee videoita he ampuvat kuten kuvia. 24 00:01:14,160 --> 00:01:15,850 Ne eivät tarkoita mitään pahaa. 25 00:01:15,850 --> 00:01:19,180 He vain eivät ymmärrä, että kun voit kääntää kuvan, 26 00:01:19,180 --> 00:01:20,880 et voi todella kääntyä video. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [MONKEY SOUNDS] 29 00:01:23,460 --> 00:01:27,540 >> -The Muu ryhmä on ihmisiä jotka eivät anna [BLEEP]. 30 00:01:27,540 --> 00:01:31,090 >> Pystytunnistin Video oireyhtymä on vaarallista. 31 00:01:31,090 --> 00:01:34,120 Elokuvia on aina olleet horisontaalinen. 32 00:01:34,120 --> 00:01:35,990 Televisiot ovat vaakasuorassa. 33 00:01:35,990 --> 00:01:38,380 Tietokoneiden näytöt ovat vaakasuorassa. 34 00:01:38,380 --> 00:01:41,580 Ihmisten silmät ovat vaakasuorassa. 35 00:01:41,580 --> 00:01:45,170 Emme ole rakennettu katsella pystysuora videoita. 36 00:01:45,170 --> 00:01:47,600 >> -Rakastan Pystysuora videoita. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Välittää sinusta. 38 00:01:50,410 --> 00:01:53,340 >> -jos Tämä ongelma on puututa, sinäkin 39 00:01:53,340 --> 00:01:57,650 alkaa näkyä neljä videoita kerralla vain säästää kaistanleveyttä. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Pystysuora videoita olisi olla koko postimerkki. 41 00:02:02,400 --> 00:02:04,920 >> -Ja Se leviää kaikkialle. 42 00:02:04,920 --> 00:02:07,670 Valkokankaat ovat aina olleet horisontaalinen. 43 00:02:07,670 --> 00:02:11,200 Jos pystysuora videoita tullut Hyväksytyt, elokuvateatterit 44 00:02:11,200 --> 00:02:13,930 on oltava pitkä ja laiha. 45 00:02:13,930 --> 00:02:17,710 >> -Ja Kaikki elokuvateattereissa olisi täytyy päästä purettiin ja rakennettiin uudelleen. 46 00:02:17,710 --> 00:02:22,090 Ja kun he olivat uudelleen, Mila Kunis olisi vanha ja ruma. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Kaatuu niihin ja kuolla. 48 00:02:24,342 --> 00:02:26,530 >> -We'll Kaikki saavat jäykkä kaulaa alkaen etsimisessä. 49 00:02:26,530 --> 00:02:29,800 >> -Ja Kukaan ei istu Eturivissä enää koskaan. 50 00:02:29,800 --> 00:02:37,170 >> -George Lucas uudelleen julkaisu Star Wars again-- laiha painos. 51 00:02:37,170 --> 00:02:41,860 >> -Olin Koskaan kertoa tarina, että halusin kertoa. 52 00:02:41,860 --> 00:02:46,030 Tämä oli loistava tilaisuus minulle kokeilla uutta teknologiaa. 53 00:02:46,030 --> 00:02:48,150 >> -Olet Ääliö. 54 00:02:48,150 --> 00:02:54,430 >> -Joka Ajan mobiililaite käytetään tallentaa videokuvaa, houkutus on siellä. 55 00:02:54,430 --> 00:02:56,370 Vain sanoa ei. 56 00:02:56,370 --> 00:03:00,116 Sanoa ei George Lucas. 57 00:03:00,116 --> 00:03:04,062 Sano ei vanha Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Sanoa ei pystysuora videoita. 59 00:03:06,600 --> 00:03:12,511 >> -Ja Jos näet jonkun tehdä se, sanovat, "Et ole ammunta tätä oikeutta nuken!" 60 00:03:12,511 --> 00:03:15,433 >> [Musiikkia] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [Lopeta toisto] 63 00:03:19,830 --> 00:03:23,702 >> [APPLAUSE] 64 00:03:23,702 --> 00:03:27,598 >> [AUDIO OUT] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 ROB BOWDEN: --simple muodossa salausta, 67 00:03:45,790 --> 00:03:49,500 joka on periaatteessa salaus ja salauksen salaisten viestejä. 68 00:03:49,500 --> 00:03:52,590 Joten tässä meillä on erittäin yksinkertainen lelu. 69 00:03:52,590 --> 00:03:56,900 Ja ajatus on ulkokehällä kiertää sisärengas. 70 00:03:56,900 --> 00:04:01,610 Ja voit nähdä, ehkä jos voin zoomata vuonna, that-- on vaikea nähdä. 71 00:04:01,610 --> 00:04:05,090 Mutta, kuten, numero 1-- hyvin, että siirretty. 72 00:04:05,090 --> 00:04:09,120 >> Numero 1 Kartat kirjeeseen X, numero 2 karttoja kirjeen 73 00:04:09,120 --> 00:04:11,630 J. uskomattoman vaikeaa ei hypätä eteenpäin. 74 00:04:11,630 --> 00:04:16,100 Kirje 2 kartat J. Numero 3 karttoja D. Joten 75 00:04:16,100 --> 00:04:20,140 Tämän rengas voit antaa joku viesti 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Jostain syystä halua kertoa heille XJD. 77 00:04:22,624 --> 00:04:24,540 Mutta voit antaa heille jotkut viesti numeroita, 78 00:04:24,540 --> 00:04:28,460 ja niin kauan kuin ne ovat tämän sormuksen, ne voi purkaa mitä yrität sanoa. 79 00:04:28,460 --> 00:04:32,510 >> Joten ehkä nähnyt tämän Erityinen esimerkki salakirjoituksen 80 00:04:32,510 --> 00:04:36,640 ennen jos noin joulun olet katsonut Joulutarina. 81 00:04:36,640 --> 00:04:38,520 Jos et ole koskaan nähnyt sitä ennen, sitten vain 82 00:04:38,520 --> 00:04:41,060 päälle TBS klo kirjaimellisesti tahansa jouluaattona, 83 00:04:41,060 --> 00:04:44,510 koska ne vain näyttää sen takaisin takaisin takaisin takaisin takaisin koko päivän. 84 00:04:44,510 --> 00:04:46,744 Ja asiaa videon on tämä. 85 00:04:46,744 --> 00:04:47,410 [VIDEOTOISTOSTA] 86 00:04:47,410 --> 00:04:50,020 -Ole Se tiedetään iikka että Ralph Parker on täten 87 00:04:50,020 --> 00:04:52,850 nimitetty jäsen Pikku Orphan Annie Secret Circle 88 00:04:52,850 --> 00:04:56,490 ja on oikeutettu kaikkiin kunnianosoitukset ja hyödyt ilmenevät siihen. 89 00:04:56,490 --> 00:04:59,010 Allekirjoitettu Little Orphan Annie. 90 00:04:59,010 --> 00:05:03,120 Varmentaa Pierre Andre musteella! 91 00:05:03,120 --> 00:05:07,460 Honors ja hyödyt jo yhdeksän vuoden iässä! 92 00:05:07,460 --> 00:05:12,530 >> [Huutaa Radio] 93 00:05:12,530 --> 00:05:13,030 -Come Päälle. 94 00:05:13,030 --> 00:05:14,000 Mennään sen kanssa. 95 00:05:14,000 --> 00:05:18,274 En tarvitse kaikki muu noin salakuljettajia ja merirosvoja. 96 00:05:18,274 --> 00:05:20,440 : Kuuntele huomenna yö päätös- seikkailu 97 00:05:20,440 --> 00:05:22,540 Black merirosvolaiva. 98 00:05:22,540 --> 00:05:25,460 Nyt on aika Annien salainen viesti 99 00:05:25,460 --> 00:05:28,620 sinulle jäsenet Noitapiiri. 100 00:05:28,620 --> 00:05:32,370 Muista lapset, vain jäsenille Annie Secret Circle 101 00:05:32,370 --> 00:05:34,880 voi purkaa Annien salainen viesti. 102 00:05:34,880 --> 00:05:39,100 Muista, Annie on kiinni sinusta. 103 00:05:39,100 --> 00:05:41,660 Aseta nastat B2. 104 00:05:41,660 --> 00:05:43,960 Tässä on viesti. 105 00:05:43,960 --> 00:05:44,680 12. 106 00:05:44,680 --> 00:05:45,180 11. 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 -Olen Minun ensimmäinen salaisen kokouksen. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 14. 111 00:05:49,834 --> 00:05:51,040 11. 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 16. 114 00:05:52,670 --> 00:05:54,570 >> -Voi, Pierre on suuren äänen tänään. 115 00:05:54,570 --> 00:05:57,490 Voisin kertoa, että illan Viesti oli todella tärkeä. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 Se on viesti Annie itse. 119 00:06:01,580 --> 00:06:02,880 Muista, älä kerro kenellekään. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Viisi Sekuntia myöhemmin, olen vain huoneeseen, jossa poika yhdeksän 122 00:06:11,130 --> 00:06:15,830 voisi istua rauhassa ja purkaa. 123 00:06:15,830 --> 00:06:16,620 Ahaa! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 Menin seuraavaksi. 126 00:06:20,210 --> 00:06:23,300 E. Ensimmäinen sana on "olla." 127 00:06:23,300 --> 00:06:25,880 S. Se oli tulossa helpompaa nyt. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Se R. 130 00:06:30,528 --> 00:06:31,278 -Come On, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Olen mentävä! 132 00:06:31,861 --> 00:06:33,182 -Otan Olla alas, Ma! 133 00:06:33,182 --> 00:06:36,038 Jannu hurahtaa. 134 00:06:36,038 --> 00:06:42,840 T. O. "Muista" - varmasti mitä? 135 00:06:42,840 --> 00:06:44,770 Mikä oli pienen orvon Annie yrittää sanoa? 136 00:06:44,770 --> 00:06:46,381 Muista mitä? 137 00:06:46,381 --> 00:06:47,825 >> -Randy On mentävä! 138 00:06:47,825 --> 00:06:48,866 Voisitteko tulla ulos? 139 00:06:48,866 --> 00:06:49,783 >> -Kaikki Oikeassa, äiti! 140 00:06:49,783 --> 00:06:51,786 Tulen heti! 141 00:06:51,786 --> 00:06:53,606 Olin lähestyy nyt. 142 00:06:53,606 --> 00:06:55,550 Jännitys oli kauhea. 143 00:06:55,550 --> 00:06:57,050 Mitä se oli? 144 00:06:57,050 --> 00:06:59,905 Kohtalo planeetta voi vaakalaudalla! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Randy täytyy mennä! 146 00:07:01,736 --> 00:07:05,680 >> -Otan Olla oikealle ulos, itkeä ääneen! 147 00:07:05,680 --> 00:07:07,170 Melkein perillä! 148 00:07:07,170 --> 00:07:08,150 Sormiani lensi. 149 00:07:08,150 --> 00:07:09,980 Mieleni oli teräs ansa. 150 00:07:09,980 --> 00:07:11,496 Jokainen pore tärytetään. 151 00:07:11,496 --> 00:07:13,268 Se oli melkein puhdas! 152 00:07:13,268 --> 00:07:13,767 Kyllä. 153 00:07:13,767 --> 00:07:14,609 Kyllä. 154 00:07:14,609 --> 00:07:15,108 Kyllä. 155 00:07:15,108 --> 00:07:16,449 Kyllä. 156 00:07:16,449 --> 00:07:20,240 Muista juoda Ovaltine. 157 00:07:20,240 --> 00:07:20,740 Ovaltine? 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 Kurja kaupallinen? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Paskiainen. 162 00:07:34,920 --> 00:07:35,890 >> [Lopeta toisto] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Niin, että miten Ovaltine liittyy salausvälineisiin. 164 00:07:39,650 --> 00:07:42,290 Periaatteessa CS50 vain mainostettu Ovaltine, jotta voisimme 165 00:07:42,290 --> 00:07:44,400 olla kurja mainoksessa Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Selvä. 167 00:07:44,900 --> 00:07:47,120 Joten nyt todellinen tietojenkäsittelytiede. 168 00:07:47,120 --> 00:07:50,670 Muista maanantaina jäimme sukellus syvemmälle jousille. 169 00:07:50,670 --> 00:07:52,820 Joten olimme tekemisissä merkkijono "Zamyla." 170 00:07:52,820 --> 00:07:55,130 Ja olimme tunnustaa että voimme käsitellä 171 00:07:55,130 --> 00:07:57,510 "Zamyla" kuin merkkijono. 172 00:07:57,510 --> 00:07:59,740 Ja muistaa, että olemme oppineet kiinnike merkintä. 173 00:07:59,740 --> 00:08:01,995 Joten jos tämä säilytettiin merkkijono "s", sitten 174 00:08:01,995 --> 00:08:05,860 jos sanoimme s kiinnike 0, joka osoittavat kirjain pääoma Z. 175 00:08:05,860 --> 00:08:09,790 Ja jos me sanoi s kiinnike 1, että osoittaisi ensimmäisen pieniä, 176 00:08:09,790 --> 00:08:14,220 ja niin edelleen jopa s kiinnike 5, mikä osoittaisi viimeinen. 177 00:08:14,220 --> 00:08:17,090 >> Nyt muistaa, että pituus tämä merkkijono on 6, 178 00:08:17,090 --> 00:08:23,220 mutta indeksit osaksi merkkijonon 0 kautta 5, Z läpi kestää. 179 00:08:23,220 --> 00:08:28,650 Joten tämä nyt sopii isompi kuva tietokoneen muistiin, RAM. 180 00:08:28,650 --> 00:08:32,020 Joten jonnekin ohjelma käytät tietokoneen 181 00:08:32,020 --> 00:08:34,780 tarvitsee muistaa Zamyla jossain muistissa. 182 00:08:34,780 --> 00:08:36,029 Joten voin olla vapaaehtoinen? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Kyllä kiitos. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 Ja mikä on nimesi? 187 00:08:51,500 --> 00:08:52,410 >> DEAN: Dean. 188 00:08:52,410 --> 00:08:53,550 >> ROB BOWDEN: Dean? 189 00:08:53,550 --> 00:08:54,910 Hauska tavata, Dean. 190 00:08:54,910 --> 00:08:58,240 Tule tänne, ja me aiomme olla piirtää 191 00:08:58,240 --> 00:09:00,740 meidän mukava näppärä ulkoasu muistia. 192 00:09:00,740 --> 00:09:05,950 Nyt Haluan ajatella muistia yhtenä pitkä kaistale tavua, 193 00:09:05,950 --> 00:09:11,090 mutta vain näyttötarkoituksiin me will eivät vain vasemmalta oikealle, ylhäältä alas. 194 00:09:11,090 --> 00:09:11,590 OK? 195 00:09:11,590 --> 00:09:22,030 >> Joten aion näyttää program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Ja niin kaikki tämä ohjelma on teet pyytää neljä jousille 197 00:09:25,760 --> 00:09:28,830 käyttäjän kanssa GetString ja sitten tulostus 198 00:09:28,830 --> 00:09:30,950 mitä se ensimmäinen merkkijonon tuli oli. 199 00:09:30,950 --> 00:09:32,840 Olemme unohdetaan kaksi neljän. 200 00:09:32,840 --> 00:09:33,610 OK. 201 00:09:33,610 --> 00:09:38,210 Joten tänne now-- kun Olen ensimmäinen pyyntö S1. 202 00:09:38,210 --> 00:09:39,740 Joten olet tietokone. 203 00:09:39,740 --> 00:09:41,680 Ja olet täytäntöön GetString. 204 00:09:41,680 --> 00:09:46,710 Joten pyydät merkkijono minua, ja minä sanon, OK, Dean. 205 00:09:46,710 --> 00:09:47,900 Anna merkkijono "Dean." 206 00:09:47,900 --> 00:09:50,300 >> Joten jossain muistia täytyy muistaa "Dean." 207 00:09:50,300 --> 00:09:52,160 Joten kirjoita se muistiin jonnekin. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 Täydellinen. 210 00:09:59,210 --> 00:09:59,880 OK. 211 00:09:59,880 --> 00:10:01,740 Joten nyt olemme s2. 212 00:10:01,740 --> 00:10:03,869 Ja s2 tulee olemaan pyyntö GetString. 213 00:10:03,869 --> 00:10:05,160 Joten aion tulla merkkijono. 214 00:10:05,160 --> 00:10:08,720 Aion tulla "Hannah." 215 00:10:08,720 --> 00:10:10,586 Joten kirjoita "Hanna" jonnekin muistiin. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Joo. 218 00:10:19,360 --> 00:10:23,000 -H. 219 00:10:23,000 --> 00:10:25,550 >> OK, joten nyt s3. 220 00:10:25,550 --> 00:10:28,380 Ja se tulee olemaan toinen pyytää GetString. 221 00:10:28,380 --> 00:10:37,020 Ja niin nyt syötä "Maria." 222 00:10:37,020 --> 00:10:37,520 Selvä. 223 00:10:37,520 --> 00:10:40,980 Ja sitten on vielä yksi pyyntö GetString, S4. 224 00:10:40,980 --> 00:10:42,580 Joten, en tiedä. 225 00:10:42,580 --> 00:10:45,640 Entä me mennä antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Niin kirjoita se muistiin. 227 00:10:49,460 --> 00:10:50,400 Joo. 228 00:10:50,400 --> 00:10:53,970 Niin vain tehdä "Rob." 229 00:10:53,970 --> 00:10:54,560 >> OK. 230 00:10:54,560 --> 00:10:58,410 Joten nyt explain-- miksi jätät nämä tilat? 231 00:10:58,410 --> 00:11:01,340 Miksi sinulla on tämä tyhjä tilaa täällä, täällä ja täällä? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Kyllä. 234 00:11:05,670 --> 00:11:09,450 Joten huomaa kun menen tulostaa s1-- joten jos me 235 00:11:09,450 --> 00:11:11,890 oli "Hannah" käynnissä asti vieressä "Dean," 236 00:11:11,890 --> 00:11:14,360 mistä me tiedämme milloin merkkijono "Dean" päättyy? 237 00:11:14,360 --> 00:11:19,470 Joten tulostus merkkijono s1 voi olla vain painettu "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 jos sillä ei ole mitään hajuakaan milloin "Dean" tosiasiallisesti päättyy. 239 00:11:22,720 --> 00:11:23,240 >> Selvä. 240 00:11:23,240 --> 00:11:27,650 Joten muistiin miten me oikeastaan edustavat tätä lopussa merkkijonon 241 00:11:27,650 --> 00:11:29,940 on kanssa kenoviiva nolla. 242 00:11:29,940 --> 00:11:32,620 Joten tämä tila on juuri sitä, mitä halusimme. 243 00:11:32,620 --> 00:11:34,040 Sen pitäisi olla kenoviiva nolla. 244 00:11:34,040 --> 00:11:37,690 Tämä on kenoviiva nolla, ja tämä on kenoviiva nolla. 245 00:11:37,690 --> 00:11:41,585 Ja voit olla upea palkinto siitä, että täydellinen vapaaehtoinen. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Ota stressipallo! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> OK. 250 00:11:49,700 --> 00:11:54,420 Joten tämä merkki kenoviiva nolla on miten loppu ilmoitetaan merkkijonon. 251 00:11:54,420 --> 00:11:57,120 Se miten kun kuhunkin ohjelmaan haluaa tulostaa merkkijonon, 252 00:11:57,120 --> 00:11:59,760 se how-- muista opimme strlen toiminto viime viikolla? 253 00:11:59,760 --> 00:12:00,940 Merkkijonon pituus? 254 00:12:00,940 --> 00:12:03,770 Se miten merkkijonon pituus pystyy määrittää, kuinka kauan merkkijono on. 255 00:12:03,770 --> 00:12:05,810 Se vain pitää iteroimalla yli merkkiä 256 00:12:05,810 --> 00:12:08,217 kunnes se löytää kenoviiva nolla merkki. 257 00:12:08,217 --> 00:12:11,050 Joten tärkeintä ymmärtää noin kenoviiva nolla merkki 258 00:12:11,050 --> 00:12:14,950 on se edustaa kaikki nollia bitteinä. 259 00:12:14,950 --> 00:12:18,980 Niin huomaa, että tämä on eri alkaen nolla merkki. 260 00:12:18,980 --> 00:12:23,010 Joten nolla merkki, jos muistat esimerkissä että hän antoi lopussa 261 00:12:23,010 --> 00:12:27,360 Luennon jossa merkkiä kartta to-- kuten pääoma karttoja 65. 262 00:12:27,360 --> 00:12:29,130 Pieniä karttoja 97. 263 00:12:29,130 --> 00:12:30,890 Pieniä b olisi 98. 264 00:12:30,890 --> 00:12:35,220 Joten numero 0 kartat to-- en tietää päältä pääni. 265 00:12:35,220 --> 00:12:36,400 44 tai 45. 266 00:12:36,400 --> 00:12:37,890 Jossain kyseisellä alueella. 267 00:12:37,890 --> 00:12:40,850 >> Joten merkki 0 on todellinen määrä. 268 00:12:40,850 --> 00:12:44,350 Mutta kenoviiva nolla karttoja kaikki nollaan bittiä. 269 00:12:44,350 --> 00:12:46,380 Joten ei eroa välillä kenoviiva nolla, 270 00:12:46,380 --> 00:12:48,450 joka soitamme null terminaattori. 271 00:12:48,450 --> 00:12:53,210 On eroa kenoviiva nolla ja merkki nolla. 272 00:12:53,210 --> 00:12:54,350 >> Selvä. 273 00:12:54,350 --> 00:12:57,520 Joten puhua vähän enemmän jousille. 274 00:12:57,520 --> 00:13:01,470 Joten sitten näemme täällä näin se olisi säädettyihin muistiin. 275 00:13:01,470 --> 00:13:07,940 Joten tämä ajatus jousille sarjana on characters-- joten virallisesta tietokannasta 276 00:13:07,940 --> 00:13:10,750 sciency termi sekvenssi on jono. 277 00:13:10,750 --> 00:13:13,790 Joten kutsuisimme merkkijono joukko merkkiä. 278 00:13:13,790 --> 00:13:17,770 Ja on todella muita tietoja tyypit, jotka voimme tehdä paneelit pois. 279 00:13:17,770 --> 00:13:19,975 >> Joten motivoida tähän, katsokaa esimerkki. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Me kutsumme sitä ages0.c I will kopioi ja liitä meidän malliin. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 OK. 284 00:13:33,410 --> 00:13:39,378 Joten tässä ohjelmassa, mitä me haluat tehdä, on napata ikä 285 00:13:39,378 --> 00:13:45,160 kolme opiskelijoiden kurssin. 286 00:13:45,160 --> 00:13:49,240 Joten me tiedämme int age-- ja nyt aion sanoa 0. 287 00:13:49,240 --> 00:13:53,140 Joten kannattaa sanoa age1, mutta tarkoituksiin näemme hyvin pian, 288 00:13:53,140 --> 00:13:57,187 Sanon int age0 vastaa GetInt. 289 00:13:57,187 --> 00:13:59,270 Joten sama puhelun GetInt että olemme käyttäneet I 290 00:13:59,270 --> 00:14:01,561 eivät sattuvat olemaan kehotukset sanomalla, "anna minulle ikä." 291 00:14:01,561 --> 00:14:03,120 Mutta vain pyytää sitä. 292 00:14:03,120 --> 00:14:06,510 >> Ja age1 vastaa GetInt. 293 00:14:06,510 --> 00:14:09,600 Ja int age2 yhtä suuri kuin GetInt. 294 00:14:09,600 --> 00:14:14,070 Joten, jälleen, kolme opiskelijaa, mutta lopulta muuttuja indeksit 295 00:14:14,070 --> 00:14:16,890 ovat age0 kautta age2. 296 00:14:16,890 --> 00:14:17,550 OK. 297 00:14:17,550 --> 00:14:23,960 Joten tämä ohjelma tekee mitä haluamme kanssa age0, age1, ja age2, 298 00:14:23,960 --> 00:14:27,670 mutta tämä ohjelma lopulta toimii kolme opiskelijaa. 299 00:14:27,670 --> 00:14:28,380 >> OK. 300 00:14:28,380 --> 00:14:32,110 Joten nyt, mitä jos haluan neljä opiskelijaa? 301 00:14:32,110 --> 00:14:36,000 No, aion mennä takaisin minun koodi, vaihtaa kommentti, 302 00:14:36,000 --> 00:14:39,840 ja nyt meillä on int iästä lähtien3 vastaa GetInt. 303 00:14:39,840 --> 00:14:40,610 OK. 304 00:14:40,610 --> 00:14:43,660 Niin kuka näkee ongelma? 305 00:14:43,660 --> 00:14:47,310 Mikä on ongelma tämäntyyppisiä setup? 306 00:14:47,310 --> 00:14:47,810 Joo. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Joo. 309 00:14:53,610 --> 00:14:56,360 Joten Luomme muuttuja jokaiselle opiskelijalle. 310 00:14:56,360 --> 00:15:00,140 Nyt toimii, mutta lopulta mitä jos minä nyt 311 00:15:00,140 --> 00:15:06,500 sanoa, "Haluan napata ikä kahdeksan opiskelijaa tai 16 opiskelijaa 312 00:15:06,500 --> 00:15:11,340 tai kuitenkin monet opiskelijat sadat opiskelijat CS50 313 00:15:11,340 --> 00:15:16,750 tai tuhannet opiskelijat kampuksella tai miljardit ihmiset maailmassa? 314 00:15:16,750 --> 00:15:19,130 Joten lopulta tämä ei ole kestävä. 315 00:15:19,130 --> 00:15:21,990 Aina kun näet itsesi kopioit ja liittämällä koodi näin, 316 00:15:21,990 --> 00:15:25,050 sinun pitäisi yleensä tuntevat että on olemassa parempi tapa. 317 00:15:25,050 --> 00:15:31,290 >> Joten tämä on, jos esittelemme array ilmoitus. 318 00:15:31,290 --> 00:15:34,564 Joten kun julistaa array, tämä on mitä yleinen muoto 319 00:15:34,564 --> 00:15:35,480 on menossa näyttämään. 320 00:15:35,480 --> 00:15:36,664 Aiomme sanoa tyyppi. 321 00:15:36,664 --> 00:15:38,830 ja sitten me aiomme antaa nimi että array, 322 00:15:38,830 --> 00:15:41,150 aivan kuten me määrittelemme tahansa muuttuja. 323 00:15:41,150 --> 00:15:43,980 Ja sitten lopuksi käytämme tämä kannatin merkintätapa uudelleen 324 00:15:43,980 --> 00:15:47,480 mutta poikkeavasti kuinka käytimme sitä aikaisemmin. 325 00:15:47,480 --> 00:15:51,860 >> Joten tässä tämä näyttää normaali muuttuja ilmoitus, että olemme nähneet. 326 00:15:51,860 --> 00:15:54,890 Joten olemme nähneet int x puolipisteellä ennen. 327 00:15:54,890 --> 00:16:00,020 No nyt voisimme nähdä jotain kuten int x suluissa 5. 328 00:16:00,020 --> 00:16:04,020 Ja laittoi idean GetInt ohjelma, me have-- 329 00:16:04,020 --> 00:16:08,850 jotta voimme toteuttaa Tämän samalla tavalla. 330 00:16:08,850 --> 00:16:13,630 >> Sanotaan CS meillä on tapana käyttää N koska määrä jotain. 331 00:16:13,630 --> 00:16:16,150 Joten tässä me aiomme tallentaa neljä opiskelijaa. 332 00:16:16,150 --> 00:16:25,960 Ja nyt voimme sanoa int ikä kiinnike n- ole aivan saada se yet-- 333 00:16:25,960 --> 00:16:32,210 julistaa joukko neljä opiskelijaa. 334 00:16:32,210 --> 00:16:38,050 Joten miten tämä näyttää vuonna muisti on samanlainen. 335 00:16:38,050 --> 00:16:39,570 Tyhjentää. 336 00:16:39,570 --> 00:16:46,606 Ja me aiomme olla jonnekin vuonna memory-- laitan tämän sinne. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Joten jossain muistissa. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Yksi kaksi kolme neljä. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Meillä on neljä kokonaislukuja peräkkäin Tämän johdosta neljä kokonaislukuja. 343 00:17:09,849 --> 00:17:13,820 Joten, tällä hetkellä, mikä on koko yksi näistä laatikoista? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Joo. 346 00:17:17,690 --> 00:17:18,390 Se on neljä tavua. 347 00:17:18,390 --> 00:17:19,690 Se on 32 bittiä. 348 00:17:19,690 --> 00:17:22,310 Joten nyt tämä on erilainen alkaen array että olemme 349 00:17:22,310 --> 00:17:24,020 näki aiemmin, joukko merkkejä. 350 00:17:24,020 --> 00:17:28,540 Merkkijono jokainen laatikko oli vain yksi tavu, koska merkki on vain yksi tavu. 351 00:17:28,540 --> 00:17:32,170 Mutta jossa joukko kokonaislukuja, kukin laatikko on oltava neljä tavua järjestyksessä 352 00:17:32,170 --> 00:17:34,060 sopimaan koko kokonaisluku. 353 00:17:34,060 --> 00:17:37,197 Joten tämä on mitä joukko neljä ints näyttäisi. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Ja sitten takaisin koodia. 356 00:17:43,870 --> 00:17:47,460 Nyt haluamme todella tallentaa kokonaislukuja tuohon array. 357 00:17:47,460 --> 00:17:53,470 Joten nyt tämä on hyvin, hyvin, hyvin yhteinen malli, joka tulee jossain vaiheessa 358 00:17:53,470 --> 00:17:54,680 tullut lihasmuistia. 359 00:17:54,680 --> 00:17:56,710 Joten int i on yhtä kuin 0. 360 00:17:56,710 --> 00:17:57,940 i vähemmän kuin n. 361 00:17:57,940 --> 00:18:01,850 i plus plus. 362 00:18:01,850 --> 00:18:05,790 Ikäryhmässä i on yhtä GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Joten tämä silmukka, tätä muotoa, sinun pitäisi saada kovin käytetty. 364 00:18:15,100 --> 00:18:20,010 Joten tämä on yleensä miten me kerrata yli lähes kaikki array. 365 00:18:20,010 --> 00:18:23,690 Huomaa nyt tällainen selittää alusta alkaen 366 00:18:23,690 --> 00:18:29,870 meillä ei ollut silmukoita menossa int i on 1, i on pienempi tai yhtä suuri kuin 10. 367 00:18:29,870 --> 00:18:34,200 Syynä on se, että alkaen nolla tekee tätä työtä hyvin paneelit. 368 00:18:34,200 --> 00:18:36,270 Joten paneelit ovat nolla indeksoitu. 369 00:18:36,270 --> 00:18:40,360 Jos tämä joukko on pituus 4, indeksit ovat 0 kautta 3. 370 00:18:40,360 --> 00:18:42,880 >> Joten läpi ensimmäisen iteraatio tämän silmukan 371 00:18:42,880 --> 00:18:49,930 aiomme olla asettaa ikä kiinnike 0 vastaa puhelun GetInt. 372 00:18:49,930 --> 00:18:52,440 Joten mitä satuin tultava näppäimistö. 373 00:18:52,440 --> 00:18:56,970 Toisessa pass, olemme jossa age1 yhtä GetInt. 374 00:18:56,970 --> 00:18:58,230 Kolmannen läpikulun, age2. 375 00:18:58,230 --> 00:18:59,880 Lopullinen pass iästä lähtien3. 376 00:18:59,880 --> 00:19:05,750 Joten jos ensikierron silmukan Astun numero 4 on näppäimistö, 377 00:19:05,750 --> 00:19:07,740 sitten me lisätä 4 täällä. 378 00:19:07,740 --> 00:19:11,470 Jos toisessa läpiviennissä syötän 50, me laitamme 50 täällä. 379 00:19:11,470 --> 00:19:15,180 Kolmantena pass voisin kirjoita negatiivinen 1, negatiivinen 1, 380 00:19:15,180 --> 00:19:21,810 ja sitten lopulta jos syötän 0-- ja nyt muistaa, että tämä oli indeksi kolme. 381 00:19:21,810 --> 00:19:25,350 >> Kun olemme silmukka takaisin, i on aiotaan kasvaa 4. 382 00:19:25,350 --> 00:19:27,770 i on ei enää ole pienempi kuin n, joka on 4. 383 00:19:27,770 --> 00:19:29,840 Ja murramme ulos silmukan. 384 00:19:29,840 --> 00:19:32,578 Joten mikä olisi vikaa? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Äänetön]? 387 00:19:38,729 --> 00:19:39,604 Yleisö: [äänetön] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Kyllä. 390 00:19:46,400 --> 00:19:51,550 Joten array vain on neljä paikkaa, mikä tarkoittaa indekseinä 0 kautta 3. 391 00:19:51,550 --> 00:19:55,630 Joten jos näin on, olisin ottaa arvoon 4 jossain vaiheessa. 392 00:19:55,630 --> 00:20:00,910 ikäryhmässä 4 tulee asettaa mitä sattuu olemaan täällä 393 00:20:00,910 --> 00:20:02,920 mitä minun on sanottava, kirjoita 6. 394 00:20:02,920 --> 00:20:05,010 Joka tulee olemaan Asettamalla tämän 6. 395 00:20:05,010 --> 00:20:06,560 >> Mutta emme tiedä mitä täällä. 396 00:20:06,560 --> 00:20:08,836 Tämä ei ole muisti että meillä oli pääsy. 397 00:20:08,836 --> 00:20:10,710 Joten jos muistat edellinen luento, 398 00:20:10,710 --> 00:20:14,350 hän tulostamisen arvot Zamyla ja jossain vaiheessa hän osui tämä segmentointi 399 00:20:14,350 --> 00:20:17,990 vika. Joten luultavasti näkemään monet segmentointi vikoja kun 400 00:20:17,990 --> 00:20:20,530 toteuttaa joitakin ongelma sarjaa. 401 00:20:20,530 --> 00:20:24,950 Mutta tämä on yksi niistä tavoista, joilla voit kohdata segmentointi 402 00:20:24,950 --> 00:20:28,540 vika, kun aloitat päästä muisti tavoilla että sinun ei pitäisi olla. 403 00:20:28,540 --> 00:20:34,117 Joten meillä ei ole pääsyä tämä paikka ja tämä on virhe. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Joten tämä on parempi. 406 00:20:40,190 --> 00:20:45,820 Nyt on vielä pieni ongelma tämä koodi. 407 00:20:45,820 --> 00:20:50,720 Ja se on pohjimmiltaan, että olemme edelleen jumissa neljä opiskelijaa. 408 00:20:50,720 --> 00:20:52,940 Nyt jos haluan käyttää kahdeksan opiskelijaa, OK. 409 00:20:52,940 --> 00:20:54,350 Se ei ole niin iso juttu. 410 00:20:54,350 --> 00:20:58,120 Voin mennä, muuta kommentoida, ja vaihtaa n. 411 00:20:58,120 --> 00:20:59,760 Nyt tämä toimii kahdeksan opiskelijaa. 412 00:20:59,760 --> 00:21:02,190 Jos minä kokoaa ja ajaa tämä, se näyttää me-- 413 00:21:02,190 --> 00:21:07,870 se pyytää kokonaislukuja kahdeksan opiskelijoille ja se vain toimii. 414 00:21:07,870 --> 00:21:11,850 Mutta se on vähemmän kuin ihanteellinen tarvitse kääntää ohjelma joka ikinen kerta 415 00:21:11,850 --> 00:21:15,960 Haluan muuttaa opiskelijoiden että haluan tulla ikuisuuden. 416 00:21:15,960 --> 00:21:22,990 >> Joten lopullinen parannus Tämän, kuten tulemme näkemään here-- olemme 417 00:21:22,990 --> 00:21:26,177 menossa pyytää joukko ihmisiä. 418 00:21:26,177 --> 00:21:28,010 Täällä meillä on useita ihmisiä huoneissa 419 00:21:28,010 --> 00:21:29,880 tai vuotiaita henkilöä huoneessa. 420 00:21:29,880 --> 00:21:33,300 Mutta aiomme pyytää numero ihmiset huoneessa käyttäjältä. 421 00:21:33,300 --> 00:21:36,171 Joten tämä on täsmälleen sama tee-aikaa silmukka että olemme nähneet aiemmin. 422 00:21:36,171 --> 00:21:37,920 Se on täsmälleen sama do-while-silmukka, että olet 423 00:21:37,920 --> 00:21:40,050 voidaan toteuttamasta Harjoitus. 424 00:21:40,050 --> 00:21:43,102 Niin kauan kuin ne ovat kirjoittamalla n alle 1, 425 00:21:43,102 --> 00:21:45,310 joten siellä täytyy olla osoitteessa ainakin yksi henkilö huoneessa. 426 00:21:45,310 --> 00:21:47,407 Niin kauan kuin he ovat kirjoittamalla n alle 1, 427 00:21:47,407 --> 00:21:48,990 sitten me aiomme pitää kysyä uudelleen. 428 00:21:48,990 --> 00:21:50,906 Anna numero ihmisiä huoneeseen. 429 00:21:50,906 --> 00:21:53,550 Nyt, kun meillä on numero ihmisiä room-- 430 00:21:53,550 --> 00:21:58,020 joten voisin tulla, että 200 ihmistä tässä huoneessa. 431 00:21:58,020 --> 00:22:05,480 Sitten täällä aiomme tulla ja julistaa taulukon koko 200. 432 00:22:05,480 --> 00:22:10,220 Olemme julistaa array, joka on mahduttava 200 ikäisille. 433 00:22:10,220 --> 00:22:15,370 Tulossa alas, se on silmukka että saat hyvin käytetään. 434 00:22:15,370 --> 00:22:19,490 Joten iteroimalla yli tämän taulukon, jossa kullekin sijainti 435 00:22:19,490 --> 00:22:23,020 että joukko kokonaisluku, ja sitten lopulta täällä olemme 436 00:22:23,020 --> 00:22:28,340 juuri esimerkki iteroimalla yli että array, ei määrittää arvot, 437 00:22:28,340 --> 00:22:30,150 mutta käyttää arvoja. 438 00:22:30,150 --> 00:22:33,810 >> Joten tänne näemme, että me sanovat, vuoden päästä, 439 00:22:33,810 --> 00:22:40,470 henkilö% i on% i vuotias, jossa ensimmäinen% i on i + 1. 440 00:22:40,470 --> 00:22:43,010 Joten i on tämä indeksi muuttuja. 441 00:22:43,010 --> 00:22:49,420 Ja toinen% i tulee olemaan tallennettu arvo aikojen array plus 1. 442 00:22:49,420 --> 00:22:54,217 Joten tämä plus 1 on vain koska olemme saying-- tämä plus 1, iät i plus 1. 443 00:22:54,217 --> 00:22:57,050 Tämä plus 1 on vain koska olemme sanomalla, vuoden päästä henkilö 444 00:22:57,050 --> 00:22:58,280 on tämä vanha. 445 00:22:58,280 --> 00:23:01,080 >> Miksi tämä i + 1? 446 00:23:01,080 --> 00:23:04,064 Miksi meillä on plus 1 siellä? 447 00:23:04,064 --> 00:23:04,564 Joo. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Kyllä. 450 00:23:07,930 --> 00:23:10,510 Joten muistakaa taulukot ovat nolla indeksoitu. 451 00:23:10,510 --> 00:23:14,840 Jos siis tulostat tämän ulos joku vain lukea tuotos, 452 00:23:14,840 --> 00:23:19,380 niin luultavasti he haluavat nähdä jotain kuten henkilö yksi, henkilö numero yksi, 453 00:23:19,380 --> 00:23:21,160 on 20 vuotias. 454 00:23:21,160 --> 00:23:23,570 Henkilö numero kaksi on 15-vuotias. 455 00:23:23,570 --> 00:23:27,420 He halua nähdä henkilö numero nolla on 15 vuotta vanha. 456 00:23:27,420 --> 00:23:36,460 >> Joten laadinnassa ja vain nähdä, mitä se näyttää like-- Luo tilaa. 457 00:23:36,460 --> 00:23:43,560 Tee ikäisille kokoaa. 458 00:23:43,560 --> 00:23:45,080 Running ikäisille. 459 00:23:45,080 --> 00:23:46,580 Näemme ihmisten määrä huoneeseen. 460 00:23:46,580 --> 00:23:48,850 Niin minä sanon on kolme henkilöä huoneessa. 461 00:23:48,850 --> 00:23:54,000 Age of henkilö numero yksi, sanokaamme 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 Ja nyt minä sanon vuosi nyt ne ovat 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Katsotaanpa että tämä toimii n, joka ei ole yhtä suuri kuin 3. 464 00:24:02,900 --> 00:24:07,940 Joten jos sanon määrä ihmisiä on 5, yksi, kaksi, kolme, kaksi, yksi, vuoden päästä 465 00:24:07,940 --> 00:24:11,170 he ovat kaksi, kolme, neljä, kolme, kaksi vuotta vanha. 466 00:24:11,170 --> 00:24:16,500 Niin voisin yhtä helposti voinut n olla 10000. 467 00:24:16,500 --> 00:24:21,270 Nyt aion istua täällä melko syöttäessäsi ikäisiä, mutta tämä toimii. 468 00:24:21,270 --> 00:24:26,000 >> Joten nyt muistiin jonnekin me on taulukon koko 10000, 469 00:24:26,000 --> 00:24:28,830 niin lopulta 40000 tavua, koska on 470 00:24:28,830 --> 00:24:31,222 neljä tavua kullekin näistä kokonaislukuja. 471 00:24:31,222 --> 00:24:33,180 Joten ei joukko koko 10000 missä voimme 472 00:24:33,180 --> 00:24:36,201 tallentaa iät näiden 10000 ihmistä. 473 00:24:36,201 --> 00:24:36,700 Selvä. 474 00:24:36,700 --> 00:24:40,070 Kysyttävää tästä? 475 00:24:40,070 --> 00:24:41,892 Joo. 476 00:24:41,892 --> 00:24:43,350 Mitä jos annoit negatiivisen luvun? 477 00:24:43,350 --> 00:24:44,870 Katsotaan mitä tapahtuu. 478 00:24:44,870 --> 00:24:49,320 Joten tässä nimenomaisessa case-- numero ihmiset huoneessa, negatiivinen. 479 00:24:49,320 --> 00:24:52,580 Se hylkäsi tämän, koska täällä meillä tapahtua 480 00:24:52,580 --> 00:24:57,180 voidaan käsittely sitä, että jos n on alle aiomme kysyä uudelleen. 481 00:24:57,180 --> 00:25:01,780 Jos yrität julistaa joukko negatiivinen koko, 482 00:25:01,780 --> 00:25:03,950 se yleensä ei toimi. 483 00:25:03,950 --> 00:25:05,570 >> Joten kokeilla. 484 00:25:05,570 --> 00:25:08,000 Katsotaanpa sivuuttaa riippumatta arvo he tulo n 485 00:25:08,000 --> 00:25:10,571 ja vain sanoa int ikäisille kielteinen. 486 00:25:10,571 --> 00:25:12,410 Katsotaanpa, jos se edes kokoaa. 487 00:25:12,410 --> 00:25:14,100 Minä en ole varma. 488 00:25:14,100 --> 00:25:14,920 Ei. 489 00:25:14,920 --> 00:25:18,280 Joten ikäisille on ilmoitettu array negatiivinen koko. 490 00:25:18,280 --> 00:25:22,540 Joten etukäteen se tunnistaa array voi olla negatiivinen koko ja hylkää sen. 491 00:25:22,540 --> 00:25:26,840 Nyt, jos emme käsittele tämä do-while-silmukka oikein, 492 00:25:26,840 --> 00:25:28,810 jos emme tarkkailun jos n on pienempi kuin 1-- 493 00:25:28,810 --> 00:25:32,690 Sanotaan vain ei ollut tätä ollenkaan 494 00:25:32,690 --> 00:25:35,940 ja sen sijaan me vain napata kokonaisluku. 495 00:25:35,940 --> 00:25:40,710 Ei ole väliä mitä se kokonaisluku on, me julistamme joukko, joka koko. 496 00:25:40,710 --> 00:25:44,250 >> Joten kääntäjä ei voi mahdollisesti valittavat nyt. 497 00:25:44,250 --> 00:25:48,780 Jos minä koota this-- joten se ei voi valittaa, 498 00:25:48,780 --> 00:25:51,480 koska se ei voi tietää, että olen menossa syöttää negatiivisen luvun, 499 00:25:51,480 --> 00:25:52,550 joka saattaa olla virheellinen. 500 00:25:52,550 --> 00:25:54,633 Kaikkien se tietää, voisin Syötä positiivinen luku, 501 00:25:54,633 --> 00:25:56,000 joka on täysin pätevä. 502 00:25:56,000 --> 00:26:01,090 Joten Kuvittelen jos syötän negatiivinen 1 henkilöä huoneessa, segmentointi vika. 503 00:26:01,090 --> 00:26:06,040 >> Niin ok. 504 00:26:06,040 --> 00:26:13,160 Joten lisätä tämän takaisin vain pitää sen mitä se alun perin oli. 505 00:26:13,160 --> 00:26:15,640 Joten ikäisille. 506 00:26:15,640 --> 00:26:18,120 Nyt jos haluan kokeilla negatiivinen age-- joten katsotaanpa 507 00:26:18,120 --> 00:26:19,710 sanoa on viisi henkilöä huoneessa. 508 00:26:19,710 --> 00:26:23,180 Age of henkilön ykkönen on negatiivinen 4, henkilö kolme 509 00:26:23,180 --> 00:26:26,500 on nolla, henkilö three-- OK. 510 00:26:26,500 --> 00:26:29,850 Joten tässä, vuoden päästä, henkilön numero yksi tulee olemaan negatiivinen 3 vuotta vanha. 511 00:26:29,850 --> 00:26:32,830 Joten luultavasti ei ole mitään järkeä. 512 00:26:32,830 --> 00:26:37,220 Mutta se on vain siksi näköinen klo koodi kaikki teemme 513 00:26:37,220 --> 00:26:40,260 pyytää GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Nyt, jos meillä olisi ollut GetPositiveInt toiminto 515 00:26:44,110 --> 00:26:49,690 tai olimme vain yksinkertaisesti tehnyt tämän tavallaan sama kun silmukka siellä, 516 00:26:49,690 --> 00:26:52,340 sitten tämä toimisi täysin hieno. 517 00:26:52,340 --> 00:26:54,200 Mutta tässä nimenomaisessa tapauksessa, emme vain 518 00:26:54,200 --> 00:26:57,772 sattuvat olemaan käsittelyyn negatiivisia arvoja. 519 00:26:57,772 --> 00:26:59,147 Muita kysymyksiä paneelit? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 OK. 522 00:27:03,250 --> 00:27:09,380 >> Joten olemme nyt nähneet taulukot. 523 00:27:09,380 --> 00:27:12,500 Ja aiomme tarvitse käyttää tämä komentorivin argumentteja. 524 00:27:12,500 --> 00:27:14,680 Joten ongelma asettaa two-- Tiedän, että monet teistä 525 00:27:14,680 --> 00:27:18,040 saattavat vielä työstää Harjoitus yksi, mutta ongelma asettaa kaksi on tulossa. 526 00:27:18,040 --> 00:27:22,260 Vuonna ongelma asettaa kaksi, olet menossa täytyy olla tekemisissä jouset, taulukot, 527 00:27:22,260 --> 00:27:23,950 ja komentorivin argumentteja. 528 00:27:23,950 --> 00:27:26,270 >> Mitkä ovat komentoriviargumentteja? 529 00:27:26,270 --> 00:27:29,570 Nyt voit nähdä täällä pieni teaser mitä on 530 00:27:29,570 --> 00:27:30,950 aiotaan tapahtumassa. 531 00:27:30,950 --> 00:27:32,950 Näemme int main, inc argc, merkkijono argv suluissa. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Joten ensimmäinen yritetään tulkita mitä se yrittää sanoa. 534 00:27:38,130 --> 00:27:40,800 Nyt, OK. 535 00:27:40,800 --> 00:27:44,637 >> Joten komentoriviltä sinun pitäisi olla tottua joitakin näistä komennoista 536 00:27:44,637 --> 00:27:48,580 nyt, ja olet luultavasti ajaa cd terminaali ennen. 537 00:27:48,580 --> 00:27:52,100 Joten jos sanomme CD pset1, tiedät, että se olisi 538 00:27:52,100 --> 00:27:55,050 olla muuttumassa pset1 hakemistoon. 539 00:27:55,050 --> 00:27:59,120 >> Nyt huomaan, että olet koskaan kirjallinen ohjelma tällaista. 540 00:27:59,120 --> 00:28:03,120 Jokainen ohjelma, joka olet kirjoittanut, voisitte ajaa vaikkapa piste slash Mario, 541 00:28:03,120 --> 00:28:06,779 piste slash ahne, ja sitten se voi kehottaa panos. 542 00:28:06,779 --> 00:28:08,570 Nyt, se ei ole mitä vaihda hakemistoa ei. 543 00:28:08,570 --> 00:28:12,770 Kun suoritat cd, se ei sitten sanoa, mihin hakemistoon haluat CD? 544 00:28:12,770 --> 00:28:17,200 Sen sijaan, sanoit, CD pset1, ja se vain menee pset1 hakemistoon. 545 00:28:17,200 --> 00:28:20,430 >> Joten samalla meillä on muita esimerkkejä. 546 00:28:20,430 --> 00:28:21,540 tehdä hei. 547 00:28:21,540 --> 00:28:25,760 Kun käytät tehdä, se ei sitten sanoa, mikä ohjelma haluaisit tehdä? 548 00:28:25,760 --> 00:28:29,620 Sanoit, kello komentoriviltä tehdä hei. 549 00:28:29,620 --> 00:28:31,060 >> Move on toinen esimerkki. 550 00:28:31,060 --> 00:28:34,840 Tämä yksi siirrymme mario.c tiedosto yhden hakemistoon. 551 00:28:34,840 --> 00:28:38,060 Joten nyt me tiedämme tämän esimerkin Olemme todella kulkee kaksi argumenttia. 552 00:28:38,060 --> 00:28:42,090 On mario.c ensimmäisenä argumenttina, ja piste piste on toinen argumentti. 553 00:28:42,090 --> 00:28:46,140 Ja sitten kun juokset tehdä, voit nähdä, että todella pitkä komento line-- 554 00:28:46,140 --> 00:28:50,580 että todella pitkä komento painettu komentoriviltä. 555 00:28:50,580 --> 00:28:53,590 Jotta pitkän command-- tämä on vain lyhyt osa sitä, 556 00:28:53,590 --> 00:28:56,090 mutta nyt meillä on kolme komentorivin argumentteja. 557 00:28:56,090 --> 00:28:59,750 Piste viiva nolla, hei, ja hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Nämä ovat siis komentorivin perustelut, väitteet 559 00:29:03,497 --> 00:29:05,580 että olet kulkevat komentoriviltä niin että se 560 00:29:05,580 --> 00:29:08,680 ei tarvitse pyydetään kun käynnistät ohjelman. 561 00:29:08,680 --> 00:29:13,090 Olisi turhauttavaa, jos kun olet juoksi kalahtaa se sanoi, "OK, 562 00:29:13,090 --> 00:29:15,630 joka program-- joka tiedosto sinä kokoamiseen? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Mitä liput voisitko haluavat tulla? viiva o. 565 00:29:19,440 --> 00:29:21,190 Mitä haluaisit tiedosto kutsua? 566 00:29:21,190 --> 00:29:21,690 Hei. 567 00:29:21,690 --> 00:29:25,290 Ei, te vain ajaa kalahtaa dash o hei hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Joten taaksensa tätä. 569 00:29:28,820 --> 00:29:32,920 Nyt argc-- argc on argumentti laskee. 570 00:29:32,920 --> 00:29:36,620 Se on määrä komentorivin perustelut kirjataan komentoriviltä. 571 00:29:36,620 --> 00:29:39,720 No, argv-- teknisesti v tarkoittaa vektori, 572 00:29:39,720 --> 00:29:41,460 mikä tarkoittaa periaatteessa sitä array. 573 00:29:41,460 --> 00:29:42,680 Mutta voit jättää sen. 574 00:29:42,680 --> 00:29:47,540 Argv-- meillä merkkijono argv, joten merkkijono argv suluissa. 575 00:29:47,540 --> 00:29:50,150 Joten tämä on toinen muoto kiinnikkeet et ole ennen nähnyt. 576 00:29:50,150 --> 00:29:52,300 Joten olemme nähneet kiinnike merkintätapa kun olemme sanoneet, 577 00:29:52,300 --> 00:29:53,970 kuten, string s vastaa Zamyla. 578 00:29:53,970 --> 00:29:56,910 s kiinnike 0 sisäänkäyntien merkki Z. 579 00:29:56,910 --> 00:30:00,720 >> Olemme myös nähneet suluissa kun sanoimme int ikäisille kannatin 5. 580 00:30:00,720 --> 00:30:03,160 Että ilmoitettu taulukon koko 5. 581 00:30:03,160 --> 00:30:06,280 Joten tässä versio Suluissa emme ole ennen nähneet. 582 00:30:06,280 --> 00:30:09,630 Joten tällainen merkkijono argv että olisi täysin tunnettava 583 00:30:09,630 --> 00:30:12,050 että se olisi vain merkkijono. 584 00:30:12,050 --> 00:30:14,520 Nyt Suluissa että tämä on jono. 585 00:30:14,520 --> 00:30:19,920 Joten merkkijono argv suluissa välineet että argv on joukko jouset. 586 00:30:19,920 --> 00:30:22,540 Nyt teknisesti merkkijono on joukko merkkejä. 587 00:30:22,540 --> 00:30:26,400 Joten tämä on nyt joukko array merkkejä. 588 00:30:26,400 --> 00:30:31,490 Mutta se on paljon helpompaa ajatella tämä vain joukko jouset. 589 00:30:31,490 --> 00:30:34,900 >> Joten miksi voisi suluissa olla tyhjä? 590 00:30:34,900 --> 00:30:38,170 Kuten, miksi emme voi sanoa, kannatin 5, kannatin n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Joo. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Joo. 595 00:30:44,230 --> 00:30:46,396 Emme tiedä, kuinka monta tulot siellä tulevat olemaan. 596 00:30:46,396 --> 00:30:53,560 Joten jos katsomme kalahtaa esimerkiksi sanomme kalahtaa viiva o hei hello.c. 597 00:30:53,560 --> 00:30:56,710 Tässä nimenomaisessa tapauksessa, siellä tapahtuu olla kolme komentorivin argumentteja. 598 00:30:56,710 --> 00:31:00,522 Ja niin brackets-- näemme toisessa se ei olisi kolme. 599 00:31:00,522 --> 00:31:01,730 Teknisesti olisi neljä. 600 00:31:01,730 --> 00:31:04,030 Mutta suluissa, olisimme sanoa, on kolme. 601 00:31:04,030 --> 00:31:08,220 Mutta nyt jos me katsoimme liikkua mario.c piste piste, suluissa 602 00:31:08,220 --> 00:31:09,760 haluaisimme laittaa kaksi niihin. 603 00:31:09,760 --> 00:31:12,884 >> Ja siellä on paljon komentoja, on vaihteleva määrä komentorivin 604 00:31:12,884 --> 00:31:13,620 perustelut. 605 00:31:13,620 --> 00:31:17,430 Joten mitä tämä versio kiinnike merkintätapa osoittaa 606 00:31:17,430 --> 00:31:20,820 että argv on joukko jouset. 607 00:31:20,820 --> 00:31:24,360 Mutta emme tiedä kuinka monta jouset ovat, että jono. 608 00:31:24,360 --> 00:31:27,090 Ja miten me sitten tiedämme, miten monet jouset ovat array? 609 00:31:27,090 --> 00:31:28,870 Se on koko pisteen argc. 610 00:31:28,870 --> 00:31:32,300 argc kertoo kuinka kauan argv on. 611 00:31:32,300 --> 00:31:36,500 >> Niin viimeinen asia pitää mieli on, että teknisesti, 612 00:31:36,500 --> 00:31:40,820 komento itse lasketaan yhdeksi ja komentorivin argumentteja. 613 00:31:40,820 --> 00:31:45,330 Niin cd pset1, on kaksi komentorivin argumentteja. 614 00:31:45,330 --> 00:31:50,260 Ohjelma itsessään, cd, ja sitten todellinen argumentti osa sitä, pset1. 615 00:31:50,260 --> 00:31:54,490 Jokainen ohjelma, joka olet kirjoittanut tähän mennessä on ollut yksi komentorivin argument-- piste 616 00:31:54,490 --> 00:31:55,320 slash Mario. 617 00:31:55,320 --> 00:31:57,350 Se on ainoa komentorivin argumentti. 618 00:31:57,350 --> 00:32:00,900 >> Joten nyt katsot kalahtaa dash o hei hello.c. 619 00:32:00,900 --> 00:32:01,905 Joten mikä on argc? 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 Joten argc on 4. 623 00:32:08,140 --> 00:32:12,140 Kalahtaa, joten argv kannatin 0 on kalahtaa. 624 00:32:12,140 --> 00:32:15,630 argv kannatin 1 on viiva 0. 625 00:32:15,630 --> 00:32:21,870 argv kannatin 2 on hei, ja argv kannatin 3 on hello.c. 626 00:32:21,870 --> 00:32:26,813 OK, joten kysymyksiä tästä, ja sitten me tarkastelemme joitakin ohjelmallinen esimerkkejä. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> OK. 629 00:32:30,480 --> 00:32:36,260 Niin me katsomaan hello3.c. 630 00:32:36,260 --> 00:32:41,890 Joten tämän pitäisi olla tuttu yksi ensimmäisistä C esimerkit 631 00:32:41,890 --> 00:32:45,800 meillä oli missä me vain sanoa, hei maailman, mutta nyt tämä on yleisempi. 632 00:32:45,800 --> 00:32:52,300 Joten tässä me sanomme hei % S kenoviiva n argv kiinnike 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- niin asti tässä vaiheessa, tämä on mitä minun malli tiedosto on näytti. 634 00:32:57,440 --> 00:33:01,800 Minulla oli int main (void), ja sitten olisin tehdä jotain päätehtävä. 635 00:33:01,800 --> 00:33:05,100 Nyt sen sijaan, kun alamme käsitellä kanssa komentorivin argumentteja, 636 00:33:05,100 --> 00:33:07,890 meidän täytyy todeta eri muodossa tärkeimmät. 637 00:33:07,890 --> 00:33:11,930 >> Joten etsit hello3 uudelleen, tärkein on menossa 638 00:33:11,930 --> 00:33:15,990 ottaa kaksi argumenttia now-- int argc, määrä komentorivin argumentteja, 639 00:33:15,990 --> 00:33:20,970 ja string argv suluissa, todellinen jouset tuli komentoriviltä. 640 00:33:20,970 --> 00:33:26,560 Joten aion muuttaa että malli heijastaa tätä seikkaa. 641 00:33:26,560 --> 00:33:29,060 Nyt kun kirjoittaa ohjelma, jos et 642 00:33:29,060 --> 00:33:33,720 tarvitse tehdä mitään komentorivin perustelut, sitten vain käyttää int main (void). 643 00:33:33,720 --> 00:33:37,070 Mutta nyt kun olet kirjoittamassa komentoriviargumenttina ohjelmia, jotka 644 00:33:37,070 --> 00:33:40,350 aiot tehdä ongelmien asettaa two-- niin nyt, että käytät 645 00:33:40,350 --> 00:33:42,630 ohjelmia, jotka on otettava komentorivin argumentteja, 646 00:33:42,630 --> 00:33:45,250 sinun täytyy olla tärkein tämän lomakkeen. 647 00:33:45,250 --> 00:33:51,290 >> Joten here-- tämä on iso käyttö ja komentorivin argumentti. 648 00:33:51,290 --> 00:33:54,100 Joten tulostus argv 1. 649 00:33:54,100 --> 00:33:59,180 OK joten katsotaanpa kääntää ja suorittaa tämän ohjelman. 650 00:33:59,180 --> 00:34:02,440 Tee hello3. 651 00:34:02,440 --> 00:34:03,570 Kokoaa. 652 00:34:03,570 --> 00:34:06,870 Piste slash hello3. 653 00:34:06,870 --> 00:34:08,920 Ja sanotaanko, "Rob." 654 00:34:08,920 --> 00:34:10,760 Hei Rob. 655 00:34:10,760 --> 00:34:14,940 Jos sanon, "Hei Maria," Hei Maria. 656 00:34:14,940 --> 00:34:15,719 Hei Maria. 657 00:34:15,719 --> 00:34:18,639 Hannah vielä sanoo, "hei Maria, "koska en ole 658 00:34:18,639 --> 00:34:21,340 tehdä mitään meidän argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 nyt olisi "Hannah." 660 00:34:22,590 --> 00:34:25,030 Argc olisi 3. 661 00:34:25,030 --> 00:34:27,735 Mitä jos tein tämän? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Joten hei null. 664 00:34:34,679 --> 00:34:38,760 >> Hän sivuttu siihen että teknisesti, GetString 665 00:34:38,760 --> 00:34:42,429 voi palata null, mutta saamme paljon enemmän, mitä null todellisuudessa on. 666 00:34:42,429 --> 00:34:47,449 Mutta ota se asia Se, että ei yleensä huono. 667 00:34:47,449 --> 00:34:50,179 Teimme jotain väärin, jos se on tulostus "hei null." 668 00:34:50,179 --> 00:34:52,179 Ja syy teimme jotain vikaa is-- hyvin, 669 00:34:52,179 --> 00:34:56,179 kun juoksin piste slash hello3, argc oli 1. 670 00:34:56,179 --> 00:34:59,680 Niin se tarkoittaa, pituus argv oli 1. 671 00:34:59,680 --> 00:35:05,110 Jos joukko on pituus 1, voimassa vain indeksi on nolla. 672 00:35:05,110 --> 00:35:08,550 Ja joten tässä argv 1 ulkopuolella välillä tämän array. 673 00:35:08,550 --> 00:35:13,410 Se oli samanlainen kuin ennen kun yritin tallentaa 6 ulkopuolella taulukon loppuun. 674 00:35:13,410 --> 00:35:18,100 Joten olen yrittänyt käyttää jotain ulkopuolella argv laskee, 675 00:35:18,100 --> 00:35:21,340 ja olemme pääsemässä null. 676 00:35:21,340 --> 00:35:24,360 >> Joten parempi versio tämä, parannus, 677 00:35:24,360 --> 00:35:27,010 nimenomaisesti tarkkailun argc. 678 00:35:27,010 --> 00:35:33,580 Joten jos argc on 2, se tarkoittaa, että me juoksimme jotain piste slash hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 Ja se tulostaa "hei Rob." 680 00:35:36,840 --> 00:35:39,850 Jos argc ei vastaa 2, niin se on juuri menossa 681 00:35:39,850 --> 00:35:42,560 sivuuttaa mitä laitat klo komentoriviargumenttina 682 00:35:42,560 --> 00:35:43,960 kuten komentorivin argumentteja. 683 00:35:43,960 --> 00:35:47,168 Tai jos et laita mitään ollenkaan, se on juuri menossa sivuuttaa että ja vain sanoa, 684 00:35:47,168 --> 00:35:47,960 "Hei sinä." 685 00:35:47,960 --> 00:35:51,490 >> Joten laadinnassa. 686 00:35:51,490 --> 00:35:54,500 Tee hello4. 687 00:35:54,500 --> 00:35:56,790 Ja käynnissä hello4. 688 00:35:56,790 --> 00:36:00,010 Running sitä tällä tavalla, mitä pitäisi tulostaa? 689 00:36:00,010 --> 00:36:01,330 "Hei sinä." 690 00:36:01,330 --> 00:36:02,810 Hei sinä. 691 00:36:02,810 --> 00:36:05,870 Entä hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Hei Rob." 693 00:36:06,950 --> 00:36:10,580 Ja lopuksi, hei Rob Maria on vain "Hello you" uudelleen, 694 00:36:10,580 --> 00:36:13,677 koska et todellakaan anna jotain, että se odotti. 695 00:36:13,677 --> 00:36:15,510 Annoit enemmän nimiä kuin se voisi käsitellä, 696 00:36:15,510 --> 00:36:19,500 niin se vain oletusarvo hello you käyttäytymistä. 697 00:36:19,500 --> 00:36:23,040 Joten kysymyksiä tästä? 698 00:36:23,040 --> 00:36:26,290 Tai komentorivin argumentteja? 699 00:36:26,290 --> 00:36:28,690 >> OK, joten vilkaisemalla pari esimerkkiä käyttämällä 700 00:36:28,690 --> 00:36:34,230 komentorivin arguments-- ensin olemme argv viiva 1 piste C. 701 00:36:34,230 --> 00:36:38,510 Joten kommentit lahjoittaa mitä Ohjelman pitäisi tehdä. 702 00:36:38,510 --> 00:36:42,460 Mutta huomaa now-- tätä silmukka, tämä vastaa tarkka malli 703 00:36:42,460 --> 00:36:43,390 Sanoin ennen. 704 00:36:43,390 --> 00:36:46,240 Olemme vain sattuvat olemaan käyttäen argc sijasta n. 705 00:36:46,240 --> 00:36:48,880 Nyt argc on todella n. 706 00:36:48,880 --> 00:36:51,260 Se on pituus argv jono. 707 00:36:51,260 --> 00:36:59,600 Joten on iteroimalla yli argv array printf-ing kukin argv arvo. 708 00:36:59,600 --> 00:37:04,730 >> Joten jos teen tämän. 709 00:37:04,730 --> 00:37:08,232 Tee argv 1. 710 00:37:08,232 --> 00:37:09,940 Se kokoaa. 711 00:37:09,940 --> 00:37:11,620 Dot slash argv 1. 712 00:37:11,620 --> 00:37:15,530 Juuri käynnissä tätä, se tulosteita piste slash argv 1 713 00:37:15,530 --> 00:37:18,500 koska se oli ainoa komentorivin argument-- ohjelman nimi. 714 00:37:18,500 --> 00:37:22,080 Aina tulee olemaan least-- argc ei voi olla pienempi kuin yksi, 715 00:37:22,080 --> 00:37:25,910 koska siellä on aina vähintään olla ohjelman nimi juosta. 716 00:37:25,910 --> 00:37:32,040 Joten argv 1 Rob tulostaa argv 1 ja sitten uusi rivi "Rob." 717 00:37:32,040 --> 00:37:36,350 >> Joten ensimmäistä iterointia Tämän silmukan, i on 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 on ohjelman nimi. 719 00:37:39,090 --> 00:37:40,010 Dot slash argv 1. 720 00:37:40,010 --> 00:37:43,770 Ja sitten argv 1 on ensimmäinen komentoriviargumenttina, joka on Rob. 721 00:37:43,770 --> 00:37:45,920 Tässä vaiheessa olemme yhtä argc. 722 00:37:45,920 --> 00:37:48,210 Murramme ulos silmukan ja olemme tehneet. 723 00:37:48,210 --> 00:37:53,940 Joten tämä toimii mielivaltaisesti määrä komentorivin argumentteja. 724 00:37:53,940 --> 00:37:58,550 Huomaa, se tulostaa argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Eikä ole argv 5. 726 00:38:00,150 --> 00:38:01,460 argc on yhtä kuin 5. 727 00:38:01,460 --> 00:38:06,960 Joten argc-- klo i on yhtä kuin 5, murramme ulos silmukan. 728 00:38:06,960 --> 00:38:07,950 OK. 729 00:38:07,950 --> 00:38:11,315 Niin kysymyksiä, että ennen kuin tarkastellaan monimutkaisempi esimerkki? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Niin argv 2. 732 00:38:16,860 --> 00:38:17,830 Selvä. 733 00:38:17,830 --> 00:38:20,610 Joten olemme yhä tulostus komentorivin argumentteja. 734 00:38:20,610 --> 00:38:23,170 Mutta nyt huomaa meillä sisäkkäisiä silmukka. 735 00:38:23,170 --> 00:38:24,670 Joten mitä tämä tekee? 736 00:38:24,670 --> 00:38:28,430 Joten ensimmäinen silmukka tekee mitä se teki ennen. 737 00:38:28,430 --> 00:38:30,950 Olemme edelleen silmukoiden yli kukin komentoriviargumenttina, 738 00:38:30,950 --> 00:38:34,260 mutta nyt tämä toinen loop-- olemme myös nähnyt jotain tällaista ennen. 739 00:38:34,260 --> 00:38:38,600 Kun hän oli iteroimalla yli Zamyla tulostamalla Z--M-Y-L-. 740 00:38:38,600 --> 00:38:44,816 Joten tämä toinen lenkki int j vastaa 0, n on strlen on argv kiinnike i. 741 00:38:44,816 --> 00:38:49,170 >> Joten ensimmäinen ajatella the-- nyt kulkea. 742 00:38:49,170 --> 00:38:53,560 Ajatellaanpa mitä tietokone olisi tehdä, jos Juoksin tätä ohjelmaa vain piste 743 00:38:53,560 --> 00:38:56,030 slash argv Dash 2. 744 00:38:56,030 --> 00:39:03,590 Joten jos juoksin tämä koodi, sitten argc tulee olemaan yhtä suuri kuin 1. 745 00:39:03,590 --> 00:39:07,050 Ja string argv-- on vain tulee olemaan yksi indeksi argv, 746 00:39:07,050 --> 00:39:12,370 ja että tulee olemaan yhtä suuri piste slash argv 2-- ohjelman nimi. 747 00:39:12,370 --> 00:39:19,170 >> OK, joten nyt on 0, i alle 1, i ja plus int j on 0, 748 00:39:19,170 --> 00:39:23,880 n on strlen of argv kiinnike 0, joten ensimmäistä iterointia tämän silmukan. argv 749 00:39:23,880 --> 00:39:27,250 kiinnike 0 on piste slash argv 2. 750 00:39:27,250 --> 00:39:29,320 Joten mikä on pituus merkkijonon? 751 00:39:29,320 --> 00:39:32,480 No, piste slash-R-G-V Dash 2. 752 00:39:32,480 --> 00:39:35,020 Niin strlen ja joka on 8. 753 00:39:35,020 --> 00:39:37,500 Joten j on 0, n on 8. 754 00:39:37,500 --> 00:39:39,530 Niin kauan kuin j on pienempi kuin 8, j ++. 755 00:39:39,530 --> 00:39:44,080 Ja että me aiomme olla tulostus yhden merkin, joka 756 00:39:44,080 --> 00:39:47,350 on argv kiinnike i kannatin j. 757 00:39:47,350 --> 00:39:49,826 >> Joten ainoa i on nolla. 758 00:39:49,826 --> 00:39:51,700 Meillä on vielä vain yksi komentorivin argumentti. 759 00:39:51,700 --> 00:39:53,890 Että ensimmäinen iterointi ja silmukan, olemme 760 00:39:53,890 --> 00:39:56,950 olemaan tulostus argv kannatin 0 kannatin 0. 761 00:39:56,950 --> 00:39:58,325 Ja sitten j tulee kasvattaa. 762 00:39:58,325 --> 00:40:01,650 Ja aiomme tulostus argv kannatin 0 kannatin 1. 763 00:40:01,650 --> 00:40:04,150 Ja sitten argv kannatin 0 kannatin 2. 764 00:40:04,150 --> 00:40:09,030 >> Joten tämä on meidän ensimmäinen kohtaaminen moniulotteinen taulukot. 765 00:40:09,030 --> 00:40:12,770 Muista aiemmin, että sanoin että argv on teknisesti 766 00:40:12,770 --> 00:40:15,950 joukko paneelit merkkiä. 767 00:40:15,950 --> 00:40:24,360 Joten tässä, jos sanoisin jotain merkkijono s vastaa argv kiinnike i, 768 00:40:24,360 --> 00:40:29,590 ja sitten sanoin, s kiinnike j, tämä olisi toteutuksessa sama asia. 769 00:40:29,590 --> 00:40:31,960 Nyt, olet nähnyt s kiinnike j ennen. 770 00:40:31,960 --> 00:40:36,680 Se on vain pääsy j: nnen luonne tämän merkkijono. 771 00:40:36,680 --> 00:40:48,010 Niinpä tämän, saamme j: nnen luonne i: nnen argv. 772 00:40:48,010 --> 00:40:51,450 >> Joten mitä pitäisi tämä lopulta lähtö? 773 00:40:51,450 --> 00:40:53,210 Tee argv 2. 774 00:40:53,210 --> 00:40:54,730 Se kokoaa. 775 00:40:54,730 --> 00:40:56,340 Piste slash argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob Maria Hannah," ja antaa meille jonkin verran. 777 00:41:03,790 --> 00:41:07,050 Näemme siis, että tämä on ulos piste on omalla rivillään ja slash 778 00:41:07,050 --> 00:41:08,920 on omalla rivillään ja omalla rivillään. 779 00:41:08,920 --> 00:41:11,260 Se tulostamalla jokaisen yksilöllisyyttä 780 00:41:11,260 --> 00:41:12,950 Kunkin komentorivin argumentti. 781 00:41:12,950 --> 00:41:15,960 Ja sitten niiden väliin, koska tämän uuden linjan 782 00:41:15,960 --> 00:41:19,380 me tulostus täällä, vuonna välillä se tulee tulostaa uusi rivi. 783 00:41:19,380 --> 00:41:24,540 >> Joten tämä on samanlainen Ennen argv viiva 1, 784 00:41:24,540 --> 00:41:26,459 joka tulostetaan kukin komentoriviargumenttina, 785 00:41:26,459 --> 00:41:28,500 mutta nyt olemme tulostus komentorivin argumentteja 786 00:41:28,500 --> 00:41:31,950 ja sitten iteroimalla läpi jokaisen että kukin komentoriviargumenttina 787 00:41:31,950 --> 00:41:35,400 saat tämän tuotoksen. 788 00:41:35,400 --> 00:41:36,870 OK? 789 00:41:36,870 --> 00:41:40,570 Joten kysymyksiä tästä? 790 00:41:40,570 --> 00:41:45,130 >> Yksi asia huomata on, että komentorivin arguments-- 791 00:41:45,130 --> 00:41:49,990 joten ne erotetaan tiloihin voit tietysti odottaa niitä. 792 00:41:49,990 --> 00:41:53,050 Joten merkkijono voi olla välilyöntejä se. 793 00:41:53,050 --> 00:41:57,380 Se ei ole Super Tärkeää, mutta jos en halusi kolmannen komentoriviargumenttina 794 00:41:57,380 --> 00:42:01,226 on välilyönti, sitten voisi sanoa jotain tällaista. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 OK? 797 00:42:05,550 --> 00:42:12,190 Joten tämä nyt vielä vain kolme komentorivin arguments-- hyvin 4. 798 00:42:12,190 --> 00:42:17,620 Piste slash argv Dash 2, Rob, Maria, ja Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 OK. 800 00:42:18,320 --> 00:42:19,310 Kysymyksiä tähän? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Ei ole mitään erityistä noin välilyönti. 803 00:42:24,894 --> 00:42:27,810 Se vain sattuu olemaan, että komentorivin kohtelee välilyönti 804 00:42:27,810 --> 00:42:29,226 miten erotat argumentit. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Selvä. 807 00:42:33,000 --> 00:42:39,950 Niin sitten Harjoitus two-- aiot olla 808 00:42:39,950 --> 00:42:43,240 tarkastellaan salaisen avaimen salausta. 809 00:42:43,240 --> 00:42:47,700 Niin, samanlainen kuin esimerkin näimme Joulutarina, 810 00:42:47,700 --> 00:42:52,840 aiot toteuttavansa joitakin algoritmeja, annetaan viesti, 811 00:42:52,840 --> 00:42:55,560 olet menossa pystyä salata, että viesti 812 00:42:55,560 --> 00:42:58,730 että vain joku, että salainen avain, jossa että dekooderi rengas, 813 00:42:58,730 --> 00:43:01,090 olisi voitava purkaa. 814 00:43:01,090 --> 00:43:04,839 >> Niin että on perusversiossa. 815 00:43:04,839 --> 00:43:07,130 Olet menossa toteuttavansa kaksi eri versiota. 816 00:43:07,130 --> 00:43:09,620 Jos satut katsomaan klo hakkeri-versio nyt, 817 00:43:09,620 --> 00:43:12,600 me aiomme antaa voit merkkijono näin, 818 00:43:12,600 --> 00:43:15,240 joka edustaa salattu salasana. 819 00:43:15,240 --> 00:43:19,990 Joten sinun tehtäväsi on selvittää mitä salaus salasana on. 820 00:43:19,990 --> 00:43:26,950 Nyt tämä on todella miten salasanat tallennetaan paljon tietokoneita, 821 00:43:26,950 --> 00:43:31,290 ja se vain tallentaa tämän satunnainen merkkijono. 822 00:43:31,290 --> 00:43:34,440 Sinun täytyy selvittää, miten saada Tämän satunnainen merkkijono 823 00:43:34,440 --> 00:43:36,140 mitä alkuperäinen salasana on. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Ja lopuksi, kun tämä Harjoitus, sinun pitäisi 826 00:43:43,290 --> 00:43:46,100 voitava ymmärtää, mitä tämä tarkoittaa. 827 00:43:46,100 --> 00:43:51,650 Joten opit purkaa tällainen satunnainen merkkijono. 828 00:43:51,650 --> 00:43:56,390 Vastaavasti, jos muistat viikosta 0, olet ehkä nähnyt tämän URL. 829 00:43:56,390 --> 00:44:00,210 Ja sinun pitäisi pystyä purkaa tämä lopulta. 830 00:44:00,210 --> 00:44:04,810 Saatat olla onnellinen, kun purkaa se ja klikkaa linkkiä. 831 00:44:04,810 --> 00:44:05,700 Selvä. 832 00:44:05,700 --> 00:44:06,591 Se on siinä tänään. 833 00:44:06,591 --> 00:44:12,095 Joten nähdään ensi viikolla! 834 00:44:12,095 --> 00:44:18,315 >> [ELECTRONIC musiikkia] 835 00:44:18,315 --> 00:47:15,619