1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> SPEAKER 1: Okei. 3 00:00:13,650 --> 00:00:14,390 Tervetuloa takaisin. 4 00:00:14,390 --> 00:00:19,260 Tämä on viikko Kaksi CS50, ja meillä on tähän mennessä funktioiden avulla, mutta 5 00:00:19,260 --> 00:00:20,830 suurelta osin niitä itsestäänselvyytenä. 6 00:00:20,830 --> 00:00:23,430 Olemme käyttäneet printf joka on sivuvaikutus tulostus 7 00:00:23,430 --> 00:00:24,110 asiat näytöltä. 8 00:00:24,110 --> 00:00:25,790 Olemme käyttäneet get-int, saa kellua. 9 00:00:25,790 --> 00:00:29,230 >> Mutta mitä jos todella haluat luoda omaan toimintoja, kuten jotkut 10 00:00:29,230 --> 00:00:31,740 olet ehkä jo alkaneet tehdä Ongelma Set One, vaikka 11 00:00:31,740 --> 00:00:33,140 ei ehdottoman välttämätöntä? 12 00:00:33,140 --> 00:00:37,150 No, mennään eteenpäin ja uudelleen, että ongelma vain pyytää käyttäjältä 13 00:00:37,150 --> 00:00:40,660 nimensä ja tulostus jotain näyttö, mutta yritä tekijä joitakin 14 00:00:40,660 --> 00:00:44,000 sekä yhteisöllisyyden että olemme nähdä meidän koodi toistaiseksi. 15 00:00:44,000 --> 00:00:45,120 Joten tällä tarkoitan seuraavaa. 16 00:00:45,120 --> 00:00:47,315 >> Aion mennä eteenpäin ja luoda uusi ohjelma, soita 17 00:00:47,315 --> 00:00:49,320 se hello.c kuten tavallista. 18 00:00:49,320 --> 00:00:53,730 Aion mennä eteenpäin ja antaa itselleni ovat standardin io.h yläreunassa. 19 00:00:53,730 --> 00:00:57,040 Aion myös antaa itselleni preemptively CS50 kirjastoon, jotta 20 00:00:57,040 --> 00:00:59,080 En saa häiriinny kääntäjä. 21 00:00:59,080 --> 00:01:02,400 Ja nyt aion mennä eteenpäin ja julistaa int, tärkein, mitätön. 22 00:01:02,400 --> 00:01:09,020 >> Ja sitten täällä, tämä on, jos haluan alkaa ulkoistaa toimintoja 23 00:01:09,020 --> 00:01:12,090 muuna että olen itse aikoo kirjoittaa, mutta joka ei 24 00:01:12,090 --> 00:01:13,820 tällä hetkellä. 25 00:01:13,820 --> 00:01:19,210 Oletetaan esimerkiksi, että halusin Kirjoita funktio, joka antaa minulle mahdollisuuden 26 00:01:19,210 --> 00:01:23,830 tulostaa hello, pilkku, sitten jotkut käyttäjän nimi. 27 00:01:23,830 --> 00:01:29,010 Sen sijaan edelleen tehdä printf Hei,% s, eikö olisi mukavaa, jos 28 00:01:29,010 --> 00:01:33,380 oli vain toiminto nimeltään ei printf mutta tulosta nimi? 29 00:01:33,380 --> 00:01:36,600 >> Eli toisin sanoen, haluan pystyä kirjoittaa ohjelma, joka tekee vähän 30 00:01:36,600 --> 00:01:37,710 jotain tällaista. 31 00:01:37,710 --> 00:01:42,070 Ensinnäkin aion sanoa printf oman nimi, mikä käyttäjää kehotetaan 32 00:01:42,070 --> 00:01:46,150 antaa minulle hänen nimensä, ja niin olen aio käyttää tuttuja merkkijono s 33 00:01:46,150 --> 00:01:47,290 julistaa merkkijono. 34 00:01:47,290 --> 00:01:50,420 Anna minulle muuttuja tyyppiä string, kutsuvat sitä s, ja myymälä että 35 00:01:50,420 --> 00:01:52,120 johtaa kutsuvan saada merkkijono. 36 00:01:52,120 --> 00:01:56,060 Mutta nyt viikkoa aikaisemmin, olisin hieman ikävän tehnyt hei,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> Ja toisin sanoen, olemme nähneet tämän Esimerkiksi joukko kertaa, ja se on 39 00:02:02,570 --> 00:02:05,280 triviaali esimerkki, koska siellä on vain yksi koodiriviä niin se todellakaan ole 40 00:02:05,280 --> 00:02:06,860 iso juttu pitää kirjoittaa uudelleen. 41 00:02:06,860 --> 00:02:09,990 Mutta oletetaan, että tämä rivi koodia todella oli tulossa rasite, ja 42 00:02:09,990 --> 00:02:12,900 se ei ole yhtä riviä koodia, mutta se on 10 riviä koodia parin viikon päästä, 43 00:02:12,900 --> 00:02:15,190 ja olet vain väsyä kopiointi ja liittäminen tai 44 00:02:15,190 --> 00:02:17,180 retyping että sama koodi. 45 00:02:17,180 --> 00:02:22,100 Eikö olisi mukavaa sijaan tehdä printf hei,% s ja niin edelleen, 46 00:02:22,100 --> 00:02:26,500 eikö olisi mukavaa, jos siellä oli vain toiminto nimeltä print nimi 47 00:02:26,500 --> 00:02:27,560 vie argumentti - 48 00:02:27,560 --> 00:02:29,120 Toisin sanoen, se vie tulo - 49 00:02:29,120 --> 00:02:30,620 ja sitten puolipiste. 50 00:02:30,620 --> 00:02:33,240 Niin, että toiminto, eikö olisi mukavaa, jos se olemassa? 51 00:02:33,240 --> 00:02:36,690 Sitten minun ei tarvitse murehtia mitä printf on, mitä% s ja kaikki 52 00:02:36,690 --> 00:02:39,400 Näistä ongelmista, jotka ovat ei kovin kiinnostavaa. 53 00:02:39,400 --> 00:02:40,570 Ne ovat hyödyllisiä. 54 00:02:40,570 --> 00:02:44,700 >> Joten tekstaa, valitettavasti ei ollut keksi noin 40 plus vuotta sitten. 55 00:02:44,700 --> 00:02:45,980 Kukaan ei ajatellut kirjoittaa sitä. 56 00:02:45,980 --> 00:02:48,300 Mutta se kauneus ottaa ohjelmointikieli, aivan kuten 57 00:02:48,300 --> 00:02:52,930 Scratch voit määrittää mukautettuja korttelin, joten C ja useimmat tahansa kielellä, voitte 58 00:02:52,930 --> 00:02:57,260 määritellä omia toimintoja, voi voit määrittää omia funktioita. 59 00:02:57,260 --> 00:03:01,710 Joten vaikka saamme tärkeimmät by automaattisesti ilmaiseksi, voimme julistaa 60 00:03:01,710 --> 00:03:02,730 omia toimintoja. 61 00:03:02,730 --> 00:03:05,670 >> Joten aion tehdä jonkin verran täällä ylös, ja aion julistaa minun 62 00:03:05,670 --> 00:03:08,210 oma toiminto, joka tulee näyttämään hieman oudolta aluksi, mutta tulemme 63 00:03:08,210 --> 00:03:09,400 takaisin tähän ennen pitkää. 64 00:03:09,400 --> 00:03:12,310 Aion sanoa mitätön, mikä osoittaa tämä toiminto ei 65 00:03:12,310 --> 00:03:16,040 jotain, on sivuvaikutus, mutta se ei palaa jotain minulle 66 00:03:16,040 --> 00:03:18,810 samalla tavalla saada int tai saada string itse tekee. 67 00:03:18,810 --> 00:03:22,450 Ja aion antaa tämän toiminnon Nimi tekstaa, ja aion 68 00:03:22,450 --> 00:03:26,470 täsmentää, että tämä kaveri vie merkkijono, ja aion soittaa, että 69 00:03:26,470 --> 00:03:27,600 merkkijonon nimi. 70 00:03:27,600 --> 00:03:32,100 Voisin kutsua sitä mitä haluan, mutta en haluavat minun koodi on itsedokumentoiva. 71 00:03:32,100 --> 00:03:34,770 Toisin sanoen, jos yksi olit avaa tämä tiedosto ja lukea sen, voisit 72 00:03:34,770 --> 00:03:39,020 eräänlainen päättelevät nimi, joka input mikä rooli sen pitäisi pelata. 73 00:03:39,020 --> 00:03:42,270 >> Ja nyt alla, että aion avata kihara ahdin ja suljettu kihara ahdin, 74 00:03:42,270 --> 00:03:47,140 ja niin huomaa Olen seurannut samaa kuvio linjat neljä kautta oli seitsemän 75 00:03:47,140 --> 00:03:51,622 Olen seurannut hyvän viikossa plus nyt välillä vaikkapa linjat yhdeksän ja 76 00:03:51,622 --> 00:03:53,400 14, joka säveltää tärkein. 77 00:03:53,400 --> 00:03:56,160 Toisin sanoen, tulostaa nimi on toinen toiminto. 78 00:03:56,160 --> 00:03:58,990 Nyt kääntäjä ei aio tietää kutsua tämä asia automaattisesti 79 00:03:58,990 --> 00:04:02,670 koska olen kirjaimellisesti vain keksi sen, mutta se tietää silti soittaa tärkeimmät 80 00:04:02,670 --> 00:04:08,710 automaattisesti, ja sitten tietenkin linja 13, kehotan oma toiminto. 81 00:04:08,710 --> 00:04:12,805 Ja koska olen ilmoittanut, että toiminto up line neljä ennen isoja, 82 00:04:12,805 --> 00:04:16,579 tämä tulee opettaa kääntäjä mitä lainaus, lainaus, "print nimi" 83 00:04:16,579 --> 00:04:18,140 tarkoittaa ja mitä sen pitäisi tehdä. 84 00:04:18,140 --> 00:04:22,700 Joten olen tavallaan antaa sille uuden mukautetun estää yhteydessä vaikkapa Scratch. 85 00:04:22,700 --> 00:04:27,240 >> Joten täällä, voin laittaa että hyvin yleinen tai toistuva koodia pidän 86 00:04:27,240 --> 00:04:32,300 kirjallisesti luokassa, printf % S hello,% s / n ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 mitä haluan laittaa tänne? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 Joten haluan laittaa nimi tässä yhteydessä. 91 00:04:41,420 --> 00:04:43,440 Niin huomaa hieman kahtiajako täällä. 92 00:04:43,440 --> 00:04:47,680 Koska minä julistan oman toiminnan ja olen hieman mielivaltaisesti kutsutaan 93 00:04:47,680 --> 00:04:50,880 se tulostaa nimi, ja koska olen määritelty suluissa, että tämä 94 00:04:50,880 --> 00:04:55,035 Funktio ottaa yhden argumentin, tyyppi joka on merkkijono - niin se sana 95 00:04:55,035 --> 00:05:00,010 tai lause tai jotain - ja Soitan tämän väitteen nimi, että 96 00:05:00,010 --> 00:05:04,770 tarkoittaa vain muuttuja, joka on vuonna soveltamisala, niin sanoakseni, on nimi. 97 00:05:04,770 --> 00:05:07,780 >> S vain välillä mitä kahden aaltosulkeita, tietenkin? 98 00:05:07,780 --> 00:05:12,990 No oikeastaan, aivan kuten linja 10 kautta 14, joten aivan kuten maanantaina voi käyttää 99 00:05:12,990 --> 00:05:17,650 S, mutta mitä voin tehdä, on läpäistävä S tulosteeksi nimi. 100 00:05:17,650 --> 00:05:21,030 Tulosta nimi vain niin antaa se alias, synonyymi, lempinimi, 101 00:05:21,030 --> 00:05:24,400 kutsuen sitä nimeä, ja nyt käyttää sitä tätä linjaa. 102 00:05:24,400 --> 00:05:26,840 Joten nyt haluan pelastaa tämän, loitontaa. 103 00:05:26,840 --> 00:05:31,250 >> Anna minun mennä eteenpäin ja tehdä hei. 104 00:05:31,250 --> 00:05:32,400 Näyttää hyvältä. 105 00:05:32,400 --> 00:05:36,110 Sylkenyt ulos virheitä. . / Hei Enter. 106 00:05:36,110 --> 00:05:37,020 Mikä minun nimeni on? 107 00:05:37,020 --> 00:05:38,060 David. 108 00:05:38,060 --> 00:05:39,270 Ja hei David. 109 00:05:39,270 --> 00:05:41,820 Joten kaikki niin jännittävää, mutta ajatelkaa nyt. 110 00:05:41,820 --> 00:05:44,310 Sinulla on nyt, että sama aine kuten teimme tyhjästä 111 00:05:44,310 --> 00:05:45,420 tehdä omia toimintoja. 112 00:05:45,420 --> 00:05:46,770 >> Mutta on vähän ähäkutti. 113 00:05:46,770 --> 00:05:50,620 Oletetaan, että en ollut oikeastaan ​​ajatellut Tämän kautta ja olen itse ilman 114 00:05:50,620 --> 00:05:54,250 todella ajatellut sitä kirjoitti että toiminta täällä. 115 00:05:54,250 --> 00:05:55,420 Tuntuu täysin järkevää. 116 00:05:55,420 --> 00:05:58,440 Scratch ei ole käsitystä ja paikkaan skriptejä. 117 00:05:58,440 --> 00:06:00,670 Voisit laittaa yhden tänne, yksi täällä, yksi täällä, ja se saattaa alkaa 118 00:06:00,670 --> 00:06:03,310 näyttää hieman sotkuinen, jos et antaa se pois siististi, mutta se ei 119 00:06:03,310 --> 00:06:05,910 väliä missä fyysisesti skriptejä olivat ruudulla. 120 00:06:05,910 --> 00:06:09,660 Valitettavasti C - ja tämä on toisin kuten Java-ja Python 121 00:06:09,660 --> 00:06:13,600 ja toiset, että saatat tuntea kanssa - valitettavasti C, jotta ei 122 00:06:13,600 --> 00:06:15,830 väliä, koska katsella mitä tapahtuu nyt. 123 00:06:15,830 --> 00:06:19,010 >> Oletuksena toiminto, joka menee suorittaa on, tietenkin, main. 124 00:06:19,010 --> 00:06:22,290 Main aikoo kutsua tulosta nimi line kahdeksan, mutta valitettavasti 125 00:06:22,290 --> 00:06:26,660 kääntäjä ei edes tiedä, että nimen selvennys olemassa, kunnes se pääsee linja 11, 126 00:06:26,660 --> 00:06:28,520 joka valitettavasti on tulee liian myöhään. 127 00:06:28,520 --> 00:06:30,660 Tehdäänpä tehdä hei. 128 00:06:30,660 --> 00:06:32,950 Ja nyt perkele, kaksi virhettä syntyy. 129 00:06:32,950 --> 00:06:36,050 Joten nyt haluan siirtyä jopa hyvin Ensinnäkin meidän pitäisi aina tehdä, ja 130 00:06:36,050 --> 00:06:39,560 huomaa, että se huutaa minua, "Implisiittinen ilmoitus toiminto 131 00:06:39,560 --> 00:06:40,540 tulostaa nimi. " 132 00:06:40,540 --> 00:06:43,860 >> Joten olemme nähneet tämän viestin ennen, implisiittinen ilmoitus toiminto. 133 00:06:43,860 --> 00:06:48,080 Kun olemme nähneet, että sellainen virhe? 134 00:06:48,080 --> 00:06:49,180 Kun en ole kirjasto. 135 00:06:49,180 --> 00:06:53,470 Jos unohdin cs50.h ja saisin huusi ja saavat merkkijono tai saada int. 136 00:06:53,470 --> 00:06:56,880 Mutta tässä tapauksessa, tämä toiminto tulostaa nimi ei ole kirjastossa, eikö? 137 00:06:56,880 --> 00:07:00,230 Se on kirjaimellisesti tätä kuvaa, niin mitä todella ongelma? 138 00:07:00,230 --> 00:07:04,660 >> No valitettavasti C, se vie niin uskomattoman kirjaimellisesti, että jos 139 00:07:04,660 --> 00:07:08,640 haluavat toiminto nimeltään tulostaa nimen olemassa, sinulla on joko toteuttaa 140 00:07:08,640 --> 00:07:11,940 että toiminto hyvin alkuun koodia niin, että se on helposti laskea 141 00:07:11,940 --> 00:07:15,070 toimintoja, mutta suoraan sanottuna, että tulee huolimaton hyvin nopeasti. 142 00:07:15,070 --> 00:07:18,160 Henkilökohtaisesti pidän laskemisesta ensimmäinen merkittävä koska silloin se on hyvin selvää, mitä tämä 143 00:07:18,160 --> 00:07:19,890 ohjelma tekee ensi silmäyksellä. 144 00:07:19,890 --> 00:07:23,290 Ja plus, voit päästä outoa nurkkaan jos jos x haluaa soittaa 145 00:07:23,290 --> 00:07:27,530 y mutta y kutsua x, juuri fyysisesti ei voi oikeastaan ​​laittaa yksi 146 00:07:27,530 --> 00:07:28,540 edellä muita. 147 00:07:28,540 --> 00:07:31,230 >> Mutta näyttää siltä, ​​C, voimme ratkaisemaan tämän hyvin yksinkertaisesti. 148 00:07:31,230 --> 00:07:34,010 Aion laittaa hieman tilaa täällä, ja olen juuri menossa 149 00:07:34,010 --> 00:07:38,170 ennaltaehkäisevästi, vaikkakin tarpeettomasti, aiomme opettaa 150 00:07:38,170 --> 00:07:42,320 kääntäjä, joka on olemassa funktio nimeltään tekstaa, se vie merkkijono, 151 00:07:42,320 --> 00:07:46,330 ja aion soittaa se nimi puolipiste. 152 00:07:46,330 --> 00:07:50,220 >> Joten tämä nyt linjassa neljä, jotka olemme ole ennen nähneet, on ilmoitus 153 00:07:50,220 --> 00:07:53,940 funktion nimen selvennys, mutta se on vain luvata, että tämä funktio 154 00:07:53,940 --> 00:07:56,620 lopulta määritellään, lopulta toteutetaan. 155 00:07:56,620 --> 00:08:00,180 Tämä nyt voin lähteä yksin, koska nyt tämä on määritelmä, 156 00:08:00,180 --> 00:08:04,090 täytäntöönpanoa, eräänlainen viimeisen mailin täytäntöönpanon tämän 157 00:08:04,090 --> 00:08:05,130 tiettyä toimintoa. 158 00:08:05,130 --> 00:08:08,450 Joten suoraan sanottuna se on tyhmä, se on ärsyttävää, mutta tämä on tapa C on, ja se on 159 00:08:08,450 --> 00:08:12,050 koska se vie hyvin kirjaimellisesti ja, kuten tietokoneeseen suoraan sanottuna olisi 160 00:08:12,050 --> 00:08:16,020 Paitsi että mitä kerrot sen tehdä, ja niin, että tilaus on tärkeää. 161 00:08:16,020 --> 00:08:18,940 >> Niin pitää tämä mielessä ja taas alkaa huomaa toistumisen kuvioita. 162 00:08:18,940 --> 00:08:21,850 Kertoimet ovat sinun, jos et ole jo, alkaa kohdata viestejä 163 00:08:21,850 --> 00:08:24,700 näin, että ensi silmäyksellä näyttää täysin arvoituksellisesti, mutta jos aloitat 164 00:08:24,700 --> 00:08:29,000 etsiä näitä avainsanoja, kuten "Implisiittinen ilmoitus," mainita 165 00:08:29,000 --> 00:08:32,380 tässä tapauksessa toimi - ja rehellisesti, et joskus jopa saada pieni vihreä 166 00:08:32,380 --> 00:08:35,010 porkkana symboli, joka kertoo minne ongelma todennäköisesti on - 167 00:08:35,010 --> 00:08:40,980 voit alkaa käy läpi vielä luettu virheilmoituksia. 168 00:08:40,980 --> 00:08:45,860 Kaikki kysymykset kirjoittamiseen oma tehtävänsä tällä tavalla? 169 00:08:45,860 --> 00:08:47,540 >> Tehdään jotain, joka on hieman enemmän pakottavia. 170 00:08:47,540 --> 00:08:51,760 Eikä vain tehdä jotain, joka on sivuvaikutus tulostus, anna minun mennä 171 00:08:51,760 --> 00:08:55,340 eteenpäin ja tallentaa uuden tiedoston, ja me kutsuvat tätä positive.c, vaikka se on 172 00:08:55,340 --> 00:08:57,600 olemaan hieman erilainen vs. viime kerralla. 173 00:08:57,600 --> 00:09:01,910 Ja tällä kertaa, en halua uudelleen käyttöön Edellisen kerran n positive.C esimerkiksi, mikä 174 00:09:01,910 --> 00:09:04,430 on pakottaa käyttäjä antaa minulle positiivinen kokonaisluku. 175 00:09:04,430 --> 00:09:07,280 Mutta jouduin käyttämään saada int viimeisen kerran. 176 00:09:07,280 --> 00:09:10,780 Eikö olisi ollut kiva, jos siellä oli toiminto nimeltään saada myönteisiä int 177 00:09:10,780 --> 00:09:13,610 että voisin vain ulkoistaa tämän pala toimintoja? 178 00:09:13,610 --> 00:09:16,480 Joten ero on, hyvitämme toteuttaa saada myönteisiä int, mutta toisin 179 00:09:16,480 --> 00:09:20,330 Tulosta nimi, joka oli sivuvaikutus - se ei palannut minulle jotain, kuten 180 00:09:20,330 --> 00:09:21,710 numero tai merkkijono - 181 00:09:21,710 --> 00:09:25,510 saada positiivinen int on, tietenkin, menossa palata, toivottavasti positiivinen int. 182 00:09:25,510 --> 00:09:26,170 >> Joten tehdään tämä. 183 00:09:26,170 --> 00:09:30,840 Ovat cs50.h, Lisää vakio io.h. 184 00:09:30,840 --> 00:09:33,520 Int main mitätön. 185 00:09:33,520 --> 00:09:42,160 Ja nyt täällä, aion mennä eteenpäin ja sanotaanko int, kutsuvat sitä n, vastaa 186 00:09:42,160 --> 00:09:44,270 saada myönteisiä int. 187 00:09:44,270 --> 00:09:49,080 Ja aivan kuten saada int jo olemassa koska henkilöstö kirjoitti sen, aion 188 00:09:49,080 --> 00:09:53,950 olettaa tällä hetkellä, jotka saavat positiivinen int olemassa, ja nyt aion 189 00:09:53,950 --> 00:09:57,730 mennä eteenpäin ja sanoa printf, kiitos% i / n ", n. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> Joten jos nyt kokoamaan tätä ohjelmaa, mitä tapahtuu minun terminaalin 192 00:10:07,770 --> 00:10:09,075 ikkunan alareunassa näytön? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 Aion luultavasti saada, että sama virhe kuin ennen. 195 00:10:13,900 --> 00:10:14,570 Joten kokeile tätä. 196 00:10:14,570 --> 00:10:16,450 Tee positiivinen. 197 00:10:16,450 --> 00:10:19,900 Ja vielä, implisiittinen ilmoitus toiminnon, saada myönteisiä int. 198 00:10:19,900 --> 00:10:21,970 Jotta voimme ratkaista tämän pari tapaa. 199 00:10:21,970 --> 00:10:27,310 Aion pitää yksinkertaisena ja vain laittaa ilmoituksen tänne ja saada 200 00:10:27,310 --> 00:10:28,120 positiivinen int. 201 00:10:28,120 --> 00:10:29,720 Tarvitsen ns allekirjoitus. 202 00:10:29,720 --> 00:10:32,410 Allekirjoitus vain viittaa esteettisyyteen 203 00:10:32,410 --> 00:10:34,090 ensimmäinen rivi ohjelman. 204 00:10:34,090 --> 00:10:37,420 Joten mitä pitäisi saada myönteisiä int palata? 205 00:10:37,420 --> 00:10:37,970 >> Joten int. 206 00:10:37,970 --> 00:10:41,540 Siis mieluiten se palaisi jotain positiivista int, mutta 207 00:10:41,540 --> 00:10:42,160 ei ole olemassa. 208 00:10:42,160 --> 00:10:45,280 Olemme ole nähnyt, että yksi meidän tiedot tyyppejä, joten meidän on käsiteltävä 209 00:10:45,280 --> 00:10:47,170 Se, että meillä on hyvin vähän tietotyypit työskennellä. 210 00:10:47,170 --> 00:10:50,360 Mutta me voimme palata int ja vain luottaa siihen, että se on positiivinen. 211 00:10:50,360 --> 00:10:52,690 Se tulee kutsua saada myönteisiä int. 212 00:10:52,690 --> 00:10:55,122 >> Ja nyt miten sen perustelut? 213 00:10:55,122 --> 00:10:56,440 Kestääkö mitään panosta? 214 00:10:56,440 --> 00:10:58,280 Pitääkö se mitään panosta? 215 00:10:58,280 --> 00:11:00,900 Joten se ei tarvitse tietää etukäteen mitään. 216 00:11:00,900 --> 00:11:03,220 Hanki merkkijono ei saa int ei. 217 00:11:03,220 --> 00:11:06,430 Printf tekee - sen on oltava jonkin verran tulo siirtyi sen - ja nimen 218 00:11:06,430 --> 00:11:09,020 tarvitsi tulo, mutta saat positiivinen int ei. 219 00:11:09,020 --> 00:11:11,530 Joten aion nimenomaisesti Kerro kääntäjä mitätön. 220 00:11:11,530 --> 00:11:13,470 Void on ilman muuta. 221 00:11:13,470 --> 00:11:17,990 Joten void avulla mikään ei sisällä näistä suluissa, puolipiste. 222 00:11:17,990 --> 00:11:20,840 >> Ja nyt alareunassa minun tiedosto - ja taas, Olen vain sellainen anaali 223 00:11:20,840 --> 00:11:23,640 täällä laskemisesta tärkeimmät yläreunassa, joka on hyvä käytäntö, koska tällä tavalla, 224 00:11:23,640 --> 00:11:26,220 milloin sinä tai joku muu avaa tiedoston, 225 00:11:26,220 --> 00:11:27,400 toiminnallisuus on oikeassa. 226 00:11:27,400 --> 00:11:29,660 Voit sukeltaa lähtöruudusta. 227 00:11:29,660 --> 00:11:34,190 Joten nyt aion kopioida tämän, saada myönteisiä int void, mutta en ole 228 00:11:34,190 --> 00:11:35,430 iskemään puolipiste nyt. 229 00:11:35,430 --> 00:11:38,280 Aion avata aaltosulkeita, ja nyt minun täytyy lainata 230 00:11:38,280 --> 00:11:39,700 ideoita maanantaista. 231 00:11:39,700 --> 00:11:44,450 >> Niin kuin muistatte, teimme jotain kuten tee alla 232 00:11:44,450 --> 00:11:45,830 jotain oli totta. 233 00:11:45,830 --> 00:11:46,630 Ja mitä minä tein? 234 00:11:46,630 --> 00:11:51,540 Tein jotain antaa minulle positiivinen kokonaisluku, 235 00:11:51,540 --> 00:11:52,430 hieman nopeasti. 236 00:11:52,430 --> 00:11:53,540 Voisin käyttää sanoja haluan. 237 00:11:53,540 --> 00:11:54,960 Ja sitten käytin mitä? 238 00:11:54,960 --> 00:11:59,530 Int n on saada int, Ei perusteluja sille. 239 00:11:59,530 --> 00:12:00,550 >> Ja huomaat eron. 240 00:12:00,550 --> 00:12:04,680 Kun soitat toiminto, kun käytät toiminto, et laittaa mitätön. 241 00:12:04,680 --> 00:12:08,570 Tämä tarvitsee tehdä vain, että kun julistamisesta toiminto, opetus kääntäjä mitä 242 00:12:08,570 --> 00:12:09,780 sen pitäisi odottaa. 243 00:12:09,780 --> 00:12:11,650 Joten sinun ei tarvitse laittaa mitätöidä siellä itse. 244 00:12:11,650 --> 00:12:12,940 >> Ja nyt, mitä oli tilani? 245 00:12:12,940 --> 00:12:19,670 No, n ei ole yhtä suuri kuin positiivinen, mutta se on vain pseudo-koodi. 246 00:12:19,670 --> 00:12:22,530 Joten miten voin ilmaista tämän puhtaammin? 247 00:12:22,530 --> 00:12:24,090 Niin vähemmän kuin tai yhtä suuri kuin nolla. 248 00:12:24,090 --> 00:12:26,250 Joten jälleen, huomaa voit tehdä pienempi kuin tai yhtä suuri kuin. 249 00:12:26,250 --> 00:12:28,100 Vaikka se on kaksi erillistä symboleja, voit tehdä sen 250 00:12:28,100 --> 00:12:29,350 näppäimistön sellaisenaan. 251 00:12:29,350 --> 00:12:33,950 >> Mutta siellä on vielä vika, joka Minä mokasin viimeisen kerran liikaa. 252 00:12:33,950 --> 00:12:36,950 Minun täytyy julistaa - 253 00:12:36,950 --> 00:12:37,460 tarkalleen. 254 00:12:37,460 --> 00:12:39,640 Minun täytyy julistaa n ulkopuolella ja silmukka. 255 00:12:39,640 --> 00:12:44,180 Joten minun täytyy laittaa n tänne, enkä halua uudelleen julistaa, että se täällä 256 00:12:44,180 --> 00:12:46,480 etten saa uuden muuttujan. 257 00:12:46,480 --> 00:12:48,860 Haluan vain antaa arvoa täällä. 258 00:12:48,860 --> 00:12:54,320 >> Ja nyt en ole aivan täällä tehneet. 259 00:12:54,320 --> 00:12:57,290 Anna minun päästä eteenpäin itsestäni ja teeskennellä olen tehnyt. 260 00:12:57,290 --> 00:13:01,220 Tee positiivinen, ja nyt on uusi virhe. 261 00:13:01,220 --> 00:13:04,550 Ohjaus on päättymässä ei-void funktio. 262 00:13:04,550 --> 00:13:07,760 Joten uusi virheilmoitus, mutta jos sellainen on erottaa toisistaan ​​kunkin sanoen 263 00:13:07,760 --> 00:13:09,620 luultavasti vihjaa mikä on vialla. 264 00:13:09,620 --> 00:13:11,240 >> Hallita. 265 00:13:11,240 --> 00:13:14,250 Ohjaus tarkoittaa vain järjestyksessä toimintojen ohjelma. 266 00:13:14,250 --> 00:13:16,510 Tietokoneen hallinnassa ja jokin meni pieleen. 267 00:13:16,510 --> 00:13:18,510 Joten se on lopussa ei-mitätön toiminto. 268 00:13:18,510 --> 00:13:21,760 Mikä funktio on se ilmeisesti viittaa? 269 00:13:21,760 --> 00:13:24,790 Mikä toiminto on ei-mitätön? 270 00:13:24,790 --> 00:13:27,400 Joten positiivinen int, ja hieman hämmentävää, että hyvin, 271 00:13:27,400 --> 00:13:29,010 se on aika mitätön. 272 00:13:29,010 --> 00:13:33,070 Se on erittely mitätön sen argumentteja, mutta sen teho on menossa 273 00:13:33,070 --> 00:13:34,540 on tyyppiä n. 274 00:13:34,540 --> 00:13:37,260 Joten sana vasemmalle on ns palautuva. 275 00:13:37,260 --> 00:13:40,320 Sana täällä sisällä on nolla tai useampia argumentteja 276 00:13:40,320 --> 00:13:41,970 että toiminto vie. 277 00:13:41,970 --> 00:13:44,060 >> Joten mitä minun pitää tehdä? 278 00:13:44,060 --> 00:13:47,650 Tässä vaiheessa minun koodi, rivi 21, jossa vilkkuu nopeasti nyt, minä 279 00:13:47,650 --> 00:13:51,430 on positiivinen int sisällä muuttujan Kutsutaan. 280 00:13:51,430 --> 00:13:55,200 Miten annan sen takaisin tärkein? 281 00:13:55,200 --> 00:13:55,960 Kirjaimellisesti. 282 00:13:55,960 --> 00:13:59,320 Paluu n puolipiste. 283 00:13:59,320 --> 00:14:04,090 >> Aivan kuten Colton palasi pala paperi vastaus minulle pudottamalla 284 00:14:04,090 --> 00:14:07,020 että pala paperia pieni musta laatikko pöydällä, tehdä, että 285 00:14:07,020 --> 00:14:10,100 koodia, voit kirjaimellisesti vain kirjoittaa, palauta n, ja se on ikään kuin Colton oli 286 00:14:10,100 --> 00:14:12,140 luovuttamalla minulle jotain fyysistä takaisin. 287 00:14:12,140 --> 00:14:15,870 Tässä tapauksessa mitä tapahtuu on saada positiivinen int on menossa luovuttamaan 288 00:14:15,870 --> 00:14:19,220 mikä oletettavasti positiivinen kokonaisluku kenelle? 289 00:14:19,220 --> 00:14:21,380 Mistä tämä arvo päätyvät? 290 00:14:21,380 --> 00:14:29,080 Se päätyy tämän muuttujan, n ja Sitten siirrymme linja yhdeksän. 291 00:14:29,080 --> 00:14:31,920 >> Eli toisin sanoen, järjestyksessä toimintaa, tämä ohjelma käynnistyy 292 00:14:31,920 --> 00:14:34,430 täytäntöönpanosta, ja kääntäjä tajuaa, oh, haluat kirjastoon? 293 00:14:34,430 --> 00:14:36,310 Anna minun mennä napata mitä on sisällä, että. 294 00:14:36,310 --> 00:14:37,750 Oh, haluatko standardin IO kirjasto? 295 00:14:37,750 --> 00:14:39,660 Anna minun mennä napata mitä on sisällä, että. 296 00:14:39,660 --> 00:14:44,510 Mitä kääntäjä sanoa itselleen kun se osuu rivi neljä? 297 00:14:44,510 --> 00:14:47,980 Voi, sinä lupasivat panna toiminto nimeltään saada myönteisiä, mutta 298 00:14:47,980 --> 00:14:50,820 palaamme siihen myöhemmin, jotain tämänsuuntaista. 299 00:14:50,820 --> 00:14:53,450 >> Int main void vain tarkoittaa tässä rohkeutta minun ohjelma. 300 00:14:53,450 --> 00:14:54,990 Line seitsemän on vain kihara ahdin. 301 00:14:54,990 --> 00:14:59,540 Line kahdeksan sanoo vasemmalla, antaa minulle 32 bittiä kokonaisluku, kutsuvat sitä n. 302 00:14:59,540 --> 00:15:02,160 Oikealla puolella, se on sanomalla saada myönteisiä int. 303 00:15:02,160 --> 00:15:07,120 Nyt Katsotaanpa tauko että tarina, koska nyt En pidä liikkuvat minun kohdistin alas. 304 00:15:07,120 --> 00:15:11,720 Oma kursori menee nyt tänne, koska nyt saada positiivinen int suorittaa. 305 00:15:11,720 --> 00:15:13,100 Int n on julistettu. 306 00:15:13,100 --> 00:15:14,040 Toimi seuraavasti. 307 00:15:14,040 --> 00:15:16,090 Printf antaa minulle positiivinen kokonaisluku. 308 00:15:16,090 --> 00:15:19,740 >> Hanki int käyttäjältä, säilytä se n, ja ehkä tehdä tämän uudestaan ​​ja uudestaan. 309 00:15:19,740 --> 00:15:23,010 Tämä silmukka tarkoittaa, että koodi saattaa suorittaa ylös ja alas kuin tämä taas 310 00:15:23,010 --> 00:15:25,810 ja uudestaan, mutta kun käyttäjä lopulta tekee yhteistyötä ja antaa minulle positiivista 311 00:15:25,810 --> 00:15:31,750 int, osuin linja 21, jolloin määrä on palautettu, ja kumpi 312 00:15:31,750 --> 00:15:34,280 pitäisi korostaa nyt? 313 00:15:34,280 --> 00:15:35,070 Yhdeksän. 314 00:15:35,070 --> 00:15:39,010 Ohjaus, niin sanotusti palaa rivin yhdeksän. 315 00:15:39,010 --> 00:15:40,650 Se on linja, joka on nyt vastuussa. 316 00:15:40,650 --> 00:15:43,250 >> Niin, että mitä on tapahtunut kaikki Tällä kertaa alla huppu, mutta 317 00:15:43,250 --> 00:15:46,480 kun olemme käyttäneet toimii kuten printf tai edes string, että joku muu 318 00:15:46,480 --> 00:15:50,600 kirjoitti sinulle, ohjaus oltiin luovutettiin pois jonkun toisen koodirivien 319 00:15:50,600 --> 00:15:51,290 mukaan rivi riviltä. 320 00:15:51,290 --> 00:15:53,770 Se vain emme voineet nähdä sitä ja me ei todellakaan kuvata sitä tässä 321 00:15:53,770 --> 00:15:57,620 ohjelmaa, koska se on eräissä muissa tiedoston kiintolevylle 322 00:15:57,620 --> 00:16:00,000 tietämättä meille. 323 00:16:00,000 --> 00:16:02,100 Joten itse koota ja suorittaa tämän nyt. 324 00:16:02,100 --> 00:16:03,890 >> Tee positiivinen. 325 00:16:03,890 --> 00:16:05,260 Koota, se on edistystä. 326 00:16:05,260 --> 00:16:06,650 . / Positiivinen. 327 00:16:06,650 --> 00:16:08,020 Anna minulle positiivinen kokonaisluku. 328 00:16:08,020 --> 00:16:08,800 Katsotaanpa olla vaikeaa. 329 00:16:08,800 --> 00:16:10,430 Negatiivinen 1. 330 00:16:10,430 --> 00:16:11,360 Zero. 331 00:16:11,360 --> 00:16:13,370 Annetaan sen 50. 332 00:16:13,370 --> 00:16:18,100 Kiitos 50, ja niin ohjaus on nyt palannut. 333 00:16:18,100 --> 00:16:21,750 Kaikki kysymykset, sitten siitä? 334 00:16:21,750 --> 00:16:23,180 Niin? 335 00:16:23,180 --> 00:16:25,630 >> [Äänetön]. 336 00:16:25,630 --> 00:16:26,130 >> Sano uudestaan. 337 00:16:26,130 --> 00:16:27,860 Voi, hyvä kysymys. 338 00:16:27,860 --> 00:16:31,100 Joten saatat huomata rinnakkain tässä, että Olen sellainen leikkaus nurkkaan. 339 00:16:31,100 --> 00:16:35,420 Linjassa 12, sanon, saada myönteisiä int palauttaa int, vaan saman 340 00:16:35,420 --> 00:16:39,660 logiikka, se nyt aivan selvää, että line kuusi, sanon, että tärkein palaa 341 00:16:39,660 --> 00:16:44,040 int, mutta mitä meillä koskaan ollut missään meidän ohjelmia? 342 00:16:44,040 --> 00:16:46,470 Meillä ei ole koskaan ollut mainintaa Tämä avain sana paluuta. 343 00:16:46,470 --> 00:16:49,970 >> Joten käy ilmi, että C, vähintään versio siitä, että käytämme 344 00:16:49,970 --> 00:16:55,750 vuonna 1999, teknisesti, tämä on tapahtuu automaattisesti. 345 00:16:55,750 --> 00:16:59,300 Aina kun toteuttaa ohjelmaa ja olet toteuttaa toimia kutsutaan pää, 346 00:16:59,300 --> 00:17:04,230 että funktio palauttaa nollan Oletuksena jos et sano toisin, 347 00:17:04,230 --> 00:17:05,849 ja nolla on vain sopimusta. 348 00:17:05,849 --> 00:17:09,430 Maailma palaa nolla näin osoittaa, että kaikki on hyvin, 349 00:17:09,430 --> 00:17:13,040 tehokkaasti jättäen meille neljä miljardia mahdolliset asiat, jotka voivat mennä 350 00:17:13,040 --> 00:17:17,530 väärin niin, että jos palaamme yhteen, että saattaa merkitä koodi, joka tarkoittaa tätä 351 00:17:17,530 --> 00:17:18,310 asia meni pieleen. 352 00:17:18,310 --> 00:17:20,589 Voisimme palata kaksi, mikä tarkoittaa, tämä toinen asia meni pieleen. 353 00:17:20,589 --> 00:17:23,440 Voisimme palata neljä miljardia, joka tarkoittaa tämä muu asia meni pieleen. 354 00:17:23,440 --> 00:17:27,170 >> Ja jos nyt mieti omia PC-tai Mac, saatatte muistaa, että 355 00:17:27,170 --> 00:17:29,610 joskus saat arvoituksellinen virheilmoitukset ohjelmistojen, että olet 356 00:17:29,610 --> 00:17:32,650 käyttäen, ja joskus se on ihmisen ystävällinen kuvaus, mutta siellä on 357 00:17:32,650 --> 00:17:35,265 usein koodin tai numeron ruudulla? 358 00:17:35,265 --> 00:17:37,800 Jos tämä ei tule mieleen, vain pitää silmällä sitä. 359 00:17:37,800 --> 00:17:40,790 Se on yleensä mitä nämä koodit viittaavat. 360 00:17:40,790 --> 00:17:44,200 He sisältyvät Microsoft Word ja muita ohjelmia niin, että jos tiedosto 361 00:17:44,200 --> 00:17:48,850 Vikailmoitus yritys, voit kerro heille, oh, sain virheen numero 45. 362 00:17:48,850 --> 00:17:51,750 Ja jotkut ohjelmoija takaisin yritys voi katsoa, ​​että jopa hänen 363 00:17:51,750 --> 00:17:54,940 koodi ja sanoa, oh, että koska tein tämä virhe ja siksi käyttäjä 364 00:17:54,940 --> 00:17:56,240 sai tämän viestin. 365 00:17:56,240 --> 00:17:59,490 >> Mutta rehellisesti sanottuna, se on vain hieman häiritsevät ja vähän ikävä 366 00:17:59,490 --> 00:18:02,130 päätellä, että ainakin meidän Ensimmäinen muutamia ohjelmia, joten olemme 367 00:18:02,130 --> 00:18:02,970 on pois jättäminen. 368 00:18:02,970 --> 00:18:07,450 Mutta koko tämän ajan jokainen oman TOIMINNOT on salaa ollut tämän 369 00:18:07,450 --> 00:18:11,600 line lisätään automaattisesti sinulle kääntäjä, vain sopimuksen mukaan 370 00:18:11,600 --> 00:18:13,172 säästää aikaa. 371 00:18:13,172 --> 00:18:14,620 >> [Äänetön]. 372 00:18:14,620 --> 00:18:16,250 >> Sinun ei tarvitse sisällyttää se tärkein. 373 00:18:16,250 --> 00:18:16,700 Se on hienoa. 374 00:18:16,700 --> 00:18:20,260 Sinun täytyy sisällyttää se olisit täytäntöön toimivat näin. 375 00:18:20,260 --> 00:18:22,850 Muussa tapauksessa se tasainen out ei toimi. 376 00:18:22,850 --> 00:18:24,480 Mutta tärkein, se ei ole välttämätöntä. 377 00:18:24,480 --> 00:18:28,450 Vuonna viikon tai kaksi, me alkaa saada tuohon tapana kerran haluamme aloittaa 378 00:18:28,450 --> 00:18:29,690 merkitsee virheitä. 379 00:18:29,690 --> 00:18:32,550 Todella hyvä kysymys. 380 00:18:32,550 --> 00:18:36,880 >> Niin nopea sanallinen tauon mainita, että perjantaina, emme lounaalla 381 00:18:36,880 --> 00:18:39,980 sinänsä, mutta me voidaan ottaa illallinen jotkut opiskelijat ja henkilökunta. 382 00:18:39,980 --> 00:18:42,940 Jos haluat liittyä meihin, tuntuu vapaasti mennä cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 18:00 perjantaina. 384 00:18:45,030 --> 00:18:47,990 Avaruus on, kuten aina, rajallinen, mutta me edelleen tehdä näitä on lähes 385 00:18:47,990 --> 00:18:51,420 viikoittain jos tilaa loppuu tällä viikolla. 386 00:18:51,420 --> 00:18:56,160 >> Joten jännitysnäytelmä, että jätimme pois Oli maanantaina, että jouset voi todella 387 00:18:56,160 --> 00:19:00,520 indeksoidaan, joka vain tarkoittaa, voi saada ensimmäisen merkin, 388 00:19:00,520 --> 00:19:03,770 Toinen merkki, kolmannen merkin ja niin edelleen, koska voit 389 00:19:03,770 --> 00:19:07,860 tehokkaasti ajatella merkkijono, kuten Hei, olevan tässä tapauksessa viisi 390 00:19:07,860 --> 00:19:09,670 kirjaimet laatikoita. 391 00:19:09,670 --> 00:19:13,370 Ja voit saada kaikki nämä laatikot mitä syntaksin teimme 392 00:19:13,370 --> 00:19:15,230 käyttöön maanantaina? 393 00:19:15,230 --> 00:19:16,760 Ne hakasuluissa näppäimistöllä. 394 00:19:16,760 --> 00:19:18,980 Se vain tarkoitti mennä paikkaan nolla. 395 00:19:18,980 --> 00:19:22,840 >> Meillä alkaa laskea nollaan, niin kiinnike nolla merkitsee h, kiinnike yksi 396 00:19:22,840 --> 00:19:25,170 merkitsee e, ja niin edelleen. 397 00:19:25,170 --> 00:19:28,490 Ja niin koko ajan, kun olemme olleet käyttämällä jousille ja kirjoittamalla "hei" 398 00:19:28,490 --> 00:19:31,250 ja "maailma" ja muita asioita näyttö, se on tallennettu 399 00:19:31,250 --> 00:19:32,820 laatikoihin näin. 400 00:19:32,820 --> 00:19:33,370 Ja arvaa. 401 00:19:33,370 --> 00:19:37,470 Mitä jokainen laatikko edustaa fyysisesti tietokoneesi sisälle? 402 00:19:37,470 --> 00:19:38,250 >> [Äänetön]. 403 00:19:38,250 --> 00:19:39,150 >> Anteeksi? 404 00:19:39,150 --> 00:19:39,580 >> Merkkiä. 405 00:19:39,580 --> 00:19:44,760 >> Joten merkki, että ainakin jouset, ja merkki on vain 406 00:19:44,760 --> 00:19:46,800 kahdeksan bittiä tai yhden tavun. 407 00:19:46,800 --> 00:19:49,550 Joten luultavasti ainakin epämääräisesti tuntee, että 408 00:19:49,550 --> 00:19:50,500 tietokoneessa on muistia. 409 00:19:50,500 --> 00:19:52,110 Se on kahdenlaisia ​​muistia vähintään. 410 00:19:52,110 --> 00:19:54,810 Yksi on kiintolevy, jossa voit tallentaa tavaraa pysyvästi, ja se on 411 00:19:54,810 --> 00:19:57,400 tyypillisesti suuri, joten voit olla elokuvia ja musiikkia ja niin edelleen. 412 00:19:57,400 --> 00:20:04,010 >> Sitten on toinen muisti kutsutaan RAM, R-A-M-, Random Access 413 00:20:04,010 --> 00:20:07,510 Muisti, ja se on muisti, , jota käytetään, kun tietokone on 414 00:20:07,510 --> 00:20:11,520 käynnissä, mutta jos tapahtuu sähkökatkos tai akku kuolee, jotain, joka on tallennettu 415 00:20:11,520 --> 00:20:15,300 RAM katoaa, jos menettää tehoaan kokonaan, koska se ei ole 416 00:20:15,300 --> 00:20:16,060 pysyviä. 417 00:20:16,060 --> 00:20:19,120 Sinulla on yleensä, näinä päivinä, keikka se, kaksi keikkaa, ehkä enemmän. 418 00:20:19,120 --> 00:20:23,490 Ja ylösalaisin RAM on, että se on paljon paljon, paljon nopeammin kuin kiintolevyt 419 00:20:23,490 --> 00:20:27,390 tai jopa SSD näinä päivinä, mutta se on yleensä kalliimpi niin 420 00:20:27,390 --> 00:20:28,480 sinulla on vähemmän. 421 00:20:28,480 --> 00:20:32,400 >> Joten tänään keskustelun todella viittaa RAM, että muisti, joka 422 00:20:32,400 --> 00:20:35,270 on olemassa vain siellä valtaa syötetään tietokoneeseen. 423 00:20:35,270 --> 00:20:40,530 Joten kun kirjoitat H-E-L-L-O, Enter näppäimistö, H on menossa yhteen 424 00:20:40,530 --> 00:20:44,550 tavun RAM-muistia, E on menossa toisen tavun RAM-muistia, kuten 425 00:20:44,550 --> 00:20:45,800 loput sanan. 426 00:20:45,800 --> 00:20:49,010 Joten muistaa mitä pystyimme tehdä viime kerralla oli tämä. 427 00:20:49,010 --> 00:20:53,940 Anna minun mennä eteenpäin ja avata tiedosto että vaadimme string.c, ja muistaa 428 00:20:53,940 --> 00:20:56,860 että se näytti hieman jotain tällaista. 429 00:20:56,860 --> 00:20:59,860 Saanen todella perua ja muuttaa sitä, mitä se näytti, 430 00:20:59,860 --> 00:21:02,654 merkkijonon pituus s. 431 00:21:02,654 --> 00:21:04,560 >> Joten katso ohjelma täältä. 432 00:21:04,560 --> 00:21:08,530 Olemme myös CS50 kirjastoon, jotta että voimme käyttää saada merkkijono. 433 00:21:08,530 --> 00:21:11,400 Olemme myös vakio io.h joten voimme käyttää printf. 434 00:21:11,400 --> 00:21:13,580 Miksi me myös string.h? 435 00:21:13,580 --> 00:21:16,980 Tämä oli uusi maanantaina. 436 00:21:16,980 --> 00:21:18,230 Joten halusimme merkkijonon pituus. 437 00:21:18,230 --> 00:21:19,090 Str Leng. 438 00:21:19,090 --> 00:21:21,470 Ihmiset päättivät vuosia sitten, Haluan vain olla ytimekäs. 439 00:21:21,470 --> 00:21:24,290 Sen sijaan, kutsuen sitä "merkkijonon pituus," kutsukaamme sitä "str pi" ja anna 440 00:21:24,290 --> 00:21:28,540 maailman luku ulos, ja niin se on mitä saamme pääsyn kanssa string.h. 441 00:21:28,540 --> 00:21:29,390 >> Tämä on tuttu. 442 00:21:29,390 --> 00:21:30,320 Tämä on tuttu. 443 00:21:30,320 --> 00:21:31,450 Tämä on tuttu. 444 00:21:31,450 --> 00:21:32,370 Tämä on vähän uutta. 445 00:21:32,370 --> 00:21:35,420 Linjassa 22 - ja palaamme tähän, mutta nyt tiedämme - 446 00:21:35,420 --> 00:21:37,880 ja te vain tiedä tätä saamasta lukea ohjeita tai jos 447 00:21:37,880 --> 00:21:39,010 tiesit C jo - 448 00:21:39,010 --> 00:21:41,510 saada string joskus voi tyriä. 449 00:21:41,510 --> 00:21:45,130 Jos käyttäjä on todella kontradiktorisen tai yhteistyöhaluinen ja hän vain 450 00:21:45,130 --> 00:21:49,450 ei kirjoita mitään näppäimistön tai tyypit niinkään näppäimistö, joka 451 00:21:49,450 --> 00:21:53,760 se varjoonsa tietokoneen muistiin, teoriassa saada string voisi palata 452 00:21:53,760 --> 00:21:56,270 jotain muuta kuin merkkijono. 453 00:21:56,270 --> 00:22:01,930 Se voisi palata erityinen arvo nimeltään NULL kokonaan isoilla kirjaimilla, N-U-L-L, ja tämä on 454 00:22:01,930 --> 00:22:03,390 vain ns Sentinel-arvo. 455 00:22:03,390 --> 00:22:08,010 Se on erityinen arvo, joka merkitsee jotain pahaa tapahtunut tässä tapauksessa. 456 00:22:08,010 --> 00:22:10,520 Se on ilman merkkijono. 457 00:22:10,520 --> 00:22:16,190 >> Joten null olen tarkistanut yksinkertaisesti niin, että pitkän tarinan lyhyesti, str Leng ja 458 00:22:16,190 --> 00:22:20,230 muita toimintoja, jotka tulevat C, jos he odottavat merkkijono mutta ohitit 459 00:22:20,230 --> 00:22:23,630 Koska merkkijono, jos ohitat ne nolla, tietokoneen tai ohjelman 460 00:22:23,630 --> 00:22:25,000 vain kaatua kokonaan. 461 00:22:25,000 --> 00:22:25,610 Se jumittui. 462 00:22:25,610 --> 00:22:27,250 Se heittää joitakin virheilmoituksen. 463 00:22:27,250 --> 00:22:28,690 Pahoja asioita tapahtuu. 464 00:22:28,690 --> 00:22:31,130 Joten, vaikka tämä on yhä ole hyvin määritelty - 465 00:22:31,130 --> 00:22:33,730 tämä tekee enemmän järkeä viikossa tai kaksi - linjassa 22, tämä on vain 466 00:22:33,730 --> 00:22:38,790 Esimerkiksi itse puolustava virheentarkistus vain jos kerran ulos 467 00:22:38,790 --> 00:22:42,040 miljoonaa jokin menee pieleen, on ainakin minun ohjelma ei kaatua. 468 00:22:42,040 --> 00:22:45,960 >> Joten jos s ei vastaa jotain pahaa, Olen tätä varten silmukka, ja tämä oli 469 00:22:45,960 --> 00:22:47,710 jossa meillä oli, että muut uusi pala syntaksin. 470 00:22:47,710 --> 00:22:51,580 Minulla on silmukka iteroimalla alkaen nolla asti pituus s. 471 00:22:51,580 --> 00:22:56,140 Ja sitten täällä, olin tulostamisen s kiinnike i, mutta miksi käytän% c kaikki 472 00:22:56,140 --> 00:23:00,770 äkillinen sijaan% s jopa vaikka s on merkkijono? 473 00:23:00,770 --> 00:23:02,110 Se on merkki, eikö? 474 00:23:02,110 --> 00:23:06,560 S on merkkijono, mutta s kiinnike jotain, s kiinnike i jossa i on nolla 475 00:23:06,560 --> 00:23:10,380 tai yksi tai kaksi, joka on yksittäinen merkin merkkijono, ja niin 476 00:23:10,380 --> 00:23:14,970 että printf on ilmoittanut, että se on todellakin merkin odottaa. 477 00:23:14,970 --> 00:23:18,096 >> Ja sitten muistaa, mitä teki tämä ohjelma itse tehdä? 478 00:23:18,096 --> 00:23:19,848 >> Painettu sitä sarakkeissa. 479 00:23:19,848 --> 00:23:21,120 >> Joo, aivan. 480 00:23:21,120 --> 00:23:24,990 Se vain painettu sana, jonka minä kirjoita sarake, yksi merkki per rivi. 481 00:23:24,990 --> 00:23:26,190 Katsotaanpa tätä uudelleen. 482 00:23:26,190 --> 00:23:27,810 Joten tee merkkijono. 483 00:23:27,810 --> 00:23:30,200 Käännetty OK. . / String. 484 00:23:30,200 --> 00:23:35,560 Saanen kirjoittaa H-E-L-L-O, Enter todellakin ymmärrän, yksi per rivi. 485 00:23:35,560 --> 00:23:37,280 >> Joten anna minun tehdä yksi optimointi täällä. 486 00:23:37,280 --> 00:23:40,240 Jos ajattelee sitä, varsinkin jos olet ohjelmoinut aikaisemmin, siellä on 487 00:23:40,240 --> 00:23:43,340 luultavasti tehottomuutta linja 24. 488 00:23:43,340 --> 00:23:46,160 Toisin sanoen, se ei ole välttämättä paras design. 489 00:23:46,160 --> 00:23:50,200 Suoraviivainen, ainakin kun muistaa, mitä str leng on, mutta se on 490 00:23:50,200 --> 00:23:52,640 tekee jotain tyhmää mahdollisesti. 491 00:23:52,640 --> 00:23:54,863 Mikä se voisi olla? 492 00:23:54,863 --> 00:23:56,280 >> [Äänetön]. 493 00:23:56,280 --> 00:23:56,800 >> Täsmälleen. 494 00:23:56,800 --> 00:24:00,340 Se tarkistamalla pituuden s joka kerta, vaikka 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O on aina menossa olla viisi merkkiä. 496 00:24:02,980 --> 00:24:05,490 Joka kerta Tämän silmukan kautta, viisi ei muutu. 497 00:24:05,490 --> 00:24:08,750 Saatan olla monesko i, mutta mitä on pituus s välein 498 00:24:08,750 --> 00:24:09,690 iteraatioon tämän silmukan? 499 00:24:09,690 --> 00:24:15,810 Se on viisi, se on viisi, se on viisi, ja Olen kuitenkin silti kysyä tätä 500 00:24:15,810 --> 00:24:18,320 kysymys uudestaan ​​ja uudestaan ​​ja uudestaan. 501 00:24:18,320 --> 00:24:20,750 Nyt rehellisesti, tietokone on niin pirun nopeasti, kukaan ei tule huomata 502 00:24:20,750 --> 00:24:23,780 ero tässä tapauksessa, mutta tällaiset köyhien suunnittelun päätöksiä voidaan 503 00:24:23,780 --> 00:24:28,330 alkaa lisätä ylös, jos kääntäjä itse ei yritä korjata tämän sinulle, joka 504 00:24:28,330 --> 00:24:30,630 se yleensä ei olisi kello ainakin laitteen. 505 00:24:30,630 --> 00:24:31,540 >> Joten aion tehdä tämän. 506 00:24:31,540 --> 00:24:34,580 Aion lisätä pilkkua ensimmäinen muuttuja, i. 507 00:24:34,580 --> 00:24:37,310 Aion antaa itselleni toisen muuttuja, kutsuen sitä n, vain 508 00:24:37,310 --> 00:24:41,330 yleissopimus numeroita, ja sitten olen menossa antaa n arvo merkkijono 509 00:24:41,330 --> 00:24:42,530 pituus s. 510 00:24:42,530 --> 00:24:46,060 Ja sitten aion muuttaa tilani on mitä? 511 00:24:46,060 --> 00:24:51,960 Aion muuttaa tilani ja kun i on pienempi kuin n. 512 00:24:51,960 --> 00:24:55,700 >> Joten nyt, kuinka monta kertaa olen tarkkailun pituus s? 513 00:24:55,700 --> 00:25:00,110 Kerran, mutta se on OK tarkistaa i vastaan n uudestaan ​​ja uudestaan, koska nyt ne 514 00:25:00,110 --> 00:25:03,170 arvot eivät ole todella muuttuu. 515 00:25:03,170 --> 00:25:06,020 Nyt nyt, vain tietää, että milloin soittaa toiminto, siellä on vähän 516 00:25:06,020 --> 00:25:09,930 yläpuolella, ei riitä lannistaa sinua todella ikinä käyttää toimintoja, mutta 517 00:25:09,930 --> 00:25:12,750 varmasti kun on koodiriviä pidä siitä - ja linjat saavat 518 00:25:12,750 --> 00:25:15,490 mielenkiintoisempaa ennen pitkää - jos siellä on mahdollisuus ajatella, jos olen 519 00:25:15,490 --> 00:25:18,320 kirjoita tämä koodi, kuinka monta kertaa se toteuttaa? 520 00:25:18,320 --> 00:25:20,950 Voit alkaa nähdä ajan suorituskykyä ohjelmia voidaan 521 00:25:20,950 --> 00:25:21,660 todellakin muuttaa. 522 00:25:21,660 --> 00:25:24,110 >> Itse asiassa yksi ongelma asettaa olemme tehnyt menneinä vuosina liittyy 523 00:25:24,110 --> 00:25:27,600 täytäntöönpanoa, kuten ehkä muistatte viikolla nolla, oikeinkirjoituksen tarkistus, mutta 524 00:25:27,600 --> 00:25:31,380 oikoluku, joka on suunniteltu tukemaan sanakirja 150000 plus 525 00:25:31,380 --> 00:25:32,860 sanoen, että annamme teille. 526 00:25:32,860 --> 00:25:37,100 Sinun olisi pitänyt kirjoittaa koodia, joka lataa nämä sanat RAM, niin tulee 527 00:25:37,100 --> 00:25:40,700 laatikot kuten näimme ruudulla hetki sitten, ja sen jälkeen niin nopeasti kuin voit 528 00:25:40,700 --> 00:25:43,740 voi, sinun täytyy pystyä vastaamaan Kysymys muodossa, on tämä sana 529 00:25:43,740 --> 00:25:44,280 väärin? 530 00:25:44,280 --> 00:25:45,420 Onko tämä sana kirjoitettu väärin? 531 00:25:45,420 --> 00:25:46,770 Onko tämä sana kirjoitettu väärin? 532 00:25:46,770 --> 00:25:49,525 >> Ja jotain, mitä olemme tehnyt menneinä vuosina on tehnyt siitä, 533 00:25:49,525 --> 00:25:53,500 vaikkakin opt-in vapaaehtoisuuden pohjalta kilpailu tapaisena, jolloin 534 00:25:53,500 --> 00:25:59,470 opiskelijat, jotka käyttävät vähemmän muistia ja vähemmän aikaa, vähemmän suorittimen käytön, päätyä 535 00:25:59,470 --> 00:26:02,640 kuplii ylös pienen johtaja aluksella tai ranking että laitamme 536 00:26:02,640 --> 00:26:04,770 Kurssin kotisivu Kuten olemme tehnyt menneinä vuosina. 537 00:26:04,770 --> 00:26:08,100 Joten jälleen, täysin valinnainen, mutta tämä puhuu suunnittelun mahdollisuuksia 538 00:26:08,100 --> 00:26:11,250 jotka ovat ennen kun alamme rakennuksen huipulla joitakin näistä 539 00:26:11,250 --> 00:26:14,010 kulmakivistä. 540 00:26:14,010 --> 00:26:16,780 >> Joten anna minun mennä takaisin tähän kaavio vain hetken ja paljastaa hieman 541 00:26:16,780 --> 00:26:17,610 jotain enemmän. 542 00:26:17,610 --> 00:26:21,400 Tämä todellakin on merkkijono, ja olemme ottaneet etuna muutaman kirjastot, 543 00:26:21,400 --> 00:26:25,150 standardin io.h joka on - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, muun muassa. 546 00:26:27,860 --> 00:26:31,540 cs50.h, joka on saada int ja saada string ja niin edelleen, string.h, joka 547 00:26:31,540 --> 00:26:32,570 oli str Leng. 548 00:26:32,570 --> 00:26:34,800 Mutta näyttää siltä, ​​siellä on vielä toinen. 549 00:26:34,800 --> 00:26:38,540 Suoraan sanottuna, siellä on paljon ja paljon header tiedostot julistaa toiminnot 550 00:26:38,540 --> 00:26:43,320 kirjastoille, mutta tämä ctype.h on todella olemaan hieman 551 00:26:43,320 --> 00:26:46,900 edullista, koska aion mennä eteenpäin ja toteuttaa yksi 552 00:26:46,900 --> 00:26:48,120 muu ohjelma täältä. 553 00:26:48,120 --> 00:26:52,420 >> Anna minun mennä eteenpäin ja avata jotain Kirjoitin aiemmin nimeltään 554 00:26:52,420 --> 00:26:55,750 capitalize.c, ja sallikaa Katso, miten tämä toimii. 555 00:26:55,750 --> 00:27:00,340 Huomaa, että olen käyttäen, tässä versiossa se, kolme tuttu tiedostoja. 556 00:27:00,340 --> 00:27:04,110 Huomaa, että linja 18, olen saada rivi tekstiä. 557 00:27:04,110 --> 00:27:07,660 Ilmoituksen linja 21, olen väittäen, että seuraava koodi on menossa 558 00:27:07,660 --> 00:27:12,170 hyödyntämään s, mitä käyttäjä kirjoittaa vuonna, ja miten teen sen? 559 00:27:12,170 --> 00:27:13,300 No, otan - 560 00:27:13,300 --> 00:27:14,750 opetus oli viimeisen kerran - 561 00:27:14,750 --> 00:27:18,370 Olen julistaa i ja n ja iteroimalla yli merkkejä merkkijonon. 562 00:27:18,370 --> 00:27:22,720 Ja mitä sitten on tämä lohko koodi linjaan 24, 27 563 00:27:22,720 --> 00:27:24,550 tekee maallikon termein? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> Kirjain takaisin. 566 00:27:29,730 --> 00:27:30,430 >> Täsmälleen. 567 00:27:30,430 --> 00:27:35,920 Jos s kiinnike i - joten jos i: nnen luonnetta s, mikä on erityinen 568 00:27:35,920 --> 00:27:40,220 nieriää merkkijono, on suurempi kuin tai yhtä pieniksi ja - 569 00:27:40,220 --> 00:27:42,670 muistaa, että kaksinkertainen et- merkitsevät ja - 570 00:27:42,670 --> 00:27:46,810 ja sama merkki, s kiinnike i, on pienempi kuin tai yhtä suuri kuin pieniksi z, 571 00:27:46,810 --> 00:27:50,600 se tarkoittaa, että se on tai b tai c tai piste, piste, piste, tai z, mikä tarkoittaa 572 00:27:50,600 --> 00:27:51,340 se on pieniä. 573 00:27:51,340 --> 00:27:52,900 Mitä haluan tehdä tässä tapauksessa? 574 00:27:52,900 --> 00:27:55,010 No, voin tehdä tämän hieman arvoituksellisesti, mutta 575 00:27:55,010 --> 00:27:56,160 Katsotaanpa kiusaa tämän toisistaan. 576 00:27:56,160 --> 00:28:00,210 >> Aion soittaa printf, tulostaa% c koska haluan uusintapainoksia tämä 577 00:28:00,210 --> 00:28:01,580 merkki ruudulla. 578 00:28:01,580 --> 00:28:06,650 Olen sitten menossa ottamaan s kiinnike i, i: nnen merkin s, ja sitten miksi 579 00:28:06,650 --> 00:28:12,330 teen tätä pikku temppu täällä, lowercase miinus pääoman? 580 00:28:12,330 --> 00:28:16,352 Mikä on, että aikoo antaa minua yleisesti ottaen? 581 00:28:16,352 --> 00:28:18,600 >> [Äänetön]. 582 00:28:18,600 --> 00:28:19,390 >> Täsmälleen. 583 00:28:19,390 --> 00:28:20,860 En oikeastaan ​​muista - 584 00:28:20,860 --> 00:28:24,390 se oli 65 pääoman A. En todellakaan muistaa, mitä pienet kirjaimet on, 585 00:28:24,390 --> 00:28:25,540 mutta ei väliä. 586 00:28:25,540 --> 00:28:26,580 Tietokone tietää. 587 00:28:26,580 --> 00:28:30,380 Joten sanomalla, pieniksi miinus pääomaa, se on outoa olla 588 00:28:30,380 --> 00:28:33,530 vähentämällä yksi char toisesta, mutta mitä merkkiä alla huppu? 589 00:28:33,530 --> 00:28:34,520 Ne ovat vain numeroita. 590 00:28:34,520 --> 00:28:36,980 Joten mitä nämä numerot ovat, anna tietokoneen muista sitä 591 00:28:36,980 --> 00:28:38,240 eikä minua ihmisen. 592 00:28:38,240 --> 00:28:41,710 >> Niin pieniksi miinus pääoman on aio antaa minulle eroa. 593 00:28:41,710 --> 00:28:45,370 Se sattuu olemaan 32, ja se olisi tapauksessa pienillä b ja pääoman B 594 00:28:45,370 --> 00:28:45,930 ja niin edelleen. 595 00:28:45,930 --> 00:28:47,710 Se pysyy yhdenmukaisena, onneksi. 596 00:28:47,710 --> 00:28:51,930 Joten olen lähinnä sanomalla, ota pieni kirjain, vähennä pois, että 597 00:28:51,930 --> 00:28:55,340 standardi ero, ja että tehokkaasti muutoksia s kiinnike i: 598 00:28:55,340 --> 00:28:59,400 pieniksi ja tietysti isoja, ilman minun varsinaisesti ajatella 599 00:28:59,400 --> 00:29:03,040 noin tai muistaa, mitä olivat numerot puhuimme, kun kahdeksan 600 00:29:03,040 --> 00:29:04,800 vapaaehtoisia lavalle? 601 00:29:04,800 --> 00:29:08,800 Nyt Samaan aikaan muualla, jos se ei ole kirjain määritetty 602 00:29:08,800 --> 00:29:10,400 riviltä 24, vain tulostaa sen. 603 00:29:10,400 --> 00:29:12,590 Haluan vain koskettaa merkkejä, jotka olivat 604 00:29:12,590 --> 00:29:14,410 oikeastaan ​​perin pieniksi. 605 00:29:14,410 --> 00:29:15,150 >> Katsotaanpa tätä. 606 00:29:15,150 --> 00:29:17,400 Tee hyödyntää. 607 00:29:17,400 --> 00:29:18,470 Käännetty, OK. 608 00:29:18,470 --> 00:29:19,730 . / Hyödyntää. 609 00:29:19,730 --> 00:29:23,530 Ja haluan kirjoittaa H-E-L-L-O pieniä kirjaimia, Anna. 610 00:29:23,530 --> 00:29:26,370 Ja huomaa, että se muuttuu osaksi isoja. 611 00:29:26,370 --> 00:29:27,940 Anna minun tehdä tämä uudelleen eri sanaa. 612 00:29:27,940 --> 00:29:32,720 Entä D-A-V-I-D ensimmäinen D aktivoidaan nimi tyypillisesti on? 613 00:29:32,720 --> 00:29:33,560 Anna. 614 00:29:33,560 --> 00:29:34,870 Huomaa se on silti oikea. 615 00:29:34,870 --> 00:29:40,250 Se vain lähtönä, että ensimmäinen D ennallaan kautta, että muu rakentaa. 616 00:29:40,250 --> 00:29:42,170 >> Joten pitää mielessä, sitten pari asiaa täällä. 617 00:29:42,170 --> 00:29:45,060 Yksi, jos joskus haluat tarkistaa kaksi olosuhteet kerralla, voit ja niitä 618 00:29:45,060 --> 00:29:46,500 yhdessä ennakoidusti. 619 00:29:46,500 --> 00:29:49,900 Voit verrata merkkiä tällä tavalla ja tehokkaasti hoitaa merkit 620 00:29:49,900 --> 00:29:53,050 numeroita, mutta suoraan sanottuna, tämä on niin pirun arvoituksellinen En koskaan muistaa 621 00:29:53,050 --> 00:29:56,510 miten keksiä tämän tyhjästä ilman perusteluja sen läpi melko 622 00:29:56,510 --> 00:29:57,140 vähän aikaa. 623 00:29:57,140 --> 00:30:00,590 >> Eikö olisi ollut kiva, jos joku siellä kirjoitti toiminto nimeltään on 624 00:30:00,590 --> 00:30:05,390 alentaa tuota voisi vastata minulle tosi tai väärä, tämä merkki on pieniä? 625 00:30:05,390 --> 00:30:09,350 No onneksi kuka kirjoitti ctype.h teki juuri niin. 626 00:30:09,350 --> 00:30:15,540 Päästä minut tänne ja lisätä ctype C tyypit, ja nyt haluan mennä tänne ja 627 00:30:15,540 --> 00:30:18,820 kirjoittaa tämän linjan seuraavasti. 628 00:30:18,820 --> 00:30:27,510 >> Joten jos sitä kutsutaan on pienempi, väitän, s kiinnike i, niin aion poistaa 629 00:30:27,510 --> 00:30:29,400 nämä kaksi riviä kokonaan. 630 00:30:29,400 --> 00:30:32,570 Joten nyt joku muu, toivon, kirjoitti toiminto nimeltään on alhaisempi, ja se 631 00:30:32,570 --> 00:30:36,250 osoittautuu he tekivät ja he ilmoittivat se sisällä ctype.h. 632 00:30:36,250 --> 00:30:39,480 Ja nyt aion lähteä line 27 yksin, aion lähteä line 31 633 00:30:39,480 --> 00:30:41,890 yksin, mutta huomaa, miten paljon olen tiukennetaan minun koodi. 634 00:30:41,890 --> 00:30:42,690 Nyt on puhtaampaa. 635 00:30:42,690 --> 00:30:47,250 Se on niin vaikea katsoa läpi koska nyt toiminto, lisäksi on 636 00:30:47,250 --> 00:30:50,080 niin ihanan nimeltään se vain mitä se sanoo. 637 00:30:50,080 --> 00:30:51,520 >> Joten nyt aion tallentaa. 638 00:30:51,520 --> 00:30:52,930 Aion loitontaa. 639 00:30:52,930 --> 00:30:56,650 Ja aivan kuten Scratch sinulla voisi olla Booleans, Loogiset arvot tosi tai 640 00:30:56,650 --> 00:31:01,530 väärä, se on juuri sitä, mitä on alentaa tehokkaasti palaa. 641 00:31:01,530 --> 00:31:02,960 Minäpä kääntää. 642 00:31:02,960 --> 00:31:04,500 Saanen uusinnassa. 643 00:31:04,500 --> 00:31:07,350 Ja nyt yritetään uudestaan, H-E-L-L-O, Enter. 644 00:31:07,350 --> 00:31:07,970 Se on melko hyvä. 645 00:31:07,970 --> 00:31:10,150 Ja yritä uudelleen, varmista, että I ei kierrä jotain. 646 00:31:10,150 --> 00:31:11,670 Se aktivoidaan samoin. 647 00:31:11,670 --> 00:31:14,190 >> Mutta tämä ei riitä, koska Toinen asia, että olen koskaan 648 00:31:14,190 --> 00:31:19,090 Muistan ellen työstää sitä todella huolellisesti, sanovat, paperi on 649 00:31:19,090 --> 00:31:19,920 hemmetin viiva. 650 00:31:19,920 --> 00:31:23,450 Eikö olisi mukavaa, jos siellä oli toiminto nimeltään ylempään? 651 00:31:23,450 --> 00:31:26,930 No se kääntyy siellä on ctype.h samoin. 652 00:31:26,930 --> 00:31:30,150 Aion mennä eteenpäin ja kirjoita - 653 00:31:30,150 --> 00:31:31,340 haluan tuoda että linja takaisin. 654 00:31:31,340 --> 00:31:36,430 Sen sijaan täällä, anna minun mennä eteenpäin ja sanoa, korvaa% c 655 00:31:36,430 --> 00:31:42,110 tuloksena kutsuvan tätä toimintoa ylempi on i: nnen luonnetta s. 656 00:31:42,110 --> 00:31:45,430 Ja nyt huomaa se alkaa hieman tasapainossa. 657 00:31:45,430 --> 00:31:48,870 Minun täytyy seurata, kuinka monta Suluissa Olen avataan ja suljetaan. 658 00:31:48,870 --> 00:31:50,050 >> Joten nyt se on jopa puhtaampaa. 659 00:31:50,050 --> 00:31:53,460 Nyt tämä ohjelma on paranemassa ja paremmin suunniteltu luultavasti koska se on 660 00:31:53,460 --> 00:31:56,450 paljon, paljon enemmän luettavaa, mutta se ei nyt korjata. 661 00:31:56,450 --> 00:31:57,600 Tee hyödyntää. 662 00:31:57,600 --> 00:31:58,930 . / Hyödyntää. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. Kokeillaan uudestaan, D-A-V-I-D. OK, joten olemme edelleen 664 00:32:03,220 --> 00:32:04,250 hyvässä kunnossa. 665 00:32:04,250 --> 00:32:06,030 >> Mutta nyt ylempi. 666 00:32:06,030 --> 00:32:09,720 Ehdotan, että vielä yksi hienostuneisuus voisimme tehdä, että olisi 667 00:32:09,720 --> 00:32:12,820 todella mukavaa, että voisi todella kiristä tätä koodia ja todella antaa meille viisi 668 00:32:12,820 --> 00:32:15,150 viidestä suunnittelun, esimerkiksi. 669 00:32:15,150 --> 00:32:16,510 Mikä olisi kiva päästä eroon? 670 00:32:16,510 --> 00:32:20,770 No, katsokaa kuinka pirun kauan tämä lohko koodi on vain tehdä jotain yksinkertaista. 671 00:32:20,770 --> 00:32:23,850 >> Nyt kun syrjään, koska saatat olla nähdään Super osassa viime 672 00:32:23,850 --> 00:32:27,570 viikonloppu, et ehdottomasti tarvitse aaltosulkeita kun sinulla on vain yksi 673 00:32:27,570 --> 00:32:32,180 koodiriviä, vaikka ehdotimme pitää ne niin, että se tekee paljon 674 00:32:32,180 --> 00:32:36,190 selvemmäksi, kuten Scratch U-muotoinen lohkot, mitä sisällä haara. 675 00:32:36,190 --> 00:32:40,170 Mutta eikö olisi mukavaa, jos ylempään, kun otetaan huomioon sen tulon, kääntyi sen 676 00:32:40,170 --> 00:32:44,730 isoiksi, jos se ei ole, ja mitä olisi ihana päinvastaisessa tapauksessa, jos 677 00:32:44,730 --> 00:32:47,210 se on jo isoja? 678 00:32:47,210 --> 00:32:49,620 Vain siirtää sitä kautta ja jätä se yksin. 679 00:32:49,620 --> 00:32:50,660 >> Joten ehkä se, että. 680 00:32:50,660 --> 00:32:52,990 Voisin yrittää vain toivoa että se, mutta haluan 681 00:32:52,990 --> 00:32:54,450 käyttöön toinenkin asia. 682 00:32:54,450 --> 00:32:57,440 Sen sijaan, että käyttämällä tätä sisäänrakennettu terminaali ikkuna täällä, muistaa, että 683 00:32:57,440 --> 00:33:01,130 Tämän neliön musta kuvake antaa sinulle isompi terminaali-ikkuna, että en voi täynnä 684 00:33:01,130 --> 00:33:02,260 seuloa jos haluan? 685 00:33:02,260 --> 00:33:05,820 Joten se kääntyy pois he tavallaan kumma nimetty, mutta siellä on näitä asioita kutsutaan 686 00:33:05,820 --> 00:33:10,970 man-sivut, ohjesivuja, mies lyhyitä, ja voin käyttää näitä by 687 00:33:10,970 --> 00:33:14,515 kirjoittamalla mies - 688 00:33:14,515 --> 00:33:15,570 mitä haluan tyyppi? 689 00:33:15,570 --> 00:33:17,830 Man ylempi. 690 00:33:17,830 --> 00:33:21,090 >> Ja nyt huomaa, jos on olemassa toimivat sisällä tietokoneen, vuonna 691 00:33:21,090 --> 00:33:23,970 Tässä tapauksessa laite, joka on vain käyttöjärjestelmä Linux, se menee 692 00:33:23,970 --> 00:33:27,920 antaa minulle hieman arvoituksellisesti joukko tuotos, mutta huomaat ajan mittaan 693 00:33:27,920 --> 00:33:31,720 se aina on muotoiltu melko paljon Sama niin alatte tottua siihen. 694 00:33:31,720 --> 00:33:35,130 Huomaa huipulla ylemmän ja ilmeisesti on samat asiakirjat 695 00:33:35,130 --> 00:33:35,680 ja alentaa. 696 00:33:35,680 --> 00:33:38,740 Kuka kirjoitti se vähentää joidenkin kulmat ja laita se kaikki yhdellä sivulla. 697 00:33:38,740 --> 00:33:40,720 Nämä asiat "tarkoitukseen elämä on muuntaa 698 00:33:40,720 --> 00:33:42,780 kirjeen ylä-tai pieniä. 699 00:33:42,780 --> 00:33:46,290 >> Huomaa, että alle Synopsis, man-sivulta opettaa minulle, mitä tiedosto olen 700 00:33:46,290 --> 00:33:48,130 sisällyttää käyttää tätä asia. 701 00:33:48,130 --> 00:33:51,320 Se antaa minulle allekirjoitukset nämä toimintoihin, molemmat, jopa 702 00:33:51,320 --> 00:33:53,510 vaikka me nyt vain välitä yksi. 703 00:33:53,510 --> 00:33:54,730 Tässä on nyt kuvaus. 704 00:33:54,730 --> 00:33:58,800 Ylempään muuntaa kirjeen c isoiksi, jos mahdollista. 705 00:33:58,800 --> 00:34:02,280 >> Vielä ole, että opettavaista, mutta haluan nyt näyttää alle palauttaa arvon, asia 706 00:34:02,280 --> 00:34:03,520 joka on palautettu. 707 00:34:03,520 --> 00:34:08,600 Joten palautettu arvo on, että muunnetaan kirjain tai c jos 708 00:34:08,600 --> 00:34:09,870 muuntaminen ei ollut mahdollista. 709 00:34:09,870 --> 00:34:11,202 Mikä on c? 710 00:34:11,202 --> 00:34:12,560 >> Alkuperäisen luonteen. 711 00:34:12,560 --> 00:34:15,370 >> Omaperäinen ja tiedämme että taas menee jopa 712 00:34:15,370 --> 00:34:19,179 synopsis, ja kuka kirjoitti tämän toiminto juuri päättänyt, että tulo 713 00:34:19,179 --> 00:34:22,909 että ylempään ja alempaan on vain mielivaltaisesti olemaan nimeltään c. 714 00:34:22,909 --> 00:34:24,909 He olisivat voineet kutsua sitä eniten mitään he haluavat, mutta he pitivät sitä 715 00:34:24,909 --> 00:34:26,270 yksinkertaista kuin c. 716 00:34:26,270 --> 00:34:27,880 Joten olen kuullut man-sivulta. 717 00:34:27,880 --> 00:34:31,870 Tämä lause vakuuttaa minulle, että jos se ei ole pieni kirjain, se on 718 00:34:31,870 --> 00:34:34,969 aio vain antaa minulle takaisin c, joka on täydellinen, eli en voi päästä eroon 719 00:34:34,969 --> 00:34:36,199 minun muuten kunnossa. 720 00:34:36,199 --> 00:34:39,679 >> Joten anna minun mennä takaisin gedit, ja Nyt haluan vain tehdä tämän. 721 00:34:39,679 --> 00:34:41,960 Aion kopioida minun printf selvitys. 722 00:34:41,960 --> 00:34:45,969 Aion mennä eteenpäin ja oikeus sisällä silmukka tulostaa että ulos, ja saada 723 00:34:45,969 --> 00:34:48,760 eroon nyt koko tämä jos rakennelma. 724 00:34:48,760 --> 00:34:51,860 Ei ollut huono idea, ja se oli hyvin paljon oikeita ja yhdenmukaisia 725 00:34:51,860 --> 00:34:54,100 kaikki olemme saarnanneet, mutta vain ei ole välttämätöntä. 726 00:34:54,100 --> 00:34:57,070 Heti kun huomaat joitakin kirjasto toiminto on olemassa, että joku muu 727 00:34:57,070 --> 00:35:01,340 kirjoitti, tai ehkä kirjoitit muualla tiedoston, voit käyttää sitä ja todella 728 00:35:01,340 --> 00:35:02,690 alkaa tiukentaa koodi. 729 00:35:02,690 --> 00:35:06,080 >> Ja kun sanon asioita, kuten hyvä tyyli, siitä, että tämä henkilö nimeltä 730 00:35:06,080 --> 00:35:11,490 toiminto ylä, tai aiemmin on pienempi on ihanan hyödyllistä, koska 731 00:35:11,490 --> 00:35:12,900 he ovat hyvin kuvaava. 732 00:35:12,900 --> 00:35:16,120 Et halua soittaa toiminnot x ja y ja z, jotka ovat 733 00:35:16,120 --> 00:35:19,620 paljon, paljon vähemmän merkitystä. 734 00:35:19,620 --> 00:35:25,160 Kysyttävää, että sarja parannuksia? 735 00:35:25,160 --> 00:35:28,010 >> Niin riittää kun sanoo yhden noutoruokapaikkoja on niin kuin teidän oma ongelma 736 00:35:28,010 --> 00:35:30,960 set - ehkä ongelma setin, mutta varmasti P asettaa kaksi ja edelleen, jopa 737 00:35:30,960 --> 00:35:34,380 kun he oikein ei välttämättä tarkoita, että ne ovat täydellisiä vain 738 00:35:34,380 --> 00:35:36,155 vielä tai erityisen hyvin suunniteltu. 739 00:35:36,155 --> 00:35:38,420 Se muun akselin alkaa miettiä. 740 00:35:38,420 --> 00:35:41,730 Joten tämä oli merkkijono sisäpuolelle tietokoneen muistiin, mutta jos sinulla on 741 00:35:41,730 --> 00:35:46,180 koko joukko merkkejä, kuten H-E-L-L-O sisällä RAM, ja kai 742 00:35:46,180 --> 00:35:51,330 että sinua ohjelmassa soittaa saada merkkijono useita kertoja, jotta voit 743 00:35:51,330 --> 00:35:54,200 soittaa saada string kerran, sinun soittaa saada merkkijono uudelleen. 744 00:35:54,200 --> 00:35:55,880 No, mitä tulee tapahtuu ajan myötä? 745 00:35:55,880 --> 00:35:59,170 >> Toisin sanoen, jos sinulla on rivi koodi, joskin asiayhteydestään, kuten 746 00:35:59,170 --> 00:36:02,120 string s saa - 747 00:36:02,120 --> 00:36:02,960 Tehdään tämä. 748 00:36:02,960 --> 00:36:05,270 String nimi vastaa saada merkkijono. 749 00:36:05,270 --> 00:36:08,590 Joten kai Koodirivin tarkoitetaan kysyä käyttäjältä hänen nimensä. 750 00:36:08,590 --> 00:36:14,580 Tämä seuraava rivi koodia on tarkoitus kysyä käyttäjälle hänen koulun ja 751 00:36:14,580 --> 00:36:15,920 Tämän seuraavalle riville, ja niin edelleen. 752 00:36:15,920 --> 00:36:18,150 Oletetaan, että meillä pitää kysyä käyttäjältä toiselle ja 753 00:36:18,150 --> 00:36:19,750 toinen ja toinen merkkijono. 754 00:36:19,750 --> 00:36:22,390 He aikovat jäädä muistiin samaan aikaan. 755 00:36:22,390 --> 00:36:24,280 Yksi ei aio hakata muita. 756 00:36:24,280 --> 00:36:26,420 Koulu ei korvaa muita. 757 00:36:26,420 --> 00:36:28,520 Mutta mistä ne kaikki päätyvät muistia? 758 00:36:28,520 --> 00:36:32,030 >> No, jos alamme piirtää ruudulle, joita voimme käyttää tätä asia 759 00:36:32,030 --> 00:36:35,800 täällä kuin liitutaulu, jos tämä musta suorakulmio edustaa tietokoneeni 760 00:36:35,800 --> 00:36:39,800 muisti, aion mielivaltaisesti alkaa jakamalla se ylös vähän neliöitä, 761 00:36:39,800 --> 00:36:42,120 joista jokainen edustaa yhden tavun muistia. 762 00:36:42,120 --> 00:36:46,560 Suoraan sanottuna, jos sinulla on gigatavu RAM-muistia näinä päivinä, sinulla on miljardi tavua 763 00:36:46,560 --> 00:36:49,540 muistin tietokoneen, niin miljardia näistä neliöt. 764 00:36:49,540 --> 00:36:52,110 Joten riittävää todeta, tämä ei oikeastaan ​​mittakaavassa. 765 00:36:52,110 --> 00:36:58,250 >> Mutta voisimme pitää piirustus kaikki nämä selvästikään ole mittakaavassa neliöitä, ja tämä 766 00:36:58,250 --> 00:37:01,260 kollektiivisesti edustaa tietokoneen muistiin. 767 00:37:01,260 --> 00:37:03,136 Nyt meidän täytyy vain tehdä piste, piste, piste. 768 00:37:03,136 --> 00:37:06,260 Eli toisin sanoen, kun kehottaa nyt käyttäjälle get merkkijono antaa minulle 769 00:37:06,260 --> 00:37:07,350 string, mitä tapahtuu? 770 00:37:07,350 --> 00:37:14,270 Jos käyttäjä on "hei", joka päättyy vuonna H-E-L-L-O. Mutta oletetaan 771 00:37:14,270 --> 00:37:15,720 Sitten käyttäjä tyyppejä - 772 00:37:15,720 --> 00:37:17,250 Oikeastaan ​​minun ei olisi pitänyt tehdä Hei, koska pyydämme 773 00:37:17,250 --> 00:37:18,330 heitä heidän nimensä. 774 00:37:18,330 --> 00:37:20,580 Joten mennään takaisin, jos en voi tehdä tätä. 775 00:37:20,580 --> 00:37:26,130 >> Joten jos en kirjoita D-A-V-I-D minun nimeni, mutta muistuttaa, että toisella rivillä 776 00:37:26,130 --> 00:37:29,220 koodi on saada string jälleen saada kouluun. 777 00:37:29,220 --> 00:37:32,090 Missä on se sana, että käyttäjä tyyppejä menossa seuraavaksi? 778 00:37:32,090 --> 00:37:38,290 No, ehkä se tulee mennä H-A-R-V-A-R-D. Joten vaikka olen 779 00:37:38,290 --> 00:37:41,560 piirretään sen kaksi riviä, tämä on vain koko joukko tavua oman 780 00:37:41,560 --> 00:37:42,710 tietokoneen RAM. 781 00:37:42,710 --> 00:37:46,560 Ei ongelma nyt, koska nyt jos olen käyttämällä RAM tässä erittäin kohtuullinen 782 00:37:46,560 --> 00:37:49,910 mutta tavallaan naiivi tapa, mitä voit ei ilmeisesti erottaa? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 Kun yksi alkaa ja missä yksi päättyy, eikö? 785 00:37:54,680 --> 00:37:55,860 He tavallaan hämärtää yhdessä. 786 00:37:55,860 --> 00:37:57,920 >> Joten se kääntyy pois tietokoneen ei tee tätä. 787 00:37:57,920 --> 00:38:04,720 Let Me todella selata ajassa taaksepäin muutama kirjain, ja Harvardin sijasta 788 00:38:04,720 --> 00:38:09,570 menee heti sen jälkeen, kun käyttäjän nimi, käyttäjä todella saa, takana 789 00:38:09,570 --> 00:38:12,000 kohtauksia, erikoismerkit lisätty 790 00:38:12,000 --> 00:38:13,885 tietokoneen häntä. 791 00:38:13,885 --> 00:38:19,470 / 0, joka tunnetaan myös nul merkki ärsyttävän nimeltään N-U-L, ei 792 00:38:19,470 --> 00:38:22,190 N-U-L-L, mutta voit kirjoittaa sen / 0. 793 00:38:22,190 --> 00:38:27,130 Se on vain kaikki nollabittejä on markkeri välinen ensimmäinen sana, joka käyttäjän 794 00:38:27,130 --> 00:38:28,290 kirjoitetaan ja toinen. 795 00:38:28,290 --> 00:38:33,020 >> Joten Harvardin nyt itse asiassa päätyy koska tämä merkkijono 796 00:38:33,020 --> 00:38:36,110 ja yksi / 0. 797 00:38:36,110 --> 00:38:41,690 Eli toisin sanoen, kun nämä Sentinel-arvot, kahdeksan peräkkäistä nolla 798 00:38:41,690 --> 00:38:45,220 bittiä, voit nyt alkaa erottaa yhden merkin toisesta. 799 00:38:45,220 --> 00:38:49,720 Joten koko tämän ajan mitä "hei" on todella "hei" kanssa / 0, ja 800 00:38:49,720 --> 00:38:53,580 Samaan aikaan, saattaa hyvin olla hieman enemmän RAM 801 00:38:53,580 --> 00:38:56,400 sisällä tietokoneen. 802 00:38:56,400 --> 00:38:57,810 >> Anna minun tehdä yksi asia nyt. 803 00:38:57,810 --> 00:39:01,800 On käynyt ilmi, että kaikki nämä neliöt olemme piirustus, ne ovat, kyllä, 804 00:39:01,800 --> 00:39:06,140 jouset, mutta yleisemmin nämä asiat ovat paneelit. 805 00:39:06,140 --> 00:39:10,590 Matriisi on vain kimpale muisti se takaisin takaisin takaisin takaisin, 806 00:39:10,590 --> 00:39:15,130 ja yleensä käytät array tavalla Tämän hakasulkeen merkintätapa. 807 00:39:15,130 --> 00:39:18,210 Joten aiomme nähdä nämä melko vähän ajan, mutta haluan mennä eteenpäin ja 808 00:39:18,210 --> 00:39:21,160 avata, kutsukaamme se vanhenee. 809 00:39:21,160 --> 00:39:23,920 Ja huomaa, mitä voimme tehdä näitä samoja temppuja, hieman 810 00:39:23,920 --> 00:39:25,750 hieman syntaksin täällä. 811 00:39:25,750 --> 00:39:29,270 >> Joten line 17 tämän ohjelman - Oikeastaan ​​haluan ajaa ohjelman ensimmäinen 812 00:39:29,270 --> 00:39:30,770 jotta voimme nähdä, mitä tämä asia tekee. 813 00:39:30,770 --> 00:39:33,530 Soitan tehdä ikuisuuden kokoamaan tätä ohjelmaa. 814 00:39:33,530 --> 00:39:34,950 . / Ikäisille. 815 00:39:34,950 --> 00:39:36,480 Kuinka monta ihmistä huoneessa? 816 00:39:36,480 --> 00:39:38,020 Soita se kolme. 817 00:39:38,020 --> 00:39:39,575 Age of ensimmäinen henkilö? 818 00:39:39,575 --> 00:39:42,710 18, 19, ja 20. 819 00:39:42,710 --> 00:39:46,770 Ja nyt hieman naurettavan, minä vain tehnyt ohjelman, joka ikääntyy nämä 820 00:39:46,770 --> 00:39:47,740 kolme ihmistä. 821 00:39:47,740 --> 00:39:50,390 >> Joten on selvästi mahdollisuus pitämään hauskaa aritmeettinen täällä. 822 00:39:50,390 --> 00:39:51,560 Onneksi matematiikka on oikea. 823 00:39:51,560 --> 00:39:54,720 18 meni 19, 19 meni 20 ja niin edelleen. 824 00:39:54,720 --> 00:39:58,510 Mutta mitä todella tarkoitus olla havainnollinen tässä on se, miten me tallentamiseen 825 00:39:58,510 --> 00:40:00,190 nämä kolme ihmisten ikäisille. 826 00:40:00,190 --> 00:40:02,370 Saanen zoomata, mitä on täällä. 827 00:40:02,370 --> 00:40:06,240 >> Ensin nämä muutaman ensimmäisen rivin pitäisi saada tuttuja. 828 00:40:06,240 --> 00:40:08,770 Olen vain kehotukset käyttäjä ihmisten määrä huoneessa. 829 00:40:08,770 --> 00:40:11,490 Sitten Käytän saada int ja tehdä aikaa tehdä tämän uudestaan ​​ja uudestaan ​​ja uudestaan. 830 00:40:11,490 --> 00:40:15,780 Olemme nähneet, että malli ennen, mutta linja 27 on uusi ja itse asiassa varsin 831 00:40:15,780 --> 00:40:18,160 hyödyllisiä, ja tulee enemmän hyötyä. 832 00:40:18,160 --> 00:40:21,620 Huomaa, että mitä eri linjassa 27 on, että olen ilmeisesti julistaa 833 00:40:21,620 --> 00:40:23,960 int nimeltään aikoihin, mutta odota. 834 00:40:23,960 --> 00:40:27,140 Se ei ole vain int ikäisille. 835 00:40:27,140 --> 00:40:30,130 Ei näitä hakasulkeissa jonka sisällä on n. 836 00:40:30,130 --> 00:40:35,150 >> Joten kiinnike n tässä yhteydessä, ei sisällä printf selvitys täällä, mutta 837 00:40:35,150 --> 00:40:44,370 Tässä ainoa linja 27, tämä linja on sanomalla, anna minulle n ints, joista kukin 838 00:40:44,370 --> 00:40:46,080 on tyyppiä int. 839 00:40:46,080 --> 00:40:49,870 Joten tämä on ämpäri, niin sanotusti, Tässä tapauksessa kolme kokonaislukua takaisin 840 00:40:49,870 --> 00:40:52,770 takaisin takaisin, jotta voin tehokkaasti on kolme muuttujaa. 841 00:40:52,770 --> 00:40:54,890 Vaihtoehto, olla selkeä, olisi tämä. 842 00:40:54,890 --> 00:40:57,400 >> Jos haluaisin ensin opiskelijan ikä, voisin tehdä tämän. 843 00:40:57,400 --> 00:40:59,520 Jos haluaisin toisen opiskelijan ikä voisin tehdä tämän. 844 00:40:59,520 --> 00:41:01,860 Jos haluaisin kolmannen opiskelijan ikä, voisin tehdä tämän. 845 00:41:01,860 --> 00:41:04,320 Ja Jumala varjelkoon meidän kaikkien ikä tässä huoneessa - 846 00:41:04,320 --> 00:41:07,670 Tarkoitan, tämä on pahus paljon kopio, liitä uudestaan ​​ja uudestaan ​​ja uudestaan. 847 00:41:07,670 --> 00:41:10,870 Ja plus kun olen kokoamaan tätä ohjelmaa, jos toinen opiskelija kävelee yli ulos 848 00:41:10,870 --> 00:41:14,200 Tämän oven, nyt minun numero muuttujien on virheellinen. 849 00:41:14,200 --> 00:41:17,450 >> Joten mitä mukavaa noin array on yhtä Heti kun käynnistät tunne itseäsi 850 00:41:17,450 --> 00:41:20,190 kopioimalla, kertoimet ovat se ole paras lähestymistapa. 851 00:41:20,190 --> 00:41:22,240 Matriisi on dynaaminen mahdollisesti. 852 00:41:22,240 --> 00:41:24,610 En tiedä etukäteen, kuinka monta ihmistä tulevat olemaan huoneessa, 853 00:41:24,610 --> 00:41:28,670 mutta tiedän tarvitsen n niistä, ja minä selvittää n, kun aika tulee. 854 00:41:28,670 --> 00:41:35,500 Tämä koodiriviä nyt sitä, antaa minulle kimpale muisti, joka näyttää tältä 855 00:41:35,500 --> 00:41:40,380 jossa laatikoiden lukumäärä ruudulla on täysin riippuvainen n että 856 00:41:40,380 --> 00:41:42,010 käyttäjän kirjoitetaan sisään 857 00:41:42,010 --> 00:41:44,850 >> Joten nyt loput tämän ohjelman oikeastaan ​​aika samanlainen kuin mitä me 858 00:41:44,850 --> 00:41:46,860 vain teki merkkiä. 859 00:41:46,860 --> 00:41:49,970 Huomaan on silmukka alkaen linjan 30. 860 00:41:49,970 --> 00:41:54,920 Niin oikeassa kun saan array, I kerrata y on nolla on jopa n. 861 00:41:54,920 --> 00:41:58,890 Minulla on vain tämä opettavainen printf viestin vain sanoa, anna minulle ikä 862 00:41:58,890 --> 00:42:03,690 henkilö #% i, niin numero yksi, numero kaksi, numero kolme. 863 00:42:03,690 --> 00:42:04,730 Ja miksi teen tätä? 864 00:42:04,730 --> 00:42:08,870 Suoraan sanottuna, ihmiset haluavat laskea yhdestä ylös taas tietotekniikan tutkijoita, 865 00:42:08,870 --> 00:42:09,620 nollaan asti. 866 00:42:09,620 --> 00:42:11,700 tietojenkäsittelyasiantuntijat aio käyttää tällaista ohjelmaa, joten olemme 867 00:42:11,700 --> 00:42:13,990 menossa juuri alkaa laskea yksi kuten tavalliset ihmiset. 868 00:42:13,990 --> 00:42:17,630 >> Ja nyt linja 33, huomaa hieman eri pala syntaksin. 869 00:42:17,630 --> 00:42:23,710 I: nnen iän muuttujan tyyppiä array on menossa int. 870 00:42:23,710 --> 00:42:25,770 Ja nyt lopuksi, tämä on vain aritmeettinen tänne. 871 00:42:25,770 --> 00:42:29,200 Päätin erillisessä silmukan vaatia aikaa kuluu, ja nyt tässä 872 00:42:29,200 --> 00:42:31,400 erillinen silmukka, nämä rivit suorittaa. 873 00:42:31,400 --> 00:42:35,810 >> Vuoden päästä, henkilö aion i vuotias, mutta huomaa tätä ei ole 874 00:42:35,810 --> 00:42:36,500 muuttujan i. 875 00:42:36,500 --> 00:42:38,390 Tämä on nyt% I int. 876 00:42:38,390 --> 00:42:43,210 Ja huomaa ensimmäisenä paikanvaraajassa I plug in i + 1, joten laskemme kuin 877 00:42:43,210 --> 00:42:44,250 normaali ihminen. 878 00:42:44,250 --> 00:42:49,190 Ja sitten arvon ikänsä, sillä i vuotias, otan aikojen kiinnike 879 00:42:49,190 --> 00:42:52,980 i - ja miksi teen plus yksi täällä? 880 00:42:52,980 --> 00:42:53,760 He vain vuotiaita. 881 00:42:53,760 --> 00:42:55,030 Se on typerän valinnan ohjelmia. 882 00:42:55,030 --> 00:42:56,810 He vain vuotiaiden yksi vuosi. 883 00:42:56,810 --> 00:42:59,770 Voisin kirjoittaa minkä tahansa numeron, joka Olen todella haluavat siellä. 884 00:42:59,770 --> 00:43:02,430 >> Joten mitä oikeastaan ​​kaikki merkitystä täällä? 885 00:43:02,430 --> 00:43:07,610 No, minäpä itse kelaamaan taaksepäin tänne ja maalata kuva 886 00:43:07,610 --> 00:43:10,830 mitä edessänne. 887 00:43:10,830 --> 00:43:15,720 Mitä me voidaan tehdä meidän seuraava Ongelma asettaa kaksi on leikittelevät 888 00:43:15,720 --> 00:43:17,070 maailman salauksen. 889 00:43:17,070 --> 00:43:22,500 Joten tämä on merkkijono, niin sekvenssi useita merkkiä, ja mitä 890 00:43:22,500 --> 00:43:23,750 ei tämä kertoo? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 Se ei ole online-versio ja dioja. 893 00:43:30,600 --> 00:43:35,880 >> Olen siis väittävät, että tämä vastaa tätä, tyhmä mainos monta vuotta 894 00:43:35,880 --> 00:43:39,950 sitten, että voisi itse muistaa yksi sen alkuperää. 895 00:43:39,950 --> 00:43:42,740 Joten tämä on esimerkki salauksen tai salausta. 896 00:43:42,740 --> 00:43:46,150 On käynyt ilmi, että jos haluat itse lähettää tietoa tai jakaa 897 00:43:46,150 --> 00:43:49,310 tietoa jonkun turvallisesti, kuin tällaisen viestin, voit 898 00:43:49,310 --> 00:43:50,500 ryntäily kirjaimet. 899 00:43:50,500 --> 00:43:53,170 Mutta yleensä, sanat ovat ei sekoiteta satunnaisesti. 900 00:43:53,170 --> 00:43:56,365 He permutoitu tavalla tai muuttanut jotenkin niin, että - oho. 901 00:43:56,365 --> 00:43:59,040 Se on hauska spoileri seuraavan kerran. 902 00:43:59,040 --> 00:44:04,390 >> Joten voit kartoittaa, mikä on ilmeisesti O B. Huomaa, että linjat ylös 903 00:44:04,390 --> 00:44:05,420 arvo-viisas. 904 00:44:05,420 --> 00:44:07,960 Ilmeisesti r tulee e. 905 00:44:07,960 --> 00:44:14,000 Ilmeisesti F-H-E-R tulee S-U-R-E. Niin se kääntyy pois siellä kartoitus ja 906 00:44:14,000 --> 00:44:18,720 Tässä tapauksessa on tyhmä kartoitus jos joku on tajunnut sitä? 907 00:44:18,720 --> 00:44:21,440 Tämä on jotain kutsutaan Rot 13, Kierrä 13. 908 00:44:21,440 --> 00:44:24,760 Se on typerin salauksen mekanismeja, koska se kirjaimellisesti vain 909 00:44:24,760 --> 00:44:29,160 lisää 13 jokainen kirjeitä, tyhmä siinä mielessä, että jos vain 910 00:44:29,160 --> 00:44:31,890 on vähän vapaa-aikaa kädet ja kynä, tai et vain sitä mieltä, että 911 00:44:31,890 --> 00:44:35,260 läpi pään, voit kokeilla kaikki mahdolliset lisäykset - yksi, kaksi, 912 00:44:35,260 --> 00:44:38,470 kolme, piste, piste, piste, 25 vain kiertää kaikki aakkoset, ja 913 00:44:38,470 --> 00:44:40,860 lopulta, voit selvittää mitä tämä viesti on. 914 00:44:40,860 --> 00:44:43,700 Joten jos et jotain tämän alakoulussa kulkee viestejä 915 00:44:43,700 --> 00:44:46,830 paras ystävä, jos alakoulussa opettaja yksinkertaisesti lukea läpi 916 00:44:46,830 --> 00:44:50,320 viestin ja raa'alla pakotti ratkaisun, olet ehkä saanut 917 00:44:50,320 --> 00:44:52,550 vastauksen, että. 918 00:44:52,550 --> 00:44:54,970 >> Nyt tietenkin, todellisessa maailmassa, salakirjoitus on kehittyneempi. 919 00:44:54,970 --> 00:45:00,120 Tämä on pätkä tekstiä tietokonejärjestelmän, joka on käyttäjätunnukset ja 920 00:45:00,120 --> 00:45:03,630 salasanoja, koska lähes kaikki meidän tehdä, ja tämä on mitä salasanasi saattaa 921 00:45:03,630 --> 00:45:07,260 näyttäisi, jos tallennettu kova ajaa mutta salatussa muodossa. 922 00:45:07,260 --> 00:45:11,050 Tämä ei ole vain kierto kirjeitä, A on B, ja B on C. Tämä on 923 00:45:11,050 --> 00:45:15,620 paljon kehittyneempää, mutta se käyttää mitä yleisesti tunnettu salainen avain 924 00:45:15,620 --> 00:45:16,690 salausta. 925 00:45:16,690 --> 00:45:20,210 Tämä kuva kertoo seuraavat tarina muutaman kuvakkeet. 926 00:45:20,210 --> 00:45:22,250 >> Vasemmalla, meillä on mitä soitamme pelkkää tekstiä. 927 00:45:22,250 --> 00:45:25,420 Kun maailma salauksen, tavallinen teksti on vain alkuperäisen viestin 928 00:45:25,420 --> 00:45:29,050 kirjoitettu Englanti tai ranska tai millään kielellä. 929 00:45:29,050 --> 00:45:32,405 Jos haluat salata sitä, ohitamme se kuvallisesti kautta riippulukko, joten 930 00:45:32,405 --> 00:45:35,580 jotkut sellainen algoritmi, jokin funktio tai ohjelma, joku kirjoitti 931 00:45:35,580 --> 00:45:39,880 että sekoittaa kirjaimet toivottavasti enemmän monimutkaisesti kuin vain lisäämällä 13 932 00:45:39,880 --> 00:45:40,980 kuhunkin niistä. 933 00:45:40,980 --> 00:45:43,780 >> Mitä saat pois, että prosessin Keskellä on nimeltään salatun. 934 00:45:43,780 --> 00:45:44,850 Joten tavallaan seksikäs sana. 935 00:45:44,850 --> 00:45:47,630 Se vain tarkoittaa, se on salattu versio pelkkää tekstiä. 936 00:45:47,630 --> 00:45:52,570 Ja vain jos sinulla on, että sama salaisuus, 13 tai miinus 13, pystytkö 937 00:45:52,570 --> 00:45:54,970 purkaa viestiä vastaan. 938 00:45:54,970 --> 00:45:57,770 >> Joten Harjoitus Kaksi muun muassa voit tehdä jos Hacker 939 00:45:57,770 --> 00:46:01,860 Edition, sinun täytyy kirjoittaa koodia crack nämä salasanat, mietitään 940 00:46:01,860 --> 00:46:05,170 mitä ne olivat ja miten he olivat salattu, vaikka me ei anna sinulle hieman 941 00:46:05,170 --> 00:46:06,460 ohjauksen matkan varrella. 942 00:46:06,460 --> 00:46:09,320 Standard Edition, esittelemme pari salaus-, salaus 943 00:46:09,320 --> 00:46:12,400 mekanismeja, yksi nimeltään Caesar, yksi kutsutaan Vigenere, jotka ovat edelleen 944 00:46:12,400 --> 00:46:16,100 rotaatio salaus jos tulee jotain, B tulee jotain, mutta 945 00:46:16,100 --> 00:46:18,820 sinun täytyy tehdä se ohjelmallisesti koska siellä todellakin olla salaisuus 946 00:46:18,820 --> 00:46:22,840 avain mukana, jotka on tyypillisesti useita tai avainsanan, että vain 947 00:46:22,840 --> 00:46:26,420 lähettäjän ja vastaanottajan näiden Viestien pitäisi ymmärtää. 948 00:46:26,420 --> 00:46:28,660 >> Nyt tämä todella on ruumiillistumia todellisessa maailmassa. 949 00:46:28,660 --> 00:46:32,910 Tämä esimerkiksi on vähän orpo Annien salainen dekooderi rengas, ja sinä 950 00:46:32,910 --> 00:46:35,180 voi itse toteuttaa nämä rotaatio ciphers - 951 00:46:35,180 --> 00:46:37,930 Tulee jotain, B tulee jotain - parilla pyörät, 952 00:46:37,930 --> 00:46:40,840 yksi ulkopuolella, yksi sisäpuolella siten, että jos käännät pyörää tai 953 00:46:40,840 --> 00:46:44,170 rengas, voit itse riviin kirjaimia eri kirjaimia, 954 00:46:44,170 --> 00:46:45,430 saada salainen koodi. 955 00:46:45,430 --> 00:46:48,110 Ja niin kuin jännitysnäytelmä tänään, mitä ajattelin tehdä, on vähän 956 00:46:48,110 --> 00:46:52,170 takaisku, että jos otat TV 24. joulukuuta, voit katsella 957 00:46:52,170 --> 00:46:55,390 Elokuvan loputtomiin varten 24 tuntia peräkkäin. 958 00:46:55,390 --> 00:47:06,030 Mutta tänään, Avaan sen tänne ja antaa meille vain kaksi minuuttia 959 00:47:06,030 --> 00:47:13,493 pedagogisesti asiaa Joulutarina hieman mies nimeltä Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [VIDEOTOISTOSTA] 961 00:47:14,400 --> 00:47:17,420 >> -On se tiedossa iikka että Ralph Parker nimitetään 962 00:47:17,420 --> 00:47:20,650 jäsen Pikku Orphan Annie salaisuus ympyrä ja on oikeutettu 963 00:47:20,650 --> 00:47:23,460 arvosanoin ja hyödyt esiintyviä siihen. 964 00:47:23,460 --> 00:47:25,990 >> -Allekirjoitettu, Pikku Orphan Annie. 965 00:47:25,990 --> 00:47:30,100 Nimikirjoituksellaan, Pierre Andre musteella. 966 00:47:30,100 --> 00:47:34,270 Kunnianosoituksia ja etuja jo iässä yhdeksän. 967 00:47:34,270 --> 00:47:39,440 >> [Huutaminen RADIO] 968 00:47:39,440 --> 00:47:40,770 >> Tule, mennään sen kanssa. 969 00:47:40,770 --> 00:47:44,965 En tarvitse kaikki muu noin salakuljettajia ja merirosvoja. 970 00:47:44,965 --> 00:47:48,270 >> -Kuuntele huomenna yö tehdä seikkailu musta 971 00:47:48,270 --> 00:47:49,650 merirosvolaiva. 972 00:47:49,650 --> 00:47:53,320 Nyt on aika Annien Secret Viesti sinulle jäsenille 973 00:47:53,320 --> 00:47:55,720 salaisen ympyrän. 974 00:47:55,720 --> 00:47:56,580 Muista, lapset. 975 00:47:56,580 --> 00:48:01,720 Vain jäsenet Annien Secret Circle pystyy purkamaan Annien salainen viesti. 976 00:48:01,720 --> 00:48:05,872 Muista, Annie on kiinni sinusta. 977 00:48:05,872 --> 00:48:08,670 Aseta nastat B2. 978 00:48:08,670 --> 00:48:11,000 Tässä on viesti. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -Olen ensimmäinen salaisen kokouksen. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> -Pierre oli suuri ääni tänään. 983 00:48:21,650 --> 00:48:24,830 Voisin kertoa, että illan viesti oli todella tärkeä. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 Se viesti Annie itse. 986 00:48:28,540 --> 00:48:30,086 Muista, älä kerro kenellekään. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 Sekuntia myöhemmin, olen ainoa huone talossa, jossa poika yhdeksän 989 00:48:38,710 --> 00:48:42,668 voisi istua rauhassa ja purkaa. 990 00:48:42,668 --> 00:48:47,628 Aha, B. menin seuraavaan. 991 00:48:47,628 --> 00:48:53,060 E. Ensimmäinen sana on "olla." S. Se oli tulossa helpompaa nyt. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 Se on R. 994 00:48:55,940 --> 00:48:56,900 >> -Tule, Ralphie. 995 00:48:56,900 --> 00:48:57,860 Minun on mentävä. 996 00:48:57,860 --> 00:48:59,780 >> -Tulen kohta alas, Ma. 997 00:48:59,780 --> 00:49:01,030 Gee hurahtaa. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. O. Muista. 1000 00:49:08,220 --> 00:49:09,500 Muista mitä? 1001 00:49:09,500 --> 00:49:11,660 Mikä oli Pikku Orphan Annie yrittää sanoa? 1002 00:49:11,660 --> 00:49:12,844 Muista mitä? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie, Randy on mentävä. 1004 00:49:14,732 --> 00:49:16,148 Voisitko tulla ulos? 1005 00:49:16,148 --> 00:49:17,092 >> -Okei, Ma. 1006 00:49:17,092 --> 00:49:18,510 Tulen ulos. 1007 00:49:18,510 --> 00:49:20,270 >> -Aloin lähempänä nyt. 1008 00:49:20,270 --> 00:49:21,823 Jännitys oli kauhea. 1009 00:49:21,823 --> 00:49:23,045 Mikä se oli? 1010 00:49:23,045 --> 00:49:26,510 Planeetan kohtalo voi vaakalaudalla. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie, Randy mentävä. 1012 00:49:28,985 --> 00:49:32,680 >> -Tulen kohta ulos itkeä ääneen. 1013 00:49:32,680 --> 00:49:33,956 >> -Melkein. 1014 00:49:33,956 --> 00:49:35,140 Sormet lensi. 1015 00:49:35,140 --> 00:49:36,880 Mieleni oli teräs ansa. 1016 00:49:36,880 --> 00:49:38,010 Jokainen pore värähtelemään. 1017 00:49:38,010 --> 00:49:39,878 Se oli melkein selvä. 1018 00:49:39,878 --> 00:49:43,210 Kyllä, kyllä, kyllä, kyllä, kyllä. 1019 00:49:43,210 --> 00:49:49,030 >> -Muista juoda Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Crummy kaupallinen? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 Paskiainen. 1025 00:50:00,694 --> 00:50:01,900 >> [END VIDEOTOISTOSTA] 1026 00:50:01,900 --> 00:50:04,260 >> KAIUTTIMEN 1: Tämä on CS50, ja että on ongelma asettaa kaksi. 1027 00:50:04,260 --> 00:50:06,305 Nähdään ensi viikolla. 1028 00:50:06,305 --> 00:50:08,800 >> SPEAKER 2: Seuraavalla CS50, tämä tapahtuu. 1029 00:50:08,800 --> 00:50:11,060 >> SPEAKER 1: Niin yksi aihe meillä ei katsoin tähän mennessä on 1030 00:50:11,060 --> 00:50:12,220 että funktio-osoittimia. 1031 00:50:12,220 --> 00:50:14,540 Nyt toiminto osoitin on vain osoite julkisen 1032 00:50:14,540 --> 00:50:17,000 toiminto, mutta aivan kuten - 1033 00:50:17,000 --> 00:50:18,250 poika - 1034 00:50:18,250 --> 00:50:19,670