1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Osa 4] [vähemmän mukavaksi] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvardin yliopisto] 3 00:00:04,000 --> 00:00:07,000 [Tämä on CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,000 >> Selvä, tervetuloa takaisin osiossa. 5 00:00:10,000 --> 00:00:13,000 Tämän viikon jaksossa aiomme tehdä pari asiaa. 6 00:00:13,000 --> 00:00:17,000 Menemme ensin kertaus Problem Set 2, 7 00:00:17,000 --> 00:00:20,000 joka on Caesar ja Vigenère ongelma set. 8 00:00:20,000 --> 00:00:23,000 Ja sitten me aiomme sukeltaa Quiz 0 tarkastelu 9 00:00:23,000 --> 00:00:26,000 ja viettää vähän aikaa neulojen laittaminen takaisin neulansuojukseen mitä olemme puhuneet 10 00:00:26,000 --> 00:00:30,000 kussakin luentoja tähän mennessä, ja me myös tehdä muutamia ongelmia 11 00:00:30,000 --> 00:00:32,000 edellisen vuoden tietokilpailuja. 12 00:00:32,000 --> 00:00:36,000 Näin teillä hyvä tapa valmistautua siihen. 13 00:00:36,000 --> 00:00:40,000 >> Voit aloittaa, olen käynnistetty pari hyvää ratkaisuja 14 00:00:40,000 --> 00:00:45,000 kuluneen Harjoitus, Harjoitus 2, tähän tilaan. 15 00:00:45,000 --> 00:00:48,000 Jos te kaikki osuma linkki, 16 00:00:48,000 --> 00:00:53,000 ja jos klikkaa nimeni ja valitse ensimmäinen tarkistamista 17 00:00:53,000 --> 00:00:56,000 näet caesar.c, joka on juuri Etsin. 18 00:00:56,000 --> 00:01:00,000 Puhutaanpa tästä todella nopeasti. 19 00:01:00,000 --> 00:01:02,000 Tämä on vain näyteliuosta. 20 00:01:02,000 --> 00:01:05,000 Tämä ei välttämättä ole täydellinen ratkaisu. 21 00:01:05,000 --> 00:01:08,000 On olemassa monia erilaisia ​​tapoja kirjoittaa tähän, 22 00:01:08,000 --> 00:01:10,000 mutta on olemassa muutamia asioita, joita halusin korostaa 23 00:01:10,000 --> 00:01:13,000 että huomasin kun olin ryhmittely, yleisiä virheitä, että mielestäni 24 00:01:13,000 --> 00:01:18,000 tämä ratkaisu tekee erittäin hyvää työtä käsittelyn. 25 00:01:18,000 --> 00:01:22,000 >> Ensimmäinen on ottaa jonkinlainen otsikon kommentti yläosassa. 26 00:01:22,000 --> 00:01:25,000 Riveillä 1 7 näet yksityiskohdat, 27 00:01:25,000 --> 00:01:28,000 mitä tämä ohjelma tekee. 28 00:01:28,000 --> 00:01:32,000 Hyvä yleinen käytäntö, kun olet kirjoittamassa C-koodia 29 00:01:32,000 --> 00:01:35,000 riippumatta, jos ohjelma on sisällä yksittäinen tiedosto tai 30 00:01:35,000 --> 00:01:38,000 onko se jaettu yli useita tiedostoja on jonkinlainen 31 00:01:38,000 --> 00:01:40,000 suuntaaminen comment yläreunassa. 32 00:01:40,000 --> 00:01:43,000 Tämä on myös ihmisiä, jotka menevät ulos ja kirjoittaa koodia todellisessa maailmassa. 33 00:01:43,000 --> 00:01:47,000 Tämä on, jos he laittaa tekijänoikeustiedot. 34 00:01:47,000 --> 00:01:50,000 Alla # sisältyvät. 35 00:01:50,000 --> 00:01:55,000 Rivillä 16 on tämä # define, jonka tulemme takaisin vain hieman. 36 00:01:55,000 --> 00:01:59,000 Ja sitten kun toiminto käynnistyy, kun pääasiallinen alkaa, 37 00:01:59,000 --> 00:02:03,000 koska tämä ohjelma on kaikki sisältyy yksi toiminto 38 00:02:03,000 --> 00:02:09,000 Aivan ensimmäinen asia, joka tapahtuu ja tämä on hyvin idiomaattisia ja tyypillinen C-ohjelma 39 00:02:09,000 --> 00:02:14,000 että vie komentoriviargumentteja-on, että se välittömästi tarkistaa 40 00:02:14,000 --> 00:02:18,000 >> varten argumentti count, argc. 41 00:02:18,000 --> 00:02:24,000 Täällä me näemme, että tämä ohjelma on odottaa 2 väitteitä tarkalleen. 42 00:02:24,000 --> 00:02:27,000 Muista siellä että ensimmäinen väite, joka on erikoinen 43 00:02:27,000 --> 00:02:29,000 että on aina ohjelman nimi, joka on ajetaan, 44 00:02:29,000 --> 00:02:31,000 nimi suoritettavan tiedoston. 45 00:02:31,000 --> 00:02:36,000 Ja niin, mitä tämä tekee se estää käyttäjää käynnissä ohjelmasta 46 00:02:36,000 --> 00:02:42,000 enemmän tai vähemmän argumentteja. 47 00:02:42,000 --> 00:02:44,000 Syy haluamme tarkistaa tämän heti johtuu 48 00:02:44,000 --> 00:02:52,000 emme voi oikeastaan ​​käyttää tätä argv array täällä luotettavasti 49 00:02:52,000 --> 00:02:55,000 kunnes olemme tarkistanut kuinka suuri se on. 50 00:02:55,000 --> 00:02:58,000 >> Yksi yleisimmistä virheistä olen nähnyt oli ihmiset heti mennä 51 00:02:58,000 --> 00:03:01,000 ja napata argv [1]. 52 00:03:01,000 --> 00:03:06,000 He napata keskeinen argumentti pois array eivätkä jotta voin tarkistaa sitä, 53 00:03:06,000 --> 00:03:11,000 ja sitten he tehdä testi argc sekä seuraavaan testiin, 54 00:03:11,000 --> 00:03:16,000 vai ei ensimmäisen argumentin oli todellakin kokonaisluku samaan aikaan, 55 00:03:16,000 --> 00:03:20,000 ja se ei toimi, koska siinä tapauksessa, että ei ole perusteita mukana 56 00:03:20,000 --> 00:03:26,000 sinun on tarttumalla väite, joka ei ole siellä tai yrittää napata yksi, joka ei ole siellä. 57 00:03:26,000 --> 00:03:29,000 >> Toinen suuri asia, että sinun pitäisi huomata, että 58 00:03:29,000 --> 00:03:32,000 haluat aina tulostaa jonkinlainen hyödyllisiä virheilmoituksen 59 00:03:32,000 --> 00:03:34,000 käyttäjän suunnata niitä. 60 00:03:34,000 --> 00:03:37,000 Olen varma olet kaikki ajaa ohjelmia, joissa yhtäkkiä se kaatuu, 61 00:03:37,000 --> 00:03:41,000 ja saat tämän naurettavan pieni dialogi, joka ponnahtaa ylös ja sanoo 62 00:03:41,000 --> 00:03:44,000 jotain hirvittävän arvoituksellinen ja ehkä antaa virhekoodi tai jotain 63 00:03:44,000 --> 00:03:47,000 että ei ole mitään järkeä. 64 00:03:47,000 --> 00:03:50,000 Tämä on, jos todella haluat antaa jotain hyödyllistä 65 00:03:50,000 --> 00:03:54,000 ja kohdennettu käyttäjälle niin, että kun he ajaa sen he menevät "Oh," face palm. 66 00:03:54,000 --> 00:03:58,000 "Tiedän tarkalleen, mitä tehdä. Tiedän miten korjata tämä." 67 00:03:58,000 --> 00:04:01,000 >> Jos et tulostaa viestin, niin voit päätyä todella 68 00:04:01,000 --> 00:04:04,000 jolloin käyttäjä mennä tutkimaan lähdekoodia 69 00:04:04,000 --> 00:04:07,000 selvittää, mikä meni pieleen. 70 00:04:07,000 --> 00:04:11,000 On myös joitakin kertoja, että voit käyttää erilaisia ​​virhekoodeja. 71 00:04:11,000 --> 00:04:14,000 Täällä me vain käyttää yhdellä sanoa oli virhe, 72 00:04:14,000 --> 00:04:16,000 oli virhe, virhe. 73 00:04:16,000 --> 00:04:20,000 Isompi ohjelmia, usein ohjelmia, joita kutsutaan muita ohjelmia, 74 00:04:20,000 --> 00:04:25,000 palauttaa jonkinlainen erityinen virhekoodien eri skenaarioissa 75 00:04:25,000 --> 00:04:28,000 ohjelmallisesti kommunikoida mitä muutoin 76 00:04:28,000 --> 00:04:32,000 vain käyttää mukava Englanti viestin. 77 00:04:32,000 --> 00:04:35,000 Cool. 78 00:04:35,000 --> 00:04:37,000 Kun teemme työtä alas, voit nähdä meidän vetää avaimen ulos. 79 00:04:37,000 --> 00:04:40,000 Testaamme onko avain sopii. 80 00:04:40,000 --> 00:04:42,000 Saamme viestin käyttäjälle. 81 00:04:42,000 --> 00:04:46,000 Syy teemme sen tässä do while-silmukka-ja tämä on jotain, että me kattaa 82 00:04:46,000 --> 00:04:50,000 vuonna hieman, mutta näyttää siltä, ​​että jos kirjoitat ohjaus D 83 00:04:50,000 --> 00:04:54,000 kun saat että GetString kehote terminaalin 84 00:04:54,000 --> 00:04:59,000 mitä se oikeastaan ​​tekee se lähettää erikoismerkki 85 00:04:59,000 --> 00:05:01,000 ohjelmaan. 86 00:05:01,000 --> 00:05:05,000 Sitä kutsutaan ELF tai tiedoston loppuun luonnetta. 87 00:05:05,000 --> 00:05:08,000 Ja siinä tapauksessa, meidän viesti merkkijono on null, 88 00:05:08,000 --> 00:05:14,000 joten tämä ei ollut meidän tarkistettu vuonna ongelmaan asetti. 89 00:05:14,000 --> 00:05:17,000 >> Mutta kuten me mennä, nyt kun olemme alkaneet puhua osoittimia 90 00:05:17,000 --> 00:05:21,000 ja dynaamisen muistinkäytön kasaan, 91 00:05:21,000 --> 00:05:25,000 tarkistanut null aina on toiminto, joka voisi 92 00:05:25,000 --> 00:05:30,000 palauttaa null arvona on jotain, että sinun kannattaa saada tapana tehdä. 93 00:05:30,000 --> 00:05:33,000 Tämä on täällä lähinnä kuvitus. 94 00:05:33,000 --> 00:05:36,000 Mutta kun et näe GetString tulevaisuudessa, 95 00:05:36,000 --> 00:05:41,000 Joten Harjoitus 4, sinun kannattaa pitää tämä mielessä. 96 00:05:41,000 --> 00:05:44,000 Tämäkään ei ole ongelma Harjoitus 3 joko koska meillä ei ollut kata sitä vielä. 97 00:05:44,000 --> 00:05:53,000 Lopuksi saamme tähän osaan, jossa saamme tärkeimmät salaus silmukka, 98 00:05:53,000 --> 00:05:57,000 ja on olemassa pari asiaa täällä. 99 00:05:57,000 --> 00:06:02,000 Ensinnäkin, me kerrata koko viesti merkkijono itse. 100 00:06:02,000 --> 00:06:07,000 Täällä olemme pitäneet strlen puhelun kunnossa, 101 00:06:07,000 --> 00:06:12,000 joka monet teistä ovat todenneet ei ole hyvä tapa mennä. 102 00:06:12,000 --> 00:06:15,000 On käynyt ilmi, tässä tapauksessa se on myös ole suuri, 103 00:06:15,000 --> 00:06:20,000 osittain koska olemme muutetaan viestin sisältö itse 104 00:06:20,000 --> 00:06:27,000 sisällä on silmukan, joten jos saamme viestin, joka on 10 merkkiä pitkä, 105 00:06:27,000 --> 00:06:32,000 ensimmäistä kertaa aloitamme että silmukka strlen palaa mitä? 106 00:06:32,000 --> 00:06:35,000 10. 107 00:06:35,000 --> 00:06:40,000 >> Mutta jos me sitten muokata viestin, sanomme muuttaa sen 5. luonnetta, 108 00:06:40,000 --> 00:06:46,000 ja me heittää \ 0 hahmo 5. paikkaan, 109 00:06:46,000 --> 00:06:49,000 on myöhempi iteraatio strlen (viesti) ei palauta mitä se teki 110 00:06:49,000 --> 00:06:52,000 ensimmäistä kertaa toistetaan, 111 00:06:52,000 --> 00:06:56,000 mutta sen sijaan palauttaa 5, koska me heitti että null terminaattori, 112 00:06:56,000 --> 00:06:59,000 ja merkkijonon pituus on määritelty 113 00:06:59,000 --> 00:07:03,000 asennon mukaan, että \ 0. 114 00:07:03,000 --> 00:07:09,000 Tässä tapauksessa tämä on hyvä tapa edetä, koska olemme muuttamalla sen paikalleen. 115 00:07:09,000 --> 00:07:13,000 Mutta huomaa, että tämä on oikeastaan ​​yllättävän helppo salata 116 00:07:13,000 --> 00:07:16,000 jos saat matematiikka oikein. 117 00:07:16,000 --> 00:07:19,000 Kaikki mitä tarvitaan on tarkistaa, onko kirje että etsit 118 00:07:19,000 --> 00:07:21,000 on sekä isoja että pieniä. 119 00:07:21,000 --> 00:07:24,000 >> Siksi meidän on vain tarkistaa, että ja meillä ei tarvitse tarkistaa 120 00:07:24,000 --> 00:07:27,000 on alfa asia johtuu 121 00:07:27,000 --> 00:07:30,000 jos merkki on iso tai jos se on pieni 122 00:07:30,000 --> 00:07:33,000 niin se on ehdottomasti kirjaimen, 123 00:07:33,000 --> 00:07:38,000 koska meillä ei ole isoja ja pieniä numeroita. 124 00:07:38,000 --> 00:07:41,000 Toinen asia teemme ja tämä on hieman hankala, 125 00:07:41,000 --> 00:07:45,000 on olemme muutetaan standardin Caesar cipher kaava 126 00:07:45,000 --> 00:07:49,000 että annoimme Harjoitus erittely. 127 00:07:49,000 --> 00:07:52,000 Mitä eroa tässä on, että me vähennetään 128 00:07:52,000 --> 00:07:58,000 on iso asia pääomaa, ja sitten lisäsimme pääoma 129 00:07:58,000 --> 00:08:02,000 takaisin lopussa. 130 00:08:02,000 --> 00:08:05,000 >> Tiedän muutamia olet tehnyt tämän koodin. 131 00:08:05,000 --> 00:08:09,000 Oliko kukaan teistä tehdä tämän sinun väitteitä? 132 00:08:09,000 --> 00:08:13,000 Sinä teit tämän. Voitteko selittää, mitä tämä tekee, Sahb? 133 00:08:13,000 --> 00:08:18,000 Vähentämällä sitä, koska teit mod heti sen, 134 00:08:18,000 --> 00:08:21,000 sinun täytyy ottaa se pois, niin että niin saat [yskää] asentoon. 135 00:08:21,000 --> 00:08:25,000 Ja sitten lisäämällä sen takaisin myöhemmin sinä siirtynyt joka halusitte. 136 00:08:25,000 --> 00:08:27,000 Joo, aivan. 137 00:08:27,000 --> 00:08:32,000 Mikä Sahb sanoi oli, että kun haluamme lisätä 138 00:08:32,000 --> 00:08:36,000 meidän viestimme ja tärkeimmistä yhdessä 139 00:08:36,000 --> 00:08:42,000 ja sitten mod että mod että NUM_LETTERS, 140 00:08:42,000 --> 00:08:50,000 jos emme mittakaavassa meidän sanoman sopiva 0-25 alue ensin, 141 00:08:50,000 --> 00:08:54,000 Sitten saatamme päätyä saada todella outo numero 142 00:08:54,000 --> 00:08:59,000 koska arvot me tarkastelemme kun katsomme viesti [i] 143 00:08:59,000 --> 00:09:03,000 kun katsomme i luonnetta meidän plain-tekstiviestin, 144 00:09:03,000 --> 00:09:08,000 on arvo jossain tässä 65-122-alue 145 00:09:08,000 --> 00:09:13,000 perustuu ASCII arvoja isojen läpi pieniä z. 146 00:09:13,000 --> 00:09:18,000 Ja niin kun me mod sen 26 tai NUM_LETTERS, 147 00:09:18,000 --> 00:09:23,000 koska se oli meidän # define oikeassa yläreunassa tänne, 148 00:09:23,000 --> 00:09:28,000 että menee meille arvon sehän on 0-25 välillä, 149 00:09:28,000 --> 00:09:30,000 ja meidän tapa niin laajasti, että takaisin ylös 150 00:09:30,000 --> 00:09:32,000 ja saada sen asianmukaista ASCII alue. 151 00:09:32,000 --> 00:09:36,000 Helpoin tapa tehdä se on vain skaalata kaiken alas 152 00:09:36,000 --> 00:09:39,000 osaksi 0-25 välillä aluksi, 153 00:09:39,000 --> 00:09:43,000 ja sitten siirtää kaiken takaisin ylös lopussa. 154 00:09:43,000 --> 00:09:46,000 >> Toinen yleinen virhe, että näin ihmiset törmätä on se, että 155 00:09:46,000 --> 00:09:50,000 jos et itse tee tätä skaalaus heti 156 00:09:50,000 --> 00:09:53,000 ja lisäät viestin ja avaimen yhteen ja lisäät ne vaikkapa 157 00:09:53,000 --> 00:09:58,000 osaksi char muuttuja, ongelma, että 158 00:09:58,000 --> 00:10:01,000 on, koska viesti [i] on suhteellisen suuri määrä aloittaa- 159 00:10:01,000 --> 00:10:05,000 Muistan sen on ainakin 65, jos se on ison kirjaimen, 160 00:10:05,000 --> 00:10:09,000 jos sinulla on iso avain, eli jotain 100, 161 00:10:09,000 --> 00:10:13,000 ja lisäät ne 2 yhteen allekirjoitettu char aiot saada ylivuoto. 162 00:10:13,000 --> 00:10:17,000 Olet menossa saada arvon, joka on suurempi kuin 127, 163 00:10:17,000 --> 00:10:22,000 mikä on suurin arvo, char muuttuja mahtuu. 164 00:10:22,000 --> 00:10:26,000 Jälleen, siksi et haluaisi tehdä tuollaista aluksi. 165 00:10:26,000 --> 00:10:29,000 Jotkut ehtinyt tapauksessa tekemällä jos muuta ja testaus 166 00:10:29,000 --> 00:10:33,000 onko se olisi ylivuoto sitä ennen, että 167 00:10:33,000 --> 00:10:36,000 mutta näin saa kiertää. 168 00:10:36,000 --> 00:10:40,000 Ja sitten tässä ratkaisussa me tulostaa koko merkkijonon aivan lopussa. 169 00:10:40,000 --> 00:10:45,000 Muut ihmiset tulostetaan merkki kerrallaan. Molemmat ovat mahtavia. 170 00:10:45,000 --> 00:10:51,000 Tässä vaiheessa tehdä teillä on kysymyksiä, kommentteja tästä? 171 00:10:51,000 --> 00:10:56,000 Asiat haluat, mitä et pidä? 172 00:10:56,000 --> 00:10:58,000 >> Minulla oli kysymys. 173 00:10:58,000 --> 00:11:01,000 Ehkä missasin sen aikana selitys, mutta miten tämä ohjelma 174 00:11:01,000 --> 00:11:07,000 ohittaa tilat liittämistä varten avain tekstin pituus? 175 00:11:07,000 --> 00:11:10,000 Tämä on vain Caesarin salakirjoitus. >> Anteeksi, joo. 176 00:11:10,000 --> 00:11:13,000 Joo, näemme, että. 177 00:11:13,000 --> 00:11:16,000 Vuonna Caesar cipher saimme noin että koska 178 00:11:16,000 --> 00:11:18,000 me vain selattava merkkiä. 179 00:11:18,000 --> 00:11:27,000 Me vain pyörinyt, jos ne olivat isoja tai pieniä. 180 00:11:27,000 --> 00:11:32,000 Te olo melko hyvä tästä? 181 00:11:32,000 --> 00:11:34,000 Voit vapaasti kopioida tämän kotiin, ota se, 182 00:11:34,000 --> 00:11:37,000 vertaa sitä mitä te kirjoitti. 183 00:11:37,000 --> 00:11:42,000 Ehdottomasti vapaasti lähettää kysymyksiä siitä liikaa. 184 00:11:42,000 --> 00:11:46,000 Ja vielä, ymmärtää, että tavoite täällä ongelman asettaa 185 00:11:46,000 --> 00:11:50,000 ei saada te kirjoittaa täydellinen koodi ongelman sarjaa. 186 00:11:50,000 --> 00:11:57,000 Se on oppimiskokemus. Joo. 187 00:11:57,000 --> 00:12:01,000 >> Palaa do while-silmukka, jos se vastaa null, 188 00:12:01,000 --> 00:12:06,000 joten null juuri merkitse mitään, he vain enteriä? 189 00:12:06,000 --> 00:12:12,000 Null on erityinen osoittimen arvoa, 190 00:12:12,000 --> 00:12:17,000 ja käytämme null kun haluamme sanoa 191 00:12:17,000 --> 00:12:23,000 meillä osoitin muuttuja osoittaa mitään. 192 00:12:23,000 --> 00:12:28,000 Ja niin yleensä se tarkoittaa, että tämä muuttuja, tämä viesti muuttuja 193 00:12:28,000 --> 00:12:35,000 on tyhjä, ja täällä, koska käytämme CS50 erityistä merkkijono tyyppi, 194 00:12:35,000 --> 00:12:37,000 Mikä on CS50 merkkijono tyyppi? 195 00:12:37,000 --> 00:12:42,000 Oletko nähnyt, mitä se on, kun Daavid vedetty takaisin huppu luento? 196 00:12:42,000 --> 00:12:44,000 Se on funky-se osoitin, eikö? 197 00:12:44,000 --> 00:12:48,000 Okei, joo. >> Se char *. 198 00:12:48,000 --> 00:12:52,000 Ja niin todella voisimme korvata tämän 199 00:12:52,000 --> 00:12:56,000 täällä kanssa char * viesti 200 00:12:56,000 --> 00:13:04,000 ja niin GetString toiminto, jos se ei ole onnistunut saamaan merkkijono käyttäjältä, 201 00:13:04,000 --> 00:13:08,000 se ei voi jäsentää merkkijono, ja yhdestä tapauksesta, jossa se ei voi jäsentää merkkijono 202 00:13:08,000 --> 00:13:11,000 on, jos käyttäjä tiedoston loppuun luonnetta, ohjaus D 203 00:13:11,000 --> 00:13:17,000 joka ei ole jotain yleensä tehdä, mutta jos se tapahtuu 204 00:13:17,000 --> 00:13:20,000 niin funktio palauttaa tämän null arvon tapa sanoa 205 00:13:20,000 --> 00:13:23,000 "Hei, en saanut merkkijono." 206 00:13:23,000 --> 00:13:27,000 Mitä tapahtuisi, jos emme laita viestiä = null, 207 00:13:27,000 --> 00:13:30,000 joka on jotain, että emme ole tehneet vielä? 208 00:13:30,000 --> 00:13:32,000 Miksi se olisi ongelma? 209 00:13:32,000 --> 00:13:38,000 Koska tiedän, että olemme puhuneet hieman vuonna luennon muistivuotoja. 210 00:13:38,000 --> 00:13:42,000 Joo, tehdään se, ja katsotaan mitä tapahtuu. 211 00:13:42,000 --> 00:13:44,000 >> Basil kysymys oli, mitä tapahtuu, jos emme oikeastaan ​​ole 212 00:13:44,000 --> 00:13:48,000 viesti = null testi? 213 00:13:48,000 --> 00:13:51,000 Katsotaanpa selaamalla ylös. 214 00:13:51,000 --> 00:13:53,000 Te voi kommentoida tätä. 215 00:13:53,000 --> 00:13:55,000 Oikeastaan, minä pelastan sen tarkistamista. 216 00:13:55,000 --> 00:13:58,000 Tämä on Revision 3. 217 00:13:58,000 --> 00:14:02,000 Mitä sinun täytyy tehdä ajaa tätä ohjelmaa sinun täytyy klikkaa tästä vaihde kuvaketta täällä, 218 00:14:02,000 --> 00:14:04,000 ja sinun täytyy lisätä väitteen siihen. 219 00:14:04,000 --> 00:14:10,000 Sinun täytyy antaa sille keskeinen väite, koska haluamme kulkea komentorivillä. 220 00:14:10,000 --> 00:14:13,000 Täällä aion antaa sen numero 3. Pidän 3. 221 00:14:13,000 --> 00:14:19,000 Nyt zoomaus takaisin ulos, käynnissä ohjelma. 222 00:14:19,000 --> 00:14:24,000 Se on käynnissä, kokoamisessa, rakennus. 223 00:14:24,000 --> 00:14:27,000 Täällä mennään. Se odottaa pyydetään. 224 00:14:27,000 --> 00:14:33,000 Jos minä kirjoita jotain hello-minne se meni? 225 00:14:33,000 --> 00:14:38,000 Voi, minun ohjelma kesti liian kauan ajaa. Olin jawing liian kauan. 226 00:14:38,000 --> 00:14:40,000 Täällä se menee. 227 00:14:40,000 --> 00:14:43,000 Nyt minä kirjoita hei. 228 00:14:43,000 --> 00:14:46,000 Näemme, että se salaa asianmukaisesti. 229 00:14:46,000 --> 00:14:52,000 Nyt mitä tapahtuu, jos teemme nopean GetString palata null? 230 00:14:52,000 --> 00:14:57,000 Muista, sanoin, että teimme, että painamalla Control-D samanaikaisesti. 231 00:14:57,000 --> 00:14:59,000 Minä selaamalla ylös tänne. Me ajaa se uudelleen. 232 00:14:59,000 --> 00:15:01,000 Building. Siellä se menee. 233 00:15:01,000 --> 00:15:04,000 Nyt kun lyön ohjaus D 234 00:15:04,000 --> 00:15:12,000 Sain tämän linjan, joka sanoo opt/sandbox50/bin/run.sh, segmentointi vika. 235 00:15:12,000 --> 00:15:15,000 Oletteko nähnyt sitä aiemmin? 236 00:15:15,000 --> 00:15:17,000 >> [Opiskelija] Miksi ei->> Anteeksi? 237 00:15:17,000 --> 00:15:20,000 [Opiskelija] Miksi ei ole core dump tässä tapauksessa? 238 00:15:20,000 --> 00:15:26,000 Core dump on-kysymys on miksi ei ole core dump täällä? 239 00:15:26,000 --> 00:15:29,000 Kysymys on, että voi olla, mutta core dump on tiedosto 240 00:15:29,000 --> 00:15:31,000 että saa tallennettua kiintolevylle. 241 00:15:31,000 --> 00:15:34,000 Tässä tapauksessa olemme käytöstä ytimen kaatopaikkoja 242 00:15:34,000 --> 00:15:37,000 ajelu palvelimelle niin että emme ole ihmisiä segmentti Virhesovellus 243 00:15:37,000 --> 00:15:40,000 ja rakentaa tonnia ytimen kaatopaikkoja. 244 00:15:40,000 --> 00:15:46,000 Mutta saatat saada. 245 00:15:46,000 --> 00:15:48,000 Core kaatopaikat ovat sellainen asia, että voit usein poistaa, 246 00:15:48,000 --> 00:15:52,000 ja joskus et. 247 00:15:52,000 --> 00:15:55,000 Segmentointi vika, vastata kysymykseen, Basil, 248 00:15:55,000 --> 00:16:00,000 on selvää, että olemme yrittäneet avata osoittimen 249 00:16:00,000 --> 00:16:05,000 joka ei asetettu osoittamaan mitään. 250 00:16:05,000 --> 00:16:09,000 Muista Binky vuonna videon kun Binky yrittää 251 00:16:09,000 --> 00:16:12,000 go pääsy osoitin, joka ei ole osoittaa mitään? 252 00:16:12,000 --> 00:16:16,000 Tässä tapauksessa kai teknisesti osoitin osoittaa jotain. 253 00:16:16,000 --> 00:16:20,000 Se osoittaa null, mikä on teknisesti 0, 254 00:16:20,000 --> 00:16:25,000 mutta että on määritelty olevan segmentin, joka ei ole käytettävissä 255 00:16:25,000 --> 00:16:28,000 teidän ohjelma, joten saat segmentointi vika 256 00:16:28,000 --> 00:16:31,000 koska et päästä muistia, joka on voimassa olevassa segmentissä 257 00:16:31,000 --> 00:16:38,000 kuten kasan segmentin tai pinon segmentin tai datasegmentin. 258 00:16:38,000 --> 00:16:40,000 Cool. 259 00:16:40,000 --> 00:16:48,000 Kysyttävää Caesar? 260 00:16:48,000 --> 00:16:51,000 >> Siirrytään. Katsotaanpa Versio 2 todella nopeasti. 261 00:16:51,000 --> 00:17:00,000 Se Vigenère. 262 00:17:00,000 --> 00:17:04,000 Täällä Vigenère 263 00:17:04,000 --> 00:17:06,000 käydään läpi tämä melko nopeasti, koska jälleen 264 00:17:06,000 --> 00:17:10,000 Vigenère ja Caesar ovat melko samanlaisia. 265 00:17:10,000 --> 00:17:12,000 Header kommentti on ennen, 266 00:17:12,000 --> 00:17:17,000 # Define on ennen välttää käyttämällä näitä Magic Numbers. 267 00:17:17,000 --> 00:17:21,000 Kiva juttu on sanoa halusimme siirtyä 268 00:17:21,000 --> 00:17:23,000 eri aakkoset tai jotain. 269 00:17:23,000 --> 00:17:26,000 Sen sijaan, mennä manuaalisesti muuttaa kaikki 26: n vuonna koodin 270 00:17:26,000 --> 00:17:30,000 voisimme muuttaa 27 tai pudota alas 271 00:17:30,000 --> 00:17:34,000 jos käytimme eri aakkosista, eri kieliä. 272 00:17:34,000 --> 00:17:38,000 Jälleen meillä tämä tarkistus väitteen määrä, 273 00:17:38,000 --> 00:17:42,000 ja todella voi melkein pitää tätä mallia. 274 00:17:42,000 --> 00:17:46,000 Melkeinpä jokainen ohjelma voit kirjoittaa pitäisi olla- 275 00:17:46,000 --> 00:17:50,000 jos se kestää komentoriviargumentteja-jotkut järjestyksessä linjat 276 00:17:50,000 --> 00:17:55,000 että lukee näin aivan alussa. 277 00:17:55,000 --> 00:17:59,000 Se on yksi ensimmäisistä sanity testien haluat tehdä. 278 00:17:59,000 --> 00:18:03,000 >> Täällä mitä teimme oli teimme että 279 00:18:03,000 --> 00:18:06,000 avainsana oli voimassa, ja se oli toinen tarkastus, että teimme. 280 00:18:06,000 --> 00:18:11,000 Huomaa jälleen, että erosimme tämä päässä argc ja 2. 281 00:18:11,000 --> 00:18:14,000 Huomaa, että tässä tapauksessa yksi asia, että meidän oli tehtävä oli sen sijaan 282 00:18:14,000 --> 00:18:18,000 käyttää i halusimme vahvistaa koko merkkijonon, 283 00:18:18,000 --> 00:18:21,000 ja jotta tehdä, että sinulla todella on mennä merkki merkiltä 284 00:18:21,000 --> 00:18:23,000 yli merkkijono. 285 00:18:23,000 --> 00:18:29,000 Ei ole hyvä tapa soittaa jotain sitä 286 00:18:29,000 --> 00:18:31,000 koska jopa, esimerkiksi i palaa 0 287 00:18:31,000 --> 00:18:37,000 jos se ei voi jäsentää kokonaisluku, niin että ei edes toimi. 288 00:18:37,000 --> 00:18:42,000 Jälleen mukava viesti kertoo käyttäjälle, mitä tapahtui. 289 00:18:42,000 --> 00:18:45,000 Sitten täällä taas, hoidamme myös silloin 290 00:18:45,000 --> 00:18:50,000 käyttäjä tyypit ohjaus D satunnainen luonne. 291 00:18:50,000 --> 00:18:54,000 >> Ja sitten Charlotte oli kysymys aikaisemmin siitä, miten me onnistumme ohittaa tiloihin 292 00:18:54,000 --> 00:18:57,000 meidän merkkijono täällä. 293 00:18:57,000 --> 00:19:00,000 Tämä oli sellainen samanlainen kuin mitä teimme Myspace ohjelmaan 294 00:19:00,000 --> 00:19:04,000 että teimme osassa, ja miten tämä toimi 295 00:19:04,000 --> 00:19:08,000 on, että me seurataan kirjainten määrä että olimme nähneet. 296 00:19:08,000 --> 00:19:13,000 Kun kävelimme yli viestin merkkijonon, kun kävelimme yli merkki merkiltä 297 00:19:13,000 --> 00:19:16,000 me seurataan indeksi osana varten silmukan, ja sitten me myös seurataan 298 00:19:16,000 --> 00:19:21,000 kirjeiden määrä, joten ei erikoismerkkejä, ei numeroita, ei-valkoinen tila 299 00:19:21,000 --> 00:19:27,000 että olimme nähneet erillisessä muuttuja. 300 00:19:27,000 --> 00:19:33,000 Ja sitten tämä liuos muutetaan avaimen 301 00:19:33,000 --> 00:19:41,000 saada todellinen avain kokonaisluku, ja se että lennossa, 302 00:19:41,000 --> 00:19:47,000 juuri ennen kuin se menee sitten salata varsinaisen viestin merkki. 303 00:19:47,000 --> 00:19:50,000 On joitakin ratkaisuja, jotka olivat täysin hyvältä 304 00:19:50,000 --> 00:19:58,000 joka muuttaa ylös kun testaus avaimen voimassaoloajan. 305 00:19:58,000 --> 00:20:01,000 Lisäksi varmista, että merkki ja avainsana 306 00:20:01,000 --> 00:20:05,000 oli kirjaimella se kääntyi, että tulee kokonaisluku 307 00:20:05,000 --> 00:20:13,000 vuonna 0-25 alue siirry ottaa tehdä myöhemmin tätä silmukka. 308 00:20:13,000 --> 00:20:18,000 Jälleen näet täällä on todella täsmälleen sama koodi 309 00:20:18,000 --> 00:20:22,000 että me käytetään Caesar tässä vaiheessa. 310 00:20:22,000 --> 00:20:25,000 Teet täsmälleen sama asia, joten todellinen temppu on miettiminen 311 00:20:25,000 --> 00:20:30,000 miten kääntää avainsanan kokonaisluku. 312 00:20:30,000 --> 00:20:35,000 >> Yksi asia, että teimme täällä, että on hieman tiheä 313 00:20:35,000 --> 00:20:39,000 on me toisti tämän lauseen, kai sitä voisi kutsua, 314 00:20:39,000 --> 00:20:45,000 3 erillistä kertaa linjat 58, 59, ja 61. 315 00:20:45,000 --> 00:20:52,000 Voiko joku selittää, mitä tämä lause ei? 316 00:20:52,000 --> 00:20:55,000 Se pääsyä hahmo, kuten sanoit. 317 00:20:55,000 --> 00:20:59,000 Joo, se on [kuulumattomissa] merkki avainsanan, 318 00:20:59,000 --> 00:21:04,000 ja niin se on määrä kirjaimia nähnyt, koska olet vain liikkuvat pitkin 319 00:21:04,000 --> 00:21:06,000 Hakusanalla kun olet nähnyt kirjeen, 320 00:21:06,000 --> 00:21:10,000 niin että menee tehokkaasti ohittaa tiloja ja muuta vastaavaa. 321 00:21:10,000 --> 00:21:12,000 Joo, aivan. 322 00:21:12,000 --> 00:21:16,000 Ja sitten kun olet nähnyt avainsanan tyhjäksi juuri mod niin siirryt takaisin noin. 323 00:21:16,000 --> 00:21:18,000 Aivan. Se on täydellinen selitys. 324 00:21:18,000 --> 00:21:23,000 Mikä Kevin sanoi, että haluamme indeksinä avainsanan. 325 00:21:23,000 --> 00:21:28,000 Haluamme saada num_letters_seen merkki, jos haluatte, 326 00:21:28,000 --> 00:21:32,000 mutta jos num_letters_seen ylittää pituus avainsanan, 327 00:21:32,000 --> 00:21:37,000 miten saamme takaisin sopiva alue on käytämme mod operaattori 328 00:21:37,000 --> 00:21:40,000 tehokkaasti kääri ympärille. 329 00:21:40,000 --> 00:21:43,000 Yksi esimerkki lyhyellä, avainsanojen on pekonia, 330 00:21:43,000 --> 00:21:46,000 ja se on 5 kirjainta pitkä. 331 00:21:46,000 --> 00:21:50,000 Mutta olemme nähneet 6 kirjainta meidän tekstimuodossa tässä vaiheessa 332 00:21:50,000 --> 00:21:52,000 ja salattu 6. 333 00:21:52,000 --> 00:21:57,000 Päädymme päästä num_letters_seen, 334 00:21:57,000 --> 00:22:00,000 joka on 6, mod pituus avainsanan, 5, 335 00:22:00,000 --> 00:22:04,000 ja niin saamme 1, ja niin me teemme on hyvitämme 336 00:22:04,000 --> 00:22:14,000 käyttää ensimmäisen merkin sisällä avainsanojen tässä vaiheessa. 337 00:22:14,000 --> 00:22:21,000 >> Selvä, kysyttävää Vigenère 338 00:22:21,000 --> 00:22:26,000 ennen kuin siirrymme? 339 00:22:26,000 --> 00:22:31,000 Te olo melko hyvä tästä? 340 00:22:31,000 --> 00:22:35,000 Cool, suuri. 341 00:22:35,000 --> 00:22:38,000 Haluan varmistaa, että te saavat mahdollisuuden nähdä koodin 342 00:22:38,000 --> 00:22:48,000 että ajattelemme näyttää hyvältä ja on mahdollisuus oppia siitä. 343 00:22:48,000 --> 00:22:53,000 Tämä tulee olemaan viimeinen Käytämme tiloja toistaiseksi, 344 00:22:53,000 --> 00:22:59,000 ja aiomme siirtyminen nyt, ja aion mennä cs50.net/lectures 345 00:22:59,000 --> 00:23:06,000 jotta voimme tehdä hieman tietovisa tarkastelun. 346 00:23:06,000 --> 00:23:10,000 Paras tapa mielestäni alkaa tehdä tietovisa arvostelu 347 00:23:10,000 --> 00:23:15,000 on tullut tähän Luennot sivulle, cs50.net/lectures, 348 00:23:15,000 --> 00:23:20,000 ja alla jokainen viikon otsikot, joten jos katson täällä viikolla 0, 349 00:23:20,000 --> 00:23:27,000 Näen, että meillä on lista aiheita, jotka kävimme viikolla 0. 350 00:23:27,000 --> 00:23:31,000 >> Jos jokin näistä aiheista näyttävät tuntemattomia teitä 351 00:23:31,000 --> 00:23:34,000 sinun ehdottomasti halua mennä takaisin ja pestä luentomuistiinpanot ja mahdollisesti 352 00:23:34,000 --> 00:23:39,000 vaikka lukaista läpi luentojen, katsella niitä uudelleen, jos haluat 353 00:23:39,000 --> 00:23:44,000 saada tuntea, mitä on tekeillä kunkin aiheista. 354 00:23:44,000 --> 00:23:49,000 Sanon lisäksi tänä vuonna yksi viileä resursseja meillä 355 00:23:49,000 --> 00:23:55,000 On nämä shortsit että olemme luoneet, ja jos tarkastellaan viikon 0, 356 00:23:55,000 --> 00:24:00,000 meillä ei ole kaikkia aiheita, mutta meillä varsin harvat niistä, 357 00:24:00,000 --> 00:24:03,000 joitakin hankalampi niistä, joten katsomassa näitä shortsit uudelleen 358 00:24:03,000 --> 00:24:08,000 on hyvä tapa saada sinut vauhtiin. 359 00:24:08,000 --> 00:24:15,000 Erityisesti aion laittaa pistoke 3 pohjalle, koska tein nuo. 360 00:24:15,000 --> 00:24:20,000 Mutta jos olet kamppailee binary, bitit, hex, tuollaista kamaa, 361 00:24:20,000 --> 00:24:22,000 binary on hyvä paikka aloittaa. 362 00:24:22,000 --> 00:24:25,000 ASCII on toinen, joka on hyvä tarkastella myös. 363 00:24:25,000 --> 00:24:31,000 Voit jopa katsella minua 1.5x nopeudella jos aion liian hidas sinulle. 364 00:24:31,000 --> 00:24:35,000 Koska se katsaus, voit tehdä niin. 365 00:24:35,000 --> 00:24:40,000 >> Vain aloittaa todella nopeasti, aiomme käydä läpi pari näitä tietovisa ongelmista 366 00:24:40,000 --> 00:24:44,000 vain nopeasti suoltaa näiden kautta. 367 00:24:44,000 --> 00:24:50,000 Esimerkiksi Katsotaanpa ongelma 16 että minulla asti tänne taululle. 368 00:24:50,000 --> 00:24:54,000 Meillä tätä seuraavan laskelman binary, 369 00:24:54,000 --> 00:24:56,000 ja haluamme osoittaa mitään työtä. 370 00:24:56,000 --> 00:24:59,000 Okei, aion antaa tämän laukaus. 371 00:24:59,000 --> 00:25:01,000 Teidän pitäisi seurata mukana paperi, 372 00:25:01,000 --> 00:25:04,000 ja teemme tämän todella nopeasti. 373 00:25:04,000 --> 00:25:06,000 Haluamme tehdä seuraava laskelma binary. 374 00:25:06,000 --> 00:25:16,000 Minulla 00110010. 375 00:25:16,000 --> 00:25:27,000 Ja aion lisätä siihen 00110010. 376 00:25:27,000 --> 00:25:30,000 Sillä matematiikka neroja jälkeen pitkin kotona, 377 00:25:30,000 --> 00:25:35,000 Tämä on käytännössä kertomalla 2. 378 00:25:35,000 --> 00:25:37,000 Aloitetaan. 379 00:25:37,000 --> 00:25:39,000 Aiomme noudattaa samaa Lisäksi algoritmi, jota teemme 380 00:25:39,000 --> 00:25:43,000 kun lisäämme desimaalilukujen yhteen. 381 00:25:43,000 --> 00:25:46,000 Oikeastaan ​​ainoa ero on se, että me silmukka takaisin noin 382 00:25:46,000 --> 00:25:51,000 kun meillä on 1 + 1 eikä kerran saamme 10. 383 00:25:51,000 --> 00:25:53,000 >> Jos lähdemme oikealta, todella nopeasti, mitä ensimmäisen numeron? 384 00:25:53,000 --> 00:25:55,000 [Student] 0. >> [Nate H.] 0. 385 00:25:55,000 --> 00:25:58,000 Suuri, toinen numero? 386 00:25:58,000 --> 00:26:00,000 [Student] 1. 387 00:26:00,000 --> 00:26:02,000 [Nate H.] Onko se 1? 1 + 1 on? 388 00:26:02,000 --> 00:26:04,000 [Opiskelija] 10. 389 00:26:04,000 --> 00:26:08,000 [Nate H.] Aivan, niin mikä on numero että kirjoitan oikealla alla 2 niistä yhteen? 390 00:26:08,000 --> 00:26:11,000 [Opiskelija] 1, 0 tai 0 ja sitten kuljettaa 1. 391 00:26:11,000 --> 00:26:15,000 [Nate H.] 0 ja kuljettaa 1, tarkalleen. 392 00:26:15,000 --> 00:26:18,000 Seuraavaksi yksi ylös, Basil, sinun vuorosi. 393 00:26:18,000 --> 00:26:20,000 Mikä on kolmas? >> [Basil] 1. 394 00:26:20,000 --> 00:26:23,000 [Nate H.] 1, täydellinen. Kevin? 395 00:26:23,000 --> 00:26:27,000 [Kevin] 0. >> [Nate H.] 0, Charlotte? 396 00:26:27,000 --> 00:26:30,000 [Charlotte] 0. >> [Nate H.] Joo, ja mitä teen? 397 00:26:30,000 --> 00:26:32,000 [Opiskelija] 1. 398 00:26:32,000 --> 00:26:34,000 [Nate H.] Ja mitä teen? Ja sitten jatkan 1. 399 00:26:34,000 --> 00:26:36,000 Täydellinen, Sahb? >> [Sahb] Nyt sinulla on 1. 400 00:26:36,000 --> 00:26:40,000 [Nate H.] Ja teen jotain täällä? 401 00:26:40,000 --> 00:26:43,000 [Sahb] Sitten seuraava sinulla on 1 koska siirretyt 1. 402 00:26:43,000 --> 00:26:49,000 [Nate H.] Great, joten tässä voimme lopettaa sen. 403 00:26:49,000 --> 00:26:51,000 Cool. 404 00:26:51,000 --> 00:26:54,000 [Student] Onko 0 + 0 = 0? 405 00:26:54,000 --> 00:26:56,000 0 + 0 = 0. 406 00:26:56,000 --> 00:27:01,000 1 + 1, kuten sanoit, on 10, tai 1, 0, pikemminkin. 407 00:27:01,000 --> 00:27:07,000 10 on harhaanjohtava, koska minulle 10 tarkoittaa numero 10, 408 00:27:07,000 --> 00:27:12,000 ja se omituisuus, miten me eli sitä, kun olemme sen kirjoittamisesta. 409 00:27:12,000 --> 00:27:20,000 Edustamme numero 2 1, 0, ja numero 10 on hieman erilainen. 410 00:27:20,000 --> 00:27:23,000 >> Mikä on tavallaan mukavaa noin binary on, että ei todellakaan ole, että monet 411 00:27:23,000 --> 00:27:25,000 tapauksissa sinun täytyy oppia. 412 00:27:25,000 --> 00:27:30,000 Ei 0 + 0 = 0, 0 + 1 = 1, 413 00:27:30,000 --> 00:27:34,000 1 + 1 on 0, ja sitten kuljettaa 1, 414 00:27:34,000 --> 00:27:37,000 ja sitten näet täällä kolmannessa sarakkeessa oikealta 415 00:27:37,000 --> 00:27:40,000 meillä oli tämä 1, 1, ja 1. 416 00:27:40,000 --> 00:27:43,000 Ja 1 + 1 + 1 on 1, 417 00:27:43,000 --> 00:27:45,000 ja kannatte vielä 1. 418 00:27:45,000 --> 00:27:48,000 Kun teet binary lisäksi melko yksinkertainen. 419 00:27:48,000 --> 00:27:51,000 Tekisin pari enemmän näitä järki tarkistaa itseänne 420 00:27:51,000 --> 00:27:54,000 ennen kuin mennä, koska tämä on 421 00:27:54,000 --> 00:28:00,000 luultavasti jotain, että me nähdä tietovisa. 422 00:28:00,000 --> 00:28:03,000 Nyt tehdään tämä seuraava samoin. 423 00:28:03,000 --> 00:28:06,000 Tehdään ongelma 17. 424 00:28:06,000 --> 00:28:12,000 Aiomme muuntaa Seuraavat binääripaketit numeroa desimaalin. 425 00:28:12,000 --> 00:28:28,000 Minulla 10100111001. 426 00:28:28,000 --> 00:28:33,000 Muistakaa binary video, että tein 427 00:28:33,000 --> 00:28:36,000 Kävelin läpi pari esimerkkiä, ja näytin miten 428 00:28:36,000 --> 00:28:41,000 kaikki toimii kun teet sen desimaali. 429 00:28:41,000 --> 00:28:45,000 Kun olet työskennellyt desimaalin edustus Taidamme 430 00:28:45,000 --> 00:28:48,000 Tässä vaiheessa elämäämme niin sujuvaa se, että 431 00:28:48,000 --> 00:28:53,000 se on melko helppo peitellä mekaniikka, miten se todella toimii. 432 00:28:53,000 --> 00:28:59,000 >> Mutta tehdä nopea kertaus, jos minulla on numero 137 433 00:28:59,000 --> 00:29:06,000 tämä todella tarkoittaa ja uudestaan, tämä on desimaali edustus- 434 00:29:06,000 --> 00:29:19,000 numero 137 desimaalimuodossa tarkoittaa, että minulla on 1 x 100 + 3 x 10 + 7 x 1. 435 00:29:19,000 --> 00:29:22,000 Tämä kaikki on pysyä näytöllä. 436 00:29:22,000 --> 00:29:29,000 Ja sitten jos tarkastellaan näitä numeroita täällä, 437 00:29:29,000 --> 00:29:34,000 100, 10 ja 1, näette että he todella kaikki valtuudet 10. 438 00:29:34,000 --> 00:29:43,000 Olen 10 ², 10 ¹, ja 10 nollaan. 439 00:29:43,000 --> 00:29:48,000 Meillä on samanlainen jutuissa binääri, 440 00:29:48,000 --> 00:29:55,000 paitsi että meidän pohja, kuten me sitä kutsumme, on 2 sijasta 10. 441 00:29:55,000 --> 00:29:58,000 Nämä 10s että kirjoitin tänne alareunassa, 442 00:29:58,000 --> 00:30:02,000 Tämän 10 m², 10 ¹, 10 nolla, 10 on meidän tukikohta, 443 00:30:02,000 --> 00:30:08,000 ja eksponentti, 0, 1 tai 2, 444 00:30:08,000 --> 00:30:14,000 on epäsuorasti aseman numeron määrä, että me kirjoittaa. 445 00:30:14,000 --> 00:30:21,000 1, jos katsomme sitä, tämä 1 on 2. asennossa. 446 00:30:21,000 --> 00:30:27,000 3 on ensimmäinen asento, ja 7 on 0. asennossa. 447 00:30:27,000 --> 00:30:35,000 Näin saamme eri eksponentit alla meidän perustaa. 448 00:30:35,000 --> 00:30:40,000 >> Sen jälkeen kaikki tämän we'll-oikeastaan, tiedätkö mitä? 449 00:30:40,000 --> 00:30:43,000 Teemme-mistä minun kumoa painike mennä? 450 00:30:43,000 --> 00:30:45,000 Siellä se menee. 451 00:30:45,000 --> 00:30:47,000 Rakastan tätä kumoa juttu. 452 00:30:47,000 --> 00:30:51,000 Tämän Mielestäni minulle ainakin 453 00:30:51,000 --> 00:30:54,000 Helpoin tapa aloittaa muuntamalla binääriluvun 454 00:30:54,000 --> 00:30:57,000 tai heksadesimaaliluvun jossa pohja on 16 455 00:30:57,000 --> 00:31:02,000 eikä 10 tai 2 on mennä eteenpäin ja kirjoittaa 456 00:31:02,000 --> 00:31:09,000 perusteet ja eksponentit varten kaikki numerot minun binääriluvun yläreunassa. 457 00:31:09,000 --> 00:31:14,000 Jos alamme vasemmalta oikealle jälleen 458 00:31:14,000 --> 00:31:17,000 joka on eräänlainen counterintuitive, 459 00:31:17,000 --> 00:31:23,000 Muutan takaisin mustan tänne, meillä on 2 0. asentoon, 460 00:31:23,000 --> 00:31:27,000 ja sitten meillä on 2 ¹, 2 ², 461 00:31:27,000 --> 00:31:33,000 ja sitten 2 3, 2 ja 4, 2 ja 5, 6, 462 00:31:33,000 --> 00:31:39,000 7, 8, 9, ja 10. 463 00:31:39,000 --> 00:31:41,000 Nämä luvut Olen kirjoittanut ulos kaikki eksponentit. 464 00:31:41,000 --> 00:31:48,000 Minä vain kirjoitti emäkset täällä ensimmäisen 3 vain tilaa. 465 00:31:48,000 --> 00:31:50,000 >> Tässä vaiheessa aion mennä eteenpäin ja olen todella menossa poistaa 466 00:31:50,000 --> 00:31:53,000 kamaa, että teimme desimaali, jos se on okei. 467 00:31:53,000 --> 00:31:57,000 Olette kaikki sai tuon. 468 00:31:57,000 --> 00:32:05,000 Ne teistä katsomassa verkossa olen varma voi kelata minulle jos haluat. 469 00:32:05,000 --> 00:32:07,000 Siirtyminen takaisin kynän. 470 00:32:07,000 --> 00:32:12,000 Nyt, mitä voimme tehdä, jos te ole täysin vauhtiin oman toimivalta 2, 471 00:32:12,000 --> 00:32:15,000 joka on täysin viileä. 472 00:32:15,000 --> 00:32:18,000 Se tapahtuu. Ymmärrän. 473 00:32:18,000 --> 00:32:23,000 Minulla oli kerran työhaastattelussa, jossa minulle kerrottiin minun pitäisi tietää kaikki valtuudet 2 474 00:32:23,000 --> 00:32:26,000 läpi 2 30.. 475 00:32:26,000 --> 00:32:29,000 Se ei ollut työtä sain. 476 00:32:29,000 --> 00:32:32,000 Joka tapauksessa, te voi mennä eteenpäin ja tehdä matematiikka täällä, 477 00:32:32,000 --> 00:32:35,000 mutta binary se ei oikeastaan ​​mitään järkeä, 478 00:32:35,000 --> 00:32:38,000 eikä se myöskään järkeä kanssa desimaali tai heksadesimaali joko 479 00:32:38,000 --> 00:32:43,000 tehdä matematiikka missä olet nollia. 480 00:32:43,000 --> 00:32:49,000 Näet minulla on 0 tänne, 0 tässä 0 tänne, 0 tänne, 0 tässä 0 täällä. 481 00:32:49,000 --> 00:32:52,000 Miksi ehkä se ole järkevää tehdä todellinen matematiikka 482 00:32:52,000 --> 00:32:56,000 laskea sopiva teho 2 tämän kannan? 483 00:32:56,000 --> 00:32:59,000 Aivan kuten Charlotte sanoi, se on 0. 484 00:32:59,000 --> 00:33:05,000 Voisi yhtä hyvin säästää aikaa, jos lasketaan toimivalta 2 ei ole sinun vahva puku. 485 00:33:05,000 --> 00:33:10,000 Tässä tapauksessa meidän tarvitsee vain laskea sen 2, 0, joka on-? 486 00:33:10,000 --> 00:33:12,000 [Student] 1. 487 00:33:12,000 --> 00:33:14,000 [Nate H.] 1, 2, 3, joka on-? 488 00:33:14,000 --> 00:33:16,000 [Student] 8. >> [Nate H.] 8. 489 00:33:16,000 --> 00:33:18,000 2 4? 490 00:33:18,000 --> 00:33:21,000 [Student] 2. Olen pahoillani, 1. 491 00:33:21,000 --> 00:33:26,000 [Nate H.] 2 4 16, tarkalleen. 492 00:33:26,000 --> 00:33:28,000 2 5, Kevin? >> 32. 493 00:33:28,000 --> 00:33:32,000 [Nate H.] 32, 2 8? 494 00:33:32,000 --> 00:33:38,000 [Student] 32 x 8, 256. 495 00:33:38,000 --> 00:33:41,000 [Nate H.] Perfect. 496 00:33:41,000 --> 00:33:43,000 Ja 2 10? 497 00:33:43,000 --> 00:33:45,000 [Student] 1024. 498 00:33:45,000 --> 00:33:49,000 [Nate H.] Joo, 1024. 499 00:33:49,000 --> 00:33:57,000 >> Kun meillä näitä numeroita voi tiivistää ne kaikki ylös. 500 00:33:57,000 --> 00:34:01,000 Ja tämä on, jos se on todella tärkeää tehdä pari asiaa. 501 00:34:01,000 --> 00:34:07,000 Yksi on mennä hitaasti ja tarkista työsi. 502 00:34:07,000 --> 00:34:10,000 Voit kertoa, että siellä on 1 lopussa tämän määrän, 503 00:34:10,000 --> 00:34:15,000 joten minun pitäisi ehdottomasti saada pariton minun tulos, 504 00:34:15,000 --> 00:34:18,000 koska kaikki muut niitä aiotaan vielä numerot 505 00:34:18,000 --> 00:34:21,000 koska se on binäärinen numero. 506 00:34:21,000 --> 00:34:24,000 Toinen asia tehdä, on, jos saat tämän pisteen testi 507 00:34:24,000 --> 00:34:27,000 ja olet kirjoittanut sen pois näin pitkälle 508 00:34:27,000 --> 00:34:30,000 ja olet loppumassa aika 509 00:34:30,000 --> 00:34:33,000 tarkastellaan pisteitä, että tämä ongelma kannattaa. 510 00:34:33,000 --> 00:34:40,000 Tämä ongelma, kuten voitte nähdä, jos heitän takaisin minun laptop todella nopeasti, 511 00:34:40,000 --> 00:34:44,000 Tämä ongelma on 2 pistettä, joten tämä ei ole sellainen lisäys 512 00:34:44,000 --> 00:34:47,000 sinun pitäisi mennä läpi, jos olet todella kiire. 513 00:34:47,000 --> 00:34:52,000 Mutta me siirtyä takaisin iPad ja käymme läpi todella nopeasti. 514 00:34:52,000 --> 00:34:54,000 >> Tykkään tehdä pieniä määriä ensimmäinen 515 00:34:54,000 --> 00:34:56,000 koska mielestäni helpompaa. 516 00:34:56,000 --> 00:35:00,000 Pidän 32 ja 8, koska he menevät yhdessä melko helposti, ja saamme 50. 517 00:35:00,000 --> 00:35:03,000 16 ja 1 saa 17. 518 00:35:03,000 --> 00:35:05,000 Siellä saamme 57, 519 00:35:05,000 --> 00:35:14,000 ja sitten voimme tehdä loput tästä, jotta voimme tehdä 57, 156. 520 00:35:14,000 --> 00:35:16,000 Tule. 521 00:35:16,000 --> 00:35:19,000 Mies, hyvin, katsotaanpa. 522 00:35:19,000 --> 00:35:27,000 Meillä oli 57, 256 ja 1024. 523 00:35:27,000 --> 00:35:31,000 Tässä vaiheessa olisin mieluummin vain mennä läpi. 524 00:35:31,000 --> 00:35:35,000 Minulla ei ole hajuakaan. Olen selvästikin täytyy lukea tästä. 525 00:35:35,000 --> 00:35:40,000 7, 6, ja 4, saat 17. 526 00:35:40,000 --> 00:35:42,000 1, 5, 5, 2, 13. 527 00:35:42,000 --> 00:35:45,000 Sitten saamme 3, ja sitten saamme 1. 528 00:35:45,000 --> 00:35:52,000 1337. 529 00:35:52,000 --> 00:35:55,000 Pääsiäismuna, kukaan? 530 00:35:55,000 --> 00:35:59,000 Joku tunnistaa tämän numeron? 531 00:35:59,000 --> 00:36:02,000 Chris tunnistaa numeron. Mitä se tarkoittaa, Chris? 532 00:36:02,000 --> 00:36:04,000 [Chris] Leet. 533 00:36:04,000 --> 00:36:11,000 Leet, joten jos tarkastellaan tätä, se näyttää Leet. 534 00:36:11,000 --> 00:36:15,000 Hacker kamaa. Varo tällaista kamaa puolivälissä tai tietokilpailu, melko. 535 00:36:15,000 --> 00:36:19,000 Jos huomaat, että tuollaista ja mietit "Huh" 536 00:36:19,000 --> 00:36:22,000 että saattaisi merkitä jotain. 537 00:36:22,000 --> 00:36:24,000 En tiedä. David tykkää laitat sen sisään 538 00:36:24,000 --> 00:36:26,000 Se on hyvä tapa järki tarkistaa. 539 00:36:26,000 --> 00:36:30,000 Kuten Okei, ymmärrän, mitä on tekeillä. 540 00:36:30,000 --> 00:36:34,000 >> Tuo Viikko 0/Week 1 kamaa. 541 00:36:34,000 --> 00:36:39,000 Jos me palata meidän kannettavan nyt, 542 00:36:39,000 --> 00:36:46,000 loitontaa, ja pari muuta asiaa. 543 00:36:46,000 --> 00:36:50,000 On ASCII, jonka olemme tehneet paljon ongelmaa sarjaa. 544 00:36:50,000 --> 00:36:55,000 Tämä pääomanliikkeinä A. Mikä on se todella? 545 00:36:55,000 --> 00:36:57,000 Tietäen se desimaalin kokonaisluku. 546 00:36:57,000 --> 00:37:00,000 65 on mitä se on kartoitettu vuonna ASCII taulukon, 547 00:37:00,000 --> 00:37:03,000 ja se siis miten tietokone kirjoittaa sitä, 548 00:37:03,000 --> 00:37:06,000 ja näin olemme päässeet pälkähästä todella kirjallisesti 549 00:37:06,000 --> 00:37:09,000 merkki pääoma ja merkin pieniksi 550 00:37:09,000 --> 00:37:14,000 Joissakin näistä ratkaisuista ja ongelma asetetaan, että olet tekemässä. 551 00:37:14,000 --> 00:37:16,000 Pari muuta asiaa. 552 00:37:16,000 --> 00:37:25,000 Meillä lausuntoja, boolean ilmaisuja, olosuhteet, silmukoita, muuttujia ja kierteet. 553 00:37:25,000 --> 00:37:29,000 >> Ne kaikki näyttävät järkeviltä suurimmaksi osaksi? 554 00:37:29,000 --> 00:37:35,000 Osa tästä terminologia on hieman funky ajoittain. 555 00:37:35,000 --> 00:37:46,000 Haluan ajatella lausuma pääosin jotain joka päättyy puolipisteellä. 556 00:37:46,000 --> 00:37:51,000 Lausunnot kuten x = 7, jossa muuttuja, 557 00:37:51,000 --> 00:37:54,000 oletettavasti kutsutaan x = 7. 558 00:37:54,000 --> 00:38:01,000 Oletettavasti x on tyyppiä, joka voi tallentaa numero 7, 559 00:38:01,000 --> 00:38:05,000 joten se on int tai mahdollisesti float tai lyhyt tai char, 560 00:38:05,000 --> 00:38:07,000 jotain. 561 00:38:07,000 --> 00:38:12,000 Boolen lauseke käyttää näitä kaksinkertainen vastaa 562 00:38:12,000 --> 00:38:17,000 ja bang vastaa tai ei vastaa, vähemmän kuin, suurempi kuin, 563 00:38:17,000 --> 00:38:22,000 pienempi tai yhtä suuri, kaikki tuollaista. 564 00:38:22,000 --> 00:38:28,000 Ehdot sitten ovat, jos muu lausuntoja. 565 00:38:28,000 --> 00:38:32,000 Muistelin, että et voi olla muuta ilman vastaavaa jos. 566 00:38:32,000 --> 00:38:37,000 Samoin voit olla if ilman vastaavaa jos. 567 00:38:37,000 --> 00:38:40,000 Silmukat, muistuttaa 3 erilaista kaarta olemme mäiske sinuun 568 00:38:40,000 --> 00:38:43,000 Viimeisen parin osien ja ongelma sarjaa. 569 00:38:43,000 --> 00:38:46,000 Käyttämällä tehdä kun kun olet saada käyttäjä syöttää, 570 00:38:46,000 --> 00:38:51,000 käyttäen samalla silmukoita kunnes tietty ehto on tosi, 571 00:38:51,000 --> 00:38:56,000 ja sitten käyttää niitä silmukoita, jos haluat 572 00:38:56,000 --> 00:39:01,000 tietää, mikä iterointia silmukan olet tällä hetkellä on se, miten ajattelen sitä. 573 00:39:01,000 --> 00:39:07,000 Tai jos teet jokaiselle merkin merkkijono haluan tehdä jotain, 574 00:39:07,000 --> 00:39:15,000 jokaisessa elementissä array haluan tehdä jotain, että elementti. 575 00:39:15,000 --> 00:39:18,000 >> Langat ja tapahtumia. 576 00:39:18,000 --> 00:39:21,000 Näitä emme ole katettu niin yksiselitteisesti C, 577 00:39:21,000 --> 00:39:23,000 mutta muista että tämä tyhjästä. 578 00:39:23,000 --> 00:39:26,000 Tämä on käsite, jolla eri skriptejä. 579 00:39:26,000 --> 00:39:32,000 Tämä on myös tämä käsite lähettää tapahtuman. 580 00:39:32,000 --> 00:39:37,000 Jotkut ihmiset eivät käytä lähetykset hankkeiden aluksi, 581 00:39:37,000 --> 00:39:40,000 joka on täysin jäähtynyt, 582 00:39:40,000 --> 00:39:46,000 mutta nämä ovat 2 eri tapoja käsitellä tätä suuremmasta kysymyksestä kutsutaan samanaikaisuuden, 583 00:39:46,000 --> 00:39:49,000 mikä on miten saat ohjelmia suorittaa 584 00:39:49,000 --> 00:39:54,000 tai näennäisesti suorittaa samanaikaisesti? 585 00:39:54,000 --> 00:39:59,000 Erilaiset tehtävät käynnissä, kun muut tehtävät ovat myös käynnissä. 586 00:39:59,000 --> 00:40:01,000 Näin käyttöjärjestelmä tuntuu toimivan. 587 00:40:01,000 --> 00:40:04,000 Tämän vuoksi, vaikka esimerkiksi 588 00:40:04,000 --> 00:40:10,000 Minulla selaimen käynnissä, voin myös käynnistää Spotify ja soittaa kappaleen. 589 00:40:10,000 --> 00:40:14,000 Se on enemmän käsitteellinen asia ymmärtää. 590 00:40:14,000 --> 00:40:17,000 Haluaisin vilkaista kierteet lyhyellä 591 00:40:17,000 --> 00:40:21,000 Jos haluat tietää enemmän siitä. 592 00:40:21,000 --> 00:40:26,000 >> Katsotaanpa, uskon että olisi voinut 593 00:40:26,000 --> 00:40:31,000 Ongelmana tässä on yksi näistä. 594 00:40:31,000 --> 00:40:35,000 Jälleen, mielestäni kierteet ja tapahtumat eivät ole jotain, että pystymme kattamaan C 595 00:40:35,000 --> 00:40:41,000 vain koska se on huomattavasti vaikeampaa kuin Scratch. 596 00:40:41,000 --> 00:40:44,000 Sinun ei pitäisi pelätä sitä siellä, mutta varmasti ymmärtävät käsitteet, 597 00:40:44,000 --> 00:40:47,000 ymmärrä, mitä on tekeillä. 598 00:40:47,000 --> 00:40:52,000 Ennen kuin jatkamme, kysyttävää Viikko 0 materiaalia? 599 00:40:52,000 --> 00:40:55,000 Kaikki tuntuu aika hyvältä? 600 00:40:55,000 --> 00:41:03,000 Ymmärtäminen muuttujat ja mikä muuttuja on? 601 00:41:03,000 --> 00:41:08,000 >> Liikettä. Viikko 1. 602 00:41:08,000 --> 00:41:12,000 Pari asiaa täällä, että ei erityisesti kuulu 603 00:41:12,000 --> 00:41:21,000 vuonna Quiz tarkastelun välttämättä ja ovat käsitteellisiä asioita ajatella. 604 00:41:21,000 --> 00:41:30,000 Ensimmäinen on tämä käsite mitä lähdekoodia, kääntäjät ja kohdekoodilla ovat. 605 00:41:30,000 --> 00:41:32,000 Anybody? Basil. 606 00:41:32,000 --> 00:41:37,000 Onko kohdekoodi-Siis lähdekoodi on mitä laitat kalahtaa, 607 00:41:37,000 --> 00:41:42,000 ja kohdekoodit mitä kalahtaa tuo niin, että tietokone voi lukea ohjelman. 608 00:41:42,000 --> 00:41:44,000 Aivan. 609 00:41:44,000 --> 00:41:47,000 Lähdekoodi on C-koodia, että olet todella kirjoittaa ylös. 610 00:41:47,000 --> 00:41:50,000 Kohdekoodit mitä saat ulos kalahtaa. 611 00:41:50,000 --> 00:41:54,000 Se on 0 ja 1s että binaarimuodossa. 612 00:41:54,000 --> 00:41:59,000 Mitä sitten tapahtuu, on kun on nippu objektin tiedostoja, 613 00:41:59,000 --> 00:42:04,000 sanovat olet kootaan hankkeen tai ohjelman, joka käyttää useita lähdekooditiedostoihin, 614 00:42:04,000 --> 00:42:09,000 jotka perinteisesti annetaan. C tiedostotunniste. 615 00:42:09,000 --> 00:42:13,000 Siksi olemme caesar.c, vigenère.c. 616 00:42:13,000 --> 00:42:18,000 Jos kirjoitat Java-ohjelmia annat heille laajennus. Java. 617 00:42:18,000 --> 00:42:24,000 Python ohjelmissa on laajennus. Py usein. 618 00:42:24,000 --> 00:42:26,000 >> Kun sinulla on useita. C tiedostoja, käännät niitä. 619 00:42:26,000 --> 00:42:29,000 Clang sylkee kaiken tämän binary roskaa. 620 00:42:29,000 --> 00:42:33,000 Sitten koska haluat vain 1-ohjelman 621 00:42:33,000 --> 00:42:37,000 sinulla linkkeri linkin kaikki nämä objektin tiedostoja yhdessä 622 00:42:37,000 --> 00:42:40,000 jaetaan 1 suoritettavaa tiedostoa. 623 00:42:40,000 --> 00:42:45,000 Tämä on myös mitä tapahtuu, kun käytät CS50 kirjastoa, esimerkiksi. 624 00:42:45,000 --> 00:42:50,000 CS50 kirjasto on sekä että. H header tiedosto 625 00:42:50,000 --> 00:42:53,000 että olet lukenut, että # includecs50.h. 626 00:42:53,000 --> 00:42:58,000 Ja sitten se on myös erityinen binary kirjaston tiedosto 627 00:42:58,000 --> 00:43:02,000 , joka on laadittu, joka on 0 ja 1s, 628 00:43:02,000 --> 00:43:08,000 ja että-l lippu, joten jos menemme takaisin meidän tilat ja odotamme todella nopeasti 629 00:43:08,000 --> 00:43:11,000 mitä täällä tapahtuu, kun katsomme meidän clang komento, 630 00:43:11,000 --> 00:43:15,000 Mitä meillä on tämä meidän lähdekooditiedostoa täällä. 631 00:43:15,000 --> 00:43:18,000 Nämä ovat joukko kääntäjän lippuja. 632 00:43:18,000 --> 00:43:22,000 Ja sitten aivan lopussa, nämä-l liput linkki 633 00:43:22,000 --> 00:43:30,000 todellinen binääritiedostojen nämä 2 kirjastojen, CS50 kirjasto ja matematiikka kirjasto. 634 00:43:30,000 --> 00:43:35,000 >> Ymmärtäminen kunkin tiedostojen tarkoitus 635 00:43:35,000 --> 00:43:38,000 vuonna tietojenkeruuprosessiin on jotain sinun kannattaa pystyä 636 00:43:38,000 --> 00:43:43,000 antaa ainakin korkean tason katsaus. 637 00:43:43,000 --> 00:43:46,000 Lähdekoodi tulee sisään Objektin koodi tulee ulos. 638 00:43:46,000 --> 00:43:53,000 Kohdekoodi tiedostot linkitetään yhteen, ja saat kauniin, suoritettavan tiedoston. 639 00:43:53,000 --> 00:43:55,000 Cool. 640 00:43:55,000 --> 00:43:58,000 Tämä on myös silloin voit saada virheet useita pisteitä 641 00:43:58,000 --> 00:44:00,000 vuonna laadintaprosessissa. 642 00:44:00,000 --> 00:44:04,000 Tässä on, jos esimerkiksi otat tämän yhdistää lippu, 643 00:44:04,000 --> 00:44:10,000 CS50 lippua, ja jätät sen Spaces tai kun käytät koodia, 644 00:44:10,000 --> 00:44:13,000 tämä on silloin saat virhe yhdistää vaiheessa, 645 00:44:13,000 --> 00:44:18,000 ja linkkeri sanovat: "Hei, sinä kutsutaan funktion GetString 646 00:44:18,000 --> 00:44:20,000 se on CS50 kirjastossa. " 647 00:44:20,000 --> 00:44:25,000 "Sanoit se oli CS50 kirjastossa, ja en löydä koodia." 648 00:44:25,000 --> 00:44:28,000 Siellä sinun täytyy linkittää se, ja se on erilliset 649 00:44:28,000 --> 00:44:33,000 alkaen kääntäjä virheen, koska kääntäjä etsii syntaksin ja tuollaista kamaa. 650 00:44:33,000 --> 00:44:38,000 On hyvä tietää, mitä tapahtuu, kun. 651 00:44:38,000 --> 00:44:42,000 >> Muita asioita tietää. 652 00:44:42,000 --> 00:44:49,000 Sanoisin ehdottomasti haluat vilkaista lyhyttä tyypittely tehdään Jordan 653 00:44:49,000 --> 00:44:55,000 ymmärtää, mitä ints ovat konepellin alle, 654 00:44:55,000 --> 00:44:58,000 Mitä merkkiä ovat konepellin alla. 655 00:44:58,000 --> 00:45:02,000 Kun puhumme ASCII ja me todella katsoa ASCII taulukon, 656 00:45:02,000 --> 00:45:07,000 mitä se tekee antaa meille konepellin alla näyttää 657 00:45:07,000 --> 00:45:13,000 miten tietokone todellisuudessa edustaa pääomaa ja numero 7 658 00:45:13,000 --> 00:45:17,000 ja pilkku ja kysymysmerkki. 659 00:45:17,000 --> 00:45:20,000 Tietokone on myös erityisiä tapoja edustaa 660 00:45:20,000 --> 00:45:23,000 numero 7 kokonaislukuna. 661 00:45:23,000 --> 00:45:27,000 Se on erityinen tapa edustaa numero 7: n liukuluku, 662 00:45:27,000 --> 00:45:29,000 ja ne ovat hyvin erilaisia. 663 00:45:29,000 --> 00:45:32,000 Tyypittely on miten kertoa tietokone "Hei, haluan sinun muuntaa 664 00:45:32,000 --> 00:45:37,000 yhdestä edustus toiseen edustus. " 665 00:45:37,000 --> 00:45:40,000 Miksi emme katsomaan sitä. 666 00:45:40,000 --> 00:45:44,000 >> Haluaisin myös katsomaan lyhyttä kirjastojen ja lyhyt kerääjiä. 667 00:45:44,000 --> 00:45:47,000 Ne puhuvat prosessi laatimista, 668 00:45:47,000 --> 00:45:53,000 Mikä kirjasto on ja mennä yli joitakin näistä kysymyksistä että saatat kysytään. 669 00:45:53,000 --> 00:45:55,000 Kysymyksiä Viikko 1 materiaalista? 670 00:45:55,000 --> 00:46:03,000 Onko viesteihin tässä että tuntua pelottava haluat kattaa? 671 00:46:03,000 --> 00:46:07,000 Yritän puhaltaa läpi useimmat näistä aiemmin aiheita, jotta voimme saada 672 00:46:07,000 --> 00:46:13,000 osoittimet ja tehdä vähän rekursion. 673 00:46:13,000 --> 00:46:15,000 Ajatuksia? 674 00:46:15,000 --> 00:46:19,000 Mitään kattaa? 675 00:46:19,000 --> 00:46:21,000 Aika suklaata ehkä? 676 00:46:21,000 --> 00:46:23,000 Te työskentelevät läpi. 677 00:46:23,000 --> 00:46:26,000 Aion pitää juoden minun kahvia. 678 00:46:26,000 --> 00:46:31,000 Viikko 2. 679 00:46:31,000 --> 00:46:34,000 Hyvä puhelu, hyvä soittaa. 680 00:46:34,000 --> 00:46:38,000 Viikolla 2 puhuimme hieman lisää toimintoja. 681 00:46:38,000 --> 00:46:43,000 >> Parin ensimmäisen ongelman sarjaa emme oikeastaan ​​kirjoittaa mitään tehtäviä kaikilla 682 00:46:43,000 --> 00:46:45,000 muu kuin mikä funktio? 683 00:46:45,000 --> 00:46:47,000 [Student] Main. >> Main, tarkalleen. 684 00:46:47,000 --> 00:46:51,000 Ja niin olemme nähneet erilaisia ​​pukuja, jotka pääasiassa jalassaan. 685 00:46:51,000 --> 00:46:54,000 On yksi jossa se ei ota argumentteja, 686 00:46:54,000 --> 00:46:58,000 ja me vain sanoa mitätön välillä suluissa, 687 00:46:58,000 --> 00:47:01,000 ja sitten on toinen, jos emme halua ottaa komentoriviargumentteja, 688 00:47:01,000 --> 00:47:08,000 ja kuten näimme, että siellä olet int argc ja string argv array 689 00:47:08,000 --> 00:47:13,000 tai nyt että olemme tosiasiallisesti altistuneet merkkijono char *, että se on 690 00:47:13,000 --> 00:47:20,000 aiomme aloittaa kirjallisesti sitä char * argv ja sitten suluissa. 691 00:47:20,000 --> 00:47:22,000 Ongelma Set 3, te näki joukko toimintoja, 692 00:47:22,000 --> 00:47:27,000 ja sinä toteutettu joukko toimintoja, piirtää, etsiä, sekoita. 693 00:47:27,000 --> 00:47:31,000 Prototyypit olivat kaikki kirjoitettu siellä sinua varten. 694 00:47:31,000 --> 00:47:33,000 >> Halusin puhua täällä toiminnoista todella nopeasti 695 00:47:33,000 --> 00:47:38,000 on, että on 3 osaa heille aina kun kirjoitat funktion. 696 00:47:38,000 --> 00:47:43,000 Sinun on määritettävä palautuva toiminto. 697 00:47:43,000 --> 00:47:46,000 Sinun on määritettävä nimi toiminto ja sitten sinun täytyy määrittää 698 00:47:46,000 --> 00:47:51,000 parametrilistaus tai parametrilista. 699 00:47:51,000 --> 00:47:57,000 Esimerkiksi, jos olisin kirjoittaa toiminto tiivistää joukko kokonaislukujen 700 00:47:57,000 --> 00:48:03,000 ja palaa sitten minulle summan mikä olisi minun palautuva 701 00:48:03,000 --> 00:48:06,000 jos halusin Yhteenvetona kokonaislukuja ja palata sitten summa? 702 00:48:06,000 --> 00:48:12,000 Sitten toiminnon nimi. 703 00:48:12,000 --> 00:48:27,000 Jos menen eteenpäin ja kirjoittaa vihreällä, tämä osa on palautuva. 704 00:48:27,000 --> 00:48:34,000 Tämä osa on nimi. 705 00:48:34,000 --> 00:48:40,000 Ja sitten suluissa 706 00:48:40,000 --> 00:48:46,000 on, jos annan argumentteja, 707 00:48:46,000 --> 00:48:56,000 usein lyhennetty args, joskus kutsutaan params parametrien. 708 00:48:56,000 --> 00:49:00,000 Ja jos sinulla on yksi, juuri määritä yksi. 709 00:49:00,000 --> 00:49:06,000 Jos sinulla on useita erotat jokainen pilkulla. 710 00:49:06,000 --> 00:49:13,000 Ja jokaista argumenttia annat sen 2 asioita, jotka ovat, Kevin? 711 00:49:13,000 --> 00:49:18,000 [Kevin] Sinun täytyy antaa tyyppi ja sitten nimi. 712 00:49:18,000 --> 00:49:21,000 Ja sitten nimi, ja nimi on nimi, jonka aiot käyttää 713 00:49:21,000 --> 00:49:25,000 viitata tähän väitteeseen sisällä summa toiminto, 714 00:49:25,000 --> 00:49:27,000 sisällä toimintoa, että olet kirjoittamassa. 715 00:49:27,000 --> 00:49:32,000 >> Sinun ei tarvitse-esimerkiksi, jos aion yhteenvetona, 716 00:49:32,000 --> 00:49:41,000 sanoa, joukko kokonaislukuja-Me do int array, 717 00:49:41,000 --> 00:49:46,000 ja minä annan itselleni aaltosulkeita siellä- 718 00:49:46,000 --> 00:49:51,000 sitten kun kuljen array SUMMA 719 00:49:51,000 --> 00:49:55,000 Kuljen sen ensimmäisessä asennossa parametrilistaus. 720 00:49:55,000 --> 00:49:59,000 Mutta array että olen kulkea ei tarvitse olla nimeä arr. 721 00:49:59,000 --> 00:50:07,000 Arr tulee olemaan miten viitata tähän väitteeseen kehossa toiminnon. 722 00:50:07,000 --> 00:50:10,000 Toinen asia, joka meidän on otettava huomioon, 723 00:50:10,000 --> 00:50:14,000 ja tämä on hieman erilainen toiminnoista, mutta minusta se on tärkeä asia, 724 00:50:14,000 --> 00:50:20,000 on, että C kun kirjoitan toimivat näin 725 00:50:20,000 --> 00:50:29,000 Miten tiedän kuinka monta elementit ovat tässä array? 726 00:50:29,000 --> 00:50:31,000 Tämä on jokseenkin temppu kysymys. 727 00:50:31,000 --> 00:50:35,000 Puhuimme tästä hieman viime viikon jaksossa. 728 00:50:35,000 --> 00:50:40,000 Mistä tiedän lukumäärän Sisällä array C? 729 00:50:40,000 --> 00:50:44,000 Onko niin? 730 00:50:44,000 --> 00:50:49,000 >> On käynyt ilmi, että ei ole mitään keinoa tietää. 731 00:50:49,000 --> 00:50:52,000 Sinun on läpäistävä se erikseen. 732 00:50:52,000 --> 00:50:55,000 On temppu, että voit tehdä 733 00:50:55,000 --> 00:51:00,000 jos olet sama toiminto, jossa joukko on julistettu, 734 00:51:00,000 --> 00:51:04,000 ja olet työskennellyt pino array. 735 00:51:04,000 --> 00:51:06,000 Mutta se toimii vain jos olet samaa toimintoa. 736 00:51:06,000 --> 00:51:09,000 Kun ohitat array toisen toiminnon tai jos olet ilmoittanut array 737 00:51:09,000 --> 00:51:12,000 ja laitat että array kasaan, olet käyttänyt malloc 738 00:51:12,000 --> 00:51:15,000  ja sellaista tavaraa, silloin kaikki vedot ovat pois päältä. 739 00:51:15,000 --> 00:51:18,000 Sitten sinun todella täytyy kulkea ympäri 740 00:51:18,000 --> 00:51:21,000 erityinen argumentti tai toinen parametri 741 00:51:21,000 --> 00:51:23,000 kertoo kuinka suuri joukko on. 742 00:51:23,000 --> 00:51:28,000 Tässä tapauksessa en haluaisi käyttää pilkkua-Olen pahoillani, se menee pois ruudulta täällä- 743 00:51:28,000 --> 00:51:32,000 ja olin siirtää toiseen argumentti 744 00:51:32,000 --> 00:51:40,000  ja kutsua sitä int len ​​varten pituuden. 745 00:51:40,000 --> 00:51:44,000 >> Yksi asia, joka voisi keksiä tietokilpailu 746 00:51:44,000 --> 00:51:49,000 pyytää sinua kirjoittamaan tai toteuttaa tietty toiminto nimeltään jotain. 747 00:51:49,000 --> 00:51:54,000 Jos emme anna sinulle prototyyppi, joten tämä koko juttu täällä, 748 00:51:54,000 --> 00:51:58,000 Tämä koko sotku kutsutaan funktion ilmoituksen tai funktion prototyyppi, 749 00:51:58,000 --> 00:52:01,000 Tämä on yksi ensimmäisistä asioista, jotka sinun kannattaa naulata jos sitä ei ole annettu 750 00:52:01,000 --> 00:52:03,000 sinulle heti päälle tietovisa. 751 00:52:03,000 --> 00:52:06,000 Muut Temppu olen oppinut, että 752 00:52:06,000 --> 00:52:11,000 sanoa teemme teille prototyyppi toiminnon ja sanomme, "Hei, sinulla kirjoittaa sitä." 753 00:52:11,000 --> 00:52:16,000 Sisällä aaltosulkeita että sinulla on tietokilpailu 754 00:52:16,000 --> 00:52:20,000 Jos huomaat, että on palautuva ja huomaat että palautuva 755 00:52:20,000 --> 00:52:25,000 on jotain muuta kuin mitätön, mikä tarkoittaa sitä, että funktio ei palauta mitään, 756 00:52:25,000 --> 00:52:28,000 Sitten yksi asia et varmasti halua tehdä, on kirjoittaa 757 00:52:28,000 --> 00:52:33,000 jonkinlainen tuotto lausuman aivan lopussa funktion. 758 00:52:33,000 --> 00:52:40,000 Return, ja tässä tapauksessa, laitamme tyhjä, koska haluamme täyttää tyhjä. 759 00:52:40,000 --> 00:52:44,000 Mutta tämä saa sinut ajattelemaan oikealla tavalla, miten aion lähestyä tätä ongelmaa? 760 00:52:44,000 --> 00:52:49,000 Ja se muistuttaa sinua olet menossa on palattava arvo 761 00:52:49,000 --> 00:52:51,000 soittajalle funktion. 762 00:52:51,000 --> 00:52:54,000 >> Joo. >> [Student] Ei tyyliä sovelletaan, kun olemme kirjallisesti koodi tietovisa? 763 00:52:54,000 --> 00:52:58,000 Kuten sisennys ja että millaista tavaraa? >> [Student] Joo. 764 00:52:58,000 --> 00:53:00,000 Ei, ei niin paljon. 765 00:53:00,000 --> 00:53:09,000 Mielestäni paljon-tämä on jotain me selkeytettävä tietovisa päivänä, 766 00:53:09,000 --> 00:53:15,000 mutta tyypillisesti murehtia # sisältyvät ja sellaista tavaraa, se on tavallaan ulkona. 767 00:53:15,000 --> 00:53:17,000 [Opiskelija] Haluatko kommentoida käsin koodia? 768 00:53:17,000 --> 00:53:19,000 Haluatko kommentoida käsin koodia? 769 00:53:19,000 --> 00:53:24,000 Kommentointi on aina hyvä, jos olet huolissasi osittaisen luotto 770 00:53:24,000 --> 00:53:29,000 tai haluat viestiä tahtosi luokkalainen. 771 00:53:29,000 --> 00:53:33,000 Mutta minä taas selventää koskeva tietovisa itse ja tietokilpailu päivänä, 772 00:53:33,000 --> 00:53:39,000 mutta en usko, että sinun tarvitse kirjoittaa kommentteja, no. 773 00:53:39,000 --> 00:53:42,000 Tyypillisesti ole, mutta se on ehdottomasti sellainen asia, jossa 774 00:53:42,000 --> 00:53:45,000 voit kommunikoida sinun tahtosi, kuten "Hei, tämä on minne olen menossa sen kanssa." 775 00:53:45,000 --> 00:53:49,000 Ja joskus se voi auttaa osittaisen luotto. 776 00:53:49,000 --> 00:53:51,000 Cool. 777 00:53:51,000 --> 00:53:53,000 >> Basil. 778 00:53:53,000 --> 00:53:56,000 [Basil] Mitä eroa julistaa vaikkapa int lang 779 00:53:56,000 --> 00:54:03,000 vuonna väitteitä tai parametrit vs. julistetaan muuttujan funktio? 780 00:54:03,000 --> 00:54:05,000 Vau, kahvi meni alas henkitorveen. 781 00:54:05,000 --> 00:54:07,000 [Basil] Kuten mitä asioita haluamme laittaa perusteluja. 782 00:54:07,000 --> 00:54:09,000 Joo, se on hyvä kysymys. 783 00:54:09,000 --> 00:54:11,000 Miten valita, mitä asioita haluat laittaa väitteitä 784 00:54:11,000 --> 00:54:17,000 vs. mitä asioita sinun pitäisi tehdä sisällä toimii? 785 00:54:17,000 --> 00:54:24,000 Tässä tapauksessa olemme mukana nämä molemmat argumentteina 786 00:54:24,000 --> 00:54:29,000 koska he jotain, kuka aikoo käyttää summan toimintoa 787 00:54:29,000 --> 00:54:32,000 on täsmennettävä niitä asioita. 788 00:54:32,000 --> 00:54:35,000 >> Summa toiminto, kuten puhuimme, ei voi mitenkään tietää 789 00:54:35,000 --> 00:54:40,000 kuinka suuri joukko on se saa sen soittajan tai kuka käyttää SUMMA. 790 00:54:40,000 --> 00:54:44,000 Siinä ei ole mitään keinoa tietää, kuinka iso se joukko on. 791 00:54:44,000 --> 00:54:48,000 Syy ohitamme tämän pituuden täällä kuin väitteen 792 00:54:48,000 --> 00:54:51,000 johtuu siitä, että on jotain, että olemme pohjimmiltaan kertoo soittajan toiminto, 793 00:54:51,000 --> 00:54:55,000 kuka aikoo käyttää summan toimintoa, "Hei, ei vain sinulla on antaa meille array 794 00:54:55,000 --> 00:54:59,000 ja ints, sinun on myös kertoa meille kuinka iso joukko, että olet antanut meille. " 795 00:54:59,000 --> 00:55:03,000 [Basil] Ne ovat kummatkin komentoriviargumentteja? 796 00:55:03,000 --> 00:55:06,000 Ei, nämä ovat todellisia perusteluja, että voisitte siirtyä toiminnon. 797 00:55:06,000 --> 00:55:10,000 >> Anna minun tehdä uusi sivu täällä. 798 00:55:10,000 --> 00:55:13,000 [Basil] Kuten nimi kulkisi- 799 00:55:13,000 --> 00:55:24,000 [Nate H.] Jos minulla on int main (void) 800 00:55:24,000 --> 00:55:27,000 ja aion laittaa minun return 0 tänne alareunassa, 801 00:55:27,000 --> 00:55:31,000 ja sanoa haluan soittaa summa toimintoa. 802 00:55:31,000 --> 00:55:42,000 Haluan sanoa int x = sum (); 803 00:55:42,000 --> 00:55:46,000 Voit käyttää SUMMA-funktio minun täytyy kulkea molempien array että haluan tiivistää 804 00:55:46,000 --> 00:55:51,000 ja pituus array, joten tämä on silloin 805 00:55:51,000 --> 00:55:54,000 olettaen Minulla oli joukko Ints, 806 00:55:54,000 --> 00:56:12,000 say I oli int numbaz [] = 1, 2, 3, 807 00:56:12,000 --> 00:56:16,000 sellaista käyttöä, joka hakata jopa syntaksi oikeassa, 808 00:56:16,000 --> 00:56:21,000 mitä sitten tekisin on summa haluaisin kulkea 809 00:56:21,000 --> 00:56:27,000 sekä numbaz ja numero 3 810 00:56:27,000 --> 00:56:30,000 kertoa summa toiminto "Okei, tässä array haluan sinun summa." 811 00:56:30,000 --> 00:56:34,000 "Tässä on sen koosta." 812 00:56:34,000 --> 00:56:39,000 Onko siinä järkeä? Tarkoittaako tämä kysymykseesi? 813 00:56:39,000 --> 00:56:42,000 >> Monella tapaa se rinnakkainen mitä olemme tekemässä tärkeimpien 814 00:56:42,000 --> 00:56:44,000 kun meillä komentoriviargumentteja. 815 00:56:44,000 --> 00:56:47,000 Ohjelma kuten Caesar cipher, esimerkiksi, että tarvitaan 816 00:56:47,000 --> 00:56:53,000 komentoriviargumentteja ei voisi tehdä mitään. 817 00:56:53,000 --> 00:56:57,000 Se ei tiedä, miten salata, jos et kerro sitä mitä näppäintä käyttää 818 00:56:57,000 --> 00:57:03,000 tai jos et kerro sitä mitä merkkijono halusit salata. 819 00:57:03,000 --> 00:57:08,000 Kehotukset syötteen, tämä on meillä 2 eri mekanismien 820 00:57:08,000 --> 00:57:14,000 ottaa panos käyttäjältä, ottaa tietoa käyttäjältä. 821 00:57:14,000 --> 00:57:19,000 Saat Harjoitus 1 näimme tämän GetInt, GetString, GetFloat tavalla 822 00:57:19,000 --> 00:57:26,000 kehotus syötteen, ja sitä kutsutaan käyttäen vakiosyötteestä stream. 823 00:57:26,000 --> 00:57:28,000 Se on hieman erilainen. 824 00:57:28,000 --> 00:57:31,000 Se on jotain, voit tehdä kerralla eikä 825 00:57:31,000 --> 00:57:35,000 Kun vedota ohjelmaa, kun käynnistät ohjelman käynnissä. 826 00:57:35,000 --> 00:57:41,000 Komentoriviargumentteja kaikki määritellään kun käynnistät ohjelman käynnissä. 827 00:57:41,000 --> 00:57:47,000 Olemme sekoittamalla kaksi näistä. 828 00:57:47,000 --> 00:57:52,000 Kun käytämme argumentteja funktion, se on paljon kuin komentorivin argumentteja to main. 829 00:57:52,000 --> 00:57:56,000 Se kun vedota toiminnon sinun täytyy kertoa sille 830 00:57:56,000 --> 00:58:05,000 mitä se tarvitsee voidakseen suorittaa tehtävänsä. 831 00:58:05,000 --> 00:58:08,000 Toinen hyvä asia tarkastella ja annan sinun katsoa sitä omalla vapaa-ajallaan, 832 00:58:08,000 --> 00:58:11,000 ja se kattoi Quiz-oli tämän käsitteen soveltamisalan 833 00:58:11,000 --> 00:58:15,000 ja paikalliset muuttujat vs. globaaleja muuttujia. 834 00:58:15,000 --> 00:58:18,000 Onko kiinnittää huomiota tähän. 835 00:58:18,000 --> 00:58:23,000 >> Nyt olemme pääsemässä tähän muita juttuja, 836 00:58:23,000 --> 00:58:27,000 viikolla 3 aloimme puhua etsiminen ja lajittelu. 837 00:58:27,000 --> 00:58:32,000 Etsiminen ja lajittelu, ainakin CS50, 838 00:58:32,000 --> 00:58:39,000 on hyvin johdatus joitakin enemmän teoreettista osaa tietojenkäsittelytiede. 839 00:58:39,000 --> 00:58:42,000 Ongelma etsimistä, ongelma lajittelu 840 00:58:42,000 --> 00:58:46,000 ovat suuria, kanoninen ongelmia. 841 00:58:46,000 --> 00:58:52,000 Miten löytää tietty numero joukko miljardien kokonaislukujen? 842 00:58:52,000 --> 00:58:55,000 Miten löytää tietyn nimen sisällä puhelinluettelosta 843 00:58:55,000 --> 00:58:59,000 joka tallennetaan kannettavan tietokoneen? 844 00:58:59,000 --> 00:59:04,000 Ja niin me esitellä tämä käsite asymptoottinen ajoajat 845 00:59:04,000 --> 00:59:11,000 todella määrällisesti kuinka kauan, kuinka kovaa nämä ongelma on, 846 00:59:11,000 --> 00:59:14,000 kuinka kauan ne kestää ratkaisemiseksi. 847 00:59:14,000 --> 00:59:20,000 Vuonna uskon, 2011: n tietokilpailu siellä ongelma mielestäni ansaitsee 848 00:59:20,000 --> 00:59:27,000 kattavat hyvin nopeasti, mikä on tämä, ongelma 12. 849 00:59:27,000 --> 00:59:32,000 O no, se on Omega. 850 00:59:32,000 --> 00:59:41,000 >> Täällä me puhumme nopein mahdollinen ajoaika 851 00:59:41,000 --> 00:59:46,000 Tietyn algoritmin ja sitten hitain mahdollinen ajoaika. 852 00:59:46,000 --> 00:59:52,000 Tämä Omega ja O ovat oikeastaan ​​vain pikakuvakkeita. 853 00:59:52,000 --> 00:59:55,000 He Merkintöjen pikavalinnat sanomalla 854 00:59:55,000 --> 00:59:59,000 kuinka nopeasti mahdollisimman tapaus meidän algoritmi aikavälillä, 855 00:59:59,000 --> 01:00:06,000 ja miten hidasta Pahimmassa tapauksessa tulee meidän algoritmi ajaa? 856 01:00:06,000 --> 01:00:10,000 Tehdään pari näistä, ja nämä olivat myös katettu 857 01:00:10,000 --> 01:00:13,000 Lyhyellä on asymptoottinen notaatio, jota suosittelen lämpimästi. 858 01:00:13,000 --> 01:00:17,000 Jackson teki todella hyvää työtä. 859 01:00:17,000 --> 01:00:23,000 Binary search, puhumme binäärihakupuu olevan algoritmi, 860 01:00:23,000 --> 01:00:28,000 ja me yleensä puhua kannalta sen ison O. 861 01:00:28,000 --> 01:00:30,000 Mikä on iso O? 862 01:00:30,000 --> 01:00:34,000 Mikä on hitain mahdollinen ajoaika binäärihakupuu? 863 01:00:34,000 --> 01:00:36,000 [Student] N ²? 864 01:00:36,000 --> 01:00:41,000 Sulje kai samanlainen. 865 01:00:41,000 --> 01:00:43,000 Se on paljon nopeampi kuin. 866 01:00:43,000 --> 01:00:45,000 [Student] Binary? >> Joo, binäärihakupuu. 867 01:00:45,000 --> 01:00:47,000 [Student] On log n. 868 01:00:47,000 --> 01:00:49,000 Log n, joten mitä log n tarkoittaa? 869 01:00:49,000 --> 01:00:51,000 Se puolittaa se jokaisen iteraation. 870 01:00:51,000 --> 01:00:56,000 Aivan, joten hitain mahdollinen tapaus, 871 01:00:56,000 --> 01:01:00,000 sano jos sinulla on lajiteltu array 872 01:01:00,000 --> 01:01:08,000 miljoona kokonaislukuja ja numero etsit 873 01:01:08,000 --> 01:01:14,000 on joko ensimmäinen alkio tai viimeinen alkio. 874 01:01:14,000 --> 01:01:18,000 Muista, että binäärihakupuu algoritmi toimii katsomalla keskielementti, 875 01:01:18,000 --> 01:01:21,000 nähdä, jos se on ottelu, joka etsit. 876 01:01:21,000 --> 01:01:23,000 Jos se on, niin suuri, olet löytänyt sen. 877 01:01:23,000 --> 01:01:27,000 >> Parhaassa mahdollisessa tapauksessa, Kuinka nopeasti binäärihakupuu ajaa? 878 01:01:27,000 --> 01:01:29,000 [Opiskelijat] 1. 879 01:01:29,000 --> 01:01:32,000 1, se on vakio aika, iso O 1. Joo. 880 01:01:32,000 --> 01:01:36,000 [Opiskelija] Minulla on kysymys. Kun sanot kirjaudut n, sinä tarkoitat osalta pohja 2, eikö? 881 01:01:36,000 --> 01:01:40,000 Kyllä, niin se on toinen asia. 882 01:01:40,000 --> 01:01:44,000 Sanomme log n, ja luulen, kun olin lukiossa 883 01:01:44,000 --> 01:01:48,000 Olen aina olettanut, että log oli pohja 10. 884 01:01:48,000 --> 01:01:57,000 Joo, niin kyllä, kirjaudu pohja 2 on tyypillisesti mitä käytämme. 885 01:01:57,000 --> 01:02:02,000 Jälleen menee takaisin binäärihakupuu, jos etsit joko 886 01:02:02,000 --> 01:02:05,000 elementti aivan lopussa tai elementin alusta 887 01:02:05,000 --> 01:02:08,000 koska aloitat keskeltä ja sitten hävitä 888 01:02:08,000 --> 01:02:13,000 kumpi puoli ei täytä kriteerejä, jotka etsit, 889 01:02:13,000 --> 01:02:15,000 ja menet seuraavan puolen ja seuraavan puolen ja seuraavan puoli. 890 01:02:15,000 --> 01:02:19,000 Jos Etsin suurin osa miljoonan kokonaisluku array 891 01:02:19,000 --> 01:02:25,000 Aion puolittaa se korkeintaan log 1 miljoona kertaa 892 01:02:25,000 --> 01:02:28,000 ennen kuin sain vihdoin testata ja nähdä, että osa etsin 893 01:02:28,000 --> 01:02:33,000 on suurin tai suurin indeksi array, 894 01:02:33,000 --> 01:02:38,000 ja joka vie log n, log on 1 miljoonaa kertaa. 895 01:02:38,000 --> 01:02:40,000 >> Bubble sort. 896 01:02:40,000 --> 01:02:43,000 Oletteko te muistaa kupla lajitella algoritmi? 897 01:02:43,000 --> 01:02:47,000 Kevin, voitko antaa minulle nopea kertaus mitä tapahtui kupla lajitella algoritmi? 898 01:02:47,000 --> 01:02:50,000 [Kevin] Periaatteessa se menee läpi kaiken luettelossa. 899 01:02:50,000 --> 01:02:52,000 Siinä tarkastellaan kahta ensimmäistä. 900 01:02:52,000 --> 01:02:55,000 Jos ensimmäinen on suurempi kuin toinen se swap niitä. 901 01:02:55,000 --> 01:02:58,000 Sitten se vertaa toisen ja kolmannen, sama asia, swapit, 902 01:02:58,000 --> 01:03:00,000 Kolmas ja neljäs, kaikki alas. 903 01:03:00,000 --> 01:03:03,000 Isompi määrä seuraa loppuun asti. 904 01:03:03,000 --> 01:03:07,000 Ja kun kuitenkin monia silmukoita olet valmis. 905 01:03:07,000 --> 01:03:11,000 Aivan, joten mitä Kevin sanoi, että me katsella isompi numerot 906 01:03:11,000 --> 01:03:15,000 kupla loppuun asti jono. 907 01:03:15,000 --> 01:03:19,000 Esimerkiksi, älä viitsi kävely meidät läpi tämän esimerkin, jos tämä on meidän array? 908 01:03:19,000 --> 01:03:21,000 [Kevin] Sinun kestää 2 ja 3. 909 01:03:21,000 --> 01:03:23,000 3 on suurempi kuin 2, joten vaihtaa niitä. 910 01:03:23,000 --> 01:03:29,000 [Nate H.] Oikea, joten me vaihtaa nämä, ja niin saamme 2, 3, 6, 4, ja 9. 911 01:03:29,000 --> 01:03:31,000 [Kevin] Sitten voit vertailla 3 ja 6. 912 01:03:31,000 --> 01:03:33,000 3 on pienempi kuin 6, joten jätä ne, 913 01:03:33,000 --> 01:03:37,000 ja 6 ja 4, haluat vaihtaa niitä, koska 4 on pienempi kuin 6. 914 01:03:37,000 --> 01:03:42,000 [Nate H.] Oikea, niin saan 2, 3, 4, 6, 9. 915 01:03:42,000 --> 01:03:46,000 [Kevin] ja 9 on suurempi kuin 6, niin jätät sen. 916 01:03:46,000 --> 01:03:48,000 Ja haluat palata läpi uudelleen. 917 01:03:48,000 --> 01:03:50,000 >> [Nate H.] Olenko tehnyt tässä vaiheessa? >> [Kevin] No 918 01:03:50,000 --> 01:03:52,000 Ja miksi en ole tehnyt tässä vaiheessa? 919 01:03:52,000 --> 01:03:54,000 Koska se näyttää minun array lajitellaan. Etsin sitä. 920 01:03:54,000 --> 01:03:57,000 [Kevin] Mene sen läpi uudelleen ja varmista, että ei ole enää swapit 921 01:03:57,000 --> 01:04:00,000 ennen kuin voi täysin pysäyttää. 922 01:04:00,000 --> 01:04:04,000 Aivan, joten sinun pitää käydä läpi ja varmista, ettei swapit 923 01:04:04,000 --> 01:04:06,000 että voit tehdä tässä vaiheessa. 924 01:04:06,000 --> 01:04:08,000 Se oli oikeastaan ​​vain onnekas, kuten sanoit, että päädyimme 925 01:04:08,000 --> 01:04:12,000 vain ottaa tehdä 1 läpi ja me lajitellaan. 926 01:04:12,000 --> 01:04:16,000 Mutta tässä yleisessä tapauksessa me todella täytyy tehdä tämä uudestaan ​​ja uudestaan. 927 01:04:16,000 --> 01:04:20,000 Ja itse asiassa, tämä oli esimerkki, että parhaimmassa tapauksessa 928 01:04:20,000 --> 01:04:24,000 kuten näimme ongelma. 929 01:04:24,000 --> 01:04:28,000 Näimme, että paras mahdollinen tapaus oli N. 930 01:04:28,000 --> 01:04:32,000 Kävimme läpi taulukon 1 kerran. 931 01:04:32,000 --> 01:04:35,000 Mikä on pahin mahdollinen tapaus tämä algoritmi? 932 01:04:35,000 --> 01:04:37,000 [Kevin] N ². 933 01:04:37,000 --> 01:04:41,000 Ja mitä se näyttää? Mitä array näyttävät että veisi n ² aikaa? 934 01:04:41,000 --> 01:04:43,000 [Kevin] [kuulumattomissa] lajiteltu. 935 01:04:43,000 --> 01:04:51,000 Aivan, joten jos olisin array 9, 7, 6, 5, 2, 936 01:04:51,000 --> 01:04:54,000 ensin 9 olisi kupla koko matkan ylös. 937 01:04:54,000 --> 01:04:59,000 Sen jälkeen 1 iteraatio olisimme 7, 6, 5, 2, 9. 938 01:04:59,000 --> 01:05:07,000 Sitten 7 olisi kupla ylös, 6, 5, 2, 7, 9, ja niin edelleen ja niin edelleen. 939 01:05:07,000 --> 01:05:13,000 >> Meidän täytyisi käydä läpi koko taulukon n kertaa, 940 01:05:13,000 --> 01:05:16,000 ja voit itse saada hieman tarkempi kuin tämä 941 01:05:16,000 --> 01:05:23,000 koska kerran olemme siirretty 9 aina ylös sen viimeinen mahdollinen asema 942 01:05:23,000 --> 01:05:26,000 tiedämme, että meidän ei tarvitse verrata sitä vastaan ​​elementti uudelleen. 943 01:05:26,000 --> 01:05:29,000 Kun alamme kuplii 7 ylös 944 01:05:29,000 --> 01:05:35,000 me tiedämme, että voimme pysäyttää kun 7 on juuri ennen 9 945 01:05:35,000 --> 01:05:37,000 koska olemme jo verrattuna 9 siihen. 946 01:05:37,000 --> 01:05:46,000 Jos teet tämän fiksu niin se ei totisesti minä arvaan, että paljon aikaa. 947 01:05:46,000 --> 01:05:49,000 Et aio verrata kaikkia mahdollisia [kuulumattomissa] yhdistelmät 948 01:05:49,000 --> 01:05:55,000 joka ikinen kerta mennä läpi jokaisen iteraation. 949 01:05:55,000 --> 01:05:59,000 Mutta silti, kun puhumme tästä yläraja sanomme, että 950 01:05:59,000 --> 01:06:04,000 etsit n ² vertailut kaikki läpi. 951 01:06:04,000 --> 01:06:12,000 >> Mennään takaisin, ja koska olemme alkaneet saada hieman vähän aikaa 952 01:06:12,000 --> 01:06:15,000 Sanoisin sinun pitäisi ehdottomasti käydä läpi loput tämän taulukon 953 01:06:15,000 --> 01:06:17,000 Täytä kaikki ulos. 954 01:06:17,000 --> 01:06:20,000 Ajattele esimerkkejä. Ajattele konkreettisia esimerkkejä. 955 01:06:20,000 --> 01:06:22,000 Se on todella kätevä ja hyödyllinen tehtävä. 956 01:06:22,000 --> 01:06:25,000 Piirrä sitä. 957 01:06:25,000 --> 01:06:28,000 Tämä on sellainen taulukon kuten mennä läpi tietojenkäsittelytieteen 958 01:06:28,000 --> 01:06:32,000 sinun pitäisi todella alkaa tuntea nämä ulkoa. 959 01:06:32,000 --> 01:06:34,000 Nämä ovat erilaisia ​​kysymyksiä saat haastatteluissa. 960 01:06:34,000 --> 01:06:36,000 Nämä ovat asioita, joita on hyvä tietää, 961 01:06:36,000 --> 01:06:41,000 ja ajatella niitä reuna tapauksissa todella mietitään, miten ajatella 962 01:06:41,000 --> 01:06:45,000 tietäen, että kupla lajitella pahin mahdollinen array 963 01:06:45,000 --> 01:06:52,000 lajitella kanssa on yksi, joka on päinvastaisessa järjestyksessä. 964 01:06:52,000 --> 01:06:58,000 >> Pointers. Puhutaanpa hieman siitä viitteitä. 965 01:06:58,000 --> 01:07:03,000 Viime minuutin olemme täällä 966 01:07:03,000 --> 01:07:11,000 Tiedän, että tämä on jotain yhdessä tiedoston I / O, joka on melko uusi. 967 01:07:11,000 --> 01:07:19,000 Kun puhumme osoittimet syy haluamme puhua osoittimia 968 01:07:19,000 --> 01:07:24,000 johtuu, yksi, kun pyrimme C 969 01:07:24,000 --> 01:07:33,000 Olemme todella melko alhainen verrattuna useimpiin modernin ohjelmointikieliä. 970 01:07:33,000 --> 01:07:38,000 Olemme todella pystyy manipuloimaan muuttujat muistiin, 971 01:07:38,000 --> 01:07:43,000 selvittää missä he todella sijaitsevat meidän RAM. 972 01:07:43,000 --> 01:07:46,000 Kun olet mennyt tekemään käyttöjärjestelmän luokat näet 973 01:07:46,000 --> 01:07:48,000 että se on taas eräänlainen abstraktio. 974 01:07:48,000 --> 01:07:50,000 Se ei ole oikeastaan ​​kyse. 975 01:07:50,000 --> 01:07:52,000 Meillä näennäismuistin piileskelee kyseiset tiedot meiltä. 976 01:07:52,000 --> 01:07:58,000 >> Mutta nyt voit olettaa, että kun sinulla on ohjelma, 977 01:07:58,000 --> 01:08:02,000 Esimerkiksi, kun alkaa näyttää Caesar cipher ohjelma- 978 01:08:02,000 --> 01:08:06,000 Minä vaihtaa takaisin minun iPad todella nopeasti, 979 01:08:06,000 --> 01:08:12,000 että alusta ohjelma, jos sinulla on vaikkapa 980 01:08:12,000 --> 01:08:15,000 4 gigatavua muistia kannettavaan tietokoneeseen, 981 01:08:15,000 --> 01:08:21,000 saat kumoaa tämän kimpale, ja me kutsumme tätä muistia. 982 01:08:21,000 --> 01:08:25,000 Ja se alkaa paikassa aiomme soittaa 0, 983 01:08:25,000 --> 01:08:30,000 ja se päättyy paikassa että soitamme 4 gigatavua. 984 01:08:30,000 --> 01:08:37,000 En todellakaan voi kirjoittaa. Ihminen, joka on hakkeroitu. 985 01:08:37,000 --> 01:08:40,000 Kun ohjelma suorittaa 986 01:08:40,000 --> 01:08:44,000 käyttöjärjestelmän kaivertaa RAM, 987 01:08:44,000 --> 01:08:51,000 ja se määrittelee eri segmenteille eri puolilla ohjelman asua 988 01:08:51,000 --> 01:08:58,000 Täällä tämä alue on eräänlainen ei-kenenkään-maalla. 989 01:08:58,000 --> 01:09:02,000 Kun menet ylös hieman kauempana tästä 990 01:09:02,000 --> 01:09:05,000 sinulla todella paikka, jossa 991 01:09:05,000 --> 01:09:09,000 koodi ohjelman elämään. 992 01:09:09,000 --> 01:09:13,000 Että todellinen binäärikoodin, että ohjelmatiedoston todella latautuu muistiin 993 01:09:13,000 --> 01:09:17,000 Kun käynnistät ohjelman, ja se elää koodisegmentissä. 994 01:09:17,000 --> 01:09:22,000 Ja kuin ohjelma suorittaa prosessori näyttää tällä koodisegmentti 995 01:09:22,000 --> 01:09:24,000 selvittää, mitä on seuraavaksi ohje? 996 01:09:24,000 --> 01:09:27,000 Mikä on seuraava koodirivi minun täytyy suorittaa? 997 01:09:27,000 --> 01:09:31,000 >> Mukana on myös tietoja segmentti, ja tämä on paikka, jossa merkkijono vakioita 998 01:09:31,000 --> 01:09:34,000 saa varastoida että olet käyttänyt. 999 01:09:34,000 --> 01:09:42,000 Ja sitten ylempänä on tämä paikka nimeltä kasaan. 1000 01:09:42,000 --> 01:09:46,000 Me käyttää muistia sinne käyttämällä malloc, 1001 01:09:46,000 --> 01:09:49,000 ja sitten kohti hyvin alkuun ohjelman 1002 01:09:49,000 --> 01:09:52,000 siellä pino, 1003 01:09:52,000 --> 01:09:57,000 ja se jos me pelannut suurimman osan alussa. 1004 01:09:57,000 --> 01:09:59,000 Tämä ei ole mittakaavassa tai mitään. 1005 01:09:59,000 --> 01:10:03,000 Paljon tämä on hyvin kone riippuvainen, 1006 01:10:03,000 --> 01:10:10,000 käyttöjärjestelmän riippuvainen, mutta tämä on suhteellisen miten asiat chunked ylös. 1007 01:10:10,000 --> 01:10:17,000 Kun suoritat ohjelman ja te julistaa muuttuja nimeltään x- 1008 01:10:17,000 --> 01:10:27,000 Aion tehdä toiseen ruutuun alhaalla, ja tämä tulee olemaan RAM samoin. 1009 01:10:27,000 --> 01:10:29,000 Ja aion katsoa. 1010 01:10:29,000 --> 01:10:34,000 Me piirtää rosoiset viivat osoittamaan tämä on vain pieni osa muistia 1011 01:10:34,000 --> 01:10:38,000 ja kaikki eivät sitä vedämme huipulla. 1012 01:10:38,000 --> 01:10:43,000 >> Jos Julistan kokonaisluku muuttuja nimeltä x, 1013 01:10:43,000 --> 01:10:49,000 niin mitä minä itse saada on kartoitus 1014 01:10:49,000 --> 01:10:54,000 , joka on tallennettu symboli taulukossa oman ohjelman 1015 01:10:54,000 --> 01:11:00,000 joka yhdistää nimeä x tälle alueelle muistin, että olen laatinut 1016 01:11:00,000 --> 01:11:03,000 täällä välillä pystysuoralla palkilla. 1017 01:11:03,000 --> 01:11:08,000 Jos minulla on koodirivin minun ohjelma sanoo x = 7 1018 01:11:08,000 --> 01:11:15,000 prosessori tietää "Ai, okei, minä tiedän, että x asuu tässä paikassa muistiin." 1019 01:11:15,000 --> 01:11:25,000 "Aion mennä eteenpäin ja kirjoittaa 7 sinne." 1020 01:11:25,000 --> 01:11:28,000 Miten se tietää, mitä paikalla on muistissa? 1021 01:11:28,000 --> 01:11:30,000 No, kaikki on tehty käännöksen yhteydessä. 1022 01:11:30,000 --> 01:11:34,000 Kääntäjä huolehtii jakamisesta jossa kukin muuttujat eivät mene 1023 01:11:34,000 --> 01:11:40,000 ja luodaan erityinen kartoitus tai pikemminkin yhdistävät pisteitä 1024 01:11:40,000 --> 01:11:43,000 välillä symboli ja mihin se on menossa, muuttujan nimi 1025 01:11:43,000 --> 01:11:46,000 ja mihin se on menossa elää muistiin. 1026 01:11:46,000 --> 01:11:50,000 Mutta näyttää siltä, ​​että voimme todella käyttää sitä meidän ohjelmista. 1027 01:11:50,000 --> 01:11:55,000 Tämä saa tärkeää, kun alamme puhua joistakin tietorakenteita, 1028 01:11:55,000 --> 01:11:58,000 joka on käsite, joka aiomme esitellä myöhemmin. 1029 01:11:58,000 --> 01:12:09,000 >> Mutta nyt, mitä voit tietää, että voin luoda osoittimen tähän paikkaan, x. 1030 01:12:09,000 --> 01:12:12,000 Esimerkiksi voin luoda osoitin muuttuja. 1031 01:12:12,000 --> 01:12:16,000 Kun luomme osoitinmuuttuja käytämme tähti merkintää. 1032 01:12:16,000 --> 01:12:21,000 Tässä tapauksessa tämä sanoo aion luoda osoitin int. 1033 01:12:21,000 --> 01:12:24,000 Se on eräänlainen kuten muutkin. 1034 01:12:24,000 --> 01:12:27,000 Annamme se muuttuja kuin y, 1035 01:12:27,000 --> 01:12:32,000 ja sitten asettaa sen yhtä osoitetta, osoitteeseen. 1036 01:12:32,000 --> 01:12:38,000 Tässä tapauksessa voimme asettaa y osoittamaan x 1037 01:12:38,000 --> 01:12:43,000 ottamalla osoite x, jonka teemme tätä et-merkki, 1038 01:12:43,000 --> 01:12:55,000 ja sitten asetamme y osoittamaan se. 1039 01:12:55,000 --> 01:12:59,000 Mitä tämä pohjimmiltaan se on, jos katsomme meidän RAM 1040 01:12:59,000 --> 01:13:02,000 Tämä luo erillisen muuttuja. 1041 01:13:02,000 --> 01:13:04,000 Se tulee kutsua y, 1042 01:13:04,000 --> 01:13:06,000 ja kun tämä rivi koodia suorittaa 1043 01:13:06,000 --> 01:13:13,000 se todella tulee luoda hieman osoittimen jota tyypillisesti piirtää kuin nuoli, 1044 01:13:13,000 --> 01:13:15,000 ja se asettaa y osoittamaan x. 1045 01:13:15,000 --> 01:13:17,000 Kyllä. 1046 01:13:17,000 --> 01:13:19,000 [Student] Jos x on jo osoitin, sinä vain tehdä 1047 01:13:19,000 --> 01:13:22,000 int * y = x sen sijaan, et-merkki? 1048 01:13:22,000 --> 01:13:24,000 Kyllä. 1049 01:13:24,000 --> 01:13:27,000 Jos x on jo osoitin, voit asettaa 2 osoittimia keskenään yhtä, 1050 01:13:27,000 --> 01:13:30,000 jolloin y eivät osoittaneet x, 1051 01:13:30,000 --> 01:13:34,000 mutta se osoittaa mitä x osoittaa. 1052 01:13:34,000 --> 01:13:37,000 Emme valitettavasti liian myöhään. 1053 01:13:37,000 --> 01:13:44,000 >> Sanoisin tässä vaiheessa, voimme puhua tästä tilassa, 1054 01:13:44,000 --> 01:13:49,000 mutta sanoisin aloittaa työskentelyn kautta tätä ongelmaa, # 14. 1055 01:13:49,000 --> 01:13:53,000 Näet siellä jo hieman täytetty sinua täällä. 1056 01:13:53,000 --> 01:13:57,000 Voit nähdä, että kun me julistamme 2 osoittimia, int * x ja * y, 1057 01:13:57,000 --> 01:14:01,000 ja huomaa, että osoittaa * vieressä muuttuja oli jotain, joka tehtiin viime vuonna. 1058 01:14:01,000 --> 01:14:05,000 On käynyt ilmi, että tämä on samanlainen kuin mitä me teemme tänä vuonna. 1059 01:14:05,000 --> 01:14:11,000 Sillä ei ole väliä missä kirjoittaa * kun olet julistaa osoitin. 1060 01:14:11,000 --> 01:14:17,000 Mutta olemme kirjoittaneet * vieressä tyypin 1061 01:14:17,000 --> 01:14:24,000 koska se tekee hyvin selväksi, että olet julistamista osoitin muuttuja. 1062 01:14:24,000 --> 01:14:27,000 Voit nähdä, että julistamalla 2 viitteitä antaa meille 2 laatikkoa. 1063 01:14:27,000 --> 01:14:31,000 Täällä kun asetamme x yhtä malloc 1064 01:14:31,000 --> 01:14:34,000 mitä tämä sanoo asettaa syrjään muistia kasaan. 1065 01:14:34,000 --> 01:14:41,000 Tämä pieni laatikko täällä, tämä ympyrä, sijaitsee kasaan. 1066 01:14:41,000 --> 01:14:43,000 X osoittaa sen. 1067 01:14:43,000 --> 01:14:46,000 Huomaa, että y on vielä osoittaa mitään. 1068 01:14:46,000 --> 01:14:50,000 Saadaksesi muistia tallentaa numero 42 tulee x 1069 01:14:50,000 --> 01:14:55,000 me käyttäisimme mitä merkintätapaa? 1070 01:14:55,000 --> 01:14:59,000 [Opiskelija] * x = 42. 1071 01:14:59,000 --> 01:15:01,000 Aivan, * x = 42. 1072 01:15:01,000 --> 01:15:06,000 Tämä tarkoittaa seurata nuolta ja heittää 42 siellä. 1073 01:15:06,000 --> 01:15:09,000 Täällä missä asetamme y ja x olemme y osoittaa x. 1074 01:15:09,000 --> 01:15:13,000 Jälleen, tämä on aivan kuin mitä Kevin sanoi joissa asetimme y yhtä x. 1075 01:15:13,000 --> 01:15:15,000 Y ei osoita x. 1076 01:15:15,000 --> 01:15:19,000 Pikemminkin se osoittaa, mitä x on osoittaa samoin. 1077 01:15:19,000 --> 01:15:24,000 >> Ja sitten lopuksi tässä viimeisessä ruudussa on 2 mahdollista asioita, joita voisimme tehdä. 1078 01:15:24,000 --> 01:15:28,000 Yksi on voisimme sanoa * x = 13. 1079 01:15:28,000 --> 01:15:33,000 Toinen asia on, että voisimme sanoa-Alex, tiedätkö mitä voisimme tehdä täällä? 1080 01:15:33,000 --> 01:15:37,000 Voisi sanoa * x = 13 tai- 1081 01:15:37,000 --> 01:15:41,000 [Student] Voisi sanoa int riippumatta. 1082 01:15:41,000 --> 01:15:45,000 [Nate H.] Jos tämä kutsuttiin int muuttuja me voisimme tehdä sen. 1083 01:15:45,000 --> 01:15:49,000 Voisimme myös sanoa * y = 13, koska he molemmat osoittavat samaan paikkaan, 1084 01:15:49,000 --> 01:15:51,000 jotta voisimme käyttää joko muuttujaa sinne. 1085 01:15:51,000 --> 01:15:56,000 Joo. >> [Opiskelija] Miltä näyttää, jos me vain sanoa int x on 13? 1086 01:15:56,000 --> 01:16:00,000 Tämä olisi julistaa uusi muuttuja nimeltä x, joka ei toimi. 1087 01:16:00,000 --> 01:16:04,000 Meillä täytyisi törmäyksen koska julistettu x olla osoitin täällä. 1088 01:16:04,000 --> 01:16:10,000 [Student] Jos meillä oli vain toteamus itse mitä se näyttää kannalta ympyrän? 1089 01:16:10,000 --> 01:16:14,000 Jos meillä olisi x = 13 niin olisimme laatikko, ja sen sijaan nuoli 1090 01:16:14,000 --> 01:16:16,000 tulossa ulos laatikosta olimme tehdä sitä vain 13. 1091 01:16:16,000 --> 01:16:19,000 [Opiskelija] ruutuun. Okei. 1092 01:16:19,000 --> 01:16:24,000 >> Kiitos katsomassa, ja onnea Quiz 0. 1093 01:16:24,000 --> 01:16:28,000 [CS50.TV]