1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J MALAN: Kaikki oikea, joten tämä on CS50. 3 00:00:13,060 --> 00:00:15,040 Ja tämä on selvästi perjantaina. 4 00:00:15,040 --> 00:00:16,850 Ja tämä on viikon lopussa yhden. 5 00:00:16,850 --> 00:00:21,020 Joten ehkä muistatte, että jäimme, viime kerralla, jossa jännitysnäytelmä tapaisena. 6 00:00:21,020 --> 00:00:25,020 Jolloin me paljastaa tätä valhetta, että ei mitä olet opettanut kasvussa 7 00:00:25,020 --> 00:00:31,610 up, 1 jaettuna 10 ei, vuonna Itse asiassa, 0,1 tai 0,100 tai 0,10000. 8 00:00:31,610 --> 00:00:35,270 Itse asiassa, jos me kokoaa ohjelma, kuten teimme eilen, kanssa, 9 00:00:35,270 --> 00:00:39,770 tehdä epätarkkuus, ja sitten tehdä piste, slash, epätarkkuuden, 10 00:00:39,770 --> 00:00:43,600 saimme tietää, että tämä on mitä 1 jaettuna 10 todellisuudessa on. 11 00:00:43,600 --> 00:00:46,140 Joten se ei ole oikeastaan ​​aika tapaus. 12 00:00:46,140 --> 00:00:49,014 Mutta tämä ei vihje jossain perusoikeuksien rajoittaminen tietokoneita. 13 00:00:49,014 --> 00:00:50,930 Ja todellakin, joukossa asioita aiomme tehdä 14 00:00:50,930 --> 00:00:55,130 tänään on katsomaan miksi tämä on tapahtunut, mitä seurauksia tällä on, 15 00:00:55,130 --> 00:00:58,430 miten ihmiskunta on epäonnistunut ymmärtää tämä erittäin 16 00:00:58,430 --> 00:01:00,410 vakava situations-- tulos, joka 17 00:01:00,410 --> 00:01:03,141 on ollut varsin traaginen ja expensive-- ja myös 18 00:01:03,141 --> 00:01:04,849 katsomaan miten me voi todella puolustaa 19 00:01:04,849 --> 00:01:06,530 vastaan ​​tällaisia ​​rajoituksia. 20 00:01:06,530 --> 00:01:10,940 Niin intuitiivisesti, ehkä, miksi on 1 jaettuna 10, 21 00:01:10,940 --> 00:01:15,480 mukaan minun tietokone täällä, ei vain 1/10, 0,10? 22 00:01:15,480 --> 00:01:15,980 Joo. 23 00:01:15,980 --> 00:01:16,530 Mitä mieltä olet? 24 00:01:16,530 --> 00:01:17,860 >> Yleisöstä: kantaluku on erilainen? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J MALAN: mikä on? 26 00:01:18,550 --> 00:01:19,730 Voi, kantaluku on erilainen? 27 00:01:19,730 --> 00:01:20,720 Joten ei aivan. 28 00:01:20,720 --> 00:01:23,200 Se on itse asiassa enemmän olennainen laitteisto. 29 00:01:23,200 --> 00:01:23,980 Muut ajatuksia? 30 00:01:23,980 --> 00:01:24,584 Joo. 31 00:01:24,584 --> 00:01:26,750 Yleisöstä: He edustavat numerot toisin? 32 00:01:26,750 --> 00:01:27,880 DAVID J MALAN: Niin they-- Oikea. 33 00:01:27,880 --> 00:01:29,338 Ne edustavat numerot toisin. 34 00:01:29,338 --> 00:01:30,700 Epätarkasti, ilmeisesti. 35 00:01:30,700 --> 00:01:33,190 Jotta is-- No, eri tavoin kuin mihin? 36 00:01:33,190 --> 00:01:34,490 Tai keneltä? 37 00:01:34,490 --> 00:01:35,050 Meiltä? 38 00:01:35,050 --> 00:01:35,966 Yleisössä: Joo. 39 00:01:35,966 --> 00:01:38,930 He eivät käytä desimaalin järjestelmä [kuulumattomiin]. 40 00:01:38,930 --> 00:01:39,680 DAVID J MALAN: OK. 41 00:01:39,680 --> 00:01:41,560 Joten siinä mielessä, ne eivät Käytä desimaalin järjestelmää. 42 00:01:41,560 --> 00:01:43,720 Alla huppu, kaikki on todellakin binary, 43 00:01:43,720 --> 00:01:45,510 ja, joka liittyy itse asiassa. 44 00:01:45,510 --> 00:01:48,135 Mutta se on vieläkin yksinkertaisempi selitystä kuin että. 45 00:01:48,135 --> 00:01:48,635 Joo. 46 00:01:48,635 --> 00:01:49,970 >> Yleisöstä: He on vain niin monta bittiä. 47 00:01:49,970 --> 00:01:52,370 Ne voi tallentaa vain tiettyyn määrin, kuten kanssa desimaaleja. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J MALAN: Joo. 49 00:01:52,780 --> 00:01:54,420 Tämä on mitä todella saada sitä. 50 00:01:54,420 --> 00:01:57,180 On käynyt ilmi, että tietokoneet tyypillisesti, tulee aina vain 51 00:01:57,180 --> 00:01:59,690 käyttää rajallinen määrä tietoa edustaa jotain. 52 00:01:59,690 --> 00:01:59,870 Oikea? 53 00:01:59,870 --> 00:02:02,110 Loppujen lopuksi meillä on vain kiinteä määrän kiintolevytilaa. 54 00:02:02,110 --> 00:02:04,210 Meillä vain on kiinteä summa RAM tai tietokoneen muistiin. 55 00:02:04,210 --> 00:02:06,251 Ja jos sinulla on vain kiinteä määrä jotain, 56 00:02:06,251 --> 00:02:09,611 varmasti et voi itse laskea äärettömään tai useita haluat. 57 00:02:09,611 --> 00:02:11,610 Te, tavallaan, on valita, mitä alue 58 00:02:11,610 --> 00:02:13,220 arvojen aiot tukea. 59 00:02:13,220 --> 00:02:18,100 >> Ja niin esimerkiksi viikon tai kaksi sitten, kun puhuimme ASCII, 60 00:02:18,100 --> 00:02:21,610 ja puhuimme 8 bittiä, tai tavun, niin sanoakseni, 61 00:02:21,610 --> 00:02:26,360 suurin numero voisimme edustavat 8 bittiä oli mitä? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Ja me voi edustaa 256 kokonaisarvot mutta ei jos käytämme yhden niistä 64 00:02:31,850 --> 00:02:34,190 on 0-- No, mutta jos me viettää yksi heistä 0, 65 00:02:34,190 --> 00:02:36,830 sitten suurin numero on, tietenkin, 255. 66 00:02:36,830 --> 00:02:39,410 >> Joten se kääntyy pois, että tämä on Tässäkin tapauksessa, tässä yhteydessä. 67 00:02:39,410 --> 00:02:42,350 Aloimme puhua, viime kerralla, noin liukulukuina, joka 68 00:02:42,350 --> 00:02:44,640 eroavat kokonaislukuja, vuonna että heillä desimaalipilkkua 69 00:02:44,640 --> 00:02:47,056 ja toivottavasti joitakin numeroita sen jälkeen, mutta ne ovat liian. 70 00:02:47,056 --> 00:02:51,730 Tietokone on vain tyypillisesti menossa käyttää 32 bittiä, ehkä 64 bittiä 71 00:02:51,730 --> 00:02:53,497 edustamaan liukulukuarvoksi. 72 00:02:53,497 --> 00:02:56,080 Joten vaikka olemme kasvaneet matematiikan ja tietäen 73 00:02:56,080 --> 00:02:58,750 että voit ehdottomasti olla ääretön määrä numeroita 74 00:02:58,750 --> 00:03:01,650 desimaalipilkun jälkeen, ei jos sinulla on rajallinen muisti. 75 00:03:01,650 --> 00:03:03,930 Te, tavallaan, on pyöreä, tai valitaan tarkkaan 76 00:03:03,930 --> 00:03:05,346 numerot aiot edustaa. 77 00:03:05,346 --> 00:03:08,710 Ja niin voit ajatella, tavallaan, mikä on tietokoneen lähin 78 00:03:08,710 --> 00:03:14,050 lähentämisestä arvoon 1/10 että se voi saada, vain 32 tai niin bittiä. 79 00:03:14,050 --> 00:03:15,300 Ja se ei ole vain kymmenesosa. 80 00:03:15,300 --> 00:03:19,820 >> Esimerkiksi, jos muutan tämän 1/3, mikä mielestämme on jopa helpompaa. 81 00:03:19,820 --> 00:03:21,300 Joten 1 jaettuna 3. 82 00:03:21,300 --> 00:03:22,355 Saanen tallentaa tiedoston. 83 00:03:22,355 --> 00:03:24,680 Anna minun mennä eteenpäin ja kääntää se. 84 00:03:24,680 --> 00:03:25,820 Ja haluan uudelleen käyttää sitä. 85 00:03:25,820 --> 00:03:30,000 Tässäkin, ilmeisesti, kolmasosa ei ole 0,3 ja sitten ääretön määrä 3: n 86 00:03:30,000 --> 00:03:30,770 jälkeen. 87 00:03:30,770 --> 00:03:32,540 Sinulla on tämä epätarkkuus lopussa. 88 00:03:32,540 --> 00:03:35,544 Joten me ihmiset ovat oikein, ja mitä olet oppinut on, itse asiassa, oikea, 89 00:03:35,544 --> 00:03:37,460 mutta olemme törmäämättä ylös vastaan ​​joitakin rajoituksia. 90 00:03:37,460 --> 00:03:39,420 >> Ja mitä ajattelin olimme tehdä tänään, on alkaa 91 00:03:39,420 --> 00:03:42,190 tarkastelemalla, rehellisesti, traagisia seurauksia 92 00:03:42,190 --> 00:03:45,490 joskus, kun ihmiskunta ei aivan toteuttaa 93 00:03:45,490 --> 00:03:48,460 Tämän todellisuuden ja nämä rajoitukset. 94 00:03:48,460 --> 00:03:52,360 Ja näemme sarjan vinjettien alkaen History Channel, joka vie 95 00:03:52,360 --> 00:03:53,950 Katso, miten asiat ovat menneet pieleen. 96 00:03:53,950 --> 00:03:56,340 Se on noin 8 minuuttia pitkä, ja me palaamme jälkeen 97 00:03:56,340 --> 00:03:59,439 ja katsomaan tarkalleen mitä muuta voi mennä pieleen. 98 00:03:59,439 --> 00:04:00,605 Jos voisimme himmentää lights-- 99 00:04:00,605 --> 00:04:02,350 >> [VIDEOTOISTOSTA] 100 00:04:02,350 --> 00:04:06,310 >> -Tietotekniikka, Olemme kaikki tulevat hyväksymään usein turhauttavaa ongelmia, 101 00:04:06,310 --> 00:04:07,750 mennä heidän kanssaan. 102 00:04:07,750 --> 00:04:11,370 Bugs, viruksia, ja ohjelmistot glitches ovat pieniä hintoja 103 00:04:11,370 --> 00:04:13,230 maksaa mukavuutta. 104 00:04:13,230 --> 00:04:17,519 Mutta korkean teknologian ja nopea sotilas- ja avaruusohjelma sovelluksia, 105 00:04:17,519 --> 00:04:22,130 pienin ongelma voi suurennetaan osaksi katastrofi. 106 00:04:22,130 --> 00:04:27,750 4. kesäkuuta 1996 tutkijat valmistettu käynnistää miehittämättömän Ariane 5 raketti. 107 00:04:27,750 --> 00:04:29,890 Se kantoi tieteellinen satelliittien suunniteltu 108 00:04:29,890 --> 00:04:33,030 luoda tarkasti, miten Maan magneettikenttä toimii vuorovaikutuksessa 109 00:04:33,030 --> 00:04:35,600 aurinko tuulet. 110 00:04:35,600 --> 00:04:37,930 Raketti rakennettiin Euroopan avaruusjärjestö 111 00:04:37,930 --> 00:04:41,620 ja nostetaan pois sen laitos rannikolla Ranskan Guayana. 112 00:04:41,620 --> 00:04:44,924 >> -Ja Noin 30 sekunnin lento, he ensin 113 00:04:44,924 --> 00:04:46,340 huomasi jotain oli vialla. 114 00:04:46,340 --> 00:04:49,280 Että suuttimet kääntyvä tavalla he todella pitäisi. 115 00:04:49,280 --> 00:04:53,042 Noin 40 sekunnin lennon, selvästi ajoneuvon oli vaikeuksissa, 116 00:04:53,042 --> 00:04:55,250 ja silloin he tekivät päätös tuhota sen. 117 00:04:55,250 --> 00:04:58,970 Range Safety Officer kanssa valtava sisua painetaan nappia, 118 00:04:58,970 --> 00:05:03,940 räjäytti raketti ennen kuin se tullut vaaraa yleiselle turvallisuudelle. 119 00:05:03,940 --> 00:05:06,600 >> -Tämä Oli neito Voyage of Ariane 5, 120 00:05:06,600 --> 00:05:09,270 ja sen hävittäminen otti aseta koska virhe 121 00:05:09,270 --> 00:05:10,992 upotettu raketti ohjelmisto. 122 00:05:10,992 --> 00:05:12,700 -The Ongelma Ariane oli, että 123 00:05:12,700 --> 00:05:15,370 oli määrä, joka tarvitaan 64 bittiä ilmaista, 124 00:05:15,370 --> 00:05:18,150 ja hän halusi muuntaa se 16 bittinen numero. 125 00:05:18,150 --> 00:05:21,160 Ne olettaa, että numero ei koskaan tule olemaan kovin suuri, 126 00:05:21,160 --> 00:05:25,020 että useimmat niistä numeroiden 64 bittinen numero oli 0 n. 127 00:05:25,020 --> 00:05:26,310 He olivat väärässä. 128 00:05:26,310 --> 00:05:28,680 >> -edellä Kyvyttömyys yhden ohjelma hyväksyä 129 00:05:28,680 --> 00:05:32,820 sellainen määrä tuottaman toinen oli juureen vika. 130 00:05:32,820 --> 00:05:37,190 Ohjelmistojen kehittäminen oli tullut erittäin kallista osa uutta teknologiaa. 131 00:05:37,190 --> 00:05:40,760 Ariane 4 raketti oli ollut hyvin onnistuu, niin paljon ohjelmiston 132 00:05:40,760 --> 00:05:43,990 luotu se oli myös käytetty Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Perusongelma oli se, että Ariane 5 oli nopeampi, kiihtyi nopeammin. 134 00:05:49,750 --> 00:05:53,000 Ja ohjelmisto ei ollut osuus siitä. 135 00:05:53,000 --> 00:05:56,330 >> -The Tuhoaminen raketti oli valtava taloudellinen katastrofi, 136 00:05:56,330 --> 00:05:59,670 kaikki johtuu minuutin ohjelmistovirhe. 137 00:05:59,670 --> 00:06:01,990 Mutta tämä ei ollut ensimmäinen aika tietojen muuntaminen ongelmat 138 00:06:01,990 --> 00:06:05,310 oli vaivannut moderni raketti teknologiaa. 139 00:06:05,310 --> 00:06:08,300 >> In 1991, jossa alku Ensimmäisen Persianlahden sodan, 140 00:06:08,300 --> 00:06:10,650 Patriot ohjus kokenut samantyyppinen 141 00:06:10,650 --> 00:06:12,650 numero muuntaminen ongelma. 142 00:06:12,650 --> 00:06:15,620 Tämän seurauksena 28 ihmistä, 28 amerikkalaista sotilasta 143 00:06:15,620 --> 00:06:18,440 kuoli ja noin 100 muuta haavoittui, 144 00:06:18,440 --> 00:06:21,900 kun Patriot, joka piti suojaamaan saapuvan scuds, 145 00:06:21,900 --> 00:06:24,630 epäonnistui ampua ohjus. 146 00:06:24,630 --> 00:06:29,440 >> -Kun Irak hyökkäsi Kuwaitiin ja Amerikassa käynnisti Desert Storm vuoden 1991 alussa, 147 00:06:29,440 --> 00:06:33,800 Patriot ohjus akkuja lähetettiin suojella Saudi-Arabia ja Israelin 148 00:06:33,800 --> 00:06:37,000 Irakin Scud ohjus hyökkäyksiä. 149 00:06:37,000 --> 00:06:40,610 Patriot on yhdysvaltalainen, keskipitkän kantaman pinta-ilmaan järjestelmä 150 00:06:40,610 --> 00:06:43,010 valmistanut Raytheon yhtiön. 151 00:06:43,010 --> 00:06:49,080 >> -The Koko Patriot torjuntahävittäjä, itse, on noin, noin 20 jalkaa pitkä. 152 00:06:49,080 --> 00:06:51,250 Ja se painaa noin 2000 kiloa. 153 00:06:51,250 --> 00:06:55,195 Ja se harjoittaa taistelukärjen on about-- Minusta se on noin 150 kiloa. 154 00:06:55,195 --> 00:06:59,500 Ja taistelukärjen, itse, on korkea räjähtävä, 155 00:06:59,500 --> 00:07:02,570 joka on fragmentteja sen ympärille. 156 00:07:02,570 --> 00:07:06,890 Kotelo taistelukärjen on suunniteltu toimimaan kuten Buckshot. 157 00:07:06,890 --> 00:07:09,130 >> -The Ohjuksia kuljettaa, 4 per kontti, 158 00:07:09,130 --> 00:07:12,080 ja kuljetetaan puoliperävaunu. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot anti ohjus järjestelmä ulottuu vähintään 20 vuotta. 160 00:07:19,100 --> 00:07:22,320 Se oli alun perin suunniteltu kuten ilmapuolustuksen ohjus 161 00:07:22,320 --> 00:07:24,180 ampua alas vihollisen lentokoneita. 162 00:07:24,180 --> 00:07:27,860 Ensimmäisessä Persianlahden sodan, kun että sota tuli mukaan, 163 00:07:27,860 --> 00:07:32,745 armeija halusi käyttää sitä ampua alas scuds, ei lentokoneet. 164 00:07:32,745 --> 00:07:36,150 Irakin Force ei ollut niin suuri ongelma, 165 00:07:36,150 --> 00:07:39,110 mutta armeija oli huolissaan scuds. 166 00:07:39,110 --> 00:07:42,340 Ja niin he yrittivät päivittää Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Vihollinen ohjus kulkee Mach viisi 168 00:07:44,760 --> 00:07:47,250 tultaisiin riittävän haastava. 169 00:07:47,250 --> 00:07:50,000 Mutta kun Patriot kiidätettiin käyttöön, 170 00:07:50,000 --> 00:07:54,030 armeija ei ollut tietoinen Irakin muutos, joka teki 171 00:07:54,030 --> 00:07:56,840 niiden scuds lähes mahdotonta lyödä. 172 00:07:56,840 --> 00:08:01,020 >> Mitä tapahtui, on scuds että oli tulossa, oli epävakaa, 173 00:08:01,020 --> 00:08:02,310 he olivat huojuu. 174 00:08:02,310 --> 00:08:05,140 Syy tähän, oli irakilaisia, jotta 175 00:08:05,140 --> 00:08:09,450 päästä 600km ulos 300 km kantaman ohjusten, 176 00:08:09,450 --> 00:08:12,930 otti paino ulos edessä taistelukärjen ja teki ydinpommi kevyempi. 177 00:08:12,930 --> 00:08:17,710 Joten nyt, Patriot yrittää tulla on scud, ja suurimman osan ajasta, 178 00:08:17,710 --> 00:08:21,700 ylivoimainen enemmistö aika, se vain lentää viilettää. 179 00:08:21,700 --> 00:08:25,700 >> -Kun Patriot verkonhaltijoiden tajusi Patriot jäi sen tavoite, 180 00:08:25,700 --> 00:08:29,790 ne räjähti Patriot taistelukärjen, vältetään mahdolliset uhreja, jos se 181 00:08:29,790 --> 00:08:32,380 annettiin pudota maahan. 182 00:08:32,380 --> 00:08:36,340 >> -Se Oli mitä useimmat ihmiset näkivät, näitä suuria tulipalloja taivaalla, 183 00:08:36,340 --> 00:08:41,289 ja ymmärtää väärin kuuntelevansa Scud ydinkärkien. 184 00:08:41,289 --> 00:08:43,590 Vaikka yöllä taivas, Patriots ilmestyi 185 00:08:43,590 --> 00:08:47,020 olla onnistuneesti tuhota scuds kello Dhahran, 186 00:08:47,020 --> 00:08:49,730 ei voisi olla virhe sen toiminnasta. 187 00:08:49,730 --> 00:08:53,990 Siellä Patriot tutkajärjestelmän kadottaa saapuvasta Scud, 188 00:08:53,990 --> 00:08:56,650 ja ei koskaan käynnistetty, koska ohjelmisto virhe. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Se oli israelilaisten joka ensimmäisenä löysi että mitä kauemmin järjestelmä oli, 191 00:09:04,100 --> 00:09:07,510 enemmän aikaa ristiriita tuli, koska kello sulautettujen 192 00:09:07,510 --> 00:09:09,490 järjestelmän tietokoneelle. 193 00:09:09,490 --> 00:09:12,670 >> -Noin 2 viikkoa ennen tragedia Dhahran, 194 00:09:12,670 --> 00:09:15,010 israelilaiset ilmoitetaan puolustusministeriön, 195 00:09:15,010 --> 00:09:17,940 että järjestelmä oli menettää aikaa, että noin 8 tuntia käynnissä, 196 00:09:17,940 --> 00:09:21,410 he huomasivat, että järjestelmä oli tulossa huomattavasti epätarkempi. 197 00:09:21,410 --> 00:09:25,290 Puolustusministeriö vastasi kertoo kaikki Patriot paristot 198 00:09:25,290 --> 00:09:28,070 että ei jätä järjestelmät on pitkään. 199 00:09:28,070 --> 00:09:29,960 He koskaan sanonut mitä pitkään oli. 200 00:09:29,960 --> 00:09:30,460 8 tuntia? 201 00:09:30,460 --> 00:09:30,960 10 tuntia? 202 00:09:30,960 --> 00:09:31,870 1000 tuntia? 203 00:09:31,870 --> 00:09:33,734 Kukaan ei tiennyt. 204 00:09:33,734 --> 00:09:35,650 -The Patriot akku sijoitettiin kasarmin 205 00:09:35,650 --> 00:09:40,410 klo Dhahran, ja sen puutteellinen sisäinen kello, oli ollut yli 100 tuntia 206 00:09:40,410 --> 00:09:43,041 yönä 25. helmikuuta. 207 00:09:43,041 --> 00:09:47,416 >> -Se Seurataan aika tarkkuus noin 1/10 toisen. 208 00:09:47,416 --> 00:09:49,290 Nyt 1/10 toinen on mielenkiintoinen numero 209 00:09:49,290 --> 00:09:52,700 koska se ei voi olla ilmaistuna binary, tarkalleen. 210 00:09:52,700 --> 00:09:54,820 Mikä tarkoittaa, se ei voi ilmaistaan, tarkalleen, 211 00:09:54,820 --> 00:09:57,420 missä tahansa moderni digitaalisen tietokoneen. 212 00:09:57,420 --> 00:10:01,460 On vaikea uskoa, mutta käyttää tätä esimerkkinä. 213 00:10:01,460 --> 00:10:03,520 Otetaan numero, 1/3. 214 00:10:03,520 --> 00:10:07,110 1/3 ei voida ilmaista desimaali, tarkalleen. 215 00:10:07,110 --> 00:10:11,490 1/3 on 0,333 jatkunut ääretön. 216 00:10:11,490 --> 00:10:15,486 Ei ole tapa tehdä se, jossa absoluuttinen tarkkuus, vuonna desimaalin. 217 00:10:15,486 --> 00:10:18,360 Juuri samanlaista ongelma tapahtui Patriot. 218 00:10:18,360 --> 00:10:22,510 Kauemmin järjestelmä juoksi, huonompi aika virhe tuli. 219 00:10:22,510 --> 00:10:28,420 >> -Kun 100 käyttötunnin, virhe ajoissa oli vain noin 1/3 toisen. 220 00:10:28,420 --> 00:10:31,830 Mutta suhteen kohdistaminen ohjus kulkee Mach 5, 221 00:10:31,830 --> 00:10:35,890 se johti seuranta virhe yli 600 metriä. 222 00:10:35,890 --> 00:10:38,970 Olisi kohtalokas virhe että sotilaat Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> Mitä tapahtui, on Scud lanseeraus oli havaita varhaisen varoituksen satelliitteja, 224 00:10:45,035 --> 00:10:48,930 ja ne uutta, että Scud oli tulossa niiden yleistä suuntaa. 225 00:10:48,930 --> 00:10:51,170 He eivät tiedä, missä se oli tulossa. 226 00:10:51,170 --> 00:10:53,990 >> -Se Oli nyt jopa tutka komponentti Patriot järjestelmä, 227 00:10:53,990 --> 00:10:58,520 puolustaa Dhahran, paikantaa ja pitää kirjaa saapuvan vihollisen ohjus. 228 00:10:58,520 --> 00:10:59,690 >> -The Tutka oli erittäin fiksu. 229 00:10:59,690 --> 00:11:01,710 Se todella seurata asema Scud 230 00:11:01,710 --> 00:11:04,040 ja sitten ennustaa missä se todennäköisesti olisi, 231 00:11:04,040 --> 00:11:06,140 seuraavan kerran, tutka lähetti pulssi ulos. 232 00:11:06,140 --> 00:11:07,660 Jota kutsuttiin alue portti. 233 00:11:07,660 --> 00:11:11,870 >> -Sitten, Kun Patriot reagoi tarpeeksi aikaa on 234 00:11:11,870 --> 00:11:16,280 välitetään mennä takaisin ja tarkista seuraava paikka tämä havaitaan esine, 235 00:11:16,280 --> 00:11:17,280 se menee takaisin. 236 00:11:17,280 --> 00:11:21,690 Joten kun se meni takaisin väärään paikka, se sitten ei näe mitään esinettä 237 00:11:21,690 --> 00:11:25,230 ja se päättää, että ei ollut esine, se oli väärä tunnistus, 238 00:11:25,230 --> 00:11:26,650 ja laskee radan. 239 00:11:26,650 --> 00:11:29,690 Saapuvan Scud katosi tutkanäytöltä, 240 00:11:29,690 --> 00:11:32,670 ja sekuntia myöhemmin, se lyönyt osaksi kasarmi. 241 00:11:32,670 --> 00:11:38,100 Scud tappoi 28 ja oli viimeinen yksi potkut aikana ensimmäisen Persianlahden sodan. 242 00:11:38,100 --> 00:11:43,460 Traagisesti, päivitetty ohjelmisto saapui Dhahran seuraavana päivänä. 243 00:11:43,460 --> 00:11:46,150 Ohjelmisto virhe oli vahvistettu, sulkeminen 244 00:11:46,150 --> 00:11:48,940 yksi luku vaikeuksissa historia Patriot ohjus. 245 00:11:48,940 --> 00:11:50,220 >> [Lopeta toisto] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J MALAN: niin me katsomaan joitakin samankaltaisia ​​rajoituksia vain vähän. 247 00:11:54,340 --> 00:11:58,470 Mutta ensimmäinen, katsotaanpa siirtyminen muutaman FYI on. 248 00:11:58,470 --> 00:12:01,575 Joten one-- tänä viikonloppuna, siellä on Super kohdat, 249 00:12:01,575 --> 00:12:04,200 joiden on tarkoitus syrjäyttää säännöllistä osiin, jotka 250 00:12:04,200 --> 00:12:05,460 käynnistyy viikon kuluttua. 251 00:12:05,460 --> 00:12:08,204 Tutustu CS50 verkkosivuilla lisätietoja näistä. 252 00:12:08,204 --> 00:12:11,120 Ne myös kuvattiin ja suoratoistona elää niille estynyt. 253 00:12:11,120 --> 00:12:12,980 Harjoitus 1 on Tietenkin verkkosivuilla jo, 254 00:12:12,980 --> 00:12:15,105 ja me katsomaan että vain vähän. 255 00:12:15,105 --> 00:12:18,350 Ja virka liian ryhtyy aseta maanantaista torstaihin. 256 00:12:18,350 --> 00:12:20,960 >> Joten tämä oli kaikkein kanoninen ohjelma tarkastelimme viime kerralla. 257 00:12:20,960 --> 00:12:23,590 Se on kuin yksinkertaisin ohjelmalla voit kirjoittaa C, 258 00:12:23,590 --> 00:12:25,250 ja sekin on hieman rohkea väite. 259 00:12:25,250 --> 00:12:25,750 Oikea? 260 00:12:25,750 --> 00:12:28,070 Koska siellä on paljon näennäisestä monimutkaisuus tämän. 261 00:12:28,070 --> 00:12:30,445 Joten ottaa vilkaista mitä jotkut näistä tekijöistä 262 00:12:30,445 --> 00:12:33,080 olivat ja sitten yrittää tarjota henkinen malli miten 263 00:12:33,080 --> 00:12:35,710 nämä yksinkertaisin ohjelmien työtä, ja sitten aloitamme 264 00:12:35,710 --> 00:12:38,050 tarkastella asioita yhä monimutkaisemmaksi. 265 00:12:38,050 --> 00:12:41,280 Joten tämä linja tässä korosti nyt, keltainen, mitä sanomme, viime kerralla, 266 00:12:41,280 --> 00:12:43,200 että tämä tekee meille? 267 00:12:43,200 --> 00:12:45,220 Mikä tarkoitus se palvelee? 268 00:12:45,220 --> 00:12:46,984 Kuka tahansa kauemmaksi? 269 00:12:46,984 --> 00:12:47,483 Joo. 270 00:12:47,483 --> 00:12:48,649 >> Yleisöstä: [äänetön] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J MALAN: Hyvä. 273 00:12:51,704 --> 00:12:53,537 Joten se antaa sinulle pääsyn komentoihin, tai katsotaanpa 274 00:12:53,537 --> 00:12:56,750 soittaa heille toimintoja, että joku muu kirjoitti, että ilmoitetaan, 275 00:12:56,750 --> 00:12:58,350 niin sanotusti jonkin muun tiedoston. 276 00:12:58,350 --> 00:13:02,370 Joten näemme mitä .h tiedosto on vs. .c tiedoston, lopulta. 277 00:13:02,370 --> 00:13:04,710 Mutta nyt, vain tietää että printf, esimerkiksi, 278 00:13:04,710 --> 00:13:08,370 on yksi toimintoja, jotka ovat olleet ilmoitettu jonkin muun tiedoston, jonnekin 279 00:13:08,370 --> 00:13:12,930 muualla pilvi kiintolevylle että pystymme käyttämään printf ja käyttää sitä 280 00:13:12,930 --> 00:13:15,240 ilman keksiä pyörän itse. 281 00:13:15,240 --> 00:13:16,930 Samaan aikaan, tärkein. 282 00:13:16,930 --> 00:13:19,690 Mikä oli analoginen tärkeimpien, viime viikolla? 283 00:13:19,690 --> 00:13:20,190 Joo. 284 00:13:20,190 --> 00:13:21,460 >> Yleisöstä: Vihreä lippu napsautetaan. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J MALAN: Joo. 286 00:13:21,740 --> 00:13:23,490 Scratch: n, kun vihreä lippu napsautetaan. 287 00:13:23,490 --> 00:13:25,560 Se on kuin palapelin pala että potkuja asiat pois. 288 00:13:25,560 --> 00:13:28,306 Ja niin samoin tekivät maailma päätti joitakin vuosia sitten, että C, 289 00:13:28,306 --> 00:13:30,930 ja joukko muita kieliä, jos haluat kirjoittaa ohjelma, 290 00:13:30,930 --> 00:13:33,410 ensimmäinen toiminto on kutsua, tärkein. 291 00:13:33,410 --> 00:13:34,641 Ja se on näyttää tältä. 292 00:13:34,641 --> 00:13:36,640 Mutta tulemme takaisin, toisen kerran, mitä, int, 293 00:13:36,640 --> 00:13:38,690 ja, mitätön, tarkoittaa tässä yhteydessä. 294 00:13:38,690 --> 00:13:42,860 Nyt aaltosulkeita ovat ystävällisiä samankaltaisten Scratch n palapelin pala muoto 295 00:13:42,860 --> 00:13:45,080 joka kiteyttää jotkut rivien. 296 00:13:45,080 --> 00:13:47,070 Ja joukossa viivoille täällä, on tämä yksi täällä. 297 00:13:47,070 --> 00:13:51,610 printf on elin, jonka tehtävänä on elämä on tulostaa muotoillun merkkijonon. 298 00:13:51,610 --> 00:13:55,010 Ja alustettu, tarkoitan sinua voi kytkeä paikkamerkki arvojen, 299 00:13:55,010 --> 00:13:58,360 ja voit määrittää, kuinka monta desimaalin pistettä, kuinka monta numeroa tulostaa 300 00:13:58,360 --> 00:14:00,040 jälkeen desimaalipilkun ja vastaavat. 301 00:14:00,040 --> 00:14:05,040 Ja printf, tietenkin, kestää yhden tai enemmän väitteitä tai parametreja, 302 00:14:05,040 --> 00:14:06,770 muuten tunnetaan, yksinkertaisemmin, tuloina. 303 00:14:06,770 --> 00:14:09,230 >> Joten printf, kuten paljon toiminnot, vie tulot. 304 00:14:09,230 --> 00:14:12,730 Ja ne tulot ovat omaksuneet kahden suluissa täällä. 305 00:14:12,730 --> 00:14:15,180 Ja sisältä ne on yksi panos. 306 00:14:15,180 --> 00:14:18,600 Se on merkkijono, kuten olemme sitä kutsui, joka on vain merkkijono, 307 00:14:18,600 --> 00:14:22,310 kuten sana tai lause, tai koko essee jopa, välillä lainausmerkkeihin. 308 00:14:22,310 --> 00:14:25,712 Ja se mitä tulee vaikuttamaan käyttäytyminen Printf, koska tietenkin, 309 00:14:25,712 --> 00:14:27,170 se on vain yleinen tulostustoimintoa. 310 00:14:27,170 --> 00:14:29,600 Se ei tule tietää, mitä tulostaa, ellet kerro sitä. 311 00:14:29,600 --> 00:14:31,000 Ja sitten, jotkut pikkuseikat. 312 00:14:31,000 --> 00:14:34,056 Mitä sanomme tämä outo symbolijonon on? 313 00:14:34,056 --> 00:14:34,556 Joo. 314 00:14:34,556 --> 00:14:35,410 >> Yleisöstä: Uusi linja. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J MALAN: Uusi linja. 316 00:14:35,990 --> 00:14:39,340 Joten se kääntyy pois, et voi vain lyödä, kirjoita, kun kirjoitat ohjelman. 317 00:14:39,340 --> 00:14:42,590 Yleensä kääntäjä on menossa hieman hämmentynyt siitä, mitä tarkoitat. 318 00:14:42,590 --> 00:14:45,340 Pikemminkin sinun täytyy kirjaimellisesti sanoa, anna minulle uusi rivi täällä. 319 00:14:45,340 --> 00:14:49,506 Ja niin / n on mitä me yleensä soittaa paeta merkki. 320 00:14:49,506 --> 00:14:50,870 Niin n, sillä uusi rivi. 321 00:14:50,870 --> 00:14:53,810 Ja kääntäjä tietää että kun se näkee / n, 322 00:14:53,810 --> 00:14:57,420 se on itse asiassa aiheuttaa tietokoneen, lopulta, tai printf, tässä tapauksessa, 323 00:14:57,420 --> 00:15:00,260 tulostaa todellinen uusi linja, kuten lyömällä, kirjoita, 324 00:15:00,260 --> 00:15:01,480 näppäintä. 325 00:15:01,480 --> 00:15:05,620 Ja lopuksi, mitä teki sanomme tämä pala syntaksi on? 326 00:15:05,620 --> 00:15:06,591 Mitä se edustaa? 327 00:15:06,591 --> 00:15:07,090 Joo. 328 00:15:07,090 --> 00:15:07,490 >> Yleisöstä: [äänetön] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J MALAN: Se on vain päähän. 330 00:15:08,660 --> 00:15:09,909 Se on loppuun julkilausuman. 331 00:15:09,909 --> 00:15:11,890 Ja ymmärtää, että emme laita ne kaikkialla. 332 00:15:11,890 --> 00:15:13,900 Emme missään nimessä laittaa päissä jokaiselle riville. 333 00:15:13,900 --> 00:15:16,680 Esimerkiksi, siellä ei mitään ensimmäinen rivi, siellä mikään linjalla 334 00:15:16,680 --> 00:15:18,680 kanssa, tärkein, siellä ei mitään jälkeen aaltosulkeita, 335 00:15:18,680 --> 00:15:21,740 mutta voit alkaa nähdä ja saada perehtynyt missä sitä vaatinut. 336 00:15:21,740 --> 00:15:26,014 Ja se on melkein aina, kun toiminto soita tai lausunto, joitakin toimia 337 00:15:26,014 --> 00:15:27,180 että olet todella ottaen. 338 00:15:27,180 --> 00:15:29,520 >> Ja tiedämme nyt, varsinkin jos joukossa vähemmän mukava, 339 00:15:29,520 --> 00:15:32,540 nämä ovat erilaisia ​​tyhmyyksiä että päädyt vahingossa paukutti 340 00:15:32,540 --> 00:15:33,873 päätäsi seinää vasten yli. 341 00:15:33,873 --> 00:15:36,107 Koska voit olla loogisesti luottaa joitakin ongelmia 342 00:15:36,107 --> 00:15:38,440 olet ratkaistaan ​​ongelma asettaa, ja hemmetin asia vain 343 00:15:38,440 --> 00:15:40,187 ei käänny tai jopa käyttää. 344 00:15:40,187 --> 00:15:43,270 Ja niin usein, varhain, se tulee johtua siitä, olet jäänyt suluissa, 345 00:15:43,270 --> 00:15:44,455 tai olet jäänyt puolipisteellä. 346 00:15:44,455 --> 00:15:46,547 Ja niin vain olla tietoinen tällaisia ​​asioita, 347 00:15:46,547 --> 00:15:49,380 ja yritä saada turhautunut niitä, koska hyvin nopeasti tekee tämän 348 00:15:49,380 --> 00:15:50,640 tullut vanha hattu. 349 00:15:50,640 --> 00:15:53,910 Mutta se on erittäin helppo saada turhautunut varhain, seurauksena. 350 00:15:53,910 --> 00:15:57,020 >> Joten nyt, nyt katsomaan miten tämä linja on todella työtä 351 00:15:57,020 --> 00:15:59,170 ja sitten katsoa hieman monimutkaisempi yksi. 352 00:15:59,170 --> 00:16:02,017 Meillä on täällä, kyky laatia tällä näytöllä. 353 00:16:02,017 --> 00:16:04,100 Ja oletetaan, että tämä on minun tietokoneen näytöllä, 354 00:16:04,100 --> 00:16:08,589 mutta minä kirjoitan, Hei ohjelma, ja en ole toteutettu, printf. 355 00:16:08,589 --> 00:16:10,130 Joku muu on toteuttanut, printf. 356 00:16:10,130 --> 00:16:12,420 Kuka haluaisi väittää on toteutettu, printf? 357 00:16:12,420 --> 00:16:12,920 Jos me voi? 358 00:16:12,920 --> 00:16:13,830 Okei, mikä on nimesi? 359 00:16:13,830 --> 00:16:14,155 >> Opiskelija 1: [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J MALAN: Copal, tule ylös. 361 00:16:15,529 --> 00:16:16,430 Tule ylös. 362 00:16:16,430 --> 00:16:17,070 Selvä. 363 00:16:17,070 --> 00:16:22,260 Joten meillä on, täällä, jotkut nimilaput, koska teemme pieni peli tämän. 364 00:16:22,260 --> 00:16:26,270 Ja soitamme sinulle, printf. 365 00:16:26,270 --> 00:16:30,170 Ja jos haluat tulla tänne, mitä olen juuri piirretty ruudulla, 366 00:16:30,170 --> 00:16:32,340 se on yksinkertaisesti, siellä minua, tämä. 367 00:16:32,340 --> 00:16:35,550 >> Selvä, joten, Hei, nimeni on, printf, jos haluat laittaa että. 368 00:16:35,550 --> 00:16:35,740 Selvä. 369 00:16:35,740 --> 00:16:37,360 Ja jos voit mennä stand tietokoneen näytön 370 00:16:37,360 --> 00:16:39,730 ikään kuin olet toiminnon mukana tämän tietokonejärjestelmään. 371 00:16:39,730 --> 00:16:42,063 Ja tarkoitus elämässä on todella tulostaa jotain. 372 00:16:42,063 --> 00:16:44,560 Mutta aivan kuten ohjelman me juuri ollut ruudulla, täällä, 373 00:16:44,560 --> 00:16:47,060 aiomme pitää todella antaa sinulle syöttää. 374 00:16:47,060 --> 00:16:51,810 >> Ja niin, jos minun panos, täällä, on ilmeisesti, mitä johdetaan printf, 375 00:16:51,810 --> 00:16:53,730 katsotaanpa sellainen pilkata sitä näin. 376 00:16:53,730 --> 00:16:58,720 Aion kirjaimellisesti kirjoittaa paperille, "Hei, maailma" 377 00:16:58,720 --> 00:17:03,020 kenoviivat N. Ja tehdä selväksi, mitä Olen juuri piirretty tämä pala paperia, 378 00:17:03,020 --> 00:17:04,020 näyttää tältä. 379 00:17:04,020 --> 00:17:08,730 Joten kun käytän tätä ohjelmaa, ja tämä keltainen koodiriviä saa suorittaa, 380 00:17:08,730 --> 00:17:12,970 se on ikään kuin minä, hei ohjelma, am luovuttamalla panoksensa pois toiminto 381 00:17:12,970 --> 00:17:13,970 että joku muu kirjoitti. 382 00:17:13,970 --> 00:17:16,595 >> Ja jos, sormella, voisi todella, sormella, 383 00:17:16,595 --> 00:17:21,520 piirtää ruudulle tahansa se on sinun on luovutettu, 384 00:17:21,520 --> 00:17:27,465 vaikutus, lopulta, on nähdä juuri sitä, ruudulla. 385 00:17:27,465 --> 00:17:29,140 Ja vähän nurkassa olevassa asiassa. 386 00:17:29,140 --> 00:17:31,540 Ja hyvä, meidän ei pitäisi nähdä , uusi linja, tässä vaiheessa. 387 00:17:31,540 --> 00:17:33,900 Se olisi väärin sinulle nimenomaisesti piirtää rivi. 388 00:17:33,900 --> 00:17:36,810 Mutta jos me pidetään kirjallisesti sanoja näyttö, he päätyisi alle. 389 00:17:36,810 --> 00:17:39,560 >> Joten kiitos paljon, mutta kiinni täällä vain hetken. 390 00:17:39,560 --> 00:17:42,860 Nyt tarvitaan yksi muu vapaaehtoinen, jos voisimme, 391 00:17:42,860 --> 00:17:46,830 joka on menossa on näytellä of-- Se on vain ihmistä orkesteri 392 00:17:46,830 --> 00:17:47,355 juuri nyt. 393 00:17:47,355 --> 00:17:47,980 Miten about-- OK. 394 00:17:47,980 --> 00:17:48,480 Juuri täällä. 395 00:17:48,480 --> 00:17:49,180 Tule ylös. 396 00:17:49,180 --> 00:17:49,955 Mikä on nimesi? 397 00:17:49,955 --> 00:17:50,922 >> Opiskelija 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J MALAN: Anteeksi? 399 00:17:51,796 --> 00:17:52,990 Opiskelija 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J MALAN: Ethan, tule ylös. 401 00:17:55,320 --> 00:17:55,820 Ei? 402 00:17:55,820 --> 00:17:58,390 Sain, että väärin, jopa kun sanoit sen kahdesti? 403 00:17:58,390 --> 00:17:58,890 Tule ylös. 404 00:17:58,890 --> 00:18:00,030 On vaikea kuulla täällä. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK. 407 00:18:05,740 --> 00:18:07,190 Ja olen pahoillani, mikä on nimesi? 408 00:18:07,190 --> 00:18:07,680 >> Opiskelija 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J MALAN: Ivay. ?] OK. 410 00:18:08,790 --> 00:18:10,430 Nyt, jos et mielessä, olet GetString. 411 00:18:10,430 --> 00:18:11,013 >> Opiskelija 2: OK. 412 00:18:11,013 --> 00:18:11,797 Viileä. 413 00:18:11,797 --> 00:18:14,630 DAVID J MALAN: Joten jos haluat seistä täällä vain hetken, 414 00:18:14,630 --> 00:18:17,100 Katsotaanpa katsomaan hieman monimutkaisempi ohjelma, joka 415 00:18:17,100 --> 00:18:18,670 on nyt kolme riviä koodia. 416 00:18:18,670 --> 00:18:24,080 Joten meillä on, yksi, ilmoita nimesi käyttämällä printf; kaksi, puhelun GetString, 417 00:18:24,080 --> 00:18:28,060 seuraa toimeksiannon muuttuja nimeltä, nuora s, tai kutsutaan s; 418 00:18:28,060 --> 00:18:31,260 ja sitten toinen puhelu, printf, mutta tällä kertaa kaksi tuloa. 419 00:18:31,260 --> 00:18:33,646 >> Joten olemme jo tehneet valtio nimesi, tai pikemminkin olemme 420 00:18:33,646 --> 00:18:34,770 jo tehnyt printf puhelun. 421 00:18:34,770 --> 00:18:38,960 Joten aion kirjoittaa, valtion nimesi. 422 00:18:38,960 --> 00:18:42,089 Ja niin, mitä aion pass, printf, vain hetken, 423 00:18:42,089 --> 00:18:43,005 on yksinkertaisesti tämä. 424 00:18:43,005 --> 00:18:47,760 Joten jos haluat mennä eteenpäin ja tehdä tämä ruudulla, se on teidän panos nyt. 425 00:18:47,760 --> 00:18:48,260 Selvä. 426 00:18:48,260 --> 00:18:51,160 Ja unohtaa string, meillä on nyt oman koodiriviä täällä. 427 00:18:51,160 --> 00:18:54,470 Joten, GetString, tarvitsemme todella soittaa, GetString. 428 00:18:54,470 --> 00:18:57,920 Joten tarkoitus elämässä on vain kävellä ulos orkesteri, jos voisit, 429 00:18:57,920 --> 00:18:58,980 ja saada jonkun nimi. 430 00:18:58,980 --> 00:19:00,860 Mutta katsotaanpa antaa sinulle jotain laittaa sen. 431 00:19:00,860 --> 00:19:02,908 Jos haluat, mennä eteenpäin ja saada merkkijono, 432 00:19:02,908 --> 00:19:05,241 saada jonkun nimi että paperille, jos voisit. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Selvä. 435 00:19:13,530 --> 00:19:15,250 Ja näemme, vain hetken, jonka nimi saamme. 436 00:19:15,250 --> 00:19:17,630 Samaan aikaan, mitä aion on valmis, on tyhjä pala 437 00:19:17,630 --> 00:19:21,340 paperin, jossa aion tallentaa arvosta riippumatta se 438 00:19:21,340 --> 00:19:25,752 on että GetString palaa minua, Minä, joka merkkijono muuttuja nimeltä, s. 439 00:19:25,752 --> 00:19:26,252 Selvä. 440 00:19:26,252 --> 00:19:27,293 Joten mitä sinulla on täällä? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Selvä. 443 00:19:28,450 --> 00:19:30,910 Joten meillä on Nik nimi tähän. 444 00:19:30,910 --> 00:19:33,750 Joten tämä on mitä kirjaimellisesti on palautettu 445 00:19:33,750 --> 00:19:35,810 minulle, niin sanotusti, jota GetString. 446 00:19:35,810 --> 00:19:38,720 >> Minä, nyt aijon toteuttaa vasen puoli 447 00:19:38,720 --> 00:19:43,440 kyseisen ilmaisun, jos en yksinkertaisesti kopioi alas, päivän tarkoituksiin, Nik. 448 00:19:43,440 --> 00:19:46,470 Joten nyt, minulla on muuttuja nimeltään, s, tallentamiseen Nik nimi. 449 00:19:46,470 --> 00:19:49,520 Olen jo luovutetaan printf, edellinen perustelu. 450 00:19:49,520 --> 00:19:52,800 Mutta meidän kolmas ja viimeinen rivi koodi, olen oikeastaan ​​on käsi printf 451 00:19:52,800 --> 00:19:58,500 jotain hieman different-- "Hei,% s" kenoviiva n. 452 00:19:58,500 --> 00:20:01,510 >> Ja niin viimeinen aion jotta send-- viimeinen asia olen 453 00:20:01,510 --> 00:20:03,060 menossa kirjoittaa nyt, on tämä. 454 00:20:03,060 --> 00:20:06,310 Joten kaksi riviä koodia, tai pikemminkin viimeinen rivi koodia, 455 00:20:06,310 --> 00:20:10,690 vaatii kaksi inputs-- yksi, tämä, ja kaksi, tämä. 456 00:20:10,690 --> 00:20:13,330 Joten jos meidän printf toiminto voi nyt ottaa nämä tulona, 457 00:20:13,330 --> 00:20:16,000 haluan tyhjentää näytön sinulle. 458 00:20:16,000 --> 00:20:17,250 Oikeastaan ​​ei, voit mennä eteenpäin. 459 00:20:17,250 --> 00:20:19,333 Jätämme sen, koska se on sama ohjelma. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Meidän pitäisi nähdä, Hei, Nik. 462 00:20:27,380 --> 00:20:27,880 Selvä. 463 00:20:27,880 --> 00:20:29,670 Joten tämä oli melkoisesti vanteet hypätä läpi, vain 464 00:20:29,670 --> 00:20:31,620 kirjoittaa, ilmoittamaan omat nimi, ja, hei, Nik. 465 00:20:31,620 --> 00:20:37,210 Mutta tämä yksinkertainen ajatus viesti kulkee, panos kulkee ja lähtö vastaanottavan, 466 00:20:37,210 --> 00:20:40,430 on täsmälleen mallin aiomme olla jopa kaikkein monimutkaisia ​​toimintoja. 467 00:20:40,430 --> 00:20:41,804 Joten kiitos paljon teille molemmille. 468 00:20:41,804 --> 00:20:43,730 Meillä on ihana stressiä pallo täällä sinua varten. 469 00:20:43,730 --> 00:20:48,890 Ja kiitos meidän GetString ja printf vapaaehtoisten keskuudessa. 470 00:20:48,890 --> 00:20:49,551 Kiitos. 471 00:20:49,551 --> 00:20:50,050 Selvä. 472 00:20:50,050 --> 00:20:50,966 Kiitos teille molemmille. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Joten olemme puhuneet tähän mennessä, enimmäkseen noin jouset. 475 00:21:00,430 --> 00:21:06,550 Ja käy ilmi, että C voi todella ymmärtää muutamia erilaiset tiedot. 476 00:21:06,550 --> 00:21:08,860 Itse asiassa, sallikaa katsokaa näitä täällä. 477 00:21:08,860 --> 00:21:12,490 Niin C, ja paljon kieliä, ymmärtämään asioita kutsutaan merkkiä. 478 00:21:12,490 --> 00:21:16,852 Nieriä on yleensä yksittäinen tavu, tai kahdeksan bittiä. 479 00:21:16,852 --> 00:21:19,810 Ja se edustaa yhden merkin, kuten kirjain, tai pääoman 480 00:21:19,810 --> 00:21:21,990 kirjain, tai pieni kirjain Tai huutomerkki, 481 00:21:21,990 --> 00:21:25,440 tai mikä tahansa merkki, että voit kirjoittaa päälle näppäimistön, ja joskus jopa enemmän. 482 00:21:25,440 --> 00:21:26,795 Olemme myös tapahtua nähdä kelluu. 483 00:21:26,795 --> 00:21:31,160 Float on, yleensä, 32-bittinen arvo, tai neljä tavua 484 00:21:31,160 --> 00:21:33,660 koska uudelleen, yksi tavu on kahdeksan bittiä. 485 00:21:33,660 --> 00:21:36,675 >> Joten kellua on liukulukuarvoksi, jotain desimaalipilkun. 486 00:21:36,675 --> 00:21:38,550 Ja todellakin, sitähän elokuva puhui 487 00:21:38,550 --> 00:21:42,240 siitä, milloin ne puhui kelluva pistearvot, jotkut Kiinteä määrä bittejä 488 00:21:42,240 --> 00:21:43,940 käytetään edustamaan reaaliluku. 489 00:21:43,940 --> 00:21:45,740 Mutta on myös asioita kutsutaan nelinpelin. 490 00:21:45,740 --> 00:21:47,860 Olemassa Java, jos olet ottanut APCS, 491 00:21:47,860 --> 00:21:51,540 ja kaksinkertainen, koska nimi onneksi ehdottaa, on kaksi kertaa niin suuri kuin käteisvaroja. 492 00:21:51,540 --> 00:21:54,540 Se on edelleen todellinen määrä, se vain on enemmän bittejä 493 00:21:54,540 --> 00:21:58,390 jolla on yhä tarkempia, tai tallentaa jopa suurempia määriä. 494 00:21:58,390 --> 00:21:58,890 Int on helppoa. 495 00:21:58,890 --> 00:22:00,181 Puhuimme siitä viime kerralla. 496 00:22:00,181 --> 00:22:01,160 Se on vain kokonaisluku. 497 00:22:01,160 --> 00:22:03,980 Ja se on yleensä 32 bittiä, tai neljä tavua. 498 00:22:03,980 --> 00:22:07,850 >> Ja niin, jos sinulla on, katsotaanpa nyt, 32 bits-- ja teimme tällä viikolla 0, 499 00:22:07,850 --> 00:22:10,820 koskaan niin briefly-- jos sinulla on 32 bittiä, mikä on suurin 500 00:22:10,820 --> 00:22:13,580 numero voi edustaa kuin kokonaisluku? 501 00:22:13,580 --> 00:22:16,080 Antaa tai ottaa? 502 00:22:16,080 --> 00:22:18,380 Se on kuin 4000000000, ja se on vain, jos olemme 503 00:22:18,380 --> 00:22:20,690 edustavat positiivisia lukuja vain. 504 00:22:20,690 --> 00:22:23,930 Jos sinulla on 32 bittiä, ja haluat edustavat negatiiviset luvut samoin, 505 00:22:23,930 --> 00:22:27,100 teidän alue on pääosin negatiivinen 2000000000 positiiviseen 2000000000. 506 00:22:27,100 --> 00:22:29,250 Mutta yleisesti, aloitamme 0 mennä jopa 4000000000. 507 00:22:29,250 --> 00:22:32,400 >> Sinun ei tarvitse tietää tarkasti, mutta voimme nähdä tämän, itse asiassa, jos vain 508 00:22:32,400 --> 00:22:36,400 avata hieman laskin, täällä. 509 00:22:36,400 --> 00:22:41,070 Voin tehdä 2 32, ja juuri niin iso, 510 00:22:41,070 --> 00:22:43,190 Kuinka monet arvot voit edustavat, 32 bittiä. 511 00:22:43,190 --> 00:22:44,442 Ja se on noin 4 miljardia euroa. 512 00:22:44,442 --> 00:22:46,900 Niin me pitää nähdä, että määrä muutaman eri paikoissa. 513 00:22:46,900 --> 00:22:48,890 Mutta jos tarvitset enää numerot kuin se, 514 00:22:48,890 --> 00:22:51,670 se kääntyy siellä n jotain kutsutaan pitkään pitkään. 515 00:22:51,670 --> 00:22:54,005 Ja pitkä pitkä on yleensä 64 bittiä, joka 516 00:22:54,005 --> 00:22:56,380 tarkoittaa että se on suuruusluokkaa jopa suurempi kuin int. 517 00:22:56,380 --> 00:22:59,510 >> Joten en voi edes lausua suurin numero, joka voi edustaa, 518 00:22:59,510 --> 00:23:01,340 mutta se on huomattavasti suurempi. 519 00:23:01,340 --> 00:23:05,190 Nyt kun syrjään, historiallisesti, jos int on 32 bittiä, 520 00:23:05,190 --> 00:23:12,780 ja pitkä pitkä on 64 bittiä, kuinka iso on pitkä, ei pitkä pitkä? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Luulisi se on pidempi kuin int mutta ehkä vähemmän kauan kuin pitkään pitkään, 523 00:23:20,330 --> 00:23:21,400 mutta se todella riippuu. 524 00:23:21,400 --> 00:23:23,400 >> Ja niin se kääntyy pois yksi turhautumista liian, 525 00:23:23,400 --> 00:23:26,830 kanssa kirjallisesti koodi tietyille järjestelmille, on se, että kaikki nämä tietotyyppejä 526 00:23:26,830 --> 00:23:28,440 on ennalta määrätty arvo. 527 00:23:28,440 --> 00:23:29,771 Joskus se on näin monta bittiä. 528 00:23:29,771 --> 00:23:31,020 Joskus se on niin monta bittiä. 529 00:23:31,020 --> 00:23:32,750 Joten te todella täytyy tietää, joskus, mitä laitteita 530 00:23:32,750 --> 00:23:34,083 käytät oman ohjelmiston. 531 00:23:34,083 --> 00:23:36,960 Onneksi, muita kieliä ja muut tietotyyppejä että nyt olemassa, 532 00:23:36,960 --> 00:23:38,400 voit olla täsmällisempi. 533 00:23:38,400 --> 00:23:41,220 No, näimme merkkijono, ja näimme bool, liian, 534 00:23:41,220 --> 00:23:43,960 mutta se osoittautuu ne tulevat vain CS50 kirjasto. 535 00:23:43,960 --> 00:23:46,240 Joten ne eivät ole rakennettu osaksi C. Nämä sijaan, 536 00:23:46,240 --> 00:23:49,340 tulevat tiedoston nimeltä CS50.h, että käymme lopulta 537 00:23:49,340 --> 00:23:51,831 kuori takaisin kerroksia. 538 00:23:51,831 --> 00:23:53,830 Mutta nyt, he vain datatyyppejä. 539 00:23:53,830 --> 00:23:57,060 Bool on tosi tai epätosi, ja merkkijono on merkkijono, 540 00:23:57,060 --> 00:23:57,970 kuin sana. 541 00:23:57,970 --> 00:24:01,690 Nyt printf, olemme nähneet, on paikkamerkkejä,% s on yksi. 542 00:24:01,690 --> 00:24:05,430 Ja saatat pystyä, nyt, Päättelen näistä muista esimerkeistä, kuinka 543 00:24:05,430 --> 00:24:07,720 sinulla voisi olla paikkamerkki Eri tietotyyppejä. 544 00:24:07,720 --> 00:24:11,150 Esimerkiksi yrittää arvata, jos halusi tulostaa yhden char avulla 545 00:24:11,150 --> 00:24:15,270 printf, paikkamerkki on luultavasti% C. 546 00:24:15,270 --> 00:24:19,650 Ja jos haluat tulostaa kokonaisluku paikkamerkki,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD on pitkä pitkä desimaalin arvo, mutta pitkä pitkä, niin että karttoja, jotka. 548 00:24:25,150 --> 00:24:28,640 Ja sitten% f kelluva pistearvo tai kaksinkertainen, 549 00:24:28,640 --> 00:24:31,270 joten joskus he käyttää uudelleen eri yhteyksissä. 550 00:24:31,270 --> 00:24:33,350 Joten näemme ja käyttää joitakin niistä ajan mittaan. 551 00:24:33,350 --> 00:24:36,420 Ja printf ja muita toimintoja myös tukea muiden tilanvaihdot, 552 00:24:36,420 --> 00:24:38,080 ja joskus, nämä ovat tarpeen. 553 00:24:38,080 --> 00:24:39,770 Joten kenoviiva n on uusi rivi. 554 00:24:39,770 --> 00:24:42,886 Kenoviiva t, ei kukaan halua ottaa puukottaa? 555 00:24:42,886 --> 00:24:43,760 Yleisössä:-välilehti. 556 00:24:43,760 --> 00:24:44,551 DAVID J MALAN: välilehti. 557 00:24:44,551 --> 00:24:46,810 Joten jos todella haluat tulostaa välilehden, ei 558 00:24:46,810 --> 00:24:49,940 kiinteä määrä välilyöntejä mutta todellinen sarkainmerkin, et osuivat, 559 00:24:49,940 --> 00:24:53,490 välilehti, näppäintä, yleensä, voit itse tehdä kenoviiva t. 560 00:24:53,490 --> 00:24:57,750 Kenoviiva lainausmerkki, miksi olisin koskaan halua, että? 561 00:24:57,750 --> 00:24:58,250 Oikea? 562 00:24:58,250 --> 00:25:00,417 Miksi en voi vain kirjoittaa lainausmerkki minun näppäimistö? 563 00:25:00,417 --> 00:25:02,124 Yleisöstä: Koska muuten se on 564 00:25:02,124 --> 00:25:04,830 menossa mielestäni se on lopussa Like teidän tulostaa [? tekstiä. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J MALAN: Aivan. 566 00:25:05,420 --> 00:25:07,211 Muista, meidän printf esimerkkejä, kun 567 00:25:07,211 --> 00:25:10,075 oli ohimennen printf tuotantopanosten, vasemmalla että syötemerkkijonon 568 00:25:10,075 --> 00:25:12,950 ja oikealle puolelle panos kevät, tietenkin, oli lainausmerkki. 569 00:25:12,950 --> 00:25:16,270 Jos oma panos on kaksinkertainen lainaus keskellä että, 570 00:25:16,270 --> 00:25:18,920 tietokone saattaa mahdollisesti hämmentyä, siitä, 571 00:25:18,920 --> 00:25:20,760 tekee tämän lainausmerkki kuuluvat keskellä? 572 00:25:20,760 --> 00:25:22,150 Kuuluuko se vasemmalla yksi? 573 00:25:22,150 --> 00:25:23,566 Onko se kuuluu kanssa oikea? 574 00:25:23,566 --> 00:25:26,780 Ja niin, jos haluat tehdä sen erittäin kirkas, et Kenoviiva lainausmerkki, 575 00:25:26,780 --> 00:25:30,480 niin että se on karannut, niin sanoakseni, ja se ei ole sekoittanut jotain muuta. 576 00:25:30,480 --> 00:25:34,400 Ja siellä on muutamia muita täällä, kenoviiva R, heittomerkkejä, 0, 577 00:25:34,400 --> 00:25:36,510 että me näkisimme ajan, samoin. 578 00:25:36,510 --> 00:25:37,760 Ja nyt, entä toimintoja? 579 00:25:37,760 --> 00:25:41,630 >> Niin toimia, voimme ryhtyä tähän asti tällä kielellä, C, no, olemme nähneet, 580 00:25:41,630 --> 00:25:44,320 printf, tietenkin, ja kaikki ja muut ruudulla, 581 00:25:44,320 --> 00:25:47,140 täällä, että käytämme varten Kurssin ensimmäisten viikkojen vain, 582 00:25:47,140 --> 00:25:48,485 tulevat kun CS50 kirjasto. 583 00:25:48,485 --> 00:25:51,850 Ja he paljon helpompaa, vuonna C, todella saada käyttäjä syöttää. 584 00:25:51,850 --> 00:25:54,200 On käynyt ilmi, että C, ja rehellisesti muutaman kielillä, 585 00:25:54,200 --> 00:25:57,450 se on todellinen kipua niskassa tehdä jotain yksinkertaista, kuten nopea käyttäjä 586 00:25:57,450 --> 00:26:01,310 Näppäimistön, hänen tulo. 587 00:26:01,310 --> 00:26:03,240 Ja niin nämä toiminnot tekevät siitä helpompaa. 588 00:26:03,240 --> 00:26:05,472 >> Ja se on myös virhe tarkkailun kaikkialla, 589 00:26:05,472 --> 00:26:07,180 niin, että kun muistuttaa keskiviikkona, me 590 00:26:07,180 --> 00:26:09,740 näki, yritä, varoitus, kun en yhteistyötä, 591 00:26:09,740 --> 00:26:11,700 ja olen kirjoittanut sanan, numeron sijasta? 592 00:26:11,700 --> 00:26:15,402 Olemme tehneet raskaan työn alussa on varmistaa käyttäjän yhteistyötä. 593 00:26:15,402 --> 00:26:17,860 Mutta nämä ovat vain koulutus pyörät että me lopulta, 594 00:26:17,860 --> 00:26:19,640 ja nopeasti, ota pois. 595 00:26:19,640 --> 00:26:22,630 >> Niin kertaus, sitten, sallikaa vilkaista, 596 00:26:22,630 --> 00:26:26,620 aivan kuten teimme Scratch, on jotkut kanoninen konstruktioita C. 597 00:26:26,620 --> 00:26:28,580 Tämä on tarkoitus, lajitella of, olla tuulispää kiertue, 598 00:26:28,580 --> 00:26:30,990 juuri niin, että sinulla on viite ja että olet nähnyt asioita ensin. 599 00:26:30,990 --> 00:26:34,100 Mutta sitten me tarkastelemme koodauksen käyttää joitakin näistä rakennuspalikoita. 600 00:26:34,100 --> 00:26:36,710 Niin paljon kuin Scratch, kun olimme lausuntoja, kuten, 601 00:26:36,710 --> 00:26:41,570 sanoa tai, odota, C, meillä on toimii hyvin, kuten printf. 602 00:26:41,570 --> 00:26:45,350 >> Jos haluamme ilmaista ehto C, se on samanlainen, hengessä, 603 00:26:45,350 --> 00:26:47,840 kyseiseen palapelin pala, joka näytti tältä Scratch. 604 00:26:47,840 --> 00:26:49,850 Mutta sen sijaan, me kirjaimellisesti vain kirjoittaa, jos. 605 00:26:49,850 --> 00:26:51,830 Ja sitten, suluissa, panemme kunnossa, 606 00:26:51,830 --> 00:26:54,807 jos tämä edellytys on mitä me will soittaa, taas, Boolen lauseke. 607 00:26:54,807 --> 00:26:56,390 Ja vielä, tämä on tavallaan pseudokoodin. 608 00:26:56,390 --> 00:26:58,830 Ja itse asiassa, // on kommentti. 609 00:26:58,830 --> 00:27:00,550 Se on vain Englanti sanat itselleni. 610 00:27:00,550 --> 00:27:03,000 Mutta tämä on yleinen rakenne, jos ehto. 611 00:27:03,000 --> 00:27:05,220 Mutta näemme konkreettisia esimerkkejä vain hetken. 612 00:27:05,220 --> 00:27:07,960 >> Jos haluat olla kaksisuuntainen tienhaarasta, 613 00:27:07,960 --> 00:27:11,740 aivan kuten teimme meidän vapaaehtoiseksi Keskiviikkona voit olla, muuta jos. 614 00:27:11,740 --> 00:27:16,020 Ja jos haluat olla kolmas ja viimeinen edellytys, tai oletus tilanne, 615 00:27:16,020 --> 00:27:19,006 voit olla vain muu lohko, siellä. 616 00:27:19,006 --> 00:27:21,880 Ja samoin, jossa Boolen operaattoreilla, voit, ja, ne yhteen. 617 00:27:21,880 --> 00:27:24,296 Ja näimme keskiviikkona, että se ei ole yhden et-merkki, 618 00:27:24,296 --> 00:27:28,220 se on kaksi, alemman tason syitä, jotka me lopulta nähdä ja pelata. 619 00:27:28,220 --> 00:27:30,410 Tai-ing asioita yhdessä on 2 pystypalkit. 620 00:27:30,410 --> 00:27:32,240 Käytössä Yhdysvaltain näppäimistö, tämä on yleensä keskeinen 621 00:27:32,240 --> 00:27:35,730 ja Shift-näppäintä edellä sinun Enter tai Return-näppäintä. 622 00:27:35,730 --> 00:27:38,620 >> Sitten on näitä asioita, käytämme ehkä kerran tai kahdesti. 623 00:27:38,620 --> 00:27:42,570 Ne ovat toiminnallisesti ekvivalentteja mitä voit tehdä, jos muu, jos, 624 00:27:42,570 --> 00:27:44,950 if muuta, rakentaa, mutta niitä kutsutaan kytkin. 625 00:27:44,950 --> 00:27:48,020 He näyttävät hyvin erilaisia, mutta me nähdä joitakin jakelun koodin, 626 00:27:48,020 --> 00:27:51,890 Tulevaa Harjoitus, todennäköisesti, että se on joskus vain kauniimpi 627 00:27:51,890 --> 00:27:54,060 tapa ilmaista koko nippu olosuhteet, 628 00:27:54,060 --> 00:27:57,590 ilman paljon aaltosulkeita ja paljon suluissa ja sisennys. 629 00:27:57,590 --> 00:28:01,910 Mutta ne antavat meille enää teho kuin olemme jo. 630 00:28:01,910 --> 00:28:02,550 Ja nyt silmukoita. 631 00:28:02,550 --> 00:28:05,020 Ja tämä yksi, niin selvitämme klo hieman hitaammin. 632 00:28:05,020 --> 00:28:08,470 Mutta sitten, alamme käyttää näitä, varsinkin niille jo tuttuja. 633 00:28:08,470 --> 00:28:13,830 Tämä on kanoninen tapa, jos uskomattoman arcane tapa, kirjoittaa silmukka C. 634 00:28:13,830 --> 00:28:15,896 >> Nyt silmukka Scratch oli melko yksinkertainen. 635 00:28:15,896 --> 00:28:17,020 Sinulla on, ikuisesti, lohko. 636 00:28:17,020 --> 00:28:19,760 Sinulla on, toista, lohko vain numero täytyy kirjoittaa. 637 00:28:19,760 --> 00:28:22,220 Ja, silmukka, voit toteuttaa sekä näistä ajatuksista, 638 00:28:22,220 --> 00:28:23,595 mutta se on hieman tekninen. 639 00:28:23,595 --> 00:28:25,994 Mutta suoraan sanottuna, se on myös suhteellisen yksinkertainen. 640 00:28:25,994 --> 00:28:28,160 Kun tiedät järjestyksessä toiminnot, kirjaimellisesti 641 00:28:28,160 --> 00:28:30,910 juuri menossa kytkeä arvojen ja kertoa tietokoneen mitä tehdä. 642 00:28:30,910 --> 00:28:32,800 Joten tässä on esimerkki. 643 00:28:32,800 --> 00:28:38,040 Tämä on silmukka, joka, aivan yksinkertaisesti, laskee yhden numeron ylös 644 00:28:38,040 --> 00:28:40,187 kautta toiseen. 645 00:28:40,187 --> 00:28:42,020 Ja vain vilkaisi sitä, vaikka sinulla on 646 00:28:42,020 --> 00:28:44,660 ole aiempaa kokemusta tällä kielellä, mitä numero 647 00:28:44,660 --> 00:28:46,920 se luultavasti alkaa laskemisen? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 Ja olen arvaamaan, että sen ansiosta, nähdä, että siellä int ja i, 650 00:28:50,240 --> 00:28:51,073 joka on muuttuja. 651 00:28:51,073 --> 00:28:52,390 Se alustetaan 0. 652 00:28:52,390 --> 00:28:55,670 >> Ja sitten myöhemmin, se näyttää olemme ohimennen printf, arvo. 653 00:28:55,670 --> 00:28:58,000 Ja itse asiassa, tein pienen kirjoitusvirheen täällä. 654 00:28:58,000 --> 00:28:59,850 Mutta se on helposti korjattu. 655 00:28:59,850 --> 00:29:02,390 Saanen lisätä, olen täällä. 656 00:29:02,390 --> 00:29:06,150 Meillä on nyt printf olento läpäissyt että paikkamerkki arvo. 657 00:29:06,150 --> 00:29:08,299 Ja mitä tulee laskea läpi? 658 00:29:08,299 --> 00:29:08,840 Yleisö: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J MALAN: 49. 662 00:29:10,910 --> 00:29:13,340 Joten 50, ensi silmäyksellä, tuntuu oikealta. 663 00:29:13,340 --> 00:29:16,990 Mutta että se kääntyy pois, tulee olemaan tilamme että pidämme tarkkailun. 664 00:29:16,990 --> 00:29:21,740 Ja aiomme lopettaa kerran En ole enää alle 50. 665 00:29:21,740 --> 00:29:24,920 Joten tämä silmukka, päinvastoin, pitäisi toteuttaa, kunhan i on pienempi kuin 50. 666 00:29:24,920 --> 00:29:28,891 Mutta heti kun se on 50 tai 51, tai vielä pahempaa, se pitäisi lopettaa automaattisesti. 667 00:29:28,891 --> 00:29:29,390 Selvä. 668 00:29:29,390 --> 00:29:31,200 >> Joten mitä todella tapahtuu täällä? 669 00:29:31,200 --> 00:29:33,160 Joten tämä on järjestys operaatioita silmukka. 670 00:29:33,160 --> 00:29:35,440 Yksi, sinulla on ns alustus. 671 00:29:35,440 --> 00:29:38,264 Tämä keltainen korostettu murikka koodia suoritetaan ensin, 672 00:29:38,264 --> 00:29:40,930 ja se on se vaikutus, että kohden Keskiviikko luultavasti kuvitella. 673 00:29:40,930 --> 00:29:45,500 Se luo muuttuja nimeltä I ja sen myymälää että muuttuja arvo 0. 674 00:29:45,500 --> 00:29:47,560 Joten i on 0 tässä vaiheessa tarina. 675 00:29:47,560 --> 00:29:49,680 >> Seuraava asia, että tapahtuu tässä rakenteessa, 676 00:29:49,680 --> 00:29:51,540 on, että ehto saa tarkistaa. 677 00:29:51,540 --> 00:29:54,325 Joten voin tarkistaa heti, on i alle 50? 678 00:29:54,325 --> 00:29:57,700 Ja tietenkin, vastaus nyt on, varmasti, kyllä. 679 00:29:57,700 --> 00:30:00,710 Kyllä, koska i on 0, ja se on varmasti vähemmän kuin 50. 680 00:30:00,710 --> 00:30:03,866 Mitä sitten tapahtuu, on että tämä koodiriviä saa teloitettiin. 681 00:30:03,866 --> 00:30:06,740 Ja itse asiassa, jos on useita riviä koodia näissä aaltosulkeita, 682 00:30:06,740 --> 00:30:09,020 he kaikki saavat toteutetaan yksi toisensa jälkeen. 683 00:30:09,020 --> 00:30:11,450 >> Ja vaikutus täällä, on ilmeisesti, tulostaa 684 00:30:11,450 --> 00:30:15,365 numero i, joka on menossa olla 0, ja sitten 1, ja sitten 2. 685 00:30:15,365 --> 00:30:15,865 Mutta miksi? 686 00:30:15,865 --> 00:30:17,410 Miksi se saa kasvatetaan? 687 00:30:17,410 --> 00:30:20,680 No, neljäs asia, joka käy niin, että tämä syntaksi 688 00:30:20,680 --> 00:30:22,610 saa suorittaa, kun puolipiste. 689 00:30:22,610 --> 00:30:27,506 i ++ on lyhenne tapa sanoa; ottaa arvo I, ja lisätään 1 siihen; 690 00:30:27,506 --> 00:30:30,380 ja sitten seuraavalla kerralla, lisätä 1 se; ja seuraavalla kerralla, 691 00:30:30,380 --> 00:30:31,330 lisätään 1 siihen. 692 00:30:31,330 --> 00:30:33,640 >> Jos siis pitää käynnissä, mitä tulee tapahtumaan 693 00:30:33,640 --> 00:30:35,890 seuraavaksi En aio alustaa olen koskaan uudelleen. 694 00:30:35,890 --> 00:30:38,290 Jos Pidin alustetaan i 0, tässä esimerkissä 695 00:30:38,290 --> 00:30:41,110 loppuisi koskaan, sillä Olisin jumissa 0. 696 00:30:41,110 --> 00:30:43,870 Mutta mitä tulee tapahtumaan on että ehto tarkistetaan, 697 00:30:43,870 --> 00:30:54,280 koodiriviä saa suoritetaan, aion kasvatetaan, 698 00:30:54,280 --> 00:30:56,970 ehto tarkistetaan, koodi toteutettu. 699 00:30:56,970 --> 00:30:59,790 Ja se pidetään pyöräily uudelleen, ja uudestaan, ja uudestaan, 700 00:30:59,790 --> 00:31:03,340 kunnes i ++ indusoi arvo 50. 701 00:31:03,340 --> 00:31:05,870 >> Ehto sanoo sitten, on 50 vähemmän kuin 50? 702 00:31:05,870 --> 00:31:09,360 Vastaus on tietenkin, ei ole, ja joten koko koodi pysähtyy täytäntöönpanosta. 703 00:31:09,360 --> 00:31:13,020 Ja jos sinulla on enemmän koodi ruudulla alhaalla, se mitä tapahtuu seuraavaksi. 704 00:31:13,020 --> 00:31:17,530 Se ponnahtaa ulos näistä aaltosulkeita ja edelleen tulostaa enemmän jälkeen. 705 00:31:17,530 --> 00:31:20,470 >> Joten vitsi nyt, mistä foxtrot, että sinun ehkä nyt ymmärtää. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Se on aina hauskaa. 708 00:31:31,560 --> 00:31:34,110 Se on kuin naurahtaa sellainen suodattua, 709 00:31:34,110 --> 00:31:38,370 ja sitten huomaat ei pitäisi olla nauraa huumoria näin. 710 00:31:38,370 --> 00:31:41,160 Mutta on joitakin takeaway täällä, pedagogisesti, too. 711 00:31:41,160 --> 00:31:43,577 Joten käy ilmi, että olen puuttuva pala syntaksin, 712 00:31:43,577 --> 00:31:45,410 tai Foxtrot on kadonnut pala syntaksin täällä. 713 00:31:45,410 --> 00:31:48,076 Mitä puuttuu, että meillä on ollut joka toisessa esimerkissä, tähän mennessä? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Paluu, on siellä, niin se on jotain muuta, 716 00:31:53,390 --> 00:31:54,440 että me palata ennen pitkää. 717 00:31:54,440 --> 00:31:55,398 Mitä puuttuu, vaikka? 718 00:31:55,398 --> 00:31:55,908 Joo. 719 00:31:55,908 --> 00:31:58,150 >> Yleisöstä: alustus [kuultavissa]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J MALAN: OK. 721 00:31:58,470 --> 00:31:58,980 Niin joo. 722 00:31:58,980 --> 00:32:03,210 Joten oikeastaan, tämä is-- No, ja määrä on alustettu 723 00:32:03,210 --> 00:32:05,470 yläpuolella, tai pikemminkin, julisti yläpuolella. 724 00:32:05,470 --> 00:32:06,960 Joten tämä on toinen tapa tehdä se. 725 00:32:06,960 --> 00:32:08,685 Mutta ei samalla linjalla se on voimassa kuitenkin. 726 00:32:08,685 --> 00:32:09,310 Entä täällä? 727 00:32:09,310 --> 00:32:10,196 >> Yleisöstä: Onko se aaltosulkeita? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J MALAN: Joo. 729 00:32:10,640 --> 00:32:12,080 Joten aaltosulkumerkkien puuttuvat. 730 00:32:12,080 --> 00:32:15,495 Mutta tämä koodi, tarkoitan, heidän luotto, on todella, syntaktisesti voimassa. 731 00:32:15,495 --> 00:32:17,610 On käynyt ilmi, et tarvitsevat aaltosulkeita 732 00:32:17,610 --> 00:32:21,691 jos sinulla on vain yksi rivi koodia, joka haluat suorittaa sisällä silmukan. 733 00:32:21,691 --> 00:32:24,190 Nyt aina, luokassa ja kaikki meidän jakelu koodin, 734 00:32:24,190 --> 00:32:26,730 ovat aaltosulkeita Joka tapauksessa, vain selvyyden vuoksi. 735 00:32:26,730 --> 00:32:29,010 Mutta ymmärtää, että oppikirjoissa ja online-esimerkkejä, 736 00:32:29,010 --> 00:32:31,300 saatat hyvinkin nähdä kihara braces puuttuu joskus. 737 00:32:31,300 --> 00:32:34,850 Ja se on OK, jos mitä ovat sisennetty ja tarkoitettu 738 00:32:34,850 --> 00:32:38,650 on vain riviäkään koodia, eikä useita riviä koodia, mahdollisesti. 739 00:32:38,650 --> 00:32:39,150 Selvä. 740 00:32:39,150 --> 00:32:44,500 Joten liittyvät kysymys epätäsmällisyys, on kysymys ylivuoto, 741 00:32:44,500 --> 00:32:48,560 siinä mielessä, että samalla, ei luvulla on rajoituksia niihin 742 00:32:48,560 --> 00:32:49,970 aivan kuten liukulukuarvoja? 743 00:32:49,970 --> 00:32:53,120 Maailmassa liukuluku arvot, voimme vain olla niin tarkka, 744 00:32:53,120 --> 00:32:55,710 minkä jälkeen, joskus huonoja asioita voi tapahtua, 745 00:32:55,710 --> 00:32:57,760 ja meidän ohjelmat voivat olla buginen ja virhe. 746 00:32:57,760 --> 00:33:00,050 Nyt jopa kokonaislukuja, voit törmätä ongelmiin. 747 00:33:00,050 --> 00:33:03,820 Nyt kokonaisluku ei ole desimaalipilkun tai numeroiden jälkeen. 748 00:33:03,820 --> 00:33:07,130 Se on vain luonnollinen luku, tyypillisesti. 749 00:33:07,130 --> 00:33:09,430 Joten mikä voisi mennä vikaan int? 750 00:33:09,430 --> 00:33:12,210 Jos käytän int count, mikä voisi mennä pieleen? 751 00:33:12,210 --> 00:33:13,230 Näyttää paljon yksinkertaisempi. 752 00:33:13,230 --> 00:33:13,873 Joo. 753 00:33:13,873 --> 00:33:16,240 >> Yleisöstä: Jos numero saa [äänetön] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J MALAN: Joo. 755 00:33:17,073 --> 00:33:20,820 Mitä jos lasketaan niin korkea, että te voi ilmaista, että todella iso määrä. 756 00:33:20,820 --> 00:33:21,320 Oikea? 757 00:33:21,320 --> 00:33:23,910 Jossain vaiheessa, olet menossa ylittää rajoja 758 00:33:23,910 --> 00:33:27,077 32-bittinen arvo tai 64-bittinen arvo. 759 00:33:27,077 --> 00:33:29,410 Nyt taas, en ole varma, miten äännetään sana 64-bittinen arvo, 760 00:33:29,410 --> 00:33:32,230 mutta tiedän on 32-bittinen kokonaisluku, suurin arvo voi olla, 761 00:33:32,230 --> 00:33:35,490 jos se on vain positiivinen arvot, on noin 4 miljardia euroa. 762 00:33:35,490 --> 00:33:39,000 Joten jos yritän laskea 5000000000, jotain tulee tapahtumaan. 763 00:33:39,000 --> 00:33:41,050 Mutta katsotaanpa mitä itse asiassa, voi tapahtua. 764 00:33:41,050 --> 00:33:44,570 Kun maailma kokonaisluku ylivuoto, missä, tavallaan, 765 00:33:44,570 --> 00:33:48,270 ylivuoto kapasiteetti kokonaisluku, mitä voi tapahtua? 766 00:33:48,270 --> 00:33:51,190 >> Joten tässä on binaariluku se on takaisku 0. 767 00:33:51,190 --> 00:33:54,630 Se on kaikki 1: n, ja paikkamerkit siellä on toimivalta 2, 768 00:33:54,630 --> 00:33:55,980 joten tämä on binary. 769 00:33:55,980 --> 00:33:59,416 Nämä ovat siis 8, 1 bittiä ruudulla. 770 00:33:59,416 --> 00:34:01,290 Ja jos muistaa tai voit nopeasti tehdä matematiikasta, 771 00:34:01,290 --> 00:34:06,074 mitä arvo on edustettuna täällä nämä kahdeksan 1 bittiä? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Ja vaikka et olisi aivan varma matematiikka, voit tehdä sen ulos. 774 00:34:09,260 --> 00:34:10,550 Tai voit vain sellainen järjen kautta, 775 00:34:10,550 --> 00:34:12,633 Hetkinen, jos olen edustavat 8-bittinen arvo, 776 00:34:12,633 --> 00:34:17,750 ja minulla 256 mahdollista arvoa, mutta joista ensimmäinen on 0, 777 00:34:17,750 --> 00:34:19,909 Tiedän vain, että Suurin tulee olemaan 255, 778 00:34:19,909 --> 00:34:21,510 ja sitähän tämä voisi olla. 779 00:34:21,510 --> 00:34:26,060 >> Joten kai yritän lisätä 1 tähän arvoon. 780 00:34:26,060 --> 00:34:28,750 Mitä tekisit palkkaluokkaan koulu lisättäessä 1, ja se 781 00:34:28,750 --> 00:34:31,139 ei todellakaan sovi, koska sinun on suoritettava 1? 782 00:34:31,139 --> 00:34:34,380 Mikä on tämä numero menossa tulla kun lisäät 1? 783 00:34:34,380 --> 00:34:37,030 Se tulee tulla 0. 784 00:34:37,030 --> 00:34:37,530 Oikea? 785 00:34:37,530 --> 00:34:41,139 Koska jos sinulla on ollut enemmän bits-- Ja minä yrittää, sellainen, kirjoita se pois here-- 786 00:34:41,139 --> 00:34:44,710 jos meillä olisi enemmän bittejä, mitä me voisi tehdä täällä on lisätä 1, 787 00:34:44,710 --> 00:34:47,370 ja sitten saisimme tämän. 788 00:34:47,370 --> 00:34:48,739 Oho. 789 00:34:48,739 --> 00:34:52,250 Meillä olisi 1 bitin aina tänne. 790 00:34:52,250 --> 00:34:55,530 >> Mutta jos tämä on rajallinen arvo, se on vain 8 bittiä, 791 00:34:55,530 --> 00:34:57,480 ja se on ennalta määrätty tietokone, 792 00:34:57,480 --> 00:34:59,370 että 1 on käytännössä ole olemassa. 793 00:34:59,370 --> 00:35:00,980 Se juuri sellainen putoaa kalliolta. 794 00:35:00,980 --> 00:35:05,480 Joten jos lisäät 1-255, mitä arvo sinä ilmeisesti saada? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Ja niin numerot vahingossa, ja ehkä tahattomasti, 797 00:35:09,700 --> 00:35:12,040 päätyä kiertyy näin. 798 00:35:12,040 --> 00:35:14,079 Joten mitä voi olla vaikutuksia tämän? 799 00:35:14,079 --> 00:35:15,620 No, siellä on muutama eri asioita. 800 00:35:15,620 --> 00:35:18,751 Joten, se ei lopulta etsivät kuten 0, tahattomasti, 801 00:35:18,751 --> 00:35:20,750 mutta voit sellaista nähdä, jopa todellisessa maailmassa, 802 00:35:20,750 --> 00:35:23,416 parempi tai huonompi, ilmenemismuotoja tämä ajatus raja. 803 00:35:23,416 --> 00:35:26,630 Esimerkiksi joku teistä jotka koskaan pelannut Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 ei kukaan sattuvat tietää Enimmäismäärä kolikoita 805 00:35:28,880 --> 00:35:32,032 voit kerätä Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Ota arvaus perustuu päivän johdattelevia kysymyksiä. 807 00:35:35,640 --> 00:35:39,140 Se on suurempi kuin 256 tai 255. 808 00:35:39,140 --> 00:35:40,330 Se on 4000000000. 809 00:35:40,330 --> 00:35:42,080 Joten se kääntyy pois, ja siellä on people-- 810 00:35:42,080 --> 00:35:46,080 jotkut googling vahvisti viime täksi yöksi ovat saaneet 4000000000 kultakolikoita, 811 00:35:46,080 --> 00:35:47,730 tai vaikka mitä, Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Vaikka ilmeisesti, siellä huijata peli, 813 00:35:49,860 --> 00:35:53,222 siellä on vika tai ominaisuus, jonka avulla voit vain kertyy paljon ja paljon pisteitä. 814 00:35:53,222 --> 00:35:54,930 Mutta suurin mahdollinen arvo, mukaan 815 00:35:54,930 --> 00:35:58,360 Tämän kuvakaappaus joku I löytäneet verkosta, on todellakin, 4000000000. 816 00:35:58,360 --> 00:35:59,240 >> Nyt Miksi? 817 00:35:59,240 --> 00:36:03,040 Se on juuri 4000000000, luultavasti koska joku päätti, 818 00:36:03,040 --> 00:36:05,500 joka kirjoitti tässä pelissä, että he voisivat tehdä 4000000000, 819 00:36:05,500 --> 00:36:07,340 jotain, jotain, jotain, kuten arvo laitoin ylös 820 00:36:07,340 --> 00:36:10,256 kanssa laskin aikaisemmin, mutta se on vain hieman puhtaampi ihmisille 821 00:36:10,256 --> 00:36:12,610 sanoa enimmäismäärä on coins-- tai nastoja, 822 00:36:12,610 --> 00:36:14,860 kuten he kutsuvat them-- että olet voi kerätä on 4000000000. 823 00:36:14,860 --> 00:36:16,290 Ja niin, miksi tämä on? 824 00:36:16,290 --> 00:36:20,310 Miten LEGO peli täytäntöönpanosta laskuri 825 00:36:20,310 --> 00:36:23,420 joka on pitää kirjaa kolikoiden määrä sinulla on? 826 00:36:23,420 --> 00:36:24,266 He käyttävät mitä? 827 00:36:24,266 --> 00:36:26,390 Yleisöstä: Se pysähtyy laskenta jälkeen 4000000000. 828 00:36:26,390 --> 00:36:27,720 DAVID J MALAN: Se pysähtyy laskenta jälkeen 4000000000, 829 00:36:27,720 --> 00:36:29,525 eli voit päätellä, ohjelmoijana, 830 00:36:29,525 --> 00:36:31,960 että he luultavasti käyttäen 32-bittinen kokonaisluku. 831 00:36:31,960 --> 00:36:35,380 Kuten ohjelmoija kirjaimellisesti vain kirjoitit, int, hänen tai hänen koodi, 832 00:36:35,380 --> 00:36:39,620 ja se tyyppi muuttujan he käyttävät tallentaa jonkun koodi. 833 00:36:39,620 --> 00:36:42,230 Joten ei muuta ilmentymiä tällaisia ​​rajoituksia. 834 00:36:42,230 --> 00:36:45,063 >> Joten en ole pelannut tätä game-- ja luin ylös historia 835 00:36:45,063 --> 00:36:48,470 voidaan vahvistaa much-- mutta alkuperäinen versio Civilization, missä 836 00:36:48,470 --> 00:36:53,240 olet ilmeisesti vuorovaikutuksessa keskenään muut ja voivat sotia tai rauha, 837 00:36:53,240 --> 00:36:56,590 Gandhi piti olla yksi rauhallisin merkkiä, kuin minä 838 00:36:56,590 --> 00:36:59,280 ymmärtää sen, että ensimmäinen versio Civilization. 839 00:36:59,280 --> 00:37:03,250 Ja itse asiassa, asteikolla 1-10, hänen aggressiivisuus oli vain 1. 840 00:37:03,250 --> 00:37:05,620 Joten koskaan niin lievästi aggressiivinen, ilmeisesti. 841 00:37:05,620 --> 00:37:11,590 >> Mutta jossain vaiheessa, voit ilmeisesti asentaa demokratian teidän maantiede. 842 00:37:11,590 --> 00:37:14,900 Ja jos asennat demokratia omaan versio pelistä, 843 00:37:14,900 --> 00:37:17,320 sitten aggression taso laskee. 844 00:37:17,320 --> 00:37:18,460 Se on hyvä asia. 845 00:37:18,460 --> 00:37:20,890 Ihmiset ovat enemmän rauhallinen ilmeisesti siinä tilanteessa. 846 00:37:20,890 --> 00:37:23,190 Mutta ilmeisesti, joku teki ei ole, jos kunto 847 00:37:23,190 --> 00:37:24,780 alkuperäisessä versiossa koodin. 848 00:37:24,780 --> 00:37:30,650 >> Joten Gandhin aggression taso meni positiivinen 1, miinus 2, negatiiviseen 1, 849 00:37:30,650 --> 00:37:33,840 mutta peli ei ymmärtää negatiivisia lukuja. 850 00:37:33,840 --> 00:37:38,680 Mitä tapahtui oli Gandhin aggression taso meni 1, 0, ja negatiivinen 1, 851 00:37:38,680 --> 00:37:40,900 jolla oli vaikutus kiertyy olemaan 852 00:37:40,900 --> 00:37:44,690 aggressiivinen luonne peli, arvossa 255, 853 00:37:44,690 --> 00:37:46,630 asteikolla 1-10. 854 00:37:46,630 --> 00:37:49,887 Ja sen jälkeen, että on ollut lisää inkarnaatioihin tätä peliä, 855 00:37:49,887 --> 00:37:51,720 ja he pitäneet sitä eräänlainen Pääsiäismuna, 856 00:37:51,720 --> 00:37:53,870 että Gandhi on ilmeisesti niin hirveän aggressiivinen. 857 00:37:53,870 --> 00:37:56,740 Mutta se oli seurausta hyvin yksinkertainen ohjelmointivirhe 858 00:37:56,740 --> 00:37:58,630 että hyvin varhainen versio pelistä. 859 00:37:58,630 --> 00:38:02,860 >> Nyt enemmän huolestuttavan, enemmän Äskettäin Boeing 787 860 00:38:02,860 --> 00:38:05,720 dokumentoitiin olevan vika, ei sellaista laitteen 861 00:38:05,720 --> 00:38:07,340 voit erityisemmin halua olla bugi. 862 00:38:07,340 --> 00:38:10,130 Ja oireita, että Luen täältä, artikkeli verkossa, 863 00:38:10,130 --> 00:38:13,840 oli tämä, malli 787 lentokoneen joka on kytketty jatkuvasti 864 00:38:13,840 --> 00:38:18,030 sillä 248 päivää voi menettää kaikki vaihtovirta, AC, 865 00:38:18,030 --> 00:38:20,850 sähkötehoa, koska generaattorin ohjausyksiköt, 866 00:38:20,850 --> 00:38:23,330 GCUs, samanaikaisesti menemättä Vikasietotila. 867 00:38:23,330 --> 00:38:26,790 Joten tämä oli varoitus Kun tämä ongelma havaittiin. 868 00:38:26,790 --> 00:38:28,750 Tämä ehto on aiheuttanut jonka ohjelmisto laskuri, 869 00:38:28,750 --> 00:38:32,230 sisäinen GCUs, niin kokonaisluku tai muuttuva, 870 00:38:32,230 --> 00:38:36,850 että tahto ylivuoto jälkeen 248 päivän jatkuvan tehon. 871 00:38:36,850 --> 00:38:40,350 Boeing on parhaillaan kehittää GCU ohjelmistopäivitys että 872 00:38:40,350 --> 00:38:42,350 korjaa turvalliselle käytölle. 873 00:38:42,350 --> 00:38:44,226 >> Niin paljon kuin ohjus skenaario, jossa 874 00:38:44,226 --> 00:38:46,850 heillä oli jonkinlainen muuttuja että oli laskenta, ja laskenta, 875 00:38:46,850 --> 00:38:50,720 ja laskenta, mutta vähitellen täynnä rajat pätevyytensä 876 00:38:50,720 --> 00:38:54,890 Samoin teki pirun lentokone on muuttuva ylivuoto 877 00:38:54,890 --> 00:38:56,410 jälkeen riittävästi aikaa käynnissä. 878 00:38:56,410 --> 00:38:59,240 Ja niin kieli poskessa tavalla työskennellä kiertää tämän ongelman 879 00:38:59,240 --> 00:39:04,400 on todella, käynnistät koneesi joka 247 päivää, niin että muisti saa pyyhkiä 880 00:39:04,400 --> 00:39:06,100 ja muuttuva palaa 0. 881 00:39:06,100 --> 00:39:09,410 Mutta huomaan, että tämä on hyvin suuri inkarnaatio ohjelmisto, 882 00:39:09,410 --> 00:39:14,070 mutta varsinkin kun kuulemme Applen käyttöjärjestelmien menee autoihin, 883 00:39:14,070 --> 00:39:18,030 ja itse ajaa autoa Google, ja tahansa määrä inkarnaatioihin ohjelmistojen 884 00:39:18,030 --> 00:39:21,000 jokapäiväisessä elämässämme, televisiot ja kellot, ja enemmän, 885 00:39:21,000 --> 00:39:24,950 ymmärtää ympäröi ohjelmisto, jotka kaikki on kirjoittanut meille ihmisille. 886 00:39:24,950 --> 00:39:28,150 >> Ja kuten me kaikki pian huomaamaan, se on erittäin helppo ja erittäin tyypillinen 887 00:39:28,150 --> 00:39:30,250 tehdä virheitä, kun kirjoitat ohjelmisto. 888 00:39:30,250 --> 00:39:32,745 Ja jos et kiinni niitä, pahoja asioita voi tapahtua. 889 00:39:32,745 --> 00:39:35,400 Nyt joskus, jotkut hauskoja asioita voi tapahtua, 890 00:39:35,400 --> 00:39:38,280 tai ainakin joskus me osaavat odottaa joitakin pahuus. 891 00:39:38,280 --> 00:39:41,550 Joten 0 jaettuna 0, palkkaluokasta koulu, on yleensä huono asia. 892 00:39:41,550 --> 00:39:43,050 Se on määrittelemätön. 893 00:39:43,050 --> 00:39:46,440 Ja se kääntyy out-- ja katsotaanpa minun mic voi poimia tämän up-- että Apple 894 00:39:46,440 --> 00:39:47,790 oli hauskaa tämän äskettäin. 895 00:39:47,790 --> 00:39:48,850 Joten minulla on iPhone täällä. 896 00:39:48,850 --> 00:39:54,160 Aion puhua Siri ja pyytää häntä antaa minulle vastaus 0 jaettuna 0. 897 00:39:54,160 --> 00:39:55,850 Mikä on 0 jaetaan 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> Siri: Kuvittele, että sinulla on 0 evästeet, ja jaat ne tasaisesti 900 00:40:02,230 --> 00:40:03,540 keskuudessa 0 ystävää. 901 00:40:03,540 --> 00:40:05,810 Kuinka monta evästeet ei kunkin henkilön päästä? 902 00:40:05,810 --> 00:40:06,350 Katso? 903 00:40:06,350 --> 00:40:07,660 Se ei ole mitään järkeä. 904 00:40:07,660 --> 00:40:10,540 Ja Cookie Monster on surullinen ettei evästeitä. 905 00:40:10,540 --> 00:40:13,987 Ja olet surullinen, että sinulla ei ole ystäviä. 906 00:40:13,987 --> 00:40:15,570 DAVID J MALAN: Se on tavallaan vastenmielinen. 907 00:40:15,570 --> 00:40:17,550 Joten tämä on mitä juuri sanoi siellä. 908 00:40:17,550 --> 00:40:21,380 Se on epämääräinen, se ei ole määritelty, ja todellakin, monet ohjelmointikielet 909 00:40:21,380 --> 00:40:24,950 tai, todella, kääntäjät havaita kun, ohjelmassa, 910 00:40:24,950 --> 00:40:27,050 yrittää jakaa 0 0. 911 00:40:27,050 --> 00:40:29,830 Hauskempaa kuin tämä kuitenkin on että ilmeisesti, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 on Twitter näinä päivinä. 913 00:40:31,270 --> 00:40:37,610 Ja hän vastasi tähän, tähän, joka on aivan ihana. 914 00:40:37,610 --> 00:40:40,110 Mutta sallikaa vilkaista pari muuta konstrukteja, 915 00:40:40,110 --> 00:40:43,459 ja sitten laittaa tämän koodia käyttää, hyvässä tavoin. 916 00:40:43,459 --> 00:40:45,250 Joten se kääntyy pois, paitsi silmukoita, siellä 917 00:40:45,250 --> 00:40:49,174 jotain kutsutaan while-silmukka, joka näyttää erilaiselta ja toteutetaan 918 00:40:49,174 --> 00:40:51,590 hieman differently-- ja me lopulta nähdä examples-- 919 00:40:51,590 --> 00:40:53,500 mutta jossain mielessä, on yksinkertaisempaa, koska se 920 00:40:53,500 --> 00:40:56,670 ei salli voit alustaa ja päivittää rajan sisäpuolella silmukan. 921 00:40:56,670 --> 00:40:57,794 Voit silti toteuttaa sitä. 922 00:40:57,794 --> 00:41:01,219 Joten voit tehdä täsmälleen samoja asioita jossa taas silmukka, kuten silmukka, 923 00:41:01,219 --> 00:41:03,260 mutta syntaksi, ultimately-- koska liitämme lopulta 924 00:41:03,260 --> 00:41:04,551 see-- tulee olemaan erilainen. 925 00:41:04,551 --> 00:41:07,450 On jopa tehdä, kun silmukka, joka on todella hieman erilainen, 926 00:41:07,450 --> 00:41:09,640 että taas silmukka ja samalla silmukka aina 927 00:41:09,640 --> 00:41:13,005 tarkistaa niiden kunto ensin, jos luet tämä asia ylhäältä alas, 928 00:41:13,005 --> 00:41:16,440 se tavallaan näyttää se menee tarkista se tila viime koska se on 929 00:41:16,440 --> 00:41:17,910 todella viimeinen rivi koodia. 930 00:41:17,910 --> 00:41:20,580 Ja todellakin, että tulee olemaan hyödyllinen tiettyihin ohjelmiin, että me kirjoittaa, 931 00:41:20,580 --> 00:41:23,746 jos haluat vain sokeasti tehdä jotain ja lopulta tarkista kunto. 932 00:41:23,746 --> 00:41:25,205 Se ei ole välttämättä huono asia. 933 00:41:25,205 --> 00:41:27,912 Jos haluamme muuttujia, voimme tehdä sen usealla eri tavalla. 934 00:41:27,912 --> 00:41:30,290 Ja näimme Foxtrot sarjakuva, yksi tapa tehdä se, 935 00:41:30,290 --> 00:41:33,400 jossa voit ilmoittaa oman muuttuja, kuten int laskuri puolipiste, 936 00:41:33,400 --> 00:41:36,570 ja sitten later-- ehkä seuraava linja, ehkä 10 riviä later-- 937 00:41:36,570 --> 00:41:37,800 todella alustaa sen. 938 00:41:37,800 --> 00:41:42,230 Joten nämä 2 riviä koodia julistaa muuttuja tyyppiä int 939 00:41:42,230 --> 00:41:44,930 ja kutsuvat sitä laskuri, joten se antaa minulle tarpeeksi bittejä pitämään int. 940 00:41:44,930 --> 00:41:48,230 Ja sitten lopulta, se asettaa arvo 0 tuohon muuttujaan. 941 00:41:48,230 --> 00:41:51,250 Se järjestää 0: n ja 1: n kuvio, että tiedämme viime viikolla, 942 00:41:51,250 --> 00:41:53,260 edustaa numero tunnemme 0. 943 00:41:53,260 --> 00:41:56,920 Tai suoraan sanottuna, voit tehdä näin paljon enemmän ytimekkäästi, aivan kuten tämä. 944 00:41:56,920 --> 00:41:59,390 >> Nyt meillä on myös kyky soittaa toimintoja. 945 00:41:59,390 --> 00:42:03,070 Ja itse asiassa tässä on 2 linja ohjelma, tai ote sen, 946 00:42:03,070 --> 00:42:06,157 jonka avulla voimme todella kirjoittaa koodia että 947 00:42:06,157 --> 00:42:08,990 saa merkkijonon user-- paljon kuten meidän vapaaehtoinen hetki ago-- 948 00:42:08,990 --> 00:42:11,320 tallentamalla tulos muuttuja nimeltä nimi, 949 00:42:11,320 --> 00:42:15,470 ja then-- aivan kuten meidän vapaaehtoisten kanssa printf-- tulostaa nämä arvot 950 00:42:15,470 --> 00:42:19,180 johtamalla kahdessa väitteitä, merkkijono, jota seuraa vaihteleva 951 00:42:19,180 --> 00:42:20,781 kutsutaan, nimi, itse. 952 00:42:20,781 --> 00:42:23,155 Joten katsomaan, ennen palaamme Mario siellä, 953 00:42:23,155 --> 00:42:26,010 klo pari nyt, esimerkkejä tästä. 954 00:42:26,010 --> 00:42:30,537 >> Aion mennä eteenpäin ja avoin ylös, sanokaamme, toiminto-0.c. 955 00:42:30,537 --> 00:42:33,120 Ja kuten aina, tämä koodi on saatavilla kurssin verkkosivuilla, 956 00:42:33,120 --> 00:42:35,660 joten voit pelata yhdessä osoitteessa kotiin ja katsoa sen myöhemmin. 957 00:42:35,660 --> 00:42:40,400 Mutta tässä ohjelmassa se on olemus, riviltä 17-22. 958 00:42:40,400 --> 00:42:43,270 Pääohjelma on, jos Ohjelma on aina menossa aloittaa. 959 00:42:43,270 --> 00:42:46,980 Tämä ohjelma, ilmeisesti, on menossa tulostaa nimesi, paksusuoli. 960 00:42:46,980 --> 00:42:50,320 Se sitten menee soittaa GetString, aivan kuten teimme meidän vapaaehtoisille. 961 00:42:50,320 --> 00:42:53,365 Ja sitten, tämä on mielenkiintoista, se tulee soittaa PrintName. 962 00:42:53,365 --> 00:42:56,490 On käynyt ilmi, kaikki tällä kertaa, siellä näyttää olevan toiminto nimeltään PrintName. 963 00:42:56,490 --> 00:42:57,614 Joka tulostaa jonkun nimi. 964 00:42:57,614 --> 00:43:01,210 Emme tarvitse käyttää printf alkaen menneen, siellä PrintName. 965 00:43:01,210 --> 00:43:03,500 >> Mutta se harhaanjohtavia koska PrintName ei 966 00:43:03,500 --> 00:43:06,760 tulevat C. Ihmiset eivät keksiä se noin 40 tai 50 vuotta sitten, 967 00:43:06,760 --> 00:43:07,990 Tein sen sijaan. 968 00:43:07,990 --> 00:43:10,330 Ja itse asiassa, jos selaa alas edelleen, ilmoitusta 969 00:43:10,330 --> 00:43:14,200 miten voin kirjoittaa oman toiminnot C. me lopulta 970 00:43:14,200 --> 00:43:16,319 miksi me pitää sanoa, mitätön, muutamassa paikassa, 971 00:43:16,319 --> 00:43:18,110 mutta tänään, katsotaanpa katsokaa nimi. 972 00:43:18,110 --> 00:43:20,905 >> On line 24, jos haluat Luo oma toiminta, 973 00:43:20,905 --> 00:43:22,780 voit kirjaimellisesti kirjoittaa toiminnon nimi. 974 00:43:22,780 --> 00:43:24,340 Valitsin PrintName. 975 00:43:24,340 --> 00:43:26,159 Suluissa, sinua määritä sitten millaisia 976 00:43:26,159 --> 00:43:28,450 panosten, ja kuinka monta haluavat tämä toiminto ottaa. 977 00:43:28,450 --> 00:43:31,906 Tässä tapauksessa, haluan ottaa 1 muuttuja nimeltä, nimi, 978 00:43:31,906 --> 00:43:34,030 ja se tulee olemaan tyyppi, string, joten se menee 979 00:43:34,030 --> 00:43:35,780 olla joitakin merkkijono. 980 00:43:35,780 --> 00:43:39,170 Ja sitten, tämä program-- aivan kuten Scratch, 981 00:43:39,170 --> 00:43:42,590 voit olla mukautettuja palapeli pieces-- tulee olemaan tämän mukautetun käyttäytymistä. 982 00:43:42,590 --> 00:43:46,760 Se tulee soittaa printf ohimennen, Hei, paikkamerkki, 983 00:43:46,760 --> 00:43:49,110 ja sitten se tulee kytkeä missä tahansa käyttäjä nimeltä. 984 00:43:49,110 --> 00:43:51,450 >> Joten tämä on esimerkki siitä, mitä tietojenkäsittelytieteessä olisi 985 00:43:51,450 --> 00:43:55,090 puhelu abstraktio tai toiminnallisia hajoaminen, jotka ovat vain 986 00:43:55,090 --> 00:43:58,110 fancy tapoja saying-- on, jos pidät tätä korkea ajatus, 987 00:43:58,110 --> 00:44:01,569 kuin haluan toiminnallisuutta tulostaa jonkun nimi, ehdottomasti sinua 988 00:44:01,569 --> 00:44:04,360 voi kirjaimellisesti kirjoittaa printf ja sitten kulkea argumentit haluat, 989 00:44:04,360 --> 00:44:07,340 ja ohjelma toimii, koska se on alkaen keskiviikkona. 990 00:44:07,340 --> 00:44:10,510 Mutta voit alkaa abstrakti pois käsite tulostus nimi. 991 00:44:10,510 --> 00:44:13,270 Voit antaa sille nimen, kuten PrintName, ja tämä 992 00:44:13,270 --> 00:44:15,280 on tämä ajatus tasoilla viikosta 0. 993 00:44:15,280 --> 00:44:19,910 >> Vastedes minä ja sinun ei tarvitse tietää tai välitä kuinka PrintName toteutetaan. 994 00:44:19,910 --> 00:44:22,470 Kyllä se käyttää printf, ehkä se ei, kuka tietää mitä käyttää? 995 00:44:22,470 --> 00:44:23,410 Ketä kiinnostaa? 996 00:44:23,410 --> 00:44:26,034 Nyt puhun täällä, sijasta täällä. 997 00:44:26,034 --> 00:44:28,700 Ja todellakin, meidän ohjelmat saavat kehittyneempiä ja hienostunut, 998 00:44:28,700 --> 00:44:32,550 aiomme pitää ottaa itsestäänselvyytenä että alemman tason palapelin palaset ovat olemassa. 999 00:44:32,550 --> 00:44:34,780 Koska me kirjoitti ne tai joku muu teki, niin 1000 00:44:34,780 --> 00:44:36,910 että voimme rakentaa niiden päälle. 1001 00:44:36,910 --> 00:44:39,430 Katsotaanpa katsomaan tätä variantti, toimivat yksi. 1002 00:44:39,430 --> 00:44:41,780 >> Joten tämä on hieman kehittynyt, mutta se osoittautuu 1003 00:44:41,780 --> 00:44:44,570 että CS50 kirjastossa, on vain GetInt toiminto. 1004 00:44:44,570 --> 00:44:47,720 Emme usko, vuotta sitten, että toteuttaa GetPositiveInt toiminto. 1005 00:44:47,720 --> 00:44:50,970 Ja se on vähän ärsyttävää, koska jos te kirjoitat ohjelmaa, jossa 1006 00:44:50,970 --> 00:44:53,325 haluat saada positiivinen kokonaisluku käyttäjä, 1007 00:44:53,325 --> 00:44:55,010 voit ehdottomasti käyttää GetInt. 1008 00:44:55,010 --> 00:44:57,840 Ja voit ehdottomasti tarkistaa kunto ja ehkä silmukka 1009 00:44:57,840 --> 00:45:00,320 jos tämä int on suurempi kuin 0 ja huutaa käyttäjä 1010 00:45:00,320 --> 00:45:02,699 jos hän ei anna olet positiivinen luku. 1011 00:45:02,699 --> 00:45:04,740 Mutta katsotaanpa rakentaa tätä rakennuspalikka itseämme,, 1012 00:45:04,740 --> 00:45:06,555 custom Scratch pala, jos haluatte. 1013 00:45:06,555 --> 00:45:08,680 Aion olla ohjelma täällä, että lopulta, minä 1014 00:45:08,680 --> 00:45:11,780 haluavat pystyä soittamaan GetPositiveInt, ja haluan olla 1015 00:45:11,780 --> 00:45:14,200 voitava tulostaa mitä se int on. 1016 00:45:14,200 --> 00:45:16,240 Mutta tämä on hajamielinen pois nyt. 1017 00:45:16,240 --> 00:45:19,050 Se on vain saanut korkean tason nimi, joka sanoo, mitä se tekee, 1018 00:45:19,050 --> 00:45:21,780 joka on hienoa, koska se on hyvin intuitiivinen nyt lukea. 1019 00:45:21,780 --> 00:45:24,710 Ja jos en välitä mitä alla huppu, haluan selaa alaspäin. 1020 00:45:24,710 --> 00:45:27,140 Ja se on hieman uhkaava aluksi, varsinkin 1021 00:45:27,140 --> 00:45:29,470 jos tämä on ensimmäinen ohjelma, mutta katsotaanpa katsomaan. 1022 00:45:29,470 --> 00:45:32,860 >> En enää sano, mitätön, koska se kääntyy pois toimintoja, 1023 00:45:32,860 --> 00:45:34,777 aivan kuten GetString, voi palauttaa arvon minulle. 1024 00:45:34,777 --> 00:45:36,610 He eivät vain tulostaa näytön, 1025 00:45:36,610 --> 00:45:38,410 he voivat itse käsi minulle jotain takaisin. 1026 00:45:38,410 --> 00:45:41,535 Ja taas ennen PrintName, En tarvitse mitään takaisin. 1027 00:45:41,535 --> 00:45:44,160 Tarvitsin sivuvaikutuksena jotain näy ruudulla, 1028 00:45:44,160 --> 00:45:46,570 mutta en tarvitse ihmisen luovuttamaan minulle jotain takaisin. 1029 00:45:46,570 --> 00:45:48,840 Täällä, GetPositiveInt, kuten kanssa GetInt, 1030 00:45:48,840 --> 00:45:50,640 Haluan luovutetaan jotain takaisin. 1031 00:45:50,640 --> 00:45:53,220 Joten sanon ei, mitätön, linjalla 23, mutta int, 1032 00:45:53,220 --> 00:45:55,570 jossa sanotaan, tämä toiminto että minä kirjoitan, 1033 00:45:55,570 --> 00:45:58,860 kutsutaan GetPositiveInt on menossa käsi minulle takaisin kokonaisluku, ei mitään, 1034 00:45:58,860 --> 00:45:59,890 ei mitätön. 1035 00:45:59,890 --> 00:46:03,280 >> Samalla se aikoo ottaa mitään panoksia, joten olen, sellainen, päinvastainen se. 1036 00:46:03,280 --> 00:46:08,280 En anna GetPositiveInt mitään panos, haluan sen antaa minulle sen tuotos. 1037 00:46:08,280 --> 00:46:09,800 Ja mitä sitten tapahtuu nyt? 1038 00:46:09,800 --> 00:46:11,640 Joten tässä miten voin julistaa muuttuja. 1039 00:46:11,640 --> 00:46:15,090 Olen tehnyt sen ulkopuolella silmukan, syistä me lopulta nähdä, 1040 00:46:15,090 --> 00:46:17,700 mutta tämä vain antaa minulle 32 bittiä kutsutaan, n, 1041 00:46:17,700 --> 00:46:20,952 ja olen ennalta määrittämiseksi ne tallentaa kokonaisluku. 1042 00:46:20,952 --> 00:46:23,660 Ja tässä on että, tehdä, kun konstrukti, ja siksi se on hyödyllinen. 1043 00:46:23,660 --> 00:46:26,700 Kirjaimellisesti tehdä tämän, kun n on pienempi kuin 1. 1044 00:46:26,700 --> 00:46:28,030 Joten mitä tapahtuu. 1045 00:46:28,030 --> 00:46:30,760 Minä tulostaa, ota anna minulle positiivinen int. 1046 00:46:30,760 --> 00:46:34,300 Sitten saada int käyttäen CS50: n toimivat ja tallennettu n. 1047 00:46:34,300 --> 00:46:38,990 >> Ja sitten, mitä koodiriviä luultavasti saa suorittaa seuraavaksi, loogisesti? 1048 00:46:38,990 --> 00:46:41,890 Joka rivinumero? 1049 00:46:41,890 --> 00:46:42,571 Joo, niin 31. 1050 00:46:42,571 --> 00:46:45,320 Et tiedä tätä, kunnes olet kerrottu tai sellainen päätellä sitä, 1051 00:46:45,320 --> 00:46:45,986 mutta se on totta. 1052 00:46:45,986 --> 00:46:48,280 Se menee ylhäältä alas ja sitten pitää toistaa. 1053 00:46:48,280 --> 00:46:55,840 Joten jos olen kirjoittanut vaikkapa numero negatiivinen 1, on n alle negatiivinen 1? 1054 00:46:55,840 --> 00:46:56,340 Joo. 1055 00:46:56,340 --> 00:46:58,470 Koska negatiivinen 1 on pienempi kuin 1. 1056 00:46:58,470 --> 00:46:59,510 Joten mitä pitäisi tapahtua? 1057 00:46:59,510 --> 00:47:03,260 Aion tehdä tämän kun n on pienempi kuin 1, 1058 00:47:03,260 --> 00:47:05,760 joten aion mennä takaisin linja 28. 1059 00:47:05,760 --> 00:47:09,530 >> Ja kukin time-- ja lähdetään ajaa this-- tehdä toiminto 1 kääntää se, 1060 00:47:09,530 --> 00:47:11,340 ja nyt piste slash toiminta 1. 1061 00:47:11,340 --> 00:47:14,280 Jos kirjoitan negatiivinen 1, se on menossa pitämään huutaa minua 1062 00:47:14,280 --> 00:47:17,530 kunnes yhteistyötä, koska kukin minun tulot on alle 1 1063 00:47:17,530 --> 00:47:20,070 ja jos se on vain alle 1, Aion jatkaa tätä. 1064 00:47:20,070 --> 00:47:24,240 Jos olen vihdoin antoivat useita kuten 50, Onneksi, se sanoo, kiitos 50. 1065 00:47:24,240 --> 00:47:24,970 Miksi? 1066 00:47:24,970 --> 00:47:30,640 Koska heti kun n on vähintään 1, lopetan juutu tämän silmukan, 1067 00:47:30,640 --> 00:47:33,840 ja tämä uusi avainsana tänään, paluu, kirjaimellisesti tekee sen. 1068 00:47:33,840 --> 00:47:36,800 Joten olen juuri toteutettu, vuonna mielessä, vastaa GetString, 1069 00:47:36,800 --> 00:47:40,590 missä olen luovuttamalla takaisin kuka käyttää minua, jotain arvoa. 1070 00:47:40,590 --> 00:47:42,820 Sen ei tarvitse olla merkkijono, se int. 1071 00:47:42,820 --> 00:47:44,990 Niin yksinkertainen, nopea Esimerkiksi mutta me pian 1072 00:47:44,990 --> 00:47:47,930 nähdä kehittyneempiä versiot edelleen. 1073 00:47:47,930 --> 00:47:53,882 Itse asiassa, nyt katsomaan numeerinen yksi, joka on nimeltään return.c. 1074 00:47:53,882 --> 00:47:55,590 Ja tämä on itse asiassa hieman yksinkertaisempi. 1075 00:47:55,590 --> 00:47:59,010 Joten tämä ohjelman tarkoitusta life-- katsotaanpa kääntää ja ajaa sitä, 1076 00:47:59,010 --> 00:48:03,090 joten paluu, piste slash, return-- huomautus 1077 00:48:03,090 --> 00:48:05,530 ohjelma yksinkertaisesti kuutiot arvo 2. 1078 00:48:05,530 --> 00:48:08,410 Se on melko typerää, on vaikea koodi, se ei ota mitään panoksia, 1079 00:48:08,410 --> 00:48:12,220 mutta se osoittaa toiseen toiminto, joka olen kirjoittanut itse. 1080 00:48:12,220 --> 00:48:15,760 Joten tässä, olen julistanut muuttuja, nimeltään X, tyyppiä int, 1081 00:48:15,760 --> 00:48:17,840 sama numero 2, täysin mielivaltainen. 1082 00:48:17,840 --> 00:48:19,530 Tämä on vain joitakin pörröinen tulostusta. 1083 00:48:19,530 --> 00:48:23,070 Siinä sanotaan x on nyt, niin ja Sinänsä cubing piste piste piste. 1084 00:48:23,070 --> 00:48:26,390 Ja taika on ilmeisesti linjassa 21. 1085 00:48:26,390 --> 00:48:30,120 Soitan toiminto nimeltään, kuutio, Olen siirtää ne paperille 1086 00:48:30,120 --> 00:48:32,890 numerolla 2 kirjoitettu, ja mitä arvoa, matemaattisesti, 1087 00:48:32,890 --> 00:48:34,860 minä haluan päästä pois siitä? 1088 00:48:34,860 --> 00:48:36,570 Aivan kuten järki tarkistaa? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Oikea? 1091 00:48:37,570 --> 00:48:40,160 I want 2 cubed takaisin, 2 teho 3, joten 8 takaisin. 1092 00:48:40,160 --> 00:48:42,570 >> Joten jos on kuutio toteutetaan? 1093 00:48:42,570 --> 00:48:44,349 No, huomaa sitä täytäntöön täällä. 1094 00:48:44,349 --> 00:48:47,140 Ja aivan kuten ennenkin, loogisesti, vaikka syntaksi on luultavasti 1095 00:48:47,140 --> 00:48:49,320 hyvin uusi monille teistä, Haluan tämän toiminnon 1096 00:48:49,320 --> 00:48:51,780 käsi minut takaisin arkki paperi int sitä. 1097 00:48:51,780 --> 00:48:53,990 Olen siis int, nimi on mielivaltaisesti, 1098 00:48:53,990 --> 00:48:55,530 mutta sopivasti nimeltään kuutio. 1099 00:48:55,530 --> 00:48:58,430 Tulo se, on N tyyppi kokonaisluku, niin se on 1100 00:48:58,430 --> 00:49:00,800 miten voin kulkea numero 2 paperiarkille. 1101 00:49:00,800 --> 00:49:03,910 Ja sitten käy ilmi, C tuet matematiikka, joten sinulla ei ole X: n aikoja, 1102 00:49:03,910 --> 00:49:06,680 käytät vain tähdellä kerrottavaksi. 1103 00:49:06,680 --> 00:49:11,070 Ja tämä palaa n kertaa n kertaa n, joka on yksinkertaisesti kuutioitu arvo. 1104 00:49:11,070 --> 00:49:12,840 >> Missä siis olemme menossa kaiken tämän? 1105 00:49:12,840 --> 00:49:14,570 Tämä on ehdottomasti pyörremyrsky kiertue, varma, 1106 00:49:14,570 --> 00:49:16,410 että Super kohdissa ja ongelma asettaa 1, 1107 00:49:16,410 --> 00:49:18,368 voit kulkenut kaikki tämä sitäkin. 1108 00:49:18,368 --> 00:49:22,490 Ja ongelma asettaa 1, me siirtyminen graafisesta maailman Scratch 1109 00:49:22,490 --> 00:49:25,640 jotain enemmän komentoriviltä C. Mutta me innoitusta 1110 00:49:25,640 --> 00:49:27,680 tästä täällä peli menneiden, jossa 1111 00:49:27,680 --> 00:49:31,591 käyttäen C ja tavallinen painos p joukko voit toteuttaa Mario pyramidi. 1112 00:49:31,591 --> 00:49:34,340 Ja hakkeri painos p joukko, jos niin haluavat valita, 1113 00:49:34,340 --> 00:49:38,280 voit toteuttaa hieman enemmän haastava pyramidi kaksi piikkiä. 1114 00:49:38,280 --> 00:49:41,239 Voit myös toteuttaa algoritmi, ahne algoritmi. 1115 00:49:41,239 --> 00:49:43,030 On käynyt siellä n mielenkiintoisia logiikka 1116 00:49:43,030 --> 00:49:45,640 takana prosessi käynnissä kassan asema 1117 00:49:45,640 --> 00:49:47,410 ja todella luovuttamalla joku takaisin muutos. 1118 00:49:47,410 --> 00:49:50,410 On algoritmi, joka on melko yksinkertaista, että saatat jopa 1119 00:49:50,410 --> 00:49:53,576 ymmärtää intuitiivisesti kun ensin lukea it-- ymmärtämättä, että mitä olen aina 1120 00:49:53,576 --> 00:49:57,110 tehnyt mitään aika olen antanut joku joitakin rahaa back-- jonka avulla voit aina 1121 00:49:57,110 --> 00:50:00,679 määrän minimoimiseksi paperi muistiinpanoja tai metallikolikoita 1122 00:50:00,679 --> 00:50:02,220 että olet luovuttamalla takaisin käyttäjälle. 1123 00:50:02,220 --> 00:50:04,610 Ja tämä tietenkin, on vakuuttava koska jos menet CVS tai vaikka mitä, 1124 00:50:04,610 --> 00:50:06,430 et halua olla kädellä koko joukko ykkösiä 1125 00:50:06,430 --> 00:50:07,596 tai koko joukko penniä. 1126 00:50:07,596 --> 00:50:10,120 Haluat vähiten kolikot, luultavasti mahdollista. 1127 00:50:10,120 --> 00:50:13,070 >> Lopuksi, voit myös tehtäväkseen harrastella maailmassa vettä 1128 00:50:13,070 --> 00:50:17,220 ja itse saada arvostusta ja kartoitus virtausnopeudet 1129 00:50:17,220 --> 00:50:19,890 samankaltaisten, vettä suihkussa, kuinka paljon vettä käytetään. 1130 00:50:19,890 --> 00:50:22,640 Ja vihjaus siihen, on tämä leike täällä, 1131 00:50:22,640 --> 00:50:24,840 joka me päättyy varten vain 60 sekuntia, että 1132 00:50:24,840 --> 00:50:29,070 maalaa kuvan alhaisen virtaaman suihkupäissä. 1133 00:50:29,070 --> 00:50:30,886 >> [VIDEOTOISTOSTA] 1134 00:50:30,886 --> 00:50:31,385 -Selvä. 1135 00:50:31,385 --> 00:50:32,774 Sain kaiken täällä. 1136 00:50:32,774 --> 00:50:35,800 Sain Cyclone F sarja, Hydra JetFlow, Tukholma 1137 00:50:35,800 --> 00:50:37,660 Supersteam, you name it. 1138 00:50:37,660 --> 00:50:39,265 >> -Ja Mitä suosittelette? 1139 00:50:39,265 --> 00:50:40,460 >> -Mitä etsit? 1140 00:50:40,460 --> 00:50:41,300 >> -Power Mies. 1141 00:50:41,300 --> 00:50:42,285 Virta. 1142 00:50:42,285 --> 00:50:42,910 -Kuten Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -Se On säteilyn. 1144 00:50:44,520 --> 00:50:46,335 -Oikein. 1145 00:50:46,335 --> 00:50:48,275 -Nyt Mikä tämä on? 1146 00:50:48,275 --> 00:50:49,704 -Se On Commando 450. 1147 00:50:49,704 --> 00:50:50,620 En myy, että yksi. 1148 00:50:50,620 --> 00:50:51,700 >> -Mutta Se mitä me haluamme. 1149 00:50:51,700 --> 00:50:52,680 Se on kommando 450. 1150 00:50:52,680 --> 00:50:53,882 >> -Ei Usko minua. 1151 00:50:53,882 --> 00:50:55,090 Sitä käytetään vain sirkus. 1152 00:50:55,090 --> 00:50:56,512 Se norsujen. 1153 00:50:56,512 --> 00:50:59,356 >> -Otan Maksaa mitään. 1154 00:50:59,356 --> 00:51:01,252 >> Entä Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Hän Ei voinut käsitellä sitä. 1156 00:51:02,760 --> 00:51:04,910 Hän on herkkä. 1157 00:51:04,910 --> 00:51:05,750 Todellakin. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [Lopeta toisto] 1160 00:51:37,320 --> 00:51:37,700 DAVID J MALAN: Selvä. 1161 00:51:37,700 --> 00:51:38,820 Se jos CS50. 1162 00:51:38,820 --> 00:51:40,050 Nähdään ensi viikolla. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> SPEAKER 1: [? Scully?], [? Ian,?] sikäli kuin tämä Outro hanke, 1165 00:51:49,029 --> 00:51:50,362 mitä ovat te keksiä? 1166 00:51:50,362 --> 00:51:51,990 >> SPEAKER 2: No, olemme antaneet se erilaisia ​​ajattelun, 1167 00:51:51,990 --> 00:51:53,250 ja uskomme, että paras tapa to-- 1168 00:51:53,250 --> 00:51:53,660 >> SPEAKER 3: Saanko? 1169 00:51:53,660 --> 00:51:54,326 >> SPEAKER 2: Joo. 1170 00:51:54,326 --> 00:51:56,360 Kaikin keinoin, todella. 1171 00:51:56,360 --> 00:51:59,425 >> SPEAKER 3: Minusta Voimme tiivistää meidän ajatus 1172 00:51:59,425 --> 00:52:05,450 varten outros yhdellä word-- mitään. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J MALAN: Ei mitään? 1175 00:52:10,409 --> 00:52:11,200 SPEAKER 3: Ei mitään. 1176 00:52:11,200 --> 00:52:12,990 DAVID J MALAN: Mitä se tarkoittaa? 1177 00:52:12,990 --> 00:52:16,260 SPEAKER 3: outros ovat tyhjästä. 1178 00:52:16,260 --> 00:52:21,720 SPEAKER 2: No, tarkoitan, filosofian, Tarkoitan, mikään ei ole aina jotain. 1179 00:52:21,720 --> 00:52:24,200 SPEAKER 1: Niin what's-- mikä on lähtökohta? 1180 00:52:24,200 --> 00:52:25,720 SPEAKER 3: Joten se on kuin elämä. 1181 00:52:25,720 --> 00:52:26,680 OK. 1182 00:52:26,680 --> 00:52:28,294 Mitä teit tänään? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J MALAN: Nousin, oli aamiainen, ja tuli töihin. 1184 00:52:31,811 --> 00:52:34,056 >> SPEAKER 3: Se outro. 1185 00:52:34,056 --> 00:52:36,806 SPEAKER 2: Mutta en tarkoita, ei pitäisi jotain tapahtuu hänelle the-- 1186 00:52:36,806 --> 00:52:37,889 SPEAKER 3: Ei, ei, ei, ei. 1187 00:52:37,889 --> 00:52:40,220 Mitään ei tapahdu. 1188 00:52:40,220 --> 00:52:42,910 >> SPEAKER 1: Miksi me katsomassa? 1189 00:52:42,910 --> 00:52:46,956 >> SPEAKER 3: Koska se outro varten CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J MALAN: Ei vielä. 1191 00:52:48,652 --> 00:52:49,151