1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] DAVID J. MALAN: Selvä. 2 00:00:08,160 --> 00:00:11,170 Tämä on CS50, ja tämä on loppuun viikolla kaksi. 3 00:00:11,170 --> 00:00:14,650 Jos odottaa nälkäinen aikoihin huomenna tiedämme, että olemme menossa 4 00:00:14,650 --> 00:00:18,920 koolle niin pieni ryhmä huomenna, torstaina 13:15. 5 00:00:18,920 --> 00:00:21,460 On tämä URL täällä jos haluat vastata kutsuun. 6 00:00:21,460 --> 00:00:25,270 Avaruus on rajoitettu, joten anteeksi jos lomake on täytetty kasvoi kun 7 00:00:25,270 --> 00:00:26,680 Täyttäkää tämä. 8 00:00:26,680 --> 00:00:29,400 Toinen URL vaikka se saattaisi kiinnostaa tämä. 9 00:00:29,400 --> 00:00:32,409 >> Eli vain noin kuukauden ajan, kurssi tulee olemaan saatavilla 10 00:00:32,409 --> 00:00:36,090 kaikki laajemmin kautta EDX, jonka kautta ihmiset Internetissä on 11 00:00:36,090 --> 00:00:39,580 voivat seurata mukana, harjoittaa tietenkin melko aktiivisesti, itse asiassa. 12 00:00:39,580 --> 00:00:43,070 He käyttää CS50 Appliance ja CS50 Keskustele ja useimmat 13 00:00:43,070 --> 00:00:45,840 erilaisia ​​ohjelmistoja, joita meillä jo on käytössä tällä lukukaudella. 14 00:00:45,840 --> 00:00:49,030 Ja yksi aloitteista haluaisimme ottaa koska kokeilu tänä vuonna 15 00:00:49,030 --> 00:00:53,120 on nähdä, kuinka paljon sisältöä voimme kääntää muille puhuttu ja 16 00:00:53,120 --> 00:00:54,110 kirjoitettu kielellä. 17 00:00:54,110 --> 00:00:58,000 Joten jos saatat olla kiinnostunut osallistumaan tähän hankkeeseen, jossa 18 00:00:58,000 --> 00:01:02,090 annamme Englanti selostukset ja tekstitykset kurssin 19 00:01:02,090 --> 00:01:05,190 luentoja ja shortsit sekä seminaareja ja osat ja niiden kaltaiset - 20 00:01:05,190 --> 00:01:08,700 jos puhut sujuvaa tai kirjoittaa sujuvasti muulla kielellä, olisimme 21 00:01:08,700 --> 00:01:12,240 Rakastan harjoittaa sinua tässä hankkeessa, jossa otat yhden tai useamman 22 00:01:12,240 --> 00:01:15,340 videoita, kääntämällä ne kieli tiedätte varsin hyvin. 23 00:01:15,340 --> 00:01:19,050 Annan teille tunteen käyttöliittymä on tämä web-pohjainen käyttöliittymä 24 00:01:19,050 --> 00:01:22,330 että me voidaan käyttää joka luo lähinnä UI näin. 25 00:01:22,330 --> 00:01:24,520 Tämä minua opettamaan joitakin Halloween sitten. 26 00:01:24,520 --> 00:01:27,710 Ja oikealla puolella on musta vieressä näiden aikaleimat, 27 00:01:27,710 --> 00:01:31,300 näet eri asioita, jotka tulivat suustani joka päivä. 28 00:01:31,300 --> 00:01:34,660 Ja sitten sen alla, voit kääntää muulla kielellä. 29 00:01:34,660 --> 00:01:37,840 Mitä kartoitus välillä, tässä tapauksessa, Englanti 30 00:01:37,840 --> 00:01:38,660 ja vaikkapa espanja. 31 00:01:38,660 --> 00:01:40,480 Joten se on todella hyvin käyttäjäystävällinen työkalu. 32 00:01:40,480 --> 00:01:43,690 Voit pikakelaavat erittäin helposti näppäimistöltä. 33 00:01:43,690 --> 00:01:46,710 Joten jos haluat osallistua tähän kokeiluun ja pyydä sanoja 34 00:01:46,710 --> 00:01:50,730 nähdä ja lukea mahdollisesti tuhansia ihmisiä siellä, älä tunne 35 00:01:50,730 --> 00:01:51,960 vapaasti osallistua. 36 00:01:51,960 --> 00:01:56,940 >> Nyt sanaakaan pennun maanantaista, ettemme ole lähettänyt liian 37 00:01:56,940 --> 00:01:58,120 pelottava viesti. 38 00:01:58,120 --> 00:02:02,130 Ymmärräthän, että virka ehdottaa ja osat ehdottaa, 39 00:02:02,130 --> 00:02:05,110 suunnittelu kurssi on erittäin paljon on opiskelijoita yhteistyötä ja 40 00:02:05,110 --> 00:02:09,250 puhuu työn kautta ongelma sarjaa ja ongelmia yhdessä. 41 00:02:09,250 --> 00:02:13,630 Ja oikeastaan ​​linja vain tulee alas jälleen työn te lopulta 42 00:02:13,630 --> 00:02:16,420 olisi toimitettava pitäisi olla oma. 43 00:02:16,420 --> 00:02:19,080 Ja niin se on, rehellisesti - toimisto tuntia, se on täysin normaalia - 44 00:02:19,080 --> 00:02:21,560 se on täysin odotettavissa, vaikka - on chattailuun joitakin 45 00:02:21,560 --> 00:02:22,370 ystävät vieressäsi. 46 00:02:22,370 --> 00:02:25,240 Jos hän kamppailee jonkin aiheen, ja olet kuin, oh, syvä 47 00:02:25,240 --> 00:02:27,750 kerron teille välähdyksen joidenkin koodiriviä, että olen kirjoittanut. 48 00:02:27,750 --> 00:02:28,290 Se on hienoa. 49 00:02:28,290 --> 00:02:28,700 Se tapahtuu. 50 00:02:28,700 --> 00:02:31,580 Ja se on erittäin suotuisa, luulen, jossa oppimisprosessi. 51 00:02:31,580 --> 00:02:35,270 Jos linja, jälleen, saa ylitti on silloin, kun pää on tavallaan kallistetaan yli 52 00:02:35,270 --> 00:02:38,800 täällä aivan liian monta sekuntia tai minuuttia, joka todella on juuri 53 00:02:38,800 --> 00:02:41,250 ollut Unblocking mahdollisuus ystäväsi. 54 00:02:41,250 --> 00:02:43,870 Ja varmasti, kun asiat saavat vaihtaa sähköpostitse ja Dropbox ja 55 00:02:43,870 --> 00:02:45,350 kuten, sielläkin on viiva. 56 00:02:45,350 --> 00:02:48,940 Joten kaikki keinot, tuntea olonsa mukavaksi ja rohkaistava jutella ystävien kanssa 57 00:02:48,940 --> 00:02:51,270 ja luokkatoverit noin psets ja enemmän. 58 00:02:51,270 --> 00:02:54,680 Ja juuri ymmärtää, että mitä lopulta jättää pitäisi oikeastaan ​​olla 59 00:02:54,680 --> 00:02:57,780 tuotteen oman luomisen eikä joku muu. 60 00:02:57,780 --> 00:03:01,010 >> Joten samalla linjalla ja pehmoinen olentoja, saatat 61 00:03:01,010 --> 00:03:02,820 tiedä tämä kaveri täällä. 62 00:03:02,820 --> 00:03:06,180 Joten tämä on järkyttävän cheesy elokuvan vuotta sitten. 63 00:03:06,180 --> 00:03:08,680 Kukaan täällä nähnyt Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Selvä. 65 00:03:09,120 --> 00:03:10,220 Joten hyvä numero täällä. 66 00:03:10,220 --> 00:03:13,840 Joten tämä on meidän ihanan akateeminen tapa ottaa käyttöön tänään lopulta 67 00:03:13,840 --> 00:03:15,130 käsite salauksen. 68 00:03:15,130 --> 00:03:19,010 Ja niin yksi verkkotunnus erityisiä ongelmia PSET 2, joka tulee 69 00:03:19,010 --> 00:03:22,770 myöhään huomisiltana, on sukeltaa maailmaan salauksen, joka 70 00:03:22,770 --> 00:03:26,380 on taidetta salaamisesta tai muokkaamisella tietoja. 71 00:03:26,380 --> 00:03:30,160 Ja tämä lopulta liittyy maailman turvallisuutta. 72 00:03:30,160 --> 00:03:34,440 >> Nyt turvallisuus useimmille meistä tulee muodossa melko arkipäiväinen mekanismeja. 73 00:03:34,440 --> 00:03:36,920 Kaikilla meillä on käyttäjänimiä ja salasanoja. 74 00:03:36,920 --> 00:03:41,350 Ja meillä kaikilla on erittäin huono käyttäjätunnuksia ja salasanoja, todennäköisesti. 75 00:03:41,350 --> 00:03:45,250 Jos salasana on sama useita sivustoja, se luultavasti ei 76 00:03:45,250 --> 00:03:47,920 paras idea, koska tulemme keskustelemaan kohti lukukauden loppua. 77 00:03:47,920 --> 00:03:51,680 Jos salasana on kirjoitettu tarralapulle - no vitsi - teidän 78 00:03:51,680 --> 00:03:55,130 näyttö, sekin ole välttämättä paras malli, mutta melko yhteinen 79 00:03:55,130 --> 00:03:56,140 ilmiö. 80 00:03:56,140 --> 00:04:00,420 Ja jos et käytä salausta salata salasanat, ne ovat 81 00:04:00,420 --> 00:04:01,610 Erityisen haavoittuvia. 82 00:04:01,610 --> 00:04:04,670 Joten jos luulet on erittäin nokkela pyytämällä piilotettu sana 83 00:04:04,670 --> 00:04:07,740 dokumentoida jonnekin kiintolevyllesi, että on kaikki salasanat, mutta 84 00:04:07,740 --> 00:04:10,550 se on kansiossa että kukaan menee katsomaan, sekin ole kovin 85 00:04:10,550 --> 00:04:11,540 turvallinen mekanismi. 86 00:04:11,540 --> 00:04:15,100 Ja niin mitä PSET 2 esittelee tämä taidetta salauksen ja 87 00:04:15,100 --> 00:04:18,300 salaus tietoa, jotta asiat kuten salasanat ovat 88 00:04:18,300 --> 00:04:19,500 kaikki varmempi. 89 00:04:19,500 --> 00:04:24,500 Jotta motivoida tähän hyvin reaalimaailman ongelma hyvin kuin reaalimaailman 90 00:04:24,500 --> 00:04:28,740 skenaario, haluan esitellä sinut yksi meidän suosikki leikkeitä täältä tästä 91 00:04:28,740 --> 00:04:29,895 elokuva, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [VIDEO PLAYBACK] 93 00:04:30,565 --> 00:04:32,995 -Kypärä, sinä riiviö, mitä on tekeillä? 94 00:04:32,995 --> 00:04:34,730 Mitä teet tyttäreni? 95 00:04:34,730 --> 00:04:38,960 -Saanen esitellä loistava nuori plastiikkakirurgi, tohtori Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, suurin nenä työtä mies koko 97 00:04:43,290 --> 00:04:45,526 maailmankaikkeus ja Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 -Teidän korkeutenne. 99 00:04:46,450 --> 00:04:47,380 -Nenä työtä? 100 00:04:47,380 --> 00:04:48,035 En ymmärrä. 101 00:04:48,035 --> 00:04:49,480 Hän oli jo nenä työtä. 102 00:04:49,480 --> 00:04:51,490 Se oli makea 16 läsnä. 103 00:04:51,490 --> 00:04:53,090 -Ei, se ei ole mitä luulet. 104 00:04:53,090 --> 00:04:55,150 Se on paljon, paljon pahempi. 105 00:04:55,150 --> 00:04:59,860 Jos et anna minulle yhdistelmän ilmasuojan, Dr. Schlotkin tulee 106 00:04:59,860 --> 00:05:04,135 anna tyttäresi takaisin hänen vanhan nenä. 107 00:05:04,135 --> 00:05:05,385 -Ei! 108 00:05:08,202 --> 00:05:10,186 Mistä sait tuon? 109 00:05:10,186 --> 00:05:11,178 -Selvä. 110 00:05:11,178 --> 00:05:11,674 Kerron. 111 00:05:11,674 --> 00:05:12,666 Kerron. 112 00:05:12,666 --> 00:05:14,154 -Ei, isä, ei. 113 00:05:14,154 --> 00:05:15,150 Et saa. 114 00:05:15,150 --> 00:05:16,460 -Olet oikeassa, kultaseni. 115 00:05:16,460 --> 00:05:18,450 Kaipaan uuden nenän. 116 00:05:18,450 --> 00:05:21,550 Mutta en aio kertoa heille yhdistelmä mitä. 117 00:05:21,550 --> 00:05:23,100 -Oikein hyvin. 118 00:05:23,100 --> 00:05:25,510 Tohtori Schlotkin, tee pahin. 119 00:05:25,510 --> 00:05:26,760 -Mielelläni. 120 00:05:30,560 --> 00:05:31,180 -Ei! 121 00:05:31,180 --> 00:05:33,450 Odota, odota. 122 00:05:33,450 --> 00:05:34,770 Kerron. 123 00:05:34,770 --> 00:05:36,400 Kerron. 124 00:05:36,400 --> 00:05:38,630 -Tiesin, että se onnistuisi. 125 00:05:38,630 --> 00:05:42,040 Selvä, anna se minulle. 126 00:05:42,040 --> 00:05:46,890 -Yhdistelmä on yksi. 127 00:05:46,890 --> 00:05:47,290 -One. 128 00:05:47,290 --> 00:05:48,183 -One. 129 00:05:48,183 --> 00:05:48,950 -Kaksi. 130 00:05:48,950 --> 00:05:49,370 -Kaksi. 131 00:05:49,370 --> 00:05:50,450 -Kaksi. 132 00:05:50,450 --> 00:05:50,715 -Kolme 133 00:05:50,715 --> 00:05:51,380 -Kolme. 134 00:05:51,380 --> 00:05:52,390 -Kolme. 135 00:05:52,390 --> 00:05:53,200 -Neljä. 136 00:05:53,200 --> 00:05:53,720 -Neljä. 137 00:05:53,720 --> 00:05:55,830 -Neljä. 138 00:05:55,830 --> 00:05:56,580 -Viisi 139 00:05:56,580 --> 00:05:57,120 -Viisi. 140 00:05:57,120 --> 00:05:58,560 -Viisi. 141 00:05:58,560 --> 00:06:03,770 -Joten yhdistelmä on yksi, kaksi, kolme, neljä, viisi. 142 00:06:03,770 --> 00:06:06,745 Se typerin yhdistelmä olen koskaan kuullut elämässäni. 143 00:06:06,745 --> 00:06:09,290 Se on sellainen asia, idiootti olisi hänen matkatavaroita. 144 00:06:09,290 --> 00:06:11,540 -Kiitos, teidän korkeutenne. 145 00:06:11,540 --> 00:06:12,940 -Mitä teit? 146 00:06:12,940 --> 00:06:14,230 -Käännyin pois seinästä. 147 00:06:14,230 --> 00:06:14,630 -Ei, sinä et. 148 00:06:14,630 --> 00:06:15,430 Olet sammuttanut koko elokuvan. 149 00:06:15,430 --> 00:06:16,722 -Minun on painanut väärää nappia. 150 00:06:16,722 --> 00:06:18,078 -No, laita se takaisin päälle. 151 00:06:18,078 --> 00:06:18,805 Laita elokuva takaisin. 152 00:06:18,805 --> 00:06:19,080 -Kyllä, sir. 153 00:06:19,080 --> 00:06:19,270 Kyllä, sir. 154 00:06:19,270 --> 00:06:19,830 -Mennään, Erna. 155 00:06:19,830 --> 00:06:20,270 Tule, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Tietenkin tiedät Otan vielä laskuttaa sinua tästä. 157 00:06:27,400 --> 00:06:28,325 -No, se toimi? 158 00:06:28,325 --> 00:06:29,550 Missä on portti? 159 00:06:29,550 --> 00:06:29,910 -Se toimi, sir. 160 00:06:29,910 --> 00:06:30,770 Meillä on yhdistelmä. 161 00:06:30,770 --> 00:06:31,390 -Loistava. 162 00:06:31,390 --> 00:06:35,630 Nyt voimme ottaa viimeinenkin raitista ilmaa planeetalta druidi. 163 00:06:35,630 --> 00:06:36,550 Mikä yhdistelmä? 164 00:06:36,550 --> 00:06:38,805 -Yksi, kaksi, kolme, neljä, viisi. 165 00:06:38,805 --> 00:06:40,610 -Yksi, kaksi, kolme, neljä, viisi? 166 00:06:40,610 --> 00:06:41,070 -Kyllä. 167 00:06:41,070 --> 00:06:41,760 -Uskomatonta. 168 00:06:41,760 --> 00:06:45,200 Minulla sama yhdistelmä minun matkatavarat. 169 00:06:45,200 --> 00:06:47,800 Valmistaudu Spaceball 1 välitöntä lähtöä. 170 00:06:47,800 --> 00:06:48,536 -Kyllä, sir. 171 00:06:48,536 --> 00:06:52,350 Ja muuttaa yhdistelmän minun matkatavarat. 172 00:06:52,350 --> 00:06:53,250 -Hetkinen! 173 00:06:53,250 --> 00:06:55,020 [END VIDEO PLAYBACK] 174 00:06:55,020 --> 00:06:57,470 >> DAVID J. MALAN: amazing elokuvan pitäisi nyt kaikki ks. 175 00:07:00,600 --> 00:07:06,540 Joten yhteydessä tässä on, että suojaamatonta tiedot tulee tilaisuus 176 00:07:06,540 --> 00:07:07,790 salata sitä ja muokkaamaan sitä. 177 00:07:07,790 --> 00:07:11,060 Ja niin tämä, esimerkiksi, on esimerkki salatun viestin. 178 00:07:11,060 --> 00:07:12,980 Tämä sanoo jotakin Englanti. 179 00:07:12,980 --> 00:07:14,750 Mutta se ei selvästikään täysin ilmeinen. 180 00:07:14,750 --> 00:07:17,360 Ja me tulemme täysi ympyrä tänään erottaa toisistaan ​​mitä tämä salaisuus 181 00:07:17,360 --> 00:07:18,380 viesti tässä on. 182 00:07:18,380 --> 00:07:22,370 Mutta todellisessa maailmassa tietokoneiden, asiat eivät edes näyttävät ne saattavat 183 00:07:22,370 --> 00:07:23,440 olla Englanti lauseita. 184 00:07:23,440 --> 00:07:27,500 Esimerkiksi tämä on mitä saatat löytää standardi Linux tai Mac tai 185 00:07:27,500 --> 00:07:32,080 Unix tietokone tiedosto oli aikoinaan nimeltään salasana tiedosto. 186 00:07:32,080 --> 00:07:34,170 Nykyään se on siirretty muualle. 187 00:07:34,170 --> 00:07:38,660 Mutta jos tarkastellaan oikeassa paikassa järjestelmään, näet ei vain 188 00:07:38,660 --> 00:07:41,430 Käyttäjätunnus tai muiden ihmisten järjestelmään, mutta näet 189 00:07:41,430 --> 00:07:43,410 salattu versio salasanansa. 190 00:07:43,410 --> 00:07:47,800 Itse asiassa sana krypta siellä ehdottaa, että seuraavat jutut on salattu. 191 00:07:47,800 --> 00:07:52,030 Ja tämä sarja sattumanvaraiselta kirjaimia ja merkkejä ja numeroita 192 00:07:52,030 --> 00:07:56,370 jne. voidaan purkaa vain yleisesti tietää joitakin salaisia ​​- 193 00:07:56,370 --> 00:07:58,600 salainen sana, salainen numero. 194 00:07:58,600 --> 00:08:02,760 Ja niin tosiaan, taiteen salauksen lopulta kuihtuu luottaa joidenkin 195 00:08:02,760 --> 00:08:05,700 lajitella ja tietää jotain, että joku muu ei. 196 00:08:05,700 --> 00:08:10,010 Me tutkia tätä hieman tarkemmin tänään ja PSET tulla. 197 00:08:10,010 --> 00:08:11,860 >> Ja nyt sana pass / fail. 198 00:08:11,860 --> 00:08:15,250 Niin varsinkin, kuten jotkut teistä ovat sukelsi PSET 1, laite, ja 199 00:08:15,250 --> 00:08:18,390 aivan uusi maailma itse, tajusi että pettymyksiä ja 200 00:08:18,390 --> 00:08:21,340 sekavuus ja vain teknisiä ongelmia on odotettavissa. 201 00:08:21,340 --> 00:08:24,410 Varsinkin ensimmäinen PSET, missä on vain niin paljon uutta, vain saada 202 00:08:24,410 --> 00:08:28,830 tuntee ls ja cd ja kaikki nämä mystistä komennot uuteen ympäristöön. 203 00:08:28,830 --> 00:08:32,679 Ja se on erillään varsinaisesta materiaalista ja ohjelmoinnin itse. 204 00:08:32,679 --> 00:08:35,960 Joten ymmärtää myös, että on varmasti virka että olemassa 205 00:08:35,960 --> 00:08:36,770 tukirakenteen. 206 00:08:36,770 --> 00:08:38,620 Osiot alkaa tulevana sunnuntaina. 207 00:08:38,620 --> 00:08:41,990 Mutta mikä tärkeintä, jos et tunne vain, että tämä ei ole 208 00:08:41,990 --> 00:08:44,420 maailman teille, ymmärtää, että se todella vain ottaa aikaa. 209 00:08:44,420 --> 00:08:47,520 Ja jos se ei tätä tilaisuutta vuotta sitten minulle ottaa luokan 210 00:08:47,520 --> 00:08:50,840 hyväksytty / hylätty, rehellisesti, en koskaan olisi edes asettaa jalka luokkahuoneessa. 211 00:08:50,840 --> 00:08:53,520 Ja voit muuttaa saakka, sanovat, viides maanantaina kurssin. 212 00:08:53,520 --> 00:08:57,110 Joten jos olet reunalla nyt ymmärtää, että mieluummin kuin pää johonkin toiseen 213 00:08:57,110 --> 00:09:01,000 vedet kokonaan, älä varmasti harkita vain vaihtamalla hyväksytty / hylätty. 214 00:09:01,000 --> 00:09:03,750 Jälleen, ei ole oikeastaan ​​tätä kulttuuria täällä Harvardissa ottaa asioita 215 00:09:03,750 --> 00:09:08,080 hyväksytty / hylätty, koska jokainen todella haluaa saavuttaa tai ylittääkseen. 216 00:09:08,080 --> 00:09:11,470 Mutta suoraan sanottuna, tämä on loistava tapa yrittää jotain, että ei ehkä 217 00:09:11,470 --> 00:09:13,110 olla tutulta. 218 00:09:13,110 --> 00:09:17,090 Ja voit päätyä tekemään useimmissa tapauksissa varsin hieno, ehkä 219 00:09:17,090 --> 00:09:18,040 paljon teidän yllätys. 220 00:09:18,040 --> 00:09:20,850 Ja konkreettisemmin, mitä luulen hyväksytty / hylätty yleensä tekee, 221 00:09:20,850 --> 00:09:23,350 varsinkin kun olet ehkä kokenut PSET 0, jos olet laittaa 222 00:09:23,350 --> 00:09:27,200 10 tuntia, 15 tuntia, 25 tuntia johonkin PSET - ja olet vain hakkaamista 223 00:09:27,200 --> 00:09:28,180 päätäsi seinään, 224 00:09:28,180 --> 00:09:29,850 ja se alkaa erittäin myöhään yöllä, 225 00:09:29,850 --> 00:09:31,880 mutta olet ottanut PSET kuin 90% tavalla, 226 00:09:31,880 --> 00:09:33,780 tiedät vain voi selvittää yksi asia - 227 00:09:33,780 --> 00:09:36,830 hyväksytty / hylätty todella vie reunan pois luokan kuten tämä, jossa voit lajitella 228 00:09:36,830 --> 00:09:39,150 ja onneksi sanoa okei, tiedän, että se ei ole täydellinen. 229 00:09:39,150 --> 00:09:40,470 Mutta olen työskennellyt my ass off tästä. 230 00:09:40,470 --> 00:09:42,410 Olen melko tyytyväinen, jos se päätyi. 231 00:09:42,410 --> 00:09:44,780 Ja jotka täyttävät odotukset hyväksytty / hylätty. 232 00:09:44,780 --> 00:09:46,850 Joten älä pidä mielessä. 233 00:09:46,850 --> 00:09:47,140 >> Selvä. 234 00:09:47,140 --> 00:09:50,980 Joten ne teistä, jotka ovat taistelleet käyttää Harvardin yliopiston Wi-Fi tietää 235 00:09:50,980 --> 00:09:54,780 että siellä CS50 SSID, Wi-Fi-yhteyden kelluva noin, että 236 00:09:54,780 --> 00:09:56,520 saattaa olla parempi onni. 237 00:09:56,520 --> 00:09:59,430 Se on vähän ironista, että salasana tähän - jos haluat kokeilla 238 00:09:59,430 --> 00:10:03,080 yhteyden tähän paremmin nopeuksilla ja kerro meille jos se yhtään parempi - 239 00:10:03,080 --> 00:10:09,240 on yksi, kaksi, kolme, neljä, viisi, aina jopa kahdeksan, koska kahdeksan on 240 00:10:09,240 --> 00:10:10,270 turvallisempi kuin viisi. 241 00:10:10,270 --> 00:10:15,520 Joten jos tarvitset Wi-Fi-salasanan, yhteyden CS50 langattomasti täällä. 242 00:10:15,520 --> 00:10:16,950 Yksi, kaksi, kolme, neljä, viisi, kuusi, seitsemän, kahdeksan. 243 00:10:16,950 --> 00:10:20,440 Ja viesti CS50 Keskustele jos sinulla on vielä ajoittaisia ​​yhteysongelmia, 244 00:10:20,440 --> 00:10:24,880 ja me ilmoitamme, että vallanpitäjät tietävät tämän tilan. 245 00:10:24,880 --> 00:10:25,180 >> Selvä. 246 00:10:25,180 --> 00:10:30,350 Joten nopea teaser, erityisesti niille teistä, jotka ovat fani poikia tai tyttöjä 247 00:10:30,350 --> 00:10:31,900 kaiken Apple. 248 00:10:31,900 --> 00:10:37,566 Mitä minä kaivetaan muutama vuosi sitten oli tämä tiedosto täällä, ilock.c, vain 249 00:10:37,566 --> 00:10:40,930 Tällainen antaa konkreettisempi ja monimutkaisempia joitakin enemmän perus C 250 00:10:40,930 --> 00:10:42,350 ohjelmat olemme kirjallisesti. 251 00:10:42,350 --> 00:10:44,360 Joten olen avannut tämän tiedoston, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Se on saatavissa luentojen sivulla tänään. 253 00:10:46,830 --> 00:10:49,470 Vasemmalla puolella, näet pitkän luettelon toiminnoista. 254 00:10:49,470 --> 00:10:51,860 Joten kaveri joka kirjoitti tämän kirjoitti jopa paljon toimintoja, 255 00:10:51,860 --> 00:10:53,290 enemmän kuin vain tärkeimmät. 256 00:10:53,290 --> 00:10:55,490 Hän käytti koko joukko kirjastoja täältä. 257 00:10:55,490 --> 00:11:00,450 Ja jos aloitamme selata, mitä tämä on on hyvin 258 00:11:00,450 --> 00:11:04,670 ensimmäinen, uskon, purtavaksi alkuperäisen iPhonen. 259 00:11:04,670 --> 00:11:08,000 Kun halusi karkaaminen alkuperäinen iPhone, joka tarkoittaa untether 260 00:11:08,000 --> 00:11:11,800 se AT & T ja itse asentaa erityisiä ohjelmistoja sitä ja tehdä asioita 261 00:11:11,800 --> 00:11:13,510 että Apple ei halua ihmisten tehdä - 262 00:11:13,510 --> 00:11:17,020 No, joku vei aikaa selvittää, miten he voisivat hyödyntää 263 00:11:17,020 --> 00:11:20,880 ohjelmisto puutteita, virheitä, vikoja, Applen ohjelmisto. 264 00:11:20,880 --> 00:11:22,650 Ja näin syntyi ilock.c. 265 00:11:22,650 --> 00:11:26,670 Että jos käännetty sen tietokoneeseen ja asentaa sen päälle iPhone että 266 00:11:26,670 --> 00:11:29,810 oli kytketty tietokoneeseen kautta, vaikkapa USB-kaapelilla, tämä antaisi sinulle 267 00:11:29,810 --> 00:11:33,360 hallinnollisia tai root oikeudet iPhonessa ja voit tehdä aika paljon 268 00:11:33,360 --> 00:11:34,170 mitä haluat. 269 00:11:34,170 --> 00:11:36,740 >> Ja niin siellä on ollut tämä kiehtova kissa ja hiiri-leikkiä välillä Apple ja 270 00:11:36,740 --> 00:11:39,920 muualla maailmassa erityisesti ne, kuten monet yritykset, yrittävät lukita 271 00:11:39,920 --> 00:11:43,220 niiden juttuja alas niin, että voit vain tehdä sen kanssa mitä he aikovat. 272 00:11:43,220 --> 00:11:46,620 Mutta kiitos ihmisiä kuten tämä ja ymmärrystä matalan tason 273 00:11:46,620 --> 00:11:50,580 yksityiskohtia, ja tässä tapauksessa C ohjelmointi ja paljon tuttuja rakenteita 274 00:11:50,580 --> 00:11:54,630 että olemme alkaneet leikkiä, voit todella hyödyntää 275 00:11:54,630 --> 00:11:59,050 laitteisto tavalla näette eikä välttämättä jotkut yritystoimija. 276 00:11:59,050 --> 00:12:01,360 Niinpä esimerkiksi, minulla ei ole aavistustakaan mitä tämä kaikki tekee. 277 00:12:01,360 --> 00:12:03,220 Mutta GetVersion kuulostaa melko yksinkertainen. 278 00:12:03,220 --> 00:12:05,480 Ja se näyttää tältä on toiminto, että tämä henkilö kirjoitti. 279 00:12:05,480 --> 00:12:09,240 Ota jonkinlainen kokonaisluvun argumenttina, ei palauta mitään, mutta 280 00:12:09,240 --> 00:12:13,080 näyttää silmukka ja silmukka täällä ja jos tila, jos tila, 281 00:12:13,080 --> 00:12:15,620 rikkoa, ja jotenkin liittyy versionumerot. 282 00:12:15,620 --> 00:12:16,700 Jos me selaa - 283 00:12:16,700 --> 00:12:19,570 vaikka monet näistä avainsanoista tulevat olemaan uusia, ja siellä 284 00:12:19,570 --> 00:12:22,590 paljon toimintoja täällä olemme koskaan nähneet ja ehkä koskaan näe yli 285 00:12:22,590 --> 00:12:23,830 aikana lukukauden - 286 00:12:23,830 --> 00:12:27,150 lopussa päivä, se seuraa samoja sääntöjä ja logiikkaa, että olemme olleet 287 00:12:27,150 --> 00:12:28,760 leikkii toistaiseksi. 288 00:12:28,760 --> 00:12:34,220 Joten tämä on aivan liian vanha halki iPhoneen 3s tai 4s tai pian 5s, näinä päivinä, 289 00:12:34,220 --> 00:12:37,320 mutta tiedän, että se on kaikki hyvin johdettu tästä maailmasta, että olemme 290 00:12:37,320 --> 00:12:38,430 sukelsi. 291 00:12:38,430 --> 00:12:41,900 >> Joten katsomaan hieman yksinkertainen esimerkki. 292 00:12:41,900 --> 00:12:46,100 Tämä yksi, vain saada lämmennyt joitakin syntaksia ja myös joitakin muita tietoja 293 00:12:46,100 --> 00:12:49,240 tyyppi, että me olemme puhuneet, mutta ei oikeastaan ​​nähty C. Joten tämä on 294 00:12:49,240 --> 00:12:51,680 tiedosto nimeltä positive1.c. 295 00:12:51,680 --> 00:12:55,120 Ja kohti kommentit yläosassa, tämä vain vaatii, että käyttäjä antaa 296 00:12:55,120 --> 00:12:55,960 positiivinen numero. 297 00:12:55,960 --> 00:12:59,530 Joten se on esimerkki do-while-silmukka, joka on mukavaa käyttäjän interaktiivinen 298 00:12:59,530 --> 00:13:01,980 ohjelmia, joissa sinun täytyy kertoa käyttäjälle tehdä jotain. 299 00:13:01,980 --> 00:13:05,190 Ja jos he eivät tee yhteistyötä, huudat niitä tai hylätä heidän panostaan. 300 00:13:05,190 --> 00:13:11,610 Olevassa tapauksessa aion tehdä linjat 19 kautta 24 niin kauan kuin käyttäjä on 301 00:13:11,610 --> 00:13:14,310 ei antanut minulle positiivinen numero. 302 00:13:14,310 --> 00:13:20,400 Nyt tämä yksityiskohta täällä line 18, miksi Vakuutan n yläpuolella koko tämän 303 00:13:20,400 --> 00:13:24,490 looping rakentaa toisin kuin vieressä rivi 22, jossa olen 304 00:13:24,490 --> 00:13:26,880 todella kiinnostaa saada n? 305 00:13:26,880 --> 00:13:27,330 Niin? 306 00:13:27,330 --> 00:13:27,780 [Kuulumattomissa] 307 00:13:27,780 --> 00:13:29,040 >> DAVID J. MALAN: Joo, niin tämä kysymys soveltamisalaa. 308 00:13:29,040 --> 00:13:30,850 Ja maallikon aikavälillä, mitä soveltamisala viittaa? 309 00:13:34,690 --> 00:13:36,610 Niin? 310 00:13:36,610 --> 00:13:37,860 [Kuulumattomissa] 311 00:13:40,040 --> 00:13:41,105 DAVID J. MALAN: Voitko puhua hieman kovempaa? 312 00:13:41,105 --> 00:13:43,450 SPEAKER 1: Mistä voit käyttää tietty muuttuja. 313 00:13:43,450 --> 00:13:45,170 DAVID J. MALAN: Perfect. 314 00:13:45,170 --> 00:13:47,360 Mistä voit käyttää tietty muuttuja. 315 00:13:47,360 --> 00:13:50,400 Ja yleensä nyrkkisääntö on tähän mennessä ollut, että soveltamisala joidenkin 316 00:13:50,400 --> 00:13:55,860 muuttuja määritellään viimeisimmän aaltosulkeita että olet nähnyt. 317 00:13:55,860 --> 00:14:02,010 Ja niin tässä tapauksessa, jos tein virheen julistamalla n verkossa 22, 318 00:14:02,010 --> 00:14:03,010 että linja toimisi. 319 00:14:03,010 --> 00:14:10,990 Haluaisin saada int, ja haluaisin laittaa sitä, että muuttujan n mukainen 22. 320 00:14:10,990 --> 00:14:16,900 Mutta mikä koodiriviä olisi nyt ei ole aavistustakaan, mitä puhun? 321 00:14:16,900 --> 00:14:22,650 Joten 25, ja se kääntyy pois 24 samoin, koska tässä tapauksessa se ei kuulu 322 00:14:22,650 --> 00:14:23,610 ja aaltosulkeita. 323 00:14:23,610 --> 00:14:27,280 Joten vähän haittaa, mutta hyvin helposti ratkaistavissa yksinkertaisesti julistamalla 324 00:14:27,280 --> 00:14:30,140 muuttujan ulkopuolella funktion itse. 325 00:14:30,140 --> 00:14:32,600 >> Nyt näemme myöhemmin tänään, voit mennä askeleen pidemmälle. 326 00:14:32,600 --> 00:14:34,860 Ja voit jopa saada hieman laiska - 327 00:14:34,860 --> 00:14:37,320 ja tämä ei ole suositeltavaa, yleensä - 328 00:14:37,320 --> 00:14:42,260 mutta voit jopa saada laiska ja laittaa muuttuja maailmanlaajuisesti, niin sanotusti, ei 329 00:14:42,260 --> 00:14:46,670 sisällä funktio, ei ole silmukan sisällä, mutta itse tiedosto ulkopuolella 330 00:14:46,670 --> 00:14:49,600 kaikkien toimintojen olet kirjoittanut, niin kuin tein täällä line 15. 331 00:14:49,600 --> 00:14:51,160 Mutta tämä on yleensä paheksutaan. 332 00:14:51,160 --> 00:14:55,680 Mutta ymmärtää tämä on ratkaisu joskus muita ongelmia, kuten tulemme 333 00:14:55,680 --> 00:14:56,620 lopulta ks. 334 00:14:56,620 --> 00:14:58,130 Joten nyt, jätämme sen näin. 335 00:14:58,130 --> 00:15:01,030 Mutta katsotaanpa jos voimme kirjoittaa tämän vain käynnistää ilmaista itseämme 336 00:15:01,030 --> 00:15:01,990 hieman eri tavalla. 337 00:15:01,990 --> 00:15:05,330 >> Joten tämä ohjelma vain olla selkeä, on positive1. 338 00:15:05,330 --> 00:15:11,810 Anna minun mennä eteenpäin tänne ja minun pääteikkunaan tehdä positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Kokoaa, okei. 340 00:15:12,740 --> 00:15:14,910 Aion ajaa positive1, Enter. 341 00:15:14,910 --> 00:15:16,820 Vaadin, että annat minulle positiivinen kokonaisluku. 342 00:15:16,820 --> 00:15:18,260 Sanon -1. 343 00:15:18,260 --> 00:15:18,910 Se ei toimi. 344 00:15:18,910 --> 00:15:22,150 0, 99, joka tuntuu toimivan. 345 00:15:22,150 --> 00:15:23,570 Ehkä ei kaikkein ankarimmat testin. 346 00:15:23,570 --> 00:15:26,480 Mutta ainakin se on kiva järki tarkistaa, että olemme oikealla tiellä. 347 00:15:26,480 --> 00:15:29,240 Joten nyt haluan mennä eteenpäin ja avata versio kaksi tämän. 348 00:15:29,240 --> 00:15:32,500 Ja mikä on erilainen jo? 349 00:15:32,500 --> 00:15:35,140 Se toteuttaa sama asia. 350 00:15:35,140 --> 00:15:40,660 Mutta mitä hyppäämällä ulos selvästi erilaista tällä kertaa? 351 00:15:40,660 --> 00:15:42,560 Joo, niin tämä bool vihreä. 352 00:15:42,560 --> 00:15:45,980 Gedit on korostettu vihreällä avainsanan tunnetaan bool, 353 00:15:45,980 --> 00:15:47,000 joka on tietotyyppi. 354 00:15:47,000 --> 00:15:51,080 Se ei tule rakennettu kaikki versiot C. Sinun täytyy sisällyttää 355 00:15:51,080 --> 00:15:52,010 erityisiä kirjasto. 356 00:15:52,010 --> 00:15:54,770 Meidän tapauksessa olen mukana CS50 kirjastoon, jotta voimme 357 00:15:54,770 --> 00:15:56,460 pääsevät bool. 358 00:15:56,460 --> 00:15:59,810 Mutta linja 18, meillä näyttää olevan totuusarvon täällä kutsutaan kiitollinen. 359 00:15:59,810 --> 00:16:01,040 Joten olen voinut soittaa tätä kaikkea. 360 00:16:01,040 --> 00:16:04,500 Mutta kutsuin sitä kiitollinen vain eräänlainen välittää joidenkin semanttinen. 361 00:16:04,500 --> 00:16:07,930 Joten aluksi linja 18, en ilmeisesti ole kiitollinen, koska 362 00:16:07,930 --> 00:16:12,150 Boolen arvo kiitollisia alustetaan arvoksi false linjassa 18. 363 00:16:12,150 --> 00:16:16,890 Ja sitten näyttää mitä olen tehnyt täällä linjat 21 kautta 23 on olen juuri 364 00:16:16,890 --> 00:16:18,610 Tällainen uusiksi minun logiikkaa. 365 00:16:18,610 --> 00:16:21,020 Joten ei toiminnallisesti erilaisia. 366 00:16:21,020 --> 00:16:26,940 Mutta linja 22 nyt, voin tarkistaa jos int käyttäjä on antanut on suurempi kuin 367 00:16:26,940 --> 00:16:31,120 0, niin en yksinkertaisesti muuttaa arvoa kiitolliset totta. 368 00:16:31,120 --> 00:16:32,290 Ja miksi niin? 369 00:16:32,290 --> 00:16:35,600 Koska linja 25, ilmeisesti, aion tarkistaa kunnossa. 370 00:16:35,600 --> 00:16:39,380 Tee tämä silmukka taas kiitollinen on väärä. 371 00:16:39,380 --> 00:16:43,610 >> Joten ehdotan tätä vaihtoehtoa versioon, koska se on ainakin 372 00:16:43,610 --> 00:16:45,130 hieman intuitiivinen, ehkä. 373 00:16:45,130 --> 00:16:46,900 Se on hieman enemmän maadoitettu Englanti. 374 00:16:46,900 --> 00:16:51,710 Joten tee seuraavat kun et ole kiitollinen tai kun kiitollinen on väärä. 375 00:16:51,710 --> 00:16:55,890 Ja tälläkin kertaa, en ilmeisesti välitä muistaa mitä käyttäjä kirjoittaa 376 00:16:55,890 --> 00:16:57,730 in koska ilmoituksessa ei ole mitään muuttujan n. 377 00:16:57,730 --> 00:16:58,650 Joten oikeastaan, minä - 378 00:16:58,650 --> 00:17:00,080 pieni valkoinen valhe sinne. 379 00:17:00,080 --> 00:17:02,770 Toiminnallisesti ohjelma on hieman erilainen, kun saamme pohjaan 380 00:17:02,770 --> 00:17:04,819 sitä, koska en muistaa mitä n on. 381 00:17:04,819 --> 00:17:09,579 Mutta halusin osoittaa myös tässä, että vaikka olemme nähneet GetInt ja 382 00:17:09,579 --> 00:17:13,920 GetString käytetään oikealla puolella yhtäläisyysmerkki tähän mennessä niin, että 383 00:17:13,920 --> 00:17:17,160 muistamme arvon, teknisesti, se ei ole välttämätöntä. 384 00:17:17,160 --> 00:17:20,950 Jos jostain syystä et vain välitä tallentaa arvon, haluat vain 385 00:17:20,950 --> 00:17:25,710 tarkistaa arvoa, huomaat, että voimme yksinkertaisesti kirjoittaa tätä GetInt auki 386 00:17:25,710 --> 00:17:27,000 Paren, sulje paren. 387 00:17:27,000 --> 00:17:30,460 Tämä toiminto tulee palauttaa arvo, kuten olemme sanoneet. 388 00:17:30,460 --> 00:17:32,010 Se tulee antamaan sinulle takaisin int. 389 00:17:32,010 --> 00:17:36,450 Ja niin jos henkisesti ajatella näin tapahtuu, kun kirjoitat 99, GetInt 390 00:17:36,450 --> 00:17:38,160 palauttaa numero 99. 391 00:17:38,160 --> 00:17:41,330 Ja niin käsitteellisesti, se on ikään kuin minun koodi olisi todella tätä. 392 00:17:41,330 --> 00:17:45,880 Joten jos 99 on todellakin suurempi kuin 0, niin kiitollisia tulee tosi. 393 00:17:45,880 --> 00:17:50,420 Sitten line 25 tajuaa ooh, olemme tehneet koska olen nyt kiitollinen. 394 00:17:50,420 --> 00:17:54,590 Ja linja 26, me yksinkertaisesti sanoa, kiitos positiivinen kokonaisluku, mitä se 395 00:17:54,590 --> 00:17:55,710 sattui olemaan. 396 00:17:55,710 --> 00:17:58,900 >> Nyt tehdä hieman syntaktinen sokeri täällä, niin sanoakseni. 397 00:17:58,900 --> 00:18:02,990 Katsotaan jos voimme siivota tämä rivi 25 ja tämä kolmas ja viimeinen varianssi 398 00:18:02,990 --> 00:18:04,640 vuonna positive3. 399 00:18:04,640 --> 00:18:08,250 Joten huomaat ainoa ero on nyt mitä rivi koodia? 400 00:18:11,930 --> 00:18:13,260 Joo, niin 25. 401 00:18:13,260 --> 00:18:15,520 Ja olemme oikeastaan ​​nähnyt tämän tempun vielä. 402 00:18:15,520 --> 00:18:19,510 Mutta teimme nähdä huutomerkki maanantaina, joka tarkoittaa mitä? 403 00:18:19,510 --> 00:18:20,970 Joten ei, tai kieltämistä. 404 00:18:20,970 --> 00:18:23,460 Joten ota totuusarvon ja kääntää sen arvoa. 405 00:18:23,460 --> 00:18:24,390 True tulee epätosi. 406 00:18:24,390 --> 00:18:25,500 False tulee totta. 407 00:18:25,500 --> 00:18:28,910 Joten tämä, ehdotan, on vielä hieman enemmän intuitiivinen ja tavan 408 00:18:28,910 --> 00:18:32,200 kirjallisesti koodi koska en vieläkään alustaa kiitollinen vääriä. 409 00:18:32,200 --> 00:18:33,530 Olen edelleen toimi seuraavasti. 410 00:18:33,530 --> 00:18:35,700 Asetin kiitollinen totta, kun sen aika tulee. 411 00:18:35,700 --> 00:18:40,690 Mutta nyt voit todella vain kääntää tämän koodin suullisesti vasemmalta oikealle, 412 00:18:40,690 --> 00:18:42,550 vaikka ei kiitollisia. 413 00:18:42,550 --> 00:18:46,170 Koska bang, tai huutomerkki, tarkoittaa käsite ei, joten vaikka 414 00:18:46,170 --> 00:18:47,010 ei kiitollisia. 415 00:18:47,010 --> 00:18:49,740 >> Joten jälleen, emme ole ottaneet käyttöön mitään uusia käsitteitä sinänsä. 416 00:18:49,740 --> 00:18:53,230 Olemme puhuneet booleans takaisin, kun soitimme Scratch. 417 00:18:53,230 --> 00:18:55,690 Mutta ymmärtää nyt voimme vain alkaa kirjoittaa meidän koodi 418 00:18:55,690 --> 00:18:56,550 monin eri tavoin. 419 00:18:56,550 --> 00:19:00,010 Joten varsinkin pset1, jos olet tavallaan kamppailee selvittää tapa 420 00:19:00,010 --> 00:19:03,400 kirjoittaa joitakin ohjelma, kertoimet ovat olet onnea, koska siellä tulee olla 421 00:19:03,400 --> 00:19:05,780 useita ratkaisuja, joita voit tapahtua heti. 422 00:19:05,780 --> 00:19:09,850 Esimerkiksi, tämä on vain kolme edes yksinkertaisimpia ohjelmia. 423 00:19:09,850 --> 00:19:10,180 Selvä. 424 00:19:10,180 --> 00:19:13,860 Ja nyt muistaa maanantaina, jätimme tämän merkille paluuarvot. 425 00:19:13,860 --> 00:19:18,280 Joten ensimmäistä kertaa, kirjoitimme ohjelma, joka ei vain ole tärkein, 426 00:19:18,280 --> 00:19:22,240 se on myös oma custom-toiminto, jonka kirjoitin tänne. 427 00:19:22,240 --> 00:19:26,640 Joten linjan 31 kautta 34, olen toteuttanut datakuutiofunktioiden. 428 00:19:26,640 --> 00:19:27,800 Se ei ole monimutkaista. 429 00:19:27,800 --> 00:19:29,830 Se on vain kerran kertaa, tässä tapauksessa. 430 00:19:29,830 --> 00:19:34,920 Mutta mikä on tärkeää on se, että otan syöttää muodossa ja 431 00:19:34,920 --> 00:19:38,910 Olen palaamassa tuotoksen muodossa kertaa kertaa. 432 00:19:38,910 --> 00:19:43,940 >> Joten nyt minulla on kyky, aivan kuten käytin kanssa printf yksin, soittaa 433 00:19:43,940 --> 00:19:47,120 tätä toimintoa kutsumalla datakuutiofunktioiden. 434 00:19:47,120 --> 00:19:49,470 Ja datakuutiofunktioiden vie jonkin tulon. 435 00:19:49,470 --> 00:19:52,030 Ja kuution funktio palauttaa jonkin lähtö. 436 00:19:52,030 --> 00:19:56,660 Ja niin sen sijaan printf vain teki jotain. 437 00:19:56,660 --> 00:19:59,490 Se ei palauta mitään, että me välittänyt - vaikka, kuten 438 00:19:59,490 --> 00:20:00,820 syrjään, se palauttaa arvon. 439 00:20:00,820 --> 00:20:02,650 Sinä vain yleisesti sivuuttaa sitä. 440 00:20:02,650 --> 00:20:04,000 Printf vain teki jotain. 441 00:20:04,000 --> 00:20:06,220 Se oli sivuvaikutus tulostamisen näytölle. 442 00:20:06,220 --> 00:20:09,480 Sitä vastoin tässä, meillä on kuutio-toiminto, joka 443 00:20:09,480 --> 00:20:11,400 tosiasiallisesti palauttaa jotain. 444 00:20:11,400 --> 00:20:12,960 >> Joten tämä on yleensä - 445 00:20:12,960 --> 00:20:15,260 niille tuttu, se on melko yksinkertainen idea. 446 00:20:15,260 --> 00:20:18,460 Mutta niille vähemmän tuttu ajatus kulkee Panosten ja saada 447 00:20:18,460 --> 00:20:21,700 takaisin lähdöt, yritetään vain jotain erittäin yksinkertaista. 448 00:20:21,700 --> 00:20:25,180 Onko joku mukava tulossa lavalle hetkeksi? 449 00:20:25,180 --> 00:20:27,460 Sinun täytyy olla mukava kamera sinulle samoin. 450 00:20:27,460 --> 00:20:27,640 Joo. 451 00:20:27,640 --> 00:20:28,610 Okei, mikä on nimesi? 452 00:20:28,610 --> 00:20:29,020 KEN: Ken. 453 00:20:29,020 --> 00:20:29,420 DAVID J. MALAN: Ken. 454 00:20:29,420 --> 00:20:29,810 Selvä, Ken. 455 00:20:29,810 --> 00:20:31,060 Tule ylös. 456 00:20:31,060 --> 00:20:34,660 Joten Ken tulee olemaan funktio lajittelee tässä. 457 00:20:34,660 --> 00:20:35,760 Ja mennään eteenpäin ja tehdä tätä. 458 00:20:35,760 --> 00:20:38,790 Mennään hieman fancy. 459 00:20:38,790 --> 00:20:39,770 Hauska tavata. 460 00:20:39,770 --> 00:20:41,010 Tervetuloa keskiöön. 461 00:20:41,010 --> 00:20:41,980 Selvä. 462 00:20:41,980 --> 00:20:45,590 Katsotaanpa osuma tätä painiketta täällä. 463 00:20:45,590 --> 00:20:46,420 Selvä. 464 00:20:46,420 --> 00:20:49,490 Joten tässä on moderni liitutaulu. 465 00:20:49,490 --> 00:20:53,050 Ja mitä minä olen on tärkein ominaisuus, esimerkiksi. 466 00:20:53,050 --> 00:20:55,990 Ja minulla ei ole iPad kädessäni. 467 00:20:55,990 --> 00:20:59,000 En todellakaan muista, miten - no, oikeastaan, ei voi sanoa. 468 00:20:59,000 --> 00:21:02,200 En todellakaan ole hyvä käsiala. 469 00:21:02,200 --> 00:21:05,260 Ja siksi haluan voit tulostaa jotain ruudulla minulle. 470 00:21:05,260 --> 00:21:07,470 >> Olen siis olla pääohjelma. 471 00:21:07,470 --> 00:21:15,060 Ja aion saada sanot tämän kirjoittamalla se minun kanaa naarmu ja 472 00:21:15,060 --> 00:21:16,600 sitten kulkee sinun syöttää. 473 00:21:16,600 --> 00:21:20,000 Niin typerä vaikka tämä harjoitus on käsite toimintoja ja kutsuvan 474 00:21:20,000 --> 00:21:22,260 toiminta ja palauttaa funktio todella kuihtuu tätä. 475 00:21:22,260 --> 00:21:23,120 Olen pääasiassa. 476 00:21:23,120 --> 00:21:26,270 Olen juuri kirjoittanut printf ("jotain") näytöllä. 477 00:21:26,270 --> 00:21:27,470 Olen käynnissä ohjelman. 478 00:21:27,470 --> 00:21:30,900 Ja heti printf saa kutsutaan, se kestää yksi argumentti - tai yksi parametri, 479 00:21:30,900 --> 00:21:31,660 joskus - 480 00:21:31,660 --> 00:21:32,780 välillä lainausmerkkeihin. 481 00:21:32,780 --> 00:21:33,960 Tässä on tämän väitteen. 482 00:21:33,960 --> 00:21:35,740 Olen ohimennen sen Ken. 483 00:21:35,740 --> 00:21:39,390 Nyt hän on musta laatikko kirjoittanut joitakin vuosia sitten, että ilmeisesti 484 00:21:39,390 --> 00:21:41,070 vain osaa tulostaa asiat näytöltä. 485 00:21:41,070 --> 00:21:42,320 >> Niin, suorita. 486 00:21:48,842 --> 00:21:49,900 Se ei ole paha. 487 00:21:49,900 --> 00:21:50,890 Joten, erittäin hyvä. 488 00:21:50,890 --> 00:21:52,900 Joten nyt Ken on tehty täytäntöönpanovaltion. 489 00:21:52,900 --> 00:21:55,810 Tarvitseeko hän luovuttaa minulle mitään takaisin? 490 00:21:55,810 --> 00:21:57,240 Joten ei, että olemme nähneet tähän mennessä. 491 00:21:57,240 --> 00:21:59,230 Jälleen printf ei oikeastaan ​​palata numero. 492 00:21:59,230 --> 00:22:01,640 Mutta aiomme sivuuttaa, että nyt, koska emme ole koskaan käyttänyt sitä. 493 00:22:01,640 --> 00:22:03,400 Niin, että se Ken. 494 00:22:03,400 --> 00:22:06,650 Ja nyt tärkein palaa toteuttaa - 495 00:22:06,650 --> 00:22:09,630 pääasiallinen ottaa haltuunsa ohjelman uudelleen, koska se koodirivin 496 00:22:09,630 --> 00:22:11,010 printf, tehdään täytäntöönpanovaltion. 497 00:22:11,010 --> 00:22:13,890 Ja me menemme noin tiemme täytäntöönpanovaltion mitä muut linjat ovat siellä. 498 00:22:13,890 --> 00:22:14,130 >> Selvä. 499 00:22:14,130 --> 00:22:17,080 Joten nyt yritetään hieman erilainen esimerkki. 500 00:22:17,080 --> 00:22:22,430 Ja tällä kertaa täällä, katsotaanpa ensin tyhjentää ruudun täällä. 501 00:22:22,430 --> 00:22:24,670 Ja tällä kertaa teemme cubing toimintoa. 502 00:22:24,670 --> 00:22:27,350 Mutta tällä kertaa, odotan lähtöarvo. 503 00:22:27,350 --> 00:22:28,630 Joten mene eteenpäin ja tehdä tämän. 504 00:22:28,630 --> 00:22:35,680 Joten nyt minulla on rivi koodia, joka sanoo x = cube (x). 505 00:22:35,680 --> 00:22:36,930 Joten oikeastaan ​​let's - 506 00:22:41,450 --> 00:22:43,940 koodirivin, Recall, näyttää tältä. 507 00:22:43,940 --> 00:22:45,960 x = cube (x). 508 00:22:45,960 --> 00:22:48,100 Joten miten tämä tulee toimimaan? 509 00:22:48,100 --> 00:22:50,820 Joten mene eteenpäin ja antaa sinulle valkokangas uudelleen. 510 00:22:50,820 --> 00:22:55,000 Ja aion kirjoittaa nyt alas arvo x, joka tällä hetkellä 511 00:22:55,000 --> 00:23:01,080 aikaa sattuu olemaan, sanotaanko, 2, pitää se yksinkertainen. 512 00:23:01,080 --> 00:23:04,890 Joten olen kirjoittanut alas paperille arvo 2, 513 00:23:04,890 --> 00:23:06,100 mikä on minun arvo x. 514 00:23:06,100 --> 00:23:08,250 Minä ojennan sen Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Ja minä vain kirjoittaa vastauksen? 516 00:23:09,200 --> 00:23:12,660 DAVID J. MALAN: Joo, mennään vain kirjoittaa vastauksen. 517 00:23:12,660 --> 00:23:13,030 Okei. 518 00:23:13,030 --> 00:23:16,280 Ja nyt hän on takaisin minulle jotain. 519 00:23:16,280 --> 00:23:17,560 So - 520 00:23:17,560 --> 00:23:18,170 täydellinen. 521 00:23:18,170 --> 00:23:18,840 Nice SEGUE. 522 00:23:18,840 --> 00:23:21,970 >> Joten nyt hän ojentaa minulle takaisin arvoon 8, tässä tapauksessa. 523 00:23:21,970 --> 00:23:23,220 Ja mitä teen sen kanssa? 524 00:23:23,220 --> 00:23:26,130 No, oikeastaan, katsotaanpa. 525 00:23:26,130 --> 00:23:26,640 Kuntoon. 526 00:23:26,640 --> 00:23:27,880 Mitä aion tehdä? 527 00:23:27,880 --> 00:23:31,900 Nyt aion ottaa tämän arvon ja todella säilytä ne 528 00:23:31,900 --> 00:23:33,400 samat bitit muistiin. 529 00:23:33,400 --> 00:23:35,030 Mutta ilmoitus, olen sellainen kamppailee täällä. 530 00:23:35,030 --> 00:23:38,280 Olen hieman hämmentynyt, sillä mistä minä itse kirjoittaa arvon x? 531 00:23:38,280 --> 00:23:41,840 Koska mitä olen juuri tehnyt on fyysisesti käsin Ken paperinpala 532 00:23:41,840 --> 00:23:44,400 , joka oli arvo 2, joka oli x. 533 00:23:44,400 --> 00:23:46,300 Ja todellakin, se on juuri mitä tapahtuu. 534 00:23:46,300 --> 00:23:50,100 Joten näyttää siltä, ​​että kun soitat toiminnon ja ohitat argumentti 535 00:23:50,100 --> 00:23:54,130 kuten "Hello World" tai ohitat argumentti kuten 2, yleensä, olet 536 00:23:54,130 --> 00:23:56,720 ohimennen kopio tätä väitettä. 537 00:23:56,720 --> 00:24:01,020 Ja niin aivan kuten kirjoitin numero 2 täällä ja ojensi sen Ken; että on 538 00:24:01,020 --> 00:24:04,760 tarkoittaa, että minulla on vielä kopio arvo 2 jonnekin. 539 00:24:04,760 --> 00:24:08,140 Koska tosiaan, nyt kun olen saanut takaisin arvoon 8, minun täytyy mennä takaisin 540 00:24:08,140 --> 00:24:12,010 RAM ja oikeastaan ​​kirjoittaa 8 jossa minulla oli kerran numero 2. 541 00:24:12,010 --> 00:24:15,720 >> Joten visuaalisesti muistaa tämä käsite kulkee kirjaimellisesti 542 00:24:15,720 --> 00:24:16,730 jäljennös arvon. 543 00:24:16,730 --> 00:24:19,570 Ken tekee hänen asia, ojentaa minulle jotain - tässä tapauksessa 544 00:24:19,570 --> 00:24:20,820 arvo kuin 8. 545 00:24:20,820 --> 00:24:22,660 Ja sitten minun täytyy tehdä jotain, että arvo jos 546 00:24:22,660 --> 00:24:24,880 haluamme pitää sen ympärillä. 547 00:24:24,880 --> 00:24:29,470 Joten kaikki tämä on liiankin tuttu ennen pitkää. 548 00:24:29,470 --> 00:24:33,082 Kiitos paljon tästä demo täällä, Ken. 549 00:24:33,082 --> 00:24:34,820 Selvä. 550 00:24:34,820 --> 00:24:36,720 Hyvin tehty. 551 00:24:36,720 --> 00:24:40,610 Joten miten se lopulta liittyy joitakin funktion 552 00:24:40,610 --> 00:24:42,270 soittamalla että olemme täällä. 553 00:24:42,270 --> 00:24:47,610 Joten anna minun mennä eteenpäin ja tuoda meidät takaisin cubing esimerkki tästä. 554 00:24:47,610 --> 00:24:53,080 Ja huomaa, että jos haluamme todella aloitat edelleen menemme 555 00:24:53,080 --> 00:24:57,050 sen täytyy olla tietoinen siitä, että määrä x, joka on parhaillaan kului 556 00:24:57,050 --> 00:25:01,390 tässä on erilainen mitä todellisuudessa johdetaan toiminto. 557 00:25:01,390 --> 00:25:03,940 Joten jälleen, tämä ohitti kopio on tulossa varsin 558 00:25:03,940 --> 00:25:05,620 Germane vain hetken. 559 00:25:05,620 --> 00:25:09,320 >> Joten katsomaan jotain, joka ei ole aivan toimi oikein vielä. 560 00:25:09,320 --> 00:25:11,790 Aion mennä eteenpäin ja avata kolmas buginen esimerkki, joka 561 00:25:11,790 --> 00:25:13,560 on virheellinen luonteeltaan. 562 00:25:13,560 --> 00:25:18,070 Ja sitä kutsutaan buggy3, ja se toteuttaa vaihtamalla toiminto. 563 00:25:18,070 --> 00:25:23,500 Joten tässä meillä on tärkein tehtävä, joka on x ja y mielivaltaisesti alustetaan 564 00:25:23,500 --> 00:25:24,720 1 ja 2, vastaavasti. 565 00:25:24,720 --> 00:25:27,590 Voisimme käyttää GetInt, mutta meidän täytyy vain yksinkertainen käyttää. 566 00:25:27,590 --> 00:25:29,680 Joten se kovakoodatuilla kuin 1 ja 2. 567 00:25:29,680 --> 00:25:35,330 Riveillä 21 ja 22, me ilmeisesti tulostaa x ja y, yksi per rivi. 568 00:25:35,330 --> 00:25:39,620 Sitten on line 23, väitän minä vaihtava näitä arvoja, piste, piste, piste. 569 00:25:39,620 --> 00:25:43,030 Olen ilmeisesti soittaa funktio linjalla 24 kutsutaan swap 570 00:25:43,030 --> 00:25:44,000 että ottaa kaksi argumenttia. 571 00:25:44,000 --> 00:25:46,430 Se on täysin legit toiminnoissa ottaa kaksi argumenttia. 572 00:25:46,430 --> 00:25:48,220 Olemme nähneet printf tehdä se jo. 573 00:25:48,220 --> 00:25:50,370 Joten swap ilmeisesti vie x ja y. 574 00:25:50,370 --> 00:25:53,010 Ja kuten nimikin, toivon että se tulee 575 00:25:53,010 --> 00:25:54,320 vaihtaa näiden kahden arvon. 576 00:25:54,320 --> 00:25:57,560 Joten Väitän linjalla 25, vaihtoi. 577 00:25:57,560 --> 00:26:01,570 Ja minä uusintapainoksia x ja y olettaen, että 578 00:26:01,570 --> 00:26:02,830 he todellakin vaihdettu. 579 00:26:02,830 --> 00:26:04,370 Mutta jos olen itse suorittaa tämän ohjelman - 580 00:26:04,370 --> 00:26:06,060 haluan avata terminaali-ikkunan. 581 00:26:06,060 --> 00:26:07,750 Haluan tehdä buggy3. 582 00:26:07,750 --> 00:26:09,970 Kuten nimestä voi päätellä, tämä ei lopu hyvin. 583 00:26:09,970 --> 00:26:14,690 Koska kun minä Enter, huomaat, että x on 1. 584 00:26:14,690 --> 00:26:15,720 y on 2. 585 00:26:15,720 --> 00:26:19,160 Ja vielä lopussa ohjelman, ne ovat yhä itse asiassa sama. 586 00:26:19,160 --> 00:26:22,760 >> Joten perustuvat mielenosoitus juuri nyt Ken, mitä todella tapahtuu? 587 00:26:22,760 --> 00:26:24,660 No, katsotaanpa sukeltaa tähän swap toiminto. 588 00:26:24,660 --> 00:26:25,800 Se on super lyhyt. 589 00:26:25,800 --> 00:26:28,020 Se on vain muutaman rivin koodia pitkä. 590 00:26:28,020 --> 00:26:32,810 Mutta mitä perusongelma perustuu yksinkertainen tarina kerrotaan 591 00:26:32,810 --> 00:26:34,270 täällä Ken? 592 00:26:34,270 --> 00:26:36,115 Miksi swap rikki? 593 00:26:36,115 --> 00:26:37,365 [Kuulumattomissa] 594 00:26:39,840 --> 00:26:40,460 Aivan. 595 00:26:40,460 --> 00:26:43,610 Joten olemme tallennetaan kopioon, ei muuttuja itse. 596 00:26:43,610 --> 00:26:46,810 Toisin sanoen, swap ilmeisesti ottaa kaksi argumenttia, int. 597 00:26:46,810 --> 00:26:49,370 Ja se on mielivaltaisesti kutsutaan a ja b. 598 00:26:49,370 --> 00:26:54,430 Ja täällä, olen läpäissyt vuonna x ja y, jotka ovat vastaavasti 1 ja 2. 599 00:26:54,430 --> 00:26:56,580 Mutta en kirjaimellisesti ohimennen x. 600 00:26:56,580 --> 00:26:58,410 En kirjaimellisesti kulkee y. 601 00:26:58,410 --> 00:27:01,230 Olen ohimennen kopio x ja kopion y. 602 00:27:01,230 --> 00:27:05,180 Se on kuin melkein kuin olisit kopioida ja liittää vaihtaa arvot 603 00:27:05,180 --> 00:27:07,440 haluat todella manipuloida. 604 00:27:07,440 --> 00:27:11,970 Eli jos näin on, kun minä, ohjelma, käynnistä täytäntöönpanovaltion 605 00:27:11,970 --> 00:27:14,140 linja 35, sitten 36 - 606 00:27:14,140 --> 00:27:17,740 kun saan linja 37, tässä vaiheessa tarinan, mikä on arvo? 607 00:27:20,740 --> 00:27:24,850 Tässä vaiheessa tarinan, rivi 37, mikä on arvo tässä vaiheessa? 608 00:27:24,850 --> 00:27:25,980 Joten se pitäisi olla vain 1. 609 00:27:25,980 --> 00:27:26,170 Oikea? 610 00:27:26,170 --> 00:27:29,100 Koska x hyväksyttiin ensimmäisenä argumenttina. 611 00:27:29,100 --> 00:27:33,150 Ja tämä toiminto vain mielivaltaisesti soittaa Ensimmäisessä väitteessään. 612 00:27:33,150 --> 00:27:35,130 Samoin on y, toinen argumentti. 613 00:27:35,130 --> 00:27:37,930 Ja se on vain mielivaltaisesti soittaa toinen argumentti b. 614 00:27:37,930 --> 00:27:40,510 >> Nyt tämä kahtiajako on oikeastaan ​​melko yksinkertaisesti selitetty. 615 00:27:40,510 --> 00:27:40,880 Mieti sitä. 616 00:27:40,880 --> 00:27:42,980 Kukaan meistä ovat tavanneet henkilö kirjoitti printf. 617 00:27:42,980 --> 00:27:49,880 Niin varmasti, hänellä ei ole aavistustakaan, mitä muuttujia 30 vuotta myöhemmin menossa 618 00:27:49,880 --> 00:27:50,710 kutsua. 619 00:27:50,710 --> 00:27:55,110 Joten siellä on tehtävä ero, mitä te kutsutte muuttujien 620 00:27:55,110 --> 00:27:59,960 toiminnot kirjoitat ja mitä te kutsutte funktioissa olet 621 00:27:59,960 --> 00:28:01,770 soittamalla tai käyttämällä. 622 00:28:01,770 --> 00:28:05,120 Eli toisin sanoen, olen kirjoittanut minun muuttujat x ja y. 623 00:28:05,120 --> 00:28:08,060 Mutta jos joku muu oli kirjoittanut swap-toiminto, hän varmasti 624 00:28:08,060 --> 00:28:10,480 eivät tiedä, mitä minun muuttujia aiotaan kutsua. 625 00:28:10,480 --> 00:28:13,850 Niin ymmärtää, että tämä on siksi sinulla on kaksinaisuuden nimiä. 626 00:28:13,850 --> 00:28:16,800 Teknisesti voisin tehdä tämän sattumalta. 627 00:28:16,800 --> 00:28:19,750 Mutta ne olisivat kuitenkin kului kuin kopioita. 628 00:28:19,750 --> 00:28:22,940 Se olisi vain sattumaa esteettisesti jos henkilö, joka kirjoitti 629 00:28:22,940 --> 00:28:25,590 swap oli käytetty samoja nimiä. 630 00:28:25,590 --> 00:28:25,930 >> Selvä. 631 00:28:25,930 --> 00:28:29,010 Joten tässä vaiheessa tarinan, rivi 37, on 1. 632 00:28:29,010 --> 00:28:30,410 b on 2. 633 00:28:30,410 --> 00:28:32,040 Ja nyt lähden vaihtaa niitä. 634 00:28:32,040 --> 00:28:34,730 No ensinnäkin haluan todella tehdä tämän paljon yksinkertaisemmin. 635 00:28:34,730 --> 00:28:36,500 En tiedä mitä nuo kolme riviä koodia tekivät. 636 00:28:36,500 --> 00:28:37,370 Haluan vain tehdä tämän. 637 00:28:37,370 --> 00:28:38,850 b saa. 638 00:28:38,850 --> 00:28:40,170 saa b. 639 00:28:40,170 --> 00:28:41,450 Valmis. 640 00:28:41,450 --> 00:28:43,540 Miksi tämä rikki, loogisesti? 641 00:28:46,980 --> 00:28:48,590 Se on tavallaan intuitiivinen asia, eikö? 642 00:28:48,590 --> 00:28:50,640 Joten tulee b. 643 00:28:50,640 --> 00:28:52,450 Ja b. muuttuu. 644 00:28:52,450 --> 00:28:55,410 Mutta ongelma on, että heti kun linja 37 teloitetaan, mikä on 645 00:28:55,410 --> 00:28:58,170 arvon a ja b? 646 00:28:58,170 --> 00:28:59,070 Sama, 1. 647 00:28:59,070 --> 00:29:03,460 Koska olet clobbered, niin sanotusti, olet muuttanut b yhtä. 648 00:29:03,460 --> 00:29:06,000 Joten kun linja 37 suoritetaan, se on hienoa. 649 00:29:06,000 --> 00:29:09,940 Sinulla on nyt kaksi kappaletta numero 1 sisällä tätä toimintoa. 650 00:29:09,940 --> 00:29:14,720 Joten sitten kun sanot linjassa 38, saa b, hyvin, olet sellainen ruuvattu. 651 00:29:14,720 --> 00:29:17,370 Koska olet vain määrittämällä 1-1. 652 00:29:17,370 --> 00:29:20,400 Olet tavallaan menetetty arvo, jota välittänyt. 653 00:29:20,400 --> 00:29:22,910 >> Joten alkuperäinen versio, huomaa mitä tein. 654 00:29:22,910 --> 00:29:26,620 Minä sen sijaan oli kolmannella rivillä koodia, joka näytti tältä. 655 00:29:26,620 --> 00:29:29,910 Julistan väliaikainen muuttuja - tmp on hyvin yleinen nimi 656 00:29:29,910 --> 00:29:31,240 ja väliaikainen muuttuja. 657 00:29:31,240 --> 00:29:34,280 Se int koska sen vastaamaan mitä haluan tehdä kopion. 658 00:29:34,280 --> 00:29:39,720 Minä tallentaa kopion sisällä tmp. Joten kun linja 37 on suoritettu, 659 00:29:39,720 --> 00:29:41,390 arvo on - 660 00:29:41,390 --> 00:29:42,970 nopeasti järki tarkistaa - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 Arvo b on 2. 663 00:29:45,780 --> 00:29:48,470 Ja arvo tmp on myös 1. 664 00:29:48,470 --> 00:29:51,470 Joten nyt toteuttaa linjan 38. 665 00:29:51,470 --> 00:29:57,180 Joten kun linja 38 suorittaa, vie arvo b. 666 00:29:57,180 --> 00:29:58,510 Ja B 2. 667 00:29:58,510 --> 00:30:00,500 Joten nyt 2. 668 00:30:00,500 --> 00:30:03,110 Joten tässä vaiheessa tarinan, on 2, b on 2, 669 00:30:03,110 --> 00:30:05,130 ja tmp on 1. 670 00:30:05,130 --> 00:30:09,330 Joten nyt loogisesti, voimme vain plop tmp arvo tulee b. 671 00:30:09,330 --> 00:30:10,690 Ja olemme tehneet. 672 00:30:10,690 --> 00:30:12,170 >> Joten olemme ratkaisseet tämän ongelman. 673 00:30:12,170 --> 00:30:16,040 Valitettavasti, kun ohjelma suoritetaan tässä muodossa, se ei varsinaisesti vaihda 674 00:30:16,040 --> 00:30:17,700 mitä tahansa arvoja. 675 00:30:17,700 --> 00:30:18,950 Mutta on selvää, miksi? 676 00:30:23,420 --> 00:30:26,310 Korjasin looginen ongelma juuri hetki sitten. 677 00:30:26,310 --> 00:30:31,150 Mutta jälleen kerran, jos en suorita tämä ohjelma, x ja y säilyvät ennallaan vuoden 678 00:30:31,150 --> 00:30:33,834 ohjelman toteuttamista. 679 00:30:33,834 --> 00:30:34,760 [Kuulumattomissa] 680 00:30:34,760 --> 00:30:36,030 DAVID J. MALAN: Eli emme ole palautettu mitään. 681 00:30:36,030 --> 00:30:36,960 Niin se on totta. 682 00:30:36,960 --> 00:30:39,880 Mutta se muuttuu siellä on hieman ongelma, sillä tähän mennessä 683 00:30:39,880 --> 00:30:42,460 Ainoa asia, olemme voineet palata on yksi asia. 684 00:30:42,460 --> 00:30:46,540 Ja tämä on rajoitus C. Voit palauttaa oikeastaan ​​yksi arvo, 685 00:30:46,540 --> 00:30:48,970 jolloin, olen sellainen jumissa täällä 686 00:30:48,970 --> 00:30:51,805 koska voisin palata uusi arvo x tai voisin palata 687 00:30:51,805 --> 00:30:53,160 uusi arvo y. 688 00:30:53,160 --> 00:30:54,330 Mutta haluan molemmat takaisin. 689 00:30:54,330 --> 00:30:58,010 Joten takaisin ei yksinkertaista ratkaisua. 690 00:30:58,010 --> 00:30:59,770 Mutta ongelma pohjimmiltaan on miksi? 691 00:30:59,770 --> 00:31:03,270 Mitä me oikeastaan ​​vaihdettu? 692 00:31:03,270 --> 00:31:04,010 a ja b. 693 00:31:04,010 --> 00:31:07,670 Mutta a ja b ovat kopioita x ja y, mikä tarkoittaa, teimme tämän kaiken 694 00:31:07,670 --> 00:31:10,080 työtä - me juuri viettänyt kuten kolme minuuttia puhua swap 695 00:31:10,080 --> 00:31:11,680 toiminto ja kaikki kolme näistä muuttujista. 696 00:31:11,680 --> 00:31:15,090 Ja se on hyvä, aivan oikein erikseen. 697 00:31:15,090 --> 00:31:20,230 Mutta ja b soveltamisala vain on näitä rivejä tänne. 698 00:31:20,230 --> 00:31:24,130 Eli aivan kuten varten silmukka, jos julistaa kokonaisluvun I Inside varten 699 00:31:24,130 --> 00:31:27,400 loop - Samoin, jos olet julistamista ja b sisällä toiminto 700 00:31:27,400 --> 00:31:30,550 olet kirjoittanut, he vain pätevä sisällä tätä toiminnallisuutta. 701 00:31:30,550 --> 00:31:35,020 Mikä tarkoittaa heti vaihto tapahtuu täytäntöönpanovaltiossa ja menemme linjan 24 702 00:31:35,020 --> 00:31:38,380 linja 25, x ja y eivät ole muuttuneet lainkaan. 703 00:31:38,380 --> 00:31:42,580 Olet juuri tuhlannut paljon aikaa vaihtava kopioita muuttujia. 704 00:31:42,580 --> 00:31:46,490 >> Joten näyttää siltä, ​​että ratkaisu tähän on todella ei-ilmeinen. 705 00:31:46,490 --> 00:31:49,210 Se ei ole aivan riittävää palauttaa arvoja, koska voimme 706 00:31:49,210 --> 00:31:50,320 vain palauttaa yhden arvon. 707 00:31:50,320 --> 00:31:53,370 Ja en todellakaan halua vaihtaa sekä x ja y samanaikaisesti. 708 00:31:53,370 --> 00:31:55,020 Joten aiomme palata tähän. 709 00:31:55,020 --> 00:31:58,770 Mutta nyt, ymmärtää, että kysymys pohjimmiltaan johtuu siitä 710 00:31:58,770 --> 00:32:00,660 että a ja b ovat kopioita. 711 00:32:00,660 --> 00:32:03,450 Ja ne ovat omassa soveltamisalaan. 712 00:32:03,450 --> 00:32:04,980 No, yritetään ratkaista jollakin tavalla. 713 00:32:04,980 --> 00:32:09,200 Saanen todella siirry takaisin tänne ja avata, sanokaamme, neljättä 714 00:32:09,200 --> 00:32:11,170 Tämän buggy4. 715 00:32:11,170 --> 00:32:13,230 Ja mitä tästä? 716 00:32:13,230 --> 00:32:16,690 Tämä on samanlainen, mutta yksinkertaisempi ongelma katsoa ennen kuin ryhdymme puukottaa 717 00:32:16,690 --> 00:32:17,530 ratkaisemiseksi. 718 00:32:17,530 --> 00:32:19,440 Tämä ohjelma on nimeltään lisäys. 719 00:32:19,440 --> 00:32:24,320 Ja se ilmeisesti alustaa x kokonaisluvun 1 mukainen 18. 720 00:32:24,320 --> 00:32:25,950 Sitten väittävät x on 1. 721 00:32:25,950 --> 00:32:28,020 En sitten vaatia mukaa, piste, piste, piste. 722 00:32:28,020 --> 00:32:29,460 Sitten soittaa lisäys. 723 00:32:29,460 --> 00:32:33,480 Mutta sitten linjat 22 ja 23, väitän se on kasvatettu. 724 00:32:33,480 --> 00:32:37,780 Väitän x on nyt mitä se on, 2 oletettavasti. 725 00:32:37,780 --> 00:32:39,770 >> Mutta tämä ohjelma on buginen. 726 00:32:39,770 --> 00:32:41,020 Mikä on ongelmana? 727 00:32:43,450 --> 00:32:44,418 Niin? 728 00:32:44,418 --> 00:32:45,668 [Kuulumattomissa] 729 00:32:49,260 --> 00:32:49,850 DAVID J. MALAN: Aivan. 730 00:32:49,850 --> 00:32:52,430 Joten x on julistettu ilmeisesti linjalla 18. 731 00:32:52,430 --> 00:32:54,410 Se on sisällä tärkein on aaltosulkeita. 732 00:32:54,410 --> 00:32:58,470 Niin yksinkertainen vastaus tähän on, että hyvin, x on olemassa täällä. 733 00:32:58,470 --> 00:33:01,510 Se ei ole linjassa 32. 734 00:33:01,510 --> 00:33:03,710 Joten tämä ohjelma itse ei edes kääntää. 735 00:33:03,710 --> 00:33:07,910 Kääntäjä, kun yritän koota tätä koodia, tulee huutaa minulle 736 00:33:07,910 --> 00:33:13,190 joitakin pimeän tunnus tai jotakin tämänsuuntaista. 737 00:33:13,190 --> 00:33:13,870 Itse asiassa yritetään. 738 00:33:13,870 --> 00:33:15,235 Tämä on merkki buggy4. 739 00:33:17,780 --> 00:33:18,190 Siellä se on. 740 00:33:18,190 --> 00:33:22,030 Käytä pimeän tunnisteen x linjassa 32. 741 00:33:22,030 --> 00:33:25,700 Ja itse asiassa, olkaamme selkeämpi täällä tänään, jotta tämä on hyödyllistä 742 00:33:25,700 --> 00:33:27,140 virka ja kotona. 743 00:33:27,140 --> 00:33:29,000 Huomaa, että se on hieman arvoituksellisesti kirjoitettu. 744 00:33:29,000 --> 00:33:31,560 Mutta se, että clang on huusi meille sanoen 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5, on todella hyödyllinen. 746 00:33:36,970 --> 00:33:41,970 Se tarkoittaa, että virhe on linjalla 32 klo merkkipaikkaan viisi. 747 00:33:41,970 --> 00:33:44,670 Joten yksi, kaksi, kolme, neljä, viisi. 748 00:33:44,670 --> 00:33:46,640 Se on, itse asiassa, missä ongelma on. 749 00:33:46,640 --> 00:33:49,710 Ja myös pitää mielessä virka ja kotona, olen onnekas täällä. 750 00:33:49,710 --> 00:33:50,740 Minulla on yksi virhe. 751 00:33:50,740 --> 00:33:52,660 Se tulee olemaan suhteellisen helppo korjata. 752 00:33:52,660 --> 00:33:56,220 Mutta jos saat koko ruudun täynnä ylivoimainen virheilmoituksia, jälleen, 753 00:33:56,220 --> 00:33:59,240 ymmärtää, että alimmainen voisi vain olla oire 754 00:33:59,240 --> 00:34:00,320 ylimmän kanssa. 755 00:34:00,320 --> 00:34:03,560 Joten aina jahdata alas bugeja ylhäältä alaspäin. 756 00:34:03,560 --> 00:34:06,720 Koska siellä voi olla juuri ketjuttamalla mukaan ehdottaa sinulle 757 00:34:06,720 --> 00:34:09,030 on paljon enemmän ongelmia kuin sinä itse tehdä. 758 00:34:09,030 --> 00:34:14,989 >> Joten miten voisimme korjata tämän, jos tavoite on kasvattaa x? 759 00:34:14,989 --> 00:34:15,370 Mikä tuo on? 760 00:34:15,370 --> 00:34:15,620 Okei. 761 00:34:15,620 --> 00:34:16,679 Joten voimme tehdä x maailmanlaajuisia. 762 00:34:16,679 --> 00:34:18,860 Otetaan pikakuvakkeen että olen varoitti aiemmin. 763 00:34:18,860 --> 00:34:20,550 Mutta pahus, meidän täytyy vain hätäratkaisu. 764 00:34:20,550 --> 00:34:23,949 Joten vain sanoa int x tänne. 765 00:34:23,949 --> 00:34:25,600 Se tekee x maailmanlaajuisesti. 766 00:34:25,600 --> 00:34:28,460 Joten nyt tärkein on pääsy siihen. 767 00:34:28,460 --> 00:34:31,780 Ja lisäys on pääsy siihen. 768 00:34:31,780 --> 00:34:33,860 Ja niin haluan mennä eteenpäin ja kokoaa nyt. 769 00:34:33,860 --> 00:34:36,330 Tee buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Näyttää koota nyt. 771 00:34:37,440 --> 00:34:40,949 Katsotaanpa juosta buggy4, ja se näyttää todella toimivat. 772 00:34:40,949 --> 00:34:42,780 Nyt tämä on yksi näistä asioista - 773 00:34:42,780 --> 00:34:45,870 niin kuin minä sanon, ei niin kuin minä teen, koska olen juuri tehnyt tänne. 774 00:34:45,870 --> 00:34:49,239 Koska yleensä, meidän ohjelmat menevät paljon mielenkiintoista ja 775 00:34:49,239 --> 00:34:50,440 paljon kauemmin kuin tämä. 776 00:34:50,440 --> 00:34:53,199 Ja jos ratkaisu elämän ongelmiin on vain ah, laita kaikki 777 00:34:53,199 --> 00:34:57,550 muuttujat yläreunassa tiedoston, nopeasti tehdä ohjelmia saada 778 00:34:57,550 --> 00:34:59,700 järkyttävän vaikea hallita. 779 00:34:59,700 --> 00:35:02,050 Se saa vaikeampi keksiä uusia muuttujan nimeä. 780 00:35:02,050 --> 00:35:05,240 Se saa vaikeampi ymmärtää, mitä muuttuja tekee mitä. 781 00:35:05,240 --> 00:35:08,250 >> Ja niin yleensä, tämä ei ole hyvä ratkaisu. 782 00:35:08,250 --> 00:35:09,780 Joten tehdä tämän paremmin. 783 00:35:09,780 --> 00:35:11,920 Emme halua käyttää globaali muuttuja täällä. 784 00:35:11,920 --> 00:35:14,050 En halua kasvattaa x. 785 00:35:14,050 --> 00:35:16,050 Niin voisin tietysti - 786 00:35:16,050 --> 00:35:18,450 lopussa päivä, se on tavallaan typerä tarina, koska me vain teemme tätä. 787 00:35:18,450 --> 00:35:22,050 Mutta jos en tiedä, että operaattori tai en saa 788 00:35:22,050 --> 00:35:27,700 muuttaa sitä pääasiassa itse, miten muuten voisin toteuttaa Ken tänne, tämä 789 00:35:27,700 --> 00:35:31,450 aikaa ei kuutio vaan kasvattaa? 790 00:35:31,450 --> 00:35:32,700 Miten voin muuttaa tämän asian täällä? 791 00:35:32,700 --> 00:35:33,025 Joo. 792 00:35:33,025 --> 00:35:34,275 [Kuulumattomissa] 793 00:35:37,430 --> 00:35:38,000 DAVID J. MALAN: Okei, hyvä. 794 00:35:38,000 --> 00:35:40,490 Miksi en kulkea x? 795 00:35:40,490 --> 00:35:44,390 Ja sitten kuin palauttaa se, miksi en vain tee paluuta x + 1? 796 00:35:44,390 --> 00:35:46,370 Nyt, pari enemmän asioiden on muututtava täällä. 797 00:35:46,370 --> 00:35:47,530 Olen oikealla tiellä. 798 00:35:47,530 --> 00:35:48,910 Mitä muuta pitää nipistää? 799 00:35:48,910 --> 00:35:49,470 Joku muu. 800 00:35:49,470 --> 00:35:49,882 Niin? 801 00:35:49,882 --> 00:35:51,530 [Kuulumattomissa] 802 00:35:51,530 --> 00:35:53,520 DAVID J. MALAN: Minun täytyy vaihtaa paluuta tyyppiä kasvu 803 00:35:53,520 --> 00:35:54,590 koska se ei mitätöidä. 804 00:35:54,590 --> 00:35:56,650 Void tarkoittaa mitään ei ole palautettu. 805 00:35:56,650 --> 00:35:57,600 Mutta selvästi, nyt se on. 806 00:35:57,600 --> 00:36:01,280 Joten tämä tarvitsee vaihtaa INT oltava tahansa 807 00:36:01,280 --> 00:36:02,580 Olen oikeastaan ​​takaisin. 808 00:36:02,580 --> 00:36:04,580 >> Nyt jotain muuta on vielä buginen täällä. 809 00:36:04,580 --> 00:36:04,982 Niin? 810 00:36:04,982 --> 00:36:06,590 [Kuulumattomissa] 811 00:36:06,590 --> 00:36:07,630 DAVID J. MALAN: Joten minun täytyy kasvattaa x? 812 00:36:07,630 --> 00:36:10,336 [Kuulumattomissa] 813 00:36:10,336 --> 00:36:11,880 DAVID J. MALAN: Ah, niin minun täytyy kulkea x. 814 00:36:11,880 --> 00:36:13,300 Joten minun täytyy tehdä tämä täällä. 815 00:36:17,590 --> 00:36:19,690 Joten prototyyppi, minun täytyy muuttaa tänne. 816 00:36:19,690 --> 00:36:21,290 Joten tämä on tullut int. 817 00:36:21,290 --> 00:36:22,820 Tämä on tullut - 818 00:36:22,820 --> 00:36:23,670 hmm. 819 00:36:23,670 --> 00:36:24,710 Minulla on oikeastaan ​​vika täällä. 820 00:36:24,710 --> 00:36:25,780 Katsotaanpa korjata ensin. 821 00:36:25,780 --> 00:36:27,990 Mitä pitäisi tämä oikeastaan ​​on? 822 00:36:27,990 --> 00:36:29,330 Joten se täytyy olla int jotain. 823 00:36:29,330 --> 00:36:30,340 Se voisi olla x. 824 00:36:30,340 --> 00:36:33,120 Mutta rehellisesti, jos alkaa soittaa kaikki muuttujat x, se tulee saamaan 825 00:36:33,120 --> 00:36:35,250 vähemmän selvää, mikä on mikäkin. 826 00:36:35,250 --> 00:36:38,210 Joten vain mielivaltaisesti valita eri nimeämiskäytäntöä minun 827 00:36:38,210 --> 00:36:40,220 auttaja toimintoja, toiminnot Kirjoitan. 828 00:36:40,220 --> 00:36:41,100 Me kutsumme sitä. 829 00:36:41,100 --> 00:36:44,500 Tai voisimme kutsua sitä - kutsukaamme sitä even_number olla vieläkin selvempi. 830 00:36:44,500 --> 00:36:47,610 Joten sitten on palattava lukumäärästä riippumatta on plus 1. 831 00:36:47,610 --> 00:36:49,720 Ja nyt minun täytyy muuttaa yhden asian tänne ja yksi 832 00:36:49,720 --> 00:36:50,700 toinen asia täällä. 833 00:36:50,700 --> 00:36:54,150 Mitä minun täytyy vaihtaa linjan 21 ensin? 834 00:36:54,150 --> 00:36:55,390 Minun täytyy antaa se x. 835 00:36:55,390 --> 00:36:57,480 Joten en voi vain soittaa lisäys x. 836 00:36:57,480 --> 00:37:01,000 Minun täytyy muistaa vastauksen muuttamalla arvoa x on 837 00:37:01,000 --> 00:37:02,020 vasemmalla puolella. 838 00:37:02,020 --> 00:37:04,930 Ja vaikka x on nyt vasemmalle ja oikealle, se on täysin hieno, sillä 839 00:37:04,930 --> 00:37:08,370 oikea puoli saa suoritetaan ensin sitten saa plopped vasempaan 840 00:37:08,370 --> 00:37:10,240 käsi juttu, x tässä tapauksessa. 841 00:37:10,240 --> 00:37:11,900 Ja sitten lopuksi, tämä on helppo korjata nyt. 842 00:37:11,900 --> 00:37:15,080 Tämä pitäisi vain vastata mitä alhaalla. 843 00:37:15,080 --> 00:37:17,120 Int numero. 844 00:37:17,120 --> 00:37:17,320 >> Selvä. 845 00:37:17,320 --> 00:37:20,290 Joten koko joukko muutoksia todella tyhmä toimintoa. 846 00:37:20,290 --> 00:37:24,250 Mutta edustaja asioita me yhä haluamme tehdä. 847 00:37:24,250 --> 00:37:25,490 Joten tee buggy4. 848 00:37:25,490 --> 00:37:26,485 Olen mokasin jonnekin. 849 00:37:26,485 --> 00:37:27,520 Voi luoja. 850 00:37:27,520 --> 00:37:29,660 Viisi virheitä, kuten, kuusi linja-ohjelman. 851 00:37:29,660 --> 00:37:36,500 Joten mikä hätänä linjalla 18, merkki 5? 852 00:37:36,500 --> 00:37:36,970 Selvä. 853 00:37:36,970 --> 00:37:39,330 Joten minun on ilmoitettava tästä int. 854 00:37:39,330 --> 00:37:39,630 Selvä. 855 00:37:39,630 --> 00:37:41,790 Joten katsotaanpas, koko joukko muita virheitä. 856 00:37:41,790 --> 00:37:42,230 Oh my god. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 Mutta jälleen kerran, haluan vain tyhjentää ruudun - 859 00:37:46,020 --> 00:37:48,660 Ohjaus L täällä - ja re-run clang. 860 00:37:48,660 --> 00:37:51,340 Joten viisi tehtävää on oikeastaan ​​vain se yksi. 861 00:37:51,340 --> 00:37:53,500 Joten nyt mennään juosta buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Vau. 863 00:37:54,150 --> 00:37:57,434 x on kasvatetaan oikein. 864 00:37:57,434 --> 00:37:58,420 >> Selvä. 865 00:37:58,420 --> 00:38:01,700 Kaikki kysymykset siitä, miten kasvattaa numeroita? 866 00:38:01,700 --> 00:38:02,896 Niin? 867 00:38:02,896 --> 00:38:06,864 SPEAKER 2: Miksi et voi vain muuttaa x numeroon muuttujan 868 00:38:06,864 --> 00:38:08,860 nimi ja se tiedät mitä tarkoitat? 869 00:38:08,860 --> 00:38:09,600 DAVID J. MALAN: Hyvä kysymys. 870 00:38:09,600 --> 00:38:13,130 Miten on mahdollista, että voin vain vaihtaa x numeroon ja ohjelma tietää 871 00:38:13,130 --> 00:38:13,990 heti? 872 00:38:13,990 --> 00:38:16,120 Joten jälleen, ajattele sitä tällä abstraktio. 873 00:38:16,120 --> 00:38:20,110 Joten jos olen tärkein ja Ken on laajentuva suoraan sanottuna, en välitä 874 00:38:20,110 --> 00:38:21,540 mitä Ken kutsuu iPad. 875 00:38:21,540 --> 00:38:25,350 En välitä, mitä hän kutsuu mitään, että on tekemistä hänen täytäntöönpanoon 876 00:38:25,350 --> 00:38:26,550 Tämän toiminnallisuuden. 877 00:38:26,550 --> 00:38:32,130 Joten tämä on täytäntöönpanon yksityiskohta, että minä, tärkein, älä 878 00:38:32,130 --> 00:38:33,010 tarvitse välittää. 879 00:38:33,010 --> 00:38:37,440 Ja niin yksinkertaisesti muuttamalla sitä johdonmukaisesti sisällä toimintoa, numero tästä 880 00:38:37,440 --> 00:38:41,340 ja numero täällä on kaikki se kestää niin kauan kuin minä kääntää. 881 00:38:41,340 --> 00:38:43,820 Se on tavallaan kuin jos ajattelee - monet meistä, ne teistä, joilla kuljettajan 882 00:38:43,820 --> 00:38:46,590 lisenssejä, jotka olet ajanut, tai jos olet jo ajettu auto - 883 00:38:46,590 --> 00:38:50,710 useimmat meistä ei ole aavistustakaan siitä, miten auto toimii alla huppu. 884 00:38:50,710 --> 00:38:54,710 Ja kirjaimellisesti, jos avaa huppu, useimmat meistä - minä mukaan lukien - 885 00:38:54,710 --> 00:38:56,580 aio todellakaan tiedä mitä me tarkastelemme. 886 00:38:56,580 --> 00:38:58,850 Kind of kuten saatat tuntea juttuja kuten tämä nyt. 887 00:38:58,850 --> 00:39:01,380 Mutta meidän ei todellakaan tarvitse huolehtia kuinka auto toimii. 888 00:39:01,380 --> 00:39:05,000 Meillä ei tarvitse välittää mitä kaikki tangot ja männät ja kaapelit sisällä 889 00:39:05,000 --> 00:39:07,700 auto todella tekevät. 890 00:39:07,700 --> 00:39:11,360 >> Eli jotain mitä te kutsutte mäntä ei ole väliä 891 00:39:11,360 --> 00:39:11,920 täällä tässä tapauksessa. 892 00:39:11,920 --> 00:39:12,490 Sama idea. 893 00:39:12,490 --> 00:39:12,670 Niin? 894 00:39:12,670 --> 00:39:13,920 [Kuulumattomissa] 895 00:39:25,250 --> 00:39:29,530 DAVID J. MALAN: jos olisi enemmän käyttöä muuttujan XA hetki sitten, 896 00:39:29,530 --> 00:39:32,220 te, ohjelmoija, olisi muutettava niitä kaikkialla. 897 00:39:32,220 --> 00:39:35,230 Tai voit kirjaimellisesti tehdä Tiedosto-valikko, ja valitse sitten Etsi / Korvaa- 898 00:39:35,230 --> 00:39:36,270 jotain. 899 00:39:36,270 --> 00:39:40,110 Mutta olet menossa täytyy tehdä nämä muutokset itse. 900 00:39:40,110 --> 00:39:41,200 Sinun täytyy olla johdonmukainen. 901 00:39:41,200 --> 00:39:42,450 [Kuulumattomissa] 902 00:39:47,200 --> 00:39:48,960 DAVID J. MALAN: tietyssä järjestyksessä kuin täällä? 903 00:39:48,960 --> 00:39:52,660 Jos tämä oli KANS toiseen numeroon? 904 00:39:52,660 --> 00:39:52,940 Joo. 905 00:39:52,940 --> 00:39:56,430 Joten jotta asiat kun soitat toimintoa. 906 00:39:56,430 --> 00:40:00,350 Joten jos olisin vaativat lisäys tänne jotain pilkulla jotain, 907 00:40:00,350 --> 00:40:01,400 siellä suoraan kartoitus. 908 00:40:01,400 --> 00:40:04,490 Ensimmäinen muuttuja, riippumatta sitä kutsutaan, on tehty kopio ensimmäisen 909 00:40:04,490 --> 00:40:05,480 argumentti tänne. 910 00:40:05,480 --> 00:40:07,280 Anteeksi, tämän ei pitäisi olla suluissa. 911 00:40:07,280 --> 00:40:09,300 Toinen perustelu on linjassa toinen. 912 00:40:09,300 --> 00:40:11,220 >> Joten tilaa, kyllä ​​asiat. 913 00:40:11,220 --> 00:40:11,490 Selvä. 914 00:40:11,490 --> 00:40:13,360 Anteeksi Otin pitkä matka sinne. 915 00:40:13,360 --> 00:40:14,610 Muita kysymyksiä? 916 00:40:16,460 --> 00:40:16,850 Selvä. 917 00:40:16,850 --> 00:40:20,300 Joten jos voimme olla maalata kuvan siitä, mitä todella tapahtuu 918 00:40:20,300 --> 00:40:22,160 Tässä alla huppu, niin sanoakseni. 919 00:40:22,160 --> 00:40:26,310 Joten tämä on suorakulmio, joka voisi edustaa tietokoneen muistiin. 920 00:40:26,310 --> 00:40:31,240 Joten vaikka sinulla ei ole aavistustakaan siitä, miten muisti toimii ja miten RAM toimii ainakin 921 00:40:31,240 --> 00:40:33,590 olettaa, että sinulla on rypäleterttuja se näinä päivinä. 922 00:40:33,590 --> 00:40:34,740 Sinulla megatavua se. 923 00:40:34,740 --> 00:40:35,760 Sinulla gigatavua sitä. 924 00:40:35,760 --> 00:40:40,690 Ja me tiedämme viikolla nollasta että tavu on juuri mitä? 925 00:40:40,690 --> 00:40:41,280 8 bittiä. 926 00:40:41,280 --> 00:40:42,730 Oikea, joten 8 nollia ja ykkösiä. 927 00:40:42,730 --> 00:40:46,300 Joten jos tietokoneessa on keikka RAM, kaksi keikkaa RAM näinä päivinä, olet 928 00:40:46,300 --> 00:40:54,450 miljardia tai 2 miljardia tavua muistia, eli noin 8 miljardia euroa tai 16000000000 929 00:40:54,450 --> 00:40:56,560 bittiä, tietokoneesi sisälle. 930 00:40:56,560 --> 00:40:59,710 Nyt toisin pikku Woolly Willy esimerkiksi se ei ole magneettisia hiukkasia 931 00:40:59,710 --> 00:41:00,560 tyypillisesti enää. 932 00:41:00,560 --> 00:41:04,470 Yhä läppäreissä ainakin se on solid state drives, SSD, että 933 00:41:04,470 --> 00:41:05,560 vain ei ole liikkuvia osia. 934 00:41:05,560 --> 00:41:06,710 Se on sähköinen. 935 00:41:06,710 --> 00:41:08,070 Se kaikki sähkö perusteella. 936 00:41:08,070 --> 00:41:12,360 Niin kuitenkin sitä mieltä, tämän suorakulmion kuin vain edustaa yksi tai kaksi 937 00:41:12,360 --> 00:41:13,930 gigatavua muistia, että sinulla on. 938 00:41:13,930 --> 00:41:15,500 >> Joten se kimpale muistia. 939 00:41:15,500 --> 00:41:20,460 Nyt maailma tietojenkäsittelytieteen on eräänlainen osioitu pois palasina 940 00:41:20,460 --> 00:41:22,570 muisti tehdä eri asioita. 941 00:41:22,570 --> 00:41:25,930 Niinpä esimerkiksi, jos tämä on tietokoneen RAM - ehdottaman 942 00:41:25,930 --> 00:41:30,400 suorakulmio siellä - käy ilmi, että sopimuksen mukaan, yläreunassa teidän RAM, joten 943 00:41:30,400 --> 00:41:33,170 puhua, on yleensä mitä kutsutaan tekstin segmenttiin. 944 00:41:33,170 --> 00:41:35,910 Nämä ovat nollia ja ne, jotka olet kääntänyt. 945 00:41:35,910 --> 00:41:39,040 Joten kun teimme alla huppu, mitä a.out on, kaikki 946 00:41:39,040 --> 00:41:40,360 nollat ​​ja ykköset - 947 00:41:40,360 --> 00:41:44,000 kun suoritat ohjelman, nuo nollia ja ykkösiä ladataan kiintolevyltä 948 00:41:44,000 --> 00:41:46,290 ajaa jotain kutsutaan RAM. 949 00:41:46,290 --> 00:41:48,950 Ja RAM, he laittaa yläosassa. 950 00:41:48,950 --> 00:41:50,330 Nyt välin, sinulla on muita asioita. 951 00:41:50,330 --> 00:41:53,060 Alustettu data, alustamattoman tietoja. 952 00:41:53,060 --> 00:41:56,440 Nämä kaksi karhoa muistia viittaavat globaaleja muuttujia, jotka 953 00:41:56,440 --> 00:41:57,530 et käytä usein. 954 00:41:57,530 --> 00:42:00,630 Mutta joskus jos et, he päätyvät sinne myös. 955 00:42:00,630 --> 00:42:01,620 Sitten on joitakin muita juttuja. 956 00:42:01,620 --> 00:42:04,130 Ympäristömuuttujat, joita emme viettää paljon aikaa. 957 00:42:04,130 --> 00:42:06,120 Mutta sitten kaksi tärkeää asiaa, jotka tulevat takaisin koko tämän 958 00:42:06,120 --> 00:42:08,130 lukukausi, pino ja keko. 959 00:42:08,130 --> 00:42:12,280 >> Joten useimmat tietokoneen muistista on varattu, kun käynnissä ohjelma 960 00:42:12,280 --> 00:42:14,880 jotain kutsutaan pino ja jotain kutsutaan kasaan. 961 00:42:14,880 --> 00:42:16,940 Ja emme aio puhua kasan tänään, mutta me 962 00:42:16,940 --> 00:42:18,180 puhua pino. 963 00:42:18,180 --> 00:42:22,910 Ja pino on tarkoitus loihtia visuaalisen samankaltaisten ruokasali 964 00:42:22,910 --> 00:42:26,120 ateria lokerot Mather Talo tai missä satut olemaan, jos 965 00:42:26,120 --> 00:42:27,810 ruokasali henkilökunta puhdistaa niitä joka päivä. 966 00:42:27,810 --> 00:42:30,180 He pinota ne ylös lattiasta ylöspäin. 967 00:42:30,180 --> 00:42:33,800 Ja samalla muistissa, on tämä ajatus, että laittaisit jotain 968 00:42:33,800 --> 00:42:36,740 pino, laittaa jotain pino, laittaa jotain pinoon. 969 00:42:36,740 --> 00:42:38,000 Ja mitä me tarkoitamme tällä? 970 00:42:38,000 --> 00:42:41,430 No, katsotaanpa lähentää vain alaosassa Kuvan, tietokoneen 971 00:42:41,430 --> 00:42:43,990 RAM, ehdottaa seuraavaa. 972 00:42:43,990 --> 00:42:48,300 On käynyt ilmi, että kun ajaa ohjelmaa, kuten a.out tai hei riippumatta 973 00:42:48,300 --> 00:42:49,920 ohjelma on, että olet kirjoittanut, 974 00:42:49,920 --> 00:42:53,030 taas näitä nollia ja ykkösiä ladataan kiintolevyltä - mikä on 975 00:42:53,030 --> 00:42:56,190 pitkäaikaisen varastoinnin, pysyy siellä vaikka vedät pistokkeen - 976 00:42:56,190 --> 00:42:57,220 ladataan RAM. 977 00:42:57,220 --> 00:42:59,020 RAM on nopeampaa kuin kiintolevyt. 978 00:42:59,020 --> 00:43:00,700 Se on pienempi kuin kiintolevyt. 979 00:43:00,700 --> 00:43:03,490 Mutta se jos ohjelmia elää kun käytät niitä. 980 00:43:03,490 --> 00:43:06,380 >> Joten kaksoisnapsautat ohjelman Mac tai PC - se on ladattu 981 00:43:06,380 --> 00:43:07,750 kiintolevy RAM. 982 00:43:07,750 --> 00:43:11,760 Heti kun se on ladattu RAM, nollat ​​ja ykköset mennä way top, 983 00:43:11,760 --> 00:43:13,130 ns tekstin segmenttiin. 984 00:43:13,130 --> 00:43:17,040 Mutta sitten heti kun ohjelma todella käynnistyy, tärkeimmät 985 00:43:17,040 --> 00:43:18,140 toimintoa kutsutaan. 986 00:43:18,140 --> 00:43:21,070 Ja tärkein, kuten olemme nähneet, on usein paikallisia muuttujia. 987 00:43:21,070 --> 00:43:24,560 Ja se on ints ja jousille sekä merkkiä ja vastaavat. 988 00:43:24,560 --> 00:43:28,300 Joten jos ohjelma että olet kirjoittanut tai ohjelma, joka olet 989 00:43:28,300 --> 00:43:33,680 kaksinkertainen napsautti käyttää joitakin muuttujia sisällä tärkein, he päätyvät 990 00:43:33,680 --> 00:43:37,020 pohjassa pinon muistin, niin sanoakseni. 991 00:43:37,020 --> 00:43:39,160 Nyt konkreettisemmin, mitä tämä oikeastaan ​​tarkoittaa? 992 00:43:39,160 --> 00:43:44,080 Tämä tarkoittaa vain sitä, että jos aioimme numeroida asioita - 993 00:43:44,080 --> 00:43:49,380 jos aioimme määrän tavua RAM tietokoneen, huomaat, että 994 00:43:49,380 --> 00:43:51,650 tämä voi olla tavu numero nolla. 995 00:43:51,650 --> 00:43:56,130 Tämä voi olla tavu numero yksi, kaksi, kolme, neljä, viisi, kuusi, kaikki 996 00:43:56,130 --> 00:43:57,290 asti pitävän - 997 00:43:57,290 --> 00:44:01,520 2000000000 olisi aina siellä huipulla. 998 00:44:01,520 --> 00:44:05,960 Eli toisin sanoen, kun puhumme RAM tai muistin kannalta tavua, se 999 00:44:05,960 --> 00:44:09,680 vain sitä, että joku on päättänyt mitä numeroida kukin 1000 00:44:09,680 --> 00:44:11,110 ne paloina muistia. 1001 00:44:11,110 --> 00:44:16,950 >> Joten kun tarvitset 32 ​​bittiä int tai tarvitset 8 bittiä char, jossa 1002 00:44:16,950 --> 00:44:18,320 he päätyvät muistissa? 1003 00:44:18,320 --> 00:44:20,650 No käsitteellisesti, ne vain päätyvät alareunassa tämän 1004 00:44:20,650 --> 00:44:21,780 asia kutsutaan pino. 1005 00:44:21,780 --> 00:44:25,670 Mutta mitä mielenkiintoista nyt kun tärkein kutsuu toimintoa. 1006 00:44:25,670 --> 00:44:28,830 Oletetaan toiminto nimeltään foo vain mielivaltainen nimi. 1007 00:44:28,830 --> 00:44:32,480 Mitä tapahtuu, on tärkein on alaosassa tämän pinon muistia. 1008 00:44:32,480 --> 00:44:35,630 Foo nyt laittaa päälle tärkeimmistä muistiin. 1009 00:44:35,630 --> 00:44:40,020 Joten kaikki paikalliset muuttujat foo on lopulta eräänlainen käsitteellisesti edellä 1010 00:44:40,020 --> 00:44:40,770 kuin pääasiassa. 1011 00:44:40,770 --> 00:44:46,920 Jos foo kutsuu toista toiminto nimeltään baari, nuo muuttujat päätyvät tänne. 1012 00:44:46,920 --> 00:44:49,790 Jos palkki soittaa jotain muuta, täällä, täällä, täällä. 1013 00:44:49,790 --> 00:44:53,900 Joten mitä kiinnostavaa käynnissä ohjelma on, että soitat toimintoja, 1014 00:44:53,900 --> 00:44:57,720 ja koska nämä toiminnot puhelutoimintoja, ja kuin toiminnot edellyttävät toiminnot, 1015 00:44:57,720 --> 00:45:00,980 voit rakentaa tämän pinon toimintoja muistiin. 1016 00:45:00,980 --> 00:45:06,740 Ja vain kerran funktio palaa sinä alkaa saada että muisti takaisin. 1017 00:45:06,740 --> 00:45:11,190 Joten yksi helpoimmista tavoista loppuu muisti tietokoneohjelma on 1018 00:45:11,190 --> 00:45:14,170 kirjoittaa toimintoja, jotka eivät koskaan palaa. 1019 00:45:14,170 --> 00:45:16,650 >> Niinpä esimerkiksi mennään osoittaa niin paljoa 1020 00:45:16,650 --> 00:45:18,460 tarkoituksellisesti buginen ohjelma. 1021 00:45:18,460 --> 00:45:24,690 Anna minun mennä eteenpäin ja tehdä # include , int main (void). 1022 00:45:24,690 --> 00:45:31,270 Ja aion tehdä, kun (2> 1), joka luultavasti ei koskaan 1023 00:45:31,270 --> 00:45:33,370 muuttaa meitä. 1024 00:45:33,370 --> 00:45:37,720 Ja anna minun mennä eteenpäin nyt ja tehdä printf. 1025 00:45:37,720 --> 00:45:39,950 Oikeastaan, se tulee olemaan vähemmän visuaalisesti kiinnostavia. 1026 00:45:39,950 --> 00:45:40,460 Tehdään tämä. 1027 00:45:40,460 --> 00:45:44,840 INT (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 Tehdään tätä virhettä, i + +. 1029 00:45:49,740 --> 00:45:51,150 Ja älkäämme printf täällä. 1030 00:45:51,150 --> 00:45:52,550 Katsotaanpa käytännössä mitä olin saarnaamassa. 1031 00:45:52,550 --> 00:45:54,090 Mennään menetelmänä. 1032 00:45:54,090 --> 00:46:00,860 Void chorus, ja me sanomme int i. 1033 00:46:00,860 --> 00:46:02,295 Ja sitten aion sanoa, printf - 1034 00:46:04,871 --> 00:46:06,790 oh, tehkäämme tähän mielenkiintoisempia. 1035 00:46:06,790 --> 00:46:08,350 Katsotaanpa oikeastaan ​​ei tulosta mitään. 1036 00:46:08,350 --> 00:46:10,530 Toivotaan vain tehdä tämän. 1037 00:46:10,530 --> 00:46:11,780 Chorus (i). 1038 00:46:16,630 --> 00:46:17,000 >> Selvä. 1039 00:46:17,000 --> 00:46:20,040 Joten tämä on buginen koska miksi? 1040 00:46:20,040 --> 00:46:22,850 Teen tämän ylös kuin menen, koska ohjelma ei oikeastaan ​​tee mitään 1041 00:46:22,850 --> 00:46:23,420 kiinnostuksen. 1042 00:46:23,420 --> 00:46:24,670 Mutta se ei ole tavoite. 1043 00:46:24,670 --> 00:46:30,440 Tavoitteena on kirjoittaa ohjelma, jonka päätehtävä tekee mitä, ilmeisesti? 1044 00:46:30,440 --> 00:46:31,370 Soita itse. 1045 00:46:31,370 --> 00:46:32,600 Ja itse asiassa, emme tarvitse silmukka. 1046 00:46:32,600 --> 00:46:36,070 Katsotaanpa vaikka yksinkertaistaa tätä juuri niin kuin ei unohtaa todella 1047 00:46:36,070 --> 00:46:37,310 perustavanlaatuinen vika. 1048 00:46:37,310 --> 00:46:39,200 Tärkeimmät puhelut kertosäe laulamaan kuorossa. 1049 00:46:39,200 --> 00:46:41,760 Sitten tein jotain typerää, ja minulla oli kuoro soittaa kertosäkeen koska oletin 1050 00:46:41,760 --> 00:46:43,550 joku muu aikoi toteuttaa sen ehkä. 1051 00:46:43,550 --> 00:46:45,960 Ja nyt tämä ei tule kerätä vielä. 1052 00:46:45,960 --> 00:46:48,340 Minun täytyy tehdä mitä? 1053 00:46:48,340 --> 00:46:49,700 Tarvitsen prototyyppi, muistan. 1054 00:46:49,700 --> 00:46:55,520 Joten minun täytyy olla täällä void kuoro (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Joten nyt, jos menen tänne - 1056 00:46:57,470 --> 00:46:59,030 Oikeastaan ​​Katsotaanpa käyttää isompi ikkuna. 1057 00:46:59,030 --> 00:47:01,670 Mennään eteenpäin ja tehdä kertosäkeen. 1058 00:47:01,670 --> 00:47:06,000 Mennään eteenpäin ja tehdä kertosäkeen. 1059 00:47:06,000 --> 00:47:08,302 Käyttö tunnistamattomia ilmoittajan i. 1060 00:47:08,302 --> 00:47:09,860 Voi, se oli typerää. 1061 00:47:09,860 --> 00:47:11,020 Emme tarvitse väitettä. 1062 00:47:11,020 --> 00:47:13,680 Toivotaan vain tehdä tämän. 1063 00:47:13,680 --> 00:47:14,550 Olisipa aloittanut tällä tavalla. 1064 00:47:14,550 --> 00:47:16,160 Olisi ollut paljon helpompi ohjelma kirjoittaa. 1065 00:47:16,160 --> 00:47:20,100 Niin siellä. 1066 00:47:20,100 --> 00:47:23,870 Nyt mennään yli minun pääteikkunaa uusinnassa clang. 1067 00:47:23,870 --> 00:47:26,900 Ja tässä mennään. 1068 00:47:26,900 --> 00:47:28,020 Se oli todella nopea. 1069 00:47:28,020 --> 00:47:30,690 Mitä oikeastaan ​​vain tapahtui, vaikka? 1070 00:47:30,690 --> 00:47:33,430 No, nyt minä lisätä Print linjaa, jotta voimme nähdä. 1071 00:47:33,430 --> 00:47:41,330 Sallikaa minun sanoa printf, sanotaanko, että olen täällä. 1072 00:47:41,330 --> 00:47:43,470 Okei, no muuttujia, jätämme sen sellaista. 1073 00:47:43,470 --> 00:47:44,860 Saanen uusinnassa tekevät. 1074 00:47:44,860 --> 00:47:47,940 Saanen uusinnassa kuoro. 1075 00:47:47,940 --> 00:47:51,235 Ja tulla. 1076 00:47:53,880 --> 00:47:55,130 Jatka. 1077 00:47:57,630 --> 00:47:59,750 Sivuhuomautuksena, miksi se ei ole kaatunut vielä? 1078 00:47:59,750 --> 00:48:02,050 Segmentointi vika tapahtui erittäin nopeasti ennen. 1079 00:48:02,050 --> 00:48:04,250 [Kuulumattomissa] 1080 00:48:04,250 --> 00:48:04,830 DAVID J. MALAN: Aivan. 1081 00:48:04,830 --> 00:48:06,350 Joten se vie aikaa tulostaa. 1082 00:48:06,350 --> 00:48:08,370 Se vain vie enemmän työtä tietokoneen osa. 1083 00:48:08,370 --> 00:48:09,550 Ja siinä se on. 1084 00:48:09,550 --> 00:48:10,620 Segmentointi vika. 1085 00:48:10,620 --> 00:48:12,140 >> Joten huomaa miten nopeasti ohjelmista. 1086 00:48:12,140 --> 00:48:14,110 Jos et pysty tulostamaan mitään, huippunopea. 1087 00:48:14,110 --> 00:48:18,100 Mutta saimme kuitenkin tämän segmentoitumisen vika koska mitä oli tapahtumassa? 1088 00:48:18,100 --> 00:48:21,310 No, jos ajattelee, miten tietokoneen muisti on vahvistetut, tämä 1089 00:48:21,310 --> 00:48:22,890 sattuu olemaan tärkein. 1090 00:48:22,890 --> 00:48:23,800 Mutta täällä - 1091 00:48:23,800 --> 00:48:28,670 Haluan vain soittaa tähän chorus, ja kutsukaamme tätä Chorus. 1092 00:48:28,670 --> 00:48:33,420 Ja nyt jos minä teen estetiikka oikeassa, tämä on juuri menossa sanoa kuoro, 1093 00:48:33,420 --> 00:48:38,060 chorus, kuoro, kuoro, kuoro, kuoro, kuoro, loputtomiin. 1094 00:48:38,060 --> 00:48:39,920 Ja lopulta, mitä tulee tapahtumaan? 1095 00:48:39,920 --> 00:48:46,690 Jos iso kuva kirjaimellisesti tämä, mitä vain tapahtuu käsitteellisesti? 1096 00:48:46,690 --> 00:48:48,320 Pino ylitykset kasaan. 1097 00:48:48,320 --> 00:48:52,400 Tai pahempaa, juuri ylittynyt kaiken, myös tekstin segmentti, joka on 1098 00:48:52,400 --> 00:48:54,530 nollia ja ne, jotka edustavat ohjelman. 1099 00:48:54,530 --> 00:48:56,690 Lyhyesti sanottuna tämä on aivan super, super huono. 1100 00:48:56,690 --> 00:48:56,860 Oikea? 1101 00:48:56,860 --> 00:48:58,620 Ohjelmasi on kasvaneet käsistä. 1102 00:48:58,620 --> 00:49:02,840 Käytät paljon enemmän muistia kuin sinä tarkoitettu kaikille, koska tyhmä 1103 00:49:02,840 --> 00:49:03,920 virhe, tässä tapauksessa. 1104 00:49:03,920 --> 00:49:08,160 Tai tässä tapauksessa, hyvin tietoisesti tehnyt toiminnon kutsuvan itseään. 1105 00:49:08,160 --> 00:49:09,210 Nyt tämä ei ole lainkaan huono. 1106 00:49:09,210 --> 00:49:12,540 Toiminnot, jotka kutsuvat itseään todella on suuri voima 1107 00:49:12,540 --> 00:49:13,700 kun käytät sitä oikein. 1108 00:49:13,700 --> 00:49:15,650 En ole käyttänyt sitä oikein täällä. 1109 00:49:15,650 --> 00:49:16,940 >> Joten tämä ei ole lainkaan huono. 1110 00:49:16,940 --> 00:49:20,620 Mutta se, että en koskaan lopeta kutsuvan itseäni on perustavanlaatuinen 1111 00:49:20,620 --> 00:49:23,050 heikkous täällä tämän ohjelman. 1112 00:49:23,050 --> 00:49:25,090 Joten missä olemme menossa tämän kaiken kanssa? 1113 00:49:25,090 --> 00:49:26,230 No, mitä todella tapahtuu? 1114 00:49:26,230 --> 00:49:30,010 Kun Kutsun lisäys toiminto, kuten teimme näissä esimerkeissä, 1115 00:49:30,010 --> 00:49:33,290 Minulla arvo kuin 1 että välitän sisään 1116 00:49:33,290 --> 00:49:35,820 Minä kulkea kopion numero yksi. 1117 00:49:35,820 --> 00:49:37,080 Niin tapahtuu seuraavaa. 1118 00:49:37,080 --> 00:49:40,390 Joten mennä lisäyksen esimerkki. 1119 00:49:40,390 --> 00:49:44,230 Ja tämä kaveri on täällä. 1120 00:49:44,230 --> 00:49:46,800 Joten tässä mitä todella tapahtuu. 1121 00:49:46,800 --> 00:49:50,770 Kun kutsuin lisäys, ja välitän vuonna x, kuvallisesti mitä 1122 00:49:50,770 --> 00:49:53,660 täällä on tämä - 1123 00:49:53,660 --> 00:50:00,240 jos minulla on arvo 1 varastoitu täällä, ja olen todella soittaa lisäys, joka 1124 00:50:00,240 --> 00:50:02,680 on nyt nimeltään Chorus - 1125 00:50:02,680 --> 00:50:04,010 Joo, heittää minut pois täältä. 1126 00:50:04,010 --> 00:50:06,750 Joten kutsuvat tätä lisäystä. 1127 00:50:06,750 --> 00:50:09,420 Ja emme tiedä, mitä tämä seuraavaksi toiminto tulee olemaan. 1128 00:50:09,420 --> 00:50:14,270 Joten mitä todella tapahtuu on täällä jossain pääasiassa olen kimpale 1129 00:50:14,270 --> 00:50:16,670 muistin, joka on tallentamiseksi numero 1. 1130 00:50:16,670 --> 00:50:19,730 Kun pyydän lisäys, olen käyttäen toista kimpale muistia, mutta nyt 1131 00:50:19,730 --> 00:50:20,840 on kopio 1. 1132 00:50:20,840 --> 00:50:25,480 Kun minä kasvattaa tätä arvoa, tämä tulee 2 - hirvittävän kirjoitettu 1133 00:50:25,480 --> 00:50:26,420 näyttö tästä. 1134 00:50:26,420 --> 00:50:30,550 Mutta sitten, mitä tapahtuu kun kasvu palaa? 1135 00:50:30,550 --> 00:50:34,610 Tämä muisti vain saa luovuttaa takaisin käyttöjärjestelmä, joka tarkoittaa kaikkia 1136 00:50:34,610 --> 00:50:37,470 olet tehnyt mitään hyödyllistä. 1137 00:50:37,470 --> 00:50:43,460 Joka alun perin sisältyvä tärkein on yhä todella siellä. 1138 00:50:43,460 --> 00:50:44,650 >> Joten missä olemme menossa tähän? 1139 00:50:44,650 --> 00:50:49,400 No, käy ilmi, että muisti on tämä seläkkäin järjestyksessä 1140 00:50:49,400 --> 00:50:50,940 tavua, että voit laittaa kamaa sisään 1141 00:50:50,940 --> 00:50:53,760 Ja näyttää siltä, ​​että olemme jo nähneet jotain liittyy käyttöön 1142 00:50:53,760 --> 00:50:55,100 asiat takaisin takaisin takaisin takaisin. 1143 00:50:55,100 --> 00:51:00,170 Mikä on merkkijono, joka perustuu Viikko sitten ja nyt viikon kaksi? 1144 00:51:00,170 --> 00:51:01,840 Joten se on vain kokoelma merkkiä. 1145 00:51:01,840 --> 00:51:05,290 Joten se kääntyy pois, aivan kuten voit laittaa numerot muistiin, samalla voit 1146 00:51:05,290 --> 00:51:06,900 laittaa merkit muistiin. 1147 00:51:06,900 --> 00:51:09,810 Ja kun aloitamme laittamalla merkkejä muistin takaisin takaisin takaisin 1148 00:51:09,810 --> 00:51:12,800 takaisin, käy ilmi, että käyttämällä yksinkertaisimpia asioita, kuten for-silmukka tai 1149 00:51:12,800 --> 00:51:14,510 while-silmukka, voimme toistaa - 1150 00:51:14,510 --> 00:51:17,130 vasemmalta oikealle yli merkkijonon merkkejä - 1151 00:51:17,130 --> 00:51:20,720 ja alkaa hierovat niitä eri merkkiä kokonaan. 1152 00:51:20,720 --> 00:51:25,550 Voisi tulla B. B voisi tulla C. Joten lopulta, voimme ottaa 1153 00:51:25,550 --> 00:51:28,830 Englanti lause, että todella järkevää ja muuntaa kunkin 1154 00:51:28,830 --> 00:51:32,440 kirjaimia yksi kerrallaan kävelemällä läpi tietokoneen muistin jäljellä 1155 00:51:32,440 --> 00:51:34,300 oikeus todella salata. 1156 00:51:34,300 --> 00:51:36,590 >> Joten otamme viiden minuutin tauon, ja kun palaamme, hyvitämme 1157 00:51:36,590 --> 00:51:39,060 aloittaa tämän prosessin sekoitus tietoa. 1158 00:51:41,640 --> 00:51:43,180 >> Selvä. 1159 00:51:43,180 --> 00:51:48,440 Joten ennen kuin sukeltaa joitakin crypto ja näitä asioita kutsutaan paneelit, haluan 1160 00:51:48,440 --> 00:51:51,610 tauko kysyttävää, koska minusta tuntuu todella sellainen sekava joidenkin 1161 00:51:51,610 --> 00:51:52,230 näitä aiheita. 1162 00:51:52,230 --> 00:51:53,940 Joten korjata nyt, jos voimme. 1163 00:51:53,940 --> 00:51:56,480 Joten me vain puhuimme paluuarvot. 1164 00:51:56,480 --> 00:51:58,630 Puhuimme argumentteja. 1165 00:51:58,630 --> 00:52:02,330 Ja puhuimme tästä käsitteestä, jonka tulemme takaisin vuonna viikon 1166 00:52:02,330 --> 00:52:07,140 tulevat, katsella muistiin koko joukko näistä stacked 1167 00:52:07,140 --> 00:52:08,540 tarjottimet, niin sanoakseni. 1168 00:52:08,540 --> 00:52:13,460 Alhaalta ylös, niin että jokainen lokero että saa laittaa pinoon edustaa 1169 00:52:13,460 --> 00:52:15,160 toiminto, joka on parhaillaan kutsutaan. 1170 00:52:17,970 --> 00:52:20,300 Kysyttävää? 1171 00:52:20,300 --> 00:52:22,890 Miten siis - Yritän kysyä kysymyksen. 1172 00:52:22,890 --> 00:52:25,520 Pidän pilaa, mutta nyt Se on - you've kaikki nähneet pojan kasvot. 1173 00:52:25,520 --> 00:52:27,020 Joten Palaamme tähän. 1174 00:52:27,020 --> 00:52:29,700 >> Kysyn kysymyksen tänne. 1175 00:52:29,700 --> 00:52:34,810 Saanen yksinkertaistaa tämän takaisin siihen, mitä se oli ennen joitakin aikaisempien Q & A. 1176 00:52:34,810 --> 00:52:41,730 Ja että kasvu on avoin sulkumerkki, int numero, suljettu 1177 00:52:41,730 --> 00:52:42,260 suluissa. 1178 00:52:42,260 --> 00:52:46,370 Mitä int numero edustaa? 1179 00:52:46,370 --> 00:52:47,250 [Kuulumattomissa] 1180 00:52:47,250 --> 00:52:47,870 DAVID J. MALAN: argumentti. 1181 00:52:47,870 --> 00:52:50,732 Okei, mutta mikä argumentti? 1182 00:52:50,732 --> 00:52:51,620 [Kuulumattomissa] 1183 00:52:51,620 --> 00:52:52,500 DAVID J. MALAN: Anteeksi, mikä se on? 1184 00:52:52,500 --> 00:52:53,150 SPEAKER 3: Jotain ohitat sisään 1185 00:52:53,150 --> 00:52:53,570 DAVID J. MALAN: Okei. 1186 00:52:53,570 --> 00:52:54,780 Joten jotain välität sisään 1187 00:52:54,780 --> 00:52:56,560 Ja yleisemmin, se on vain tulo. 1188 00:52:56,560 --> 00:52:59,860 Jos kirjoitat funktion ja että toiminta on tarkoitus elämässä on tehdä 1189 00:52:59,860 --> 00:53:03,290 jotain hieman erilaista joka kerta käytät sitä, niin ainoa tapa 1190 00:53:03,290 --> 00:53:07,710 sen tapahtua todella näyttäisi olevan toimittamaan panos niin, että se 1191 00:53:07,710 --> 00:53:10,180 voi tehdä jotain erilaista, joka syöttää joka kerta. 1192 00:53:10,180 --> 00:53:13,590 >> Joten sinun täytyy määrittää kaksi asiaa, kun toiminto vie tuloja. 1193 00:53:13,590 --> 00:53:17,240 Sinun täytyy määrittää nimi, jonka haluat antaa, että tulo, puhtaasti 1194 00:53:17,240 --> 00:53:20,790 oman mukavuuden, jotta voit viitata siihen toimintoon 1195 00:53:20,790 --> 00:53:23,610 itse kirjoittavat, kuten tein täällä line 32. 1196 00:53:23,610 --> 00:53:27,840 Mutta sinun on myös määrittää huoneen tyyppi, koska C on ohjelmointikieli 1197 00:53:27,840 --> 00:53:28,840 että vain vaatii 1198 00:53:28,840 --> 00:53:31,810 että jos haluat muuttuja, sinun täytyy kertoa tietokoneen mitä 1199 00:53:31,810 --> 00:53:32,790 tietotyyppi on, 1200 00:53:32,790 --> 00:53:35,540 suurimmaksi osaksi siten, että se tietää, kuinka monta bittiä 1201 00:53:35,540 --> 00:53:37,230 osoittaa kyseisen muuttujan. 1202 00:53:37,230 --> 00:53:38,600 Koska se voisi olla kuusi - 1203 00:53:38,600 --> 00:53:39,990 Anteeksi, se ei olisi kuusi. 1204 00:53:39,990 --> 00:53:41,050 Se voi olla 16. 1205 00:53:41,050 --> 00:53:41,630 Se voi olla 8. 1206 00:53:41,630 --> 00:53:44,410 Se voi olla 32, jopa 64. 1207 00:53:44,410 --> 00:53:45,820 Mutta tietokone tarvitsee tietää. 1208 00:53:45,820 --> 00:53:49,110 Nyt int vasemmalla puolella edustaa mitä vastoin? 1209 00:53:52,825 --> 00:53:53,780 [Kuulumattomissa] 1210 00:53:53,780 --> 00:53:54,570 DAVID J. MALAN: Mikä se on? 1211 00:53:54,570 --> 00:53:55,390 [Kuulumattomissa] 1212 00:53:55,390 --> 00:53:57,920 David J. MALAN: toimintonäppäimen tyypin ja tarkemmin sanottuna 1213 00:53:57,920 --> 00:53:59,755 tyyppi sen tuotannosta. 1214 00:53:59,755 --> 00:54:00,220 Oikea. 1215 00:54:00,220 --> 00:54:04,220 Joten taas asia suluissa edustaa sen tulon, jos jokin, 1216 00:54:04,220 --> 00:54:06,640 asia vasemmalle edustaa sen lähtöön. 1217 00:54:06,640 --> 00:54:10,560 Ja tässä tapauksessa, lisäys ilmeisesti palauttaa int. 1218 00:54:10,560 --> 00:54:14,590 Ja niin int on palautuva tämän toiminnon. 1219 00:54:14,590 --> 00:54:16,090 >> Mitä se tarkoittaa palaamaan? 1220 00:54:16,090 --> 00:54:19,810 Kirjaimellisesti, voit käyttää avainsanan paluuta. 1221 00:54:19,810 --> 00:54:24,640 Ja sitten jos mitä olet palaamassa oikealla avainsana on 1222 00:54:24,640 --> 00:54:28,340 kokonaisluku, niin se on todella sopusoinnussa sen kanssa, mitä olemme luvanneet. 1223 00:54:28,340 --> 00:54:31,110 Voisit tehdä jotain tällaista - 1224 00:54:31,110 --> 00:54:32,280 Hei, maailma - 1225 00:54:32,280 --> 00:54:33,500 koska se on merkkijono. 1226 00:54:33,500 --> 00:54:35,440 Ilmeisesti se ei ole kokonaisluku. 1227 00:54:35,440 --> 00:54:40,450 Eli lyhyesti sanottuna, taakka on todella meille, ohjelmoija, olevan erityisiä 1228 00:54:40,450 --> 00:54:44,730 mitä olemme palaamassa ja sitten itse mennä noin palauttamalla sen. 1229 00:54:44,730 --> 00:54:49,030 Ja sitten tehdä tad selvemmin yhteydessä - 1230 00:54:49,030 --> 00:54:50,080 siellä hän on taas. 1231 00:54:50,080 --> 00:54:51,060 Konteksti - 1232 00:54:51,060 --> 00:54:52,830 Suuri yllätys tulossa vain hetken. 1233 00:54:52,830 --> 00:54:57,720 Konteksti tässä nyt on, että tietokoneen muistiin on jälleen 1234 00:54:57,720 --> 00:54:59,070 Gigabyte, kaksi gigatavua riippumatta. 1235 00:54:59,070 --> 00:54:59,630 Ehkä se on enemmän. 1236 00:54:59,630 --> 00:55:00,540 Ehkä se on vähemmän. 1237 00:55:00,540 --> 00:55:03,750 Mutta tietokone näkee sen olevan eri osissa. 1238 00:55:03,750 --> 00:55:04,860 Jotain menee sinne. 1239 00:55:04,860 --> 00:55:06,020 Jotain muuta menee sinne. 1240 00:55:06,020 --> 00:55:07,540 Eri tavaraa menee keskellä. 1241 00:55:07,540 --> 00:55:09,300 Ja tänään, me vain aloittaa kertoa tämän tarinan. 1242 00:55:09,300 --> 00:55:11,130 >> Mutta me palaamme tähän ajan. 1243 00:55:11,130 --> 00:55:15,000 Toistaiseksi ainoa pala muistia emme välitä on teksti segmentti 1244 00:55:15,000 --> 00:55:17,160 koska juuri edustaa nollat ​​ja ykköset 1245 00:55:17,160 --> 00:55:18,460 että clang on lähtönä. 1246 00:55:18,460 --> 00:55:21,570 Joten kun suoritat komennon näppäimistön kuten a.out tai tuplaat 1247 00:55:21,570 --> 00:55:25,350 klikkaa kuvaketta Mac OS tai Windows-ohjelma on ladattu kiintolevyn 1248 00:55:25,350 --> 00:55:26,930 ajaa RAM. 1249 00:55:26,930 --> 00:55:30,850 Ja se plopped yläreunassa tietokoneen RAM, niin sanoakseni. 1250 00:55:30,850 --> 00:55:35,470 Nyt puolestaan, kuin ohjelma käynnistyy ja pääasialliset saa kutsui 1251 00:55:35,470 --> 00:55:39,240 Ohjelma kirjoitit tai ohjelman Microsoft tai Apple kirjoitti, mikään sen 1252 00:55:39,240 --> 00:55:42,930 paikallisia muuttujia päätyvät sinne alareunassa tietokoneen muistiin. 1253 00:55:42,930 --> 00:55:46,490 Mutta jos pääasiallinen kutsuu toista toiminto on itse muuttujia tai 1254 00:55:46,490 --> 00:55:48,340 argumentteja, he päätyvät sen yläpuolella. 1255 00:55:48,340 --> 00:55:50,670 Ja jos se funktio kutsuu jotain, he päätyvät sen yläpuolella, 1256 00:55:50,670 --> 00:55:51,840 sen yläpuolella, sen yläpuolella. 1257 00:55:51,840 --> 00:55:56,100 Ja vain kerran toiminto tapahtuu täytäntöönpanovaltion tekee pino tarjottimia, joten 1258 00:55:56,100 --> 00:55:58,320 puhua, alkaa saada vähemmän ja vähemmän. 1259 00:55:58,320 --> 00:56:03,370 Ja tämä on mitä sitten, pähkinänkuoressa, selittää, kun soitat kuutio - 1260 00:56:03,370 --> 00:56:04,660 tai soitat lisäys - 1261 00:56:04,660 --> 00:56:06,490 olet ohimennen kopion arvosta. 1262 00:56:06,490 --> 00:56:09,840 Ja mitä se tarkoittaa kuvallisesti että olet kirjaimellisesti kirjallisesti 1263 00:56:09,840 --> 00:56:14,540 numero 1 toisessa osassa muistia, muuttuvat, että 1-2, kun kyseessä on 1264 00:56:14,540 --> 00:56:15,360 lisäys - 1265 00:56:15,360 --> 00:56:17,450 tai 8, jos kyseessä on kuution - 1266 00:56:17,450 --> 00:56:21,450 ja sitten heittää että muisti pois heti lisäyksen tai kuution 1267 00:56:21,450 --> 00:56:23,410 toiminto palaa. 1268 00:56:23,410 --> 00:56:24,267 >> Kysymys. 1269 00:56:24,267 --> 00:56:25,517 [Kuulumattomissa] 1270 00:56:28,090 --> 00:56:29,970 DAVID J. MALAN: Missä - maailmanlaajuinen muuttujat tallennetaan mitä 1271 00:56:29,970 --> 00:56:32,960 nykyisin kutsutaan alustetaan tiedot tai alustamattoman tietoja. 1272 00:56:32,960 --> 00:56:35,900 Ero on, jos sinulla on globaali muuttuja, ja liität sen 1273 00:56:35,900 --> 00:56:39,530 välittömästi arvo yhtäläisyysmerkkiä, se päätyy huipulla siellä. 1274 00:56:39,530 --> 00:56:43,390 Ja jos vain sanoa int x puolipiste ilman arvoa, se päätyy hieman 1275 00:56:43,390 --> 00:56:46,670 pienempi RAM yksinkertaisesti yleissopimuksessa. 1276 00:56:46,670 --> 00:56:49,308 Muut kysymykset. 1277 00:56:49,308 --> 00:56:49,750 Selvä. 1278 00:56:49,750 --> 00:56:53,040 >> Joten tämä kuva tulee takaisin kun saamme tehokkaampi, mitä voimme tehdä 1279 00:56:53,040 --> 00:56:53,830 tietokoneen kanssa. 1280 00:56:53,830 --> 00:56:58,790 Mutta nyt, nyt on lyhyt esittely salausta, tietyntyyppiset 1281 00:56:58,790 --> 00:57:01,910 salausta, joka ei ratkaise kaikkia maailman ongelmia, mutta ei ratkaise 1282 00:57:01,910 --> 00:57:02,480 joitakin niistä. 1283 00:57:02,480 --> 00:57:06,090 Tässä tapauksessa täällä meillä on jotain kutsutaan salaisen avaimen salausta. 1284 00:57:06,090 --> 00:57:10,430 Ja salainen avain salausta, kuten nimestä voi päätellä, saa sen turvallisuus 1285 00:57:10,430 --> 00:57:11,330 alkaen salaisuus. 1286 00:57:11,330 --> 00:57:14,720 Niinpä esimerkiksi, jos olet takaisin alakoulussa ja olet ohimennen 1287 00:57:14,720 --> 00:57:18,040 pikku salaisuus rakkauskirje poika tai tyttö olet murskaamalla päälle - jos 1288 00:57:18,040 --> 00:57:20,820 halusi kulkea että läpi yleisö, luultavasti ei kirjoittaa 1289 00:57:20,820 --> 00:57:24,120 tällainen huomautus Englanti tai mikä äidinkieli on, vaan sinun 1290 00:57:24,120 --> 00:57:25,800 voisi salata sitä. 1291 00:57:25,800 --> 00:57:27,820 Tai voit vain lähettää heille tekstiviestin näinä päivinä. 1292 00:57:27,820 --> 00:57:30,310 Mutta ehkä todella välittää heille huomautuksen koko luokkahuoneessa. 1293 00:57:30,310 --> 00:57:33,820 Ja tehdä tämän turvallisesti, niin että ystävien ja opettaja 1294 00:57:33,820 --> 00:57:36,820 eivät tiedä, mitä olet kirjallisesti, saatat keksiä melko yksinkertainen 1295 00:57:36,820 --> 00:57:37,800 algoritmi - 1296 00:57:37,800 --> 00:57:39,290 Nuoret vaikka saatat olla - 1297 00:57:39,290 --> 00:57:40,780 vain ryntäily sanat. 1298 00:57:40,780 --> 00:57:44,390 Joten kirjoittamisen sijaan, saatat kirjoittaa B. sijaan B, saatat kirjoittaa 1299 00:57:44,390 --> 00:57:46,670 C. sijaan C, saatat kirjoittaa D, ja niin edelleen. 1300 00:57:46,670 --> 00:57:50,020 Tai voit keksiä entistä kehittyneempiä käännös kirjeitä 1301 00:57:50,020 --> 00:57:51,300 eri kirjaimia. 1302 00:57:51,300 --> 00:57:55,440 Mutta saalis on poika tai tyttö, jolle olet lähetät huomautuksen tarvitsee 1303 00:57:55,440 --> 00:57:56,850 tietää jotain. 1304 00:57:56,850 --> 00:57:59,620 Mikä on mitä, ilmeisesti? 1305 00:57:59,620 --> 00:58:01,400 Kuten, mitä salaisuus on. 1306 00:58:01,400 --> 00:58:04,620 Kuten, mitä se kartoitus Koska ja Bs ja Cs ja Ds? 1307 00:58:04,620 --> 00:58:08,780 Onko se vain lisätään yksi, niin sanotusti, kullekin kirjeitä mennä 1308 00:58:08,780 --> 00:58:09,730 A-B, B-C? 1309 00:58:09,730 --> 00:58:11,350 Onko se monimutkaisempaa kuin? 1310 00:58:11,350 --> 00:58:16,450 Joten sinun ja murskata tarvitsevat tätä salaista tietoa. 1311 00:58:16,450 --> 00:58:18,170 Mutta on eräänlainen catch-22 täällä. 1312 00:58:18,170 --> 00:58:20,760 Jos tämä on ensimmäinen kerta, kun lähetät tämän rakkauskirje kautta 1313 00:58:20,760 --> 00:58:25,590 luokka, miten se poika vai tyttö menossa tietää, mitä salaisuus edes on? 1314 00:58:25,590 --> 00:58:28,450 Joten salainen avain salaus ei ratkaise kaikkia maailman ongelmia. 1315 00:58:28,450 --> 00:58:30,490 Ja siellä todella suhde, tulemme takaisin kohti 1316 00:58:30,490 --> 00:58:31,370 lukukauden lopussa. 1317 00:58:31,370 --> 00:58:35,970 >> Samoin on kukaan meistä luultavasti koskaan lähettänyt - 1318 00:58:35,970 --> 00:58:39,453 Samoin, älä useimmat meistä eivät tiedä joku, joka toimii esimerkiksi osoitteessa 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Ja vielä, monet meistä ovat luultavasti ostanut kamaa Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Ja olemme opetettu olettaa, että nämä verkkokaupan 1322 00:58:45,670 --> 00:58:47,060 liiketoimet ovat turvallisia. 1323 00:58:47,060 --> 00:58:47,210 Oikea? 1324 00:58:47,210 --> 00:58:49,310 URL luultavasti sanoo https. 1325 00:58:49,310 --> 00:58:51,590 On ehkä typerä pikku riippulukon kuvake jonnekin. 1326 00:58:51,590 --> 00:58:54,680 On jonkinlainen salauksen turvata luottokorttisi tiedot 1327 00:58:54,680 --> 00:58:56,980 sinun ja Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Ja vielä, jos salakirjoitus liittyy tietää joitakin salaisia, ja silti en 1329 00:59:00,410 --> 00:59:03,330 tiedä ketään Amazon, ja olen varmasti ole järjestetty minkäänlaista 1330 00:59:03,330 --> 00:59:07,350 salainen jonkun Amazon, miten tietokone tai selain tekee tämän? 1331 00:59:07,350 --> 00:59:10,100 No, kääntyy siellä on muita salausta kokonaan, jotka ratkaisevat 1332 00:59:10,100 --> 00:59:10,740 että ongelma. 1333 00:59:10,740 --> 00:59:13,610 Mutta nyt, me keskitymme yksinkertainen, jossa voit järjestää vuonna 1334 00:59:13,610 --> 00:59:18,480 etukäteen tietää joitakin salaisia, kuten plus 1 tai jotkut kartoitus Koska ja Bs. 1335 00:59:18,480 --> 00:59:20,710 >> Ja prosessi salauksen liittyy yleensä tätä. 1336 00:59:20,710 --> 00:59:23,550 Sinulla on joitakin pelkkää tekstiä, kuvattu tässä vasemmalla. 1337 00:59:23,550 --> 00:59:26,260 Te ajaa se läpi jonkinlaisen algoritmin tai menettelyn 1338 00:59:26,260 --> 00:59:27,670 salaamiseen sitä. 1339 00:59:27,670 --> 00:59:31,390 Ehkä se on vain muuttuu B, B tulee C. Ja sitten voit päätyä 1340 00:59:31,390 --> 00:59:32,260 salakirjoitetun. 1341 00:59:32,260 --> 00:59:36,450 Samalla kun ihastus saa salaisuus huomautuksen, hän on silloin 1342 00:59:36,450 --> 00:59:39,950 purkaa se yleisesti kääntämällä että algoritmi jotta saat 1343 00:59:39,950 --> 00:59:41,640 takaisin tekstimuodossa. 1344 00:59:41,640 --> 00:59:43,860 Nyt on olemassa fyysisiä inkarnaatioihin tästä. 1345 00:59:43,860 --> 00:59:46,720 Esimerkiksi tämä on pieni salaisuus dekooderin rengas. 1346 00:59:46,720 --> 00:59:50,060 Ja tämä on rengas siinä mielessä, että siellä on kaksi soittaa täällä. 1347 00:59:50,060 --> 00:59:53,630 Ulkopuolella kehän tämä asia, siellä on kirjaimet A-Z, 1348 00:59:53,630 --> 00:59:55,110 vaikka he ovat satunnaisessa järjestyksessä. 1349 00:59:55,110 --> 00:59:58,410 Ja sisäpuolella, siellä on todella joitakin numeroita, niin että tämä 1350 00:59:58,410 --> 01:00:02,940 rengas, voit tavallaan kääntää ulkopuolelta, mutta ei sisällä jotta riviin 1351 01:00:02,940 --> 01:00:04,110 numeroita kirjaimia. 1352 01:00:04,110 --> 01:00:08,290 Ja leikkeen olet aikeissa nähdä - joista olet ehkä nähnyt 24/7 1353 01:00:08,290 --> 01:00:11,120 ympärille joulun kausi elokuvan nimeltä Christmas Story. 1354 01:00:11,120 --> 01:00:16,050 Huomaat, että pikku Ralphie oli niin innokas selvittää, mitä vähän orpo 1355 01:00:16,050 --> 01:00:19,810 Annien salainen viesti oli hänelle ollut ilmoitettu, luulen, että 1356 01:00:19,810 --> 01:00:22,810 muodostaa numeerisia viestejä sarja laatikko. 1357 01:00:22,810 --> 01:00:26,760 Ja sinun piti kerätä kaikki pikku kortit mukana 1358 01:00:26,760 --> 01:00:27,480 viljan ruutuun. 1359 01:00:27,480 --> 01:00:28,320 Sinun piti postittaa ne tuumaa 1360 01:00:28,320 --> 01:00:31,060 Sinun piti saada takaisin salaisuus dekooderi rengas, joten voit vihdoin selvittää 1361 01:00:31,060 --> 01:00:34,190 mitä kartoitus on kirjainten ja numeroiden 1362 01:00:34,190 --> 01:00:35,420 tai kirjaimia ja kirjaimia. 1363 01:00:35,420 --> 01:00:39,790 Joten annan teille tämän lyhyen leikkeen Christmas Story motivoida PSET 2 ja 1364 01:00:39,790 --> 01:00:42,340 keskustelumme, hetken, ja matriiseja. 1365 01:00:42,340 --> 01:00:43,773 Joten tässä meillä on Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [VIDEO PLAYBACK] 1367 01:00:44,126 --> 01:00:47,470 -On se tiedossa iikka että Ralph Parker nimitetään 1368 01:00:47,470 --> 01:00:50,690 jäsen Pikku Orphan Annie Secret Circle ja on oikeutettu kaikkiin 1369 01:00:50,690 --> 01:00:53,500 kunnianosoitukset ja hyödyt ilmenevät siihen. 1370 01:00:53,500 --> 01:00:56,040 -Signed, Pikku Orphan Annie. 1371 01:00:56,040 --> 01:00:58,730 Nimikirjoituksellaan, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Musteella! 1373 01:01:00,150 --> 01:01:02,910 Kunnianosoitukset ja etuuksien jo yhdeksän vuoden iässä. 1374 01:01:09,970 --> 01:01:10,730 Tule, mennään sen kanssa. 1375 01:01:10,730 --> 01:01:15,000 En tarvitse kaikkea jazz noin salakuljettajien ja merirosvoja. 1376 01:01:15,000 --> 01:01:17,624 -Kuuntele huomenna yö tekemistä seikkailu musta 1377 01:01:17,624 --> 01:01:19,710 Pirate Ship. 1378 01:01:19,710 --> 01:01:23,380 Nyt on aika Annien salaisen viestin teille jäsenille 1379 01:01:23,380 --> 01:01:25,670 Salaisen Circle. 1380 01:01:25,670 --> 01:01:30,260 Muistakaa, lapset, vain jäsenille Annien Secret Circle voi purkaa 1381 01:01:30,260 --> 01:01:31,660 Annien salaisen viestin. 1382 01:01:31,660 --> 01:01:36,230 Muista, Annie riippuu sinua. 1383 01:01:36,230 --> 01:01:38,720 Aseta nastat B2. 1384 01:01:38,720 --> 01:01:41,040 Tässä on viesti. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Olen ensimmäinen salainen kokous. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 -Pierre oli hyvä ääni tänään. 1389 01:01:51,700 --> 01:01:54,890 Voisin sanoa, että illan viesti oli todella tärkeä. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Tuo viesti Annie itse. 1392 01:01:58,590 --> 01:01:59,840 Muista, älä kerro kenellekään. 1393 01:02:04,570 --> 01:02:08,750 -90 Sekuntia myöhemmin, olen vain huoneeseen missä poika yhdeksän 1394 01:02:08,750 --> 01:02:12,980 voisi istua rauhassa ja purkaa. 1395 01:02:12,980 --> 01:02:17,130 Aha, B. menin seuraavaan. 1396 01:02:17,130 --> 01:02:20,330 E. Ensimmäinen sana on olla. 1397 01:02:20,330 --> 01:02:22,670 S. Se oli tulossa helpompaa nyt. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Älä viitsi, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Täytyy mennä. 1401 01:02:28,430 --> 01:02:30,350 -Minä heti alas, ma. 1402 01:02:30,350 --> 01:02:33,720 -Gee hurahtaa. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Muista. 1404 01:02:38,270 --> 01:02:40,000 Muista mitä? 1405 01:02:40,000 --> 01:02:42,105 Mikä oli Little Orphan Annie yrittää sanoa? 1406 01:02:42,105 --> 01:02:43,095 Muista mitä? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy on mentävä. 1409 01:02:44,580 --> 01:02:45,570 Voisitko tulla ulos? 1410 01:02:45,570 --> 01:02:46,560 -Selvä, ma. 1411 01:02:46,560 --> 01:02:48,540 Tulen heti. 1412 01:02:48,540 --> 01:02:50,580 -Olin lähestyy nyt. 1413 01:02:50,580 --> 01:02:52,550 Jännitys oli kauhea. 1414 01:02:52,550 --> 01:02:53,355 Mikä se oli? 1415 01:02:53,355 --> 01:02:56,315 Planeetan kohtalo saattaa vaakalaudalla. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy sai mennä. 1418 01:02:59,165 --> 01:03:02,310 -Minä heti ulos, itkeä ääneen. 1419 01:03:02,310 --> 01:03:04,000 -Gee, melkein siellä. 1420 01:03:04,000 --> 01:03:05,180 Sormiani lensi. 1421 01:03:05,180 --> 01:03:07,150 Mieleni oli teräs ansa. 1422 01:03:07,150 --> 01:03:08,790 Jokainen huokosten värähtelemään. 1423 01:03:08,790 --> 01:03:10,040 Se oli melkein selvä. 1424 01:03:10,040 --> 01:03:13,400 Kyllä, kyllä, kyllä, kyllä. 1425 01:03:13,400 --> 01:03:18,960 -Muista juoda Ovaltine. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 Crummy kaupallinen? 1428 01:03:28,200 --> 01:03:29,640 Son of a bitch. 1429 01:03:29,640 --> 01:03:33,340 [END VIDEO PLAYBACK] 1430 01:03:33,340 --> 01:03:36,040 >> DAVID J. MALAN: Joten olemme salauksen. 1431 01:03:36,040 --> 01:03:39,670 Joten miten tietokone voimme mennä toteuttamisessa tai 1432 01:03:39,670 --> 01:03:40,950 edustavat asioita, kuten tämä? 1433 01:03:40,950 --> 01:03:44,430 No, me tarvitsemme tapa ilmaista itseämme hieman joustavammin kuin 1434 01:03:44,430 --> 01:03:46,420 meidän muuttujia on toistaiseksi sallittu. 1435 01:03:46,420 --> 01:03:47,370 Meillä on ollut ints. 1436 01:03:47,370 --> 01:03:48,380 Meillä on ollut merkkiä. 1437 01:03:48,380 --> 01:03:50,790 Meillä oli kellukkeet ja tuplaa ja muutama muu. 1438 01:03:50,790 --> 01:03:55,050 Mutta ne ovat yksittäisiä muistia, jotka eivät todellakaan salli meidän 1439 01:03:55,050 --> 01:03:58,010 ilmaista asioita, kuten sanoja ja lauseita ja fraaseja. 1440 01:03:58,010 --> 01:04:00,200 Itse asiassa me olemme kutsuneet tällaisia ​​asioita jouset. 1441 01:04:00,200 --> 01:04:03,650 Mutta me lupasimme, että tämä on todellakin vain yksinkertaistamista CS50 1442 01:04:03,650 --> 01:04:07,020 Kirjaston että olemme aikovat kuori takaisin. 1443 01:04:07,020 --> 01:04:08,970 >> Ja niin aloitamme tehdä sitä täällä. 1444 01:04:08,970 --> 01:04:11,130 Anna minun mennä eteenpäin ja avata tiedosto - 1445 01:04:11,130 --> 01:04:13,770 kaikki nämä tiedostot ovat saatavilla normaalisti verkossa - 1446 01:04:13,770 --> 01:04:19,120 kutsuttu array.c ratkaista ongelman liity merkkijonoja vaan maalaa 1447 01:04:19,120 --> 01:04:23,040 kuva täällä miten voisimme käyttää jotain kutsutaan array. 1448 01:04:23,040 --> 01:04:25,530 Array on tietotyyppi. 1449 01:04:25,530 --> 01:04:31,320 Se on eräänlainen muuttuja, lajittelee, että on useita pienempiä tietotyypit 1450 01:04:31,320 --> 01:04:34,150 sisällä sen takaisin takaisin takaisin takaisin. 1451 01:04:34,150 --> 01:04:37,700 Niinpä esimerkiksi, jos haluamme kirjoittaa pieni ohjelma, joka antaa sinulle 1452 01:04:37,700 --> 01:04:42,110 tietokilpailu keskimäärin kurssi kuten 50, joka on kaksi tietokilpailuja, voisit helposti 1453 01:04:42,110 --> 01:04:45,170 Kirjoittaessani tätä - perustuu jopa joitakin viime viikolla materiaali - 1454 01:04:45,170 --> 01:04:47,770 käyttämällä GetInt ja pari muuttujia. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, ja se on melko yksinkertainen. 1456 01:04:51,920 --> 01:04:55,930 Se on ehkä 10, 20 riviä koodia, Max, toteuttaa ohjelma, joka kysyy 1457 01:04:55,930 --> 01:05:01,170 käyttäjän kahden tietovisan tulokset ja sitten laskee niiden keskiarvon lisäämällä niiden 1458 01:05:01,170 --> 01:05:03,850 yhdessä, jakamalla kaksi, ja sitten tulostaa tulokset. 1459 01:05:03,850 --> 01:05:06,380 Voisimme ehkä tehdä melko helposti nyt jälkeen 1460 01:05:06,380 --> 01:05:07,510 jotkut montako minuuttia. 1461 01:05:07,510 --> 01:05:11,005 >> Mutta ongelma on, että oletetaan, että 50 oli kolme tietokilpailuja tai neljä. 1462 01:05:11,005 --> 01:05:13,510 Oletetaan, että halusitte käyttää samaa ohjelmaa luokka, joka oli 1463 01:05:13,510 --> 01:05:14,850 viikoittain tietokilpailuja. 1464 01:05:14,850 --> 01:05:16,610 Ajattele luokka, joka on viikoittain tietokilpailuja. 1465 01:05:16,610 --> 01:05:20,610 Jos on esimerkiksi 16 tai niin viikkoa lukukauden, nyt sinulla on 16 muuttujaa - 1466 01:05:20,610 --> 01:05:24,270 int quiz1, int quiz2, int quiz3, int quiz4. 1467 01:05:24,270 --> 01:05:27,560 Heti kun alkaa nähdä tämän redundanssin tämä kopiointi ja liittäminen 1468 01:05:27,560 --> 01:05:31,390 koodin, se pitäisi alkaa tehdä haluat siellä oli parempi tapa. 1469 01:05:31,390 --> 01:05:33,930 Ja onneksi, sillä paneelit on. 1470 01:05:33,930 --> 01:05:34,980 Joten tehdään tämä. 1471 01:05:34,980 --> 01:05:38,430 Ensinnäkin haluan esitellä hyvin yksinkertainen asia, että olemme ei käytetty tähän mennessä, 1472 01:05:38,430 --> 01:05:40,140 mutta näet sen satunnaisesti koodia. 1473 01:05:40,140 --> 01:05:42,360 Tämä on se, mitä kutsutaan yleisesti vakio. 1474 01:05:42,360 --> 01:05:45,790 Joten se on vakiona siinä mielessä, että tämä arvo ei koskaan muutu. 1475 01:05:45,790 --> 01:05:49,210 Ihmisen yleissopimus luotaessa vakio on käyttää kaikkia pääomaa 1476 01:05:49,210 --> 01:05:51,940 kirjeitä, juuri niin että se todella erottuu koodissa. 1477 01:05:51,940 --> 01:05:55,960 Ja erikois että käytät C # define. 1478 01:05:55,960 --> 01:06:00,250 Joten jos sanot # define sitten tilaa, niin sana jota haluat käyttää 1479 01:06:00,250 --> 01:06:03,260 jatkuva nimi, ja sitten arvo vakiona. 1480 01:06:03,260 --> 01:06:06,180 Joten ilmoitus, tämä eroaa määrittämällä jotain muuttuja. 1481 01:06:06,180 --> 01:06:07,020 Ei ole sama merkki. 1482 01:06:07,020 --> 01:06:08,240 Ei ole puolipiste. 1483 01:06:08,240 --> 01:06:11,410 Tämä on mitä yleensä kutsutaan esikäsittelijään direktiiviä, mutta enemmän 1484 01:06:11,410 --> 01:06:12,210 että toinen aika. 1485 01:06:12,210 --> 01:06:18,540 >> Nyt tämä luo muuttumaton arvo nimeltään tietokilpailuja, joiden todellinen 1486 01:06:18,540 --> 01:06:19,940 numeerinen arvo on 2. 1487 01:06:19,940 --> 01:06:24,020 Joten missä näet tietokilpailuja, tietokilpailuja, Tietokilpailut koko tämän tiedoston, se 1488 01:06:24,020 --> 01:06:25,410 vain numero 2. 1489 01:06:25,410 --> 01:06:28,100 Nyt, jos katson pääasiassa nyt katsotaanpas miten tämä toimii. 1490 01:06:28,100 --> 01:06:29,500 Aluksi se näyttää hieman arvoituksellisesti. 1491 01:06:29,500 --> 01:06:31,340 Mutta se kaikki on kamaa viikolla yksi. 1492 01:06:31,340 --> 01:06:32,710 Kysy käyttäjä arvosanoja. 1493 01:06:32,710 --> 01:06:33,630 Miten teemme tämän? 1494 01:06:33,630 --> 01:06:35,470 No, rivi 22 - 1495 01:06:35,470 --> 01:06:37,210 Tämä on todella mehukas osa - 1496 01:06:37,210 --> 01:06:40,960 Julistan float, mutta ei vain yhden float. 1497 01:06:40,960 --> 01:06:44,620 Olen julistaa pikemminkin joukko liukuluvuiksi. 1498 01:06:44,620 --> 01:06:49,100 Muuttuja on menossa kutsutaan laatuja, kuten ehdotetun tässä. 1499 01:06:49,100 --> 01:06:53,080 Mutta vain osa uuden syntaksin sitten ovat nämä hakasulkeita, se 1500 01:06:53,080 --> 01:06:59,350 että olen sanonut float arvosanoja ja sitten alkusulkumerkki ja sitten numero. 1501 01:06:59,350 --> 01:07:02,460 Ilmoitus, jos tämä on vakio, tämä on aivan kuten me teimme tämän. 1502 01:07:02,460 --> 01:07:06,890 Tämä tarkoittaa hei tietokone, anna minulle kaksi kellukkeet ja mennään yhdessä soittaa 1503 01:07:06,890 --> 01:07:08,220 niitä laatuja. 1504 01:07:08,220 --> 01:07:11,920 Tämä on toisin kuin paljon työläs prosessi tällä tavoin. 1505 01:07:11,920 --> 01:07:15,850 Float Grade1, kellua Grade2, ja niin edelleen. 1506 01:07:15,850 --> 01:07:20,010 Joten array voimme toteuttaa tätä ajatusta, mutta paljon vähemmän messily vuonna 1507 01:07:20,010 --> 01:07:24,630 siten, että voimme kirjoittaa yksi rivi koodia sijasta, eli 16 16 1508 01:07:24,630 --> 01:07:25,740 viikolla lukukausi. 1509 01:07:25,740 --> 01:07:29,950 Joten en halua koodata 2 koska jos ajattelee tästä nyt 1510 01:07:29,950 --> 01:07:34,160 loogisesti - Oletetaan ensi vuonna CS50 muutoksia 3 tietokilpailuja sijaan. 1511 01:07:34,160 --> 01:07:35,510 Ja minulla oli numero 2 täällä. 1512 01:07:35,510 --> 01:07:36,600 Minulla oli numero 2 täällä. 1513 01:07:36,600 --> 01:07:37,580 Minulla oli numero 2 täällä. 1514 01:07:37,580 --> 01:07:38,560 Minulla oli numero 2 täällä. 1515 01:07:38,560 --> 01:07:43,180 Se tulee hyvin ikävä ja erittäin helppo tyriä ja vahingossa muuttaa 1516 01:07:43,180 --> 01:07:47,690 yksi arvo on 3 ja kaipaamaan joitakin muita arvoa 2. 1517 01:07:47,690 --> 01:07:52,460 Joten aion vaan abstrakteja tämän pois ja käyttää tätä jatkuvaa, että sen 1518 01:07:52,460 --> 01:07:54,120 Nimensä koskaan muutu. 1519 01:07:54,120 --> 01:07:57,710 Ja nyt, olipa meillä on erilaisia ​​tietokilpailuja tänä vuonna tai ensi-I 1520 01:07:57,710 --> 01:08:01,210 vain täytyy vaihtaa se yhteen paikkaan, täällä ylhäällä. 1521 01:08:01,210 --> 01:08:02,720 >> Niin, että kaikki vakio on. 1522 01:08:02,720 --> 01:08:08,680 Myös uusi käsitteellinen ominaisuus on se, että joukko. 1523 01:08:08,680 --> 01:08:14,660 Joten hakasuluissa anna minulle monia kellukkeet ja antaa minulle kollektiivisesti 1524 01:08:14,660 --> 01:08:16,630 soittaa heille arvosanoja tänne. 1525 01:08:16,630 --> 01:08:17,990 Joten nyt katsotaanpas mitä aion tehdä. 1526 01:08:17,990 --> 01:08:20,359 Täällä linjalla 24 on alku ja silmukka. 1527 01:08:20,359 --> 01:08:22,260 Tämä ei oikeastaan ​​mitään fancy. 1528 01:08:22,260 --> 01:08:25,060 Se vain käyttää tietokilpailut sijasta kovakoodatuilla numero. 1529 01:08:25,060 --> 01:08:27,790 Mutta ei ole mitään älyllisesti eri siellä viime viikolla. 1530 01:08:27,790 --> 01:08:29,040 Tämä on vain printf. 1531 01:08:29,040 --> 01:08:35,490 So printf ("Quiz lukumäärä% d% d"), koska haluan vain tulostaa antaa minulle tietokilpailu 1532 01:08:35,490 --> 01:08:38,050 numero yksi kaksi ja kaksi kahden. 1533 01:08:38,050 --> 01:08:39,850 Joten tämä on puhtaasti esteettinen juttu. 1534 01:08:39,850 --> 01:08:42,500 Mutta mielenkiintoinen osa on nyt linjassa 27. 1535 01:08:42,500 --> 01:08:48,310 Jotta täyttää toinen paikkamerkit liukulukuja 1536 01:08:48,310 --> 01:08:51,029 arvo, sinä taas käyttää hakasulkeissa. 1537 01:08:51,029 --> 01:08:55,620 Tässä tapauksessa, olen käyttäen i koska tämä silmukka on aloitettu i vastaten 1538 01:08:55,620 --> 01:08:57,560 mitä arvoa, ilmeisesti? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Joten ensimmäistä iterointia tämän silmukan, se on ikään kuin minä 1541 01:09:01,350 --> 01:09:02,689 kirjoitin tämän koodin. 1542 01:09:02,689 --> 01:09:05,580 Mutta toisen iteroinnin tämän silmukan, se on ikään kuin minä 1543 01:09:05,580 --> 01:09:07,750 kirjoitin tämän minun koodi. 1544 01:09:07,750 --> 01:09:10,750 Mutta se, että olen käyttäen muuttuja on täydellinen, koska nimi 1545 01:09:10,750 --> 01:09:14,300 ehdottaa, se vaihtelee sen arvo jokaisen iteraation. 1546 01:09:14,300 --> 01:09:17,370 Joten olen täyttämällä tämän array yksi paikalla kerrallaan. 1547 01:09:17,370 --> 01:09:18,910 Mitä tämä array näyttää? 1548 01:09:18,910 --> 01:09:21,430 No, syy piirsin tämän super yksinkertainen suorakulmio ruudulla täällä 1549 01:09:21,430 --> 01:09:23,350 ennen oli tästä syystä. 1550 01:09:23,350 --> 01:09:27,279 Array on vain kimpale muistin seurasi toinen kimpale muistia, 1551 01:09:27,279 --> 01:09:30,109 seurasi toinen kimpale muistia, ja niin edelleen. 1552 01:09:30,109 --> 01:09:35,260 Joten jos minun joukko on kooltaan 2, tässä tapauksessa täällä, en tekisi mukaan 1553 01:09:35,260 --> 01:09:37,590 kirjoittamalla minun tietokilpailu tulokset, kuin täällä. 1554 01:09:37,590 --> 01:09:39,430 Sain 100 tässä yksi. 1555 01:09:39,430 --> 01:09:42,020 Ja sitten sain 99 tässä yksi. 1556 01:09:42,020 --> 01:09:46,040 Sitten tämä muisti ei välttämättä edes saa käyttää, koska olen vain pyytänyt 1557 01:09:46,040 --> 01:09:48,689 tietokone erilaisia ​​kooltaan 2. 1558 01:09:48,689 --> 01:09:50,180 Nämä neliöt ovat edelleen olemassa. 1559 01:09:50,180 --> 01:09:50,340 Oikea? 1560 01:09:50,340 --> 01:09:52,500 Sinulla on vielä kaksi gigatavua muistia, vaikka olet vain 1561 01:09:52,500 --> 01:09:53,979 pyytää kahden kelluu. 1562 01:09:53,979 --> 01:09:58,710 Joten ajatus paneelit on, että tietokone vie palan muistia 1563 01:09:58,710 --> 01:10:03,230 ja sitten jakautuu niiden paloitellun takaisin takaisin takaisin takaisin. 1564 01:10:03,230 --> 01:10:04,740 Ja jotta kaikki array on. 1565 01:10:04,740 --> 01:10:09,080 Se on yhtenäinen kimpale muistia, jonka sisällä voit laittaa asioita. 1566 01:10:09,080 --> 01:10:12,400 >> Nyt tämä tapahtuu silloin tehdä vain joitakin tylsää aritmeettinen. 1567 01:10:12,400 --> 01:10:16,170 Jos minä selaa täällä, tässä minä sitten iteroida yli array. 1568 01:10:16,170 --> 01:10:19,410 Olen keksiä summattu kaikki arvot array. 1569 01:10:19,410 --> 01:10:22,390 Ja sitten käytän kierroksen toimintoa täällä todella tehdä 1570 01:10:22,390 --> 01:10:23,940 Yhteenvetona jaettuna tietokilpailuja. 1571 01:10:23,940 --> 01:10:27,450 Mutta minäpä heilutella kättäni tuohon koska tavallaan tarpeeksi aritmeettinen nyt. 1572 01:10:27,450 --> 01:10:30,010 Mutta kaikki tämä tekee minulle lopulta on laskemisessa keskimäärin. 1573 01:10:30,010 --> 01:10:33,640 Joten ensimmäinen tietokilpailu plus toinen tietokilpailu, jaettuna 2, ja sitten tulostus 1574 01:10:33,640 --> 01:10:34,700 se niin int. 1575 01:10:34,700 --> 01:10:39,030 >> Mutta katsotaanpa nyt siirtymistä eri esimerkin nimeltään merkkijono1, 1576 01:10:39,030 --> 01:10:42,370 joka maalaa samanlaisen kuvan, mutta käyttäen merkkijonoja. 1577 01:10:42,370 --> 01:10:45,550 Anna minun mennä eteenpäin ja yksinkertaistaa tämä vain hetken. 1578 01:10:45,550 --> 01:10:48,340 Ja anteeksi sisennyksen nyt. 1579 01:10:48,340 --> 01:10:52,280 Ilmoitus vastaa 19 tämän esimerkin, saan merkkijono käyttäjältä. 1580 01:10:52,280 --> 01:10:55,780 Mutta huomaa, mitä olen seuraavaksi tekemässä linjat 22 eteenpäin. 1581 01:10:55,780 --> 01:11:00,260 Olen oikeastaan ​​iteroimalla i: jopa - ja tämä on uusi temppu - 1582 01:11:00,260 --> 01:11:02,730 strlen, merkkijonon pituus. 1583 01:11:02,730 --> 01:11:07,010 Tämä toiminto tulee C että jos ohitat sen merkkijono, se kertoo 1584 01:11:07,010 --> 01:11:08,950 kuinka monta merkkiä on merkkijonon. 1585 01:11:08,950 --> 01:11:09,440 Siinä kaikki. 1586 01:11:09,440 --> 01:11:12,520 Se, että se on strlen sijasta merkkijonon pituus on vain koska se on 1587 01:11:12,520 --> 01:11:13,040 ytimekkäämpi. 1588 01:11:13,040 --> 01:11:17,100 30 vuotta sitten, ihmiset pitivät kirjoittaa asioita niin ytimekkäästi kuin mahdollista. 1589 01:11:17,100 --> 01:11:19,080 Joten olemme pitäneet kyseisen yleissopimuksen täällä. 1590 01:11:19,080 --> 01:11:21,730 i + + tarkoittaa vain kasvattaa i jokaisen iteraation. 1591 01:11:21,730 --> 01:11:24,310 Ja nyt huomaa, mikä on todella mielenkiintoinen. 1592 01:11:24,310 --> 01:11:28,730 Joten linja 24, sanon tietokone, anna minulle merkki, kahdeksan 1593 01:11:28,730 --> 01:11:30,770 bittiä, ja kutsuvat sitä c. 1594 01:11:30,770 --> 01:11:35,370 Mutta mikä on tämä oikealla puolella sanovat? 1595 01:11:35,370 --> 01:11:38,150 Englanti, mitä se edustaa? 1596 01:11:38,150 --> 01:11:40,070 [Kuulumattomissa] 1597 01:11:40,070 --> 01:11:40,490 DAVID J. MALAN: Aivan. 1598 01:11:40,490 --> 01:11:42,390 Anna minulle ensimmäisen merkin jono. 1599 01:11:42,390 --> 01:11:45,400 Tai yleisemmin, anna minulle i. merkin jono. 1600 01:11:45,400 --> 01:11:48,230 Ja ymmärtää sitä tärkeää nyt, että tietotekniikan tutkijoita, olemme todella 1601 01:11:48,230 --> 01:11:49,330 laskettuna 0. 1602 01:11:49,330 --> 01:11:51,290 Sinulla ei ole harkintavaltaa nyt alkaa tehdä tätä. 1603 01:11:51,290 --> 01:11:54,580 Nyt sinun täytyy käyttäytyä mukaisesti tietokoneen odotukset ja 1604 01:11:54,580 --> 01:11:58,010 laskea nollasta, koska [0] tulee olemaan ensimmäinen 1605 01:11:58,010 --> 01:11:59,670 merkin merkkijono. 1606 01:11:59,670 --> 01:12:01,320 [1] tulee olemaan toinen. 1607 01:12:01,320 --> 01:12:03,610 [2] tulee olemaan kolmas, ja niin edelleen. 1608 01:12:03,610 --> 01:12:08,840 Joten tämä ohjelma, jos kääntää se - tämä on jälleen merkkijono1. 1609 01:12:08,840 --> 01:12:11,040 >> Joten tee merkkijono1. 1610 01:12:11,040 --> 01:12:16,730 Ja nyt minä ajaa merkkijono1 minun pääteikkunassa. 1611 01:12:16,730 --> 01:12:19,180 Se odottaa syötteitä, joten aion kirjoittaa vaikkapa David. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Ja nyt se tulostaa David kaikki eri riveille, koska 1614 01:12:23,350 --> 01:12:24,430 huomaa, mitä olen tekemässä. 1615 01:12:24,430 --> 01:12:27,510 Olen tulostetaan yksi merkki kerrallaan. 1616 01:12:27,510 --> 01:12:29,100 Nyt emme aio mennä yksityiskohtiin tänään tätä. 1617 01:12:29,100 --> 01:12:31,610 Mutta poistin hetki sitten tämän tarkistuksen täällä. 1618 01:12:31,610 --> 01:12:36,310 On käynyt ilmi, että jos käyttäjä on huonosti, vastavuoroisuus, tai vain 1619 01:12:36,310 --> 01:12:41,780 sekava, voit itse pysty antamaan merkkijono melko pitkään. 1620 01:12:41,780 --> 01:12:43,640 Jos osut väärään näppäintä, saatat antaa 1621 01:12:43,640 --> 01:12:44,390 no string ollenkaan. 1622 01:12:44,390 --> 01:12:47,790 Tai jos olet ilkeä, saatat yrittää liittää vuonna gigatavu verran 1623 01:12:47,790 --> 01:12:49,380 essee täyttämään tämän merkkijono. 1624 01:12:49,380 --> 01:12:52,060 Ja jos tietokone muisti loppuu, käy ilmi, että olemme menossa 1625 01:12:52,060 --> 01:12:54,310 saada takaisin tätä erityistä arvoa kutsutaan null. 1626 01:12:54,310 --> 01:12:57,550 Joten nyt vain tietää, että tämä on erityinen arvo nimeltä null että 1627 01:12:57,550 --> 01:13:01,000 antaa meille mahdollisuuden tarkistaa, kun olemme muisti, muun muassa. 1628 01:13:01,000 --> 01:13:07,330 >> Mutta jos avaan nyt merkkijono2, havaitaan yksi ero täällä. 1629 01:13:07,330 --> 01:13:09,760 Havaitaan yksi ero täällä merkkijono2. 1630 01:13:09,760 --> 01:13:13,260 Kanssa merkkijono2, tämä silmukka on hieman erilainen. 1631 01:13:13,260 --> 01:13:16,350 Saanen poistaa nollat ​​jotta voimme puhua niistä toisen kerran. 1632 01:13:16,350 --> 01:13:18,460 Mutta mitä erilaista on silmukka tällä kertaa? 1633 01:13:21,580 --> 01:13:23,160 Ja voin palata edellisen esimerkin. 1634 01:13:23,160 --> 01:13:24,800 Joten se versio kaksi. 1635 01:13:24,800 --> 01:13:27,020 Tämä on versio yksi. 1636 01:13:27,020 --> 01:13:31,935 Yksi, kaksi, yksi kaksi. 1637 01:13:35,030 --> 01:13:38,240 Joten strlen puhelu on missä? 1638 01:13:38,240 --> 01:13:40,420 Se on ensimmäinen osa on silmukka. 1639 01:13:40,420 --> 01:13:43,060 Mitään ajatuksia siitä, miksi teen tätä? 1640 01:13:43,060 --> 01:13:43,690 Joo. 1641 01:13:43,690 --> 01:13:46,010 [Kuulumattomissa] 1642 01:13:46,010 --> 01:13:47,630 DAVID J. MALAN: Eli emme soita funktio joka ikinen kerta. 1643 01:13:47,630 --> 01:13:48,040 Aivan. 1644 01:13:48,040 --> 01:13:50,350 Muistamme Silmukoiden että he super yksinkertainen kun tavallaan 1645 01:13:50,350 --> 01:13:52,180 ymmärtävät, että tämä on Alustuksen 1646 01:13:52,180 --> 01:13:53,330 kunnossa, ja päivityksen. 1647 01:13:53,330 --> 01:13:55,430 Ongelmana on, että ehto tapahtuu jokaisella 1648 01:13:55,430 --> 01:13:56,600 iterointia silmukan. 1649 01:13:56,600 --> 01:13:59,930 Ja niin tässä esimerkki tästä, mikä on pahaa siitä 1650 01:13:59,930 --> 01:14:03,500 että tämä on minun ehto? 1651 01:14:03,500 --> 01:14:05,920 Soitat strlen uudestaan ​​ja uudestaan ​​ja uudestaan. 1652 01:14:05,920 --> 01:14:08,990 Mutta kun olen kirjoittanut DAVID, pituus merkkijonon on viisi. 1653 01:14:08,990 --> 01:14:11,560 Ja se ei aio muuttaa jokaisen iterointia silmukan, koska 1654 01:14:11,560 --> 01:14:15,560 merkkijono on edelleen D-A-V-I-D. Joten tämä on vihje mitä on tulossa 1655 01:14:15,560 --> 01:14:19,650 yhä tärkeämpi idea tunnetaan suunnittelu päätöksen, jossa - eivät vain 1656 01:14:19,650 --> 01:14:21,640 tehdä tietokoneen tehdä turhaa työtä. 1657 01:14:21,640 --> 01:14:25,630 >> Aivan kuten esimakua PSET 2, PSET 2 Standard Edition on 1658 01:14:25,630 --> 01:14:28,850 menossa haastaa sinut todella toteuttaa joitakin useita ciphers, joidenkin 1659 01:14:28,850 --> 01:14:32,650 määrä salausalgoritmeja, joten voit sekä salata ja purkaa 1660 01:14:32,650 --> 01:14:35,530 salaisia ​​viestejä, aivan kuten yksi Ralphie siellä puretaan. 1661 01:14:35,530 --> 01:14:38,720 Vuonna hakkeri painos PSET 2, aiomme mennä hieman pidemmälle. 1662 01:14:38,720 --> 01:14:42,010 Aiomme ojentaa sinulle tiedoston todellinen tietokonejärjestelmä, joka sisältää 1663 01:14:42,010 --> 01:14:45,690 läjän käyttäjätunnusten ja todellisten salattuja salasanoja, ja haaste 1664 01:14:45,690 --> 01:14:49,110 sillä hakkeri painos tulee olemaan murtaa nämä salasanat ja kuva 1665 01:14:49,110 --> 01:14:53,060 mitä salausta tai mitä salaisuus on käytetty todella 1666 01:14:53,060 --> 01:14:55,080 tuottaa nämä salasanat. 1667 01:14:55,080 --> 01:14:58,360 Ja me aiomme tehdä tämän käyttämällä uutta ominaisuutta täällä C että minä annan 1668 01:14:58,360 --> 01:15:02,200 juuri demon, joka tunnetaan komentorivin argumentteja. 1669 01:15:02,200 --> 01:15:05,930 >> Joten se kääntyy pois, kuten jotkut teistä ehkä nähnyt jaksossa tai oppikirjoissa, 1670 01:15:05,930 --> 01:15:09,850 tärkein ei aina tarvitse olla mitätön suluissa. 1671 01:15:09,850 --> 01:15:14,060 On käynyt ilmi, että pääasiassa voidaan kirjoittaa myös näin, kaksi argumentteja, 1672 01:15:14,060 --> 01:15:19,690 argc ja argv, missä argc on sanojen määrä, jotka kirjoitat jälkeen 1673 01:15:19,690 --> 01:15:21,940 Ohjelman nimi on komentorivi. 1674 01:15:21,940 --> 01:15:24,550 Ja argv on todellisia sanoja. 1675 01:15:24,550 --> 01:15:29,470 Ja kuten hakasulkeita siellä ehdottaa, argv on ilmeisesti joukko. 1676 01:15:29,470 --> 01:15:33,720 Se tulee olemaan merkkijono jälkeen merkkijono jälkeen merkkijono muistiin. 1677 01:15:33,720 --> 01:15:36,170 Joten mitä aiomme pystyä tekemään, alkaen PSET 2, on 1678 01:15:36,170 --> 01:15:37,310 jotain tällaista. 1679 01:15:37,310 --> 01:15:42,450 Jos teen argv1, joka on esimerkki tulemme takaisin maanantaina, ja suorita 1680 01:15:42,450 --> 01:15:45,180 se, huomaat että se ei näytä mitään vielä. 1681 01:15:45,180 --> 01:15:47,050 Se vain tulostaa omalla nimellään. 1682 01:15:47,050 --> 01:15:53,220 Mutta jos sanon hyvästit luokka, huomaa, että tämä ohjelma ilmeisesti toistetaan 1683 01:15:53,220 --> 01:15:57,030 enemmän kuin sanat, joita kirjoitettuna kehotteeseen. 1684 01:15:57,030 --> 01:16:02,050 Ja keinoja, joilla voimme päästä sanoista että käyttäjä on 1685 01:16:02,050 --> 01:16:06,780 kirjoitettuna kehote muuttamalla tärkein alkaen tänä viikonloppuna, alkaen int 1686 01:16:06,780 --> 01:16:10,710 main (void) int main (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Ja näin syntyy komentoriviargumentteja. 1688 01:16:13,700 --> 01:16:17,210 Ja kun saat todella hienostunut tässä, voit kirjoittaa 1689 01:16:17,210 --> 01:16:21,370 todella trippy ohjelmia, kuten tämä tässä, joka menee edellä ja sen jälkeen 1690 01:16:21,370 --> 01:16:25,520 joitakin toimintoja olemme tehneet tähän mennessä, mutta kaikki melko voimakas. 1691 01:16:25,520 --> 01:16:27,330 >> Joten me lähdemme tästä tällä näytöllä. 1692 01:16:27,330 --> 01:16:29,160 Ja näemme sinut maanantaina.