1 00:00:00,000 --> 00:00:02,970 >> [MUSIIKKIA] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. MALAN: Selvテ、. 4 00:00:15,700 --> 00:00:18,832 Tテ、mテ、 on CS50 ja tテ、mテ、n on alku Viikko 2. 5 00:00:18,832 --> 00:00:21,040 Ja te muistaa, ettテ、 yli parin viime viikon aikana, 6 00:00:21,040 --> 00:00:24,490 olemme esitelleet tietokoneella tiede ja puolestaan 窶銀€黍hjelmointi. 7 00:00:24,490 --> 00:00:27,640 >> Ja aloitimme tarinan Poiketen Scratch, ettテ、 graafinen kieli 8 00:00:27,640 --> 00:00:28,990 MIT: N Media Lab. 9 00:00:28,990 --> 00:00:30,780 Ja sitten viimeksi viime viikolla, teki meidテ、n 10 00:00:30,780 --> 00:00:34,450 kテ、yttテカテカn higher-- alemman tason kieli tiedossa 11 00:00:34,450 --> 00:00:36,770 kuten C, jotain, joka on puhtaasti tekstimuodossa. 12 00:00:36,770 --> 00:00:39,440 Ja todellakin, viimeinen kerta tutkia niihin liittyvistテ、 13 00:00:39,440 --> 00:00:40,450 useita kテ、sitteitテ、. 14 00:00:40,450 --> 00:00:43,010 >> Tテ、mテ、 muistuttaa, oli hyvin Ensimmテ、inen ohjelma tarkastelimme. 15 00:00:43,010 --> 00:00:45,710 Ja tテ、mテ、 ohjelma, yksinkertaisesti, tulostaa, "hei, maailma." 16 00:00:45,710 --> 00:00:47,730 Mutta on niin paljon nテ、ennテ、isestテ、 magic meneillテ、テ、n. 17 00:00:47,730 --> 00:00:51,460 Ei tテ、mテ、 include Nテ、iden Kulmasulkeet. 18 00:00:51,460 --> 00:00:52,170 On int. 19 00:00:52,170 --> 00:00:53,020 On (void). 20 00:00:53,020 --> 00:00:56,330 On sulkuja, aaltosulkeita, puolipistettテ、, ja niin paljon enemmテ、n. 21 00:00:56,330 --> 00:00:58,480 >> Ja niin, muistaa, ettテ、 otimme kテ、yttテカテカn Scratch 22 00:00:58,480 --> 00:01:02,110 jotta voisimme ihannetapauksessa nテ、hdテ、 ohi ettテ、 syntaksi, tavaraa, joka ei todellakaan ole 23 00:01:02,110 --> 00:01:04,590 kaikki ettテ、 テ、lyllisesti mielenkiintoinen, mutta jo varhain 24 00:01:04,590 --> 00:01:07,700 on, ehdottomasti, vテ、hテ、n hankala kテ、テ、riテ、 mielesi ympテ、rille. 25 00:01:07,700 --> 00:01:10,860 Ja, todellakin, yksi yleisimmistテ、 asiat varhaisessa ohjelmointi luokan, 26 00:01:10,860 --> 00:01:13,443 erityisesti niille vテ、hemmテ、n mukava, on saada turhautuvat 27 00:01:13,443 --> 00:01:17,460 katkaisemaan jopa tiettyjen syntaktinen virheet, puhumattakaan loogisia virheitテ、. 28 00:01:17,460 --> 00:01:19,800 Ja niin keskuudessa tavoitteemme tテ、nテ、テ、n, todella, tulee 29 00:01:19,800 --> 00:01:23,280 olla varustaa sinulle joitakin ongelmanratkaisu tekniikoita, miten 30 00:01:23,280 --> 00:01:26,705 paremmin ratkaista ongelmia itse muodossa virheenkorjaus. 31 00:01:26,705 --> 00:01:29,330 Ja voit muistaa myテカs, ettテ、 ympテ、ristテカ ettテ、 otimme kテ、yttテカテカn 32 00:01:29,330 --> 00:01:31,780 Edellisen kerran kutsuttiin CS50 IDE. 33 00:01:31,780 --> 00:01:34,850 Tテ、mテ、 on web-pohjainen ohjelmisto, joka voidaan ohjelmoida pilvessテ、, 34 00:01:34,850 --> 00:01:38,450 niin sanotusti, pitテ、en kaikki tiedostot yhteen, kuten olemme jテ、lleen tulee tテ、nテ、テ、n. 35 00:01:38,450 --> 00:01:41,480 Ja muistaa, ettテ、 me revisited nテ、istテ、 aiheista tテ、テ、llテ、, 36 00:01:41,480 --> 00:01:44,480 joukossa toimintoja, ja silmukoita, ja muuttujia, ja Boolen operaattoreilla, 37 00:01:44,480 --> 00:01:45,110 ja olosuhteet. 38 00:01:45,110 --> 00:01:49,190 Ja itse asiassa vielテ、 muutama ettテ、 olemme kテ、テ、nnetty maailmasta Scratch 39 00:01:49,190 --> 00:01:50,800 maailmaan C. 40 00:01:50,800 --> 00:01:53,220 >> Mutta perusongelma rakennus lohkot, niin sanotusti, 41 00:01:53,220 --> 00:01:55,150 olivat todella edelleen sama viime viikolla. 42 00:01:55,150 --> 00:01:57,900 Itse asiassa olemme todella vain oli eri palapelin pala, jos haluatte. 43 00:01:57,900 --> 00:02:00,300 Sen sijaan, ettテ、 violetti tallentaa lohko, me sen sijaan 44 00:02:00,300 --> 00:02:02,940 oli printf, joka on Tテ、tテ、 toimintoa C ettテ、 45 00:02:02,940 --> 00:02:05,890 voit tulostaa jotain ja alustaa sen ruudulla. 46 00:02:05,890 --> 00:02:07,950 Otimme CS50 Kirjasto, jossa 47 00:02:07,950 --> 00:02:11,420 on nyt kテ、ytettテ、vissテ、nne get_char, ja get_int, ja get_string, 48 00:02:11,420 --> 00:02:14,610 ja muutamia muita toimintoja hyvin, jonka kautta voi saada syテカttテ、テ、 49 00:02:14,610 --> 00:02:16,260 kテ、yttテ、jテ、n omalla nテ、ppテ、imistテカllテ、. 50 00:02:16,260 --> 00:02:20,640 Ja me myテカs katsoimme asioita kuten these- bool, ja nieriテ、, 51 00:02:20,640 --> 00:02:22,490 ja kaksinkertainen, kellua, int, long_long merkkijono. 52 00:02:22,490 --> 00:02:25,170 Ja siellテ、 on jopa muita tietotyyppejテ、 C. 53 00:02:25,170 --> 00:02:28,560 >> Toisin sanoen, kun julistaa muuttuja tallentaa jotain arvoa, 54 00:02:28,560 --> 00:02:32,600 tai kun toteuttaa funktion joka palauttaa jotain arvoa, 55 00:02:32,600 --> 00:02:35,290 voit mテ、テ、rittテ、テ、, mitテ、 tyyppinen arvo on. 56 00:02:35,290 --> 00:02:37,310 Onko se merkkijono, kuten merkkijono? 57 00:02:37,310 --> 00:02:39,490 Onko se numero, kuten kokonaisluku? 58 00:02:39,490 --> 00:02:41,390 Onko se liukuluku arvo, tai vastaavaa? 59 00:02:41,390 --> 00:02:46,180 Joten C, toisin kuin Scratch, me todellakin alkoi mテ、テ、rittテ、テ、, millaisia 窶銀€逆ietoja 60 00:02:46,180 --> 00:02:48,330 olimme palaamassa tai kテ、yttテ、mテ、llテ、. 61 00:02:48,330 --> 00:02:51,910 >> Mutta tietysti myテカs tテカrmテ、si joitakin perustavanlaatuisia rajoja computing. 62 00:02:51,910 --> 00:02:54,100 Ja erityisesti, tテ、llテ、 kielellテ、 C, recall 63 00:02:54,100 --> 00:02:57,070 ettテ、 me katsoimme kokonaisluvun ylivuoto, todellisuus 64 00:02:57,070 --> 00:03:00,460 ettテ、 jos sinulla on vain rajallinen mテ、テ、rテ、 muistia 65 00:03:00,460 --> 00:03:04,600 tai, erityisesti, rajallinen mテ、テ、rテ、 bittejテ、, voi vain laskea niin korkea. 66 00:03:04,600 --> 00:03:08,460 Ja niin me katsoimme tテ、tテ、 esimerkkiテ、 tテ、stテ、 jolloin laskuri lentokoneella, 67 00:03:08,460 --> 00:03:13,510 todella, jos kテ、ynnissテ、 tarpeeksi kauan olisi ylivuoto ja johtaa ohjelmistojen 68 00:03:13,510 --> 00:03:15,560 todelliseen fyysiseen mahdollinen virhe. 69 00:03:15,560 --> 00:03:18,600 >> Me tarkasteltiin myテカs kelluva piste epテ、tテ、smテ、llisyys, todellisuus 70 00:03:18,600 --> 00:03:22,280 ettテ、 vain rajallinen mテ、テ、rテ、 bittien, onko se 32 tai 64, 71 00:03:22,280 --> 00:03:27,330 voit vain mテ、テ、rittテ、テ、 niin monta numeroa jテ、lkeen desimaalierottimen jonka jテ、lkeen 72 00:03:27,330 --> 00:03:29,110 alkaa saada epテ、tarkka. 73 00:03:29,110 --> 00:03:32,360 Niinpテ、 esimerkiksi kolmasosa on maailma tテ、テ、llテ、, meidテ、n ihmisten maailmassa, 74 00:03:32,360 --> 00:03:35,360 tiedテ、mme vain テ、テ、retテカn mテ、テ、rテ、 3s desimaalipisteen jテ、lkeen. 75 00:03:35,360 --> 00:03:38,820 Mutta tietokone ei voi vテ、lttテ、mテ、ttテ、 edustavat テ、テ、retテカn mテ、テ、rテ、 numeroita 76 00:03:38,820 --> 00:03:42,590 jos vain antaa sille joitakin rajallinen mテ、テ、rテ、 tietoa. 77 00:03:42,590 --> 00:03:45,900 >> Joten ei ainoastaan 窶銀€砧e varustaa voit enemmテ、n valtaa suhteen 78 00:03:45,900 --> 00:03:49,280 miten voit ilmaista itseテ、si nテ、ppテ、imistテカ ohjelmatyテカn, 79 00:03:49,280 --> 00:03:51,430 me myテカs rajoitettu mitテ、 voit itse tehdテ、. 80 00:03:51,430 --> 00:03:55,790 Ja todellakin, bugeja ja virheitテ、 voi syntyvテ、t tuollaiset asiat. 81 00:03:55,790 --> 00:03:59,900 Ja todellakin, joukossa aiheista tテ、nテ、テ、n tulevat olemaan aiheita kuten virheenkorjaus 82 00:03:59,900 --> 00:04:03,699 ja todella etsivテ、t alla huppu kuinka asiat esiteltiin viime viikolla 83 00:04:03,699 --> 00:04:05,490 todella toteutetaan jotta voit paremmin 84 00:04:05,490 --> 00:04:10,530 ymmテ、rtテ、テ、 sekテ、 ominaisuuksia ja rajoitukset kielen kuten C. 85 00:04:10,530 --> 00:04:14,770 >> Ja itse asiassa, me kuori takaisin kerroksia yksinkertaisin tietorakenne, 86 00:04:14,770 --> 00:04:17,756 jotain kutsutaan joukko, joka Scratch sattuu soittaa "lista." 87 00:04:17,756 --> 00:04:19,589 Se on hieman Eri tテ、ssテ、 yhteydessテ、. 88 00:04:19,589 --> 00:04:23,340 Ja sitten me myテカs esitellテ、 yksi Ensimmテ、inen meidテ、n domain-erityisongelmat 89 00:04:23,340 --> 00:04:26,790 in CS50, maailma salaus, taidetta muokkaamisella 90 00:04:26,790 --> 00:04:29,650 tai salausinformaatioon niin ettテ、 voit lテ、hettテ、テ、 salaisia 窶銀€久iestejテ、 91 00:04:29,650 --> 00:04:34,520 ja purkaa salaisia 窶銀€久iestejテ、 kahden henkilテカn vテ、lillテ、, A ja B. 92 00:04:34,520 --> 00:04:37,490 >> Joten ennen kuin siirtyminen kyseiseen uuteen maailmaan, 93 00:04:37,490 --> 00:04:42,059 koetamme varustaa sinulle joitakin tekniikoita, jolla voit poistaa 94 00:04:42,059 --> 00:04:43,850 tai vテ、hentテ、テ、 ainakin joitakin turhautumista 95 00:04:43,850 --> 00:04:46,630 ettテ、 olet todennテ、kテカisesti kohdannut viime viikon yksin. 96 00:04:46,630 --> 00:04:50,830 Itse asiassa, ennen olet such-- joitakin ensimmテ、inen ongelmat C. Ja kertoimet ovat, 97 00:04:50,830 --> 00:04:54,010 jos olet kuten minテ、, ensimmテ、istテ、 kertaa yritテ、t kirjoittaa ulos ohjelma, 98 00:04:54,010 --> 00:04:57,330 vaikka luulet loogisesti ohjelma on melko yksinkertainen, 99 00:04:57,330 --> 00:05:01,200 saatat hyvinkin osui seinテ、テ、n, ja kテ、テ、ntテ、jテ、 ei aio tehdテ、 yhteistyテカtテ、. 100 00:05:01,200 --> 00:05:03,940 Tee tai Clang ei aio todella tehdテ、 oman hinnoittelu. 101 00:05:03,940 --> 00:05:05,450 >> Ja miksi se voisi olla? 102 00:05:05,450 --> 00:05:07,950 No, katsomaan, ehkテ、 yksinkertainen ohjelma. 103 00:05:07,950 --> 00:05:11,190 Aion mennテ、 eteenpテ、in ja tallenna tテ、mテ、 Tiedoston tarkoituksella nimeltテ、 buggy0.c, 104 00:05:11,190 --> 00:05:13,590 koska tiedテ、n sen olla virheellinen etukテ、teen. 105 00:05:13,590 --> 00:05:17,400 Mutta en ehkテ、 ymmテ、rtテ、テ、, ettテ、 jos tテ、mテ、 on ensimmテ、inen tai toinen tai kolmas ohjelma 106 00:05:17,400 --> 00:05:18,830 ettテ、 olen todella tehdテ、 itse. 107 00:05:18,830 --> 00:05:23,820 Joten aion mennテ、 eteenpテ、in ja kirjoittamiseen, int main (void). 108 00:05:23,820 --> 00:05:28,130 Ja sitten sisテ、llテ、 minun aaltosulkeita, hyvin tuttu ( "Hei, world-- 109 00:05:28,130 --> 00:05:30,980 backslash, n ") - ja puolipisteellテ、. 110 00:05:30,980 --> 00:05:32,360 >> Olen tallentanut tiedoston. 111 00:05:32,360 --> 00:05:34,850 Nyt aion mennテ、 alas minun pテ、テ、teikkuna 112 00:05:34,850 --> 00:05:40,340 ja tyyppi tehdテ、 buggy0, koska, jテ、lleen, nimi tiedoston nykyテ、テ、n buggy0.c. 113 00:05:40,340 --> 00:05:43,660 Joten kirjoitan tehdテ、 buggy0, Enter. 114 00:05:43,660 --> 00:05:48,200 >> Ja oi, gosh, muistaa viime kerran ettテ、 ei virheilmoitukset on hyvテ、 asia. 115 00:05:48,200 --> 00:05:49,740 Joten ei ulostulo on hyvテ、 asia. 116 00:05:49,740 --> 00:05:52,920 Mutta tテ、テ、llテ、 minulla on selvテ、sti jotkut mテ、テ、rテ、 virheitテ、. 117 00:05:52,920 --> 00:05:56,470 >> Joten ensimmテ、inen rivi ulostulo kirjoittamisen jテ、lkeen tehdテ、 buggy0, recall, 118 00:05:56,470 --> 00:05:59,540 on Clang n melko laveasti. 119 00:05:59,540 --> 00:06:02,067 Alapuolella huppu, CS50 IDE on konfiguroitu 120 00:06:02,067 --> 00:06:04,150 kテ、yttテ、テ、 koko joukko vaihtoehtoja tテ、mテ、n kテ、テ、ntテ、jテ、 121 00:06:04,150 --> 00:06:05,941 jotta sinun ei tarvitse ajatella niitテ、. 122 00:06:05,941 --> 00:06:08,840 Ja siinテ、 kaikki, ettテ、 ensimmテ、inen rivi keinot, joka alkaa Clang. 123 00:06:08,840 --> 00:06:11,720 >> Mutta sen jテ、lkeen, ongelmia alkaa tehdテ、 niiden ulkonテ、kテカテ、. 124 00:06:11,720 --> 00:06:17,390 Buggy0.c rivillテ、 3, character 5, on suuri, punainen virhe. 125 00:06:17,390 --> 00:06:18,380 Mikテ、 tuo on? 126 00:06:18,380 --> 00:06:23,562 Epテ、suorasti julistaa kirjaston funktion printf tyypin int (const char *, 127 00:06:23,562 --> 00:06:26,050 ...) [-Werror]. 128 00:06:26,050 --> 00:06:28,379 Siis, se hyvin nopeasti saa hyvin vaikeaselkoisia. 129 00:06:28,379 --> 00:06:30,170 Ja varmasti, ensin silmテ、yksellテ、, me emme tahdo 130 00:06:30,170 --> 00:06:32,380 odottavat sinua ymmテ、rtテ、mテ、テ、n kokonaisuudessaan kyseisen viestin. 131 00:06:32,380 --> 00:06:34,213 Ja niin yksi opetuksista tテ、nテ、テ、n on menossa 132 00:06:34,213 --> 00:06:36,919 olla yrittテ、テ、 huomata kuvioita, tai samanlaisia 窶銀€蟻sioita, 133 00:06:36,919 --> 00:06:38,960 virheisiin saatat olla kohdannut aikaisemmin. 134 00:06:38,960 --> 00:06:41,335 Joten kiusaa toisistaan 窶銀€久ain ne sanat, jotka tutulta. 135 00:06:41,335 --> 00:06:44,290 Suuri punainen virhe on selvテ、sti symbolinen jotain on vialla. 136 00:06:44,290 --> 00:06:47,940 >> epテ、suorasti julistamisesta kirjaston funktion printf. 137 00:06:47,940 --> 00:06:51,680 Joten vaikka en oikein ymmテ、rrテ、, mitテ、 epテ、suorasti julistaa kirjaston funktion 138 00:06:51,680 --> 00:06:54,900 keinoin, ongelma varmasti koskee printf jotenkin. 139 00:06:54,900 --> 00:06:59,130 Ja lテ、hde tテ、stテ、 asiasta on tekemistテ、 julistaa sen. 140 00:06:59,130 --> 00:07:02,440 >> Julistamisesta toiminto on mainita sitテ、 ensimmテ、istテ、 kertaa. 141 00:07:02,440 --> 00:07:06,210 Ja kテ、ytimme terminologiaa viime viikolla julistaa funktion prototyyppi, 142 00:07:06,210 --> 00:07:11,860 joko yhden rivin ylテ、reunassa oma tiedosto tai ns header-tiedosto. 143 00:07:11,860 --> 00:07:15,300 Ja mitテ、 tiedostoa teki sanomme viime viikolla, ettテ、 printf on lainaus, 144 00:07:15,300 --> 00:07:17,080 lainaus, julisti? 145 00:07:17,080 --> 00:07:20,950 Missテ、 tiedosto on sen prototyyppi? 146 00:07:20,950 --> 00:07:24,640 >> Joten jos muistatte, aivan ensimmテ、inen asia, I konekirjoitettu, lテ、hes jokainen ohjelma viime time-- 147 00:07:24,640 --> 00:07:30,790 ja vahingossa hetki sitten alkanut kirjoittamalla myself-- oli tテ、mテ、 here-- 148 00:07:30,790 --> 00:07:38,630 hash-- #include 00:07:41,860 kun nyt tallentaa tテ、mテ、n tiedoston, aion mennテ、 eteenpテ、in ja tyhjentテ、テ、 nテ、ytテカn, 150 00:07:41,860 --> 00:07:44,740 joka voi tehdテ、 kirjoittamalla Kirkas, tai voit pitテ、テ、 Ohjaus L, 151 00:07:44,740 --> 00:07:47,680 vain tyhjentテ、テ、 pテ、テ、teikkunaan vain poistamaan joitakin sotkua. 152 00:07:47,680 --> 00:07:51,370 >> Aion mennテ、 eteenpテ、in ja re-tyyppinen merkki buggy0, Enter. 153 00:07:51,370 --> 00:07:53,790 Ja voila, olen edelleen nテ、hdテ、, ettテ、 pitkテ、 komento Clang, 154 00:07:53,790 --> 00:07:55,470 mutta ei ole mitテ、テ、n virheilmoitusta tテ、llテ、 kertaa. 155 00:07:55,470 --> 00:07:58,800 Ja todellakin, jos en ./buggy0, aivan kuten viime kerralla, 156 00:07:58,800 --> 00:08:01,860 missテ、 piste tarkoittaa tテ、mテ、 hakemisto, Slash vain tarkoittaa, 157 00:08:01,860 --> 00:08:05,040 tテ、ssテ、 tulee ohjelman nimi ja ettテ、 ohjelman nimi on buggy0, 158 00:08:05,040 --> 00:08:07,340 Enter, "hei, maailma." 159 00:08:07,340 --> 00:08:09,440 >> Nyt miten voisi olet poimittu tテ、mテ、 ratkaisu 160 00:08:09,440 --> 00:08:12,017 ilman vテ、lttテ、mテ、ttテ、 tunnustaa niin monta sanaa 161 00:08:12,017 --> 00:08:14,350 kuten tein, varmasti, joilla tehnyt tテ、mテ、n niin monta vuotta? 162 00:08:14,350 --> 00:08:18,720 No, ymmテ、rtテ、テ、 per ensimmテ、inen ongelma set, esittelemme komentoon 163 00:08:18,720 --> 00:08:21,175 ettテ、 CS50 oma henkilテカkunta kirjoitti kutsutaan help50. 164 00:08:21,175 --> 00:08:24,300 Ja todellakin, C tekee mテ、テ、rittelyn ongelma asetettu, miten kテ、yttテ、テ、 tテ、tテ、. 165 00:08:24,300 --> 00:08:27,210 >> Mutta help50 on olennaisesti ohjelma, joka CS50 henkilテカstテカ 166 00:08:27,210 --> 00:08:30,850 kirjoitti, ettテ、 voit ajaa komennon tai suorita ohjelma, 167 00:08:30,850 --> 00:08:36,169 ja jos et ymmテ、rrテ、 sen ulostulo, siirtテ、テ、 tuotannostaan 窶銀€吃elp50, 168 00:08:36,169 --> 00:08:38,890 jolloin ohjelmisto ettテ、 kurssin henkilテカkunta kirjoitti 169 00:08:38,890 --> 00:08:42,429 tarkastellaan ohjelman ulostulo rivi riviltテ、, 窶銀€砧erkki kerrallaan. 170 00:08:42,429 --> 00:08:46,000 Ja jos me, henkilテカkunta, tunnistaa virheilmoituksen, joka sinulla on, 171 00:08:46,000 --> 00:08:50,580 yritテ、mme provosoida teille joitakin retorisia kysymyksiテ、, joitakin neuvoja, 172 00:08:50,580 --> 00:08:54,890 paljon kuin TF tai CA tai itse tekisi henkilテカkohtaisesti virka. 173 00:08:54,890 --> 00:08:58,320 >> Niin katso help50 jos et vテ、lttテ、mテ、ttテ、 tunnista ongelma. 174 00:08:58,320 --> 00:09:00,790 Mutta eivテ、t ole riippuvaisia 窶銀€虐iitテ、 liian paljon kuin kainalosauva. 175 00:09:00,790 --> 00:09:03,990 Varmasti yrittテ、テ、 ymmテ、rtテ、テ、 sen lテ、htテカ ja sitten oppia siitテ、 176 00:09:03,990 --> 00:09:07,571 niin ettテ、 vain kerran tai kahdesti sinテ、 koskaan ajaa help50 tietylle virhe 177 00:09:07,571 --> 00:09:08,070 viesti. 178 00:09:08,070 --> 00:09:10,660 Tテ、mテ、n jテ、lkeen sinun pitテ、isi olla paremmat itse 179 00:09:10,660 --> 00:09:13,180 selvittテ、テ、, mitテ、 se todellisuudessa on. 180 00:09:13,180 --> 00:09:14,350 >> Tehdテ、テ、n yksi muu tテ、テ、llテ、. 181 00:09:14,350 --> 00:09:20,410 Anna minun mennテ、 eteenpテ、in, ja toiseen tiedosto me kutsumme tテ、tテ、 buggy1.c. 182 00:09:20,410 --> 00:09:23,110 Ja tテ、hテ、n tiedostoon olen menossa deliberately-- 183 00:09:23,110 --> 00:09:26,330 mutta teeskennellテ、 ettテ、 en ymmテ、rtテ、テ、, mitテ、 virheen olen tehnyt. 184 00:09:26,330 --> 00:09:31,420 >> Aion mennテ、 eteenpテ、in ja tehdテ、 this-- # include, koska olen 185 00:09:31,420 --> 00:09:33,660 oppinut lテ、ksynsテ、 hetki sitten. 186 00:09:33,660 --> 00:09:36,220 Int main (void), kuten aiemmin. 187 00:09:36,220 --> 00:09:40,880 Ja sitten tテ、テ、llテ、 aion tehdテ、 string s - get_string. 188 00:09:40,880 --> 00:09:43,770 Ja muistaa viime kerran Tテ、mテ、 tarkoittaa, hei, tietokone, 189 00:09:43,770 --> 00:09:48,280 antaa minulle muuttuja, soita se s, ja tehdテ、 tyypin muuttujan merkkijonon 190 00:09:48,280 --> 00:09:50,150 joten en voi tallentaa yhden tai useamman sanan sitテ、. 191 00:09:50,150 --> 00:09:52,191 >> Ja sitten oikeanpuoleisessa puolella yhtテ、lテ、isyysmerkin 192 00:09:52,191 --> 00:09:54,980 on get_string, joka on toiminto CS50 kirjastosta 193 00:09:54,980 --> 00:09:55,980 ettテ、 juuri nテ、in. 194 00:09:55,980 --> 00:09:59,740 Se saa funktio ja sitten kテ、siテ、 sen oikealta vasemmalle. 195 00:09:59,740 --> 00:10:02,670 Joten tテ、mテ、 yhtテ、lテ、isyysmerkki ei tarkoita "On yhtテ、 kuin" kuten voisi luulla matematiikasta. 196 00:10:02,670 --> 00:10:04,750 Se tarkoittaa toimeksianto oikealta vasemmalle. 197 00:10:04,750 --> 00:10:09,640 Joten tテ、mテ、 tarkoittaa, ottaa merkkijonon kテ、yttテ、jテ、 ja tallentaa sen sisテ、llテ、 s. 198 00:10:09,640 --> 00:10:10,460 >> Nyt kテ、yttテ、テ、 sitテ、. 199 00:10:10,460 --> 00:10:13,820 Anna minun mennテ、 eteenpテ、in nyt ja toisena line, anna minun mennテ、 eteenpテ、in ja sanoa "hei" - 200 00:10:13,820 --> 00:10:19,330 ei "maailman", mutta "Hei,% S-- joka on meidテ、n paikkamerkki, pilkku s, 201 00:10:19,330 --> 00:10:22,030 joka on meidテ、n vaihteleva, ja sitten puolipisteellテ、. 202 00:10:22,030 --> 00:10:26,070 Joten jos en tyriテ、 liikaa tテ、テ、llテ、, tテ、mテ、 nテ、yttテ、テ、 oikean koodin. 203 00:10:26,070 --> 00:10:28,090 >> Ja vaistoni ovat nyt niiden kerテ、テ、miseksi. 204 00:10:28,090 --> 00:10:30,400 Tiedosto on nimeltテ、テ、n buggy1.c. 205 00:10:30,400 --> 00:10:33,770 Joten aion tehdテ、 tehdテ、 buggy1, Enter. 206 00:10:33,770 --> 00:10:36,377 Ja hiton-, jos se ei ole vielテ、kin enemmテ、n virheitテ、 kuin ennen. 207 00:10:36,377 --> 00:10:38,210 Siis, ei enempテ、テ、 virheilmoituksia se olisi 208 00:10:38,210 --> 00:10:40,400 nテ、yttテ、vテ、t kuin todellinen riviテ、 tテ、ssテ、 ohjelmassa. 209 00:10:40,400 --> 00:10:42,730 >> Mutta takeaway tテ、ssテ、, vaikka olet hukkua 210 00:10:42,730 --> 00:10:45,040 joissa on kaksi tai kolme tai neljテ、 enemmテ、n virheilmoituksia, 211 00:10:45,040 --> 00:10:48,340 keskittyvテ、t aina hyvin Ensimmテ、inen nテ、istテ、 viesteistテ、. 212 00:10:48,340 --> 00:10:52,220 Tarkasteltaessa Ylimmテ、ssテ、 yksi, rullata takaisin ylテカs kuin tarvetta on. 213 00:10:52,220 --> 00:10:53,930 Joten tテ、ssテ、 olen kirjoittanut make buggy1. 214 00:10:53,930 --> 00:10:55,700 Tテ、ssテ、 ettテ、 Clang tuotanto odotetusti. 215 00:10:55,700 --> 00:10:57,290 >> Ja tテ、ssテ、 on ensimmテ、inen punainen virhe. 216 00:10:57,290 --> 00:11:02,370 Kテ、ytテ、 pimeテ、n tunnisteen string, minテ、 tarkoitan vakiona? 217 00:11:02,370 --> 00:11:04,260 Joten standardi on todella jotain muuta. 218 00:11:04,260 --> 00:11:06,240 Se viittaa kテ、yttテ、jテ、n nテ、ppテ、imistテカ, lテ、hinnテ、. 219 00:11:06,240 --> 00:11:08,080 >> Mutta se ei ole mitテ、 tarkoitin. 220 00:11:08,080 --> 00:11:11,770 Tarkoitin merkkijono, ja tarkoitin get_string. 221 00:11:11,770 --> 00:11:16,200 Mikテ、 siis on se, ettテ、 minテ、 unohti tehdテ、 tテ、llテ、 kertaa? 222 00:11:16,200 --> 00:11:20,230 Mitテ、 puuttuu tテ、llテ、 kertaa? 223 00:11:20,230 --> 00:11:23,600 Minulla on # include, joten Olen pテ、テ、sy printf. 224 00:11:23,600 --> 00:11:26,090 >> Mutta mitテ、 minテ、 ole pテ、テ、sy vain vielテ、? 225 00:11:26,090 --> 00:11:29,420 No, aivan kuten viime kerralla, Minun tテ、ytyy kertoa kテ、テ、ntテ、jテ、 226 00:11:29,420 --> 00:11:31,691 Kalahtaa mitテ、 nテ、mテ、 toiminnot ovat. 227 00:11:31,691 --> 00:11:33,940 Get_string ei tule C. Ja erityisesti, se 228 00:11:33,940 --> 00:11:38,160 ei tulla header tiedosto,. 229 00:11:38,160 --> 00:11:40,770 Se sijaan tulee jotain henkilテカkunta kirjoitti, 230 00:11:40,770 --> 00:11:44,176 joka on eri tiedosto nimetテ、 mutta osuvasti nimetty. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> Joten yksinkertaisesti lisテ、テ、mテ、llテ、, ettテ、 yhdellテ、 rivillテ、 of code-- hae viimeksi 233 00:11:50,861 --> 00:11:53,610 ettテ、 kun Clang kulkee, se tulee katsomaan minun koodi ylhテ、テ、ltテ、 alas, 234 00:11:53,610 --> 00:11:54,193 vasemmalta oikealle. 235 00:11:54,193 --> 00:11:57,200 Se tulee huomata, oh, haluat. 236 00:11:57,200 --> 00:11:59,900 Anna minun mennテ、 ja huomaavat, missテ、 se on palvelimella, 237 00:11:59,900 --> 00:12:03,090 Kopioi ja liitテ、 se pテ、テ、asiallisesti, ylテ、osaan oman tiedoston 238 00:12:03,090 --> 00:12:06,820 jotta tテ、ssテ、 vaiheessa tarinan, rivi 1, loput ohjelman 239 00:12:06,820 --> 00:12:11,651 voi todellakin kテ、yttテ、テ、 mitテ、 tahansa toimintoja siinテ、 joukossa get_string. 240 00:12:11,651 --> 00:12:13,650 Joten aion sivuuttaa loput nテ、istテ、 virheistテ、, 241 00:12:13,650 --> 00:12:17,190 koska olen todellakin epテ、illテ、, ettテ、 vain ensimmテ、inen todella vテ、liテ、. 242 00:12:17,190 --> 00:12:20,780 Ja aion mennテ、 eteenpテ、in ja uusinta, tallennuksen jテ、lkeen minun arkistoida tehdテ、 buggy1. 243 00:12:20,780 --> 00:12:22,580 Ja voila, se teki tyテカtテ、. 244 00:12:22,580 --> 00:12:29,200 Ja jos en ./buggy1 ja kirjoita varten Esimerkiksi Zamyla, en nyt saa hei, 245 00:12:29,200 --> 00:12:32,000 Zamyla sijasta hei, maailma. 246 00:12:32,000 --> 00:12:32,550 >> Selvテ、. 247 00:12:32,550 --> 00:12:35,890 Joten takeaways tテ、テ、llテ、 sitten ovat, yksi, yrittテ、テ、 poimia niin paljon kuin voit 248 00:12:35,890 --> 00:12:39,140 alkaen virheilmoitukset yksin, etsii joitakin tunnistettavia sanoja. 249 00:12:39,140 --> 00:12:43,070 Esto, ettテ、 kテ、yttテ、vテ、t help50 per ongelma asettaa erittely. 250 00:12:43,070 --> 00:12:46,500 Mutta esto ettテ、 myテカs aina etsiテ、 ylテ、osassa virhe vain, vテ、hintテ、テ、n 251 00:12:46,500 --> 00:12:50,051 aluksi, mitテ、 tietoja se voisi todella tuottaa. 252 00:12:50,051 --> 00:12:52,300 Mutta nテ、yttテ、テ、 siltテ、 siellテ、 n vielテ、kin enemmテ、n toimintoja rakennettu 253 00:12:52,300 --> 00:12:55,030 osaksi CS50 Library auttaa te varhaisessa lukukausi 254 00:12:55,030 --> 00:12:57,580 ja varhaisessa vaiheessa ohjelmointi selvittテ、テ、, mitテ、 on vialla. 255 00:12:57,580 --> 00:12:59,840 Tehdテ、テ、npテ、 toinen esimerkki tテ、stテ、. 256 00:12:59,840 --> 00:13:04,350 Aion kutsua tテ、tテ、 buggy2, joka, taas aiotaan virheellinen ulos 257 00:13:04,350 --> 00:13:05,650 portin suunnittelun. 258 00:13:05,650 --> 00:13:09,980 >> Ja aion mennテ、 eteenpテ、in ja tehdテ、 # include. 259 00:13:09,980 --> 00:13:12,580 Ja sitten aion tehdテ、 int main (void). 260 00:13:12,580 --> 00:13:14,840 Ja sitten aion tehdテ、 silmukka. 261 00:13:14,840 --> 00:13:16,690 For (int i _ 0. 262 00:13:16,690 --> 00:13:18,750 i on pienempi tai yhtテ、 suuri kuin 10. 263 00:13:18,750 --> 00:13:24,260 i ++, ja sitten aaltosulkeita, aion tulostaa vain hashtagia symboli tテ、テ、llテ、 264 00:13:24,260 --> 00:13:25,920 ja uusi rivi merkki. 265 00:13:25,920 --> 00:13:29,220 >> Joten tahallisuus tテ、mテ、n Ohjelma on yksinkertaisesti 266 00:13:29,220 --> 00:13:33,150 kerrata 10 kertaa ja jokaisen iteraation 267 00:13:33,150 --> 00:13:35,260 Tテ、mテ、n silmukan kerta lテ、pi sykli, 268 00:13:35,260 --> 00:13:37,660 tulostaa hashtagia, hashtagia, hashtagia. 269 00:13:37,660 --> 00:13:40,480 Yksi per rivi, koska olen on uusi linja siellテ、. 270 00:13:40,480 --> 00:13:42,787 Ja muistuttaa, ettテ、 varten silmukka, kohti viime week-- 271 00:13:42,787 --> 00:13:44,620 ja saat enemmテ、n perehtynyt syntaksia 272 00:13:44,620 --> 00:13:47,170 kテ、yttテ、mテ、llテ、 sitテ、 kテ、ytテ、ntテカテ、 ennen long-- tテ、mテ、 antaa minulle 273 00:13:47,170 --> 00:13:49,740 muuttuja nimeltテ、 i ja asettaa sen 0. 274 00:13:49,740 --> 00:13:52,650 >> Tテ、mテ、 kasvattaa i pテ、テ、lle jokainen iteraatio 1. 275 00:13:52,650 --> 00:13:54,940 Joten i menee 1-2 ja 3 vastaan. 276 00:13:54,940 --> 00:13:57,690 Ja sitten tテ、stテ、 ehdosta keskimmテ、inen vテ、lillテ、 puolipisteet 277 00:13:57,690 --> 00:14:03,010 saa tarkastaa jokaisen iteraation tekemテ、テ、n Varmista, ettテ、 olemme edelleen kuuluvuusalueella. 278 00:14:03,010 --> 00:14:06,830 Joten haluan kerrata 10 kertaa, joten en on erテ、テ、nlainen hyvin intuitiivisesti juuri 279 00:14:06,830 --> 00:14:09,070 laittaa 10 minun ylテ、raja siellテ、. 280 00:14:09,070 --> 00:14:14,310 >> Ja kuitenkin, kun kテ、ytテ、n tテ、mテ、n jテ、lkeen kokoamisessa make buggy2-- 281 00:14:14,310 --> 00:14:15,440 ja se koota OK. 282 00:14:15,440 --> 00:14:17,980 Joten en ole syntaksivirhe tテ、llテ、 kertaa. 283 00:14:17,980 --> 00:14:20,940 Anna minun mennテ、 eteenpテ、in nyt ja ajaa buggy2, Enter. 284 00:14:20,940 --> 00:14:22,620 Nyt selaa ylテカspテ、in. 285 00:14:22,620 --> 00:14:24,890 Ja haluaisin lisテ、tテ、 koko ikkunan. 286 00:14:24,890 --> 00:14:33,720 >> Olen ilmeisesti on 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 Joten ei 11 hashtags, vaikka Olen selvテ、sti laittaa 10 sisテ、lle tテ、mテ、n silmukan. 288 00:14:38,891 --> 00:14:42,140 Nyt jotkut teistテ、 ehkテ、 nテ、hdテ、 heti mikテ、 virhe johtuu siitテ、, ettテ、 itse asiassa, tテ、mテ、 289 00:14:42,140 --> 00:14:43,720 ei ole kovin vaikea virhe tehdテ、. 290 00:14:43,720 --> 00:14:46,070 Mutta se on hyvin yleisesti teki hyvin varhain. 291 00:14:46,070 --> 00:14:49,820 >> Haluan huomauttaa kuitenkin, on, miten voisi minテ、 kuva tテ、stテ、? 292 00:14:49,820 --> 00:14:52,300 No, kテ、y ilmi, ettテ、 CS50 kirjasto tulee 293 00:14:52,300 --> 00:14:55,380 ei ainoastaan 窶銀€吉et_string ja get_int ja get_float ja muita toimintoja. 294 00:14:55,380 --> 00:14:59,980 Sen mukana tulee myテカs erityinen toiminto nimeltテ、テ、n eprintf, tai virhe printf. 295 00:14:59,980 --> 00:15:03,270 Ja se on olemassa ainoastaan 窶銀€逆ehdテ、 se hieman helpompaa 296 00:15:03,270 --> 00:15:06,310 kun virheenkorjaus koodi vain tulosta virheilmoitus ruudulla 297 00:15:06,310 --> 00:15:07,850 ja tietテ、テ、, mistテ、 se tuli. 298 00:15:07,850 --> 00:15:11,000 >> Niinpテ、 esimerkiksi yksi asia voisin tehdテ、 tテ、テ、llテ、 tテ、llテ、 toiminnolla on this-- 299 00:15:11,000 --> 00:15:20,230 eprintf, ja sitten aion mennテ、 eteenpテ、in ja sanoa i on nyt% i, kenoviiva n. 300 00:15:20,230 --> 00:15:22,330 Ja aion kytkeテ、 arvon i. 301 00:15:22,330 --> 00:15:25,400 Ja ylテカs, koska tテ、mテ、 on CS50 Library, 302 00:15:25,400 --> 00:15:27,580 Aion mennテ、 eteenpテ、in ja sisテ、ltテ、vテ、t 303 00:15:27,580 --> 00:15:29,169 joten minun tテ、ytyy kテ、yttテ、テ、 tテ、tテ、 toimintoa. 304 00:15:29,169 --> 00:15:31,460 Mutta Tarkastellaan mitテ、 linjaa 9 on tarkoitus olla tekemテ、ssテ、. 305 00:15:31,460 --> 00:15:32,670 Aion poistaa tテ、mテ、n lopulta. 306 00:15:32,670 --> 00:15:34,670 Tテ、llテ、 ei ole mitテ、テ、n tekemistテ、 minun yleisenテ、 tavoitteena. 307 00:15:34,670 --> 00:15:39,090 Mutta eprintf, virhe printf, on vain tarkoitus antaa minulle joitakin diagnostisia tietoja. 308 00:15:39,090 --> 00:15:42,460 Kun olen suorittanut minun ohjelma, haluan nテ、hdテ、 tテ、mテ、n nテ、ytテカn vテ、liaikaisesti 309 00:15:42,460 --> 00:15:44,550 yhtテ、 hyvin ymmテ、rtテ、テ、 mitテ、 tapahtuu. 310 00:15:44,550 --> 00:15:47,330 >> Ja, todellakin, kullakin iterointia here linjan 9 311 00:15:47,330 --> 00:15:49,260 Haluan nテ、hdテ、, mikテ、 on arvo i? 312 00:15:49,260 --> 00:15:50,290 Mikテ、 on arvo i? 313 00:15:50,290 --> 00:15:51,280 Mikテ、 on arvo i? 314 00:15:51,280 --> 00:15:55,650 Ja toivottavasti minun pitテ、isi vain nテ、hdテ、, ettテ、 viestin, myテカs 10 kertaa. 315 00:15:55,650 --> 00:15:57,780 >> Joten anna minun mennテ、 eteenpテ、in ja kテ、テ、ntテ、テ、 minun ohjelma, 316 00:15:57,780 --> 00:15:59,905 koska minun tテ、ytyy tehdテ、 tahansa I tehdテ、 muutoksia. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 Ja now-- OK. 319 00:16:03,640 --> 00:16:04,820 Siellテ、 on paljon enemmテ、n tekeillテ、. 320 00:16:04,820 --> 00:16:07,610 Haluan siis vierittテ、テ、 ylテカspテ、in vielテ、 suurempi ikkuna. 321 00:16:07,610 --> 00:16:10,190 >> Ja nテ、et, ettテ、 jokainen hashtags on edelleen tulostuksen. 322 00:16:10,190 --> 00:16:15,270 Mutta jokaisen niistテ、 on nyt tテ、mテ、 diagnostiikkalテ、htテカ muotoiltu seuraavasti. 323 00:16:15,270 --> 00:16:17,960 Nimi minun ohjelma tテ、ssテ、 buggy2. 324 00:16:17,960 --> 00:16:20,432 Nimi tiedosto on buggy2.c. 325 00:16:20,432 --> 00:16:24,080 Linjan numero, josta tテ、mテ、 painettiin on viiva 9. 326 00:16:24,080 --> 00:16:27,500 Ja sitten oikealla joka on virheilmoituksen, Odotan. 327 00:16:27,500 --> 00:16:30,701 >> Ja mitテ、 mukavaa tテ、stテ、 on, ettテ、 nyt en tarvitse vテ、lttテ、mテ、ttテ、 laskea 328 00:16:30,701 --> 00:16:32,200 pテ、テ、hテ、ni mitテ、 minun ohjelma tekee. 329 00:16:32,200 --> 00:16:34,240 Nテ、en, ettテ、 on ensimmテ、inen iterointi i on 0, 330 00:16:34,240 --> 00:16:39,420 Sitten 1, sitten 2, sitten 3 ja sitten 4, niin 5, sitten 6, sitten 7, niin 8, sitten 9, sitten 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 Joten odota hetki. 333 00:16:42,050 --> 00:16:43,740 Mitテ、 tテ、テ、llテ、 tapahtuu? 334 00:16:43,740 --> 00:16:48,190 Olen edelleen nテ、yttテ、vテ、t laskenta aiotulla jopa 10. 335 00:16:48,190 --> 00:16:50,550 >> Mutta mistテ、 aloittaa? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 337 00:16:53,240 --> 00:16:58,040 Joten 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- 11. sormi 338 00:16:58,040 --> 00:16:59,990 on osoitus ongelmasta. 339 00:16:59,990 --> 00:17:02,850 Olen ilmeisesti lasketa virheellisesti minun silmukka. 340 00:17:02,850 --> 00:17:06,599 Eikテ、 mennテ、 10 toistojen, Olen alkaen 0, 341 00:17:06,599 --> 00:17:09,550 Olen pテ、テ、ttyy ja kautta 10. 342 00:17:09,550 --> 00:17:12,030 Mutta koska, kuten tietokone, Olen alkanut laskenta 0, 343 00:17:12,030 --> 00:17:15,250 Olisin laskemalla ylテカs sen, mutta ei lテ、pi, 10. 344 00:17:15,250 --> 00:17:18,510 >> Ja niin korjata, I lopulta toteutunut tテ、テ、llテ、, on yksi kaksi asiaa. 345 00:17:18,510 --> 00:17:22,430 Voisin hyvin yksinkertaisesti sanoa laskea jopa alle 10. 346 00:17:22,430 --> 00:17:27,260 Joten 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, joka on todellakin oikea, 347 00:17:27,260 --> 00:17:28,900 vaikka se kuulostaa vテ、hテ、n vテ、テ、rin. 348 00:17:28,900 --> 00:17:35,070 Tai sitten voisi tehdテ、 pienempi tai yhtテ、 suuri 9, niin kauan kuin minテ、 alkavat 0. 349 00:17:35,070 --> 00:17:40,056 Tai jos todella eivテ、t pidテ、 siitテ、, et laskea lテ、pi 10 mutta alkavat 1. 350 00:17:40,056 --> 00:17:41,680 Mutta jテ、lleen kerran, tテ、mテ、 vain ei ole kovin yleistテ、. 351 00:17:41,680 --> 00:17:43,977 In programming-- vaikkakin ei niinkテ、テ、n Scratch-- 352 00:17:43,977 --> 00:17:45,810 mutta ohjelmointi C ja muita kieliテ、, 353 00:17:45,810 --> 00:17:47,670 kuten JavaScript ja Python ja muut, se on 354 00:17:47,670 --> 00:17:49,880 vain hyvin yleinen keskustelumme binary 355 00:17:49,880 --> 00:17:53,450 vain alkaa laskea tテ、llテ、 pienin mテ、テ、rテ、 voit, joka on 0. 356 00:17:53,450 --> 00:17:53,950 Selvテ、. 357 00:17:53,950 --> 00:17:55,160 Niin, ettテ、 eprintf. 358 00:17:55,160 --> 00:17:58,600 Ja vielテ、, nyt kun olen tajunnut minun ongelma, ja aion palata 0 359 00:17:58,600 --> 00:18:01,470 kautta alle 10, aion mennテ、 ja poistaa eprintf. 360 00:18:01,470 --> 00:18:04,580 >> Sen ei pitテ、isi olla siellテ、, kun alus minun koodi tai lテ、hetテ、 oma koodi 361 00:18:04,580 --> 00:18:05,800 tai nテ、yttテ、テ、 sitテ、 kenellekテ、テ、n muulle. 362 00:18:05,800 --> 00:18:07,980 Se on oikeastaan 窶銀€久ain tarkoitti voidaan kテ、yttテ、テ、 vテ、liaikaisesti. 363 00:18:07,980 --> 00:18:11,650 Mutta nyt olen korjannut Erityisenテ、 ongelmana samoin. 364 00:18:11,650 --> 00:18:16,780 >> No, tehdテ、テ、n yksi esimerkki tテ、stテ、 ettテ、 aion lietsoa seuraavasti. 365 00:18:16,780 --> 00:18:22,850 Aion mennテ、 eteenpテ、in ja #sisテ、ltテ、テ、 . $ 50 366 00:18:22,850 --> 00:18:25,580 Ja aion mennテ、 eteenpテ、in ja # include. 367 00:18:25,580 --> 00:18:29,030 >> Ja aion sテ、テ、stテ、テ、 tテ、mテ、 kuva buggy3.c. 368 00:18:29,030 --> 00:18:31,740 Ja aion mennテ、 eteenpテ、in ja julistaa int main (void). 369 00:18:31,740 --> 00:18:34,186 Ja sitten sisテ、llテ、 siellテ、 Aion tehdテ、 int i _ - 370 00:18:34,186 --> 00:18:36,435 Haluan toteuttaa ohjelman kanssa get_negative_int. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 Tテ、mテ、 ei ole funktio, joka on olemassa vielテ、. 373 00:18:40,770 --> 00:18:42,870 Joten aiomme toteuttaa se vain hetken. 374 00:18:42,870 --> 00:18:45,541 Mutta me tulemme nテ、kemテ、テ、n miksi se viallisista ensin omille. 375 00:18:45,541 --> 00:18:47,290 Ja kun olen saanut int kテ、yttテ、jテ、ltテ、, 376 00:18:47,290 --> 00:18:53,365 Olen juuri menossa painoon% i on negatiivinen kokonaisluku, kenoviiva, n, pilkku, i. 377 00:18:53,365 --> 00:18:55,240 Toisin sanoen, kaikki I haluavat ohjelman tehdテ、 378 00:18:55,240 --> 00:18:58,000 on saada negatiivinen int alkaen kテ、yttテ、jテ、 ja sitten tulostaa 379 00:18:58,000 --> 00:18:59,980 ettテ、 tテ、llainen ja tテ、llainen on negatiivinen int. 380 00:18:59,980 --> 00:19:02,080 >> Nyt minun tテ、ytyy toteuttaa tテ、tテ、 toimintoa. 381 00:19:02,080 --> 00:19:05,740 Joten myテカhemmin minun tiedoston, aion mennテ、 eteenpテ、in ja julistaa toiminto nimeltテ、テ、n 382 00:19:05,740 --> 00:19:10,670 get_negative_int (void) - ja me palata mitテ、 tテ、mテ、 linja tarkoittaa jテ、lleen 383 00:19:10,670 --> 00:19:18,790 joka moment-- int n; do-- do following-- printf n on :. 384 00:19:18,790 --> 00:19:26,210 Ja sitten aion tehdテ、 n - get_int, ja tehdテ、 tテ、mテ、, kun n on suurempi kuin 0. 385 00:19:26,210 --> 00:19:28,310 Ja palata sitten n ;. 386 00:19:28,310 --> 00:19:31,730 >> Joten siellテ、 on paljon meneillテ、テ、n Tテ、ssテ、 mutta mikテ、テ、n jota emme 387 00:19:31,730 --> 00:19:33,710 katsokaa viime viikolla, ainakin hetkeksi. 388 00:19:33,710 --> 00:19:36,980 Joten rivillテ、 10 tテ、テ、llテ、 olen julistettu toiminto nimeltテ、テ、n get_negative_int, 389 00:19:36,980 --> 00:19:39,620 ja Laitoin (void), vuonna sulkuja, syy on tテ、hテ、n 390 00:19:39,620 --> 00:19:40,950 ei ota tulo. 391 00:19:40,950 --> 00:19:42,910 En ohimennen mitテ、テ、n Tテ、mテ、n toiminnon. 392 00:19:42,910 --> 00:19:44,690 Olen vain saada jotain takaisin siitテ、. 393 00:19:44,690 --> 00:19:47,270 >> Ja mitテ、 olen haluavat saada takaisin on kokonaisluku. 394 00:19:47,270 --> 00:19:50,040 Ei ole tietoa tyyppi C kutsutaan negative_int. 395 00:19:50,040 --> 00:19:52,880 Se on vain int, joten se menee olla meille varmista 396 00:19:52,880 --> 00:19:55,340 ettテ、 arvo, joka on itse asiassa Palautetut on paitsi int 397 00:19:55,340 --> 00:19:56,380 mutta on myテカs negatiivinen. 398 00:19:56,380 --> 00:20:02,150 >> On line 12 Olen julistaa muuttuja nimeltテ、テ、n n ja tehden tyyppiテ、 int. 399 00:20:02,150 --> 00:20:07,500 Ja sitten linjan 13 kautta 18 Olen tekemテ、ssテ、 jotain vaikka jokin on totta. 400 00:20:07,500 --> 00:20:11,040 Aion eteenpテ、in ja tulostus n on, paksusuoli, ja sitten tilaan, 401 00:20:11,040 --> 00:20:12,800 kuten nopea kテ、yttテ、jテ、lle. 402 00:20:12,800 --> 00:20:16,410 >> Olen silloin kutsuvan get_int ja tallentamiseen sen niin sanottu palautusarvo 403 00:20:16,410 --> 00:20:18,130 ettテ、 muuttujan n. 404 00:20:18,130 --> 00:20:22,600 Mutta aion pitテ、テ、 tehdテ、 Tテ、mテ、n kun n on suurempi kuin 0. 405 00:20:22,600 --> 00:20:27,960 Toisin sanoen, jos kテ、yttテ、jテ、 antaa minulle int ja ettテ、 mテ、テ、rテ、 on suurempi kuin 0, 406 00:20:27,960 --> 00:20:31,180 ergo, positiivinen, aion vain pitテ、テ、 reprompting kテ、yttテ、jテ、lle, 407 00:20:31,180 --> 00:20:37,160 pitテ、テ、 reprompting, pakottamalla yhteistyテカtテ、 ja antaa minulle negatiivinen int. 408 00:20:37,160 --> 00:20:41,640 >> Ja kun n on todella negative-- Oletetaan kテ、yttテ、jテ、 lopulta tyyppejテ、 -50, 409 00:20:41,640 --> 00:20:46,710 niin tテ、mテ、 taas silmukka ei ole enテ、テ、 totta koska -50 ei ole suurempi kuin 0. 410 00:20:46,710 --> 00:20:51,140 Joten me murtautua ulos ettテ、 loop loogisesti ja palauttaa n. 411 00:20:51,140 --> 00:20:53,520 >> Mutta on olemassa yksi muu asia minun tテ、ytyy tehdテ、. 412 00:20:53,520 --> 00:20:56,190 Ja voin vain tehdテ、 tテ、mテ、n kopioimalla ja liittテ、mテ、llテ、 413 00:20:56,190 --> 00:20:58,540 yhtテ、 riviテ、 koodia ylテ、reunassa tiedoston. 414 00:20:58,540 --> 00:21:01,630 Minun tテ、ytyy opettaa Clang, tai lupaus kalahtaa, 415 00:21:01,630 --> 00:21:04,630 nimenomaisesti, ettテ、 minテ、, todellakin, mene ja toteuttaa 416 00:21:04,630 --> 00:21:06,020 Tテ、mテ、n toiminnon get_negative_int. 417 00:21:06,020 --> 00:21:07,674 Voisi vain pienempi tiedosto. 418 00:21:07,674 --> 00:21:09,840 Jテ、lleen muistaa, ettテ、 Clang lukee asioita ylhテ、テ、ltテ、 alas, 419 00:21:09,840 --> 00:21:12,330 vasemmalta oikealle, joten et voi soittaa toiminto, jos Clang 420 00:21:12,330 --> 00:21:15,330 ei tiedテ、 sitテ、 tulee olla olemassa. 421 00:21:15,330 --> 00:21:18,430 >> Nyt valitettavasti tテ、tテ、 ohjelmaa, kuten jotkut teistテ、 ehkテ、 huomannut, 422 00:21:18,430 --> 00:21:19,590 on jo buginen. 423 00:21:19,590 --> 00:21:21,400 Anna minun mennテ、 eteenpテ、in ja tehdテ、 buggy3. 424 00:21:21,400 --> 00:21:26,904 Se kokoaa, joten minun ongelmani nyt ei ole syntaksivirhe, kuten sanallisesti virhe, 425 00:21:26,904 --> 00:21:29,570 se todella tulee olemaan looginen virhe, ettテ、 olen tarkoituksella 426 00:21:29,570 --> 00:21:32,450 teki mahdollisuutena selata mitテ、 tapahtuu. 427 00:21:32,450 --> 00:21:35,540 >> Aion mennテ、 eteenpテ、in nyt ja ajaa buggy3. 428 00:21:35,540 --> 00:21:37,490 Ja aion mennテ、 eteenpテ、in ja tee yhteistyテカtテ、. 429 00:21:37,490 --> 00:21:39,494 Aion antaa sen numero 1. 430 00:21:39,494 --> 00:21:41,410 Se ei pidテ、 siitテ、, niin se kehotukset minua uudelleen. 431 00:21:41,410 --> 00:21:42,147 >> Miten noin 2? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 Mikテ、テ、n nテ、istテ、 toimivat. 435 00:21:44,740 --> 00:21:46,890 Miten noin -50? 436 00:21:46,890 --> 00:21:48,560 Ja ohjelma nテ、yttテ、テ、 toimivan. 437 00:21:48,560 --> 00:21:49,970 >> Yritテ、n vielテ、 kerran. 438 00:21:49,970 --> 00:21:53,400 Yritテ、n -1, tuntuu toimivan. 439 00:21:53,400 --> 00:21:56,380 Yritテ、n -2, tuntuu toimivan. 440 00:21:56,380 --> 00:21:59,640 Yritテ、n 0. 441 00:21:59,640 --> 00:22:01,684 Huh, se on virheellinen. 442 00:22:01,684 --> 00:22:03,350 Nyt olemme nyt hieman pikkutarkka tテ、テ、llテ、. 443 00:22:03,350 --> 00:22:07,090 Mutta se on todellakin niin, ettテ、 0 ei ole myテカnteinen eikテ、 kielteinen. 444 00:22:07,090 --> 00:22:11,150 Ja niin, ettテ、 minun ohjelma on sanomalla, ettテ、 0 on negatiivinen kokonaisluku, 445 00:22:11,150 --> 00:22:12,820 se ei ole teknisesti oikein. 446 00:22:12,820 --> 00:22:15,180 >> Nyt miksi se tekee nテ、in? 447 00:22:15,180 --> 00:22:16,270 No, se voisi olla ilmeinen. 448 00:22:16,270 --> 00:22:18,110 Ja, todellakin, ohjelma on tarkoitus olla melko yksinkertainen 449 00:22:18,110 --> 00:22:19,670 joten meillテ、 on jotain tutkia. 450 00:22:19,670 --> 00:22:25,870 >> Mutta perehdymme kolmannen virheenkorjaus tekniikkaa tテ、ssテ、 kutsutaan debug50. 451 00:22:25,870 --> 00:22:27,750 Eli tテ、mテ、 on ohjelma ettテ、 olemme juuri luonut 452 00:22:27,750 --> 00:22:30,770 tテ、nテ、 vuonna nimeltテ、テ、n debug50 jonka avulla voit 453 00:22:30,770 --> 00:22:34,130 kテ、yttテ、テ、 mitテ、 kutsutaan sisテ、テ、nrakennettu graafinen debuggeri CS50 IDE. 454 00:22:34,130 --> 00:22:38,400 Ja debugger on vain ohjelma, joka yleensテ、 voit ajaa ohjelmaa 455 00:22:38,400 --> 00:22:44,050 mutta askel askeleelta askeleelta, linja jonka rivi riviltテ、, 窶銀€逆auot, tテカnテ、isi 456 00:22:44,050 --> 00:22:47,626 noin, katsomalla muuttujia, jotta ohjelma ei ole vain puhaltaa ohi 457 00:22:47,626 --> 00:22:49,750 ja nopeasti tulostaa jotain tai ei tulosta jotain. 458 00:22:49,750 --> 00:22:53,250 Se antaa sinulle mahdollisuuden, at ihmisen nopeus, olla vuorovaikutuksessa sen kanssa. 459 00:22:53,250 --> 00:22:55,470 >> Ja tehdテ、 tテ、mテ、n, sinun yksinkertaisesti toimi seuraavasti. 460 00:22:55,470 --> 00:22:58,479 Sen jテ、lkeen koota koodin, joka Olen jo tehnyt, buggy3, 461 00:22:58,479 --> 00:23:00,020 mennテ、 eteenpテ、in ja ajaa debug50 ./buggy. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 Niin paljon kuin help50 on juokset help50 ja sitten komento, 464 00:23:06,760 --> 00:23:10,120 debug50 on juokset debug50 ja Sitten nimi komennon. 465 00:23:10,120 --> 00:23:14,440 >> Nyt katsoa mitテ、 tapahtuu tietokoneen nテ、ytテカllテ、, oikealla puolella erityisesti. 466 00:23:14,440 --> 00:23:19,400 Kun osuin Run, kaikki テ、killinen tテ、mテ、 oikeanpuoleinen paneeli 467 00:23:19,400 --> 00:23:20,419 avaa nテ、ytテカlle. 468 00:23:20,419 --> 00:23:22,210 Ja siellテ、 on paljon menossa on ensi silmテ、yksellテ、. 469 00:23:22,210 --> 00:23:25,110 Mutta ei ole liian paljon murehtia vielテ、. 470 00:23:25,110 --> 00:23:28,570 >> Tテ、mテ、 osoittaa minulle kaiken joka on meneillテ、テ、n sisテ、llテ、 minun ohjelman 471 00:23:28,570 --> 00:23:31,130 nyt ja kautta nテ、mテ、 painikkeet ylテカs sitten 472 00:23:31,130 --> 00:23:35,910 ettテ、 saan selata minun koodi lopulta askel askel askeleelta. 473 00:23:35,910 --> 00:23:37,140 Mutta ei aivan vielテ、. 474 00:23:37,140 --> 00:23:38,060 Huomaa, mitテ、 tapahtuu. 475 00:23:38,060 --> 00:23:40,600 Minun pテ、テ、teikkuna Minua kehotetaan n. 476 00:23:40,600 --> 00:23:44,560 Ja aion mennテ、 eteenpテ、in ja yhteistyテカhテカn tテ、llテ、 kertaa ja kirjoita -1. 477 00:23:44,560 --> 00:23:48,770 Ja vaikkakin hieman arvoituksellisesti, -1 on negatiivinen kokonaisluku, kuten odotettua. 478 00:23:48,770 --> 00:23:52,020 >> Ja sitten lapsi poistui tila 0 GDBserver poistumista. 479 00:23:52,020 --> 00:23:55,180 GDB, GNU Debugger, on nimi perustana olevien ohjelmistojen 480 00:23:55,180 --> 00:23:56,620 joka toteuttaa tテ、mテ、n debugger. 481 00:23:56,620 --> 00:24:00,500 Mutta kaikki tテ、mテ、 todella tarkoittaa, debuggeri meni pois, koska minun ohjelma lopettaa 482 00:24:00,500 --> 00:24:01,710 ja kaikki oli hyvin. 483 00:24:01,710 --> 00:24:06,020 Jos haluan todella testaan 窶銀€黍hjelma, Minun tテ、ytyy ennaltaehkテ、isevテ、sti kertoa debug50, 484 00:24:06,020 --> 00:24:08,920 minne haluan aloittaa askelletaan lテ、pi koodia? 485 00:24:08,920 --> 00:24:11,750 >> Ja ehkテ、 yksinkertaisin tapa tehdテ、 se on seuraava. 486 00:24:11,750 --> 00:24:15,300 Jos minテ、 viemテ、llテ、 hiiri kouru minun toimittaja tテ、テ、llテ、, 487 00:24:15,300 --> 00:24:19,090 joten oikeastaan 窶銀€久ain sivupalkissa tテ、テ、llテ、, vasemmalle linjan numero, 488 00:24:19,090 --> 00:24:21,870 Huomaa ettテ、 jos minテ、 klikkaa kerran, Laitoin pieni punainen piste. 489 00:24:21,870 --> 00:24:24,460 Ja ettテ、 pieni punainen piste, kuten stop-merkin, tarkoittaa, hei, 490 00:24:24,460 --> 00:24:29,430 debug50, tauko suorittamisen minun koodi tuolla kun olen ohjelman suorittamiseen. 491 00:24:29,430 --> 00:24:30,260 >> Joten tehdテ、テ、n se. 492 00:24:30,260 --> 00:24:37,340 Anna minun mennテ、 eteenpテ、in ja ajaa minun ohjelma jテ、lleen debug50 ./buggy3, Enter. 493 00:24:37,340 --> 00:24:40,110 Ja nyt, ilmoitusta, jotain eri on tapahtunut. 494 00:24:40,110 --> 00:24:42,440 En sitテ、 pyydettテ、essテ、 vielテ、 omassa pテ、テ、teikkunaan 495 00:24:42,440 --> 00:24:45,430 mitテ、テ、n, koska en ole saanut siellテ、 vielテ、 omassa ohjelmassa. 496 00:24:45,430 --> 00:24:47,950 Huomaa, ettテ、 rivillテ、 8 joka on nyt korostettu, 497 00:24:47,950 --> 00:24:51,720 ja siellテ、 on pieni nuoli vasen sanonta, olet keskeytetty tテ、テ、llテ、. 498 00:24:51,720 --> 00:24:55,030 Koodirivin, linja 8, ei ole vielテ、 toteutettu. 499 00:24:55,030 --> 00:24:58,940 >> Ja mikテ、 utelias, jos katson tテ、nne oikealla puolella, 500 00:24:58,940 --> 00:25:03,530 huomaa, ettテ、 i on paikallinen muuttuja, paikallinen siinテ、 mielessテ、 501 00:25:03,530 --> 00:25:05,450 ettテ、 se on sisテ、llテ、 olevan toiminnon. 502 00:25:05,450 --> 00:25:08,920 Ja sen arvo, ilmeisesti oletuksena, ja tavallaan sopivasti, on 0. 503 00:25:08,920 --> 00:25:10,260 Mutta en kirjoita 0. 504 00:25:10,260 --> 00:25:13,410 Se vain sattuu olemaan sen oletusarvo tテ、llテ、 hetkellテ、. 505 00:25:13,410 --> 00:25:15,490 >> Joten anna minun mennテ、 eteenpテ、in ja tehdテ、 tテ、tテ、 nyt. 506 00:25:15,490 --> 00:25:18,680 Anna minun mennテ、 eteenpテ、in ja ylテ、kulmassa tテ、テ、llテ、, olen 507 00:25:18,680 --> 00:25:20,970 menossa eteenpテ、in ja valitse tテ、mテ、 ensimmテ、inen kuvake, joka 508 00:25:20,970 --> 00:25:25,360 tarkoittaa askel yli, mikテ、 tarkoittaa, テ、lテ、 ohita se kuitenkin askel yli koodirivin, 509 00:25:25,360 --> 00:25:27,770 suorittamalla se matkan varrella. 510 00:25:27,770 --> 00:25:30,710 >> Ja nyt, huomaa, minun nopea juuri muuttunut. 511 00:25:30,710 --> 00:25:31,380 Miksi niin? 512 00:25:31,380 --> 00:25:33,639 Olen kertonut debug50, suorita koodirivin. 513 00:25:33,639 --> 00:25:34,930 Mitテ、 tテ、mテ、 rivi koodia tehdテ、? 514 00:25:34,930 --> 00:25:35,960 Kysyy minua int. 515 00:25:35,960 --> 00:25:36,460 OK. 516 00:25:36,460 --> 00:25:37,400 Saanen yhteistyテカtテ、. 517 00:25:37,400 --> 00:25:41,340 Anna minun mennテ、 eteenpテ、in nyt ja kirjoita -1, Enter. 518 00:25:41,340 --> 00:25:42,920 Ja nyt huomaa, mikテ、 on muuttunut. 519 00:25:42,920 --> 00:25:46,060 Oikealla puolella, oman paikallisen muuttujan i 520 00:25:46,060 --> 00:25:48,200 arvellaan olevan noin -1 nyt. 521 00:25:48,200 --> 00:25:49,810 Ja se on edelleen tyyppiテ、 int. 522 00:25:49,810 --> 00:25:53,102 >> Ja ilmoitus, myテカs minun niin kutsuttu soittaa pino, missテ、 minテ、 keskeyttテ、テ、? 523 00:25:53,102 --> 00:25:54,810 Me puhua enemmテ、n tテ、tテ、 tulevaisuudessa. 524 00:25:54,810 --> 00:25:58,620 Mutta kutsupino juuri viittaa mihin toiminnot ovat tテ、llテ、 hetkellテ、 liikkeessテ、. 525 00:25:58,620 --> 00:26:00,040 Juuri nyt se on vain tテ、rkeimmテ、t. 526 00:26:00,040 --> 00:26:03,590 Ja juuri nyt ainoa paikallinen muuttuja on i, jonka arvo on 1. 527 00:26:03,590 --> 00:26:09,840 >> Ja kun lopulta askel yli tテ、mテ、n linjan tテ、テ、llテ、, ettテ、 sama kuvake oikeassa ylテ、kulmassa, 528 00:26:09,840 --> 00:26:11,410 -1 On negatiivinen kokonaisluku. 529 00:26:11,410 --> 00:26:13,580 Nyt se on pysテ、htyen yli ettテ、 kihara ahdin. 530 00:26:13,580 --> 00:26:14,740 Annetaan sen tehdテ、 sen asian. 531 00:26:14,740 --> 00:26:17,300 Astun yli ettテ、 linja, ja voila. 532 00:26:17,300 --> 00:26:20,240 >> Joten kaikki, ettテ、 hirveテ、n valaiseva vielテ、, 533 00:26:20,240 --> 00:26:23,550 mutta se ei anna minun keskeyttテ、テ、 ja miettiテ、 loogisesti 534 00:26:23,550 --> 00:26:24,870 mitテ、 tテ、mテ、 ohjelma tekee. 535 00:26:24,870 --> 00:26:26,890 Mutta se ei ollut virheellinen asia. 536 00:26:26,890 --> 00:26:28,510 Tehdテ、テ、n tテ、mテ、 uudelleen seuraavasti. 537 00:26:28,510 --> 00:26:31,340 >> Aion lテ、hteテ、 ettテ、 keskeytyskohta rivillテ、 8 kanssa red dot. 538 00:26:31,340 --> 00:26:32,830 Aion uusintana debug50. 539 00:26:32,830 --> 00:26:34,400 Se automaattisesti keskeytetty tテ、テ、llテ、. 540 00:26:34,400 --> 00:26:37,660 Mutta tテ、llテ、 kertaa sen sijaan, tehostamalla tテ、mテ、n rajan ylテ、puolella, 541 00:26:37,660 --> 00:26:42,290 anna minun itse mennテ、 sisテ、lle get_negative_int ja selvittテ、テ、, 542 00:26:42,290 --> 00:26:45,530 miksi se hyvテ、ksyテ、 0 kelvolliseksi vastaus? 543 00:26:45,530 --> 00:26:47,990 >> Joten sen sijaan klikkaamalla Step Over. 544 00:26:47,990 --> 00:26:50,630 Aion mennテ、 eteenpテ、in ja valitse Step Into. 545 00:26:50,630 --> 00:26:54,030 Ja huomaa, ettテ、 linja 8, joka on nyt korostettu nyt yhtテ、kkiテ、 546 00:26:54,030 --> 00:26:56,900 tulee linja 17. 547 00:26:56,900 --> 00:26:59,947 >> Nyt, se ei ole niin debugger on ohitettu linjat 14 ja 15 ja 16. 548 00:26:59,947 --> 00:27:01,780 Se on vain ei ole mitテ、テ、n nテ、yttテ、mテ、テ、n siellテ、. 549 00:27:01,780 --> 00:27:04,050 Ne ovat vain julistaa muuttujia, Ja sitten on sana Do 550 00:27:04,050 --> 00:27:05,390 ja sitten avoin kihara ahdin. 551 00:27:05,390 --> 00:27:09,227 Ainoa toimiva linja, joka on mehukas todella on tテ、mテ、 yksi tテ、テ、llテ、, 17. 552 00:27:09,227 --> 00:27:11,060 Ja siellテ、 olemme keskeytetty automaattisesti. 553 00:27:11,060 --> 00:27:13,870 >> Niin printf ( "n.is:") ;, niin joka ei ole vielテ、 tapahtunut. 554 00:27:13,870 --> 00:27:18,250 Joten mene eteenpテ、in ja valitse Step Over. 555 00:27:18,250 --> 00:27:20,326 Nyt nopea, todellakin, muutettu ( "n on:"). 556 00:27:20,326 --> 00:27:22,450 Nyt get_int, en ole menossa vaivata astumassa, 557 00:27:22,450 --> 00:27:24,750 koska toiminta oli tekemテ、t CS50 kirjastossa. 558 00:27:24,750 --> 00:27:25,750 Se on oletettavasti oikein. 559 00:27:25,750 --> 00:27:28,440 >> Joten aion mennテ、 eteenpテ、in ja tavallaan yhteistyテカtテ、 antamalla sille 560 00:27:28,440 --> 00:27:30,590 int, mutta ei negatiivinen int. 561 00:27:30,590 --> 00:27:32,870 Joten anna minun mennテ、 eteenpテ、in ja osui 0. 562 00:27:32,870 --> 00:27:39,460 Ja nyt, mitテ、 tapahtuu tテ、テ、llテ、 kun saan alas linja 21? 563 00:27:39,460 --> 00:27:40,890 En ole iteroidaan uudelleen. 564 00:27:40,890 --> 00:27:43,320 En nテ、ytテ、 olevan jumissa, ettテ、 silmukka. 565 00:27:43,320 --> 00:27:45,990 Toisin sanoen, tテ、mテ、 keltainen bar ei jatka ympテ、rillテ、, 566 00:27:45,990 --> 00:27:47,130 ja ympテ、ri ja ympテ、ri. 567 00:27:47,130 --> 00:27:48,340 >> Nyt Miksi? 568 00:27:48,340 --> 00:27:49,920 No, n, mikテ、 on n juuri nyt? 569 00:27:49,920 --> 00:27:53,280 Voin katsoa paikallisen muuttujat virheenkorjauksen. 570 00:27:53,280 --> 00:27:53,816 n on 0. 571 00:27:53,816 --> 00:27:55,190 Selvテ、, mikテ、 oli tilani? 572 00:27:55,190 --> 00:27:58,700 >> 20-- linja 20 on hyvin, 0 on suurempi kuin 0. 573 00:27:58,700 --> 00:27:59,500 Tuo ei ole totta. 574 00:27:59,500 --> 00:28:01,020 0 ei ole suurempi kuin 0. 575 00:28:01,020 --> 00:28:02,820 Ja niin minテ、 puhkesi tテ、stテ、. 576 00:28:02,820 --> 00:28:06,370 >> Ja joten siksi linjalla 21, jos olen itse edelleen, 577 00:28:06,370 --> 00:28:10,370 Aion palata 0, jopa vaikka en olisi pitテ、nyt hylテ、tテ、 0 578 00:28:10,370 --> 00:28:12,484 sillテ、 ei oikeastaan 窶銀€黍le negatiivisia. 579 00:28:12,484 --> 00:28:14,650 Joten nyt, en oikein edes vテ、litテ、 virheenkorjauksen. 580 00:28:14,650 --> 00:28:16,900 Sain sen, en tarvitse tietテ、vテ、t, mitテ、 enemmテ、n on tekeillテ、. 581 00:28:16,900 --> 00:28:19,233 >> Joten aion mennテ、 eteenpテ、in ja klikkaa Play-painiketta, 582 00:28:19,233 --> 00:28:20,240 ja olkoon tテ、mテ、 viimeistely ylテカs. 583 00:28:20,240 --> 00:28:23,440 Nyt olen ymmテ、rtテ、nyt, ettテ、 minun bug on ilmeisesti linjalla 20. 584 00:28:23,440 --> 00:28:25,160 Se on minun looginen virhe. 585 00:28:25,160 --> 00:28:28,100 >> Ja niin mitテ、 haluanko tehdテ、 muuttaa tテ、tテ、? 586 00:28:28,100 --> 00:28:32,500 Jos ongelma on ettテ、 en ole pyydystテ、miseen 0, se on vain looginen virhe. 587 00:28:32,500 --> 00:28:35,910 Ja voin sanoa, kun n on suurempi tai yhtテ、 suuri kuin 0, 588 00:28:35,910 --> 00:28:38,330 pitテ、テ、 kehottaa kテ、yttテ、jテ、テ、 uudestaan 窶銀€桔a uudestaan. 589 00:28:38,330 --> 00:28:41,050 >> Joten, jテ、lleen, yksinkertainen virhe, ehkテ、 vaikka esiin, kun nテ、it minut 590 00:28:41,050 --> 00:28:42,410 kirjoittaa se vain muutama minuutti sitten. 591 00:28:42,410 --> 00:28:44,570 Mutta takeaway tテ、テ、llテ、 on, ettテ、 debug 50, 592 00:28:44,570 --> 00:28:46,850 ja virheenkorjaus ohjelmisto yleisemmin 593 00:28:46,850 --> 00:28:51,370 olet tテ、mテ、n uuden lテカytyi voimaa kテ、ydテ、 lテ、pi oman koodin, katso 594 00:28:51,370 --> 00:28:55,590 kautta, ettテ、 oikea kテ、si paneeli mitテ、 muuttujia arvot. 595 00:28:55,590 --> 00:28:57,700 Joten et vテ、lttテ、mテ、ttテ、 tテ、ytyy kテ、yttテ、テ、 jotain 596 00:28:57,700 --> 00:29:00,630 kuten sinテ、 eprintf tulostaa nテ、itテ、 arvoja. 597 00:29:00,630 --> 00:29:04,430 Voit itse nテ、hdテ、 ne visuaalisesti nテ、ytテカllテ、. 598 00:29:04,430 --> 00:29:08,920 >> Nyt pidemmテ、lle, on syytテ、 huomata, ettテ、 on olemassa toinen tekniikka, joka on 599 00:29:08,920 --> 00:29:09,890 todella Super yhteinen. 600 00:29:09,890 --> 00:29:13,120 Ja ehkテ、 ihmetellテ、, miksi tテ、mテ、 pieni kaveri tテ、テ、llテ、 on istunut lavalla. 601 00:29:13,120 --> 00:29:16,490 Joten on tテ、mテ、 tekniikka, yleensテ、 tunnetaan kumiankka virheenkorjaus, 602 00:29:16,490 --> 00:29:18,786 joka oikeastaan 窶銀€黍n vain osoitus siitテ、, 603 00:29:18,786 --> 00:29:20,660 ettテ、 usein kun ohjelmoijat kirjoittavat koodia, 604 00:29:20,660 --> 00:29:22,650 he eivテ、t vテ、lttテ、mテ、ttテ、 yhteistyテカssテ、 muiden kanssa, 605 00:29:22,650 --> 00:29:24,030 tai tyテカskentelevテ、t jaetussa ympテ、ristテカssテ、. 606 00:29:24,030 --> 00:29:25,050 >> He tavallaan kotona. 607 00:29:25,050 --> 00:29:25,910 Ehkテ、 se on myテカhテ、テ、n illalla. 608 00:29:25,910 --> 00:29:28,190 He yrittテ、vテ、t hahmo joitakin vian koodiaan. 609 00:29:28,190 --> 00:29:29,330 Ja he vain nテ、e sitテ、. 610 00:29:29,330 --> 00:29:30,329 >> Ja ei ole kテ、mppテ、kaveri. 611 00:29:30,329 --> 00:29:31,250 Ei ole mitテ、テ、n TF. 612 00:29:31,250 --> 00:29:32,680 Ei ole CA ympテ、rillテ、. 613 00:29:32,680 --> 00:29:36,440 Kaikki ne on heidテ、n hyllylle on tテ、mテ、 pieni kumiankalla. 614 00:29:36,440 --> 00:29:39,030 >> Ja niin kumiankka virheenkorjaus on juuri tテ、mテ、 kutsu 615 00:29:39,030 --> 00:29:42,780 ajatella jotain niin typerテ、 koska tテ、mテ、 on todellinen olento, 616 00:29:42,780 --> 00:29:46,940 ja itse kテ、vellテ、 lテ、pi koodin suullisesti tテ、mテ、n eloton objekti. 617 00:29:46,940 --> 00:29:49,230 Niinpテ、 esimerkiksi, jos tテ、mテ、 on minun esimerkki here-- 618 00:29:49,230 --> 00:29:52,470 ja muistuttavat, ettテ、 aikaisemmin ongelma oli tテ、mテ、, 619 00:29:52,470 --> 00:29:58,140 jos en poistaa tテ、mテ、n ensimmテ、isen rivin koodia, ja minテ、 mennテ、 eteenpテ、in ja tehdテ、 buginen 0 jテ、lleen, 620 00:29:58,140 --> 00:30:01,220 muistaa, ettテ、 sain nテ、mテ、 virheilmoitukset tテ、テ、llテ、. 621 00:30:01,220 --> 00:30:05,997 Joten ajatus tテ、テ、llテ、, naurettava vaikka en tuntea tテ、llテ、 hetkellテ、 teet tテ、mテ、n julkisesti, 622 00:30:05,997 --> 00:30:06,580 on, ettテ、 virhe. 623 00:30:06,580 --> 00:30:10,910 >> OK, joten minun ongelmani on, ettテ、 olen epテ、suorasti julisti kirjaston funktion. 624 00:30:10,910 --> 00:30:12,610 Ja ettテ、 kirjaston funktion on printf. 625 00:30:12,610 --> 00:30:15,290 Declare-- OK, julistaa mieleeni prototyyppejテ、. 626 00:30:15,290 --> 00:30:18,930 >> Se tarkoittaa, ettテ、 minun tテ、ytyy itse kertoa kテ、テ、ntテ、jテ、 etukテ、teen, mitテ、 627 00:30:18,930 --> 00:30:19,980 toiminto nテ、yttテ、テ、. 628 00:30:19,980 --> 00:30:20,930 Odota hetki. 629 00:30:20,930 --> 00:30:23,580 En ole vakio io.h. 630 00:30:23,580 --> 00:30:24,530 Paljon kiitoksia. 631 00:30:24,530 --> 00:30:27,330 >> Joten tテ、ssテ、 prosessissa soita nテ、in te ei tarvitse itse olla ankka. 632 00:30:27,330 --> 00:30:29,819 Mutta tテ、mテ、 ajatus kテ、vely itse kautta oman koodin 633 00:30:29,819 --> 00:30:31,610 niin ettテ、 te edes kuulla itse, jotta voit 634 00:30:31,610 --> 00:30:35,620 ymmテ、rtテ、テ、 puutteita omassa huomautukset, on yleensテ、 ajatus. 635 00:30:35,620 --> 00:30:38,910 >> Ja ehkテ、 enemmテ、n loogisesti, ei niin paljoa, ettテ、 yksi, mutta enemmテ、n mukana 636 00:30:38,910 --> 00:30:44,220 Esimerkiksi me vain teki buginen 3.c, saatat kテ、vellテ、 itse lテ、pi 637 00:30:44,220 --> 00:30:45,310 seuraavasti. 638 00:30:45,310 --> 00:30:49,190 Joten kunnossa, kumia ducky, DDB, jos haluatte. 639 00:30:49,190 --> 00:30:52,350 Tテ、ssテ、 meillテ、 on minun pテ、テ、tehtテ、vテ、, Soitan saada negatiivinen int. 640 00:30:52,350 --> 00:30:54,660 >> Ja Saan palauttaa arvon. 641 00:30:54,660 --> 00:31:00,410 Olen tallentamalla sen vasemmalla puolella rivillテ、 8 muuttujaan nimeltテ、 i. 642 00:31:00,410 --> 00:31:02,380 OK, mutta odottaa, kuinka teki ettテ、 tuon arvon? 643 00:31:02,380 --> 00:31:04,130 Saanen tarkastella toiminto linjassa 12. 644 00:31:04,130 --> 00:31:05,760 >> Linjassa 12, meillテ、 on saada negatiivinen int. 645 00:31:05,760 --> 00:31:08,190 Ei ota mitテ、テ、n tuloa, ei palaa int, OK. 646 00:31:08,190 --> 00:31:10,929 Vakuutan linjan 14 muuttujan n. 647 00:31:10,929 --> 00:31:12,220 Se tulee tallentaa kokonaisluku. 648 00:31:12,220 --> 00:31:13,760 Se on, mitテ、 haluan. 649 00:31:13,760 --> 00:31:18,480 >> Joten tee alla n is-- let minulle kumoa mitテ、 fix olen jo tehnyt. 650 00:31:18,480 --> 00:31:22,710 Joten kun n on suurempi kuin 0, tulostaa N, OK. 651 00:31:22,710 --> 00:31:25,170 Ja sitten soittaa saada int tallennettu n. 652 00:31:25,170 --> 00:31:30,160 Ja sitten tarkistaa, jos n on 0, n on not-- siellテ、 se on. 653 00:31:30,160 --> 00:31:31,910 Joten, jテ、lleen, et tarvitsevat todellinen ankka. 654 00:31:31,910 --> 00:31:35,650 Mutta vain kテ、vely itseテ、si koodi kuin henkinen harjoitus 655 00:31:35,650 --> 00:31:37,720 usein auttaa ymmテ、rtテ、テ、, mitテ、 on tekeillテ、, 656 00:31:37,720 --> 00:31:41,170 toisin kuin juuri tekemテ、ssテ、 jotain nテ、in, tuijottaen nテ、yttテカテ、, 657 00:31:41,170 --> 00:31:43,720 ja ei puhu itseテ、si se, mikテ、 rehellisesti ei ole 658 00:31:43,720 --> 00:31:46,270 lテ、hes yhtテ、 tehokas tekniikka. 659 00:31:46,270 --> 00:31:48,620 Siinテ、pテ、 se, joka on useita erilaisia 窶銀€逆ekniikoita 660 00:31:48,620 --> 00:31:52,102 kapasiteetin varsinaisen virheenkorjaus koodi ja lテカytテ、テ、 vika, jotka kaikki 661 00:31:52,102 --> 00:31:54,810 pitテ、isi olla vテ、lineitテ、 oman tyテカkalupakin niin ettテ、 et ole myテカhテ、テ、n illalla, 662 00:31:54,810 --> 00:31:57,660 varsinkin, olet ruokailu hallit, tai toimistossa tuntia, 663 00:31:57,660 --> 00:32:00,368 hakkaa pテ、テ、tテ、si seinテ、, yrittテ、テ、 ratkaista joitakin ongelmia. 664 00:32:00,368 --> 00:32:02,020 Ymmテ、rtテ、テ、, ettテ、 on olemassa ohjelmistotyテカkaluja. 665 00:32:02,020 --> 00:32:03,720 On kumiankka tyテカkaluja. 666 00:32:03,720 --> 00:32:09,630 Ja siellテ、 on koko henkilテカkunta tukea odottaa lainata kテ、si. 667 00:32:09,630 --> 00:32:13,120 >> Joten nyt, sana ongelmasta asetetaan, ja mitテ、 toivomme teille 668 00:32:13,120 --> 00:32:15,620 pテ、テ、stテ、 ulos niistテ、, ja miten osaamme arvioida. 669 00:32:15,620 --> 00:32:17,680 Per kurssin oppimテ、テ、rテ、n, CS50 ongelma sarjaa 670 00:32:17,680 --> 00:32:22,320 arvioidaan neljテ、n ensisijaisen akseleilla, niin ja speak-- laajuus, oikeellisuudesta, suunnittelu, 671 00:32:22,320 --> 00:32:23,060 ja tyyli. 672 00:32:23,060 --> 00:32:25,910 Ja laajuus vain tarkoittaa sitテ、, kuinka paljon pala olet purrut pois? 673 00:32:25,910 --> 00:32:28,080 Kuinka suuri ongelma olet kokeillut? 674 00:32:28,080 --> 00:32:30,110 Mikテ、 rasitustaso olet ilmenee? 675 00:32:30,110 --> 00:32:35,750 >> Oikeellisuutta on, tekee ohjelma tyテカtテ、 sen pitテ、isi per CS50 toiveiden 676 00:32:35,750 --> 00:32:38,640 Kun annat tiettyjテ、 panoksia tai tietyt lテ、htテカihin? 677 00:32:38,640 --> 00:32:41,130 Suunnittelu on kaikkein subjektiivinen niistテ、. 678 00:32:41,130 --> 00:32:43,360 Ja se on se, joka tulee ottaa pisin oppia 679 00:32:43,360 --> 00:32:47,220 ja pisin opettaa, vuonna sikテ、li kuin se kuihtuu, 680 00:32:47,220 --> 00:32:49,530 kuinka hyvin kirjoitettu on koodi? 681 00:32:49,530 --> 00:32:52,920 >> Se on yksi asia vain tulostaa oikea lテ、htテカjen tai palauttaa oikeat arvot. 682 00:32:52,920 --> 00:32:55,400 Mutta teet sen mahdollisimman tehokkaasti? 683 00:32:55,400 --> 00:32:58,210 Teetkテカ sitテ、 kuilua ja valloittaa, tai binary 684 00:32:58,210 --> 00:33:01,500 search kuten tulemme pian nテ、hdテ、, ettテ、 me teimme kaksi viikkoa sitten kanssa puhelinluettelosta? 685 00:33:01,500 --> 00:33:04,670 Onko parempia tapoja ratkaista ongelma kuin sinulla on tテ、テ、llテ、? 686 00:33:04,670 --> 00:33:06,380 Se mahdollisuus parempaan suunnitteluun. 687 00:33:06,380 --> 00:33:08,530 >> Ja sitten style-- miten aika on koodi? 688 00:33:08,530 --> 00:33:12,370 Huomaat, ettテ、 olen aika erityisesti siitテ、 sisennys oma koodi, 689 00:33:12,370 --> 00:33:15,300 ja varmista minun muuttujat kohtuudella nimetty. n, 690 00:33:15,300 --> 00:33:19,660 vaikka lyhyt, on hyvテ、 nimi varten numero, i laskenta kokonaisluku, 691 00:33:19,660 --> 00:33:20,727 s merkkijono. 692 00:33:20,727 --> 00:33:22,560 Ja voimme olla pidempi muuttujanimiin tyyli. 693 00:33:22,560 --> 00:33:25,500 Tyyli on, kuinka hyvテ、 ei koodin nテ、yttテ、テ、? 694 00:33:25,500 --> 00:33:26,600 Ja miten luettavissa on se? 695 00:33:26,600 --> 00:33:29,650 >> Ja ajan mittaan, mitテ、 avustajat ja TF: t tekevテ、t kurssin 696 00:33:29,650 --> 00:33:31,870 on tarjota sinulle, ettテ、 sellaista laadullista palautetta 697 00:33:31,870 --> 00:33:34,330 jotta saat paremman noita eri nテ、kテカkohtia. 698 00:33:34,330 --> 00:33:37,510 Ja siinテ、, miten me arvioi jokaisen nテ、istテ、 akseleista, 699 00:33:37,510 --> 00:33:40,080 se on tyypillisesti hyvin vテ、hテ、n kauhat niin ettテ、 te, yleensテ、, 700 00:33:40,080 --> 00:33:41,680 Saat kテ、sityksen siitテ、, miten hyvin teet. 701 00:33:41,680 --> 00:33:45,680 Ja todellakin, jos saat pisteet mitテ、テ、n nテ、istテ、 axes-- oikeellisuuden, suunnittelu 702 00:33:45,680 --> 00:33:49,659 ja tyyli especially-- ettテ、 mテ、テ、rテ、 on yleensテ、 vテ、lillテ、 1 ja 5. 703 00:33:49,659 --> 00:33:52,450 Ja kirjaimellisesti, jos saat 3: n alussa lukukauden, 704 00:33:52,450 --> 00:33:53,977 tテ、mテ、 on erittテ、in hyvテ、 asia. 705 00:33:53,977 --> 00:33:55,810 Se tarkoittaa, ettテ、 on vielテ、 tilaa parannuksille, 706 00:33:55,810 --> 00:33:58,490 johon voisi toivoa vuonna ottaen luokan ensimmテ、istテ、 kertaa. 707 00:33:58,490 --> 00:34:01,820 On toivottavasti joitakin vテ、hテ、n katto johon olet pyrkivテ、 pテ、テ、semiseksi. 708 00:34:01,820 --> 00:34:03,970 Ja niin saaminen 3: n pテ、テ、lle aikaisintaan kappaletta, 709 00:34:03,970 --> 00:34:06,550 jos ei joitakin 2: n ja 4: n, on todellakin hyvテ、 asia. 710 00:34:06,550 --> 00:34:08,880 Se on hyvin ulottuvilla, reilusti odotukset. 711 00:34:08,880 --> 00:34:11,421 >> Ja jos mielesi on kilpa, odota minuutti, kolme viidestテ、. 712 00:34:11,421 --> 00:34:12,620 Se on todella 6 10. 713 00:34:12,620 --> 00:34:13,560 Se on 60%. 714 00:34:13,560 --> 00:34:14,830 Luoja, tuo on F. 715 00:34:14,830 --> 00:34:15,870 >> Se ei ole. 716 00:34:15,870 --> 00:34:17,600 Se ei ole, itse asiassa, ettテ、. 717 00:34:17,600 --> 00:34:22,710 Pikemminkin se mahdollisuuden parantaa aikana lukukauden. 718 00:34:22,710 --> 00:34:25,580 Ja jos saat joitakin Poors, nテ、mテ、 ovat mahdollisuus 719 00:34:25,580 --> 00:34:29,199 hyテカdyntテ、テ、 virka, varmasti kohdat ja muita resursseja. 720 00:34:29,199 --> 00:34:32,840 >> Paras on mahdollisuus, todella, olla ylpeテ、, kuinka pitkテ、lle olet 721 00:34:32,840 --> 00:34:34,520 tulevat aikana lukukauden. 722 00:34:34,520 --> 00:34:38,199 Joten テ、lテ、 ymmテ、rrテ、, jos mitテ、テ、n muuten, kolme on hyvテ、. 723 00:34:38,199 --> 00:34:40,179 Ja se mahdollistaa tilaa kasvulle ajan. 724 00:34:40,179 --> 00:34:43,090 >> Siitテ、, miten nテ、mテ、 akselit ovat painotettu, realistisesti olet 725 00:34:43,090 --> 00:34:46,745 aikoo viettテ、テ、 suurimman osan aikaa saada asioita tyテカtテ、, puhumattakaan oikein. 726 00:34:46,745 --> 00:34:49,120 Ja niin oikeellisuus on taipumus painotetaan eniten, kuten 727 00:34:49,120 --> 00:34:51,360 tテ、mテ、 monikertaisesti kolme. 728 00:34:51,360 --> 00:34:54,659 Design on myテカs tテ、rkeテ、テ、, mutta jotain, et vテ、lttテ、mテ、ttテ、 729 00:34:54,659 --> 00:34:58,220 viettテ、vテ、t kaikki nテ、mテ、 tuntia yrittテ、テ、 saada asiat vain tテカihin. 730 00:34:58,220 --> 00:35:00,019 >> Ja niin se on painotettu hieman kevyemmin. 731 00:35:00,019 --> 00:35:01,560 Ja sitten tyyli painotetaan vテ、hiten. 732 00:35:01,560 --> 00:35:03,710 Vaikka se ei ole yhtテ、 tテ、rkeテ、 pohjimmiltaan, 733 00:35:03,710 --> 00:35:05,990 se on vain, kenties helpointa oikealle, 734 00:35:05,990 --> 00:35:08,440 matkien esimerkeissテ、 do luento ja osassa, 735 00:35:08,440 --> 00:35:11,080 asioita mukavasti sisennetty ja kommentoi, 736 00:35:11,080 --> 00:35:14,320 ja niin edelleen on yksi helpoin asioita ja saada oikea. 737 00:35:14,320 --> 00:35:16,960 Joten sinテ、nsテ、, ymmテ、rtテ、テ、 ettテ、 ne ovat pistettテ、 738 00:35:16,960 --> 00:35:19,000 jotka ovat suhteellisen helppo ymmテ、rtテ、テ、. 739 00:35:19,000 --> 00:35:22,360 >> Ja nyt muutaman sanan this-- akateemisen rehellisyys. 740 00:35:22,360 --> 00:35:25,150 Joten kohti kurssin oppimテ、テ、rテ、, nテ、et 741 00:35:25,150 --> 00:35:27,630 ettテ、 kurssi on melko bittinen kielen ympテ、rillテ、. 742 00:35:27,630 --> 00:35:31,380 Ja tietenkin ottaa kysymys akateeminen rehellisyys melko vakavasti. 743 00:35:31,380 --> 00:35:33,450 >> Meillテ、 on eroa, parempaan tai huonompaan, 744 00:35:33,450 --> 00:35:36,570 ettテ、 on lテ、hettテ、nyt vuosittain enemmテ、n opiskelijat kurinpitotoimista 745 00:35:36,570 --> 00:35:39,670 kuin useimmat muita Tietenkin, ettテ、 olen tietoinen. 746 00:35:39,670 --> 00:35:42,580 Tテ、mテ、 ei vテ、lttテ、mテ、ttテ、 ole osoituksena siitテ、, 747 00:35:42,580 --> 00:35:46,340 ettテ、 CS opiskelijoita, tai CS50 opiskelijoita, ovat mitテ、テ、n vテ、hemmテ、n rehellinen kuin luokkatoverit. 748 00:35:46,340 --> 00:35:49,090 Mutta tosiasia, ettテ、 tテ、ssテ、 maailma, sテ、hkテカisesti, me vain 749 00:35:49,090 --> 00:35:50,990 on teknologinen keino havaita tテ、mテ、n. 750 00:35:50,990 --> 00:35:53,360 >> On tテ、rkeテ、テ、 meille oikeudenmukaisuus poikki luokka 751 00:35:53,360 --> 00:35:58,550 ettテ、 teemme tunnistaa tテ、mテ、n, ja nosta ongelma kun nテ、emme asiat. 752 00:35:58,550 --> 00:36:01,980 Ja vain maalata kuvan, ja oikeastaan auttamaan jotain tテ、llaista uppoavat, 753 00:36:01,980 --> 00:36:04,600 nテ、mテ、 ovat ne opiskelijat yli viimeisten 10 vuoden aikana 754 00:36:04,600 --> 00:36:07,610 jotka ovat olleet mukana joissakin tテ、llaiset asiat akateemisen rehellisyys, 755 00:36:07,610 --> 00:36:10,990 joidenkin 32 opiskelijoille syksystテ、 2015, mikテ、 756 00:36:10,990 --> 00:36:13,760 on sanoa, ettテ、 otamme asiaan erittテ、in vakavasti. 757 00:36:13,760 --> 00:36:18,380 Ja lopulta, nテ、mテ、 luvut sテ、veltテ、テ、, viimeksi noin 3%, 4% tai niin 758 00:36:18,380 --> 00:36:19,120 luokan. 759 00:36:19,120 --> 00:36:25,220 >> Joten mテ、テ、rテ、enemmistテカ opiskelijoiden nテ、yttテ、テ、 siltテ、, 窶銀€菊ttテ、 viivat ovat selkeitテ、. 760 00:36:25,220 --> 00:36:27,940 Mutta テ、lテ、 pitテ、テ、 tテ、mテ、 vテ、litテ、, varsinkin myテカhテ、テ、n 761 00:36:27,940 --> 00:36:32,080 yテカllテ、, kun kamppailee Joissakin ratkaisu ongelmaan asettaa, 762 00:36:32,080 --> 00:36:34,830 ettテ、 kテ、ytテカssテ、 on mekanismit saada itseテ、si paremmin 763 00:36:34,830 --> 00:36:37,870 tukea kuin voisi ajatella, vaikka sillテ、 hetkellテ、. 764 00:36:37,870 --> 00:36:40,514 Ymmテ、rtテ、テ、, ettテ、 kun saamme opiskelija vテ、ittテ、テ、, ylitテ、mme 765 00:36:40,514 --> 00:36:43,430 vertailla kaikkia lテ、hetyksiテ、 tテ、nテ、 vuonna vastaan 窶銀€橘aikkia lテ、hetyksiテ、 viime vuonna, 766 00:36:43,430 --> 00:36:47,590 vastaan 窶銀€橘aikkia lテ、hetyksiテ、 vuodesta 2007, ja koska, katsomalla, samoin, 767 00:36:47,590 --> 00:36:49,931 koodi -tietovarastoja verkossa, keskustelufoorumit, tyテカmailla. 768 00:36:49,931 --> 00:36:51,806 Ja me mainita, todella, kaikki vuoksi 769 00:36:51,806 --> 00:36:56,040 kaikkien tietojen, ettテ、 jos joku muu voi lテカytテ、テ、 sen verkossa, 770 00:36:56,040 --> 00:36:57,880 varmasti, joten voimme kurssin. 771 00:36:57,880 --> 00:37:00,100 Mutta, todella, henki Kurssin kuihtuu 772 00:37:00,100 --> 00:37:01,650 Tテ、mテ、n lausekkeen oppimテ、テ、rテ、n. 773 00:37:01,650 --> 00:37:03,670 Se on todellakin vain, kohtuullinen. 774 00:37:03,670 --> 00:37:06,680 >> Ja jos meidテ、n oli tarkentaa, ettテ、 vain hieman kieltテ、, 775 00:37:06,680 --> 00:37:09,770 ymmテ、rtテ、テ、, ettテ、 pohjimmiltaan kaikki teoksesta, jota esittテ、テ、 tテ、mテ、n kurssin 776 00:37:09,770 --> 00:37:10,954 tテ、ytyy olla oma. 777 00:37:10,954 --> 00:37:13,870 Mutta sisテ、llテ、, ettテ、 on varmasti mahdollisuuksia, ja rohkaisua, 778 00:37:13,870 --> 00:37:17,300 ja pedagoginen arvo kテ、テ、ntyen others-- itse, TF: ien, CAS, 779 00:37:17,300 --> 00:37:20,760 TAS, ja muut luokassa, tukea, saati ystテ、viテ、 780 00:37:20,760 --> 00:37:23,547 ja kテ、mppテ、kaverini jotka ovat opiskelleet CS ja ohjelmointi ennen. 781 00:37:23,547 --> 00:37:25,130 Ja niin on olemassa korvaus siitテ、. 782 00:37:25,130 --> 00:37:28,180 Ja Nyrkkisテ、テ、ntテカnテ、 on this-- kun pyytテ、テ、 apua, 783 00:37:28,180 --> 00:37:31,470 voit nテ、yttテ、テ、 koodin muille, mutta et voi katsella omaansa. 784 00:37:31,470 --> 00:37:34,880 Joten vaikka olet toimistossa tuntia, tai D sali, tai jossain muualla 785 00:37:34,880 --> 00:37:37,450 tyテカskennellyt joitakin osainen sarja, yksikテカiden kanssa ystテ、vテ、, joka 786 00:37:37,450 --> 00:37:40,160 on tテ、ysin hieno, klo Lopussa pテ、ivテ、n tyテカsi 787 00:37:40,160 --> 00:37:43,034 olisi viime kテ、dessテ、 kuuluvat kunkin teistテ、 vastaavasti, eikテ、 788 00:37:43,034 --> 00:37:45,700 jonkin verran yhteistテ、 ponnistusta, paitsi opinnテ、ytetyテカn jossa 789 00:37:45,700 --> 00:37:47,410 se on sallittua ja suositeltavaa. 790 00:37:47,410 --> 00:37:49,830 >> Tiedテ、, ettテ、 jos olet kamppailevat jotain 791 00:37:49,830 --> 00:37:52,520 ja ystテ、vテ、si vain sattuu paremmaksi tテ、ssテ、 sinun, 792 00:37:52,520 --> 00:37:55,130 tai parempi tuohon ongelma kuin te, tai vテ、hテ、n kauemmaksi eteenpテ、in kuin te, 793 00:37:55,130 --> 00:37:57,330 se on tテ、ysin jテ、rkevテ、テ、 kテ、テ、ntyテ、 ystテ、vテ、si ja sanoa, hei, 794 00:37:57,330 --> 00:38:00,480 Haittaako katsot minun koodi tテ、テ、llテ、, auttaa minua spot mitテ、 minun ongelma on? 795 00:38:00,480 --> 00:38:03,760 Ja toivottavasti vuonna edun pedagogista arvoa 796 00:38:03,760 --> 00:38:07,040 ettテ、 ystテ、vテ、 ei ole vain sanovat, oi, tee tテ、tテ、, vaan pikemminkin, 797 00:38:07,040 --> 00:38:09,917 mitテ、 puuttuu verkossa 6, tai jotain? 798 00:38:09,917 --> 00:38:12,000 Ratkaisu ei kuitenkaan ole ettテ、 ystテ、vテ、 vieressテ、si 799 00:38:12,000 --> 00:38:15,617 sanoa, No, tテ、テ、llテ、, anna minun vetテ、テ、 tテ、hテ、n asti, ja nテ、yttテ、テ、 minun ratkaisu sinulle. 800 00:38:15,617 --> 00:38:16,450 Niin, ettテ、 on linja. 801 00:38:16,450 --> 00:38:18,670 Nテ、ytテ、t koodia toiset, mutta et saa 802 00:38:18,670 --> 00:38:22,350 katsella omaansa, jollei muuta rajoitteet kurssin oppimテ、テ、rテ、n. 803 00:38:22,350 --> 00:38:24,760 >> Joten テ、lテ、 pitテ、テ、 mielessテ、 tテ、mテ、 niin sanottu pahoillani lauseke 804 00:38:24,760 --> 00:38:27,560 in kurssin oppimテ、テ、rテ、n samoin, ettテ、 jos sitoutua joitakin asiakirjalla 805 00:38:27,560 --> 00:38:30,476 ei ole jテ、rkevテ、テ、, vaan tuo se huomiota kurssin pテ、テ、t 806 00:38:30,476 --> 00:38:34,240 72 tunnin kuluessa, kurssin voivat asettaa paikallisia seuraamuksia ettテ、 807 00:38:34,240 --> 00:38:37,380 voi kuulua epテ、tyydyttテ、vテ、 tai muussa arvosana tyテカstテ、 toimitettu. 808 00:38:37,380 --> 00:38:41,410 Mutta tietenkテ、テ、n ei viitata asia edelleen kurinpitotoimia, 809 00:38:41,410 --> 00:38:43,010 lukuun ottamatta toistuvia tekoja. 810 00:38:43,010 --> 00:38:46,632 Toisin sanoen, jos et tehdテ、 joitakin tyhmテ、, varsinkin myテカhテ、テ、n yテカllテ、, pテ、テ、tテカs 811 00:38:46,632 --> 00:38:49,340 ettテ、 seuraavana aamuna tai kaksi pテ、ivテ、テ、 myテカhemmin, herテ、テ、t ja ymmテ、rtテ、テ、, 812 00:38:49,340 --> 00:38:50,870 mitテ、 minテ、 ajattelin? 813 00:38:50,870 --> 00:38:53,890 Teet CS50 nテ、illテ、 on markkinat vahvistamisesta, ettテ、 ongelma 814 00:38:53,890 --> 00:38:57,170 ja omistavat jopa se, ettテ、 me tavata puolitiehen ja kテ、sitellテ、 815 00:38:57,170 --> 00:39:01,500 sen kanssa asiassa, joka on sekテ、 koulutus- ja arvokkaita sinulle, 816 00:39:01,500 --> 00:39:04,200 mutta silti rankaiseva jollakin tavalla. 817 00:39:04,200 --> 00:39:08,590 Ja nyt, ottaa terテ、n, tテ、mテ、. 818 00:39:08,590 --> 00:39:10,570 >> [VIDEOTOISTOSTA] 819 00:39:10,570 --> 00:39:13,540 >> [MUSIIKKIA] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END TOISTO] 822 00:39:58,866 --> 00:40:00,490 DAVID J. MALAN: Selvテ、, olemme takaisin. 823 00:40:00,490 --> 00:40:03,680 Nyt katsomme yhdessテ、 Ensimmテ、inen meidテ、n reaalimaailman verkkotunnuksia 824 00:40:03,680 --> 00:40:08,720 in CS50, taiteen salakirjoituksen, taiteen lテ、hettテ、vテ、n ja vastaanottavan 825 00:40:08,720 --> 00:40:11,840 salaisuus viestejテ、, salattu viestit, jos haluatte, 826 00:40:11,840 --> 00:40:17,060 joita voidaan deciphered jos olet joitakin keskeisiテ、 ainesosa, ettテ、 lテ、hettテ、jテ、 on 827 00:40:17,060 --> 00:40:18,030 yhtテ、 hyvin. 828 00:40:18,030 --> 00:40:22,120 Joten motivoida tテ、hテ、n otamme Katso tテ、mテ、 asia tテ、テ、llテ、, 829 00:40:22,120 --> 00:40:26,750 joka on esimerkki salaisuus dekooderi rengas, joka 830 00:40:26,750 --> 00:40:34,042 voidaan kテ、yttテ、テ、, jotta selvittテ、テ、 mitテ、 salaista todellisuudessa on. 831 00:40:34,042 --> 00:40:35,750 Itse takaisin pテ、ivテ、 alakoulussa, 832 00:40:35,750 --> 00:40:38,787 jos koskaan lテ、hettテ、nyt salaisia 窶銀€久iestejテ、 jotkut ystテ、vテ、 tai jonkin murskaa luokassa, 833 00:40:38,787 --> 00:40:40,620 saattaisi kuvitella olitte taitava 834 00:40:40,620 --> 00:40:46,530 by oman paperille muuttuvat, kuten A-B, ja B C ja C D, 835 00:40:46,530 --> 00:40:47,590 ja niin edelleen. 836 00:40:47,590 --> 00:40:50,300 Mutta olit todella salaamalla tietosi, vaikka 837 00:40:50,300 --> 00:40:53,300 jos se oli hieman triviaali, ei ollut ettテ、 vaikea opettaja ymmテ、rtテ、テ、, 838 00:40:53,300 --> 00:40:55,675 hyvin, jos vain vaihtaa B ja C B, 839 00:40:55,675 --> 00:40:57,550 todella selvittテ、テ、 mitテ、 viesti oli, 840 00:40:57,550 --> 00:40:59,700 mutta olit salausinformaatioon. 841 00:40:59,700 --> 00:41:03,420 >> Olit juuri tekemテ、ssテ、 sitテ、 yksinkertaisesti, aivan kuten Ralphie tテ、テ、llテ、 842 00:41:03,420 --> 00:41:07,934 kuuluisassa elokuvan, joka toimii melko paljon loputtomiin joka talvi. 843 00:41:07,934 --> 00:41:08,600 [VIDEOTOISTOSTA] 844 00:41:08,600 --> 00:41:11,180 -Ole Se tiedetテ、テ、n kaiken Ralph Parker on tテ、ten 845 00:41:11,180 --> 00:41:14,070 nimitetty jテ、seneksi Little Orphan Annie Secret Circle 846 00:41:14,070 --> 00:41:17,700 ja on oikeutettu kaikkiin kunnianosoitukset ja hyテカdyt ilmenevテ、t siihen. 847 00:41:17,700 --> 00:41:24,340 >> -Signed, Little Orphan Annie, counter-allekirjoitettu Pierre Andre, musteella. 848 00:41:24,340 --> 00:41:27,160 Honors ja hyテカdyt, jo yhdeksテ、n vuoden iテ、ssテ、. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [HUUTAMINEN] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -Come Pテ、テ、lle. 853 00:41:34,250 --> 00:41:35,210 Mennテ、テ、n sen kanssa. 854 00:41:35,210 --> 00:41:39,530 En tarvitse kaikki muu noin salakuljettajia ja merirosvoja. 855 00:41:39,530 --> 00:41:41,660 >> : Kuuntele huomenna yテカ solmittaessa seikkailu 856 00:41:41,660 --> 00:41:43,880 musta merirosvolaiva. 857 00:41:43,880 --> 00:41:46,650 Nyt on aika Annien salainen viesti 858 00:41:46,650 --> 00:41:49,840 sinulle jテ、senille Secret Circle. 859 00:41:49,840 --> 00:41:53,570 Muista, lapset, vain jテ、senille Annie Secret Circle 860 00:41:53,570 --> 00:41:56,140 pystyy purkamaan Annien salainen viesti. 861 00:41:56,140 --> 00:42:00,340 >> Muista, Annie on riippuvainen teitテ、. 862 00:42:00,340 --> 00:42:02,880 Aseta nastat B2. 863 00:42:02,880 --> 00:42:05,230 Tテ、ssテ、 on viesti. 864 00:42:05,230 --> 00:42:06,090 12, 11-- 865 00:42:06,090 --> 00:42:10,250 >> -Olen In, ensimmテ、inen salainen kokous. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre Oli suuren テ、テ、nen tテ、nテ、テ、n. 868 00:42:15,780 --> 00:42:19,000 Voisin sanoa, ettテ、 illan Viesti oli todella tテ、rkeテ、. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, joka on viesti alkaen Annie itse. 870 00:42:22,694 --> 00:42:23,860 Muista, テ、lテ、 kerro kenellekテ、テ、n. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 Sekuntia myテカhemmin, olen ainoa huoneeseen, jossa poika yhdeksテ、n 873 00:42:32,930 --> 00:42:37,040 voisi istua rauhassa ja purkaa. 874 00:42:37,040 --> 00:42:39,730 Aha, B! 875 00:42:39,730 --> 00:42:42,360 Menin seuraavaan, E. 876 00:42:42,360 --> 00:42:44,520 >> Ensimmテ、inen sana on olla. 877 00:42:44,520 --> 00:42:49,032 S, mitテ、 oli tulossa helpompaa nyt, U, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -Voi, Tule, Ralphie, minun tテ、ytyy mennテ、! 879 00:42:51,733 --> 00:42:53,688 >> -Otan Olla alas, Ma! 880 00:42:53,688 --> 00:42:54,188 Jannu hurahtaa! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, O, varmista to-- varmasti mitテ、? 883 00:43:04,060 --> 00:43:05,970 Mikテ、 oli pieni Orphan Annie yrittテ、テ、 sanoa? 884 00:43:05,970 --> 00:43:07,264 Muista mitテ、? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie, Andy on saanut mennテ、, voisitko tulla ulos? 886 00:43:09,634 --> 00:43:10,480 >> -Kaikki Oikea, Ma! 887 00:43:10,480 --> 00:43:12,880 Tulen ulos! 888 00:43:12,880 --> 00:43:14,550 >> -I Lテ、hestyi nyt. 889 00:43:14,550 --> 00:43:16,620 Jテ、nnitys oli kauhea. 890 00:43:16,620 --> 00:43:17,720 Mitテ、 se oli? 891 00:43:17,720 --> 00:43:20,170 Kohtalo planeetan voi vaakalaudalla. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 Andyn mentテ、vテ、! 894 00:43:23,170 --> 00:43:26,890 >> -Otan Olla oikealle ulos, itkeテ、 テ、テ、neen! 895 00:43:26,890 --> 00:43:32,680 >> Muodostaen miltei siellテ、, sormet lensi, mieleni oli terテ、s ansa, joka huokosten vibrated. 896 00:43:32,680 --> 00:43:37,198 Se oli melkein selvテ、, kyllテ、, kyllテ、, kyllテ、. 897 00:43:37,198 --> 00:43:43,091 >> -Ole Muista juoda Ovaltine. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 Crummy kaupallinen? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 Paskiainen. 903 00:43:54,227 --> 00:43:54,810 [END TOISTO] 904 00:43:54,810 --> 00:43:57,390 DAVID J. MALAN: OK, niin ettテ、 oli hyvin pitkテ、 matka 905 00:43:57,390 --> 00:44:00,660 ottaa kテ、yttテカテカn salakirjoituksen, ja myテカs Ovaltine. 906 00:44:00,660 --> 00:44:04,470 Itse asiassa tテ、stテ、 vanha mainos tテ、テ、llテ、, miksi Ovaltine niin hyvテ、? 907 00:44:04,470 --> 00:44:09,470 Se on keskittynyt louhinta kypsiテ、 ohramallas, puhdas kermaista lehmテ、nmaito, 908 00:44:09,470 --> 00:44:14,360 ja erityisesti valmistettu kaakao, yhdessテ、 luonnon fosfatidien ja vitamiineja. 909 00:44:14,360 --> 00:44:18,240 Se on lisテ、ksi tテ、ydennetty lisテ、vitamiineja B ja D, yum. 910 00:44:18,240 --> 00:44:21,600 Ja voit silti saada sen, ilmeisesti, Amazon, kuten teimme tテ、テ、llテ、. 911 00:44:21,600 --> 00:44:24,810 >> Mutta motivaatio tテ、テ、llテ、 oli esitellテ、 salakirjoitusta, erityisesti 912 00:44:24,810 --> 00:44:28,340 erテ、テ、nlainen salakirjoituksen tiedossa salaisiksi avaimen salausta. 913 00:44:28,340 --> 00:44:34,284 Ja kuten nimestテ、 voi pテ、テ、tellテ、, koko turvallisuus salainen avain salakirjoitusjテ、rjestelmテ、, 914 00:44:34,284 --> 00:44:36,200 jos haluatte, menetelmテ、テ、 vain muokkaamisella 915 00:44:36,200 --> 00:44:40,960 tiedot kahden ihmisen vテ、lillテ、, on se, ettテ、 vain lテ、hettテ、jテ、 ja vain vastaanottaja 916 00:44:40,960 --> 00:44:46,980 tietテ、テ、 salaisuuden key-- jotain arvoa, jotkut salainen lause, jotkut salainen numero, joka 917 00:44:46,980 --> 00:44:50,660 ansiosta ne molemmat salata ja purkaa tiedot. 918 00:44:50,660 --> 00:44:53,470 Ja salaus, oikeastaan, on vain tテ、llテ、 viikolla 0. 919 00:44:53,470 --> 00:44:56,715 >> Se on ongelma, missテ、 on tuloa, kuten todelliset viestisi Englanti 920 00:44:56,715 --> 00:44:59,340 tai mitテ、 kielen mukaan haluat lテ、hettテ、テ、 jollekulle luokassa, 921 00:44:59,340 --> 00:45:00,580 tai Internetin kautta. 922 00:45:00,580 --> 00:45:03,840 On olemassa jonkin verran lテ、htテカ, joka on menossa olla salattu viesti, jota 923 00:45:03,840 --> 00:45:05,250 haluat vastaanottajan vastaan. 924 00:45:05,250 --> 00:45:07,405 Ja vaikka joku keskimmテ、inen saa sitテ、 liian, 925 00:45:07,405 --> 00:45:09,780 et halua niitテ、 vテ、lttテ、mテ、ttテ、 voi purkaa sen, 926 00:45:09,780 --> 00:45:12,840 koska sisテ、llテ、 tテ、tテ、 musta laatikko, tai algoritmi, 927 00:45:12,840 --> 00:45:17,650 on jonkinlainen jテ、rjestelmテ、, jotkut askel askeleelta ohjeet, ottamiseen ettテ、 panos 928 00:45:17,650 --> 00:45:20,710 ja muuntamalla se osaksi tulos on toivottavasti turvallisella tavalla. 929 00:45:20,710 --> 00:45:23,640 >> Ja itse asiassa, on jonkin verran sanastoa tテ、ssテ、 maailmassa seuraavasti. 930 00:45:23,640 --> 00:45:26,100 Vain teksti on sanaan tietojenkテ、sittelytieteessテ、 olisi 931 00:45:26,100 --> 00:45:28,449 kテ、yttテ、テ、 kuvaamaan tuloon sanoma, kuten Englanti 932 00:45:28,449 --> 00:45:31,240 tai mitテ、 kieltテ、 sitten itse haluaa lテ、hettテ、テ、 jollekin toiselle ihmiselle. 933 00:45:31,240 --> 00:45:35,450 Ja sitten salakieli on scramble ettテ、 salakoodattu, tai salattu, 934 00:45:35,450 --> 00:45:36,520 versio siitテ、. 935 00:45:36,520 --> 00:45:38,750 >> Mutta on yksi muu ainesosa tテ、テ、llテ、. 936 00:45:38,750 --> 00:45:43,200 On yksi muu tulo salainen avaimen salausta. 937 00:45:43,200 --> 00:45:45,200 Ja se on avain itse, joka on yleensテ、 938 00:45:45,200 --> 00:45:48,930 kuten nテ、emme, useita, tai kirjain tai sana riippumatta 939 00:45:48,930 --> 00:45:51,980 algoritmi on todella odottaa. 940 00:45:51,980 --> 00:45:53,870 >> Ja miten purkaa tietoa? 941 00:45:53,870 --> 00:45:55,110 Miten purkaa sitテ、? 942 00:45:55,110 --> 00:45:57,950 No, juuri kテ、テ、ntテ、テ、 lテ、hdテカt ja tulot. 943 00:45:57,950 --> 00:46:00,900 >> Toisin sanoen, kun joku vastaanottanut salatun viestin, 944 00:46:00,900 --> 00:46:03,740 hテ、nellテ、 yksinkertaisesti on tietテ、テ、, ettテ、 sama avain. 945 00:46:03,740 --> 00:46:05,700 He ovat saaneet salakieli. 946 00:46:05,700 --> 00:46:09,530 Ja kytkemテ、llテ、 nテ、iden kahden panoksina salakirjoitusjテ、rjestelmテ、, 947 00:46:09,530 --> 00:46:14,260 algoritmi, tテ、mテ、 musta laatikko, ulos pitテ、isi tulla alkuperテ、isen selvテ、kielisenテ、. 948 00:46:14,260 --> 00:46:17,830 Ja niin se on erittテ、in korkea nテ、kemys siitテ、, mikテ、 salaustekniikan on oikeastaan 949 00:46:17,830 --> 00:46:18,590 kaikki. 950 00:46:18,590 --> 00:46:20,030 >> Joten sinne. 951 00:46:20,030 --> 00:46:22,700 Tarkastellaan alla huppu jotain 952 00:46:22,700 --> 00:46:26,000 olemme saaneet selvinテ、 viime viikolla, ja tテ、ssテ、 istunnossa 953 00:46:26,000 --> 00:46:27,629 here-- merkkijono. 954 00:46:27,629 --> 00:46:30,295 Merkkijono lopussa pテ、ivテ、n on vain joukko merkkejテ、. 955 00:46:30,295 --> 00:46:33,610 >> Voisi olla Hello World, tai hei Zamyla, tai mitテ、 tahansa. 956 00:46:33,610 --> 00:46:37,050 Mutta mitテ、 se merkitsee olla jono merkkejテ、? 957 00:46:37,050 --> 00:46:41,520 Itse asiassa, CS50 kirjasto antaa meille tietotyyppiテ、 kutsutaan merkkijono. 958 00:46:41,520 --> 00:46:45,140 >> Mutta ei oikeastaan 窶銀€黍le sellaista kuin merkkijono C. 959 00:46:45,140 --> 00:46:49,450 Se on todellakin vain jono merkki, merkki, merkki, 960 00:46:49,450 --> 00:46:52,180 merkki, takaisin, takaisin, jotta takaisin, takaisin, takaisin sisテ、lle 961 00:46:52,180 --> 00:46:54,650 tietokoneen muistiin, tai RAM. 962 00:46:54,650 --> 00:46:58,940 Ja me katsoa syvemmテ、lle, ettテ、 tulevaisuudessa kun katsomme muistin itse, 963 00:46:58,940 --> 00:47:02,030 ja hyテカdyntテ、minen, ja uhat, jotka ovat mukana. 964 00:47:02,030 --> 00:47:04,100 >> Mutta Tarkastellaan merkkijonon Zamyla. 965 00:47:04,100 --> 00:47:07,480 Joten vain nimi ihmisen tテ、テ、llテ、, Zamyla, 966 00:47:07,480 --> 00:47:12,030 joka on sekvenssi merkkiテ、, Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 Nyt oletetaan, ettテ、 Zamyla nimi on tallennettu tietokoneen 968 00:47:16,020 --> 00:47:16,880 ohjelmoida. 969 00:47:16,880 --> 00:47:20,830 >> No, on aivan selvテ、テ、, ettテ、 meidテ、n pitテ、isi pystyテ、 katsomaan ne merkit 970 00:47:20,830 --> 00:47:21,590 erikseen. 971 00:47:21,590 --> 00:47:24,710 Joten olen juuri menossa vetテ、テ、 hieman box noin Zamyla nimi tテ、hテ、n. 972 00:47:24,710 --> 00:47:31,580 Ja se on asia C ettテ、 kun on merkkijono, kuten Zamyla-- ja ehkテ、 973 00:47:31,580 --> 00:47:34,940 ettテ、 jono on palannut funktio kuin get merkkijonon, 974 00:47:34,940 --> 00:47:38,540 voit itse manipuloida se merkki kerrallaan. 975 00:47:38,540 --> 00:47:42,070 >> Nyt tテ、mテ、 on germane varten keskustelu kテ、sillテ、, koska 976 00:47:42,070 --> 00:47:46,420 salakirjoituksessa jos haluat muuttaa A B, ja B C ja C D, 977 00:47:46,420 --> 00:47:49,650 ja niin edelleen, sinun tテ、ytyy pystyテ、 tarkastella yksittテ、isten merkkien 978 00:47:49,650 --> 00:47:50,190 merkkijono. 979 00:47:50,190 --> 00:47:52,695 Sinun tテ、ytyy pystyテ、 muuttamaan Z jotain muuta, A 980 00:47:52,695 --> 00:47:55,280 jotain muuta, M jotain muuta, ja niin edelleen. 981 00:47:55,280 --> 00:47:58,000 Ja niin me tarvitaan tapa, ohjelmallisesti, joten 982 00:47:58,000 --> 00:48:03,020 puhua, C pystyテ、 muuttamaan ja tarkastella yksittテ、isiテ、 kirjaimia. 983 00:48:03,020 --> 00:48:05,690 Ja voimme tehdテ、 tテ、mテ、n seuraavasti. 984 00:48:05,690 --> 00:48:08,340 >> Anna minun mennテ、 suunnata takaisin CS50 IDE. 985 00:48:08,340 --> 00:48:11,130 Ja anna minun mennテ、 eteenpテ、in ja luoda uuden tiedoston 986 00:48:11,130 --> 00:48:16,134 ettテ、 Soitan tテ、llテ、 kertaa string0, koska meidテ、n ensimmテ、inen esimerkki, piste c. 987 00:48:16,134 --> 00:48:18,300 Ja aion mennテ、 eteenpテ、in ja piiska sitテ、 seuraavasti. 988 00:48:18,300 --> 00:48:22,870 >> Joten kuuluvat CS50.h, ja Sitten ovat standardin io.h, 989 00:48:22,870 --> 00:48:25,990 joka Olen melkein aina menossa kテ、yttテ、テ、 minun ohjelmia, ainakin 990 00:48:25,990 --> 00:48:26,780 ensin. 991 00:48:26,780 --> 00:48:32,180 int main mitテ、tテカn, ja sitten tテ、テ、llテ、 olen aikoo tehdテ、 jouset saa pテ、テ、stテ、 merkkijono. 992 00:48:32,180 --> 00:48:35,260 Ja sitten aion mennテ、 eteenpテ、in ja tehdテ、 tテ、tテ、. 993 00:48:35,260 --> 00:48:37,460 Haluan mennテ、 eteenpテ、in ja, kuten jテ、rki tarkistaa, 994 00:48:37,460 --> 00:48:43,607 vain sanoa, hei, prosenttia s, puolipisteitテ、 tekee merkkijono 0. 995 00:48:43,607 --> 00:48:44,690 Ohoh, mitテ、 teen tテ、テ、llテ、? 996 00:48:44,690 --> 00:48:45,930 Voi, en kytke se. 997 00:48:45,930 --> 00:48:48,120 Joten opetus, ettテ、 ollut tarkoituksellista. 998 00:48:48,120 --> 00:48:52,480 >> Joten virhe, enemmテ、n prosenttia tuloksia kuin data argumentteja. 999 00:48:52,480 --> 00:48:54,940 Ja tテ、mテ、 on, vuonna line 7-- ok, joten minulla on, 1000 00:48:54,940 --> 00:48:56,690 lainaus lainaus pテ、テ、ttyy, se minun merkkijono printf. 1001 00:48:56,690 --> 00:48:58,151 Minulla on prosenttimerkki. 1002 00:48:58,151 --> 00:48:59,650 Mutta olen puuttuu toinen argumentti. 1003 00:48:59,650 --> 00:49:03,190 >> Olen puuttuu pilkku s, mikテ、 En ole aiemmissa esimerkeissテ、. 1004 00:49:03,190 --> 00:49:06,650 Joten hyvテ、 tilaisuus korjata yksi virhe, vahingossa. 1005 00:49:06,650 --> 00:49:09,950 Ja nyt minテ、 juoksen string0, kirjoita Zamyla. 1006 00:49:09,950 --> 00:49:10,970 OK, hei Zamyla. 1007 00:49:10,970 --> 00:49:14,144 >> Joten olemme ajaa tテ、llaista ohjelmaa muutamia eri kertaa nyt. 1008 00:49:14,144 --> 00:49:16,310 Mutta Tehdテ、テ、n jotain hieman erilainen tテ、llテ、 kertaa. 1009 00:49:16,310 --> 00:49:19,450 Sen sijaan vain tulostus Zamyla n Koko nimi ulos printf, 1010 00:49:19,450 --> 00:49:21,350 Tehdテ、テ、n se merkki kerrallaan. 1011 00:49:21,350 --> 00:49:22,700 >> Aion kテ、yttテ、テ、 silmukka. 1012 00:49:22,700 --> 00:49:26,160 Ja aion antaa itselleni laskenta muuttuja, nimeltテ、テ、n i. 1013 00:49:26,160 --> 00:49:33,530 Ja aion pitテ、テ、 iteroimalla, niin kunhan i on pienempi kuin pituus s. 1014 00:49:33,530 --> 00:49:35,930 >> On kテ、ynyt ilmi, emme Tテ、tテ、 viimeistテ、 kertaa, 1015 00:49:35,930 --> 00:49:39,100 ettテ、 c mukana toiminto nimeltテ、テ、n Stirling. 1016 00:49:39,100 --> 00:49:42,690 Takaisin seuraavana pテ、ivテ、nテ、, ja yleensテ、kin edelleen toteutettaessa toimintoja, 1017 00:49:42,690 --> 00:49:45,405 ihmisillテ、 usein valita hyvin ytimekテ、s nimet tuollainen テ、テ、ni 1018 00:49:45,405 --> 00:49:48,280 kuten mitテ、 haluat, vaikka se on puuttuu muutamia vokaaleja tai kirjaimia. 1019 00:49:48,280 --> 00:49:50,660 Joten Stirling on nimi on toiminto, 1020 00:49:50,660 --> 00:49:53,880 vie argumentti vテ、lillテ、 Suluissa ettテ、 pitテ、isi olla merkkijono. 1021 00:49:53,880 --> 00:49:56,910 Ja se vain palauttaa kokonaisluvun, pituus merkkijonon. 1022 00:49:56,910 --> 00:50:00,580 >> Joten tテ、mテ、 silmukka rivillテ、 7 on menossa aloittaa laskemisen i on yhtテ、 suuri kuin 0. 1023 00:50:00,580 --> 00:50:02,530 Se tulee kasvattaa i on jokaisen iteraation 1024 00:50:02,530 --> 00:50:04,350 1, kun olemme tehneet muutaman kerran. 1025 00:50:04,350 --> 00:50:06,780 Mutta se tulee vain tehdテ、 Tテ、mテ、n asti pisteeseen 1026 00:50:06,780 --> 00:50:09,660 kun i on pituus merkkijonon itse. 1027 00:50:09,660 --> 00:50:14,520 >> Joten tテ、mテ、 on tapa, lopulta, iteroimalla yli merkkiテ、 1028 00:50:14,520 --> 00:50:17,430 merkkijono sellaisenaan seuraavasti. 1029 00:50:17,430 --> 00:50:20,670 Aion tulostaa ole Koko merkkijono, mutta prosenttia c, 1030 00:50:20,670 --> 00:50:22,860 yhden merkin jonka jテ、lkeen uusi rivi. 1031 00:50:22,860 --> 00:50:24,880 Ja sitten aion mennテ、 eteenpテ、in, ja tarvitsen 1032 00:50:24,880 --> 00:50:29,080 sanoa haluat tulostaa nteen luonnetta s. 1033 00:50:29,080 --> 00:50:33,450 >> Joten jos i on muuttuja, joka ilmaisee indeksi merkkijono, jossa 1034 00:50:33,450 --> 00:50:37,230 olet siinテ、, minun tテ、ytyy pystyテ、 sanoa, anna minulle nnen luonnetta s. 1035 00:50:37,230 --> 00:50:40,390 Ja c on tapa tehdテ、 Tテ、mテ、n hakasulkeilla. 1036 00:50:40,390 --> 00:50:43,679 Sinテ、 yksinkertaisesti sanoa nimen merkkijono, joka tテ、ssテ、 tapauksessa on s. 1037 00:50:43,679 --> 00:50:46,970 Sitten kテ、ytテ、t hakasulkeita, jotka ovat yleensテ、 vain ylテ、puolella rivinvaihtonテ、ppテ、intテ、 1038 00:50:46,970 --> 00:50:48,110 nテ、ppテ、intテ、. 1039 00:50:48,110 --> 00:50:52,410 Ja sitten laitat indeksi merkki, ettテ、 haluat tulostaa. 1040 00:50:52,410 --> 00:50:55,960 Joten indeksin olemaan number-- 0 tai 1, tai 2, tai 3, tai piste, 1041 00:50:55,960 --> 00:50:57,590 piste, piste, joitakin muita numero. 1042 00:50:57,590 --> 00:51:00,920 >> Ja voimme varmistaa, ettテ、 se tulee olla oikea mテ、テ、rテ、, koska olen 1043 00:51:00,920 --> 00:51:02,360 alkaa laskea 0. 1044 00:51:02,360 --> 00:51:07,020 Ja oletuksena, ensimmテ、inen merkki merkkijono on sovitun kテ、ytテ、nnテカn 0. 1045 00:51:07,020 --> 00:51:09,230 Ja toinen merkki on teline 1. 1046 00:51:09,230 --> 00:51:11,120 Ja kolmas merkki on kiinnike 2. 1047 00:51:11,120 --> 00:51:13,630 Ja et halua mennテ、 liian pitkテ、lle, mutta emme, koska olemme 1048 00:51:13,630 --> 00:51:17,780 menossa vain kasvattaa i kunnes se on yhtテ、 suuri kuin langan pituutta. 1049 00:51:17,780 --> 00:51:20,210 Ja jossa vaiheessa, Tテ、mテ、n silmukan pysテ、htyy. 1050 00:51:20,210 --> 00:51:25,550 >> Joten anna minun mennテ、 eteenpテ、in ja tallentaa tテ、mテ、n ohjelma, ja ajaa tehdテ、 jono 0. 1051 00:51:25,550 --> 00:51:28,400 Mutta minテ、 mokasin. 1052 00:51:28,400 --> 00:51:35,390 Epテ、suorasti julistaa kirjaston funktion Stirling tyypin niin ja such-- nyt, 1053 00:51:35,390 --> 00:51:36,430 tテ、mテ、 kuulostaa tutulta. 1054 00:51:36,430 --> 00:51:37,440 Mutta se ei ole printf. 1055 00:51:37,440 --> 00:51:38,540 Ja se ei saa merkkijono. 1056 00:51:38,540 --> 00:51:40,480 >> En tyriテ、 vuonna samalla tavalla tテ、llテ、 kertaa. 1057 00:51:40,480 --> 00:51:45,100 Mutta huomaa tテ、テ、llテ、 hieman alaspテ、in lisテ、ksi, kuuluu otsikon string.h, 1058 00:51:45,100 --> 00:51:47,210 mテ、テ、rテ、yksiテ、 tarvittavista ilmoitus Stirling. 1059 00:51:47,210 --> 00:51:48,820 Joten on todella vihje siellテ、. 1060 00:51:48,820 --> 00:51:51,670 >> Ja todellakin se osoittautuu on toinen otsikkotiedoston 1061 00:51:51,670 --> 00:51:53,970 ettテ、 olemme ei kテ、ytetテ、 luokassa vielテ、, mutta se on 1062 00:51:53,970 --> 00:51:56,480 joukossa kテ、ytettテ、vissテ、 teille, nimeltテ、テ、n string.h. 1063 00:51:56,480 --> 00:52:00,930 Ja kyseisen tiedoston, string.h on Stirling ilmoitettu. 1064 00:52:00,930 --> 00:52:05,220 Joten anna minun mennテ、 eteenpテ、in ja tallentaa, tehdテ、 jono 1065 00:52:05,220 --> 00:52:08,040 0-- mukava, ei virheilmoitukset tテ、llテ、 kertaa. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla, ja Olen aikeissa Enter, 1067 00:52:12,290 --> 00:52:16,710 jossa vaiheessa getstring on menossa palauttaa merkkijonon, laita se s. 1068 00:52:16,710 --> 00:52:21,890 Sitten, ettテ、 silmukka on menossa kerrata yli S: n merkit yksi kerrallaan, 1069 00:52:21,890 --> 00:52:28,420 ja tulostaa ne yksi per rivi, koska Jouduin ettテ、 kenoviiva n lopussa. 1070 00:52:28,420 --> 00:52:34,530 Joten en voinut jテ、ttテ、テ、 ettテ、 kenoviiva n, ja sitten vain tulostaa Zamyla kaikki 1071 00:52:34,530 --> 00:52:37,460 samassa linjassa, tehokkaasti reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf, joka ei ole kovin hyテカdyllistテ、. 1073 00:52:38,999 --> 00:52:40,540 Mutta tテ、ssテ、 tapauksessa, en ole tehnyt sitテ、. 1074 00:52:40,540 --> 00:52:43,610 Olen itse painettu yksi merkin kerrallaan, yksi per rivi, 1075 00:52:43,610 --> 00:52:45,400 jotta voimme itse nテ、hdテ、 vaikutuksen. 1076 00:52:45,400 --> 00:52:46,900 >> Mutta minun pitテ、isi huomata yksi asia tテ、テ、llテ、. 1077 00:52:46,900 --> 00:52:48,930 Ja me palaamme Tテ、ssテ、 tulevassa viikossa. 1078 00:52:48,930 --> 00:52:52,650 Osoittautuu, ettテ、 tテ、mテ、 koodi on mahdollisesti buginen. 1079 00:52:52,650 --> 00:52:56,560 >> On kテ、ynyt ilmi, ettテ、 get merkkijono ja joitakin muita toimintoja elテ、mテ、ssテ、 1080 00:52:56,560 --> 00:53:00,280 eivテ、t vテ、lttテ、mテ、ttテ、 aina palata mitテ、 odotat. 1081 00:53:00,280 --> 00:53:03,010 Tiedテ、mme luokan viimeinen kerran tテ、ssテ、, jotka saavat 1082 00:53:03,010 --> 00:53:04,960 merkkijono on tarkoitus palauttaa merkkijono. 1083 00:53:04,960 --> 00:53:09,900 Mutta mitテ、 jos kテ、yttテ、jテ、 kirjoittaa tテ、llaista pitkテ、 sana, tai kohta, tai essee 1084 00:53:09,900 --> 00:53:13,010 ettテ、 ei vain ole tarpeeksi tietokoneen muistin sopivaksi sitテ、. 1085 00:53:13,010 --> 00:53:15,410 >> Kuten, mitテ、 jos jotain menee vテ、テ、rテ、 alla huppu? 1086 00:53:15,410 --> 00:53:18,400 Se ei ehkテ、 tapahdu usein, mutta se voisi tapahtua kerran 1087 00:53:18,400 --> 00:53:21,520 tテ、llテカin, hyvin harvoin. 1088 00:53:21,520 --> 00:53:25,460 Ja niin kテ、y ilmi, ettテ、 get merkkijono ja toimintoja, kuten se ei vテ、lttテ、mテ、ttテ、 1089 00:53:25,460 --> 00:53:26,380 aina palata jouset. 1090 00:53:26,380 --> 00:53:30,680 He saattavat palauttaa jokin virhe arvo, Joissakin Sentinel arvo niin sanotusti, 1091 00:53:30,680 --> 00:53:32,612 joka osoittaa, ettテ、 jotain on mennyt vikaan. 1092 00:53:32,612 --> 00:53:35,320 Ja te vain tiedテ、 tテ、tテ、 maasta on oppinut sen luokassa nyt, 1093 00:53:35,320 --> 00:53:37,700 tai ovat lukea lisテ、テ、 asiakirjoja. 1094 00:53:37,700 --> 00:53:43,120 On kテ、ynyt ilmi, ettテ、 get merkkijono voi palauttaa arvon nimeltテ、 null. 1095 00:53:43,120 --> 00:53:46,220 Null on erityinen arvo, ettテ、 me will palata tulevassa viikossa. 1096 00:53:46,220 --> 00:53:50,420 Mutta nyt, juuri tietテ、テ、, ettテ、 jos haluan olla todella asiallista eteenpテ、in 1097 00:53:50,420 --> 00:53:52,650 kテ、yttテ、en get string, I ei pitテ、isi vain kutsua sitテ、, 1098 00:53:52,650 --> 00:53:56,870 ja sokeasti kテ、yttテ、テ、 paluuarvon, luottaen siihen, ettテ、 se on merkkijono. 1099 00:53:56,870 --> 00:53:59,420 >> Haluan ensin sanoa, hei, hetkinen, vain 1100 00:53:59,420 --> 00:54:03,380 toteuttaa, jos s ei ole sama kuin null, jos null, jテ、lleen, 1101 00:54:03,380 --> 00:54:04,660 on vain joitakin erityisiテ、 arvoa. 1102 00:54:04,660 --> 00:54:07,770 Ja se on ainoa erityinen arvon tarvitse pelテ、tテ、 varten get merkkijono. 1103 00:54:07,770 --> 00:54:10,900 Hanki merkkijonon joko menossa palauttaa merkkijono tai null. 1104 00:54:10,900 --> 00:54:17,219 >> Ja tテ、mテ、 huutomerkki yhtテ、lテ、isyysmerkki saatat tietテ、テ、 ehkテ、 matematiikka luokka 1105 00:54:17,219 --> 00:54:20,510 ettテ、 saatat piirtテ、テ、 yhtテ、lテ、isyysmerkki kanssa linjan lテ、pi osoittamaan ole samanarvoisia. 1106 00:54:20,510 --> 00:54:23,135 Se ei ole yleensテ、 luonteeltaan voit kirjoittaa nテ、ppテ、imistテカllテ、. 1107 00:54:23,135 --> 00:54:26,480 Ja niin useimmissa ohjelmointikieliテ、, kun haluat sanoa erisuuri, 1108 00:54:26,480 --> 00:54:29,160 kテ、ytテ、t huutomerkki, muuten kutsutaan Bang. 1109 00:54:29,160 --> 00:54:33,180 Joten sanot bang yhtテ、 kuin, mikテ、 ei tarkoita yhtテ、 kuin loogisesti. 1110 00:54:33,180 --> 00:54:38,060 Se on aivan kuin siellテ、 ei ole suurempi kuin, tai yhtテ、 suuri tai pienempi kuin 1111 00:54:38,060 --> 00:54:41,270 tai yhtテ、 nテ、ppテ、imistテカn joka tekee kaiken yhdessテ、 symbolin. 1112 00:54:41,270 --> 00:54:44,020 Joten siksi, aikaisemmissa esimerkeissテ、, teit avoin teline, ja sitten 1113 00:54:44,020 --> 00:54:48,670 yhtテ、lテ、isyysmerkki, voidakseen tehdテ、 suurempi tai vaikkapa alle. 1114 00:54:48,670 --> 00:54:49,910 >> Joten mitテ、 takeaway tテ、テ、llテ、? 1115 00:54:49,910 --> 00:54:53,880 Tテ、mテ、 on yksinkertaisesti tapa nyt on Kyseisellテ、 syntaksi, tテ、mテ、 ominaisuus, 1116 00:54:53,880 --> 00:54:57,390 iteroimalla yksilテカllisiin merkkijonon merkkien. 1117 00:54:57,390 --> 00:55:00,260 Ja aivan kuten ne neliテカ suluissa voit saada niitテ、, 1118 00:55:00,260 --> 00:55:03,790 pitテ、テ、 nテ、itテ、 neliテカ suluissa Tテ、llainen vihjaten tテ、mテ、n taustalla 1119 00:55:03,790 --> 00:55:06,040 suunnittelu, jolloin jokainen luonnetta sisテ、llテ、 merkkijono 1120 00:55:06,040 --> 00:55:10,180 on erテ、テ、nlainen pakattuna jossain alla huppu tietokoneen muistiin. 1121 00:55:10,180 --> 00:55:12,340 >> Mutta Tehdテ、テ、n muunnelmaa. 1122 00:55:12,340 --> 00:55:14,880 Osoittautuu, ettテ、 tテ、mテ、 Ohjelma on oikea. 1123 00:55:14,880 --> 00:55:18,810 Joten per CS50 kirveille arvioimiseksi koodi, tテ、mテ、 on oikea nyt. 1124 00:55:18,810 --> 00:55:22,959 Erityisesti nyt, ettテ、 olen tarkistanut null, tテ、mテ、 ohjelma pitテ、isi koskaan kaatua. 1125 00:55:22,959 --> 00:55:24,500 Ja minテ、 vain tiedテ、n, ettテ、 kokemuksesta. 1126 00:55:24,500 --> 00:55:28,040 Mutta ei ole mitテ、テ、n muuta, voimme todella mennテ、 pieleen. 1127 00:55:28,040 --> 00:55:31,860 Mutta se ei ole kovin hyvin suunniteltu, koska mennテ、テ、n takaisin perusasioihin. 1128 00:55:31,860 --> 00:55:34,450 >> Ensimmテ、inen, principles-- Mitテ、 for-silmukka tehdテ、? 1129 00:55:34,450 --> 00:55:36,290 A silmukka tekee kolme asiaa. 1130 00:55:36,290 --> 00:55:39,340 Se alustaa joitakin arvoa, jos kysyt sitテ、. 1131 00:55:39,340 --> 00:55:41,770 Se tarkistaa ehdon. 1132 00:55:41,770 --> 00:55:45,380 Ja sitten jokaisen iteraation, jokaisen jakson, 1133 00:55:45,380 --> 00:55:49,330 se kasvattaa joitakin arvo tai arvot, tテ、テ、llテ、. 1134 00:55:49,330 --> 00:55:50,600 >> Mitテ、 tテ、mテ、 tarkoittaa? 1135 00:55:50,600 --> 00:55:52,940 Me alustaa i 0. 1136 00:55:52,940 --> 00:55:58,610 Tarkistamme ja varmista i on pienempi kuin pituus s, joka on Z-A-M-Y-L-A, 1137 00:55:58,610 --> 00:55:59,900 niin, joka on pienempi kuin 6. 1138 00:55:59,900 --> 00:56:02,590 Ja, todellakin, 0, kun vテ、hemmテ、n kuin 6. 1139 00:56:02,590 --> 00:56:05,580 >> Me tulostaa Z pテ、テ、ssテ、 Zamyla nimi. 1140 00:56:05,580 --> 00:56:08,080 Sitten kasvattaa i 0-1. 1141 00:56:08,080 --> 00:56:11,290 Me sitten tarkistaa, on 1 vテ、hemmテ、n kuin pituus s? 1142 00:56:11,290 --> 00:56:13,270 Pituus s on 6. 1143 00:56:13,270 --> 00:56:13,950 Kyllテ、 se on. 1144 00:56:13,950 --> 00:56:16,880 >> Joten me tulostaa in Zamyla nimi, ZA. 1145 00:56:16,880 --> 00:56:20,090 Me kasvattaa i 0, 1, 2. 1146 00:56:20,090 --> 00:56:23,720 Me sitten tarkistaa, on 2 alle pituus Zamyla nimi. 1147 00:56:23,720 --> 00:56:25,380 6- joten 2 on alle 6. 1148 00:56:25,380 --> 00:56:30,460 Kyllテ、, nyt tulostaa nyt M Zamyla nimi, kolmas merkki. 1149 00:56:30,460 --> 00:56:34,110 >> Tテ、rkeintテ、 tテ、ssテ、 on, ettテ、 kullakin iterointia tarina, olen tarkkailun, 1150 00:56:34,110 --> 00:56:37,810 on i pienempi kuin pituus Zamyla? 1151 00:56:37,810 --> 00:56:40,350 Mutta saalis on, ettテ、 Stirling ei ole omaisuutta. 1152 00:56:40,350 --> 00:56:43,100 Ne teistテ、, jotka ovat ohjelmoitu ennen Java tai muilla kielillテ、 1153 00:56:43,100 --> 00:56:46,310 tunteakseen merkkijonon pituuden on ominaisuus, vain joitakin lukea vain arvoa. 1154 00:56:46,310 --> 00:56:50,220 >> C tテ、ssテ、 tapauksessa, jos tテ、mテ、 on funktio, joka on kirjaimellisesti 1155 00:56:50,220 --> 00:56:53,520 lukumテ、テ、rテ、n laskemisen merkkiテ、 Zamyla joka kerta 1156 00:56:53,520 --> 00:56:54,740 kutsumme tテ、tテ、 toiminnallisuutta. 1157 00:56:54,740 --> 00:56:58,500 Joka kerta kun pyytテ、テ、 tietokoneen kテ、yttテ、mテ、テ、n Stirling, se vilkaisemalla Zamyla, 1158 00:56:58,500 --> 00:57:01,960 ja sanomalla Z-A-M-Y-L-A, 6. 1159 00:57:01,960 --> 00:57:02,962 Ja se palaa 6. 1160 00:57:02,962 --> 00:57:04,920 Seuraavan kerran kun soittaa se sisテ、llテ、 ettテ、 silmukka, 1161 00:57:04,920 --> 00:57:08,610 se tulee katsomaan Zamyla jテ、lleen, sanovat Z-A-M-Y-L-A, 6. 1162 00:57:08,610 --> 00:57:10,320 Ja se tulee palauttaa 6. 1163 00:57:10,320 --> 00:57:12,980 Joten mitテ、 tyhmテ、 tテ、stテ、 suunnittelu? 1164 00:57:12,980 --> 00:57:17,700 >> Miksi koodia ole 5 out of 5 suunnittelu juuri nyt, niin sanotusti? 1165 00:57:17,700 --> 00:57:20,600 No, minテ、 kysyy kysymys tarpeettomasti. 1166 00:57:20,600 --> 00:57:23,030 Teen enemmテ、n tyテカtテ、 kuin minun tテ、ytyy. 1167 00:57:23,030 --> 00:57:25,370 >> Joten vaikka vastaus on oikea, olen 1168 00:57:25,370 --> 00:57:29,560 kysyy tietokone, mikテ、 on pituus Zamyla uudelleen, 1169 00:57:29,560 --> 00:57:31,380 ja uudestaan, ja uudestaan, ja uudestaan? 1170 00:57:31,380 --> 00:57:33,980 Ja vastaus on koskaan muutu. 1171 00:57:33,980 --> 00:57:35,900 Se on aina olemaan 6. 1172 00:57:35,900 --> 00:57:39,730 >> Joten parempi ratkaisu kuin tテ、mテ、 olisi tテ、mテ、n seuraavan version. 1173 00:57:39,730 --> 00:57:43,390 Anna minun mennテ、 eteenpテ、in ja laita se erillinen tiedosto nimeltテ、 string1.c, 1174 00:57:43,390 --> 00:57:44,990 vain pitテ、テ、 se erillテ、テ、n. 1175 00:57:44,990 --> 00:57:47,260 Ja se osoittautuu on varten silmukka, voit itse 1176 00:57:47,260 --> 00:57:50,210 julistaa useita muuttujia kerralla. 1177 00:57:50,210 --> 00:57:53,460 >> Joten aion pitテ、テ、 i ja aseta se 0. 1178 00:57:53,460 --> 00:57:56,190 Mutta minテ、 myテカs menossa lisテ、tテ、 pilkku, ja sanoa, 1179 00:57:56,190 --> 00:58:01,050 antaa minulle muuttuja nimeltテ、 n, jonka arvo on merkkijonon pituus s. 1180 00:58:01,050 --> 00:58:09,410 Ja nyt, tee tilani kunhan i on pienempi kuin n. 1181 00:58:09,410 --> 00:58:14,140 >> Joten tテ、llテ、 tavalla, logiikka on identtiset lopussa pテ、ivテ、n. 1182 00:58:14,140 --> 00:58:18,280 Olen kuitenkin muistaen arvo 6, tテ、ssテ、 tapauksessa. 1183 00:58:18,280 --> 00:58:19,780 Mikテ、 on pituus Zamyla nimi? 1184 00:58:19,780 --> 00:58:20,860 Ja olen laskemisesta sitテ、 n. 1185 00:58:20,860 --> 00:58:23,050 >> Ja olen edelleen tarkkailun ehto joka kerta. 1186 00:58:23,050 --> 00:58:24,300 On 0 vテ、hintテ、テ、n 6? 1187 00:58:24,300 --> 00:58:25,600 On 1 vテ、hemmテ、n kuin 6? 1188 00:58:25,600 --> 00:58:28,600 On 2 alle 6, ja niin edelleen? 1189 00:58:28,600 --> 00:58:31,914 >> Mutta en pyydテ、 tietokonetta uudestaan, ja uudestaan, mikテ、 1190 00:58:31,914 --> 00:58:33,080 pituus Zamyla nimi? 1191 00:58:33,080 --> 00:58:34,320 Mitテ、 pituus Zamyla nimi? 1192 00:58:34,320 --> 00:58:35,986 Mitテ、 pituus tテ、mテ、n Zamyla nimi? 1193 00:58:35,986 --> 00:58:40,440 Olen kirjaimellisesti muistaa, ettテ、 ensimmテ、inen ja vain vastata tテ、ssテ、 toisessa muuttujan n. 1194 00:58:40,440 --> 00:58:45,280 Joten tテ、mテ、 nyt olisi paitsi oikea, mutta myテカs hyvin suunniteltu. 1195 00:58:45,280 --> 00:58:46,670 >> Nyt entテ、 tyyli? 1196 00:58:46,670 --> 00:58:48,866 Olen Nimesin muuttujat melko hyvin, sanoisin. 1197 00:58:48,866 --> 00:58:50,240 He Super ytimekテ、s juuri nyt. 1198 00:58:50,240 --> 00:58:52,090 Ja se on tテ、ysin kunnossa. 1199 00:58:52,090 --> 00:58:55,120 >> Jos sinulla on vain yksi merkkijono ohjelmassa, 1200 00:58:55,120 --> 00:58:56,860 voit yhtテ、 hyvin kutsua sitテ、 s jousikvartetille. 1201 00:58:56,860 --> 00:58:59,370 Jos sinulla on vain yksi muuttuja laskemiseksi ohjelmassa, 1202 00:58:59,370 --> 00:59:00,710 voit yhtテ、 hyvin kutsua sitテ、 i. 1203 00:59:00,710 --> 00:59:03,500 Jos on pituus, n on super yhteinen samoin. 1204 00:59:03,500 --> 00:59:05,800 Mutta en ole kommentoinut mitテ、テ、n minun koodia. 1205 00:59:05,800 --> 00:59:09,200 >> En ole ilmoittanut reader-- onko se minun TF, tai TA, 1206 00:59:09,200 --> 00:59:12,460 tai vain colleague-- mitテ、 on oletettu on kテ、ynnissテ、 tテ、ssテ、 ohjelmassa. 1207 00:59:12,460 --> 00:59:15,760 Ja niin saada hyvテ、 tyyli, mitテ、 haluaisi tehdテ、 1208 00:59:15,760 --> 00:59:24,580 on this-- jotain kuten pyytテ、テ、 kテ、yttテ、jテ、ltテ、 syテカtettテ、. 1209 00:59:24,580 --> 00:59:26,670 Voisin kirjoittaa Tテ、mテ、n monin tavoin. 1210 00:59:26,670 --> 00:59:35,630 >> Varmista S-- varmista get merkkijono palautetaan merkkijono. 1211 00:59:35,630 --> 00:59:40,280 Ja sitten here-- ja tテ、mテ、 on ehkテ、 tテ、rkein comment-- toistaa 1212 00:59:40,280 --> 00:59:44,450 yli merkkiテ、 s kerrallaan. 1213 00:59:44,450 --> 00:59:47,060 Ja voisin kテ、yttテ、テ、 mitテ、 tahansa valikoima Englanti kielen 1214 00:59:47,060 --> 00:59:49,650 tテ、ssテ、 kuvaamaan kukin Nテ、iden paloina koodia. 1215 00:59:49,650 --> 00:59:52,740 >> Huomaa, ettテ、 en ole laittaa kommentoida jokainen rivi koodia, 1216 00:59:52,740 --> 00:59:55,690 oikeastaan 窶銀€久ain on mielenkiintoinen niitテ、, ne jotka 1217 00:59:55,690 --> 00:59:59,460 on joitakin merkitys etten tekisi haluamme tehdテ、 Super selvテ、ksi jonkun 1218 00:59:59,460 --> 01:00:00,460 kテ、sittelyssテ、 minun koodi. 1219 01:00:00,460 --> 01:00:02,920 Ja miksi soitat saat string pyytテ、テ、 kテ、yttテ、jテ、ltテ、 syテカttテ、テ、? 1220 01:00:02,920 --> 01:00:05,450 Jopa, ettテ、 yksi ei vテ、lttテ、mテ、ttテ、 kaiken kuvaileva. 1221 01:00:05,450 --> 01:00:09,340 Mutta se auttaa kertoa tarinan, koska toinen rivi tarina on, varmista 1222 01:00:09,340 --> 01:00:10,740 saada merkkijono palautetaan merkkijono. 1223 01:00:10,740 --> 01:00:14,260 >> Ja kolmas rivi tarina on, kerrata yli merkkiテ、 s yhteen 1224 01:00:14,260 --> 01:00:15,380 kerrallaan. 1225 01:00:15,380 --> 01:00:17,920 Ja nyt vain hyvテ、 toimenpide, Aion mennテ、 eteenpテ、in ja lisテ、tテ、 1226 01:00:17,920 --> 01:00:24,560 yhden huomautuksen, ettテ、 vain sanoo print i: nnen hahmo s. 1227 01:00:24,560 --> 01:00:26,520 Nyt, mitテ、 olen tehnyt pテ、ivテ、n pテ、テ、tteeksi? 1228 01:00:26,520 --> 01:00:29,190 >> Olen lisテ、nnyt joitakin Englanti sanojen muodossa kommentteja. 1229 01:00:29,190 --> 01:00:32,700 Kautta-slash symboli tarkoittaa, hei, tietokone tテ、mテ、 on ihmisen, 1230 01:00:32,700 --> 01:00:33,820 ei teille, tietokone. 1231 01:00:33,820 --> 01:00:35,119 Niinpテ、 he huomiotta loogisesti. 1232 01:00:35,119 --> 01:00:35,910 Ne ovat vain siellテ、. 1233 01:00:35,910 --> 01:00:39,830 >> Ja todellakin, CS50 IDE nテ、yttテ、テ、 niitテ、 harmaa, koska ne ovat hyテカdyllisiテ、, mutta ei avain 1234 01:00:39,830 --> 01:00:41,000 ohjelmaan. 1235 01:00:41,000 --> 01:00:42,570 Huomaa mitテ、 voit nyt tehdテ、. 1236 01:00:42,570 --> 01:00:44,950 Onko tiedテ、t C ohjelmointi tai ei, 1237 01:00:44,950 --> 01:00:47,722 voi vain seistテ、 takaisin tテ、hテ、n ohjelma, ja kuoria kommentteja. 1238 01:00:47,722 --> 01:00:50,180 Pyydテ、 kテ、yttテ、jテ、 syテカttテ、テ、, varmista saada merkkijono palautetaan merkkijono, 1239 01:00:50,180 --> 01:00:53,009 kerrata yli merkkiテ、 s yksi kerrallaan, tulostaa merkki 1240 01:00:53,009 --> 01:00:55,550 i: nnen merkin S-- et edes tarvitse katsoa koodia 1241 01:00:55,550 --> 01:00:57,270 ymmテ、rtテ、テ、, mitテ、 tテ、mテ、 ohjelma tekee. 1242 01:00:57,270 --> 01:01:00,280 Ja mikテ、 vielテ、 parempaa, jos itse nテ、yttテ、テ、 Tテ、mテ、n ohjelman viikon tai kaksi, 1243 01:01:00,280 --> 01:01:02,280 tai kuukauden tai vuoden, tekin ei ole 1244 01:01:02,280 --> 01:01:04,420 tuijottaa koodia, yrittテ、テ、 muistaa, 1245 01:01:04,420 --> 01:01:06,630 mitテ、 minテ、 yrittテ、nyt tehdテ、 tテ、tテ、 koodia? 1246 01:01:06,630 --> 01:01:07,770 >> Sinテ、 olet kertonut itse. 1247 01:01:07,770 --> 01:01:11,660 Olet kuvattu sitテ、 itse, tai jotkut kollegansa, tai TA tai TF. 1248 01:01:11,660 --> 01:01:14,860 Ja niin tテ、mテ、 olisi nyt oikea, ja hyvテ、 muotoilu, 1249 01:01:14,860 --> 01:01:18,210 ja lopulta hyvテ、 tyyli samoin. 1250 01:01:18,210 --> 01:01:19,990 Niin pitテ、テ、 tテ、mテ、 mielessテ、. 1251 01:01:19,990 --> 01:01:22,200 >> Joten on olemassa yksi muu asia aion tehdテ、 tテ、テ、llテ、 1252 01:01:22,200 --> 01:01:28,240 joka voi nyt paljastaa, mitテ、 on meneillテ、テ、n alla huppu. 1253 01:01:28,240 --> 01:01:30,390 Joten ei tテ、tテ、 ominaisuutta C, ja muita kieliテ、, 1254 01:01:30,390 --> 01:01:33,010 kutsutaan tyypittely ettテ、 joko epテ、suorasti 1255 01:01:33,010 --> 01:01:37,250 tai eksplisiittisesti voit muuntaa yhdestテ、 tietotyyppi toiseen. 1256 01:01:37,250 --> 01:01:39,800 Olemme tekemisissテ、 niin pitkテ、lle tテ、nテ、テ、n jousille. 1257 01:01:39,800 --> 01:01:41,250 >> Ja jouset ovat merkkejテ、. 1258 01:01:41,250 --> 01:01:44,910 Mutta muistaa viikosta 0, mitテ、 merkkejテ、? 1259 01:01:44,910 --> 01:01:49,334 Merkit ovat vain abstraktio pテ、テ、lle numbers-- desimaalin numeroita, 1260 01:01:49,334 --> 01:01:52,500 ja desimaaliluvuilla ovat todella vain abstraktio pテ、テ、lle binテ、テ、riluvut, 1261 01:01:52,500 --> 01:01:53,720 koska me mテ、テ、ritelty sitテ、. 1262 01:01:53,720 --> 01:01:55,540 >> Joten merkit ovat numeroita. 1263 01:01:55,540 --> 01:01:58,410 Ja numerot ovat merkkejテ、, vain asiayhteydestテ、 riippuen. 1264 01:01:58,410 --> 01:02:01,250 Ja kテ、y ilmi, ettテ、 sisテ、llテ、 tietokoneohjelman, 1265 01:02:01,250 --> 01:02:06,830 voit mテ、テ、rittテ、テ、, miten haluat etsiテ、 at bitit sisテ、llテ、 kyseisen ohjelman? 1266 01:02:06,830 --> 01:02:10,400 >> Recall viikolla 0, ettテ、 meillテ、 oli Ascii, joka on vain tテ、mテ、n koodin 1267 01:02:10,400 --> 01:02:11,620 kartoitus kirjeitテ、 numeroita. 1268 01:02:11,620 --> 01:02:13,660 Ja sanoimme, pテ、テ、oma A on 65. 1269 01:02:13,660 --> 01:02:15,860 Pテ、テ、oma B on 66, ja niin edelleen. 1270 01:02:15,860 --> 01:02:20,500 >> Ja ilmoitus, meillテ、 lテ、hinnテ、 on merkkiテ、 siitテ、 ylテ、rivin tテ、テ、llテ、, kuten C kutsuisi heitテ、, 1271 01:02:20,500 --> 01:02:23,400 merkkejテ、, ja sitten ints toisella rivillテ、. 1272 01:02:23,400 --> 01:02:28,180 Ja se osoittautuu voit muuntaa saumattomasti vテ、lillテ、, tyypillisesti. 1273 01:02:28,180 --> 01:02:30,042 Ja jos me haluamme tehdテ、 Tテ、mテ、n tarkoituksella, me 1274 01:02:30,042 --> 01:02:31,750 kannattaa puuttua jotain tテ、llaista. 1275 01:02:31,750 --> 01:02:33,590 >> Meidテ、n kannattaa muuntaa isoja alentaa 1276 01:02:33,590 --> 01:02:35,330 tapauksessa, tai pienet kirjaimet isoiksi. 1277 01:02:35,330 --> 01:02:38,000 Ja se osoittautuu siellテ、 n oikeastaan 窶銀€橘uvio tテ、テ、llテ、 1278 01:02:38,000 --> 01:02:39,900 voimme omaksua vain hetken. 1279 01:02:39,900 --> 01:02:44,120 Mutta Katsotaanpa ensin klo Esimerkkinテ、 Nテ、in yksiselitteisesti. 1280 01:02:44,120 --> 01:02:46,340 >> Aion mennテ、 takaisin CS50 IDE. 1281 01:02:46,340 --> 01:02:50,640 Aion luoda tiedosto nimeltテ、 Ascii 0.c. 1282 01:02:50,640 --> 01:02:55,960 Ja aion mennテ、 eteenpテ、in ja lisテ、tテ、 minun standardi io.h huipulla, int main void 1283 01:02:55,960 --> 01:02:57,370 ylテ、reunassa tehtテ、vテ、ni. 1284 01:02:57,370 --> 01:03:02,700 Ja sitten olen juuri menossa tekemテ、テ、n following-- for-silmukka i on yhtテ、 suuri kuin, 1285 01:03:02,700 --> 01:03:04,610 sanokaamme, 65. 1286 01:03:04,610 --> 01:03:10,460 >> Ja sitten minテ、 tulee olemaan pienempi kuin 65, plus 26 kirjaimia. 1287 01:03:10,460 --> 01:03:12,640 Joten minテ、 anna tietokoneen tehdテ、 matematiikka minua siellテ、. 1288 01:03:12,640 --> 01:03:15,100 Ja sitten sisテ、lle silmukan, mitテ、 olen menossa tulostaa? 1289 01:03:15,100 --> 01:03:19,230 >> % C on% i backslash n. 1290 01:03:19,230 --> 01:03:21,290 Ja nyt haluan kytkeテ、 kaksi arvoa. 1291 01:03:21,290 --> 01:03:24,530 Olen tilapテ、isesti laittaa kysymyksen merkitsee siellテ、 kutsua kysymykseen. 1292 01:03:24,530 --> 01:03:29,940 >> Haluan kerrata 65 lテ、htien 26 kirjaimet, 1293 01:03:29,940 --> 01:03:35,190 tulostus pois jokaisen iteraation ettテ、 hahmon kiinteテ、 vastaava. 1294 01:03:35,190 --> 01:03:38,299 Toisin sanoen, haluan kerrata yli 26 numerot tulostus 1295 01:03:38,299 --> 01:03:41,590 mitテ、 ASCII on, kirjain, ja mitテ、 vastaava mテ、テ、rテ、 is-- 1296 01:03:41,590 --> 01:03:44,650 oikeastaan 窶銀€久ain uudestaan kaaviota ettテ、 dia. 1297 01:03:44,650 --> 01:03:47,010 Joten mitテ、 pitテ、isi nテ、mテ、 kysymysmerkkejテ、 olla? 1298 01:03:47,010 --> 01:03:51,760 >> No, kテ、y ilmi, ettテ、 toinen pitテ、isi olla vain muuttuja i. 1299 01:03:51,760 --> 01:03:53,860 Haluan nテ、hdテ、, ettテ、 lukuna. 1300 01:03:53,860 --> 01:03:58,920 Ja keskellテ、 argumentti tテ、テ、llテ、, voin kertoa tietokoneen 1301 01:03:58,920 --> 01:04:03,470 hoitoon ettテ、 kokonaisluku i kuten merkki, niin kuin 1302 01:04:03,470 --> 01:04:05,880 korvata sen tテ、stテ、 prosenttia C. 1303 01:04:05,880 --> 01:04:07,990 >> Toisin sanoen, jos minテ、, ihmisen ohjelmoija, tietテ、テ、 1304 01:04:07,990 --> 01:04:09,865 nテ、mテ、 ovat vain numeroita pテ、ivテ、n pテ、テ、tteeksi. 1305 01:04:09,865 --> 01:04:12,500 Ja tiedテ、n, ettテ、 65 olisi karttaa joitakin luonnetta. 1306 01:04:12,500 --> 01:04:15,310 Tテ、mテ、n nimenomaisen valettu, jossa on suluissa, 1307 01:04:15,310 --> 01:04:18,840 nimi tietotyypin haluat muuntaa, ja suljettu suluissa, 1308 01:04:18,840 --> 01:04:21,200 voit kertoa tietokone, hei, tietokone, 1309 01:04:21,200 --> 01:04:24,130 muuntaa tテ、mテ、n kokonaisluku char. 1310 01:04:24,130 --> 01:04:26,250 >> Joten kun kテ、ytテ、n tテ、tテ、 Ohjelman jテ、lkeen kokoamiseen, 1311 01:04:26,250 --> 01:04:29,740 katsotaanpa mitテ、 minテ、 get-- tehdテ、 ASCII 0. 1312 01:04:29,740 --> 01:04:33,020 Hiivatti, mitテ、 tein vテ、テ、rin tテ、テ、llテ、? 1313 01:04:33,020 --> 01:04:35,884 Kテ、ytテ、 pimeテ、n tunnisteen, kunnossa, ei tahallinen, 1314 01:04:35,884 --> 01:04:37,800 mutta katsotaan, jos emme voi Syy kautta. 1315 01:04:37,800 --> 01:04:41,220 >> Joten viiva five-- joten en saanut kovin pitkテ、lle ennen ruuvaamalla ylテカspテ、in. 1316 01:04:41,220 --> 01:04:42,140 Se on okei. 1317 01:04:42,140 --> 01:04:46,560 Joten linja 5 i on yhtテ、 kuin 65-- nテ、en. 1318 01:04:46,560 --> 01:04:50,130 Niin muista, ettテ、 C, toisin kuin jotkut kieliテ、 jos olet etukテ、teen ohjelmointi 1319 01:04:50,130 --> 01:04:52,190 kokemus, olet kertoa tietokoneen, 1320 01:04:52,190 --> 01:04:55,040 toisin Scratch, mitテ、 tyyppinen muuttuja on. 1321 01:04:55,040 --> 01:04:56,860 >> Ja unohdin hokeman tテ、テ、llテ、. 1322 01:04:56,860 --> 01:04:59,200 Linjassa viisi, olen alkanut kテ、yttテ、テ、 i. 1323 01:04:59,200 --> 01:05:01,560 Mutta en ole kertonut C mitテ、 tietotyyppi se on. 1324 01:05:01,560 --> 01:05:04,570 Joten aion mennテ、 tテ、テ、llテ、 ja sanovat, ah, tee se kokonaisluku. 1325 01:05:04,570 --> 01:05:07,050 >> Nyt aion mennテ、 eteenpテ、in ja kテ、テ、ntテ、テ、. 1326 01:05:07,050 --> 01:05:08,080 Tテ、mテ、 kiinteテ、nテ、. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 Anna, joka on erテ、テ、nlainen jテ、テ、htyテ、. 1328 01:05:12,660 --> 01:05:15,360 Ei vain se huippunopea kysyテ、 tietokone tテ、tテ、 kysymystテ、, 1329 01:05:15,360 --> 01:05:18,885 ennemmin kuin sen nyt dia, se tulostaa yksi per rivi, A on 65, 1330 01:05:18,885 --> 01:05:24,860 B on 66, aina down-- koska olen teki tテ、mテ、n 26 times-- kirjaimia z, 1331 01:05:24,860 --> 01:05:25,630 joka on 90. 1332 01:05:25,630 --> 01:05:27,790 Ja, itse asiassa, hieman テ、lykkテ、テ、mpiテ、 olisi 1333 01:05:27,790 --> 01:05:31,030 ovat olleet minulle ei luottaa tietokoneen lisテ、tテ、 26. 1334 01:05:31,030 --> 01:05:34,060 Voisin juuri tehneet 90 samoin, niin kauan 1335 01:05:34,060 --> 01:05:37,390 sillテ、 en tee samaa virhettテ、 kahdesti. 1336 01:05:37,390 --> 01:05:41,880 Haluan mennテ、 lテ、pi z, ei vain lテ、pi y. 1337 01:05:41,880 --> 01:05:44,000 >> Niin, ettテ、 nimenomainen valettu. 1338 01:05:44,000 --> 01:05:47,860 Osoittautuu, ettテ、 tテ、mテ、 ei ole edes tarpeen. 1339 01:05:47,860 --> 01:05:52,480 Anna minun mennテ、 eteenpテ、in ja uusintana tテ、mテ、n kテ、テ、ntテ、jテ、, ja suorita ASCII 0. 1340 01:05:52,480 --> 01:05:54,940 On kテ、ynyt ilmi, ettテ、 C on aika fiksu. 1341 01:05:54,940 --> 01:05:57,150 >> Ja printf, erityisesti, on aika fiksu. 1342 01:05:57,150 --> 01:06:01,260 Jos vain lテ、pテ、istテ、vテ、 i kahdesti molemmille paikkamerkit, printf 1343 01:06:01,260 --> 01:06:04,510 huomaavat, oi, hyvin Tiedテ、n antoi minulle integer-- joitakin numero, 1344 01:06:04,510 --> 01:06:06,380 kuten 65, tai 90, tai mitテ、 tahansa. 1345 01:06:06,380 --> 01:06:10,170 Mutta nテ、en, ettテ、 haluat minun muotoilla ettテ、 mテ、テ、rテ、 kuin merkin. 1346 01:06:10,170 --> 01:06:16,460 Ja niin printf voi epテ、suorasti heittテ、テ、 Int char sinulle samoin. 1347 01:06:16,460 --> 01:06:19,360 Joten se ei ole ongelma lainkaan. 1348 01:06:19,360 --> 01:06:23,100 >> Mutta huomaa, koska tテ、mテ、 vastaavuus voimme itse tehdテ、 tテ、mテ、n myテカs. 1349 01:06:23,100 --> 01:06:26,520 Anna minun mennテ、 eteenpテ、in ja tehdテ、 yhden muut versio this-- Ascii 1.c. 1350 01:06:26,520 --> 01:06:31,800 Ja sen sijaan iteroimalla yli kokonaislukuja, voi todella puhaltaa mieltテ、si 1351 01:06:31,800 --> 01:06:33,610 iteroimalla yli merkkiテ、. 1352 01:06:33,610 --> 01:06:37,660 Jos char c saa pテ、テ、omaa A, I haluavat mennテ、 eteenpテ、in ja tehdテ、 tテ、mテ、n, 1353 01:06:37,660 --> 01:06:41,740 niin kauan kuin C on pienempi tai yhtテ、 suuri kuin pテ、テ、oman Z. Ja jokaisen iteraation 1354 01:06:41,740 --> 01:06:45,690 Haluan kasvattaa C, voin Nyt minun Printf linjan tテ、テ、llテ、 1355 01:06:45,690 --> 01:06:51,320 vaikkapa prosenttia C on prosenttia uudelleen i, pilkku C. 1356 01:06:51,320 --> 01:06:57,200 >> Ja nyt, voin mennテ、 toiseen suuntaan, valu merkki nimenomaisesti 1357 01:06:57,200 --> 01:06:58,500 kokonaisluvuksi. 1358 01:06:58,500 --> 01:07:00,560 Joten jテ、lleen, miksi teet tテ、mテ、n? 1359 01:07:00,560 --> 01:07:03,830 Se on vテ、hテ、n outo tavallaan laskea kannalta merkkiテ、. 1360 01:07:03,830 --> 01:07:07,430 >> Mutta jos ymmテ、rrテ、t mitテ、 meneillテ、テ、n alla huppu, 1361 01:07:07,430 --> 01:07:08,430 siellテ、 oikeastaan 窶銀€砧itテ、テ、n taikuutta. 1362 01:07:08,430 --> 01:07:13,060 Sinテ、 vain sanoa, hei, tietokone antaa minulle muuttuja nimeltテ、 C tyypin char. 1363 01:07:13,060 --> 01:07:16,520 Alustaa sen pテ、テ、oman A. And huomaa heittomerkkeihin asia. 1364 01:07:16,520 --> 01:07:19,580 >> Sillテ、 merkkejテ、 C, muistan viime viikolla, kテ、ytテ、t heittomerkkien. 1365 01:07:19,580 --> 01:07:23,720 Jousille, sanoja, lauseita, kテ、ytテ、t lainausmerkkejテ、. 1366 01:07:23,720 --> 01:07:27,210 OK, tietokone, pitテ、テ、 tehdテ、 tテ、mテ、, niin kunhan merkki on alle 1367 01:07:27,210 --> 01:07:28,050 tai yhtテ、 suuri kuin z. 1368 01:07:28,050 --> 01:07:32,640 Ja tiedテ、n ASCII taulukosta ettテ、 kaikki Nテ、iden ASCII-koodit ovat vierekkテ、in. 1369 01:07:32,640 --> 01:07:33,400 >> Ei ole aukkoja. 1370 01:07:33,400 --> 01:07:36,737 Joten se on vain A-Z, erottaa yksi numero kunkin. 1371 01:07:36,737 --> 01:07:38,820 Ja sitten voin kasvattaa char, jos en todellakaan halua. 1372 01:07:38,820 --> 01:07:40,390 Pテ、ivテ、n pテ、テ、tteeksi, se on vain numero. 1373 01:07:40,390 --> 01:07:41,030 Tiedテ、n tテ、mテ、n. 1374 01:07:41,030 --> 01:07:43,670 Voin siis vain olettaa lisテ、tテ、 1 siihen. 1375 01:07:43,670 --> 01:07:46,940 >> Ja sitten tテ、llテ、 kertaa, voin tulostaa c, ja sitten kiinteテ、 vastaava. 1376 01:07:46,940 --> 01:07:50,170 Enkテ、 edes tarvitse nimenomaista valettu. 1377 01:07:50,170 --> 01:07:52,680 Voin antaa printf ja tietokone selvittテ、テ、 asioita, 1378 01:07:52,680 --> 01:07:57,300 niin ettテ、 nyt jos juoksen tehdテ、 Ascii1./ascii1, 1379 01:07:57,300 --> 01:08:01,520 Saan tテ、smテ、lleen sama asia kuin hyvin. 1380 01:08:01,520 --> 01:08:04,530 >> Hyテカdytテカn ohjelma, though-- kukaan tulee todella kirjoittaa ohjelmisto 1381 01:08:04,530 --> 01:08:07,549 jotta selvittテ、テ、, mikテ、 oli numero, joka kuvaa A, B, tai Z? 1382 01:08:07,549 --> 01:08:10,340 Olet juuri menossa googlettaa, tai etsiテ、 sen verkossa, tai etsi se 1383 01:08:10,340 --> 01:08:11,650 levyllテ、, tai vastaavalla. 1384 01:08:11,650 --> 01:08:13,520 Joten mistテ、 tテ、mテ、 itse saada hyテカtyテ、? 1385 01:08:13,520 --> 01:08:15,960 >> No, puhutaan ettテ、 dia, huomaa siellテ、 1386 01:08:15,960 --> 01:08:20,890 todellinen kuvio tテ、テ、llテ、 isojen ja pienet joka ei ollut sattumaa. 1387 01:08:20,890 --> 01:08:23,760 Huomaa, ettテ、 pテ、テ、oma A on 65. 1388 01:08:23,760 --> 01:08:25,830 Lowercase a on 97. 1389 01:08:25,830 --> 01:08:29,649 Ja kuinka kaukana on alempi tapauksessa? 1390 01:08:29,649 --> 01:08:32,649 >> Joten 65 on, kuinka monta askeleen pテ、テ、ssテ、 97? 1391 01:08:32,649 --> 01:08:36,210 Joten 97 miinus 65 on 32. 1392 01:08:36,210 --> 01:08:37,910 Joten pテ、テ、oma a on 65. 1393 01:08:37,910 --> 01:08:39,939 Jos lisテ、テ、t 32 ettテ、, saat pienet kirjaimet a. 1394 01:08:39,939 --> 01:08:43,729 Ja vastaavasti, jos vテ、hennテ、 32, saat takaisin pテ、テ、omaa A-- sama B 1395 01:08:43,729 --> 01:08:46,380 pikku b, iso C pikku c. 1396 01:08:46,380 --> 01:08:50,670 >> Kaikki nテ、mテ、 puutteet ovat 32 toisistaan. 1397 01:08:50,670 --> 01:08:54,450 Nyt tテ、mテ、 nテ、yttテ、isi jotta voisimme tehdテ、 jotain Microsoft Word, 1398 01:08:54,450 --> 01:08:57,729 tai Google Docs ominaisuus, jossa voi valita kaiken ja sitten sanoa, 1399 01:08:57,729 --> 01:09:00,520 muuttaa kaikki pieniksi, tai muuttaa kaikki isoiksi, 1400 01:09:00,520 --> 01:09:03,840 tai muuttaa vain ensimmテ、inen sana lauseen isoiksi. 1401 01:09:03,840 --> 01:09:07,390 Voimme todella tehdテ、 jotain niin itse. 1402 01:09:07,390 --> 01:09:12,645 >> Anna minun mennテ、 eteenpテ、in ja tallentaa tiedostoa tテ、ssテ、 kutsutaan hyテカdyntテ、テ、 0.c. 1403 01:09:12,645 --> 01:09:15,770 Ja mennテ、テ、n eteenpテ、in ja lietsoa ohjelma ettテ、 juuri nテ、in seuraavasti. 1404 01:09:15,770 --> 01:09:18,460 Joten sisテ、ltテ、vテ、t CS50 kirjasto. 1405 01:09:18,460 --> 01:09:21,430 Ja kuuluu vakio I / O. 1406 01:09:21,430 --> 01:09:22,787 >> Ja tiedテ、n tテ、mテ、 on tulossa pian. 1407 01:09:22,787 --> 01:09:24,870 Joten aion laittaa sen siellテ、 jo, string.h, 1408 01:09:24,870 --> 01:09:26,960 joten Olen pテ、テ、sy asioita, kuten Stirling, 1409 01:09:26,960 --> 01:09:29,620 ja sitten int main mitテ、tテカn, kuten tavallista. 1410 01:09:29,620 --> 01:09:33,420 Ja sitten aion mennテ、 eteenpテ、in ja tehdテ、 jouset saa pテ、テ、stテ、 string, 1411 01:09:33,420 --> 01:09:35,032 vain saada merkkijonon kテ、yttテ、jテ、ltテ、. 1412 01:09:35,032 --> 01:09:36,740 Ja sitten aion teen jテ、rki tarkistaa. 1413 01:09:36,740 --> 01:09:40,510 Jos jono ei ole sama null, niin se on turvallista jatkaa. 1414 01:09:40,510 --> 01:09:42,000 Ja mitテ、 haluan tehdテ、? 1415 01:09:42,000 --> 01:09:48,700 Aion kerrata vテ、lillテ、 i on yhtテ、 suuri kuin 0, ja n asti merkkijonon pituus s. 1416 01:09:48,700 --> 01:09:51,899 >> Ja aion tehdテ、 niin kauan kuin i on pienempi kuin n, ja i plus plus. 1417 01:09:51,899 --> 01:09:55,060 Toistaiseksi olen oikeastaan 窶銀€久ain lainanotto ideoita ennen. 1418 01:09:55,060 --> 01:09:57,010 Ja nyt aion esitellテ、 haara. 1419 01:09:57,010 --> 01:09:59,635 >> Joten muistelen Scratch, missテ、 meillテ、 oli nuo haarautuu tie, 1420 01:09:59,635 --> 01:10:05,110 ja viime viikolla C. aion sanoa, jos i: nnen hahmo s 1421 01:10:05,110 --> 01:10:09,250 on suurempi tai yhtテ、lテ、inen alentaa tapauksessa, 1422 01:10:09,250 --> 01:10:13,340 and-- Scratch olisit kirjaimellisesti sanoa ja, mutta C sanot et-merkki, 1423 01:10:13,340 --> 01:10:19,830 ampersand-- ja i: nnen merkki s on pienempi tai yhtテ、 suuri kuin alempi tapauksessa z, 1424 01:10:19,830 --> 01:10:21,780 Tehdテ、テ、n jotain mielenkiintoista. 1425 01:10:21,780 --> 01:10:27,020 Katsotaan todella tulostaa merkki ilman rivinvaihto 1426 01:10:27,020 --> 01:10:31,760 ettテ、 on merkin merkkijono, i: nnen merkin merkkijonon. 1427 01:10:31,760 --> 01:10:37,420 >> Mutta mennテ、テ、n eteenpテ、in ja vテ、hennテ、 32 siitテ、. 1428 01:10:37,420 --> 01:10:42,120 Else jos hahmo merkkijonon etsimme 1429 01:10:42,120 --> 01:10:45,950 ei vテ、lillテ、 pikku ja pikku z, mennテ、 eteenpテ、in 1430 01:10:45,950 --> 01:10:48,610 ja vain tulostaa sen ulos muuttumattomana. 1431 01:10:48,610 --> 01:10:50,840 Niinpテ、 olemme ottaneet kテ、yttテカテカn Tテ、mテ、n haarukoitua merkintテ、tapa 1432 01:10:50,840 --> 01:10:53,560 meidテ、n jousille saada aikaa i: nnen merkin merkkijonon. 1433 01:10:53,560 --> 01:10:57,520 >> Olen lisテ、nnyt joitakin ehdollinen logiikka, kuten Scratch viime viikon viikolla yksi, jossa 1434 01:10:57,520 --> 01:10:59,880 Olen vain kテ、yttテ、テ、 minun perustavanlaatuinen kテ、sitys siitテ、, mitテ、 on 1435 01:10:59,880 --> 01:11:01,130 meneillテ、テ、n alla huppu. 1436 01:11:01,130 --> 01:11:04,190 On i: nnen luonne s suurempi tai yhtテ、 suuri kuin? 1437 01:11:04,190 --> 01:11:08,290 Kuten, on se 97 tai 98, tai 99, ja niin edelleen? 1438 01:11:08,290 --> 01:11:11,940 >> Mutta se on myテカs pienempi tai yhtテ、 suuri kuin arvoon pieniテ、 z? 1439 01:11:11,940 --> 01:11:16,210 Ja jos on, mitテ、 tテ、mテ、 linja tarkoittaa? 1440 01:11:16,210 --> 01:11:20,250 14, tテ、mテ、 on tavallaan alkiot koko ajatus, 1441 01:11:20,250 --> 01:11:23,840 isolla kirje yksinkertaisesti vテ、hentテ、mテ、llテ、 32 siitテ、, 1442 01:11:23,840 --> 01:11:29,370 Tテ、ssテ、 tapauksessa, koska tiedテ、n, per se kaavio, miten omat numerot ovat edustettuina. 1443 01:11:29,370 --> 01:11:33,925 Joten mene eteenpテ、in ja suorittaa tテ、mテ、n, jテ、lkeen kootaan hyテカdyntテ、テ、 0.c, 1444 01:11:33,925 --> 01:11:36,210 ja ajaa isolla 0. 1445 01:11:36,210 --> 01:11:40,300 >> Katsotaan kirjoita jotain Zamyla in pienillテ、 tulevat. 1446 01:11:40,300 --> 01:11:42,780 Ja nyt meillテ、 on Zamyla isoilla. 1447 01:11:42,780 --> 01:11:45,050 Katsotaan kirjoita Rob pienillテ、. 1448 01:11:45,050 --> 01:11:46,674 Yritetテ、テ、n Jason pienillテ、. 1449 01:11:46,674 --> 01:11:48,590 Ja pidテ、mme saada pakko-arvo. 1450 01:11:48,590 --> 01:11:50,960 On pieni vika, ettテ、 olen Tテ、llainen ei ennakoida. 1451 01:11:50,960 --> 01:11:54,050 Huomatkaa uusi nopea pテ、テ、tyy samalla rivillテ、 kuin heidテ、n nimensテ、, 1452 01:11:54,050 --> 01:11:55,520 joka tuntuu hieman sotkuinen. 1453 01:11:55,520 --> 01:11:59,170 >> Joten aion mennテ、 tテ、テ、llテ、, ja todella lopussa tテ、mテ、n ohjelman 1454 01:11:59,170 --> 01:12:02,110 tulostaa Rivinvaihtomerkkiテ、. 1455 01:12:02,110 --> 01:12:03,160 Siinテ、 kaikki. 1456 01:12:03,160 --> 01:12:06,120 Kanssa printf, sinun ei tarvitse pass muuttujia tai muodossa koodin. 1457 01:12:06,120 --> 01:12:08,460 Voit kirjaimellisesti vain tulostaa jotain rivinvaihto. 1458 01:12:08,460 --> 01:12:13,529 >> Joten mene eteenpテ、in ja tehdテ、 hyテカtymテ、テ、n 0 jテ、lleen, uusintana se, Zamyla. 1459 01:12:13,529 --> 01:12:14,820 Ja nyt se on hieman kauniimpi. 1460 01:12:14,820 --> 01:12:17,274 Nyt minun nopea on omalla uuden rivin. 1461 01:12:17,274 --> 01:12:18,440 Niin, ettテ、 kaikki hyvテ、 ja hieno. 1462 01:12:18,440 --> 01:12:19,910 Niin se on hyvテ、 esimerkki. 1463 01:12:19,910 --> 01:12:22,700 Mutta en edes vテ、lttテ、mテ、ttテ、 tテ、ytyy kovaa koodia 32. 1464 01:12:22,700 --> 01:12:23,350 Tiedテ、tkテカ mitテ、? 1465 01:12:23,350 --> 01:12:26,350 Voisin say-- en koskaan muistaa, mikテ、 ero on. 1466 01:12:26,350 --> 01:12:29,330 >> Mutta tiedテ、n, ettテ、 jos olen on pientテ、, 1467 01:12:29,330 --> 01:12:34,430 En olennaisesti halua vテ、hentテ、テ、 pois riippumatta etテ、isyys vaihtelee hieman 1468 01:12:34,430 --> 01:12:39,160 A ja iso, sillテ、 jos oletan, ettテ、 kaikki muut kirjaimet ovat samat, 1469 01:12:39,160 --> 01:12:41,045 ettテ、 pitテ、isi saada tyテカtテ、 tehnyt. 1470 01:12:41,045 --> 01:12:42,670 Mutta sen sijaan tehdテ、 sitテ、, tiedテ、tkテカ mitテ、? 1471 01:12:42,670 --> 01:12:44,240 On toinenkin tapa edelleen. 1472 01:12:44,240 --> 01:12:48,090 >> Jos tテ、mテ、 on hyテカdyntテ、テ、 1.c-- jos olisin esittテ、テ、, ettテ、 erilliseen tiedostoon. 1473 01:12:48,090 --> 01:12:51,030 Tehdテ、テ、n hyテカdyntテ、テ、 2.c seuraavasti. 1474 01:12:51,030 --> 01:12:53,060 Aion todella puhdista tテ、テ、llテ、. 1475 01:12:53,060 --> 01:12:57,420 Ja sen sijaan, ettテ、 edes tietテ、テ、 tai vテ、litテ、 niistテ、 alhainen 1476 01:12:57,420 --> 01:13:01,090 toteutuksen yksityiskohdat, olen sen sijaan juuri menossa tulostaa merkin, 1477 01:13:01,090 --> 01:13:04,610 lainaus lainaus, prosenttia C, ja soita toinen toiminto, 1478 01:13:04,610 --> 01:13:09,950 olemassa joka vie argumentti, joka on luonteeltaan, kuten tテ、mテ、. 1479 01:13:09,950 --> 01:13:12,630 >> On kテ、ynyt ilmi C, siellテ、 toinen toiminto puhelun 1480 01:13:12,630 --> 01:13:15,550 ylテ、-, joka nimensテ、 ehdottaa vie hahmo 1481 01:13:15,550 --> 01:13:19,350 ja tekee sen isoiksi vastaava, ja sitten palauttaa sen 1482 01:13:19,350 --> 01:13:21,410 jotta printf voi ampua sitテ、 siellテ、. 1483 01:13:21,410 --> 01:13:25,484 Ja niin tehdテ、 tテ、mテ、n, vaikka olen otettava kテ、yttテカテカn yksi muu tiedosto. 1484 01:13:25,484 --> 01:13:28,400 On kテ、ynyt ilmi, on olemassa toinen tiedosto ettテ、 te vain tietテ、テ、 luokasta, 1485 01:13:28,400 --> 01:13:33,020 tai oppikirja tai online viite, jota kutsutaan C type.h. 1486 01:13:33,020 --> 01:13:38,570 >> Jos siis lisテ、tテ、, ettテ、 kesken minun header tiedostoja, ja nyt uudelleen kテ、テ、ntテ、テ、 ohjelman, 1487 01:13:38,570 --> 01:13:43,040 capitalize2, ./capitalize2 Enter. 1488 01:13:43,040 --> 01:13:46,690 Katsotaan kirjoita Zamyla kaikissa pieniテ、, toimii edelleen sama. 1489 01:13:46,690 --> 01:13:48,040 Mutta tiedテ、tkテカ mitテ、? 1490 01:13:48,040 --> 01:13:55,590 On kテ、ynyt ilmi, ettテ、 ylemmテ、n on joitakin muita toimintoja. 1491 01:13:55,590 --> 01:13:58,410 >> Ja haluan esitellテ、 tテ、mテ、n komento tテ、テ、llテ、, tavallaan kangerrellen 1492 01:13:58,410 --> 01:14:00,250 nimeltテ、テ、n, mutta ihminen manuaaliseen. 1493 01:14:00,250 --> 01:14:03,960 On kテ、ynyt ilmi, ettテ、 useimmat Linux-tietokoneet, koska kテ、ytテ、mme here-- Linux-kテ、yttテカjテ、rjestelmテ、 1494 01:14:03,960 --> 01:14:06,270 system-- hallitse nimeltテ、テ、n mies, joka sanoo, 1495 01:14:06,270 --> 01:14:08,530 hei, tietokone, anna minulle tietokoneen kテ、sikirja. 1496 01:14:08,530 --> 01:14:10,680 Mitテ、 haluat etsiテ、 ettテ、 opasta? 1497 01:14:10,680 --> 01:14:13,840 >> Haluan etsiテ、 toiminnon kutsuttu ylempi, Enter. 1498 01:14:13,840 --> 01:14:16,070 Ja se on hieman arvoituksellisesti lukea joskus. 1499 01:14:16,070 --> 01:14:18,780 Mutta huomaa me olemme Linux ohjelmoijan kテ、sikirja. 1500 01:14:18,780 --> 01:14:19,530 Ja kaikki teksti. 1501 01:14:19,530 --> 01:14:21,905 Ja huomaa, ettテ、 siellテ、 on toiminnon nimi tテ、テ、llテ、. 1502 01:14:21,905 --> 01:14:25,030 On kテ、ynyt ilmi siinテ、 on serkku nimeltテ、テ、n alentaa, mikテ、 tekee pテ、invastoin. 1503 01:14:25,030 --> 01:14:29,710 Ja ilmoituksen alle synopsis, kテ、yttテ、テ、 tテ、tテ、 toimivat miehen sivun, niin sanotusti, 1504 01:14:29,710 --> 01:14:32,220 kertoo minulle, ettテ、 minテ、 tテ、ytyy sisテ、llyttテ、テ、 c type.h. 1505 01:14:32,220 --> 01:14:33,630 Ja tiesin, ettテ、 kテ、ytテ、ntテカテカn. 1506 01:14:33,630 --> 01:14:36,210 >> Tテ、テ、llテ、, se osoitti minulle kaksi prototyyppejテ、 toiminto, 1507 01:14:36,210 --> 01:14:39,070 niin ettテ、 jos joskus haluat kテ、yttテ、テ、 tテ、tテ、 En tiedテ、, mitテ、 he ottaa syテカtteenテ、 1508 01:14:39,070 --> 01:14:40,652 ja mitテ、 he palaavat tuotokseksi. 1509 01:14:40,652 --> 01:14:42,360 Ja sitten jos luen kuvausta, nテ、en 1510 01:14:42,360 --> 01:14:44,820 tarkemmin mitテ、 toiminto tekee. 1511 01:14:44,820 --> 01:14:48,100 Mutta vielテ、 tテ、rkeテ、mpテ、テ、, jos Odotan alle tuottoarvo, 1512 01:14:48,100 --> 01:14:51,710 se sanoo palautettu arvo on vaihdettavien kirjeen, 1513 01:14:51,710 --> 01:14:57,880 tai C, alkuperテ、isen tulo, jos muuntaminen ei ollut mahdollista. 1514 01:14:57,880 --> 01:15:01,992 >> Toisin sanoen ylempi yrittテ、テ、 muuntaa kirjeen isoiksi. 1515 01:15:01,992 --> 01:15:03,450 Ja jos on, se tulee palauttaa sen. 1516 01:15:03,450 --> 01:15:07,010 Mutta jos se ei voi jostain reason-- ehkテ、 se on jo isoiksi, 1517 01:15:07,010 --> 01:15:09,550 ehkテ、 se on huutomerkki tai jokin muu punctuation-- 1518 01:15:09,550 --> 01:15:12,200 se juuri menossa palauttaa alkuperテ、isen C, 1519 01:15:12,200 --> 01:15:17,340 mikテ、 tarkoittaa, ettテ、 voin tehdテ、 minun koodi parempi rakenne on seuraavanlainen. 1520 01:15:17,340 --> 01:15:20,580 >> En tarvitse kaikkia nテ、mテ、 hiton riviテ、 koodia. 1521 01:15:20,580 --> 01:15:22,610 Kaikki linjat olen vain korosti voi 1522 01:15:22,610 --> 01:15:28,700 luhistuneilta osaksi vain yksi yksinkertainen linja, joka on this-- printf prosenttia 1523 01:15:28,700 --> 01:15:33,510 c ylempテ、テ、n S kiinnikkeen i. 1524 01:15:33,510 --> 01:15:36,090 Ja tテ、mテ、 olisi Esimerkkinテ、 paremman suunnittelun. 1525 01:15:36,090 --> 01:15:40,040 >> Miksi toteuttaa 7 tai 8 riviテ、 koodia, mitテ、 se oli Sain 1526 01:15:40,040 --> 01:15:44,960 poistetaan, kun voit sen sijaan romahtaa kaikki tテ、mテ、 logiikka ja pテ、テ、tテカksenteko 1527 01:15:44,960 --> 01:15:49,620 yhdeksi linja, 13 nyt, ettテ、 tukeutuu kirjasto function-- 1528 01:15:49,620 --> 01:15:53,430 toiminnon, joka tulee C, mutta se tekee mitテ、 haluat sen tehdテ、. 1529 01:15:53,430 --> 01:15:55,295 Ja rehellisesti, vaikka se ei tullut C, 1530 01:15:55,295 --> 01:15:58,880 voit toteuttaa sen itse, koska olemme nテ、hneet, jossa saat negatiivinen int 1531 01:15:58,880 --> 01:16:01,700 ja saada positiivinen int viime viikolla samoin. 1532 01:16:01,700 --> 01:16:03,470 >> Tテ、mテ、 koodi on nyt paljon enemmテ、n luettavissa. 1533 01:16:03,470 --> 01:16:06,670 Ja todellakin, jos selaa ylテカspテ、in, katso kuinka paljon kompaktimpi 1534 01:16:06,670 --> 01:16:08,360 Tテ、mテ、 versio minun ohjelma on. 1535 01:16:08,360 --> 01:16:11,230 Se on vテ、hテ、n ylhテ、テ、ltテ、 raskas nyt, kaikki nテ、mテ、 kuuluvat. 1536 01:16:11,230 --> 01:16:14,380 Mutta se on OK, koska nyt seison harteille ohjelmoijat 1537 01:16:14,380 --> 01:16:15,300 ennen minua. 1538 01:16:15,300 --> 01:16:18,440 Ja joka se oli joka toteutetaan ylempi todella 1539 01:16:18,440 --> 01:16:21,470 teki minulle palveluksen, aivan kuten kuka tテ、ytテ、ntテカテカn Stirling todella 1540 01:16:21,470 --> 01:16:24,790 teki minulle palveluksen jokin aika sitten. 1541 01:16:24,790 --> 01:16:26,970 Ja niin nyt meillテ、 on parempi suunnitteluohjelma 1542 01:16:26,970 --> 01:16:31,680 joka toteuttaa tテ、smテ、lleen samaa logiikkaa. 1543 01:16:31,680 --> 01:16:35,580 >> Puhuminen Stirling, anna minun mennテ、 eteenpテ、in ja tehdテ、 tテ、tテ、. 1544 01:16:35,580 --> 01:16:38,320 Anna minun mennテ、 eteenpテ、in ja tallenna tテ、mテ、 kuva stirling.c. 1545 01:16:38,320 --> 01:16:43,255 Ja se osoittautuu, voimme kuoria takaisin yksi toinen kerros melko yksinkertaisesti nyt. 1546 01:16:43,255 --> 01:16:45,630 Aion mennテ、 eteenpテ、in ja piiska up toinen ohjelma main 1547 01:16:45,630 --> 01:16:49,759 tテ、ssテ、 ettテ、 yksinkertaisesti uudelleen tyテカkoneiden merkkijonon pituus seuraavasti. 1548 01:16:49,759 --> 01:16:52,300 Joten tテ、ssテ、 on koodiriviテ、 ettテ、 saa minut merkkijono kテ、yttテ、jテ、ltテ、. 1549 01:16:52,300 --> 01:16:53,910 Pidテ、mme kテ、yttテ、mテ、llテ、 tテ、tテ、 uudestaan 窶銀€桔a uudestaan. 1550 01:16:53,910 --> 01:16:58,900 Annan itselleni muuttuja nimeltテ、 n tyyppiテ、 int, joka tallentaa useita. 1551 01:16:58,900 --> 01:17:02,490 >> Ja anna minun mennテ、 eteenpテ、in ja tee seuraava logiikka. 1552 01:17:02,490 --> 01:17:15,610 Vaikka nnen hahmo s tekee erisuuri backslash 0, mennテ、 eteenpテ、in 1553 01:17:15,610 --> 01:17:17,930 ja kasvu n. 1554 01:17:17,930 --> 01:17:23,506 Ja sitten tulostaa printf prosenttia i n. 1555 01:17:23,506 --> 01:17:29,200 Vテ、itテ、n, ettテ、 tテ、mテ、 ohjelma tテ、テ、llテ、, kテ、ymテ、ttテ、 merkkijonon pituus, 1556 01:17:29,200 --> 01:17:31,150 keksii pituus merkkijono. 1557 01:17:31,150 --> 01:17:34,600 >> Ja taika on tテ、ysin kapseloitu linja 8 1558 01:17:34,600 --> 01:17:39,830 tテ、テ、llテ、 mitテ、 nテ、yttテ、テ、 uudet syntaksin, Tテ、mテ、n kenoviiva 0 heittomerkkeihin. 1559 01:17:39,830 --> 01:17:41,360 Mutta miksi? 1560 01:17:41,360 --> 01:17:44,100 No, miettiテ、, mitテ、 on ollut jatkunut koko tテ、mテ、n ajan. 1561 01:17:44,100 --> 01:17:47,990 >> Ja Sivuhuomautuksena ennen kuin unohdan, ymmテ、rtテ、テ、 myテカs, ettテ、 sen lisテ、ksi, ettテ、 ihminen sivuille 1562 01:17:47,990 --> 01:17:50,920 jotka tulevat tyypillinen Linux-jテ、rjestelmテ、n kuten CS50 IDE, 1563 01:17:50,920 --> 01:17:53,770 ymmテ、rtテ、テ、, ettテ、 me, kurssin henkilテカkunta, on myテカs 1564 01:17:53,770 --> 01:17:56,030 teki verkkosivusto versio Tテ、mテ、n saman ajatuksen nimeltテ、テ、n 1565 01:17:56,030 --> 01:17:59,940 reference.cs50.net, joka on kaikki nテ、mテ、 samassa man-sivuja, 1566 01:17:59,940 --> 01:18:02,020 kaikki saman dokumentointi, sekテ、 1567 01:18:02,020 --> 01:18:05,730 pieni laatikko huipulla, joka mahdollistaa voit muuntaa kaikki melko 1568 01:18:05,730 --> 01:18:09,025 arcane Kielestテ、 vテ、hemmテ、n mukavaksi tilassa, jossa, opetushenkilテカstテカn, 1569 01:18:09,025 --> 01:18:12,150 ovat menneet lテ、pi ja pyrkinyt yksinkertaistamaan jotkut kielen pitテ、テ、 asiat 1570 01:18:12,150 --> 01:18:14,830 keskittyi ajatuksia, eikテ、 joitakin teknisiテ、. 1571 01:18:14,830 --> 01:18:20,070 Joten pitテ、テ、 mielessテ、, reference.cs50.net kuin toinen resurssi samoin. 1572 01:18:20,070 --> 01:18:23,800 >> Mutta miksi merkkijonon pituus tyテカtテ、 Muuten olen ehdottanut hetki sitten? 1573 01:18:23,800 --> 01:18:25,160 Tテ、ssテ、 Zamyla nimi uudelleen. 1574 01:18:25,160 --> 01:18:27,690 Ja tテ、ssテ、 Zamyla nimi boxed, kuten minテ、 pitテ、テ、 tehdテ、, 1575 01:18:27,690 --> 01:18:31,360 maalata kuvan siitテ、 ettテ、, oikeastaan 窶銀€久ain merkkijono. 1576 01:18:31,360 --> 01:18:34,260 Mutta Zamyla ei ole olemassa eristyksissテ、 ohjelmassa. 1577 01:18:34,260 --> 01:18:37,420 >> Kun kirjoittaa ja kテ、ynnistテ、テ、 ohjelman kテ、ytテ、t Mac tai PC 1578 01:18:37,420 --> 01:18:40,010 muistin tai RAM niin sanotusti. 1579 01:18:40,010 --> 01:18:42,620 Ja voit ajatella tietokoneen olevan 1580 01:18:42,620 --> 01:18:44,730 paljon gigatavua muistia nテ、inテ、 pテ、ivinテ、. 1581 01:18:44,730 --> 01:18:47,700 Ja keikka tarkoittaa miljardeja, joten miljardeja tavua. 1582 01:18:47,700 --> 01:18:48,910 >> Mutta katsotaan taaksepテ、in ajassa. 1583 01:18:48,910 --> 01:18:51,530 Ja olettaa, ettテ、 kテ、ytテ、mme todella vanha tietokone, joka 1584 01:18:51,530 --> 01:18:55,150 vain 32 tavua muistia. 1585 01:18:55,150 --> 01:18:59,310 Voisin, minun tietokoneen nテ、ytテカllテ、, yksinkertaisesti vetテ、テ、 tテ、tテ、 seuraavasti. 1586 01:18:59,310 --> 01:19:05,240 >> Voisin vain sanoa, ettテ、 tietokone on kaikki tテ、mテ、 muisti. 1587 01:19:05,240 --> 01:19:08,830 Ja tテ、mテ、 on kuin tikku muistia, jos muistatte meidテ、n kuva edellisen kerran. 1588 01:19:08,830 --> 01:19:11,670 Ja jos vain jakaa tテ、tテ、 riittテ、vテ、n monta kertaa, 1589 01:19:11,670 --> 01:19:15,040 Vテ、itテ、n, ettテ、 minulla on 32 tavua muistin ruudulla. 1590 01:19:15,040 --> 01:19:18,239 >> Nyt todellisuudessa, voin vain piirtテ、テ、 toistaiseksi tテ、llテ、 nテ、ytテカllテ、 tテ、テ、llテ、. 1591 01:19:18,239 --> 01:19:20,280 Joten aion mennテ、 eteenpテ、in, ja vain sopimuksen mukaan, 1592 01:19:20,280 --> 01:19:24,050 kiinnittテ、テ、 tietokoneeni muistissa ruudukko, eikテ、 vain yksi suora viiva. 1593 01:19:24,050 --> 01:19:28,190 Erityisesti Vテ、itテ、n nyt ruudukkoon, tテ、mテ、 8 4 ruudukko, 1594 01:19:28,190 --> 01:19:31,800 vain edustaa kaikkia 32 tavua muistia saatavilla Mac, 1595 01:19:31,800 --> 01:19:33,030 tai saatavilla tietokoneeseen. 1596 01:19:33,030 --> 01:19:34,780 Ja he kテ、テ、re on kaksi riviテ、, vain 1597 01:19:34,780 --> 01:19:38,030 koska se sopii paremmin ruudulle. 1598 01:19:38,030 --> 01:19:40,800 Mutta tテ、mテ、 on ensimmテ、inen tavu. 1599 01:19:40,800 --> 01:19:41,990 Tテ、mテ、 on toinen tavu. 1600 01:19:41,990 --> 01:19:43,300 Tテ、mテ、 on kolmas tavu. 1601 01:19:43,300 --> 01:19:45,310 >> Ja tテ、mテ、 on 32. tavu. 1602 01:19:45,310 --> 01:19:52,910 Tai, jos ajattelemme kuin tietokone tutkija, tテ、mテ、 on tavu 0, 1, 2, 3, 31. 1603 01:19:52,910 --> 01:19:55,950 Joten sinun tテ、ytyy 0-31, jos te alkaa laskea 0. 1604 01:19:55,950 --> 01:19:59,830 >> Jos siis kテ、yttテ、テ、 ohjelmaa ettテ、 puhelut saavat merkkijono, 1605 01:19:59,830 --> 01:20:05,280 ja saamme merkkijono ihmisen kuten tein kutsutaan Zamyla, Z-A-M-Y-L-A, 1606 01:20:05,280 --> 01:20:09,430 miten maailmassa tekee tietokone seurata joka tavun, 1607 01:20:09,430 --> 01:20:12,230 joka kimpale muistia, kuuluu mihinkin merkkijono? 1608 01:20:12,230 --> 01:20:16,270 Toisin sanoen, jos siirrymme Kirjoita toinen nimi tietokoneeseen, 1609 01:20:16,270 --> 01:20:19,890 nテ、in Andi kutsuen saada merkkijono toisen kerran, 1610 01:20:19,890 --> 01:20:23,030 A-N-D-I on pテ、テ、tyテ、 tietokoneen muistiin samoin. 1611 01:20:23,030 --> 01:20:23,850 Mutta miten? 1612 01:20:23,850 --> 01:20:29,700 >> No, kテ、y ilmi, ettテ、 alla huppu, mitテ、 C tekee sテ、ilytettテ、essテ、 jouset 1613 01:20:29,700 --> 01:20:35,080 ettテ、 ihmisen tyypit, tai ettテ、 tulevat muusta lテ、hteestテ、, on se 1614 01:20:35,080 --> 01:20:39,190 rajataan lopussa niitテ、 erityinen character-- kenoviiva 1615 01:20:39,190 --> 01:20:44,750 0, joka on vain erityinen tapa sanomalla 80 bittiテ、 perテ、kkテ、in. 1616 01:20:44,750 --> 01:20:47,950 >> Joten A-- tテ、mテ、 on numero 97 muistaa. 1617 01:20:47,950 --> 01:20:51,770 Siksi jotkut kuvio 8 bittiテ、 edustaa desimaaliluku 97. 1618 01:20:51,770 --> 01:20:58,070 Tテ、mテ、 kenoviiva 0 on kirjaimellisesti mテ、テ、rテ、 0, alias nul, N-U-L, toisin kuin aikaisemmin, 1619 01:20:58,070 --> 01:20:59,630 N-U-L-L, joka puhuttiin. 1620 01:20:59,630 --> 01:21:05,700 Mutta nyt, vain tietテ、テ、, ettテ、 tテ、mテ、 kenoviiva 0 on vain 80 bittiテ、 perテ、kkテ、in. 1621 01:21:05,700 --> 01:21:09,810 >> Ja se on vain tテ、mテ、 rivi hiekka, joka sanoo mitテ、テ、n vasemmalle 1622 01:21:09,810 --> 01:21:12,610 kuuluu yksi merkkijono, tai yksi tietotyyppi. 1623 01:21:12,610 --> 01:21:15,480 Ja kaiken oikealla kuuluu jotain muuta. 1624 01:21:15,480 --> 01:21:17,440 Andi nimi puolestaan joka vain visuaalisesti 1625 01:21:17,440 --> 01:21:21,310 sattuu kテ、テ、riテ、 kiinni toisella linjalla, mutta se on vain esteettinen yksityiskohta, 1626 01:21:21,310 --> 01:21:23,990 Samoin on NUL lopetetaan. 1627 01:21:23,990 --> 01:21:29,290 >> Se on merkkijono A-N-D-I merkkejテ、, plus viidesosa salainen luonne, 1628 01:21:29,290 --> 01:21:33,560 kaikki 0 bitit, ettテ、 vain rajataan lopussa Andi nimi samoin. 1629 01:21:33,560 --> 01:21:37,120 Ja jos me kutsumme saada merkkijono kolmannen kerran tietokone saada kielen kaltaisen 1630 01:21:37,120 --> 01:21:44,210 Maria, M-A-R-I-A, samoin on Marian name nul lopetettiin kenoviivaan 0. 1631 01:21:44,210 --> 01:21:47,170 >> Tテ、mテ、 on tテ、ysin erilainen siitテ、, miten tietokone tyypillisesti 1632 01:21:47,170 --> 01:21:51,850 tallentaa kokonaisluku tai float, tai muita tietotyypit edelleen, koska muistaa, 1633 01:21:51,850 --> 01:21:57,420 kokonaisluku on yleensテ、 32 bittiテ、, tai 4 tavua, tai ehkテ、 jopa 64 bittiテ、, 1634 01:21:57,420 --> 01:21:59,100 tai kahdeksan tavua. 1635 01:21:59,100 --> 01:22:02,620 Mutta monet primitives tietokoneella ohjelmointikielellテ、 1636 01:22:02,620 --> 01:22:05,550 on kiinteテ、 mテ、テ、rテ、 tavua alla hood-- 1637 01:22:05,550 --> 01:22:08,100 ehkテ、 1, ehkテ、 2, ehkテ、 4, ehkテ、 8. 1638 01:22:08,100 --> 01:22:13,250 >> Mutta jouset, jonka muotoilu, on dynaaminen mテ、テ、rテ、n merkkejテ、. 1639 01:22:13,250 --> 01:22:16,980 Et tiedテ、 etukテ、teen, kunnes Ihmisen tyypit Z-A-M-Y-L-A, 1640 01:22:16,980 --> 01:22:21,400 tai M-A-R-I-A tai A-N-D-I. Et tiedテ、 kuinka monta kertaa kテ、yttテ、jテ、 tulee iskemテ、テ、n 1641 01:22:21,400 --> 01:22:22,070 nテ、ppテ、imistテカ. 1642 01:22:22,070 --> 01:22:26,490 Siksi et tiedテ、 miten monta merkkiテ、 etukテ、teen 1643 01:22:26,490 --> 01:22:27,540 olet menossa tarvitsevat. 1644 01:22:27,540 --> 01:22:31,840 >> Ja niin C juuri sellainen lテ、htee kuin salainen linkkipolku alla huppu 1645 01:22:31,840 --> 01:22:32,960 lopussa merkkijonon. 1646 01:22:32,960 --> 01:22:39,280 Tallennettuasi Z-A-M-Y-L-A muistiin, se myテカs vain asettaa vastaava 1647 01:22:39,280 --> 01:22:40,210 ajanjaksolta. 1648 01:22:40,210 --> 01:22:45,060 Lopussa lauseen, se asettaa 80 bittiテ、, niin kuin 1649 01:22:45,060 --> 01:22:49,120 muistaa, missテ、 Zamyla alkaa ja loppuu. 1650 01:22:49,120 --> 01:22:51,490 >> Mikテ、 siis yhteys, Sitten, tテ、mテ、n ohjelman? 1651 01:22:51,490 --> 01:22:55,190 Tテ、mテ、 ohjelma tテ、テ、llテ、, Stirling, on yksinkertaisesti mekanismi 1652 01:22:55,190 --> 01:22:57,970 saada merkkijono kテ、yttテ、jテ、ltテ、, rivi 6. 1653 01:22:57,970 --> 01:23:01,160 Linja 7, julistan muuttuja nimeltテ、テ、n n ja aseta se yhtテ、 suuri kuin 0. 1654 01:23:01,160 --> 01:23:08,680 >> Ja sitten linjassa 8, en yksinkertaisesti pyytテ、nyt kysymys, kun taas n: nnen merkki ei 1655 01:23:08,680 --> 01:23:12,120 erisuuri kaikki 0 bits-- Toisin sanoen, ei ole 1656 01:23:12,120 --> 01:23:14,500 yhtテ、lテ、iset tテ、mテ、 erityinen merkki, kenoviivan 0, joka 1657 01:23:14,500 --> 01:23:18,470 oli vain, ettテ、 erityistテ、 nul character-- mennテ、 eteenpテ、in ja vain kasvattaa n. 1658 01:23:18,470 --> 01:23:21,460 >> Ja pitテ、テ、 tehdテ、 se, ja pitテ、テ、 tee sitテ、, ja pitテ、テ、 tehdテ、 se. 1659 01:23:21,460 --> 01:23:23,430 Ja niin vaikka Aiemmin olemme kテ、yttテ、neet i, 1660 01:23:23,430 --> 01:23:25,181 se on tテ、ysin kunnossa semanttisesti kテ、yttテ、テ、 n, 1661 01:23:25,181 --> 01:23:27,430 jos olet vain yrittテ、テ、 laskea tテ、llテ、 kertaa tarkoituksella, 1662 01:23:27,430 --> 01:23:28,720 ja haluavat vain kutsua sitテ、 n. 1663 01:23:28,720 --> 01:23:34,720 Joten tテ、mテ、 vain pitテ、テ、 kysyvテ、t, on n: nnen luonne on kaikki 0s? 1664 01:23:34,720 --> 01:23:38,470 Jos ei, katso seuraavaan ilmeen, katso seuraavaan, katso seuraavaan, 1665 01:23:38,470 --> 01:23:39,460 katso seuraavaan. 1666 01:23:39,460 --> 01:23:45,540 >> Mutta heti kun nテ、et backslash 0, Tテ、mテ、n loop-- linjan 9 kautta 11-- pysテ、htyy. 1667 01:23:45,540 --> 01:23:49,640 Rikot ulos samalla silmukka, jテ、ttテ、en sisテ、llテ、 ettテ、 muuttujan n 1668 01:23:49,640 --> 01:23:54,530 yhteen laskettu kaikkien merkkejテ、 merkkijonon nテ、it, 1669 01:23:54,530 --> 01:23:55,660 siten tulostamalla. 1670 01:23:55,660 --> 01:23:56,760 Joten kokeile tテ、tテ、. 1671 01:23:56,760 --> 01:23:59,500 >> Anna minun mennテ、 eteenpテ、in ja ilman kテ、yttテ、mテ、llテ、 Stirling toimintoa, 1672 01:23:59,500 --> 01:24:04,240 mutta vain kテ、yttテ、mテ、llテ、 omaa paljasjalkainen versio tテ、ssテ、 kutsutaan Stirling, anna minun mennテ、 eteenpテ、in 1673 01:24:04,240 --> 01:24:07,700 ja ajaa Stirling, kirjoita jotain kuten Zamyla, jonka tiedテ、n etukテ、teen 1674 01:24:07,700 --> 01:24:08,670 on kuusi merkkiテ、. 1675 01:24:08,670 --> 01:24:10,080 Katsotaan, se toimii. 1676 01:24:10,080 --> 01:24:10,920 Itse asiassa se on kuusi. 1677 01:24:10,920 --> 01:24:15,257 Yritetテ、テ、n Rob kolme merkkiテ、, kolme merkkiテ、 samoin, ja niin edelleen. 1678 01:24:15,257 --> 01:24:17,340 Niin, ettテ、 kaikki se menee on alla huppu. 1679 01:24:17,340 --> 01:24:19,548 Ja huomaa yhteydet, Sitten, jossa ensimmテ、isellテ、 viikolla 1680 01:24:19,548 --> 01:24:22,370 luokan, jossa puhuimme jotain abstraktio, 1681 01:24:22,370 --> 01:24:26,960 joka on juuri tテ、mテ、 Kerrostaa ideoita, tai monimutkaisuus, pテ、テ、lle perusperiaatteista. 1682 01:24:26,960 --> 01:24:30,710 Tテ、テ、llテ、, me tavallaan etsivテ、t alla huppu Stirling, 1683 01:24:30,710 --> 01:24:33,510 niin sanotusti selvittテ、テ、, miten se voidaan toteuttaa? 1684 01:24:33,510 --> 01:24:35,232 >> Ja voisimme uudestaan 窶銀€逆oteuttaa sen itse. 1685 01:24:35,232 --> 01:24:37,440 Mutta emme koskaan menossa uudelleen toteuttaa Stirling. 1686 01:24:37,440 --> 01:24:39,780 Olemme juuri menossa kテ、yttテ、テ、 Stirling jテ、rjestyksessテ、 1687 01:24:39,780 --> 01:24:42,100 todella saada joitakin jouset pituus. 1688 01:24:42,100 --> 01:24:44,200 >> Mutta ei ole maaginen alla huppu. 1689 01:24:44,200 --> 01:24:46,716 Jos tiedテ、t, ettテ、 alla huppu, merkkijono 1690 01:24:46,716 --> 01:24:48,090 on vain joukko merkkejテ、. 1691 01:24:48,090 --> 01:24:51,090 Ja ettテ、 merkkijono kaikki voidaan numeerisesti kテ、siteltテ、vテ、 1692 01:24:51,090 --> 01:24:53,330 jossa kannatin 0, kannatin 1, kannatin 2, ja te 1693 01:24:53,330 --> 01:24:57,420 tietテ、vテ、t, ettテ、 lopussa merkkijono on erikoismerkki, voit selvittテ、テ、 1694 01:24:57,420 --> 01:25:01,710 miten useimmat mitテ、 vain ohjelma, koska kaikki se kiehuu 1695 01:25:01,710 --> 01:25:03,400 lukee ja kirjoittaa muistiin. 1696 01:25:03,400 --> 01:25:06,130 Eli muuttumassa ja etsimテ、ssテ、 at muisti, tai liikkuvat asiat 1697 01:25:06,130 --> 01:25:10,940 noin muistiin, tulostus asiat ruudulla, ja niin edelleen. 1698 01:25:10,940 --> 01:25:14,800 >> Joten nyt kテ、yttテ、テ、 tテ、tテ、 newfound ymmテ、rtテ、minen mitテ、 kieliテ、 tosiasiassa 1699 01:25:14,800 --> 01:25:17,910 ovat alla huppu, ja Taitat yksi toinen kerros 1700 01:25:17,910 --> 01:25:20,080 ettテ、 tテ、hテ、n asti olemme ollut vテ、littテ、mテ、ttテ、 kokonaan. 1701 01:25:20,080 --> 01:25:22,650 Erityisesti tahansa Olemme toteuttaneet ohjelman, 1702 01:25:22,650 --> 01:25:25,930 meillテ、 on ollut koodirivin ylテ、osassa julistaa tテ、rkein. 1703 01:25:25,930 --> 01:25:27,810 Olemme myテカs mテ、テ、ritelty int main mitテ、tテカn. 1704 01:25:27,810 --> 01:25:31,240 >> Ja ettテ、 mitテ、tテカn sisテ、llテ、 suluissa on sanonut koko ajan, ettテ、 tテ、rkeimmテ、t 1705 01:25:31,240 --> 01:25:33,440 itse ei ota argumentteja. 1706 01:25:33,440 --> 01:25:36,210 Kaikki tulo ettテ、 tテ、rkein on menossa kテ、yttテ、jテ、lle 1707 01:25:36,210 --> 01:25:39,020 on tultava muulla mekanismi, kuten get int, 1708 01:25:39,020 --> 01:25:42,040 tai saada float tai saada merkkijono, tai jokin muu toiminto. 1709 01:25:42,040 --> 01:25:44,710 Mutta kテ、y ilmi, ettテ、 kun kirjoittaa ohjelma, 1710 01:25:44,710 --> 01:25:47,690 voit itse mテ、テ、rittテ、テ、 ettテ、 tテ、mテ、 ohjelma on 1711 01:25:47,690 --> 01:25:51,730 ottaa tuotantopanokset ihmisen komentoriviltテ、 itse. 1712 01:25:51,730 --> 01:25:56,310 >> Toisin sanoen, vaikka me tテ、hテ、n mennessテ、 on ollut kテ、ynnissテ、 vain ./hello hei 1713 01:25:56,310 --> 01:26:00,312 tai vastaavia ohjelmia, kaikki muut ohjelmat, jotka olemme kテ、yttテ、neet, 1714 01:26:00,312 --> 01:26:02,770 ettテ、 me itse ei kirjoittanut, ovat saaneet, nテ、yttテ、テ、 siltテ、, 1715 01:26:02,770 --> 01:26:05,210 komentorivi arguments-- asioita, kuten make. 1716 01:26:05,210 --> 01:26:07,450 Sanot jotain tehdテ、, ja sitten toinen sana. 1717 01:26:07,450 --> 01:26:10,950 Tai kalahtaa, sanot clang, ja sitten toinen sana, nimi tiedoston. 1718 01:26:10,950 --> 01:26:14,410 >> Tai jopa RM tai CP, kuten saatat nテ、hnyt tai kテ、ytetty jo 1719 01:26:14,410 --> 01:26:15,880 poistaa tai kopioida tiedostoja. 1720 01:26:15,880 --> 01:26:18,920 Kaikki nテ、mテ、 ottaa niin sanottuja komentorivi arguments-- 1721 01:26:18,920 --> 01:26:21,130 lisテ、sanoja terminaalissa nopea. 1722 01:26:21,130 --> 01:26:23,260 Mutta tテ、hテ、n asti, me itse ei ole ollut 1723 01:26:23,260 --> 01:26:27,080 tテ、mテ、 ylellisyys ottaa panosta kテ、yttテ、jテ、 kun hテ、n todella toimii 1724 01:26:27,080 --> 01:26:29,120 itse ohjelman komentoriviltテ、. 1725 01:26:29,120 --> 01:26:33,710 >> Mutta voimme tehdテ、 sen uudestaan 窶銀€喫lmoittamalla Tテ、rkein eteenpテ、in, ei olevan 1726 01:26:33,710 --> 01:26:36,750 mitテ、tテカidテ、 suluissa, mutta nテ、mテ、 kaksi argumenttia 1727 01:26:36,750 --> 01:26:40,600 instead-- ensimmテ、inen kokonaisluku, ja toinen jotain 1728 01:26:40,600 --> 01:26:44,170 uusi, jota me aiomme soittaa array, jotain vastaavaa hengessテ、 1729 01:26:44,170 --> 01:26:49,220 mitテ、 nテ、imme Scratch luettelona, 窶銀€砧utta merkkijonojen joukko, kuten tulemme pian nテ、hdテ、. 1730 01:26:49,220 --> 01:26:51,790 Mutta katsotaanpa tテ、mテ、n Esimerkiksi, ennen kuin 1731 01:26:51,790 --> 01:26:53,690 erottaa mitテ、 se tarkoittaa. 1732 01:26:53,690 --> 01:26:56,520 >> Joten jos menen CS50 IDE tテ、テ、llテ、, olen mennyt eteenpテ、in 1733 01:26:56,520 --> 01:27:01,840 ja ilmoitettu niminen tiedosto argv0.c seuraavat mallin. 1734 01:27:01,840 --> 01:27:04,120 Ja huomaa ainoa asia se on erilaista toistaiseksi 1735 01:27:04,120 --> 01:27:08,570 on, ettテ、 olen muuttunut mitテ、tテカn int argc string argv alkusulkumerkki lテ、hellテ、 1736 01:27:08,570 --> 01:27:09,070 kiinnike. 1737 01:27:09,070 --> 01:27:11,730 Ja huomaa nyt, siellテ、 mitテ、テ、n sisテ、llテ、 nテ、istテ、 suluissa. 1738 01:27:11,730 --> 01:27:12,620 >> Ei ole numero. 1739 01:27:12,620 --> 01:27:15,070 Eikテ、 ole i, tai n, tai mikテ、 tahansa muu kirjain. 1740 01:27:15,070 --> 01:27:17,010 Olen vain kテ、yttテ、mテ、llテ、 hakasulkeissa nyt, 1741 01:27:17,010 --> 01:27:19,510 syistテ、 tulemme takaisin vain hetken. 1742 01:27:19,510 --> 01:27:21,330 >> Ja nyt, mitテ、 aion tehdテ、, on tテ、mテ、. 1743 01:27:21,330 --> 01:27:26,680 Jos argc yhtテ、 kuin yhtテ、 kuin 2-- ja muistuttavat, ettテ、 on yhtテ、 tasavertaisia 1744 01:27:26,680 --> 01:27:30,040 on yhtテ、suuruusoperaattorin vertaamalla vasen ja oikea tasa-arvoa. 1745 01:27:30,040 --> 01:27:31,790 Se ei ole toimeksianto operaattori, joka on 1746 01:27:31,790 --> 01:27:36,510 yhden yhtテ、lテ、isyysmerkki, mikテ、 tarkoittaa kopio oikealta vasemmalle jotain arvoa. 1747 01:27:36,510 --> 01:27:42,840 >> Jos argc yhtテ、 kuin yhtテ、 kuin 2, haluan vaikkapa printf, hei, prosentteja, uusi linja, 1748 01:27:42,840 --> 01:27:47,340 ja sitten kytke in-- ja tテ、ssテ、 uudessa trick-- argv kiinnike 1 syistテ、 1749 01:27:47,340 --> 01:27:48,840 ettテ、 me palaamme hetken. 1750 01:27:48,840 --> 01:27:52,110 Else if argc ei equal 2, tiedテ、tkテカ mitテ、? 1751 01:27:52,110 --> 01:27:57,400 Mennテ、テ、n eteenpテ、in ja, kuten tavallista, tulostaa out Hello World ilman korvaamista. 1752 01:27:57,400 --> 01:28:02,710 >> Joten nテ、yttテ、テ、 siltテ、, 窶銀€菊ttテ、 jos argc, joka sanoista argumentti count, on 2, 1753 01:28:02,710 --> 01:28:04,740 Aion tulostaa hei jotain tai muuta. 1754 01:28:04,740 --> 01:28:07,560 Muussa tapauksessa oletuksena, olen menossa painoon Hello World. 1755 01:28:07,560 --> 01:28:08,770 Mitテ、 tテ、mテ、 tarkoittaa? 1756 01:28:08,770 --> 01:28:15,550 >> No, anna minun mennテ、 eteenpテ、in ja tallenna tテ、mテ、n tiedoston, ja sitten eivテ、t tee argv0, 1757 01:28:15,550 --> 01:28:18,940 ja sitten ./argv0, Enter. 1758 01:28:18,940 --> 01:28:20,300 Ja se sanoo Hello World. 1759 01:28:20,300 --> 01:28:21,260 Nyt Miksi? 1760 01:28:21,260 --> 01:28:24,730 >> No, se kテ、テ、ntyy pois milloin vain suorittaa ohjelman komentoriviltテ、, 1761 01:28:24,730 --> 01:28:29,570 tテ、ytテ、t Mitテ、 me yleensテ、 soittaa argumenttivektorin. 1762 01:28:29,570 --> 01:28:33,100 Toisin sanoen, automaattisesti tietokone, kテ、yttテカjテ、rjestelmテ、, 1763 01:28:33,100 --> 01:28:38,340 on menossa kテ、si ohjelmaasi itse listan kaikista sanoista 1764 01:28:38,340 --> 01:28:40,850 ettテ、 ihmisen kirjoitettuna kehotteen siltテ、 varalta, 1765 01:28:40,850 --> 01:28:43,790 ohjelmoija haluavat tehdテ、 jotain tテ、mテ、n tiedon. 1766 01:28:43,790 --> 01:28:48,540 Ja tテ、ssテ、 tapauksessa ainoa sana Olen kirjoittanut kehoitteessa on ./argv0. 1767 01:28:48,540 --> 01:28:55,420 >> Ja niin useita vテ、itteitテ、, jotka on siirrellテ、テ、n minun ohjelma on vain yksi. 1768 01:28:55,420 --> 01:28:58,880 Toisin sanoen, argumentti count, joka tunnetaan myテカs argc 1769 01:28:58,880 --> 01:29:00,970 tテ、テ、llテ、 kokonaisluku, on vain yksi. 1770 01:29:00,970 --> 01:29:03,000 Yksi tietenkテ、テ、n ei ole sama kahden. 1771 01:29:03,000 --> 01:29:05,980 Ja niin tテ、mテ、 on mitテ、 tulostaa, Hello World. 1772 01:29:05,980 --> 01:29:08,170 >> Mutta minテ、pテ、 ottaa tテ、mテ、n jonnekin. 1773 01:29:08,170 --> 01:29:09,930 Saanen sanoa, argv0. 1774 01:29:09,930 --> 01:29:12,740 Ja sitten miten Maria? 1775 01:29:12,740 --> 01:29:14,990 Ja sitten Enter. 1776 01:29:14,990 --> 01:29:18,020 >> Ja huomaa, mitテ、 maagisesti tapahtuu tテ、テ、llテ、. 1777 01:29:18,020 --> 01:29:22,640 Nyt sen sijaan Hello World, olen muuttanut kテ、yttテ、ytymistテ、 ohjelman 1778 01:29:22,640 --> 01:29:26,310 ottamalla tulo eikテ、 get merkkijono tai jokin muu toiminto, 1779 01:29:26,310 --> 01:29:30,570 mutta ilmeisesti minun komento itse, mitテ、 alun perin kirjoitettu. 1780 01:29:30,570 --> 01:29:35,720 Ja voin pelata tテ、tテ、 peliテ、 uudelleen muuttamalla sen Stelios, esimerkiksi. 1781 01:29:35,720 --> 01:29:38,400 >> Ja nyt nテ、en toinen nimi vielテ、. 1782 01:29:38,400 --> 01:29:40,540 Ja tテ、ssテ、, sanoisin Andi. 1783 01:29:40,540 --> 01:29:42,137 Ja voisin sanoa Zamyla. 1784 01:29:42,137 --> 01:29:45,220 Voimme pelata tテ、tテ、 peliテ、 koko pテ、ivテ、n, vain kytkemテ、llテ、 eri arvoja, 1785 01:29:45,220 --> 01:29:49,550 niin kauan kuin minテ、 antaa tarkalleen kaksi sanaa kehotteeseen, 1786 01:29:49,550 --> 01:29:52,260 niin ettテ、 argc, minun argumentti laskea, on 2. 1787 01:29:52,260 --> 01:29:57,240 >> Nテ、en ettテ、 nimi kytketty printf, per tテ、mテ、 ehto tテ、テ、llテ、? 1788 01:29:57,240 --> 01:30:00,550 Joten meillテ、 nテ、yttテ、テ、 nyt ilmaisuvoimainen ominaisuus 1789 01:30:00,550 --> 01:30:04,410 ottaa panos toinen mekanismi, alkaen ns komentorivin, 1790 01:30:04,410 --> 01:30:07,000 eikテ、 tarvitse odottaa kunnes kテ、yttテ、jテ、 kテ、ynnistテ、テ、 ohjelman, 1791 01:30:07,000 --> 01:30:10,220 ja kehottaa sitten hテ、nelle kテ、yttテ、mテ、llテ、 jotain get merkkijono. 1792 01:30:10,220 --> 01:30:11,230 >> Joten mitテ、 tテ、mテ、 on? 1793 01:30:11,230 --> 01:30:15,010 Argc, jテ、lleen, on vain kokonaisluku, mテ、テ、rテ、 words-- arguments-- 1794 01:30:15,010 --> 01:30:18,540 ettテ、 kテ、yttテ、jテ、 on aikaansaatu nopea kello pテ、テ、teikkunaa 1795 01:30:18,540 --> 01:30:20,110 mukaan lukien ohjelman nimen. 1796 01:30:20,110 --> 01:30:23,340 Joten meidテ、n ./argv0 on tehokkaasti, ohjelman nimen, 1797 01:30:23,340 --> 01:30:24,520 tai miten ajaa ohjelman. 1798 01:30:24,520 --> 01:30:25,810 >> Se lasketaan sana. 1799 01:30:25,810 --> 01:30:27,080 Joten argc olisi 1. 1800 01:30:27,080 --> 01:30:29,750 Mutta kun kirjoitan Stelios, tai Andi, tai Zamyla tai Maria, 1801 01:30:29,750 --> 01:30:31,660 se tarkoittaa, ettテ、 vテ、ite mテ、テ、rテ、 on kaksi. 1802 01:30:31,660 --> 01:30:33,910 Ja niin nyt on kaksi sanaa hyvテ、ksyttiin. 1803 01:30:33,910 --> 01:30:36,070 >> Ja ilmoitus, voimme jatkaa tテ、tテ、 logiikkaa. 1804 01:30:36,070 --> 01:30:39,050 Jos minテ、 oikeastaan 窶銀€虐anoa jotain Zamyla Chan, 1805 01:30:39,050 --> 01:30:42,200 tテ、ydellinen nimi, nテ、in ohimennen kolme vテ、itettテ、 yhteensテ、, 1806 01:30:42,200 --> 01:30:47,410 Nyt se sanoo oletuksena uudelleen, koska tietenkin, 3 ei ole sama 2. 1807 01:30:47,410 --> 01:30:54,080 >> Ja niin tテ、llテ、 tavalla, minulla on tulotie argv tテ、mテ、 uusi vテ、ite 1808 01:30:54,080 --> 01:30:56,080 ettテ、 voisimme teknisesti soittaa mitテ、 haluamme. 1809 01:30:56,080 --> 01:30:58,940 Mutta sopimuksen mukaan, se on argv ja argc, vastaavasti. 1810 01:30:58,940 --> 01:31:04,470 Argv, argumenttivektorin, on erテ、テ、nlainen of synonyymi ohjelmointi 1811 01:31:04,470 --> 01:31:07,140 ominaisuus C kutsutaan jono. 1812 01:31:07,140 --> 01:31:14,410 >> Valikoima on luettelo vastaavista arvoista takaisin, takaisin, takaisin, takaisin. 1813 01:31:14,410 --> 01:31:17,810 Toisin sanoen, jos yksi on tテ、テ、llテ、 RAM, seuraava on aivan sen vieressテ、, 1814 01:31:17,810 --> 01:31:18,800 ja aivan sen vieressテ、. 1815 01:31:18,800 --> 01:31:20,101 Ne eivテ、t ole koko paikka. 1816 01:31:20,101 --> 01:31:23,100 Ja ettテ、 viimeksi mainittu skenaario, jossa asiat ovat koko paikka muistiin, 1817 01:31:23,100 --> 01:31:25,082 voi todella olla tehokas ominaisuus. 1818 01:31:25,082 --> 01:31:28,040 Mutta palaamme asiaan, kun me puhua harrastaja tietorakenteita. 1819 01:31:28,040 --> 01:31:32,260 Nyt joukko on vain kimpale yhtenテ、istテ、 muistia, 1820 01:31:32,260 --> 01:31:36,520 jokainen jonka alkiot ovat takaisin, takaisin, takaisin, takaisin, 1821 01:31:36,520 --> 01:31:38,050 ja yleensテ、 samaa tyyppiテ、. 1822 01:31:38,050 --> 01:31:42,630 >> Joten jos ajattelee, mistテ、 hetki sitten, mikテ、 on merkkijono? 1823 01:31:42,630 --> 01:31:50,460 No, merkkijono, kuten Zamyla, Z-A-M-Y-L-A, on teknisesti, 1824 01:31:50,460 --> 01:31:51,400 vain joukko. 1825 01:31:51,400 --> 01:31:53,700 Se on joukko merkkejテ、. 1826 01:31:53,700 --> 01:31:59,250 >> Ja niin jos todella vetテ、テ、 tテ、mテ、n, koska olen aiemminkin, koska kimpale muistia, 1827 01:31:59,250 --> 01:32:04,510 kテ、y ilmi, ettテ、 jokainen nテ、istテ、 merkkiテ、 vie tavu. 1828 01:32:04,510 --> 01:32:07,630 Ja sitten on, ettテ、 erityistテ、 Sentinel luonne, kenoviivan 0, 1829 01:32:07,630 --> 01:32:12,360 tai kaikki kahdeksan 0 bittiテ、, ettテ、 rajataan loppuun merkkijonon. 1830 01:32:12,360 --> 01:32:15,090 Joten merkkijono, se muuttuu out, lainata lainaus pテ、テ、ttyy merkkijono, 1831 01:32:15,090 --> 01:32:20,580 on vain joukko chara-- char on todellinen tietotyyppi. 1832 01:32:20,580 --> 01:32:24,560 >> Ja nyt argv, meanwhile-- mennテ、テ、n takaisin ohjelmaan. 1833 01:32:24,560 --> 01:32:29,582 Argv, vaikka nテ、emme sanan string tテ、テ、llテ、, ei ole merkkijono itse. 1834 01:32:29,582 --> 01:32:33,640 Argv, argumenttivektorin, on joukko merkkijonoja. 1835 01:32:33,640 --> 01:32:37,620 >> Joten kun voit olla erilaisia merkkiテ、, voit olla korkeampi, 1836 01:32:37,620 --> 01:32:46,279 joukko strings-- niin, esimerkiksi, kun olen kirjoittanut hetki sitten ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, tila Z-A-M-Y-L-A, I vテ、itti, ettテ、 argv oli kaksi jousille it-- ./argv0, 1838 01:33:00,150 --> 01:33:03,185 ja Z-A-M-Y-L-A. Sisテ、テ、n Toisin sanoen, argc oli 2. 1839 01:33:03,185 --> 01:33:03,980 Miksi niin? 1840 01:33:03,980 --> 01:33:08,370 >> No, tehokkaasti, mitテ、 tapahtuu siitテ、, ettテ、 kukin nテ、istテ、 jouset 1841 01:33:08,370 --> 01:33:13,990 on tietenkin joukko merkkejテ、 kuten ennen, jonka jokainen merkkiテ、 1842 01:33:13,990 --> 01:33:15,670 vie yhden tavun. 1843 01:33:15,670 --> 01:33:19,720 Ja テ、lテ、 sekoita todellista 0 ohjelman nimen kanssa 0, 1844 01:33:19,720 --> 01:33:22,040 mikテ、 tarkoittaa kaikkia 80 bittiテ、. 1845 01:33:22,040 --> 01:33:27,140 Ja Zamyla puolestaan 窶銀€黍n edelleen myテカs joukko merkkejテ、. 1846 01:33:27,140 --> 01:33:31,450 >> Joten lopussa pテ、ivテ、, se todella nテ、yttテ、テ、 tテ、ltテ、 alla huppu. 1847 01:33:31,450 --> 01:33:38,800 Mutta argv, luonteeltaan kuinka tテ、rkeimmistテ、 tyテカt, avulla voin paketoida kaikki tテ、mテ、 1848 01:33:38,800 --> 01:33:44,810 ylテカs, jos haluatte, isompi array ettテ、 jos me hieman yksinkertaistaa 1849 01:33:44,810 --> 01:33:48,180 mitテ、 kuva nテ、yttテ、テ、 eivテ、tkテ、 melko piirtテ、テ、 mittakaavassa jopa siellテ、, 1850 01:33:48,180 --> 01:33:56,720 Tテ、mテ、 joukko on vain koko 2, ensimmテ、inen elementti, joka sisテ、ltテ、テ、 merkkijonon, 1851 01:33:56,720 --> 01:33:59,230 toinen elementti joka sisテ、ltテ、テ、 merkkijonon. 1852 01:33:59,230 --> 01:34:01,687 Ja puolestaan 窶銀€桔os Tテ、llainen zoomata kussakin 1853 01:34:01,687 --> 01:34:03,770 nテ、istテ、 jouset, mitテ、 katso alla huppu 1854 01:34:03,770 --> 01:34:07,190 on, ettテ、 jokainen merkkijono on vain erilaisia 窶銀€砧erkkejテ、. 1855 01:34:07,190 --> 01:34:11,680 >> Nyt aivan kuten jouset, pystyimme pテ、テ、stテ、 kテ、siksi 1856 01:34:11,680 --> 01:34:15,260 on i: nnen merkin merkkijono kテ、yttテ、mテ、llテ、 ettテ、 hakasulku merkintテ、tapa. 1857 01:34:15,260 --> 01:34:17,320 Vastaavasti, paneelit yleensテ、, voimme 1858 01:34:17,320 --> 01:34:22,700 kテ、yttテ、テ、 hakasulje merkintテ、テ、 saada milloin tahansa mテ、テ、rテ、n merkkijonojen joukko? 1859 01:34:22,700 --> 01:34:25,100 Esimerkiksi haluan mennテ、 eteenpテ、in ja tehdテ、 tテ、tテ、. 1860 01:34:25,100 --> 01:34:32,420 >> Anna minun mennテ、 eteenpテ、in ja luoda argv1.c, joka on hieman erilainen tテ、llテ、 kertaa. 1861 01:34:32,420 --> 01:34:35,635 Sen sijaan, ettテ、 tarkistamalla argc2, Aion sen sijaan tehdテ、 tテ、mテ、n. 1862 01:34:35,635 --> 01:34:41,270 Sillテ、 int saan 0, I on vテ、hemmテ、n kuin argc, I plus plus, 1863 01:34:41,270 --> 01:34:47,920 ja sitten tulostaa sisテ、llテ、 tテ、stテ、, prosentin s, uusi rivi, ja sitten 1864 01:34:47,920 --> 01:34:50,740 argv kiinnike i. 1865 01:34:50,740 --> 01:34:55,220 >> Eli toisin sanoen, en ole tekemisissテ、 yksittテ、isiテ、 merkkejテ、 tテ、llテ、 hetkellテ、. 1866 01:34:55,220 --> 01:35:00,190 Argv, kuten epテ、suorasti tyhjテ、テ、n ruutuun olkaimet oikealla nimen argv, 1867 01:35:00,190 --> 01:35:03,320 tarkoittaa argv on Merkkijonotaulukko. 1868 01:35:03,320 --> 01:35:04,870 Ja argc on vain int. 1869 01:35:04,870 --> 01:35:08,800 >> Tテ、mテ、 linja tテ、テ、llテ、, 6, on sanomalla asettaa i yhtテ、 suuri kuin 0. 1870 01:35:08,800 --> 01:35:11,980 Laske kaikki asti, mutta ei, argc. 1871 01:35:11,980 --> 01:35:14,010 Ja sitten jokaisen iteraation, tulostaa merkkijonon. 1872 01:35:14,010 --> 01:35:14,800 Mikテ、 merkkijono? 1873 01:35:14,800 --> 01:35:17,270 >> I: nnen merkkijono argv. 1874 01:35:17,270 --> 01:35:19,530 Joten kun ennen olin kテ、yttテ、en hakasulku 1875 01:35:19,530 --> 01:35:22,180 merkintテ、tapa saada i: nnessテ、 merkin merkkijono, nyt 1876 01:35:22,180 --> 01:35:27,240 Olen kテ、yttテ、en hakasulku merkintテ、tapa saada aikaa nnen merkkijonon array. 1877 01:35:27,240 --> 01:35:30,310 Joten se on erテ、テ、nlainen yhden kerroksen edellテ、, kテ、sitteellisesti. 1878 01:35:30,310 --> 01:35:35,390 >> Ja niin mitテ、 siisti tテ、stテ、 ohjelma nyt, jos en koota argv1, 1879 01:35:35,390 --> 01:35:42,067 ja sitten tehdテ、 ./argv1, ja kirjoita sitten moisesta foo bar baz, 1880 01:35:42,067 --> 01:35:45,400 jotka ovat kolme oletuksena sanaa, ettテ、 tietojenkテ、sittelytieteessテ、 kurottaa tahansa 1881 01:35:45,400 --> 01:35:51,010 hテ、n tarvitsee jonkin paikkamerkki sanoja, ja Enter, kullakin sanalla, 1882 01:35:51,010 --> 01:35:54,980 kuten ohjelman nimen, joka on argv ensimmテ、isessテ、 paikassa, 1883 01:35:54,980 --> 01:35:58,320 pテ、テ、tyy painetaan yksi kerrallaan. 1884 01:35:58,320 --> 01:36:05,290 Ja jos minテ、 muuttaa tテ、tテ、, ja sanon jotain argv1 Zamyla Chan, 1885 01:36:05,290 --> 01:36:08,800 saamme kaikki kolme nテ、istテ、 sanoja, joka on argv0, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, koska tテ、ssテ、 tapauksessa argc, count, on 3. 1887 01:36:14,400 --> 01:36:20,020 >> Mutta mikテ、 on siisti on jos ymmテ、rrテ、t ettテ、 argv on vain joukko jouset, 1888 01:36:20,020 --> 01:36:24,910 ja ymmテ、rrテ、t, ettテ、 merkkijono on joukko merkkejテ、, 1889 01:36:24,910 --> 01:36:29,470 voimme todella sellaista kテ、yttテ、vテ、t tテ、tテ、 hakasulje merkintテ、tapa useita kertoja 1890 01:36:29,470 --> 01:36:33,320 valita merkkijono ja valitse merkin sisテ、llテ、 merkkijono, 1891 01:36:33,320 --> 01:36:35,730 sukellus syvemmテ、lle seuraavasti. 1892 01:36:35,730 --> 01:36:40,100 Tテ、ssテ、 esimerkissテ、 anna minun mennテ、 eteenpテ、in ja kutsuvat tテ、tテ、 argv2.c. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 Ja tテ、ssテ、 esimerkissテ、, anna minun mennテ、 eteenpテ、in ja tehdテ、 following-- varten int saan 0, 1895 01:36:50,180 --> 01:36:53,286 i on pienempi kuin argc, i plus plus, aivan kuten ennenkin. 1896 01:36:53,286 --> 01:36:55,910 Eli toisin words-- ja nyt tテ、mテ、 on saada monimutkainen tarpeeksi. 1897 01:36:55,910 --> 01:36:59,940 Sitten aion sanoa kerrata yli jousille argv, 1898 01:36:59,940 --> 01:37:01,294 kommenttina itselleni. 1899 01:37:01,294 --> 01:37:03,960 Ja sitten aion olla sisテ、kkテ、isiテ、 silmukka, joka luultavasti 1900 01:37:03,960 --> 01:37:06,290 ovat tehneet, tai katsotaan teet, Scratch, jossa 1901 01:37:06,290 --> 01:37:08,600 Aion sanoa int-- olen aio kテ、yttテ、テ、 i uudelleen, 1902 01:37:08,600 --> 01:37:12,590 koska en halua varjo, tai tavallaan korvata olemassa olevan i. 1903 01:37:12,590 --> 01:37:15,780 >> Aion sen sijaan, sanovat j, koska se on minun mennテ、 muuttuja jテ、lkeen i, 1904 01:37:15,780 --> 01:37:18,590 kun olen vain yrittテ、テ、 laskea yksinkertaisen numeroita. 1905 01:37:18,590 --> 01:37:28,850 J saa 0-- ja myテカs, n, on menossa saada perテ、 pituus argv kiinnike i, 1906 01:37:28,850 --> 01:37:36,030 kunhan j on pienempi kuin m, j plus plus, toimi seuraavasti. 1907 01:37:36,030 --> 01:37:37,500 Ja tテ、ssテ、 on mielenkiintoinen osa. 1908 01:37:37,500 --> 01:37:46,330 >> Tulosta merkin ja uusi linja, kytkemテ、llテ、 argv kannatin i, kannatin j. 1909 01:37:46,330 --> 01:37:47,940 OK, joten haluan lisテ、tテ、 joitakin kommentteja tテ、テ、llテ、. 1910 01:37:47,940 --> 01:37:54,820 Kerrata yli merkkiテ、 nykyisessテ、 string, 1911 01:37:54,820 --> 01:38:02,290 print j: nnen hahmo i: nnelle merkkijono. 1912 01:38:02,290 --> 01:38:04,630 Joten nyt Tarkastellaan mitテ、 nテ、mテ、 kommentit tarkoittaa. 1913 01:38:04,630 --> 01:38:06,750 >> Kerrata yli jouset in argv-- montako 1914 01:38:06,750 --> 01:38:09,300 jouset ovat argv, joka on taulukko? 1915 01:38:09,300 --> 01:38:13,420 Argc monta, joten olen iteroimalla alkaen i = 0, jopa argc. 1916 01:38:13,420 --> 01:38:20,020 Samaan aikaan, kuinka monta merkkiテ、 ovat i: nnen merkkijonon argv? 1917 01:38:20,020 --> 01:38:22,880 >> No, saada, ettテ、 vastaus, Olen juuri soittaa merkkijonon pituus 1918 01:38:22,880 --> 01:38:26,810 nykyisestテ、 string I care noin, mikテ、 on argv kiinnike i. 1919 01:38:26,810 --> 01:38:30,090 Ja aion vテ、liaikaisesti varastoida ettテ、 arvo n, vain vテ、limuistiin tarkoituksiin, 1920 01:38:30,090 --> 01:38:31,590 muistaa sen tehokkuutta. 1921 01:38:31,590 --> 01:38:36,330 Ja sitten aion alustaa j 0, pitテ、テ、 kテ、ynnissテ、 niin kauan kuin j on pienempi kuin n, 1922 01:38:36,330 --> 01:38:38,430 ja jokaisen iteraation lisテ、yksen j. 1923 01:38:38,430 --> 01:38:41,030 >> Ja sitten tテ、テ、llテ、, kohti minun kommentoida linja 12, 1924 01:38:41,030 --> 01:38:43,390 tulostaa merkin, jonka jテ、lkeen uusi rivi, 1925 01:38:43,390 --> 01:38:48,140 Erityisesti argv kiinnike i antaa minulle i: nnen string 1926 01:38:48,140 --> 01:38:51,690 in argv-- joten ensimmテ、inen sanaa, toinen sana, kolmas sana riippumatta. 1927 01:38:51,690 --> 01:38:57,370 Ja sitten j sukellusta syvemmテ、lle, ja saa me j: nnen luonne tuo sana. 1928 01:38:57,370 --> 01:39:02,200 Ja niin, itse asiassa, voit hoitaa argv niin moniulotteinen, 1929 01:39:02,200 --> 01:39:06,050 kuten kaksiulotteinen, array, jolloin jokainen sana sellainen nテ、yttテ、テ、 1930 01:39:06,050 --> 01:39:08,580 kuten tテ、mテ、 mielesi silmテ、, ja jokainen merkki 1931 01:39:08,580 --> 01:39:10,930 on sellainen muodostetaan sarake, jos se auttaa. 1932 01:39:10,930 --> 01:39:13,260 >> Todellisuudessa kun kiusaa Tテ、mテ、n lisテ、ksi tulevaisuudessa viikkoja, 1933 01:39:13,260 --> 01:39:15,580 se tulee olemaan hieman kehittyneempiテ、 kuin. 1934 01:39:15,580 --> 01:39:17,800 Mutta voit todella ajatella, ettテ、 nyt, 1935 01:39:17,800 --> 01:39:22,110 koska juuri tテ、mテ、 kaksiulotteinen array, jolloin yksi taso sen 1936 01:39:22,110 --> 01:39:23,260 on kaikki jouset. 1937 01:39:23,260 --> 01:39:26,760 Ja sitten jos sukeltaa syvemmテ、lle, te voi saada aikaa yksittテ、isten merkkien 1938 01:39:26,760 --> 01:39:29,600 taavaa kテ、yttテ、mテ、llテ、 tテ、tテ、 merkintテ、テ、 tテ、テ、llテ、. 1939 01:39:29,600 --> 01:39:31,620 >> Joten mikテ、 on nettovaikutus? 1940 01:39:31,620 --> 01:39:34,970 Anna minun mennテ、 eteenpテ、in ja tehdテ、 argv2-- hiton sitテ、. 1941 01:39:34,970 --> 01:39:36,210 Tein virheen tテ、テ、llテ、. 1942 01:39:36,210 --> 01:39:40,160 Epテ、suorasti ilmoittamisessa kirjaston funktion Stirling. 1943 01:39:40,160 --> 01:39:42,190 Joten koko tテ、mテ、n ajan, se on ehkテ、 aiheellista 1944 01:39:42,190 --> 01:39:45,130 ettテ、 olemme tavallaan viimeistely missテ、 aloitimme. 1945 01:39:45,130 --> 01:39:48,160 >> Mokasin implisiittisesti julistaa kirjaston funktion Stirling. 1946 01:39:48,160 --> 01:39:48,987 OK, odota hetki. 1947 01:39:48,987 --> 01:39:51,070 Muistan, ettテ、 varsinkin koska se on tテ、テ、llテ、. 1948 01:39:51,070 --> 01:39:54,490 Minun tテ、ytyy sisテ、llyttテ、テ、 string.h vuonna tテ、mテ、 versio ohjelmasta. 1949 01:39:54,490 --> 01:40:00,050 >> Anna minun mennテ、 eteenpテ、in ja sisテ、ltテ、vテ、t string.h, paitsi ettテ、, mennテ、 eteenpテ、in 1950 01:40:00,050 --> 01:40:04,460 ja kテ、テ、ntテ、テ、 argv2. 1951 01:40:04,460 --> 01:40:08,390 Ja nyt, tテ、ssテ、 sitテ、 mennテ、テ、n, tee argv2, Enter. 1952 01:40:08,390 --> 01:40:10,590 Ja vaikka se on hieman arvoituksellinen ensi silmテ、yksellテ、, 1953 01:40:10,590 --> 01:40:15,690 huomata, todellakin, mitテ、 tulostetaan on piste argv2. 1954 01:40:15,690 --> 01:40:19,970 >> Mutta jos kirjoitan joitakin sanoja jテ、lkeen nopea, kuten argv2 Zamyla Chan, 1955 01:40:19,970 --> 01:40:22,560 Anna, myテカs hieman arvoituksellinen ensi silmテ、yksellテ、. 1956 01:40:22,560 --> 01:40:30,540 Mutta jos me vierittテ、テ、 takaisin ylテカs, ./argv2 Z-A-M-Y-L-A C-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 Siksi olemme iterated yli jokaista sanaa. 1958 01:40:32,190 --> 01:40:37,770 Ja puolestaan 窶銀€黍lemme iterated yli jokainen kirjaimen sanan. 1959 01:40:37,770 --> 01:40:40,040 >> Nyt, kun kaikki tテ、mテ、, ymmテ、rtテ、テ、, ettテ、 on olemassa 1960 01:40:40,040 --> 01:40:43,120 yksi muu yksityiskohtaisesti olemme olleet erテ、テ、nlainen unohdetaan koko tテ、mテ、n ajan. 1961 01:40:43,120 --> 01:40:46,180 Me vain kiusoitteli toisistaan 窶銀€砧itテ、 Tテ、rkeimmテ、t n tulot voivat olla? 1962 01:40:46,180 --> 01:40:47,780 Entテ、 tテ、rkeimmテ、t tuotannosta? 1963 01:40:47,780 --> 01:40:50,540 >> Kaikki tテ、mテ、 aika, olemme olleet vain kopioimalla 1964 01:40:50,540 --> 01:40:53,870 sana int edessテ、 tテ、rkein, vaikka et voi nテ、hdテ、 verkossa, 1965 01:40:53,870 --> 01:40:58,340 joskus virheellisesti vanhemmissa versioissa C ja kテ、テ、ntテ、jテ、t, ettテ、 he sanovat mitテ、tテカn, 1966 01:40:58,340 --> 01:40:59,410 tai ei mitテ、テ、n. 1967 01:40:59,410 --> 01:41:01,580 Mutta todellakin, ettテ、 version C, ettテ、 kテ、ytテ、mme, 1968 01:41:01,580 --> 01:41:06,180 C 11, tai 2011, ymmテ、rtテ、テ、 ettテ、 sen pitテ、isi olla int. 1969 01:41:06,180 --> 01:41:09,300 Ja sen pitテ、isi olla joko mitテ、tテカn tai argc ja argv tテ、テ、llテ、. 1970 01:41:09,300 --> 01:41:10,790 >> Mutta miksi int main? 1971 01:41:10,790 --> 01:41:12,480 Mikテ、 on se todella palaamassa? 1972 01:41:12,480 --> 01:41:16,280 No, se kテ、テ、ntyy pois kaiken tテ、mテ、n ajan, tahansa olet kirjoittanut ohjelman pテ、テ、asiallinen 1973 01:41:16,280 --> 01:41:18,440 on aina palaa jotain. 1974 01:41:18,440 --> 01:41:19,960 Mutta se on ollut nテ、in salaa. 1975 01:41:19,960 --> 01:41:23,350 >> Se jokin on int, koska rivi 5 ehdottaa. 1976 01:41:23,350 --> 01:41:24,225 Mutta mitテ、 int? 1977 01:41:24,225 --> 01:41:26,100 No, on tテ、mテ、 sopimus ohjelmointi, 1978 01:41:26,100 --> 01:41:29,790 jolloin jos mitテ、テ、n on mennyt pieleen ja kaikki on hyvin, 1979 01:41:29,790 --> 01:41:34,250 ohjelmat ja toiminnot yleisesti return-- hieman counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 yleensテ、 merkitsee kaikki on hyvin. 1982 01:41:38,070 --> 01:41:40,610 Joten vaikka ajatella se vテ、テ、rinテ、 monissa yhteyksissテ、, 1983 01:41:40,610 --> 01:41:42,930 se itse asiassa tarkoittaa yleensテ、 hyvテ、 asia 1984 01:41:42,930 --> 01:41:49,560 >> Samaan aikaan, jos ohjelma palauttaa 1, tai negatiivinen 1, tai 5, tai negatiivinen 42, 1985 01:41:49,560 --> 01:41:52,941 tai ei-0-arvo, ettテ、 yleensテ、 merkitsee 1986 01:41:52,941 --> 01:41:54,190 ettテ、 jotain on mennyt vikaan. 1987 01:41:54,190 --> 01:41:56,700 Itse omalla Mac- tai PC, olet ehkテ、 nテ、hneet 1988 01:41:56,700 --> 01:42:01,050 virheilmoituksen, jolloin se sanoo jotain tai muuta, virhe 1989 01:42:01,050 --> 01:42:04,940 koodi negatiivinen 42 tai virhekoodi 23, tai jotain sellaista. 1990 01:42:04,940 --> 01:42:08,980 Tテ、mテ、 numero on yleensテ、 vain aavistuksen ohjelmoija tai yritys 1991 01:42:08,980 --> 01:42:11,174 joka teki ohjelmisto, mikテ、 meni pieleen ja miksi, 1992 01:42:11,174 --> 01:42:13,590 jotta he voivat kテ、ydテ、 lテ、pi asiakirjansa tai koodi, 1993 01:42:13,590 --> 01:42:15,465 ja selvittテ、テ、, mitテ、 virhe todella tarkoittaa. 1994 01:42:15,465 --> 01:42:18,400 Se on yleensテ、 ole hyテカdyllistテ、 meille loppukテ、yttテ、jille. 1995 01:42:18,400 --> 01:42:20,550 >> Mutta kun tテ、rkein palauttaa 0, kaikki on hyvin. 1996 01:42:20,550 --> 01:42:23,770 Ja jos et mテ、テ、ritテ、 mitテ、 tテ、rkein pitテ、isi palata, 1997 01:42:23,770 --> 01:42:26,950 se vain automaattisesti palata 0 sinulle. 1998 01:42:26,950 --> 01:42:30,870 Mutta palaavat jotain muu on todella hyテカdyllinen. 1999 01:42:30,870 --> 01:42:34,660 >> Tテ、ssテ、 lopullinen ohjelma, haluan mennテ、 eteenpテ、in ja kutsuvat tテ、tテ、 exit.c, 2000 01:42:34,660 --> 01:42:38,630 ja ottaa viimeisen pテ、ivテ、n aiheita, tunnettu virhekoodi. 2001 01:42:38,630 --> 01:42:42,930 Anna minun mennテ、 eteenpテ、in ja sisテ、ltテ、テ、 myテカs tuttu tiedostoja ylテカs, tee int main. 2002 01:42:42,930 --> 01:42:49,500 Ja tテ、llテ、 kertaa, tehdテ、テ、n int argc, string argv, ja minun suluissa 2003 01:42:49,500 --> 01:42:50,836 vihjata, ettテ、 se on jono. 2004 01:42:50,836 --> 01:42:52,460 Ja sitten haluan vain tehdテ、 jテ、rki tarkistaa. 2005 01:42:52,460 --> 01:42:56,640 Tテ、llテ、 kertaa, jos argc ei equal 2, niin tiedテ、t mitテ、? 2006 01:42:56,640 --> 01:42:57,520 Unohda. 2007 01:42:57,520 --> 01:43:03,170 Aion sanoa, hei, kテ、yttテ、jテ、, olet puuttuu komentorivillテ、 2008 01:43:03,170 --> 01:43:04,210 backslash n. 2009 01:43:04,210 --> 01:43:05,230 >> Ja sitten se on siinテ、. 2010 01:43:05,230 --> 01:43:06,130 Haluan poistua. 2011 01:43:06,130 --> 01:43:11,030 Aion ennaltaehkテ、isevテ、sti, ja ennenaikaisesti todella, paluu 2012 01:43:11,030 --> 01:43:12,810 jotain muuta kuin numero 1. 2013 01:43:12,810 --> 01:43:15,360 Go to arvoa ensimmテ、istテ、 virhe, joka voi tapahtua on 1. 2014 01:43:15,360 --> 01:43:17,860 Jos sinulla on jokin muu virheellinen tilanne, joka saattaa ilmetテ、, 2015 01:43:17,860 --> 01:43:21,390 voisi sanoa paluu 2 tai palauttaa 3, tai ehkテ、 jopa negatiivinen 1 tai negatiivinen 2. 2016 01:43:21,390 --> 01:43:23,750 >> Nテ、mテ、 ovat vain exit koodeja jotka ovat yleensテ、 2017 01:43:23,750 --> 01:43:27,770 hyテカtyテ、 vain ohjelmoija, tai yritys, joka on merenkulun ohjelmisto. 2018 01:43:27,770 --> 01:43:30,500 Mutta se, ettテ、 se on ei 0 on, mikテ、 on tテ、rkeテ、テ、. 2019 01:43:30,500 --> 01:43:34,310 Joten jos tテ、ssテ、 ohjelmassa, haluan taata, ettテ、 tテ、ssテ、 ohjelmassa ainoastaan 2020 01:43:34,310 --> 01:43:38,190 toimii, jos kテ、yttテ、jテ、 antaa minulle argumenttia lasken kaksi, 2021 01:43:38,190 --> 01:43:42,880 nimi ohjelman, ja joitakin muita sana, voin valvoa niin paljon kuin seuraava, 2022 01:43:42,880 --> 01:43:46,110 Yell kテ、yttテ、jテ、lle printf sanonta, puuttuva komentorivillテ、, 2023 01:43:46,110 --> 01:43:46,970 palata 1. 2024 01:43:46,970 --> 01:43:49,940 Se tulee vain vテ、littテカmテ、sti lopettaa ohjelman. 2025 01:43:49,940 --> 01:43:55,840 >> Vain jos argc = 2 saamme alas tテ、テ、llテ、, jossa vaiheessa aion sanoa, 2026 01:43:55,840 --> 01:44:00,410 hei prosenttia s, kenoviiva n, argv1. 2027 01:44:00,410 --> 01:44:03,827 Toisin sanoen, olen aio jテ、lkeen argv 0, 2028 01:44:03,827 --> 01:44:05,410 joka on vain ohjelman nimi. 2029 01:44:05,410 --> 01:44:09,450 Haluan tulostaa hei, pilkku, toinen sana, ettテ、 ihmisen kirjoitetaan. 2030 01:44:09,450 --> 01:44:12,580 Ja tテ、ssテ、 tapauksessa linja 13, kaikki on hyvin. 2031 01:44:12,580 --> 01:44:15,920 >> Tiedテ、n, ettテ、 argc on 2 loogisesti tテ、stテ、 ohjelmasta. 2032 01:44:15,920 --> 01:44:17,770 Aion mennテ、 eteenpテ、in ja palauttaa 0. 2033 01:44:17,770 --> 01:44:21,230 Sivuhuomautuksena, pitテ、テ、 mielessテ、, ettテ、 Tテ、mテ、 pテ、tee Scratch samoin. 2034 01:44:21,230 --> 01:44:24,760 >> Loogisesti, voisin tehdテ、 tテ、tテ、 ja kiteyttテ、テ、 nテ、mテ、 rivit 2035 01:44:24,760 --> 01:44:27,020 koodia tテ、ssテ、 muu lauseke tテ、テ、llテ、. 2036 01:44:27,020 --> 01:44:29,420 Mutta se on erテ、テ、nlainen tarpeettomasti sisennys minun koodi. 2037 01:44:29,420 --> 01:44:31,800 Ja Haluan tehdテ、 Super selvテ、テ、, ettテ、 mitテ、 tahansa, 2038 01:44:31,800 --> 01:44:34,670 oletuksena, hei jotain saavat painettu, 2039 01:44:34,670 --> 01:44:36,050 niin kauan kuin kテ、yttテ、jテ、 tekee yhteistyテカtテ、. 2040 01:44:36,050 --> 01:44:39,360 >> Joten on hyvin tavallista kテ、yttテ、テ、 ehdon, vain jos, 2041 01:44:39,360 --> 01:44:41,870 pyydystテ、mテ、テ、n virheellinen tilanne, ja sitten poistu. 2042 01:44:41,870 --> 01:44:45,690 Ja sitten, niin kauan kaikki on hyvin, ei ole muuta, 2043 01:44:45,690 --> 01:44:48,060 mutta vain koodia ulkopuolella ettテ、 jos, koska se on 2044 01:44:48,060 --> 01:44:51,060 vastaava tテ、ssテ、 erityistapauksessa, loogisesti. 2045 01:44:51,060 --> 01:44:54,480 Joten olen palaamassa 0, vain nimenomaisesti merkitsevテ、t kaikki on hyvin. 2046 01:44:54,480 --> 01:44:58,480 >> Jos minテ、 pois paluuta 0, se olisi automaattisesti olettaa minulle. 2047 01:44:58,480 --> 01:45:00,890 Mutta nyt kun palaan yksi ainakin tテ、ssテ、 tapauksessa 2048 01:45:00,890 --> 01:45:04,940 Aion, kaupanpテ、テ、llisiksi ja selkeys, palauttaa 0 tテ、ssテ、 tapauksessa. 2049 01:45:04,940 --> 01:45:09,690 Nyt anna minun mennテ、 eteenpテ、in ja tehdテ、 exit, joka on tテ、ydellinen segue vain lテ、hteテ、. 2050 01:45:09,690 --> 01:45:14,401 >> Mutta varmista exit, ja anna minun mennテ、 eteenpテ、in ja tehdテ、 ./exit, Enter. 2051 01:45:14,401 --> 01:45:16,900 Ja ohjelma huusi minulle, puuttuva komentorivillテ、. 2052 01:45:16,900 --> 01:45:18,120 OK, anna minun tehdテ、 yhteistyテカtテ、. 2053 01:45:18,120 --> 01:45:23,810 >> Saanen sen sijaan tehdテ、 ./exit, David, Enter. 2054 01:45:23,810 --> 01:45:25,190 Ja nyt se sanoo, hei David. 2055 01:45:25,190 --> 01:45:27,300 Ja et normaalisti nテ、e tテ、tテ、. 2056 01:45:27,300 --> 01:45:30,650 >> Mutta nテ、yttテ、テ、 siltテ、, 窶銀€菊ttテ、 on olemassa erityisellテ、 tavalla Linux todella nテ、hdテ、 2057 01:45:30,650 --> 01:45:34,470 mitテ、 exit koodin ohjelma poistui. 2058 01:45:34,470 --> 01:45:37,184 Joskus graafinen maailmaa, kuten Mac OS tai Windows, 2059 01:45:37,184 --> 01:45:40,100 nテ、et vain nテ、itテ、 numeroita, kun virheilmoitus ponnahtaa nテ、ytテカlle 2060 01:45:40,100 --> 01:45:41,940 ja ohjelmoija nテ、yttテ、テ、, ettテ、 numeron. 2061 01:45:41,940 --> 01:45:44,773 Mutta jos haluamme nテ、hdテ、, mitテ、 virhe viesti on, voimme tehdテ、 sen here-- 2062 01:45:44,773 --> 01:45:48,100 niin ./exit, Enter, tulostaa puuttuva komentorivillテ、. 2063 01:45:48,100 --> 01:45:54,590 >> Jos minテ、 nyt tehdテ、 echo $ ?, joka on naurettavan arvoituksellinen nテ、kテカinen. 2064 01:45:54,590 --> 01:45:56,590 Mutta $? 2065 01:45:56,590 --> 01:45:59,220 on maaginen loitsu joka sanoo, hei, tietokone, 2066 01:45:59,220 --> 01:46:01,900 kerro mitテ、 edellisessテ、 Ohjelman exit-koodi oli. 2067 01:46:01,900 --> 01:46:03,410 Ja osuin Enter. 2068 01:46:03,410 --> 01:46:07,520 Nテ、en 1, koska se mitテ、 kertonut pテ、テ、tehtテ、vテ、 palata. 2069 01:46:07,520 --> 01:46:12,310 >> Samaan aikaan, jos en ./exit David, ja Enter, nテ、en, hei David. 2070 01:46:12,310 --> 01:46:16,800 Ja jos minテ、 nyt tehdテ、 echo $ ?, nテ、en hei 0. 2071 01:46:16,800 --> 01:46:19,080 Ja niin tテ、mテ、 todella olla arvokasta tietoa 2072 01:46:19,080 --> 01:46:23,420 yhteydessテ、 debuggeri, ei niin paljon, ettテ、 te, ihmisen, ei vテ、littテ、isi. 2073 01:46:23,420 --> 01:46:26,060 Mutta debuggerin ja muut ohjelmat kテ、ytテ、mme tテ、mテ、n lukukauden 2074 01:46:26,060 --> 01:46:29,420 usein tarkastellaan, ettテ、 mテ、テ、rテ、, vaikka se tavallaan piilossa 2075 01:46:29,420 --> 01:46:32,780 ellet etsiテ、 sitテ、, mテ、テ、rittテ、テ、, onko ohjelman 2076 01:46:32,780 --> 01:46:37,050 suorittamisen oikea vai vテ、テ、rテ、. 2077 01:46:37,050 --> 01:46:40,450 >> Ja niin tテ、mテ、 tuo meidテ、t Tテ、mテ、n lopussa pテ、ivテ、n. 2078 01:46:40,450 --> 01:46:43,917 Aloitimme tテ、nテ、テ、n katsomalla virheenkorjaus, ja vuorotellen kurssin 2079 01:46:43,917 --> 01:46:46,750 itse, ja sitten enemmテ、n kiinnostavaa, Teknisesti alla huppu 2080 01:46:46,750 --> 01:46:49,490 mitテ、 jouset ovat, jotka kestテ、vテ、t viikolla vain otti itsestテ、テ、nselvyytenテ、, 2081 01:46:49,490 --> 01:46:51,900 ja varmasti vei heidテ、t selvテ、nテ、 Scratch. 2082 01:46:51,900 --> 01:46:56,040 >> Sitten tarkasteltiin, kuinka voimme kテ、yttテ、テ、 yksittテ、isiテ、 merkkejテ、 merkkijonon, 2083 01:46:56,040 --> 01:47:00,310 ja sitten taas otti korkeammalle tasolle katsomaan asioita, katsomalla miten well-- 2084 01:47:00,310 --> 01:47:04,226 jos haluamme saada yksittテ、isiテ、 elementtiテ、 yhdessテ、 listassa kuten rakenne, 2085 01:47:04,226 --> 01:47:05,850 ei voi teemme ettテ、 useita jouset? 2086 01:47:05,850 --> 01:47:08,050 Ja voimme kanssa komentoriviargumentteja. 2087 01:47:08,050 --> 01:47:12,800 Mutta tテ、mテ、 kuva tテ、テ、llテ、 vain laatikoiden on demonstratiivipronominit tテ、mテ、 yleinen ajatus 2088 01:47:12,800 --> 01:47:14,451 array, tai lista, tai vektori. 2089 01:47:14,451 --> 01:47:16,450 Ja riippuen yhteydessテ、, kaikki nテ、mテ、 sanat 2090 01:47:16,450 --> 01:47:17,880 tarkoittaa hieman eri asioita. 2091 01:47:17,880 --> 01:47:20,060 Joten C, olemme vain menossa puhua array. 2092 01:47:20,060 --> 01:47:23,840 Ja joukko on murikka muistia, joista kukin on 2093 01:47:23,840 --> 01:47:27,720 elementit ovat vierekkテ、isiテ、, takaisin, takaisin, takaisin, takaisin. 2094 01:47:27,720 --> 01:47:31,970 >> Ja nテ、mテ、 seikat ovat yleensテ、 samat tiedot tyyppi, merkki, 2095 01:47:31,970 --> 01:47:35,966 merkki, merkki, merkki, tai string, string, string, string, tai int, 2096 01:47:35,966 --> 01:47:38,600 int, int, mitテ、 se on yritテ、mme sテ、ilyttテ、テ、. 2097 01:47:38,600 --> 01:47:42,540 Mutta lopussa pテ、ivテ、, tテ、mテ、 on miltテ、 se nテ、yttテ、テ、 kテ、sitteellisesti. 2098 01:47:42,540 --> 01:47:44,530 Olet ottaen oman tietokoneen muistin tai RAM. 2099 01:47:44,530 --> 01:47:48,590 Ja olet veistテ、mテ、llテ、 sen ulos samankokoisia laatikoita, jotka kaikki 2100 01:47:48,590 --> 01:47:50,920 takaisin, takaisin, jotta takaisin, takaisin tテ、llテ、 tavalla. 2101 01:47:50,920 --> 01:47:53,200 >> Ja mitテ、 mukavaa noin Tテ、mテ、 ajatus, ja se 2102 01:47:53,200 --> 01:47:58,580 ettテ、 voimme ilmaista arvoja tテ、llテ、 tavoin ensimmテ、isen meidテ、n tietorakenteiden 2103 01:47:58,580 --> 01:48:02,520 luokassa, tarkoittaa voimme aloittaa ongelmien ratkaisemiseksi koodilla 2104 01:48:02,520 --> 01:48:04,079 joka tuli niin intuitiivisesti viikolla 0. 2105 01:48:04,079 --> 01:48:05,870 Saat muistaa puhelimen kirjaesimerkkiin, jossa 2106 01:48:05,870 --> 01:48:09,110 kテ、ytimme hajoita ja hallitse, tai puolitushaku, 2107 01:48:09,110 --> 01:48:13,220 kテ、ydテ、 lテ、pi koko nippu nimiテ、 ja numeroita. 2108 01:48:13,220 --> 01:48:18,220 Mutta oletimme, muistuttaa, ettテ、 puhelinluettelo on jo jテ、rjestetty, 2109 01:48:18,220 --> 01:48:21,630 ettテ、 joku muu oli jo tajunnut out-- annetaan luettelo nimiテ、 2110 01:48:21,630 --> 01:48:24,430 ja numbers-- miten aakkostaa niitテ、. 2111 01:48:24,430 --> 01:48:26,950 Ja nyt, ettテ、 C me, Myテカs on kyky 2112 01:48:26,950 --> 01:48:30,290 antaa asioita, ei fyysisesti puhelinluettelosta 2113 01:48:30,290 --> 01:48:34,220 mutta kテ、ytテ、nnテカssテ、 on tietokoneen muisti, voimme ensi viikolla 2114 01:48:34,220 --> 01:48:38,470 esitellテ、 uudelleen this-- ensimmテ、isen meidテ、n tietorakenteiden kテ、ytettテ、essテ、 array-- 2115 01:48:38,470 --> 01:48:43,530 mutta vielテ、 tテ、rkeテ、mpテ、テ、, todellinen tietokone tiede algoritmit toteutetaan 2116 01:48:43,530 --> 01:48:47,720 koodin, jolla voimme varastoida data rakenteissa, kuten tテ、mテ、, 2117 01:48:47,720 --> 01:48:50,730 ja sitten alkaa kテ、sitellテ、 sitテ、, ja todella ratkaista ongelmia sen kanssa, 2118 01:48:50,730 --> 01:48:53,570 ja rakentaa sen pテ、テ、lle, lopulta, ohjelmia C, 2119 01:48:53,570 --> 01:48:56,730 Python, JavaScript, kyselyitテ、 tietokantoja SQL? 2120 01:48:56,730 --> 01:48:59,980 >> Ja nテ、emme, ettテ、 kaikki nテ、mテ、 erilaisia 窶銀€蟻jatuksia lukitus. 2121 01:48:59,980 --> 01:49:04,100 Mutta nyt, muistaa, ettテ、 verkkotunnuksen ettテ、 otimme kテ、yttテカテカn tテ、nテ、テ、n 2122 01:49:04,100 --> 01:49:06,920 oli tテ、mテ、 asia tテ、テ、llテ、, ja maailmaan salakirjoituksen. 2123 01:49:06,920 --> 01:49:11,200 Ja joukossa seuraavan ongelmat itse ratkaisee on taidetta salakirjoituksen, 2124 01:49:11,200 --> 01:49:13,630 scrambling ja vastahajotus tietoa, ja salauksen 2125 01:49:13,630 --> 01:49:15,930 ja deciphering tekstiテ、, ja olettaen lopulta 2126 01:49:15,930 --> 01:49:18,970 ettテ、 te nyt tietテ、テ、, mitテ、 on alla huppu 2127 01:49:18,970 --> 01:49:21,860 niin ettテ、 kun nテ、et tai vastaanottaa tテ、llaisen viestin, te 2128 01:49:21,860 --> 01:49:24,060 itse voi tulkita sitテ、. 2129 01:49:24,060 --> 01:49:26,740 Kaikki tテ、mテ、, ja enemmテ、n ensi kerralla. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [VIDEOTOISTOSTA] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover Juuri saapunut. 2133 01:49:32,970 --> 01:49:35,146 Aion mennテ、 vierailun hテ、nen yliopiston professori. 2134 01:49:35,146 --> 01:49:37,611 Jep. 2135 01:49:37,611 --> 01:49:40,080 Moi. 2136 01:49:40,080 --> 01:49:40,660 Se olet sinテ、. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 Odota! 2139 01:49:45,110 --> 01:49:45,610 David. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 Olen vain yrittテ、nyt selvittテ、テ、 mitテ、 sinulle tapahtui. 2142 01:49:56,060 --> 01:49:58,130 Ole hyvテ、, mitテ、 tahansa voi auttaa. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 Olit hテ、nen college kテ、mppテ、kaveri, vai mitテ、? 2145 01:50:08,354 --> 01:50:10,770 Olit siellテ、 hテ、nen kanssaan, kun hテ、n sijoittui CS50 hanke? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [MUSIIKKIA] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -Se Oli CS50. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> Rakastan tテ、tテ、 paikkaa. 2152 01:50:44,770 --> 01:50:45,854 >> -Syテカdテ、. 2153 01:50:45,854 --> 01:50:47,020 Menemme ulos liiketoimintaa. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END TOISTO]