1 00:00:00,000 --> 00:00:00,000 2 00:00:00,000 --> 00:00:00,000 [MUSIIKKIA] 3 00:00:00,000 --> 00:00:13,950 4 00:00:13,950 --> 00:00:16,240 >> DAVID J. MALAN: Selvﺣ۳, tﺣ۳mﺣ۳ on CS50. 5 00:00:16,240 --> 00:00:18,010 Ja tﺣ۳mﺣ۳ on viikolla yksi. 6 00:00:18,010 --> 00:00:22,050 Niin muistaa, ettﺣ۳ viimeisen kerran viikolla nolla, keskityimme pﺣ۳ﺣ۳ttelyﺣ۳. 7 00:00:22,050 --> 00:00:25,440 Ja me siirtynyt kuin se, Scratch, graafinen ohjelmointi 8 00:00:25,440 --> 00:00:27,360 kieli ystﺣ۳vﺣ۳mme MIT: n Media Lab. 9 00:00:27,360 --> 00:00:31,730 >> Ja Scratch, teimme tutkia ajatuksia, kuten toiminnot, ja olosuhteet, 10 00:00:31,730 --> 00:00:35,210 ja silmukat ja muuttujia, ja jopa tapahtumia, ja langat, ja enemmﺣ۳n. 11 00:00:35,210 --> 00:00:37,880 Ja tﺣ۳nﺣ۳ﺣ۳n, aiomme jatkaa nﺣ۳itﺣ۳ ideoita, 12 00:00:37,880 --> 00:00:40,630 ja todella ottaa niitﺣ۳ myﺣﭘnnetty, mutta kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ ne 13 00:00:40,630 --> 00:00:44,220 toiselle kielelle tunnetaan C. Nyt, C on perinteisempi kieltﺣ۳. 14 00:00:44,220 --> 00:00:46,020 Se on alemmalla tasolla kieli, jos haluatte. 15 00:00:46,020 --> 00:00:47,300 >> Se on puhtaasti tekstimuodossa. 16 00:00:47,300 --> 00:00:49,910 Ja niin ensi silmﺣ۳yksellﺣ۳, se on kaikki tulee nﺣ۳yttﺣ۳mﺣ۳ﺣ۳n varsin arvoituksellinen 17 00:00:49,910 --> 00:00:51,430 jos et ole koskaan ohjelmoida ennen. 18 00:00:51,430 --> 00:00:53,530 Aiomme olla puolipistettﺣ۳, ja suluissa, 19 00:00:53,530 --> 00:00:55,150 ja aaltosulkei-, ja enemmﺣ۳n. 20 00:00:55,150 --> 00:00:57,240 Mutta ymmﺣ۳rtﺣ۳ﺣ۳, ettﺣ۳ vaikka vaikka syntaksi on 21 00:00:57,240 --> 00:01:00,600 noin nﺣ۳yttﺣ۳ﺣ۳ hieman tuntemattomia useimpiin teistﺣ۳, katso aiemmin, ettﺣ۳. 22 00:01:00,600 --> 00:01:03,220 Ja yrittﺣ۳ﺣ۳ nﺣ۳hdﺣ۳ ideoita jotka ovat todellakin tuttu, 23 00:01:03,220 --> 00:01:06,750 koska tﺣ۳ﺣ۳llﺣ۳ viikolla yhdessﺣ۳ mitﺣ۳ alamme tehdﺣ۳ on vertailla, 24 00:01:06,750 --> 00:01:08,980 aluksi, Scratch versus C. 25 00:01:08,980 --> 00:01:12,350 >> Niinpﺣ۳ esimerkiksi, muistaa, ettﺣ۳ kun me toteutetaan ensimmﺣ۳inen ohjelmiemme 26 00:01:12,350 --> 00:01:16,220 viimeksi meillﺣ۳ oli lohko, joka nﺣ۳ytti vﺣ۳hﺣ۳n jotain tﺣ۳mﺣ۳n kaltaisia ﻗ€‹ﻗ€‹osia, kun 27 00:01:16,220 --> 00:01:19,990 Vihreﺣ۳ lippu napsautetaan, ja sitten meillﺣ۳ oli yksi tai useampi palapelin palaset sen alapuolella, 28 00:01:19,990 --> 00:01:22,150 tﺣ۳ssﺣ۳ tapauksessa sanoa, hei maailma. 29 00:01:22,150 --> 00:01:24,870 Joten todellakin Scratch, kun klikkaa ettﺣ۳ Vihreﺣ۳ lippu 30 00:01:24,870 --> 00:01:27,390 ajaa minun ohjelma, niin puhumaan, nﺣ۳mﺣ۳ ovat 31 00:01:27,390 --> 00:01:29,520 lohkot saavat toteutettu, tai juosta. 32 00:01:29,520 --> 00:01:32,230 Ja erityisesti, Scratch sanoi, hei, maailma. 33 00:01:32,230 --> 00:01:35,377 >> Nyt olen voinut mﺣ۳ﺣ۳ritellyt eri sanoja tﺣ۳ﺣ۳llﺣ۳. 34 00:01:35,377 --> 00:01:37,960 Mutta saa nﺣ۳hdﺣ۳, ettﺣ۳ todellakin, monet Nﺣ۳iden blocks-- ja todellakin 35 00:01:37,960 --> 00:01:41,880 C monet functions-- voi olla parametrized tai rﺣ۳ﺣ۳tﺣ۳lﺣﭘityjﺣ۳ 36 00:01:41,880 --> 00:01:43,150 tehdﺣ۳ eri asioita. 37 00:01:43,150 --> 00:01:45,520 Itse asiassa C jos haluat muuntaa, nyt, 38 00:01:45,520 --> 00:01:47,567 Tﺣ۳mﺣ۳n Scratch-ohjelma Tﺣ۳mﺣ۳n muuta kieltﺣ۳, 39 00:01:47,567 --> 00:01:49,650 aiomme kirjoittaa vﺣ۳hﺣ۳n jotain tﺣ۳llaista. 40 00:01:49,650 --> 00:01:52,540 >> Myﺣﭘnnettﺣ۳kﺣﭘﺣﭘn, on jonkin verran tuntemattomia syntaksin siellﺣ۳ todennﺣ۳kﺣﭘisesti, int, 41 00:01:52,540 --> 00:01:54,380 ja suluissa, ja mitﺣ۳tﺣﭘn. 42 00:01:54,380 --> 00:01:57,740 Mutta printf-- vaikka olisit sitﺣ۳ mieltﺣ۳, ettﺣ۳ olisi vain tulostaa. 43 00:01:57,740 --> 00:02:00,120 Mutta print tarkoittaa print alustettu, kuten tulemme pian nﺣ۳hdﺣ۳. 44 00:02:00,120 --> 00:02:02,140 Tﺣ۳mﺣ۳ kirjaimellisesti tulostaa nﺣ۳ytﺣﭘlle tahansa 45 00:02:02,140 --> 00:02:05,990 on sisﺣ۳llﺣ۳ niitﺣ۳ sulkuja, jotka tietenkin tﺣ۳ssﺣ۳ tapauksessa on, Hello World. 46 00:02:05,990 --> 00:02:09,290 >> Mutta huomaat joitakin muita syntaksi, jotkut lainausmerkkeihin, 47 00:02:09,290 --> 00:02:11,890 ettﺣ۳ suluissa lopussa, semi-paksusuolen ja vastaavat. 48 00:02:11,890 --> 00:02:15,027 Joten siellﺣ۳ on hieman ylﺣ۳puolella, niin sanotusti sekﺣ۳ kognitiivisesti 49 00:02:15,027 --> 00:02:17,860 ja syntaktisesti, ettﺣ۳ aiomme tﺣ۳ytyy muistaa ennen pitkﺣ۳ﺣ۳. 50 00:02:17,860 --> 00:02:20,720 Mutta ymmﺣ۳rtﺣ۳ﺣ۳, ettﺣ۳ kﺣ۳ytﺣ۳ntﺣﭘﺣ۳, tﺣ۳mﺣ۳ alkaa hyppﺣ۳ﺣ۳ ulos sinua. 51 00:02:20,720 --> 00:02:24,920 >> Itse asiassa, nyt keskittyﺣ۳, ettﺣ۳ yksi toiminto specifically-- tﺣ۳ssﺣ۳ tapauksessa, 52 00:02:24,920 --> 00:02:26,290 tervehtimﺣ۳ﺣ۳n maailmassa. 53 00:02:26,290 --> 00:02:27,560 Sano on funktio. 54 00:02:27,560 --> 00:02:31,320 Hello world on sen parametri, tai argumentti, sen rﺣ۳ﺣ۳tﺣ۳lﺣﭘinnin. 55 00:02:31,320 --> 00:02:34,320 >> Ja vastaavuuden C on vain olemaan tﺣ۳mﺣ۳ rivi tﺣ۳ﺣ۳llﺣ۳, 56 00:02:34,320 --> 00:02:38,710 missﺣ۳ printf vastaa, sanoa, kaksinkertainen lainattu merkkijono, hei 57 00:02:38,710 --> 00:02:41,470 maailma on vastaava, tietenkin, ja mitﺣ۳ on valkoisen laatikon siellﺣ۳. 58 00:02:41,470 --> 00:02:45,680 Ja kenoviivan n, vaikka hieman outoja ja poissa Scratch, 59 00:02:45,680 --> 00:02:49,380 yksinkertaisesti tulee olemaan vaikutusta me will katso tietokoneessa, kuten Mac tai PC, 60 00:02:49,380 --> 00:02:51,660 vain siirtﺣ۳mﺣ۳llﺣ۳ kursori seuraavalle riville. 61 00:02:51,660 --> 00:02:53,970 Se on kuin lyﺣﭘdﺣ۳ Enter-nﺣ۳ppﺣ۳intﺣ۳. 62 00:02:53,970 --> 00:02:55,580 >> Niinpﺣ۳ nﺣ۳emme, ettﺣ۳ uudelleen ennen pitkﺣ۳ﺣ۳. 63 00:02:55,580 --> 00:02:58,640 Mutta ensin katsomaan tﺣ۳tﺣ۳ Toinen esimerkki tapauksessa silmukoita. 64 00:02:58,640 --> 00:03:02,830 Meillﺣ۳ oli tﺣ۳mﺣ۳ ikuisesti silmukan viimeinen kerta, joka oli sarja palapelin palaset 65 00:03:02,830 --> 00:03:05,490 ettﺣ۳ teki jotain kirjaimellisesti forever-- tﺣ۳ssﺣ۳ tapauksessa, 66 00:03:05,490 --> 00:03:08,360 sanoa, hei maailma, hello world, Hello World, Hello World. 67 00:03:08,360 --> 00:03:10,350 Joten se pﺣ۳ﺣ۳ttymﺣ۳ttﺣﭘmﺣ۳ﺣ۳n silmukkaan virhe. 68 00:03:10,350 --> 00:03:14,580 >> In C, jos haluamme toteuttaa tﺣ۳mﺣ۳n Sama ajatus, voisimme yksinkertaisesti tehdﺣ۳. 69 00:03:14,580 --> 00:03:19,570 Vaikka totta, printf hei world-- nyt kun taas vain semanttisesti, millaisia 70 00:03:19,570 --> 00:03:23,090 loihtii ajatus tehdﺣ۳ jotain uudestaan ﻗ€‹ﻗ€‹ja uudestaan, ja uudestaan, 71 00:03:23,090 --> 00:03:23,980 ja kuinka kauan? 72 00:03:23,980 --> 00:03:27,990 No, true-- muistuttaa, ettﺣ۳ totta on pelkﺣ۳stﺣ۳ﺣ۳n tai yhdessﺣ۳. 73 00:03:27,990 --> 00:03:30,660 >> Ja totta on, tietenkin, aina totta. 74 00:03:30,660 --> 00:03:33,060 Joten se on tavallaan merkityksetﺣﭘn lausuma vain sanoa totta. 75 00:03:33,060 --> 00:03:36,890 Mutta tosiaan, tﺣ۳mﺣ۳ on tarkoituksellista, sillﺣ۳ jos totta on vain aina totta, 76 00:03:36,890 --> 00:03:40,850 kuin vaikka totta vain merkitsee, jos hieman epﺣ۳suorasti, 77 00:03:40,850 --> 00:03:44,070 ettﺣ۳ seuraava riviﺣ۳ koodia vﺣ۳lillﺣ۳ ne aaltosulkeita 78 00:03:44,070 --> 00:03:48,320 pitﺣ۳isi vain suorittaa uudestaan, ja uudestaan, ja uudelleen, ja koskaan todella lopettaa. 79 00:03:48,320 --> 00:03:50,230 >> Mutta jos et halua loop lopettaa, koska me 80 00:03:50,230 --> 00:03:54,500 viime kerralla kanssa jotain Tﺣ۳mﺣ۳n, toista seuraavat 50 kertaa, 81 00:03:54,500 --> 00:03:57,700 C voimme tehdﺣ۳ saman mitﺣ۳ kutsutaan varten loop-- avainsanan 82 00:03:57,700 --> 00:03:59,330 ei ole aikaa, mutta varten. 83 00:03:59,330 --> 00:04:03,290 Ja sitten meillﺣ۳ on joitakin uusia syntaksin tﺣ۳ﺣ۳llﺣ۳, int i on yhtﺣ۳ kuin 0, i alle 50, 84 00:04:03,290 --> 00:04:03,880 i ++. 85 00:04:03,880 --> 00:04:05,430 Ja palaamme siihen. 86 00:04:05,430 --> 00:04:09,660 Mutta tﺣ۳mﺣ۳ on yksinkertaisesti kuinka olisimme kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ joukko Scratch lohkojen 87 00:04:09,660 --> 00:04:13,079 joukolle C riviﺣ۳ koodia. 88 00:04:13,079 --> 00:04:14,450 >> Samaan aikaan, harkitse muuttujia. 89 00:04:14,450 --> 00:04:16,540 Ja itse asiassa, me vain Nﺣ۳in yhden hetki sitten. 90 00:04:16,540 --> 00:04:21,220 Ja kun kyseessﺣ۳ on Scratch, jos me halusi julistaa muuttuja nimeltﺣ۳ i 91 00:04:21,220 --> 00:04:24,590 i on kokonaisluku, vain numero, ja haluamme asettaa sen jotain arvoa, 92 00:04:24,590 --> 00:04:28,410 me kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ oranssi lohko here-- asetetaan i 0. 93 00:04:28,410 --> 00:04:30,800 >> Ja nﺣ۳emme tﺣ۳nﺣ۳ﺣ۳n pidemmﺣ۳lle, aivan kuten viime viikolla, 94 00:04:30,800 --> 00:04:33,850 ohjelmoijat tekevﺣ۳t melkein aina alkaa laskea nollasta, oikeastaan 95 00:04:33,850 --> 00:04:34,950 sopimuksen mukaan. 96 00:04:34,950 --> 00:04:37,250 Vaan myﺣﭘs siksi, hae keskustelumme binary, 97 00:04:37,250 --> 00:04:39,990 pienin mﺣ۳ﺣ۳rﺣ۳ voit edustavat minkﺣ۳ tahansa mﺣ۳ﺣ۳rﺣ۳n bittejﺣ۳ 98 00:04:39,990 --> 00:04:41,640 on vain olemaan 0 itseﺣ۳ﺣ۳n. 99 00:04:41,640 --> 00:04:45,190 Ja niin me yleensﺣ۳ alkaa alustetaan jopa meidﺣ۳n muuttujia 0. 100 00:04:45,190 --> 00:04:47,710 >> Ja C tekemﺣ۳ﺣ۳n samoin, aiomme sanoa int 101 00:04:47,710 --> 00:04:50,110 kokonaisluku, en vain sopimuksen mukaan. 102 00:04:50,110 --> 00:04:53,390 Voisin ovat kutsuneet tﺣ۳tﺣ۳ muuttujaa mitﺣ۳ haluan, kuten Scratch. 103 00:04:53,390 --> 00:04:57,770 Ja sitten on yhtﺣ۳ kuin 0 vain valtuutettuja arvo 0 oikealta 104 00:04:57,770 --> 00:05:01,319 ja ottaa sen muuttujan, tai sﺣ۳ilytysastia siellﺣ۳, vasemmalla. 105 00:05:01,319 --> 00:05:04,360 Ja puolipistettﺣ۳ kuten me see-- ja olemme nﺣ۳hneet muutamia nﺣ۳istﺣ۳ already-- 106 00:05:04,360 --> 00:05:06,530 tarkoittaa vain loppuun ajatuksen. 107 00:05:06,530 --> 00:05:09,430 Jatka tehdﺣ۳ jotain muuta viivoille, jotka seuraavat. 108 00:05:09,430 --> 00:05:11,330 >> Nyt entﺣ۳ Boolen ilmaisuja? 109 00:05:11,330 --> 00:05:14,320 Muista, ettﺣ۳ Scratch, nﺣ۳mﺣ۳ olivat ilmaisuja 110 00:05:14,320 --> 00:05:16,740 jotka ovat joko totta tai false-- kysymyksiﺣ۳, 111 00:05:16,740 --> 00:05:18,910 todella, jotka ovat joko tosi tai epﺣ۳tosi. 112 00:05:18,910 --> 00:05:21,960 Joten jos kyseessﺣ۳ on Scratch, voisimme esittﺣ۳ﺣ۳ yksinkertaisen kysymyksen nﺣ۳in, 113 00:05:21,960 --> 00:05:24,586 on i alle 50? 114 00:05:24,586 --> 00:05:25,710 Joten i, jﺣ۳lleen, on kokonaisluku. 115 00:05:25,710 --> 00:05:27,210 Ehkﺣ۳ kﺣ۳ytﺣ۳mme sitﺣ۳ joka Scratch-ohjelma 116 00:05:27,210 --> 00:05:29,310 seurata pisteet Tai jotain sellaista. 117 00:05:29,310 --> 00:05:33,810 Joten tﺣ۳mﺣ۳ syntaksin tﺣ۳ﺣ۳llﺣ۳ Scratch vain tarkoittaa, on i alle 50? 118 00:05:33,810 --> 00:05:37,330 No, onneksi jotain on yksinkertaisia ﻗ€‹ﻗ€‹C. Ja kﺣ۳ﺣ۳ntﺣ۳ﺣ۳, 119 00:05:37,330 --> 00:05:41,780 Tﺣ۳ssﺣ۳ me yksinkertaisesti sanoa i vﺣ۳hemmﺣ۳n yli 50, tutuilla avaimen 120 00:05:41,780 --> 00:05:42,850 nﺣ۳ppﺣ۳imistﺣﭘllﺣ۳. 121 00:05:42,850 --> 00:05:45,141 >> Sillﺣ۳ vﺣ۳lin, jos halusi sanoa jotain yleisempﺣ۳ﺣ۳, 122 00:05:45,141 --> 00:05:49,890 kuin hyvin, on x alle y, jossa kukin x ja y ovat itse muuttujia? 123 00:05:49,890 --> 00:05:52,280 Voimme tehdﺣ۳ sama asia C, kunhan olemme 124 00:05:52,280 --> 00:05:53,942 luoneet nﺣ۳mﺣ۳ muuttujat jo. 125 00:05:53,942 --> 00:05:55,650 Ja nﺣ۳emme, miten tehdﺣ۳ ennen pitkﺣ۳ﺣ۳. 126 00:05:55,650 --> 00:05:58,590 Haluamme yksinkertaisesti sanoa x vﺣ۳hemmﺣ۳n kuin y. 127 00:05:58,590 --> 00:06:00,530 >> Joten olet alkanut katso joitakin yhtﺣ۳lﺣ۳isyyksiﺣ۳. 128 00:06:00,530 --> 00:06:03,490 Ja ne ihmiset, jotka ovat tehneet Scratch olivat varmasti 129 00:06:03,490 --> 00:06:05,250 innoittamana joitakin nﺣ۳istﺣ۳ perusajatuksia. 130 00:06:05,250 --> 00:06:10,350 Ja nﺣ۳et tﺣ۳llaista syntaksin monissa languages-- 131 00:06:10,350 --> 00:06:12,160 ei vain Scratch, ei juuri C, mutta Python, 132 00:06:12,160 --> 00:06:14,790 ja JavaScript, ja muita kieliﺣ۳ vielﺣ۳. 133 00:06:14,790 --> 00:06:18,270 >> Tarkastellaan toinen konstruktio C: ltﺣ۳, kﺣ۳sitteestﺣ۳ ehdon, 134 00:06:18,270 --> 00:06:20,370 tekemﺣ۳ssﺣ۳ jotain ehdollisesti. 135 00:06:20,370 --> 00:06:22,720 Jos jokin on totta, tehdﺣ۳ tﺣ۳mﺣ۳. 136 00:06:22,720 --> 00:06:24,457 Jos jotain muuta on totta, tehdﺣ۳. 137 00:06:24,457 --> 00:06:27,040 Se on erﺣ۳ﺣ۳nlainen ohjelmointi vastine tienhaaraan. 138 00:06:27,040 --> 00:06:29,730 Ehkﺣ۳ se on kaksisuuntainen haarukka, kolmitie haarukka, tai enemmﺣ۳n. 139 00:06:29,730 --> 00:06:32,800 Ja Scratch, olisimme nﺣ۳hnyt jotain tﺣ۳llaista. 140 00:06:32,800 --> 00:06:34,010 >> Eli tﺣ۳mﺣ۳ on iso. 141 00:06:34,010 --> 00:06:36,750 Mutta pitﺣ۳vﺣ۳t suhteellisen yksinkertaisuus logiikan. 142 00:06:36,750 --> 00:06:44,010 Jos x on pienempi kuin y, niin sano x on pienempi kuin y, muuta, jos x on suurempi kuin y, 143 00:06:44,010 --> 00:06:46,230 sitten sanoa x on suurempi kuin y. 144 00:06:46,230 --> 00:06:48,300 Ja sitten, loogisesti, jos luulet takaisin Scratch 145 00:06:48,300 --> 00:06:52,610 tai vain oman ihmisen intuitio, hyvin, jos x ei ole suurempi kuin y ja x 146 00:06:52,610 --> 00:06:57,000 ei ole pienempi kuin y, niin tietenkin x tulee olemaan yhtﺣ۳ kuin y. 147 00:06:57,000 --> 00:06:59,690 Joten tﺣ۳ssﺣ۳ tapauksessa, jonka pesintﺣ۳ nﺣ۳mﺣ۳ Scratch lohkot, 148 00:06:59,690 --> 00:07:02,580 voimme saavuttaa kolme tapa tienhaaraan? 149 00:07:02,580 --> 00:07:04,980 >> Samalla jos haluamme tehdﺣ۳ sen C, se luultavasti 150 00:07:04,980 --> 00:07:08,420 nﺣ۳yttﺣ۳ﺣ۳ hieman simpler-- ainakin kun saat perehtynyt syntaksia. 151 00:07:08,420 --> 00:07:12,050 Jos x on pienempi kuin y, printf x on pienempi kuin y. 152 00:07:12,050 --> 00:07:16,140 Else jos x on suurempi kuin y, printf x on suurempi kuin y. 153 00:07:16,140 --> 00:07:21,210 Else printf x on yhtﺣ۳ suuri kuin y-- ja, jﺣ۳lleen, kanssa kenoviiva pﺣ۳ﺣ۳ttyy juuri 154 00:07:21,210 --> 00:07:24,160 nﺣ۳itﺣ۳ uusia rivejﺣ۳ niin, ettﺣ۳ jos oikeastaan ﻗ€‹ﻗ€‹juoksi tﺣ۳llaista ohjelmaa 155 00:07:24,160 --> 00:07:25,940 se vain siirtﺣ۳ﺣ۳ kohdistin lopulta 156 00:07:25,940 --> 00:07:28,100 seuraavalle riville nﺣ۳ytﺣﭘn. 157 00:07:28,100 --> 00:07:31,270 >> Nyt puolestaan ﻗ€‹ﻗ€‹Scratch ollut muita kehittyneempiﺣ۳ ominaisuuksia, vain 158 00:07:31,270 --> 00:07:34,320 joista osa aiomme aluksi siirtyﺣ۳ maailmaan C. 159 00:07:34,320 --> 00:07:37,010 Ja yksi niistﺣ۳ oli kutsutaan listan Scratch. 160 00:07:37,010 --> 00:07:39,100 Ja tﺣ۳mﺣ۳ oli erityinen tyyppinen muuttuja 161 00:07:39,100 --> 00:07:42,840 sallittu voit tallentaa useita asioita se takaisin, takaisin, takaisin, takaisin. 162 00:07:42,840 --> 00:07:45,540 >> C, sillﺣ۳ ei ole luetteloita, sinﺣ۳nsﺣ۳, mutta jotain 163 00:07:45,540 --> 00:07:48,090 jotka ovat yleisesti nimeltﺣ۳ﺣ۳n paneelit, vaikka me 164 00:07:48,090 --> 00:07:50,590 palata myﺣﭘhemmin tﺣ۳mﺣ۳n lukukauden katsomalla jotain 165 00:07:50,590 --> 00:07:52,780 kutsutaan lista, tai oikeastaan ﻗ€‹ﻗ€‹linkitetty lista. 166 00:07:52,780 --> 00:07:55,510 Mutta nyt, lﺣ۳hin vastaava C meille 167 00:07:55,510 --> 00:07:57,345 tulee olemaan jotain kutsutaan jono. 168 00:07:57,345 --> 00:07:59,740 Ja joukko on yksinkertaisesti erityinen muuttuja 169 00:07:59,740 --> 00:08:03,160 jonka avulla voit tallentaa tietoja takaisin, takaisin, takaisin, takaisin. 170 00:08:03,160 --> 00:08:05,840 >> Ja todellakin, Scratch, jos halusimme pﺣ۳ﺣ۳stﺣ۳ 171 00:08:05,840 --> 00:08:09,030 ensimmﺣ۳inen osa array tai list-- ja aion kutsua sitﺣ۳, 172 00:08:09,030 --> 00:08:13,600 Sopimuksen mukaan argv, argumentti vektori, mutta siitﺣ۳ lisﺣ۳ﺣ۳ ennen pitkﺣ۳ﺣ۳. 173 00:08:13,600 --> 00:08:17,090 Jos Haluan saada ensimmﺣ۳isen elementin of argv, maailmassa Scratch 174 00:08:17,090 --> 00:08:20,930 te itse tehdﺣ۳ yleensﺣ۳ aloita laskien 1. 175 00:08:20,930 --> 00:08:22,850 >> Ja niin voisin saada erﺣ۳ 1 argv. 176 00:08:22,850 --> 00:08:26,310 Se, miten MIT toteutettu kﺣ۳site listojen. 177 00:08:26,310 --> 00:08:29,860 Mutta C, aion yksinkertaisemmin vain sanoa, argv, 178 00:08:29,860 --> 00:08:32,758 joka taas on nimi minun list-- tai olla selvﺣ۳ﺣ۳, jono. 179 00:08:32,758 --> 00:08:34,549 Ja jos haluan ensimmﺣ۳isen elementtejﺣ۳, aion 180 00:08:34,549 --> 00:08:37,890 kﺣ۳yttﺣ۳ﺣ۳ hakasulkeissa johon ehkﺣ۳ ei usein alle nﺣ۳ppﺣ۳imistﺣﭘn. 181 00:08:37,890 --> 00:08:40,150 >> Mutta 0 tarkoittaa vain, saada minulle ensimmﺣ۳inen. 182 00:08:40,150 --> 00:08:42,160 Joten vﺣ۳lillﺣ۳ ja Ajan myﺣﭘtﺣ۳ aiomme 183 00:08:42,160 --> 00:08:44,570 alkaa nﺣ۳hdﺣ۳ nﺣ۳mﺣ۳ dikotomioiden vﺣ۳lillﺣ۳ Scratch ja C, 184 00:08:44,570 --> 00:08:46,070 jolloin Scratch kﺣ۳yttﺣ۳ﺣ۳ yhtﺣ۳. 185 00:08:46,070 --> 00:08:47,670 Me C kﺣ۳yttﺣ۳ﺣ۳ 0 tﺣ۳ﺣ۳llﺣ۳. 186 00:08:47,670 --> 00:08:49,420 Mutta voit nopeasti nﺣ۳hdﺣ۳ kun ymmﺣ۳rrﺣ۳t 187 00:08:49,420 --> 00:08:52,920 perustan jokaisen kielen, joka nﺣ۳mﺣ۳ asiat alkavat saada sitﺣ۳kin 188 00:08:52,920 --> 00:08:56,860 tuttuja kﺣ۳ytﺣ۳nnﺣﭘn kautta ja kﺣ۳ytﺣ۳ntﺣﭘ. 189 00:08:56,860 --> 00:08:59,700 >> Joten todella nﺣ۳yttﺣ۳vﺣ۳t nyt ohjelmaa. 190 00:08:59,700 --> 00:09:04,031 Tﺣ۳ssﺣ۳ on ensimmﺣ۳inen meidﺣ۳n C lﺣ۳hdekoodi tﺣ۳ydellistﺣ۳ ohjelmia. 191 00:09:04,031 --> 00:09:06,280 Ja ohjelma aiomme tarjottavaa vastiketta 192 00:09:06,280 --> 00:09:09,340 on yksi, joka on vastaava kyseiseen aiemmin Scratch pala. 193 00:09:09,340 --> 00:09:13,210 >> Joten tﺣ۳ﺣ۳llﺣ۳, meillﺣ۳ on mitﺣ۳ luultavasti yksinkertaisin C-ohjelma 194 00:09:13,210 --> 00:09:15,410 voit kirjoittaa, ettﺣ۳ todella tekee jotain. 195 00:09:15,410 --> 00:09:18,250 Nyt me nﺣ۳kemﺣ۳ttﺣ۳, nyt, on muun muassa, 196 00:09:18,250 --> 00:09:21,190 vakio io.h, ja nﺣ۳mﺣ۳ kulma suluissa, ja int ja tyhjﺣ۳, 197 00:09:21,190 --> 00:09:22,840 ja aaltosulkumerkkien ja vastaavat. 198 00:09:22,840 --> 00:09:25,390 >> Ja Haluan vain keskittyﺣ۳ mitﺣ۳, ainakin intuitiivisesti, 199 00:09:25,390 --> 00:09:26,860 ponnahtavat ulos sinua jo. 200 00:09:26,860 --> 00:09:30,300 Itse tﺣ۳rkein, en vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ tiedﺣ۳, mitﺣ۳ tﺣ۳mﺣ۳ on, 201 00:09:30,300 --> 00:09:34,580 mutta aivan kuten Scratch oli, ettﺣ۳ kun Vihreﺣ۳ lippu napsautetaan palapelin pala, 202 00:09:34,580 --> 00:09:39,070 niin tekee C ohjelmointikielellﺣ۳ on tﺣ۳rkein koodinpﺣ۳tkﺣ۳, joka 203 00:09:39,070 --> 00:09:43,380 saa suorittaa oletusarvoisesti. Ja, todellakin, se kirjaimellisesti aiotaan kutsua main. 204 00:09:43,380 --> 00:09:44,720 >> Joten tﺣ۳rkein on funktio. 205 00:09:44,720 --> 00:09:48,720 Ja se on erityinen toiminto, joka on olemassa C, ettﺣ۳ kun kﺣ۳ynnistﺣ۳ﺣ۳ ohjelman 206 00:09:48,720 --> 00:09:52,720 se on tﺣ۳rkein, joka saa hoitaa oletuksena. Kun maailma Scratch, 207 00:09:52,720 --> 00:09:56,970 se oli yleensﺣ۳ silloin, kun vihreﺣ۳ lippu napsautetaan, joka sai kﺣ۳ynnistetﺣ۳ﺣ۳n oletusarvona. 208 00:09:56,970 --> 00:10:01,130 >> Samalla olemme nﺣ۳hneet tﺣ۳mﺣ۳n ennenkin, printf tai tulostaa muotoiltu, se 209 00:10:01,130 --> 00:10:05,620 olemaan funktio mukana C, sekﺣ۳ koko joukko muita, 210 00:10:05,620 --> 00:10:10,140 ettﺣ۳ tulee aika ja aika uudelleen, jotta tekemﺣ۳ﺣ۳n juuri 211 00:10:10,140 --> 00:10:12,450 nimensﺣ۳, tulostaa jotain. 212 00:10:12,450 --> 00:10:13,500 Mitﺣ۳ haluat tulostaa? 213 00:10:13,500 --> 00:10:15,770 No, nﺣ۳emme, ettﺣ۳ sulkemalla merkkiﺣ۳ 214 00:10:15,770 --> 00:10:18,680 kuten these-- Hello World, kenoviiva n lainausmerkkeihin, 215 00:10:18,680 --> 00:10:23,040 voimme kertoa printf tarkalleen mitﺣ۳ tulostaa ruudulla. 216 00:10:23,040 --> 00:10:26,430 >> Mutta jotta tehdﺣ۳ ettﺣ۳, valitettavasti 217 00:10:26,430 --> 00:10:30,010 otettava jotain, joka on jo arvoituksellinen meille ihmisille, 218 00:10:30,010 --> 00:10:34,510 mutta ainakin se on hieman readable-- terﺣ۳vﺣ۳ sisﺣ۳ltﺣ۳vﺣ۳t, standardi io.h, int, 219 00:10:34,510 --> 00:10:39,340 main, mitﺣ۳tﺣﭘn, printf, kaikki maaginen loitsut me juuri nﺣ۳hnyt ruudulla. 220 00:10:39,340 --> 00:10:42,470 Mutta meidﺣ۳n oikeastaan ﻗ€‹ﻗ€‹tarvitse mennﺣ۳ enemmﺣ۳n mystistﺣ۳ edelleen. 221 00:10:42,470 --> 00:10:47,140 Meidﺣ۳n tﺣ۳ytyy ensin kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ koodia kirjoittaisimme konekielelle. 222 00:10:47,140 --> 00:10:51,370 Ja muistaa viime viikolla, ettﺣ۳ koneet, ainakin ne tiedﺣ۳mme tﺣ۳ﺣ۳llﺣ۳, 223 00:10:51,370 --> 00:10:54,450 lopussa pﺣ۳ivﺣ۳n ainoa ymmﺣ۳rtﺣ۳ﺣ۳ nollia ja ykkﺣﭘsiﺣ۳. 224 00:10:54,450 --> 00:10:58,100 >> Ja minun Jumalani, jos olisimme kirjoittaa nﺣ۳mﺣ۳ nollia ja ykkﺣﭘsiﺣ۳ itse ohjelmaan, 225 00:10:58,100 --> 00:11:01,260 se olisi hyvin, hyvin nopeasti ottaa hauskaa pois mitﺣ۳ﺣ۳n. 226 00:11:01,260 --> 00:11:05,150 Mutta nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹per viime viikolla, ettﺣ۳ nﺣ۳mﺣ۳ kuviot nollia ja ykkﺣﭘsiﺣ۳ 227 00:11:05,150 --> 00:11:06,400 vain on erityinen merkitys. 228 00:11:06,400 --> 00:11:08,500 Tietyissﺣ۳ yhteyksissﺣ۳, ne saattavat merkitﺣ۳ numeroita. 229 00:11:08,500 --> 00:11:11,840 >> Joissakin yhteyksissﺣ۳, he saattavat merkitﺣ۳ kirjaimia, tai vﺣ۳reihin tai useita 230 00:11:11,840 --> 00:11:14,710 Muiden abstraktioita siinﺣ۳ sen. 231 00:11:14,710 --> 00:11:18,450 Mutta aivan kuten tietokoneessa on CPU, Central Processing Unit, 232 00:11:18,450 --> 00:11:20,390 tai aivot tietokoneesi sisﺣ۳lle. 233 00:11:20,390 --> 00:11:22,240 Se on yleensﺣ۳ Intel sisﺣ۳llﺣ۳, koska se on 234 00:11:22,240 --> 00:11:24,900 yksi suurimmista yrityksistﺣ۳ joka tekee suorittimia tietokoneita. 235 00:11:24,900 --> 00:11:28,910 >> No, Intel prosessorit ja muut yksinkertaisesti ovat pﺣ۳ﺣ۳ttﺣ۳neet etukﺣ۳teen 236 00:11:28,910 --> 00:11:33,970 ettﺣ۳ tietyt kuviot nollien ja niistﺣ۳ tarkoittaa tiettyjﺣ۳ asioita. 237 00:11:33,970 --> 00:11:37,040 Tiettyjﺣ۳ uusia nollia ja ykkﺣﭘsiﺣ۳ tarkoittaa, tulostaa nﺣ۳yttﺣﭘﺣﭘn, 238 00:11:37,040 --> 00:11:39,710 tai lisﺣ۳tﺣ۳ nﺣ۳mﺣ۳ kaksi lukua, tai vﺣ۳hentﺣ۳ﺣ۳ nﺣ۳mﺣ۳ kaksi lukua, 239 00:11:39,710 --> 00:11:43,310 tai siirtﺣ۳ﺣ۳ tﺣ۳mﺣ۳ pala tiedot minun tietokoneen muistiin tﺣ۳nne, 240 00:11:43,310 --> 00:11:47,870 tai useita muita erittﺣ۳in alhainen, mutta lopulta hyﺣﭘdyllinen, toimintaa. 241 00:11:47,870 --> 00:11:53,022 Mutta onneksi me ihmiset eivﺣ۳t aio tarvitse tietﺣ۳ﺣ۳ tﺣ۳mﺣ۳ taso. 242 00:11:53,022 --> 00:11:56,230 Todellakin, aivan kuten viime kerralla, jossa hajamielinen uudestaan ﻗ€‹ﻗ€‹ja uudestaan, ja uudestaan, 243 00:11:56,230 --> 00:11:58,930 rakennus hyvin alhainen primitives kuten nollia ja ykkﺣﭘsiﺣ۳ 244 00:11:58,930 --> 00:12:01,160 korkeamman tason kﺣ۳sitteitﺣ۳ kuten numeroita ja kirjaimia, 245 00:12:01,160 --> 00:12:04,330 ja vﺣ۳rit, ja lisﺣ۳ﺣ۳, jotta voimme kuin ohjelmoijat 246 00:12:04,330 --> 00:12:07,080 seistﺣ۳ harteille muita, jotka ovat tulleet ennen meitﺣ۳ 247 00:12:07,080 --> 00:12:11,260 ja kﺣ۳yttﺣ۳ﺣ۳ ohjelmistoa, ettﺣ۳ muut ihmiset ovat kirjoittaneet ennen us-- 248 00:12:11,260 --> 00:12:14,340 nimittﺣ۳in ohjelmia kutsutaan kﺣ۳ﺣ۳ntﺣ۳jiﺣ۳. 249 00:12:14,340 --> 00:12:17,770 >> C on kieli, on yleensﺣ۳ koottu, 250 00:12:17,770 --> 00:12:22,130 joka tarkoittaa muunnettu lﺣ۳hdekoodi konekielelle. 251 00:12:22,130 --> 00:12:25,230 Erityisesti mitﺣ۳ tﺣ۳mﺣ۳ tarkoittaa on, ettﺣ۳ jos olet saanut lﺣ۳hde 252 00:12:25,230 --> 00:12:29,530 koodi, joka itse kirjoittaa, koska me pian tulee aivan hetken ruudulla, 253 00:12:29,530 --> 00:12:33,140 ja haluat muuntaa sen lopulta kone code-- 254 00:12:33,140 --> 00:12:37,100 ne nollia ja ykkﺣﭘsiﺣ۳, jotka vain Mac- tai PC 255 00:12:37,100 --> 00:12:41,230 understands-- sinulla ensimmﺣ۳inen ruokkia ettﺣ۳ lﺣ۳hdekoodi kuin 256 00:12:41,230 --> 00:12:46,340 tulo erityiseen ohjelma nimeltﺣ۳ kﺣ۳ﺣ۳ntﺣ۳jﺣ۳, 257 00:12:46,340 --> 00:12:48,974 jonka lﺣ۳htﺣﭘ me on nﺣ۳et on konekielelle. 258 00:12:48,974 --> 00:12:51,890 Ja todellakin, viimeksi puhuimme noin, todella, lopussa pﺣ۳ivﺣ۳, 259 00:12:51,890 --> 00:12:52,610 ongelmanratkaisu. 260 00:12:52,610 --> 00:12:53,360 Sinulla tuloa. 261 00:12:53,360 --> 00:12:54,318 Ja olet saanut lﺣ۳hdﺣﭘt. 262 00:12:54,318 --> 00:12:56,560 Ja olet saanut jonkinlaista algoritmin keskellﺣ۳. 263 00:12:56,560 --> 00:12:59,830 >> Algoritmit voivat varmasti ohjelmistossa, 264 00:12:59,830 --> 00:13:02,900 kuten nﺣ۳imme kanssa pseudokoodina viime viikolla ja kuten nﺣ۳emme todellisia koodia 265 00:13:02,900 --> 00:13:03,490 Tﺣ۳mﺣ۳ viikko. 266 00:13:03,490 --> 00:13:06,430 Ja niin kﺣ۳ﺣ۳ntﺣ۳jﺣ۳n oikeastaan ﻗ€‹ﻗ€‹vain on joukko algoritmeja sisﺣ۳llﺣ۳ 267 00:13:06,430 --> 00:13:10,060 siitﺣ۳, ettﺣ۳ osaavat muuntaa erityinen avainsanoja, 268 00:13:10,060 --> 00:13:12,180 kuten tﺣ۳rkein, ja printf, ja muut, jotka olemme juuri 269 00:13:12,180 --> 00:13:17,620 Nﺣ۳in osaksi malleja nollia ja ne, jotka Intel sisﺣ۳llﺣ۳ ja muita suorittimia 270 00:13:17,620 --> 00:13:20,020 todella ymmﺣ۳rtﺣ۳ﺣ۳. 271 00:13:20,020 --> 00:13:22,460 Miten teemme tﺣ۳mﺣ۳n? 272 00:13:22,460 --> 00:13:24,470 Mistﺣ۳ saamme kﺣ۳ﺣ۳ntﺣ۳jﺣ۳? 273 00:13:24,470 --> 00:13:26,400 >> Useimmat meistﺣ۳ tﺣ۳ﺣ۳llﺣ۳ on Mac tai PC. 274 00:13:26,400 --> 00:13:29,152 Ja kﺣ۳ytﺣ۳t Mac OS, tai Windows tai Linux tai Solaris, 275 00:13:29,152 --> 00:13:30,860 tai useita muita kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳t. 276 00:13:30,860 --> 00:13:32,568 Ja todellakin, voisimme mennﺣ۳ ulos radalle 277 00:13:32,568 --> 00:13:35,710 ja lataa kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ Mac- tai PC 278 00:13:35,710 --> 00:13:37,360 juuri sinun kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳ﺣ۳n. 279 00:13:37,360 --> 00:13:39,617 Mutta me kaikki olla eri sivuja, niin sanotusti. 280 00:13:39,617 --> 00:13:41,450 Meidﺣ۳n tﺣ۳ytyisi hieman eri kokoonpanoissa. 281 00:13:41,450 --> 00:13:43,210 Ja asiat eivﺣ۳t toimi kaikille sama. 282 00:13:43,210 --> 00:13:45,280 Ja, todellakin, nﺣ۳inﺣ۳ pﺣ۳ivinﺣ۳ monet meistﺣ۳ eivﺣ۳t kﺣ۳ytﺣ۳ 283 00:13:45,280 --> 00:13:47,516 ohjelmisto, joka toimii vain meidﺣ۳n lﺣ۳ppﺣ۳reissﺣ۳. 284 00:13:47,516 --> 00:13:49,390 Sen sijaan kﺣ۳yttﺣ۳ﺣ۳ jotain kuten selaimen, joka 285 00:13:49,390 --> 00:13:52,930 pystymme kﺣ۳yttﺣ۳mﺣ۳ﺣ۳n web-pohjainen sovellukset pilvessﺣ۳. 286 00:13:52,930 --> 00:13:55,630 Ja myﺣﭘhemmin tﺣ۳mﺣ۳n lukukauden, teemme juuri nﺣ۳in. 287 00:13:55,630 --> 00:13:59,660 Me kirjoittaa sovelluksia tai ohjelmistoa kﺣ۳yttﺣ۳en code-- ei C, 288 00:13:59,660 --> 00:14:02,860 mutta muita kieliﺣ۳, kuten Python ja JavaScript-- jotka kulkevat pilvessﺣ۳. 289 00:14:02,860 --> 00:14:05,860 >> Ja tehdﺣ۳ niin, me itse lukukauden aikana 290 00:14:05,860 --> 00:14:11,890 todella kﺣ۳yttﺣ۳ﺣ۳ pilvipohjaisen ympﺣ۳ristﺣﭘ tunnetaan CS50 IDE. 291 00:14:11,890 --> 00:14:16,030 Tﺣ۳mﺣ۳ on web-pohjainen ohjelmointi ympﺣ۳ristﺣﭘ, tai yhtenﺣ۳inen kehittﺣ۳minen 292 00:14:16,030 --> 00:14:20,610 ympﺣ۳ristﺣﭘ, Ide, joka on rakennettu huipulla joitakin avoimen lﺣ۳hdekoodin ohjelmistoja kutsutaan Cloud 9. 293 00:14:20,610 --> 00:14:22,966 Ja olemme tehneet joitakin pedagogisia yksinkertaistuksia se 294 00:14:22,966 --> 00:14:25,840 jotta salata tiettyjﺣ۳ ominaisuuksia, ensimmﺣ۳isten viikkojen emme tarvitse, 295 00:14:25,840 --> 00:14:27,770 jonka jﺣ۳lkeen voit paljastavat heitﺣ۳ ja useimmat 296 00:14:27,770 --> 00:14:29,400 mitﺣ۳ haluat ympﺣ۳ristﺣﭘn kanssa. 297 00:14:29,400 --> 00:14:32,470 >> Ja se antaa meille myﺣﭘs, ettﺣ۳ esiasenna tiettyjﺣ۳ ohjelmistoja. 298 00:14:32,470 --> 00:14:35,330 Asioita, kuten ns CS50 kirjasto, josta pian nﺣ۳hdﺣ۳ 299 00:14:35,330 --> 00:14:39,210 antaa meille C joidenkin lisﺣ۳toimintoja. 300 00:14:39,210 --> 00:14:44,392 Joten jos menet lopulta CS50.io, sinua pyydetﺣ۳ﺣ۳n kirjautumaan sisﺣ۳ﺣ۳n, 301 00:14:44,392 --> 00:14:46,350 ja kun teet ja luoda tilin ilmaiseksi, 302 00:14:46,350 --> 00:14:52,150 voit jolla siirrytﺣ۳ﺣ۳n ympﺣ۳ristﺣﭘ, joka nﺣ۳yttﺣ۳ﺣ۳ aivan nﺣ۳in. 303 00:14:52,150 --> 00:14:53,760 >> Nyt tﺣ۳mﺣ۳ on oletustila. 304 00:14:53,760 --> 00:14:55,650 Kaikki on mukavaa ja kirkas ruudulla. 305 00:14:55,650 --> 00:14:57,941 Monet meistﺣ۳ on tapana tyﺣﭘskentelevﺣ۳t CS50 pala, joka on 306 00:14:57,941 --> 00:14:59,150 melko myﺣﭘhﺣ۳ﺣ۳n yﺣﭘhﺣﭘn. 307 00:14:59,150 --> 00:15:02,400 Ja niin jotkut ehkﺣ۳ mieluummin muuttaa sen Yﺣﭘkﺣ۳yttﺣﭘtilassa niin sanotusti. 308 00:15:02,400 --> 00:15:05,550 >> Mutta lopulta, mitﺣ۳ olet nﺣ۳kemﺣ۳ﺣ۳n sisﺣ۳llﺣ۳ CS50 IDE 309 00:15:05,550 --> 00:15:08,340 on kolme erillistﺣ۳ areas-- alue vasemmalla, jossa 310 00:15:08,340 --> 00:15:12,604 tiedostot ovat menossa olevan pilvi, alue ylhﺣ۳ﺣ۳llﺣ۳ oikealla 311 00:15:12,604 --> 00:15:14,270 jossa koodi tulee olemaan muokattavissa. 312 00:15:14,270 --> 00:15:16,650 Voit avata yksittﺣ۳isiﺣ۳ vﺣ۳lilehtiﺣ۳ mihinkﺣ۳ﺣ۳n ohjelmaan 313 00:15:16,650 --> 00:15:19,670 ettﺣ۳ kirjoitat tﺣ۳mﺣ۳n lukukauden sisﺣ۳llﺣ۳ Kyseisen oikeassa ylﺣ۳kulmassa. 314 00:15:19,670 --> 00:15:23,070 Ja sitten useimmat arcanely, ja vielﺣ۳ voimakkaasti, 315 00:15:23,070 --> 00:15:26,610 tulee olemaan tﺣ۳mﺣ۳ asia on pohja tunnetaan pﺣ۳ﺣ۳teikkunaan. 316 00:15:26,610 --> 00:15:29,450 >> Tﺣ۳mﺣ۳ on vanha koulu Command Line Interface, 317 00:15:29,450 --> 00:15:32,240 tai CLI, joka sallii voit suorittaa komentoja 318 00:15:32,240 --> 00:15:35,260 on computer-- tﺣ۳ssﺣ۳ tapauksessa tietokone uudelleen cloud-- 319 00:15:35,260 --> 00:15:39,090 tehdﺣ۳ asioita, kuten kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ koodia lﺣ۳hdekoodista konekielelle, 320 00:15:39,090 --> 00:15:43,600 ajaa ohjelmia, tai aloittaa web-palvelin, tai pﺣ۳ﺣ۳stﺣ۳ kﺣ۳siksi tietokantaan, 321 00:15:43,600 --> 00:15:47,454 ja useita muita tekniikoita ettﺣ۳ aloitamme kﺣ۳yttﺣ۳ﺣ۳ ennen pitkﺣ۳ﺣ۳. 322 00:15:47,454 --> 00:15:49,370 Mutta sinne, olemme menossa oikeastaan 323 00:15:49,370 --> 00:15:51,240 mennﺣ۳ verkossa ja aloittaa pelaamisen. 324 00:15:51,240 --> 00:15:54,399 Ja tehdﺣ۳ niin, nyt ensimmﺣ۳inen aloittaa puuhastelun kanssa tﺣ۳rkein, 325 00:15:54,399 --> 00:15:55,940 ja kirjoittaa pﺣ۳ﺣ۳osan ohjelmaa. 326 00:15:55,940 --> 00:15:59,170 Ja nyt kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ toimintoa printf, jota kﺣ۳ytimme aiemmin, 327 00:15:59,170 --> 00:16:01,050 yksinkertaisesti sanoa jotain. 328 00:16:01,050 --> 00:16:04,910 >> Joten tﺣ۳ssﺣ۳ olen jo sisﺣ۳llﺣ۳ CS50 IDE. 329 00:16:04,910 --> 00:16:05,930 Olen kirjautunut etukﺣ۳teen. 330 00:16:05,930 --> 00:16:07,360 Ja minﺣ۳ tﺣ۳ysin seulotaan ikkunan. 331 00:16:07,360 --> 00:16:09,670 Ja niin, lopulta, sinun Myﺣﭘs tulevina ongelmia 332 00:16:09,670 --> 00:16:12,960 seuraa samanlainen vaiheita, tarjoaa online-dokumentaatio. 333 00:16:12,960 --> 00:16:16,360 Joten sinun ei tarvitse huolehtia imevﺣ۳ﺣ۳ jokainen pieni tekninen askel 334 00:16:16,360 --> 00:16:17,730 ettﺣ۳ en tﺣ۳nﺣ۳ﺣ۳n. 335 00:16:17,730 --> 00:16:19,222 >> Mutta saat seuraavanlaisen nﺣ۳ytﺣﭘn. 336 00:16:19,222 --> 00:16:20,430 Satun olemaan yﺣﭘtilassa. 337 00:16:20,430 --> 00:16:22,944 Ja voit kirkastaa kaiken up poistamalla yﺣﭘtila. 338 00:16:22,944 --> 00:16:24,860 Ja lopussa on pﺣ۳ivﺣ۳, olet menossa nﺣ۳hdﺣ۳ 339 00:16:24,860 --> 00:16:30,090 nﺣ۳mﺣ۳ kolme areas-- tiedosto selain vasemmalla, koodi vﺣ۳lilehdet ylﺣﭘs, 340 00:16:30,090 --> 00:16:32,430 ja pﺣ۳ﺣ۳teikkuna alareunassa. 341 00:16:32,430 --> 00:16:34,890 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja kirjoittaa ensimmﺣ۳inen ohjelma. 342 00:16:34,890 --> 00:16:42,300 Aion ennaltaehkﺣ۳isevﺣ۳sti mene File, Save, ja pelastaa minun tiedosto hello.c. 343 00:16:42,300 --> 00:16:46,850 Itse Sopimuksen mukaan mitﺣ۳ﺣ۳n ohjelmaa me kirjoitus, joka on kirjoitettu C-kielellﺣ۳ 344 00:16:46,850 --> 00:16:49,739 tulee nimetﺣ۳ jotain piste c, sopimuksen mukaan. 345 00:16:49,739 --> 00:16:53,030 Joten aion nimetﺣ۳ sen hello.c, koska Haluan vain sanoa hei maailmaan. 346 00:16:53,030 --> 00:16:54,820 Nyt aion zoomata ulos ja sitten Tallenna. 347 00:16:54,820 --> 00:16:58,180 Ja kaikki Minulla on tﺣ۳ssﺣ۳ nyt on vﺣ۳lilehti jossa voin alkaa kirjoittaa koodia. 348 00:16:58,180 --> 00:16:59,490 >> Tﺣ۳mﺣ۳ ei aio koota. 349 00:16:59,490 --> 00:17:00,300 Tﺣ۳mﺣ۳ ei tarkoita mitﺣ۳ﺣ۳n. 350 00:17:00,300 --> 00:17:02,750 Ja joten vaikka I muunnetaan tﺣ۳mﺣ۳ nollia ja ykkﺣﭘsiﺣ۳, 351 00:17:02,750 --> 00:17:05,390 CPU tulee ole idea, mitﺣ۳ tapahtuu ympﺣ۳rillﺣ۳. 352 00:17:05,390 --> 00:17:14,170 Mutta jos kirjoitan radoilla, jotka eivﺣ۳t tﺣ۳smﺣ۳ﺣ۳ kanssa C: n conventions-- C olento, 353 00:17:14,170 --> 00:17:20,150 uudelleen, tﺣ۳mﺣ۳ language-- kanssa syntaksi kuten Tﺣ۳mﺣ۳n printf hei world-- ja olen 354 00:17:20,150 --> 00:17:22,210 mennyt mukava Nﺣ۳in ajan mittaan. 355 00:17:22,210 --> 00:17:24,510 Joten en usko tein tahansa painovirheitﺣ۳. 356 00:17:24,510 --> 00:17:27,910 >> Mutta, poikkeuksetta, ensimmﺣ۳inen aika teet tﺣ۳mﺣ۳n, et. 357 00:17:27,910 --> 00:17:31,090 Ja mitﺣ۳ aion tehdﺣ۳ ehkﺣ۳ kovin hyvin toimi sinulle ensimmﺣ۳istﺣ۳ kertaa. 358 00:17:31,090 --> 00:17:33,610 Ja se on tﺣ۳ysin OK, koska juuri nyt te 359 00:17:33,610 --> 00:17:37,662 voi vain nﺣ۳hdﺣ۳ paljon uutuuden, mutta ajan mittaan kun saat tuttuja 360 00:17:37,662 --> 00:17:39,870 Tﺣ۳mﺣ۳n ympﺣ۳ristﺣﭘﺣﭘn, ja tﺣ۳llﺣ۳ kielellﺣ۳, ja toiset, 361 00:17:39,870 --> 00:17:42,370 voit alkaa nﺣ۳hdﺣ۳ asioita, ovat joko oikea tai vﺣ۳ﺣ۳rﺣ۳. 362 00:17:42,370 --> 00:17:44,369 >> Ja tﺣ۳mﺣ۳ on mitﺣ۳ opetus kaverit ja kurssi 363 00:17:44,369 --> 00:17:48,780 avustajat saada niin hyvﺣ۳ ajan, on tiputtelua virheitﺣ۳ tai vikoja koodissa. 364 00:17:48,780 --> 00:17:52,110 Mutta Vﺣ۳itﺣ۳n, ettﺣ۳ siellﺣ۳ Ei vikoja tﺣ۳mﺣ۳n koodin. 365 00:17:52,110 --> 00:17:53,990 Joten Haluan nyt ohjelman suorittamiseen. 366 00:17:53,990 --> 00:17:57,440 >> Nyt yksin Mac- tai PC, olen tapana kaksoinﺣ۳pﺣ۳yttﺣ۳mﺣ۳llﺣ۳ kuvakkeita 367 00:17:57,440 --> 00:17:59,350 kun haluan ajaa joitakin ohjelmaan. 368 00:17:59,350 --> 00:18:01,080 Mutta se ei ole tﺣ۳ﺣ۳llﺣ۳ mallin. 369 00:18:01,080 --> 00:18:04,570 Tﺣ۳ssﺣ۳ ympﺣ۳ristﺣﭘssﺣ۳, joka on CS50 IDE. 370 00:18:04,570 --> 00:18:07,192 Olemme kﺣ۳yttﺣﭘympﺣ۳ristﺣﭘn nimeltﺣ۳ﺣ۳n Linux. 371 00:18:07,192 --> 00:18:09,900 Linux muistuttaa toinen kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳, yleisesti tunnettua 372 00:18:09,900 --> 00:18:10,850 kuten Unix. 373 00:18:10,850 --> 00:18:16,340 Ja Linux tunnetaan erityisesti jonka Command Line Ympﺣ۳ristﺣﭘ, CLI. 374 00:18:16,340 --> 00:18:20,070 Nyt kﺣ۳ytﺣ۳mme tiettyﺣ۳ maku Linux kutsutaan Ubuntu. 375 00:18:20,070 --> 00:18:22,770 Ja Ubuntu on yksinkertaisesti tietyt versio Linux. 376 00:18:22,770 --> 00:18:27,900 >> Mutta nﺣ۳mﺣ۳ Linuxin nﺣ۳inﺣ۳ pﺣ۳ivinﺣ۳ tehdﺣ۳ todella tulevat graafisia kﺣ۳yttﺣﭘliittymiﺣ۳. 377 00:18:27,900 --> 00:18:30,360 Ja yksi satumme kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳ssﺣ۳ web-pohjainen. 378 00:18:30,360 --> 00:18:32,735 Joten tﺣ۳mﺣ۳ voisi nﺣ۳yttﺣ۳ﺣ۳ jopa hieman erilainen kuin jotain 379 00:18:32,735 --> 00:18:35,310 itse voisi olla nﺣ۳hnyt tai ajaa ohi. 380 00:18:35,310 --> 00:18:37,910 >> Joten aion mennﺣ۳ eteenpﺣ۳in nyt ja toimi seuraavasti. 381 00:18:37,910 --> 00:18:40,950 Olen tallentanut tﺣ۳mﺣ۳ kuva hello.c. 382 00:18:40,950 --> 00:18:47,350 Aion mennﺣ۳ eteenpﺣ۳in ja tyyppi clanghello.c Niin Clang 383 00:18:47,350 --> 00:18:49,850 ettﺣ۳ C-kieli on kﺣ۳ﺣ۳ntﺣ۳jﺣ۳. 384 00:18:49,850 --> 00:18:51,952 Se valmiiksi asennettuna CS50 IDE. 385 00:18:51,952 --> 00:18:54,910 Ja voit ehdottomasti ladata ja asentaa tﺣ۳mﺣ۳n itse Mac tai PC. 386 00:18:54,910 --> 00:18:57,910 >> Mutta jﺣ۳lleen kerran, sinun ei tarvitse kaikkia esikokoonpano tehty. 387 00:18:57,910 --> 00:19:00,940 Joten nyt, olen vain aikoo juosta clanghello.c. 388 00:19:00,940 --> 00:19:03,240 Ja nyt huomaa syntaksin tﺣ۳ssﺣ۳ lopulta 389 00:19:03,240 --> 00:19:06,930 ymmﺣ۳rtﺣ۳ﺣ۳ vain sitﺣ۳, ettﺣ۳ minulla on kansion tai hakemiston nimeltﺣ۳ Tyﺣﭘtila. 390 00:19:06,930 --> 00:19:11,030 Tﺣ۳mﺣ۳ dollarin merkki on vain yleissopimus for merkitys, kirjoita komennot tﺣ۳ﺣ۳llﺣ۳. 391 00:19:11,030 --> 00:19:14,560 >> Se, mitﺣ۳ kutsutaan nopea, vain sopimuksen mukaan on dollarin merkki. 392 00:19:14,560 --> 00:19:19,130 Ja jos menen eteenpﺣ۳in nyt ja valitse Anna, mikﺣ۳ﺣ۳n ei tunnu tapahtuneen. 393 00:19:19,130 --> 00:19:20,930 Mutta se on itse asiassa hyvﺣ۳ asia. 394 00:19:20,930 --> 00:19:23,650 Mitﺣ۳ vﺣ۳hemmﺣ۳n, mikﺣ۳ tapahtuu nﺣ۳ytﺣﭘn, sitﺣ۳ todennﺣ۳kﺣﭘisemmin 395 00:19:23,650 --> 00:19:26,710 koodi on olla oikea, ainakin syntaktisesti. 396 00:19:26,710 --> 00:19:29,120 >> Joten jos haluan suorittaa tﺣ۳mﺣ۳n ohjelma, mitﺣ۳ teen? 397 00:19:29,120 --> 00:19:33,770 No, kﺣ۳y ilmi, ettﺣ۳ oletusnimi sopimuksen mukaan 398 00:19:33,770 --> 00:19:38,854 ohjelmia kun et mﺣ۳ﺣ۳ritﺣ۳ Nimeﺣ۳ ohjelma on vain a.out. 399 00:19:38,854 --> 00:19:41,270 Ja tﺣ۳mﺣ۳ syntaksi liian, luultavasti tutustua ennen pitkﺣ۳ﺣ۳. 400 00:19:41,270 --> 00:19:47,500 >> Dot slash tarkoittaa vain, hei, CS50 IDE, suorita ohjelma nimeltﺣ۳ a.out 401 00:19:47,500 --> 00:19:49,400 se sisﺣ۳llﺣ۳ minun hakemistossa. 402 00:19:49,400 --> 00:19:51,520 Tﺣ۳mﺣ۳ piste tarkoittaa nykyisen hakemiston. 403 00:19:51,520 --> 00:19:55,040 Ja nﺣ۳emme, mitﺣ۳ muut tﺣ۳llaiset sekvenssit Merkkien merkitsee ennen pitkﺣ۳ﺣ۳. 404 00:19:55,040 --> 00:19:58,430 >> Joten tﺣ۳ssﺣ۳ sitﺣ۳ mennﺣ۳ﺣ۳n, Enter, Hello World. 405 00:19:58,430 --> 00:20:00,080 Ja huomaat, ettﺣ۳ mitﺣ۳ tapahtui? 406 00:20:00,080 --> 00:20:01,580 Se ei ainoastaan ﻗ€‹ﻗ€‹tulostaa Hello World. 407 00:20:01,580 --> 00:20:05,990 Se myﺣﭘs muutti kursori seuraavalle riville. 408 00:20:05,990 --> 00:20:07,160 >> Ja miksi se oli? 409 00:20:07,160 --> 00:20:12,400 Mikﺣ۳ oli koodi ettﺣ۳ me kirjoitti ennen ettﺣ۳ varmistetaan, ettﺣ۳ kursori 410 00:20:12,400 --> 00:20:14,882 siirry seuraavalle riville? 411 00:20:14,882 --> 00:20:16,840 Hassua noin tietokone on se vain menee 412 00:20:16,840 --> 00:20:18,570 tehdﺣ۳ kirjaimellisesti mitﺣ۳ kerrot sitﺣ۳ tekemﺣ۳ﺣ۳n. 413 00:20:18,570 --> 00:20:26,050 >> Joten jos kerrot sen printf hei, pilkku, avaruus, maailma, lﺣ۳hellﺣ۳ lainaus, 414 00:20:26,050 --> 00:20:29,090 se kirjaimellisesti vain menossa tulostaa ne merkit. 415 00:20:29,090 --> 00:20:31,980 Mutta minulla oli tﺣ۳mﺣ۳ erikoismerkki lopussa, muistaa, kenoviiva n. 416 00:20:31,980 --> 00:20:34,230 Ja juuri varmistettu ettﺣ۳ merkki oli 417 00:20:34,230 --> 00:20:36,570 seuraavalle riville nﺣ۳ytﺣﭘn. 418 00:20:36,570 --> 00:20:38,097 >> Itse asiassa, anna minun mennﺣ۳ ja tehdﺣ۳ tﺣ۳mﺣ۳n. 419 00:20:38,097 --> 00:20:39,430 Anna minun mennﺣ۳ eteenpﺣ۳in ja poistaa. 420 00:20:39,430 --> 00:20:41,180 Nyt, huomaa, ettﺣ۳ alkuun minun nﺣ۳ytﺣﭘn siellﺣ۳ 421 00:20:41,180 --> 00:20:42,890 pieni punainen valo vﺣ۳lilehti ilmaisee, 422 00:20:42,890 --> 00:20:45,047 hei, et ole tallentanut tiedostoa. 423 00:20:45,047 --> 00:20:47,880 Joten aion edetﺣ۳ ohjaus S tai komento S, tallenna tiedosto. 424 00:20:47,880 --> 00:20:51,130 Nyt goes-- meni varten moment-- vihreﺣ۳. 425 00:20:51,130 --> 00:20:53,760 Ja nyt se takaisin vain on lﺣ۳heinen ikoni. 426 00:20:53,760 --> 00:21:01,860 >> Jos minﺣ۳ nyt ajaa clanghello.c uudelleen, Enter, piste slash, a.out, Enter, 427 00:21:01,860 --> 00:21:04,110 nﺣ۳et, ettﺣ۳ se vielﺣ۳ toimi. 428 00:21:04,110 --> 00:21:06,020 Mutta se luultavasti hieman buginen. 429 00:21:06,020 --> 00:21:08,714 Juuri nyt minun prompt-- tyﺣﭘtila, ja sitten, ettﺣ۳ dollarin merkki, 430 00:21:08,714 --> 00:21:10,880 ja sitten minun todellinen prompt-- on kaikki samalla linjalla. 431 00:21:10,880 --> 00:21:14,540 Joten tﺣ۳mﺣ۳ varmasti esteettinen vika, vaikka se ei oikeastaan ﻗ€‹ﻗ€‹looginen vika. 432 00:21:14,540 --> 00:21:16,250 >> Joten aion kumota mitﺣ۳ tein. 433 00:21:16,250 --> 00:21:18,560 Aion uusintana a.out. 434 00:21:18,560 --> 00:21:22,710 Huomatkaa Olen lisﺣ۳nnyt Rivinvaihtomerkkiﺣ۳ takaisin. 435 00:21:22,710 --> 00:21:24,280 Olen tallentanut tiedoston. 436 00:21:24,280 --> 00:21:31,630 >> Joten aion uusintana a.out, and-- dammit, bug, bug tarkoittaa virhe. 437 00:21:31,630 --> 00:21:35,020 Eli vika on, ettﺣ۳ vaikka Lisﺣ۳sin kenoviivan n siellﺣ۳, 438 00:21:35,020 --> 00:21:41,180 uudelleen tallennettu, uudelleen juoksi ohjelma, kﺣ۳yttﺣ۳ytyminen oli sama. 439 00:21:41,180 --> 00:21:42,640 Miksi olisi? 440 00:21:42,640 --> 00:21:43,910 >> Olen puuttuu askel, eikﺣﭘ? 441 00:21:43,910 --> 00:21:47,620 Tﺣ۳mﺣ۳ keskeinen askel aikaisemmin oli, ettﺣ۳ olet to-- kun muutat lﺣ۳hdekoodia, 442 00:21:47,620 --> 00:21:49,610 se kﺣ۳ﺣ۳ntyy pois myﺣﭘs ajaa se lﺣ۳pi kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ 443 00:21:49,610 --> 00:21:51,102 uudelleen niin saat uuden koneen koodi. 444 00:21:51,102 --> 00:21:52,810 Ja konekoodi nollat ﻗ€‹ﻗ€‹ja ykkﺣﭘset, 445 00:21:52,810 --> 00:21:56,260 tulevat olemaan lﺣ۳hes identtiset, mutta ei tﺣ۳ydellisesti niin, koska tarvitsemme, 446 00:21:56,260 --> 00:21:57,510 tietenkin, ettﺣ۳ uusi rivi. 447 00:21:57,510 --> 00:22:02,640 >> Joten korjata, aion tarvitsevat uusintana clanghello.c, kirjoita, dot 448 00:22:02,640 --> 00:22:03,800 slash, a.out. 449 00:22:03,800 --> 00:22:08,402 Ja nyt, hei maailma on palannut missﺣ۳ Odotan sen olevan. 450 00:22:08,402 --> 00:22:09,610 Tﺣ۳mﺣ۳ kaikki on siis hieno ja hyvﺣ۳. 451 00:22:09,610 --> 00:22:13,150 Mutta a.out on tyhmﺣ۳ nimi varten ohjelma, vaikka se sattuu olemaan, 452 00:22:13,150 --> 00:22:16,530 historiallisista syistﺣ۳ default-- tarkoittaa kokoonpano lﺣ۳hdﺣﭘt. 453 00:22:16,530 --> 00:22:20,780 >> Mutta anna minun mennﺣ۳ eteenpﺣ۳in tﺣ۳ﺣ۳llﺣ۳ ja tehdﺣ۳ tﺣ۳mﺣ۳n eri tavalla. 454 00:22:20,780 --> 00:22:24,760 Haluan hei maailma -ohjelma todella kutsua hei. 455 00:22:24,760 --> 00:22:28,320 Joten jos se olisi kuvake minun tyﺣﭘpﺣﭘydﺣ۳lle, se ei olisi a.out. 456 00:22:28,320 --> 00:22:29,730 Sitﺣ۳ olisi nimeltﺣ۳ﺣ۳n hei. 457 00:22:29,730 --> 00:22:33,660 >> Joten tehdﺣ۳ tﺣ۳mﺣ۳n, se kﺣ۳ﺣ۳ntyy pois ettﺣ۳ Clang, kuten monet ohjelmat, 458 00:22:33,660 --> 00:22:37,980 tukee komentoriviargumentteja, tai lippuja, tai kytkimiﺣ۳, 459 00:22:37,980 --> 00:22:39,600 joka yksinkertaisesti vaikuttaa sen kﺣ۳yttﺣ۳ytymiseen. 460 00:22:39,600 --> 00:22:45,160 Erityisesti Clang tukee viiva o lippu, joka sitten ottaa toinen sana. 461 00:22:45,160 --> 00:22:48,190 Tﺣ۳ssﺣ۳ tapauksessa, minﺣ۳ mielivaltaisesti, mutta kohtuudella, kutsuvat sitﺣ۳ hei. 462 00:22:48,190 --> 00:22:50,710 Mutta voisin kutsua sitﺣ۳ jotain Haluan, paitsi a.out, joka 463 00:22:50,710 --> 00:22:52,390 olisi melko lisﺣ۳ksi piste. 464 00:22:52,390 --> 00:22:55,640 >> Ja sitten vain mﺣ۳ﺣ۳ritellﺣ۳ nimi Tiedoston en haluaisi kﺣ۳ﺣ۳ntﺣ۳ﺣ۳. 465 00:22:55,640 --> 00:22:59,190 Joten nyt vaikka alussa komennon minulla on vielﺣ۳ Clang, 466 00:22:59,190 --> 00:23:01,410 lopussa komennon Minulla on vielﺣ۳ tiedostonimi, 467 00:23:01,410 --> 00:23:05,520 Nyt nﺣ۳mﺣ۳ komentoriviltﺣ۳ argumentteja, nﺣ۳mﺣ۳ liput, jotka sanovat, 468 00:23:05,520 --> 00:23:11,180 oh, muuten, lﺣ۳htﺣﭘ-o, tiedosto kutsutaan hei, ei oletuksena a.out. 469 00:23:11,180 --> 00:23:13,810 >> Joten jos osuin Anna nyt, ei mitﺣ۳ﺣ۳n nﺣ۳yttﺣ۳ﺣ۳ tapahtuneen. 470 00:23:13,810 --> 00:23:17,900 Ja vielﺣ۳, nyt voin tehdﺣ۳ piste slash hei. 471 00:23:17,900 --> 00:23:19,089 Joten se on sama ohjelma. 472 00:23:19,089 --> 00:23:21,380 Nollat ﻗ€‹ﻗ€‹ja niistﺣ۳ ovat identtiset lopussa pﺣ۳ivﺣ۳n. 473 00:23:21,380 --> 00:23:24,210 >> Mutta he kahdessa eri files-- a.out, 474 00:23:24,210 --> 00:23:26,490 joka on ensimmﺣ۳inen versio ja vain tyhmﺣ۳sti nimetty, 475 00:23:26,490 --> 00:23:30,250 ja nyt hei, joka on paljon enemmﺣ۳n pakottavia nimi ohjelmalle. 476 00:23:30,250 --> 00:23:33,195 Mutta rehellisesti, olen koskaan menossa muistaa tﺣ۳tﺣ۳ uudelleen, 477 00:23:33,195 --> 00:23:34,070 ja uudestaan, ja uudestaan. 478 00:23:34,070 --> 00:23:36,411 Ja itse asiassa, kuten me kirjoittaa monimutkaisempi ohjelmia, 479 00:23:36,411 --> 00:23:38,160 komennot olet tﺣ۳ytyy kirjoittaa 480 00:23:38,160 --> 00:23:40,920 menevﺣ۳t vielﺣ۳ monimutkaisempia edelleen. 481 00:23:40,920 --> 00:23:41,940 >> Ja niin ei hﺣ۳tﺣ۳ﺣ۳. 482 00:23:41,940 --> 00:23:46,220 On kﺣ۳ynyt ilmi, ettﺣ۳ ihmiset ennen meistﺣ۳ ovat ymmﺣ۳rtﺣ۳neet hekin 483 00:23:46,220 --> 00:23:47,530 oli tﺣ۳mﺣ۳ tﺣ۳smﺣ۳lleen sama ongelma. 484 00:23:47,530 --> 00:23:50,900 Hekin eivﺣ۳t nauti tarvitse tyyppi melko pitkﺣ۳, mystistﺣ۳ komentoja, 485 00:23:50,900 --> 00:23:52,200 puhumattakaan muista niitﺣ۳. 486 00:23:52,200 --> 00:23:56,070 Ja niin ihmiset ennen meitﺣ۳ tehneet muita ohjelmia, jotka helpottavat 487 00:23:56,070 --> 00:23:57,670 koota ohjelmiston. 488 00:23:57,670 --> 00:24:01,609 >> Ja, todellakin, yksi tﺣ۳llainen Ohjelma on nimeltﺣ۳ﺣ۳n Make. 489 00:24:01,609 --> 00:24:03,150 Joten aion mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 490 00:24:03,150 --> 00:24:05,691 Aion perua kaiken I juuri teki seuraavalla tavalla. 491 00:24:05,691 --> 00:24:07,690 Saanen tyyppi LS. 492 00:24:07,690 --> 00:24:10,980 Ja huomaat kolme things-- a.out, ja tﺣ۳hti, hei 493 00:24:10,980 --> 00:24:12,810 ja tﺣ۳hti, ja hello.c. 494 00:24:12,810 --> 00:24:14,730 Toivottavasti tﺣ۳mﺣ۳ olisi olla hieman intuitiivinen, 495 00:24:14,730 --> 00:24:18,220 sikﺣ۳li kuin aiemmin oli mitﺣ۳ﺣ۳n tﺣ۳ssﺣ۳ tyﺣﭘtilassa. 496 00:24:18,220 --> 00:24:21,240 Ei ollut mitﺣ۳ﺣ۳n jouduin luotu kunnes aloimme luokassa. 497 00:24:21,240 --> 00:24:22,840 >> Ja olen luonut hello.c. 498 00:24:22,840 --> 00:24:24,544 Sitten kootaan sitﺣ۳, ja kutsui sitﺣ۳ a.out. 499 00:24:24,544 --> 00:24:27,460 Ja sitten kootaan uudelleen hieman eri tavalla ja kutsui sitﺣ۳ hei. 500 00:24:27,460 --> 00:24:32,830 Olen siis kolme tiedostoja tﺣ۳hﺣ۳n hakemistoon, Tﺣ۳ssﺣ۳ kansio nimeltﺣ۳ Tyﺣﭘtila. 501 00:24:32,830 --> 00:24:35,005 Nyt nﺣ۳en, ettﺣ۳ myﺣﭘs jos en loitontaa itse. 502 00:24:35,005 --> 00:24:37,530 >> Jos minﺣ۳ loitontaa tﺣ۳ﺣ۳llﺣ۳ ja katsokaa, ettﺣ۳ sivun oikeassa 503 00:24:37,530 --> 00:24:39,940 kulma, kuten luvattiin vasen laidassa nﺣ۳ytﺣﭘn 504 00:24:39,940 --> 00:24:42,990 on aina menossa nﺣ۳yttﺣ۳mﺣ۳ﺣ۳n mitﺣ۳ tilillﺣ۳si, mitﺣ۳ 505 00:24:42,990 --> 00:24:44,790 sisﺣ۳puoli CS50 IDE. 506 00:24:44,790 --> 00:24:46,680 Ja on kolme tiedostoa siellﺣ۳. 507 00:24:46,680 --> 00:24:49,070 >> Joten haluan pﺣ۳ﺣ۳stﺣ۳ eroon a.out ja hei. 508 00:24:49,070 --> 00:24:51,275 Ja kuten ehkﺣ۳ kuvitella intuitiivisesti, sinun 509 00:24:51,275 --> 00:24:53,400 voisi lajitella valvonnan klikkauksen tai oikealla klikkaa tﺣ۳stﺣ۳. 510 00:24:53,400 --> 00:24:54,590 Ja tﺣ۳mﺣ۳ pieni valikko ponnahtaa. 511 00:24:54,590 --> 00:24:57,170 Voit ladata tiedoston, suorita se, esikatsella sitﺣ۳, virkistﺣ۳ﺣ۳, nimetﺣ۳ uudelleen, 512 00:24:57,170 --> 00:24:57,700 tai mitﺣ۳ ei. 513 00:24:57,700 --> 00:25:00,260 >> Voisin vain poistaa, ja se menisi pois. 514 00:25:00,260 --> 00:25:05,260 Mutta nyt tehdﺣ۳ asioita komennolla linja nyt, jotta totutella 515 00:25:05,260 --> 00:25:07,010 Tﺣ۳mﺣ۳n, ja toimi seuraavasti. 516 00:25:07,010 --> 00:25:12,345 Aion mennﺣ۳ eteenpﺣ۳in ja poistaa a.out kirjoittamalla kirjaimellisesti rma.out. 517 00:25:12,345 --> 00:25:14,890 On kﺣ۳ynyt ilmi, komento poistamalla tai poistamalla jotain, 518 00:25:14,890 --> 00:25:16,280 ei poista tai poista. 519 00:25:16,280 --> 00:25:21,260 >> Se on enemmﺣ۳n ytimekkﺣ۳ﺣ۳sti RM, vain sﺣ۳ﺣ۳stﺣ۳ﺣ۳ sinulle nﺣ۳ppﺣ۳imistﺣﭘn, ja paina Enter. 520 00:25:21,260 --> 00:25:24,707 Nyt aiomme olla hieman arvoituksellisesti poistaa tavallinen tiedosto a.out. 521 00:25:24,707 --> 00:25:27,040 En todellakaan tiedﺣ۳, mitﺣ۳ epﺣ۳sﺣ۳ﺣ۳nnﺣﭘllinen tiedosto olisi vielﺣ۳. 522 00:25:27,040 --> 00:25:28,660 Mutta en halua poistaa sitﺣ۳. 523 00:25:28,660 --> 00:25:30,150 >> Joten aion kirjoittaa y kyllﺣ۳. 524 00:25:30,150 --> 00:25:31,940 Tai voisin kirjoittaa sen ulos, ja paina Enter. 525 00:25:31,940 --> 00:25:33,440 Ja jﺣ۳lleen, mikﺣ۳ﺣ۳n ei tunnu tapahtuvan. 526 00:25:33,440 --> 00:25:35,840 Mutta se on yleensﺣ۳ hyvﺣ۳ asia. 527 00:25:35,840 --> 00:25:40,490 >> Jos kirjoitan LS tﺣ۳llﺣ۳ kertaa, mitﺣ۳ minun pitﺣ۳isi nﺣ۳hdﺣ۳? 528 00:25:40,490 --> 00:25:44,930 Toivottavasti vain hei ja hello.c. 529 00:25:44,930 --> 00:25:47,286 Nyt sivuhuomautuksena, luultavasti huomaa tﺣ۳hti, tﺣ۳hti, 530 00:25:47,286 --> 00:25:48,660 se lopussa minun ohjelmia. 531 00:25:48,660 --> 00:25:50,201 Ja he myﺣﭘs nﺣ۳y vihreﺣ۳nﺣ۳. 532 00:25:50,201 --> 00:25:53,970 Tﺣ۳mﺣ۳ on vain CS50 IDE tapa of cluing sinut siihen 533 00:25:53,970 --> 00:25:55,280 ettﺣ۳ se ei ole lﺣ۳hdekoodia. 534 00:25:55,280 --> 00:25:58,880 Se suoritettavan, eli runnable ohjelma, jonka voit todella ajaa 535 00:25:58,880 --> 00:26:01,020 tekemﺣ۳llﺣ۳ piste slash, ja sitten se nimi. 536 00:26:01,020 --> 00:26:05,860 >> Nyt, anna minun mennﺣ۳ eteenpﺣ۳in ja poistaa Tﺣ۳mﺣ۳n, rm hei, Enter, poista sﺣ۳ﺣ۳nnﺣﭘllisesti 537 00:26:05,860 --> 00:26:08,010 tiedosto hei, kyllﺣ۳. 538 00:26:08,010 --> 00:26:11,180 Ja nyt jos kirjoitan LS, olemme takaisin hello.c. 539 00:26:11,180 --> 00:26:13,917 Yritﺣ۳ poistaa Varsinainen lﺣ۳hdekoodia. 540 00:26:13,917 --> 00:26:16,250 Vaikka on olemassa ominaisuuksia rakennettu CS50 IDE jossa 541 00:26:16,250 --> 00:26:19,870 voit kﺣ۳ydﺣ۳ lﺣ۳pi versiohistoriaa ja taaksepﺣ۳in ajassa, jos olet vahingossa 542 00:26:19,870 --> 00:26:23,660 poistaa jotain, tee olla tietoinen kohti nﺣ۳itﺣ۳ kehotteita kyllﺣ۳ ﻗ€‹ﻗ€‹tai ei, 543 00:26:23,660 --> 00:26:25,381 mitﺣ۳ todella haluat tehdﺣ۳. 544 00:26:25,381 --> 00:26:27,380 Ja jos menen ylﺣﭘs vasen ylﺣ۳kulmassa tﺣ۳ﺣ۳llﺣ۳, 545 00:26:27,380 --> 00:26:30,696 jﺣ۳ljellﺣ۳ on hello.c. 546 00:26:30,696 --> 00:26:32,570 Joten ei kimppua muut komennot 547 00:26:32,570 --> 00:26:37,550 voi suorittaa maailmassa Linux, joista yksi on, jﺣ۳lleen, Saa. 548 00:26:37,550 --> 00:26:40,180 Ja aiomme tehdﺣ۳ minun ohjelma nyt seuraavasti. 549 00:26:40,180 --> 00:26:43,270 >> Sijaan tehdﺣ۳ kalahtaa, sen sijaan tehdﺣ۳ kalahtaa-o, 550 00:26:43,270 --> 00:26:45,860 Aion yksinkertaisesti kirjaimellisesti tyyppi, tehdﺣ۳ hei. 551 00:26:45,860 --> 00:26:49,630 Ja nyt huomaa, olen ei kirjoittamalla tehdﺣ۳ hello.c. 552 00:26:49,630 --> 00:26:50,910 Olen kirjoittamalla tehdﺣ۳ hei. 553 00:26:50,910 --> 00:26:54,840 >> Ja tﺣ۳mﺣ۳ ohjelma Tee ettﺣ۳ mukana CS50 IDE, ja lisﺣ۳ﺣ۳ 554 00:26:54,840 --> 00:26:57,090 yleensﺣ۳ Linux, on ohjelma, joka on 555 00:26:57,090 --> 00:26:59,120 aikoo tehdﺣ۳ ohjelma nimeltﺣ۳ Hei. 556 00:26:59,120 --> 00:27:03,680 Ja se tulee olettaa, sopimuksen mukaan, ettﺣ۳ jos ohjelma voidaan tehdﺣ۳, 557 00:27:03,680 --> 00:27:09,030 se aiotaan tehdﺣ۳ lﺣ۳hteestﺣ۳ koodi tiedosto pﺣ۳ﺣ۳ttyy piste c, hello.c. 558 00:27:09,030 --> 00:27:12,210 >> Joten jos osuin Anna nyt huomaa, ettﺣ۳ komennon, joka saa suorittaa 559 00:27:12,210 --> 00:27:14,340 on itse asiassa jopa pidempi ennen kuin aikaisemmin. 560 00:27:14,340 --> 00:27:16,670 Ja se johtuu siitﺣ۳ olemme esimﺣ۳ﺣ۳ritetty CS50 IDE olla 561 00:27:16,670 --> 00:27:19,878 lisﺣ۳ominaisuuksia rakennettu, ettﺣ۳ emme tarvitse vielﺣ۳, mutta pian tulee. 562 00:27:19,878 --> 00:27:23,470 Mutta avain asia on ymmﺣ۳rrettﺣ۳vﺣ۳ Nyt olen Hei ohjelma. 563 00:27:23,470 --> 00:27:27,080 >> Jos kirjoitan LS taas, I on hei ohjelma. 564 00:27:27,080 --> 00:27:32,070 Ja voin ajaa sen kanssa piste slash a.out, no, 565 00:27:32,070 --> 00:27:35,590 koska koko kohta tﺣ۳mﺣ۳n Harjoitus oli piste slash hei. 566 00:27:35,590 --> 00:27:38,089 Ja nyt minulla on hei maailma -ohjelma. 567 00:27:38,089 --> 00:27:39,880 Joten eteenpﺣ۳in, olemme melkein aina vain 568 00:27:39,880 --> 00:27:42,088 menossa koota meidﺣ۳n ohjelmia komennolla Make. 569 00:27:42,088 --> 00:27:45,300 Ja sitten me aiomme kﺣ۳yttﺣ۳ﺣ۳ niitﺣ۳ piste leikata, ja ohjelman nimi. 570 00:27:45,300 --> 00:27:49,610 Mutta ymmﺣ۳rtﺣ۳ﺣ۳, mitﺣ۳ tehdﺣ۳, on tekemﺣ۳ssﺣ۳ te, se ei itse ole kﺣ۳ﺣ۳ntﺣ۳jﺣ۳. 571 00:27:49,610 --> 00:27:53,310 Se on vain mukavuussyistﺣ۳ ohjelma joka osaa kﺣ۳ynnistﺣ۳ﺣ۳ kﺣ۳ﺣ۳ntﺣ۳jﺣ۳ 572 00:27:53,310 --> 00:27:56,470 ajaa niin, ettﺣ۳ voit itse kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳. 573 00:27:56,470 --> 00:28:00,220 >> Mitﺣ۳ muita komentoja olemassa Linux, ja vuorostaan ﻗ€‹ﻗ€‹CS50 IDE? 574 00:28:00,220 --> 00:28:03,107 Tulemme pian nﺣ۳hdﺣ۳, ettﺣ۳ on olemassa CD-komento, Change Directory. 575 00:28:03,107 --> 00:28:05,190 Nﺣ۳in voit sisﺣ۳llﺣ۳ sinun komentorivikﺣ۳yttﺣﭘliittymﺣ۳n 576 00:28:05,190 --> 00:28:07,610 eteenpﺣ۳in, ja takaisin, ja avata eri kansioihin 577 00:28:07,610 --> 00:28:08,860 ilman hiirtﺣ۳. 578 00:28:08,860 --> 00:28:12,470 >> LS nﺣ۳imme, joka tarkoittaa lista tiedostot hakemistossa. 579 00:28:12,470 --> 00:28:14,650 Tee Dir, voit luultavasti alkaa pﺣ۳ﺣ۳tellﺣ۳ 580 00:28:14,650 --> 00:28:18,150 mitﺣ۳ nﺣ۳mﺣ۳ tarkoittavat now-- tehdﺣ۳ hakemistoon, Jos haluat luoda kansion. 581 00:28:18,150 --> 00:28:21,270 RM poistaa, RM Dir varten poista directory-- ja nﺣ۳mﺣ۳, 582 00:28:21,270 --> 00:28:24,160 jﺣ۳lleen, ovat komentorivin vastineet, mitﺣ۳ 583 00:28:24,160 --> 00:28:26,945 voisi tehdﺣ۳ CS50 IDE hiirellﺣ۳. 584 00:28:26,945 --> 00:28:28,820 Mutta lﺣﭘydﺣ۳t pian ettﺣ۳ joskus se on vain 585 00:28:28,820 --> 00:28:30,610 paljon nopeammin tekemistﺣ۳ asioita, joissa on nﺣ۳ppﺣ۳imistﺣﭘ, 586 00:28:30,610 --> 00:28:33,690 ja lopulta paljon tehokkaampi. 587 00:28:33,690 --> 00:28:36,440 >> Mutta on vaikea vﺣ۳ittﺣ۳ﺣ۳, ettﺣ۳ mitﺣ۳ olemme tehneet tﺣ۳hﺣ۳n mennessﺣ۳ 588 00:28:36,440 --> 00:28:39,990 on kaikki, tehokas, kun kaikki olemme sanoneet on, hei maailma. 589 00:28:39,990 --> 00:28:43,740 Ja itse en hardcoded sanat Hello World minun ohjelmaan. 590 00:28:43,740 --> 00:28:45,530 Ei ole mitﺣ۳ﺣ۳n dynamiikkaa vielﺣ۳. 591 00:28:45,530 --> 00:28:49,320 Scratch oli kertaluokkaa mielenkiintoisempia viime viikolla. 592 00:28:49,320 --> 00:28:51,220 >> Ja niin mennﺣ۳ﺣ۳n sinne. 593 00:28:51,220 --> 00:28:55,310 Otetaan askel kohti ettﺣ۳ tapa joitakin nﺣ۳istﺣ۳ toiminnoista. 594 00:28:55,310 --> 00:28:59,470 Joten ei ainoastaan ﻗ€‹ﻗ€‹C mukana printf, ja rypﺣ۳leterttuja muita toimintoja 595 00:28:59,470 --> 00:29:01,850 joista nﺣ۳emme ajan mittaan, se ei 596 00:29:01,850 --> 00:29:05,760 tekevﺣ۳t kaiken niin helppoa heti portin saada kﺣ۳yttﺣ۳jﺣ۳ syﺣﭘttﺣ۳ﺣ۳. 597 00:29:05,760 --> 00:29:08,140 >> Itse asiassa, yksi puutteista kielten kuten C, 598 00:29:08,140 --> 00:29:10,140 ja jopa Java ja vielﺣ۳ muut, on se, ettﺣ۳ se ei 599 00:29:10,140 --> 00:29:15,860 helpottavat vain saada asioita, kuten kokonaislukuja kﺣ۳yttﺣ۳jiltﺣ۳, ﻗ€‹ﻗ€‹tai jouset, sanoja, 600 00:29:15,860 --> 00:29:19,970 ja lauseita, puhumattakaan asioita, kuten liukuluku arvoja tai todelliset luvut 601 00:29:19,970 --> 00:29:23,240 jossa desimaalipisteet, ja oikeastaan pitkﺣ۳ numeroita, kuten tulemme pian nﺣ۳hdﺣ۳. 602 00:29:23,240 --> 00:29:27,000 Joten tﺣ۳mﺣ۳ luettelo rakenteista, nﺣ۳mﺣ۳ ovat kuin muut Scratch palapelin palaset 603 00:29:27,000 --> 00:29:31,090 ettﺣ۳ olemme esiasennettuna CS50 IDE ettﺣ۳ kﺣ۳ytﺣ۳mme muutaman viikon 604 00:29:31,090 --> 00:29:34,010 kuten apupyﺣﭘrﺣ۳t tapaisena, ja lopulta ottaa niitﺣ۳ pois, ja katso 605 00:29:34,010 --> 00:29:37,210 alla huppu, ehkﺣ۳ kello miten nﺣ۳mﺣ۳ asiat toteutetaan. 606 00:29:37,210 --> 00:29:40,460 >> Mutta tehdﺣ۳ tﺣ۳mﺣ۳n, nyt todella kirjoittaa ohjelma. 607 00:29:40,460 --> 00:29:41,770 Anna minun mennﺣ۳ eteenpﺣ۳in nyt. 608 00:29:41,770 --> 00:29:44,750 Ja aion luoda uusi tiedosto napsauttamalla tﺣ۳tﺣ۳ pientﺣ۳ plus, 609 00:29:44,750 --> 00:29:45,970 ja valitsemalla uusi tiedosto. 610 00:29:45,970 --> 00:29:49,250 >> Aion sﺣ۳ﺣ۳stﺣ۳ﺣ۳ tﺣ۳mﺣ۳n seuraavan yksi niin, sanokaamme, string.c, 611 00:29:49,250 --> 00:29:50,750 koska haluan pelata jouset. 612 00:29:50,750 --> 00:29:53,990 Ja merkkijono C on vain merkkijono. 613 00:29:53,990 --> 00:29:56,090 Joten nyt mennﺣ۳ﺣ۳n eteenpﺣ۳in ja toimi seuraavasti. 614 00:29:56,090 --> 00:30:01,204 >> Lisﺣ۳ﺣ۳ vakio IO.h-- ja se kﺣ۳ﺣ۳ntyy pois standardin IO, 615 00:30:01,204 --> 00:30:03,360 IO tarkoittaa vain tulo ja lﺣ۳htﺣﭘ. 616 00:30:03,360 --> 00:30:05,920 Joten kﺣ۳y ilmi, ettﺣ۳ tﺣ۳mﺣ۳ linja tﺣ۳ssﺣ۳ mitﺣ۳ 617 00:30:05,920 --> 00:30:08,140 on naapurimaiden meitﺣ۳ kﺣ۳yttﺣ۳mﺣ۳ﺣ۳n printf. 618 00:30:08,140 --> 00:30:10,410 Printf tietenkin tuottaa ulostulon. 619 00:30:10,410 --> 00:30:15,000 Joten voidakseen kﺣ۳yttﺣ۳ﺣ۳ printf, se kﺣ۳ﺣ۳ntyy ulos tﺣ۳ytyy olla koodirivin 620 00:30:15,000 --> 00:30:16,040 ylﺣ۳osassa tiedoston. 621 00:30:16,040 --> 00:30:18,456 >> Ja me palaamme mitﺣ۳ joka todella merkitsee ennen pitkﺣ۳ﺣ۳. 622 00:30:18,456 --> 00:30:20,400 On kﺣ۳ynyt ilmi, ettﺣ۳ tahansa C-ohjelma I kirjoittaa, 623 00:30:20,400 --> 00:30:23,640 Minun tﺣ۳ytyy aloittaa sen kanssa koodia, joka nﺣ۳yttﺣ۳ﺣ۳ tﺣ۳ltﺣ۳. 624 00:30:23,640 --> 00:30:26,860 Ja huomaat CS50 IDE, ja muut yhtenﺣ۳inen kehittﺣ۳minen 625 00:30:26,860 --> 00:30:30,050 ympﺣ۳ristﺣﭘissﺣ۳, kuten se, ovat menossa yrittﺣ۳ﺣ۳ parhaansa 626 00:30:30,050 --> 00:30:31,780 he voivat lopettaa oman ajattelun. 627 00:30:31,780 --> 00:30:35,930 Itse asiassa, hetki sitten, jos en kumoa mitﺣ۳ tein, osuin Enter. 628 00:30:35,930 --> 00:30:39,160 >> Sitten osuma auki kihara ahdin, paina Enter uudelleen. 629 00:30:39,160 --> 00:30:40,430 Ja se pﺣ۳ﺣ۳ttynyt minun ajatus. 630 00:30:40,430 --> 00:30:45,140 Se antoi uuden linjan, sisennetty ei vﺣ۳hempﺣ۳ﺣ۳ for nice tyylillinen syistﺣ۳ nﺣ۳emme. 631 00:30:45,140 --> 00:30:48,559 Ja sitten se automaattisesti antoi minulle ettﺣ۳ kihara ahdin pﺣ۳ﺣ۳tﺣ۳n ajatus. 632 00:30:48,559 --> 00:30:50,600 Nyt, se ei aina arvata mitﺣ۳ haluat tehdﺣ۳. 633 00:30:50,600 --> 00:30:53,620 Mutta suurelta osin, se tekee sﺣ۳ﺣ۳stﺣ۳ﺣ۳ noin painalluksia. 634 00:30:53,620 --> 00:30:59,560 Joten hetki sitten meillﺣ۳ oli tﺣ۳mﺣ۳ program-- hei, maailma, ja sitten koottu se, 635 00:30:59,560 --> 00:31:00,460 ja sitten juoksi sen. 636 00:31:00,460 --> 00:31:01,867 Mutta ei ole dynamiikkaa tﺣ۳ﺣ۳llﺣ۳. 637 00:31:01,867 --> 00:31:03,700 Mitﺣ۳ jos halusimme tehdﺣ۳ jotain erilaista? 638 00:31:03,700 --> 00:31:07,630 No, mitﺣ۳ jos halusin todella saat merkkijonon kﺣ۳yttﺣ۳jﺣ۳? 639 00:31:07,630 --> 00:31:11,250 Aion kﺣ۳yttﺣ۳ﺣ۳ palapelin pala nimeltﺣ۳ﺣ۳n tarkalleen that-- saada merkkijono. 640 00:31:11,250 --> 00:31:15,860 >> Osoittautuu C ettﺣ۳ kun et halua tarjota aineksia palapelin pala, 641 00:31:15,860 --> 00:31:19,360 tai oikeammin on -toiminnolla kirjaimellisesti vain tehdﺣ۳ alkusulun, 642 00:31:19,360 --> 00:31:20,430 lﺣ۳hellﺣ۳ suluissa. 643 00:31:20,430 --> 00:31:25,540 Joten se on ikﺣ۳ﺣ۳n kuin siellﺣ۳ ei valkoista ruutua kirjoitat. 644 00:31:25,540 --> 00:31:27,720 Sano lohko ennen oli pieni valkoinen laatikko. 645 00:31:27,720 --> 00:31:29,660 Meillﺣ۳ ei ole, ettﺣ۳ valkoisen laatikon nyt. 646 00:31:29,660 --> 00:31:33,310 >> Mutta kun kutsun get merkkijono, minﺣ۳ haluavat laittaa tuloksen jonnekin. 647 00:31:33,310 --> 00:31:37,680 Joten hyvin yleinen paradigma C on soittaa toiminto, kuten get string tﺣ۳ﺣ۳llﺣ۳, 648 00:31:37,680 --> 00:31:41,070 ja sitten tallentaa sen palauttama arvo. 649 00:31:41,070 --> 00:31:44,450 Se on seurausta sen vaivaa jotain. 650 00:31:44,450 --> 00:31:47,630 >> Ja mikﺣ۳ on rakentaa ohjelmointi, 651 00:31:47,630 --> 00:31:53,450 onko Scratch tai nyt C, ettﺣ۳ me voi kﺣ۳yttﺣ۳ﺣ۳ todella tallentaa jotain? 652 00:31:53,450 --> 00:31:55,990 Kutsui sitﺣ۳ muuttuja, eikﺣﭘ? 653 00:31:55,990 --> 00:32:00,320 Ja Scratch, emme oikeastaan vﺣ۳litﺣ۳ mitﺣ۳ oli menossa muuttujiin. 654 00:32:00,320 --> 00:32:02,170 >> Mutta tﺣ۳ssﺣ۳ tapauksessa, me todella tehdﺣ۳. 655 00:32:02,170 --> 00:32:03,719 Aion sanoa merkkijono. 656 00:32:03,719 --> 00:32:05,510 Ja sitten voisi kutsua Tﺣ۳ssﺣ۳ mitﺣ۳ haluan. 657 00:32:05,510 --> 00:32:08,340 Aion kutsua sitﺣ۳ nimi, saa saada merkkijono. 658 00:32:08,340 --> 00:32:10,250 >> Nyt vaikka olet vﺣ۳hﺣ۳n uusi tﺣ۳ssﺣ۳, 659 00:32:10,250 --> 00:32:11,984 huomata, ettﺣ۳ olen puuttuu joitakin yksityiskohtia. 660 00:32:11,984 --> 00:32:13,150 Olen unohtamatta puolipisteellﺣ۳. 661 00:32:13,150 --> 00:32:14,400 Minun tﺣ۳ytyy lopettaa tﺣ۳mﺣ۳n ajatuksen. 662 00:32:14,400 --> 00:32:17,480 Joten aion siirtﺣ۳ﺣ۳ minun osoitinta, ja osuma puolipisteellﺣ۳ siellﺣ۳. 663 00:32:17,480 --> 00:32:19,130 Ja mitﺣ۳ olen juuri tehnyt? 664 00:32:19,130 --> 00:32:21,440 Tﺣ۳llﺣ۳ rivillﺣ۳ koodia, numero 5 tﺣ۳llﺣ۳ hetkellﺣ۳, 665 00:32:21,440 --> 00:32:23,799 Soitan get merkkijonon ilman panoksia. 666 00:32:23,799 --> 00:32:26,090 Joten ei ole pieni valkoinen ajas Tallenna lohko on. 667 00:32:26,090 --> 00:32:28,590 >> Sanon vain, hei, tietokone, saada minut merkkijono. 668 00:32:28,590 --> 00:32:31,390 Yhtﺣ۳suuruusmerkin ei oikeastaan yhtﺣ۳lﺣ۳isyysmerkki, sinﺣ۳nsﺣ۳. 669 00:32:31,390 --> 00:32:33,790 Se on tehtﺣ۳vﺣ۳ operaattorin, joka tarkoittaa, 670 00:32:33,790 --> 00:32:37,860 hei, tietokone, siirrﺣ۳ arvo oikealta yli vasemmalle. 671 00:32:37,860 --> 00:32:40,480 Ja vasemmassa, olen seuraava. 672 00:32:40,480 --> 00:32:43,580 >> Hei, tietokone, anna minulle string-- merkkijono. 673 00:32:43,580 --> 00:32:45,637 Ja soittaa merkkijono nimi. 674 00:32:45,637 --> 00:32:47,220 Enkﺣ۳ edes kutsua sitﺣ۳ Name. 675 00:32:47,220 --> 00:32:49,970 >> Voisin kutsua sitﺣ۳, perinteisesti, jotain S, 676 00:32:49,970 --> 00:32:52,900 paljon kuin kﺣ۳ytimme i soittaa muuttuja i. 677 00:32:52,900 --> 00:32:54,829 Mutta nyt minun tﺣ۳ytyy tehdﺣ۳ jotain. 678 00:32:54,829 --> 00:32:57,370 Olisi aika tyhmﺣ۳ﺣ۳ kﺣ۳ﺣ۳ntﺣ۳mistﺣ۳ tﺣ۳tﺣ۳ koodia, kﺣ۳ynnissﺣ۳ 679 00:32:57,370 --> 00:32:59,410 Tﺣ۳mﺣ۳n ohjelman, vaikka Saan merkkijono, 680 00:32:59,410 --> 00:33:01,580 koska se on edelleen vain menossa tervehtimﺣ۳ﺣ۳n maailmaan. 681 00:33:01,580 --> 00:33:06,140 >> Mutta mitﺣ۳ jos en halua muuttaa tﺣ۳tﺣ۳. 682 00:33:06,140 --> 00:33:07,940 Miksi en tee tﺣ۳tﺣ۳? 683 00:33:07,940 --> 00:33:11,632 Prosentti s, pilkku s. 684 00:33:11,632 --> 00:33:13,090 Ja tﺣ۳mﺣ۳ on hieman arvoituksellinen vielﺣ۳. 685 00:33:13,090 --> 00:33:15,560 >> Haluan siis tehdﺣ۳ minun muuttujia selvempi. 686 00:33:15,560 --> 00:33:17,510 Saanen nimetﺣ۳ tﺣ۳mﺣ۳n muuttujan nimi. 687 00:33:17,510 --> 00:33:20,230 Ja katsotaan jos emme voi kiusata lisﺣ۳ksi mitﺣ۳ tﺣ۳ﺣ۳llﺣ۳ tapahtuu. 688 00:33:20,230 --> 00:33:22,770 >> Joten linja viisi, Saan merkkijono. 689 00:33:22,770 --> 00:33:25,620 Ja olen tallentamiseksi merkkijonon, mitﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ on kirjoittanut 690 00:33:25,620 --> 00:33:28,430 at hﺣ۳nen nﺣ۳ppﺣ۳imistﺣﭘ, muuttujaan nimeltﺣ۳ Name. 691 00:33:28,430 --> 00:33:30,590 Ja kﺣ۳y ilmi, ettﺣ۳ printf ei vain 692 00:33:30,590 --> 00:33:34,220 ottaa yhden argumentin hengen lainauksia, yksi tulo lainausmerkkeihin. 693 00:33:34,220 --> 00:33:39,100 >> Se voi kestﺣ۳ﺣ۳ kaksi tai kolme tai enemmﺣ۳n, kuten ettﺣ۳ toinen tai kolmas tai neljﺣ۳s, 694 00:33:39,100 --> 00:33:42,320 ovat kaikki nimet muuttujien tai erityisesti arvot, 695 00:33:42,320 --> 00:33:48,610 ettﺣ۳ haluat kytkeﺣ۳, dynaamisesti, ettﺣ۳ merkkijono lainausmerkeissﺣ۳. 696 00:33:48,610 --> 00:33:52,110 Toisin sanoen, mitﺣ۳ olisi vikana? 697 00:33:52,110 --> 00:33:57,920 Jos minﺣ۳ vain sanoi hei nimi, kenoviiva n, pelasti minun tiedosto kﺣ۳ﺣ۳nnetty minun koodi, 698 00:33:57,920 --> 00:34:01,660 ja juoksi tﺣ۳mﺣ۳, mitﺣ۳ tapahtuisi? 699 00:34:01,660 --> 00:34:05,139 >> Se juuri menossa sanoa, hei nimi, kirjaimellisesti N-A-M-E, 700 00:34:05,139 --> 00:34:07,900 mikﺣ۳ on typerﺣ۳ﺣ۳, koska se ei poikkea maailmasta. 701 00:34:07,900 --> 00:34:10,400 Joten mitﺣ۳ﺣ۳n lainausmerkit on mitﺣ۳ kirjaimellisesti tulostetaan. 702 00:34:10,400 --> 00:34:12,520 Joten jos Haluan olla paikkamerkin siellﺣ۳, 703 00:34:12,520 --> 00:34:14,422 Olen itse tﺣ۳ytyy kﺣ۳yttﺣ۳ﺣ۳ joitakin erityisiﺣ۳ syntaksi. 704 00:34:14,422 --> 00:34:17,380 Ja se osoittautuu jos olet lukenut dokumentaatio printf toiminto, 705 00:34:17,380 --> 00:34:21,320 se kertoo, ettﺣ۳ Jos kﺣ۳ytﺣ۳t prosenttia s, 706 00:34:21,320 --> 00:34:23,920 voit korvata arvon seuraavasti. 707 00:34:23,920 --> 00:34:27,190 >> Pilkun jﺣ۳lkeen jﺣ۳lkeen lainausmerkki, voit yksinkertaisesti 708 00:34:27,190 --> 00:34:29,179 kirjoittaa nimi muuttuja, ettﺣ۳ haluat 709 00:34:29,179 --> 00:34:33,790 kytkeﺣ۳ tuohon muotoon koodin, tai muodossa mﺣ۳ﺣ۳rittelyksi, 710 00:34:33,790 --> 00:34:35,469 prosentin s jousille. 711 00:34:35,469 --> 00:34:39,190 Ja nyt jos sﺣ۳ﺣ۳stin minun arkistoida, Menen takaisin alas minun terminaaliin. 712 00:34:39,190 --> 00:34:42,870 Ja kirjoitan Tee String, koska, jﺣ۳lleen, nimi tﺣ۳mﺣ۳n 713 00:34:42,870 --> 00:34:45,510 tiedosto ettﺣ۳ valitsin ennen on string.c. 714 00:34:45,510 --> 00:34:48,510 >> Joten aion sanoa tehdﺣ۳ String, kirjoita. 715 00:34:48,510 --> 00:34:51,550 Hyvﺣ۳nen, tarkastella kaikkia virheet olemme tehneet jo. 716 00:34:51,550 --> 00:34:55,540 Ja tﺣ۳mﺣ۳ is-- mitﺣ۳, tﺣ۳mﺣ۳ on todella kuten kuusi, seitsemﺣ۳n linja-ohjelma? 717 00:34:55,540 --> 00:34:57,790 Joten tﺣ۳mﺣ۳ on, jos se voi hyvin nopeasti ylivoimainen. 718 00:34:57,790 --> 00:35:00,890 >> Tﺣ۳mﺣ۳ terminaali ikkuna on nyt vain regurgitated 719 00:35:00,890 --> 00:35:03,230 valtava mﺣ۳ﺣ۳rﺣ۳ virheilmoituksia. 720 00:35:03,230 --> 00:35:07,560 Varmasti, en ole enemmﺣ۳n virhettﺣ۳ viestejﺣ۳ kuin olen riviﺣ۳ koodia. 721 00:35:07,560 --> 00:35:08,680 Joten mitﺣ۳ on tekeillﺣ۳? 722 00:35:08,680 --> 00:35:10,920 >> No, paras strategia tehdﺣ۳ milloin 723 00:35:10,920 --> 00:35:13,710 do kohtaavat ylivoimainen virheluetteloa niin, 724 00:35:13,710 --> 00:35:16,690 on selaa taaksepﺣ۳in, etsiﺣ۳ komennolla juuri juoksemasi joka minun tapauksessani 725 00:35:16,690 --> 00:35:18,020 on tehdﺣ۳ merkkijono. 726 00:35:18,020 --> 00:35:21,630 Katsokaa, mitﺣ۳ tehdﺣ۳ teki, ja se, ettﺣ۳ pitkﺣ۳ Clang komento, no big deal siellﺣ۳. 727 00:35:21,630 --> 00:35:22,950 >> Mutta punainen on huono. 728 00:35:22,950 --> 00:35:24,750 Green yrittﺣ۳ﺣ۳ olla lempeﺣ۳ ja avulias. 729 00:35:24,750 --> 00:35:26,140 Mutta se on edelleen huono, tﺣ۳ssﺣ۳ tapauksessa. 730 00:35:26,140 --> 00:35:27,510 Mutta missﺣ۳ on se huono? 731 00:35:27,510 --> 00:35:31,450 >> String.c, linja viisi, merkki viisi. 732 00:35:31,450 --> 00:35:32,930 Joten tﺣ۳mﺣ۳ on vain yleinen sopimus. 733 00:35:32,930 --> 00:35:36,060 Jotain paksusuolen jotain merkitsee rivinumero ja merkin numero. 734 00:35:36,060 --> 00:35:41,080 Virhe, kﺣ۳yttﺣﭘ pimeﺣ۳n tunniste merkkijono. 735 00:35:41,080 --> 00:35:42,900 Tarkoititko vakiona? 736 00:35:42,900 --> 00:35:45,530 >> Joten valitettavasti Clang yrittﺣ۳ﺣ۳ olla avuksi. 737 00:35:45,530 --> 00:35:46,850 Mutta se on vﺣ۳ﺣ۳rin, tﺣ۳ssﺣ۳ tapauksessa. 738 00:35:46,850 --> 00:35:49,350 Ei, Clang, en tarkoita standardi IO. 739 00:35:49,350 --> 00:35:51,070 Tarkoitin ettﺣ۳ linjalla, kyllﺣ۳. 740 00:35:51,070 --> 00:35:53,420 >> Mutta linja viisi on tﺣ۳mﺣ۳ yksi tﺣ۳ﺣ۳llﺣ۳. 741 00:35:53,420 --> 00:35:57,040 Ja Clang ei ymmﺣ۳rtﺣ۳ﺣ۳ S-T-R-I-N-G. 742 00:35:57,040 --> 00:36:01,490 Se on pimeﺣ۳n tunniste, joka on sana se vain ei ole koskaan ennen nﺣ۳hty. 743 00:36:01,490 --> 00:36:05,730 Ja se johtuu C-kieli me kirjoittaa koodia juuri nyt, 744 00:36:05,730 --> 00:36:08,070 ei ole muuttujia kutsutaan jouset. 745 00:36:08,070 --> 00:36:11,380 >> Se ei oletuksena, tuki jotain kutsutaan merkkijono. 746 00:36:11,380 --> 00:36:16,750 Se on CS50 pala ammattikieltﺣ۳, mutta hyvin tavanomainen. 747 00:36:16,750 --> 00:36:18,600 Mutta voin korjata seuraavasti. 748 00:36:18,600 --> 00:36:22,090 >> Jos lisﺣ۳ﺣ۳n yhtﺣ۳ riviﺣ۳ koodia alkuun tﺣ۳mﺣ۳n ohjelman, 749 00:36:22,090 --> 00:36:27,890 sisﺣ۳ltﺣ۳vﺣ۳t CS50.h, joka on toinen tiedosto jonnekin sisﺣ۳llﺣ۳ CS50 IDE, jonnekin 750 00:36:27,890 --> 00:36:30,820 kiintolevyn, niin sanotusti, Ubuntu-kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳ 751 00:36:30,820 --> 00:36:33,590 ettﺣ۳ olen kﺣ۳ynnissﺣ۳, ettﺣ۳ on tiedosto, joka on 752 00:36:33,590 --> 00:36:38,740 menossa opettaa toiminta jﺣ۳rjestelmﺣ۳ mikﺣ۳ merkkijono on vain 753 00:36:38,740 --> 00:36:41,930 kuten standardi io.h on tiedosto kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳, joka on 754 00:36:41,930 --> 00:36:44,430 menossa opettaa sitﺣ۳ mitﺣ۳ printf on. 755 00:36:44,430 --> 00:36:46,810 >> Todellakin, olisimme saaneet hyvin samanlaisen viestin 756 00:36:46,810 --> 00:36:50,600 jos IO oli myﺣﭘntﺣ۳nyt standardi IO.h ja yritti kﺣ۳yttﺣ۳ﺣ۳ printf. 757 00:36:50,600 --> 00:36:53,632 Joten aion mennﺣ۳ eteenpﺣ۳in ja vain Ohjaa L tyhjentﺣ۳ﺣ۳ tietokoneen nﺣ۳ytﺣﭘllﺣ۳. 758 00:36:53,632 --> 00:36:56,340 Tai voit kirjoittaa selkeitﺣ۳ ja se tulee vain tyhjentﺣ۳ﺣ۳ pﺣ۳ﺣ۳teikkuna. 759 00:36:56,340 --> 00:36:58,020 Mutta voit silti vierittﺣ۳ﺣ۳ ajassa taaksepﺣ۳in. 760 00:36:58,020 --> 00:37:01,100 >> Ja aion uusintana tehdﺣ۳ String. 761 00:37:01,100 --> 00:37:03,660 Cross sormiani tﺣ۳llﺣ۳ kertaa Enter. 762 00:37:03,660 --> 00:37:05,380 Voi luoja, se toimi. 763 00:37:05,380 --> 00:37:09,280 se nﺣ۳yttﺣ۳ﺣ۳ minulle pitkﺣ۳ arvoituksellisesti komennon sitﺣ۳hﺣ۳n Varmista luotu kautta Clang, 764 00:37:09,280 --> 00:37:10,460 mutta ei virheilmoituksia. 765 00:37:10,460 --> 00:37:12,460 Joten ymmﺣ۳rtﺣ۳ﺣ۳, vaikka saatat saada tﺣ۳ysin 766 00:37:12,460 --> 00:37:14,480 hukkua mﺣ۳ﺣ۳rﺣ۳ virheilmoituksia, 767 00:37:14,480 --> 00:37:17,540 se vain voi olla ﺣ۳rsyttﺣ۳vﺣ۳ﺣ۳ CSS vaikutus, jossa Clang ei ymmﺣ۳rrﺣ۳ 768 00:37:17,540 --> 00:37:19,620 Ensinnﺣ۳kin, mikﺣ۳ tarkoittaa, ettﺣ۳ sen jﺣ۳lkeen ei ymmﺣ۳rrﺣ۳ seuraava sana, 769 00:37:19,620 --> 00:37:20,560 tai seuraavalle riville. 770 00:37:20,560 --> 00:37:22,850 Ja niin se vain tukehtuu koodin. 771 00:37:22,850 --> 00:37:24,440 Mutta fix voisi olla yksinkertaista. 772 00:37:24,440 --> 00:37:27,822 Ja niin aina keskittyﺣ۳ ensimmﺣ۳inen rivi tuotos. 773 00:37:27,822 --> 00:37:29,530 Ja jos et ymmﺣ۳rtﺣ۳ﺣ۳ se, katsokaa 774 00:37:29,530 --> 00:37:32,480 avainsanoja, jotka saattavat olla vihjeitﺣ۳, ja rivinumero, 775 00:37:32,480 --> 00:37:34,650 ja merkin, jossa ettﺣ۳ virhe voi olla. 776 00:37:34,650 --> 00:37:40,328 >> Nyt haluan mennﺣ۳ eteenpﺣ۳in ja kirjoita piste slash, merkkijono, kirjoita. 777 00:37:40,328 --> 00:37:44,340 Hm, se ei sano hei mitﺣ۳ﺣ۳n. 778 00:37:44,340 --> 00:37:46,210 Miksi? 779 00:37:46,210 --> 00:37:48,170 No, muistaa, missﺣ۳ on se kﺣ۳ynnissﺣ۳? 780 00:37:48,170 --> 00:37:53,730 >> Se on luultavasti jumissa tﺣ۳llﺣ۳ hetkellﺣ۳ silmukan, jos haluatte, on line kuusi, 781 00:37:53,730 --> 00:37:56,950 koska Get String suunnittelun, kirjoittanut CS50 henkilﺣﭘstﺣﭘ, 782 00:37:56,950 --> 00:38:00,350 on kirjaimellisesti tarkoitus vain istua siellﺣ۳ odottamassa, ja odottaa, 783 00:38:00,350 --> 00:38:01,850 ja odottaa merkkijono. 784 00:38:01,850 --> 00:38:03,792 Kaikki me tarkoitamme merkkijono on ihmisen panos. 785 00:38:03,792 --> 00:38:04,500 Joten tiedﺣ۳tkﺣﭘ mitﺣ۳? 786 00:38:04,500 --> 00:38:05,166 Anna minun mennﺣ۳ eteenpﺣ۳in. 787 00:38:05,166 --> 00:38:08,704 Ja vain hetken mielijohteesta, haluaisin kirjoita nimeﺣ۳ni, David, anna. 788 00:38:08,704 --> 00:38:10,120 Nyt minulla on enemmﺣ۳n dynaaminen ohjelma. 789 00:38:10,120 --> 00:38:11,240 Se sanoi, hei David. 790 00:38:11,240 --> 00:38:16,280 >> Jos menen eteenpﺣ۳in ja suorita tﺣ۳mﺣ۳ uudelleen, Yritﺣ۳n sanoa Zamila nimen, anna. 791 00:38:16,280 --> 00:38:17,940 Ja nyt meillﺣ۳ on dynaaminen ohjelma. 792 00:38:17,940 --> 00:38:19,380 En ole koodattu maailmaa. 793 00:38:19,380 --> 00:38:21,760 En ole koodattu nimi, tai David tai Zamila. 794 00:38:21,760 --> 00:38:25,350 >> Nyt se on paljon enemmﺣ۳n kuin ohjelmat me tiedﺣ۳mme, missﺣ۳ se kestﺣ۳ﺣ۳ tulo, 795 00:38:25,350 --> 00:38:27,870 se tuottaa hieman eri tuotos. 796 00:38:27,870 --> 00:38:31,020 Nyt tﺣ۳mﺣ۳ ei ole paras kﺣ۳yttﺣ۳jﺣ۳kokemusta tai UX. 797 00:38:31,020 --> 00:38:33,000 Juoksen ohjelma. 798 00:38:33,000 --> 00:38:35,830 >> En tiedﺣ۳, mitﺣ۳ minun pitﺣ۳isi tehdﺣ۳, jos en oikeastaan ﻗ€‹ﻗ€‹katsoa 799 00:38:35,830 --> 00:38:37,290 tai muistaa lﺣ۳hdekoodia. 800 00:38:37,290 --> 00:38:39,640 Joten tehdﺣ۳ kﺣ۳yttﺣ۳jﺣ۳n Koe hieman paremmin 801 00:38:39,640 --> 00:38:41,240 yksinkertaisin asioita. 802 00:38:41,240 --> 00:38:44,782 Anna minun mennﺣ۳ takaisin tﺣ۳hﺣ۳n ohjelma, ja sanoa yksinkertaisesti printf. 803 00:38:44,782 --> 00:38:48,870 >> Ja anna minun mennﺣ۳ eteenpﺣ۳in ja sanoa nimi, paksusuoli, ja vﺣ۳lilyﺣﭘnti, ja sitten puolipisteellﺣ۳. 804 00:38:48,870 --> 00:38:51,170 Ja huvin, ei takaisku n. 805 00:38:51,170 --> 00:38:52,980 Ja se on tahallista, koska en halua 806 00:38:52,980 --> 00:38:54,590 kehotteen siirtyﺣ۳ seuraavalle riville. 807 00:38:54,590 --> 00:38:58,800 >> Haluan sen sijaan tehdﺣ۳ tﺣ۳mﺣ۳n, tee merkkijono kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ minun koodi uuden koneen 808 00:38:58,800 --> 00:39:00,980 koodi piste slash merkkijono. 809 00:39:00,980 --> 00:39:02,460 Ah, tﺣ۳mﺣ۳ on paljon kauniimpi. 810 00:39:02,460 --> 00:39:05,780 Nyt en oikeastaan ﻗ€‹ﻗ€‹tiedﺣ۳ mitﺣ۳ tietokone haluaa minun tekevﺣ۳n, antaa sille nimi. 811 00:39:05,780 --> 00:39:10,020 >> Joten aion mennﺣ۳ eteenpﺣ۳in ja kirjoita Rob, kirjoita, ja hei, Rob. 812 00:39:10,020 --> 00:39:13,640 Niin, ymmﺣ۳rtﺣ۳ﺣ۳, tﺣ۳mﺣ۳ on vielﺣ۳ lopussa Pﺣ۳ivﺣ۳n vain yhdeksﺣ۳n linja ohjelmaa. 813 00:39:13,640 --> 00:39:15,090 Mutta olemme ottaneet nﺣ۳mﺣ۳ vauvan askelia. 814 00:39:15,090 --> 00:39:18,380 >> Kirjoitimme yksi rivi, jolla me olivat tuttuja, printf, Hello World. 815 00:39:18,380 --> 00:39:19,980 Sitten undid hieman siitﺣ۳. 816 00:39:19,980 --> 00:39:21,560 Ja me todella kﺣ۳ytetﺣ۳ﺣ۳n get merkkijono. 817 00:39:21,560 --> 00:39:23,362 Ja me heitti ettﺣ۳ arvon muuttujaan. 818 00:39:23,362 --> 00:39:26,070 Sitten menimme eteenpﺣ۳in ja parantanut se edelleen, kolmannella rivillﺣ۳. 819 00:39:26,070 --> 00:39:29,220 Ja tﺣ۳mﺣ۳ iteratiivinen prosessi tallennusohjelmistojen on todella avain. 820 00:39:29,220 --> 00:39:33,420 Vuonna CS50, ja elﺣ۳mﺣ۳ssﺣ۳ yleensﺣ۳, ei yleisesti ottaen tulisi istua alas, 821 00:39:33,420 --> 00:39:36,800 on ohjelma mielessﺣ۳, ja kokeile kirjoittaminen koko hemmetin asia kerralla. 822 00:39:36,800 --> 00:39:40,810 >> Se vﺣ۳istﺣ۳mﺣ۳ttﺣ۳ johtaa tavalla enemmﺣ۳n virheitﺣ۳ kuin me itse nﺣ۳hnyt tﺣ۳ﺣ۳llﺣ۳. 823 00:39:40,810 --> 00:39:44,070 Jopa minﺣ۳, tﺣ۳hﺣ۳n pﺣ۳ivﺣ۳ﺣ۳n, jatkuvasti tehdﺣ۳ muita typeriﺣ۳ virheitﺣ۳, 824 00:39:44,070 --> 00:39:47,480 ovat todella vaikeampaa virheitﺣ۳ jotka ovat vaikeampi selvittﺣ۳ﺣ۳. 825 00:39:47,480 --> 00:39:52,095 Mutta te tekee enemmﺣ۳n virheitﺣ۳ enemmﺣ۳n riviﺣ۳ koodia kirjoittaa kaikki kerralla. 826 00:39:52,095 --> 00:39:54,220 Ja niin tﺣ۳mﺣ۳ kﺣ۳ytﺣ۳ntﺣﭘ, kirjoittaa hieman koodia 827 00:39:54,220 --> 00:39:57,930 ettﺣ۳ olet tyytyvﺣ۳inen, koota se, ajaa sitﺣ۳, testata sitﺣ۳ yleisemmin, 828 00:39:57,930 --> 00:40:01,370 siirrﺣ۳ on-- joten aivan kuten me jatkoimme kerrospukeutuminen ja kerrospukeutuminen viime viikolla, 829 00:40:01,370 --> 00:40:04,190 rakentamassa jotain hyvin yksinkertaista jotain monimutkaisempi, 830 00:40:04,190 --> 00:40:05,200 tehdﺣ۳ saman tﺣ۳ﺣ۳llﺣ۳. 831 00:40:05,200 --> 00:40:08,500 ﺣ„lﺣ۳ istu, ja yritﺣ۳ kirjoittaa koko ongelma. 832 00:40:08,500 --> 00:40:10,780 Oikeastaan ﻗ€‹ﻗ€‹ottaa nﺣ۳mﺣ۳ vauvan askelia. 833 00:40:10,780 --> 00:40:15,100 >> Nyt jouset eivﺣ۳t ole kaikki ettﺣ۳ hyﺣﭘdyllisiﺣ۳ itselleen. 834 00:40:15,100 --> 00:40:18,210 Olimme itse asiassa, ihannetapauksessa, kuten on jotain muuta meidﺣ۳n tyﺣﭘkalusarja. 835 00:40:18,210 --> 00:40:20,990 Joten itse asiassa juuri siihen. 836 00:40:20,990 --> 00:40:24,900 >> Anna minun mennﺣ۳ eteenpﺣ۳in nyt ja lietsoa hieman eri ohjelmaa. 837 00:40:24,900 --> 00:40:28,320 Ja me kutsumme tﺣ۳tﺣ۳ int.c, kokonaisluku. 838 00:40:28,320 --> 00:40:30,870 Aion vastaavasti kuuluu CS550.h. 839 00:40:30,870 --> 00:40:33,060 Aion vakiovarusteista IO. 840 00:40:33,060 --> 00:40:36,630 Ja se tulee olemaan melko yleisiﺣ۳ Nﺣ۳iden ensimmﺣ۳isten pﺣ۳ivien luokan. 841 00:40:36,630 --> 00:40:39,050 >> Ja aion valmis itseni pﺣ۳ﺣ۳tehtﺣ۳vﺣ۳. 842 00:40:39,050 --> 00:40:43,370 Nyt sen sijaan saada merkkijono, mennﺣ۳ﺣ۳n eteenpﺣ۳in ja saada int. 843 00:40:43,370 --> 00:40:49,285 Kutsutaan sitﺣ۳ i, ja kutsua sitﺣ۳ saada int, lﺣ۳hellﺣ۳ parens, puolipisteellﺣ۳. 844 00:40:49,285 --> 00:40:51,410 Ja nyt Tehdﺣ۳ﺣ۳n jotain sen kanssa, printf. 845 00:40:51,410 --> 00:40:56,190 >> Sanotaan jotain Hei, kenoviiva n, pilkulla i. 846 00:40:56,190 --> 00:41:00,010 Joten olen aika paljon matkii mitﺣ۳ tein juuri ﺣ۳sken. 847 00:41:00,010 --> 00:41:01,660 Olen paikkamerkki tﺣ۳ﺣ۳llﺣ۳. 848 00:41:01,660 --> 00:41:05,150 Olen pilkku i tﺣ۳ﺣ۳llﺣ۳, koska haluan kytkeﺣ۳ i tuohon paikkamerkki. 849 00:41:05,150 --> 00:41:07,250 >> Joten mene eteenpﺣ۳in ja kokeile koottaessa ohjelma. 850 00:41:07,250 --> 00:41:10,060 Tiedosto on nimeltﺣ۳ﺣ۳n int.c. 851 00:41:10,060 --> 00:41:12,920 Joten aion sanoa, tehdﺣ۳ int, kirjoita. 852 00:41:12,920 --> 00:41:16,420 Voi luoja, mutta ei ole iso juttu, eikﺣﭘ? 853 00:41:16,420 --> 00:41:17,230 On virhe. 854 00:41:17,230 --> 00:41:19,810 >> Siellﺣ۳ on syntaktinen virhe tﺣ۳ssﺣ۳ niin, ettﺣ۳ ohjelma ei voi 855 00:41:19,810 --> 00:41:25,460 koottava sisﺣ۳llﺣ۳ int.c, viiva seitsemﺣ۳n, merkki 27, virhe formaatti 856 00:41:25,460 --> 00:41:28,400 tﺣ۳smennetﺣ۳ﺣ۳n tyyppi char tﺣ۳hti, mitﺣ۳ se on. 857 00:41:28,400 --> 00:41:30,020 Mutta vﺣ۳ite tyyppi on int. 858 00:41:30,020 --> 00:41:33,110 >> Niin tﺣ۳ssﺣ۳kin emme aio to-- vaikka tﺣ۳nﺣ۳ﺣ۳n on paljon materiaalia, 859 00:41:33,110 --> 00:41:35,710 aiomme hukuttaa teitﺣ۳ ehdottomasti jokainen piirre C, 860 00:41:35,710 --> 00:41:38,070 ja ohjelmointi yleisemmin vain nﺣ۳mﺣ۳ ensimmﺣ۳isten viikkojen aikana. 861 00:41:38,070 --> 00:41:40,400 Joten siellﺣ۳ on usein olemaan ammattikieltﺣ۳ jolla et tunne. 862 00:41:40,400 --> 00:41:43,350 Ja itse asiassa, nieriﺣ۳ tﺣ۳hti on jotain aiomme palata 863 00:41:43,350 --> 00:41:44,830 viikon tai kahden kuluttua. 864 00:41:44,830 --> 00:41:47,530 >> Mutta nyt, katsotaanpas jos voimme jﺣ۳sentﺣ۳ﺣ۳ sanoja, jotka ovat tuttuja. 865 00:41:47,530 --> 00:41:50,750 Alustat-- joten kuulimme muoto specifier, formaatti koodin ennen. 866 00:41:50,750 --> 00:41:51,840 Se on tuttu. 867 00:41:51,840 --> 00:41:53,840 Type-- mutta vﺣ۳ite on tyyppiﺣ۳ int. 868 00:41:53,840 --> 00:41:55,980 Hetkinen, i on int. 869 00:41:55,980 --> 00:41:59,230 >> Ehkﺣ۳ prosenttia s oikeastaan on joitakin mﺣ۳ﺣ۳ritelty merkitys. 870 00:41:59,230 --> 00:42:00,230 Ja todellakin, se tekee. 871 00:42:00,230 --> 00:42:03,101 Kokonaisluku, jos haluat printf korvata sitﺣ۳, 872 00:42:03,101 --> 00:42:05,350 todella on kﺣ۳ytettﺣ۳vﺣ۳ eri muotoon mﺣ۳ﺣ۳rittelyksi. 873 00:42:05,350 --> 00:42:06,890 Ja et tiedﺣ۳ tﺣ۳tﺣ۳ ellei joku mﺣ۳ﺣ۳rﺣ۳nnyt, 874 00:42:06,890 --> 00:42:07,973 tai olet tehnyt sen ennenkin. 875 00:42:07,973 --> 00:42:10,490 Mutta prosenttia i on mitﺣ۳ voidaan yleisesti kﺣ۳ytetty 876 00:42:10,490 --> 00:42:12,240 Printf varten kytkemﺣ۳llﺣ۳ kokonaisluku. 877 00:42:12,240 --> 00:42:14,920 Voit myﺣﭘs kﺣ۳yttﺣ۳ﺣ۳ prosenttia d desimaalikokonaisluku. 878 00:42:14,920 --> 00:42:16,490 Mutta i on mukava ja yksinkertainen tﺣ۳ﺣ۳llﺣ۳. 879 00:42:16,490 --> 00:42:17,590 Joten mennﺣ۳ﺣ۳n sen kanssa. 880 00:42:17,590 --> 00:42:21,160 >> Nyt haluan mennﺣ۳ eteenpﺣ۳in ja uusintana make int, Enter. 881 00:42:21,160 --> 00:42:23,328 Se on hyvﺣ۳, ei virheitﺣ۳. 882 00:42:23,328 --> 00:42:27,260 Dot slash int-- OK, huono kﺣ۳yttﺣﭘkokemuksen koska en ole kertonut itse 883 00:42:27,260 --> 00:42:27,760 mitﺣ۳ tehdﺣ۳. 884 00:42:27,760 --> 00:42:28,426 Mutta se kﺣ۳y hyvin. 885 00:42:28,426 --> 00:42:29,480 Olen kiinni siitﺣ۳ nopeasti. 886 00:42:29,480 --> 00:42:36,260 >> Nyt anna minun mennﺣ۳ eteenpﺣ۳in ja Kirjoita David, OK, Zamila, Rob. 887 00:42:36,260 --> 00:42:37,820 OK, joten tﺣ۳mﺣ۳ on hyvﺣ۳ asia. 888 00:42:37,820 --> 00:42:41,710 Tﺣ۳llﺣ۳ kertaa, olen kﺣ۳yttﺣ۳en toimintoa, palapelin pala, nimeltﺣ۳ﺣ۳n get int. 889 00:42:41,710 --> 00:42:44,230 Ja se osoittautuu out-- ja me katso tﺣ۳tﺣ۳ myﺣﭘhemmin term-- 890 00:42:44,230 --> 00:42:47,730 CS50 henkilﺣﭘkunta on toteuttanut saada merkkijono siten 891 00:42:47,730 --> 00:42:50,350 ettﺣ۳ se vain fyysisesti saada merkkijono sinulle. 892 00:42:50,350 --> 00:42:54,340 >> Se on toteutettu get int vuonna siten, ettﺣ۳ se vain 893 00:42:54,340 --> 00:42:55,590 saada kokonaisluku sinulle. 894 00:42:55,590 --> 00:42:57,830 Ja jos, ihmisen, eivﺣ۳t tee yhteistyﺣﭘtﺣ۳, se on 895 00:42:57,830 --> 00:43:00,590 kirjaimellisesti juuri menossa sano uudelleen, uudelleen, uudelleen, 896 00:43:00,590 --> 00:43:05,200 kirjaimellisesti istuu siellﺣ۳ silmukoiden, kunnes te velvoittaa joitakin maaginen numero, 897 00:43:05,200 --> 00:43:07,670 kuten 50, ja hei 50. 898 00:43:07,670 --> 00:43:11,440 >> Tai jos me suorita tﺣ۳mﺣ۳ uudelleen ja kirjoita 42, hei 42. 899 00:43:11,440 --> 00:43:15,750 Ja niin get int toiminto sisﺣ۳llﺣ۳ ettﺣ۳ palapelin pala 900 00:43:15,750 --> 00:43:19,050 riittﺣ۳ﺣ۳ logiikka, tarpeeksi ajatus, selvittﺣ۳ﺣ۳, mikﺣ۳ on sana? 901 00:43:19,050 --> 00:43:20,330 Ja mikﺣ۳ on numero? 902 00:43:20,330 --> 00:43:23,165 Vain hyvﺣ۳ksymﺣ۳llﺣ۳ lopulta numeroita. 903 00:43:23,165 --> 00:43:25,690 904 00:43:25,690 --> 00:43:30,230 >> Joten kﺣ۳y ilmi, ettﺣ۳ tﺣ۳mﺣ۳ ei ole kovin ilmeikﺣ۳s. 905 00:43:30,230 --> 00:43:30,910 niin kaukana. 906 00:43:30,910 --> 00:43:33,690 Joten, jee, viimeinen kerta meni melko nopeasti 907 00:43:33,690 --> 00:43:38,320 osaksi tﺣ۳ytﺣ۳ntﺣﭘﺣﭘn pelejﺣ۳, ja animaatio, ja taideteosten Scratch. 908 00:43:38,320 --> 00:43:42,260 Ja tﺣ۳ssﺣ۳, me ollaan sisﺣ۳ltﺣﭘﺣ۳ jossa Hello World, ja hei 50. 909 00:43:42,260 --> 00:43:43,696 >> Se ei ole kaikki, ettﺣ۳ inspiroiva. 910 00:43:43,696 --> 00:43:46,070 Ja, todellakin, nﺣ۳mﺣ۳ ensimmﺣ۳iset esimerkkejﺣ۳ kestﺣ۳ﺣ۳ jonkin aikaa 911 00:43:46,070 --> 00:43:47,510 ylﺣﭘsajamiseen jﺣ۳nnitystﺣ۳. 912 00:43:47,510 --> 00:43:49,854 Mutta meillﺣ۳ on niin paljon enemmﺣ۳n hallita nyt, itse asiassa. 913 00:43:49,854 --> 00:43:51,770 Ja aiomme hyvin nopeasti aloittaa kerrospukeutuminen 914 00:43:51,770 --> 00:43:53,870 pﺣ۳ﺣ۳lle nﺣ۳istﺣ۳ perus perusalkioiden. 915 00:43:53,870 --> 00:43:56,370 >> Mutta ensin on ymmﺣ۳rrettﺣ۳vﺣ۳ mitﺣ۳ rajoitukset ovat. 916 00:43:56,370 --> 00:43:58,620 Itse asiassa, yksi niistﺣ۳ asioista Scratch ei helposti 917 00:43:58,620 --> 00:44:00,990 tehkﺣ۳ﺣ۳mme todella nﺣ۳yttﺣ۳ﺣ۳ alla huppu, 918 00:44:00,990 --> 00:44:03,740 ja ymmﺣ۳rtﺣ۳ﺣ۳, mitﺣ۳ tietokone on, mitﺣ۳ se voi tehdﺣ۳, 919 00:44:03,740 --> 00:44:05,250 ja mitﺣ۳ sen rajoitukset ovat. 920 00:44:05,250 --> 00:44:08,580 Ja todellakin, ettﺣ۳ puute ymmﺣ۳rtﺣ۳mistﺣ۳, mahdollisesti pitkﺣ۳aikainen 921 00:44:08,580 --> 00:44:12,520 voi johtaa omia mistakes-- kirjoittaminen vikoja, kirjallisesti turvaton ohjelmisto, 922 00:44:12,520 --> 00:44:13,880 hakkeroidaan jollakin tavalla. 923 00:44:13,880 --> 00:44:17,130 >> Joten ottamaan askeleita kohti ymmﺣ۳rrystﺣ۳ tﺣ۳mﺣ۳ vﺣ۳hﺣ۳n paremmin 924 00:44:17,130 --> 00:44:19,710 tapa, sanovat, seuraava esimerkki. 925 00:44:19,710 --> 00:44:23,550 Aion mennﺣ۳ eteenpﺣ۳in ja toteuttaa todella nopeasti ohjelma nimeltﺣ۳ lisﺣ۳ﺣ۳jﺣ۳. 926 00:44:23,550 --> 00:44:25,134 Kuten, nyt lisﺣ۳tﺣ۳ joitakin numeroita yhteen. 927 00:44:25,134 --> 00:44:27,800 Ja aion koodata joitakin kulmat tﺣ۳ﺣ۳llﺣ۳, ja kopioi ja liitﺣ۳ 928 00:44:27,800 --> 00:44:30,270 jossa olin ennen, vain jotta voimme lﺣ۳hteﺣ۳ aikaisemmin. 929 00:44:30,270 --> 00:44:33,090 Nyt olen saanut perus alkuja ohjelma nimeltﺣ۳ lisﺣ۳ﺣ۳jﺣ۳. 930 00:44:33,090 --> 00:44:34,670 >> Ja mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 931 00:44:34,670 --> 00:44:38,680 Aion mennﺣ۳ eteenpﺣ۳in ja vaikkapa intx saa pﺣ۳ﺣ۳stﺣ۳ int. 932 00:44:38,680 --> 00:44:39,430 Ja tiedﺣ۳tkﺣﭘ mitﺣ۳? 933 00:44:39,430 --> 00:44:40,990 Tehdﺣ۳ﺣ۳n paremman kﺣ۳yttﺣﭘkokemuksen. 934 00:44:40,990 --> 00:44:45,740 >> Joten sanotaan ettﺣ۳ x on, ja tehokkaasti kehottaa kﺣ۳yttﺣ۳jﺣ۳ﺣ۳ antamaan meille x. 935 00:44:45,740 --> 00:44:50,600 Ja anna minun mennﺣ۳ eteenpﺣ۳in ja sanoa, printf miten y on, tﺣ۳llﺣ۳ kertaa odottaa 936 00:44:50,600 --> 00:44:53,140 kaksi arvoa kﺣ۳yttﺣ۳jﺣ۳ltﺣ۳. 937 00:44:53,140 --> 00:44:59,759 Ja sitten mennﺣ۳ﺣ۳n vain eteenpﺣ۳in ja esimerkiksi printf, summa x ja y on. 938 00:44:59,759 --> 00:45:01,300 Ja nyt en halua tehdﺣ۳ prosenttiin s. 939 00:45:01,300 --> 00:45:09,080 Haluan tehdﺣ۳ prosenttiin i, kenoviiva n, ja sitten kytke summa-arvoon. 940 00:45:09,080 --> 00:45:10,620 >> Joten miten voin edetﺣ۳ tﺣ۳ssﺣ۳? 941 00:45:10,620 --> 00:45:11,270 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 942 00:45:11,270 --> 00:45:12,840 En osaa kﺣ۳yttﺣ۳ﺣ۳ muuttujia. 943 00:45:12,840 --> 00:45:15,140 Saanen ilmoittaa uuden, int z. 944 00:45:15,140 --> 00:45:16,770 >> Ja aion yrittﺣ۳ﺣ۳ arvata tﺣ۳ﺣ۳llﺣ۳. 945 00:45:16,770 --> 00:45:21,470 Jos on yhtﺣ۳suuruusmerkit tﺣ۳ssﺣ۳ kieli, ehkﺣ۳ voin vain tehdﺣ۳ x plus y, 946 00:45:21,470 --> 00:45:23,660 kunhan pﺣ۳ﺣ۳tﺣ۳n ajatteli puolipistettﺣ۳? 947 00:45:23,660 --> 00:45:28,170 Nyt voin palata tﺣ۳nne, kytke z, lopettaa tﺣ۳mﺣ۳n ajatuksen kanssa puolipisteellﺣ۳. 948 00:45:28,170 --> 00:45:33,160 Ja katsotaan nyt, jos nﺣ۳mﺣ۳ sekvenssit lines-- x on saada int. 949 00:45:33,160 --> 00:45:34,770 Y on saada int. 950 00:45:34,770 --> 00:45:37,980 >> Lisﺣ۳ﺣ۳ x ja y, sﺣ۳ilytﺣ۳ arvoa z-- niin, taas, muista yhtﺣ۳lﺣ۳isyysmerkki 951 00:45:37,980 --> 00:45:38,560 ei ole yhtﺣ۳ suuri. 952 00:45:38,560 --> 00:45:41,100 Se toimeksianto oikealta vasemmalle. 953 00:45:41,100 --> 00:45:45,180 Ja nyt tulostaa ettﺣ۳ summa x ja y eivﺣ۳t ole kirjaimellisesti z, 954 00:45:45,180 --> 00:45:46,830 mutta mitﺣ۳ sisﺣ۳llﺣ۳ z. 955 00:45:46,830 --> 00:45:50,090 Joten tehdﺣ۳ Adder - mukava, ei virheitﺣ۳ tﺣ۳llﺣ۳ kertaa. 956 00:45:50,090 --> 00:45:53,030 Dot slash Adder, kirjoita, x tulee olemaan 1. 957 00:45:53,030 --> 00:45:55,380 >> Y tulee olemaan 2. 958 00:45:55,380 --> 00:45:58,964 Ja summa x ja y on 3. 959 00:45:58,964 --> 00:46:00,130 Niin, ettﺣ۳ kaikki hyvﺣ۳ ja hieno. 960 00:46:00,130 --> 00:46:03,260 >> Voisi siis kuvitella, ettﺣ۳ matematiikka pitﺣ۳isi toimia tﺣ۳llaisen ohjelman. 961 00:46:03,260 --> 00:46:04,040 Mutta tiedﺣ۳tkﺣﭘ mitﺣ۳? 962 00:46:04,040 --> 00:46:06,904 Onko tﺣ۳mﺣ۳ muuttuja, viiva 12, jopa vﺣ۳lttﺣ۳mﺣ۳tﺣﭘntﺣ۳? 963 00:46:06,904 --> 00:46:09,820 Sinun ei tarvitse saada tapana vain tallentamiseen asioita muuttujien 964 00:46:09,820 --> 00:46:10,980 vain koska voit. 965 00:46:10,980 --> 00:46:13,550 Ja itse asiassa, se on yleensﺣ۳ harkittu huono suunnittelu 966 00:46:13,550 --> 00:46:18,100 jos olet luomassa muuttuja, nimeltﺣ۳ﺣ۳n z tﺣ۳ssﺣ۳ tapauksessa, sﺣ۳ilytykseen jotain se, 967 00:46:18,100 --> 00:46:21,390 ja sitten heti kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳, mutta ei koskaan enﺣ۳ﺣ۳. 968 00:46:21,390 --> 00:46:24,700 Miksi antaa jotakin nimi kuten z jos olet kirjaimellisesti 969 00:46:24,700 --> 00:46:26,770 aio kﺣ۳yttﺣ۳ﺣ۳, ettﺣ۳ asia vain kerran, ja niin 970 00:46:26,770 --> 00:46:29,380 proksimaalisesti jossa loit se ensimmﺣ۳inen paikka, 971 00:46:29,380 --> 00:46:31,052 niin lﺣ۳hellﺣ۳ suhteen riviﺣ۳ koodia? 972 00:46:31,052 --> 00:46:31,760 Joten tiedﺣ۳tkﺣﭘ mitﺣ۳? 973 00:46:31,760 --> 00:46:34,480 On kﺣ۳ynyt ilmi, ettﺣ۳ C on melko joustava. 974 00:46:34,480 --> 00:46:36,586 Jos minﺣ۳ todella haluavat plug-in-arvojen tﺣ۳ﺣ۳llﺣ۳, 975 00:46:36,586 --> 00:46:38,210 En tarvitse julistaa uusi muuttuja. 976 00:46:38,210 --> 00:46:41,680 Voisin plug-in x plus y, koska C ymmﺣ۳rtﺣ۳ﺣ۳ 977 00:46:41,680 --> 00:46:43,390 aritmeettinen ja matemaattisia operaattoreita. 978 00:46:43,390 --> 00:46:47,140 >> Voin siis vain sanoa, tehdﺣ۳ tﺣ۳mﺣ۳n matematiikka, x plus y riippumatta nﺣ۳mﺣ۳ arvot ovat, 979 00:46:47,140 --> 00:46:50,780 plug tuloksena kokonaisluvun merkkijono. 980 00:46:50,780 --> 00:46:53,730 Joten tﺣ۳mﺣ۳ voisi olla, vaikka vain yksi rivi lyhyempi, 981 00:46:53,730 --> 00:46:58,480 parempi suunnittelu, parempaa ohjelmaa, koska siellﺣ۳ on vﺣ۳hemmﺣ۳n koodia, siis 982 00:46:58,480 --> 00:46:59,921 vﺣ۳hemmﺣ۳n minua ymmﺣ۳rtﺣ۳mﺣ۳ﺣ۳n. 983 00:46:59,921 --> 00:47:01,920 Ja se on myﺣﭘs juuri siivooja, sikﺣ۳li kuin emme ole 984 00:47:01,920 --> 00:47:04,620 kﺣ۳yttﺣﭘﺣﭘn uusia sanoja, uusia symboleja, kuten z, 985 00:47:04,620 --> 00:47:07,510 vaikka ne eivﺣ۳t oikeastaan palvella paljon tarkoitusta. 986 00:47:07,510 --> 00:47:12,890 >> Valitettavasti matematiikka ei ole kaikki luotettavia joskus. 987 00:47:12,890 --> 00:47:15,270 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 988 00:47:15,270 --> 00:47:18,200 Aion mennﺣ۳ eteenpﺣ۳in nyt ja toimi seuraavasti. 989 00:47:18,200 --> 00:47:27,650 >> Tehdﺣ۳ﺣ۳n printf, prosenttia i, plus prosenttia i, on oltava prosenttia i, kenoviiva n. 990 00:47:27,650 --> 00:47:32,240 Ja aion tehdﺣ۳ this-- xyx plus y. 991 00:47:32,240 --> 00:47:34,821 Joten olen juuri menossa kirjoittaa Tﺣ۳ssﺣ۳ hieman eri tﺣ۳ﺣ۳llﺣ۳. 992 00:47:34,821 --> 00:47:36,320 Saanen tehdﺣ۳ nopeasti jﺣ۳rki tarkistaa. 993 00:47:36,320 --> 00:47:37,986 Jﺣ۳lleen ﺣ۳lkﺣ۳ﺣ۳mme pﺣ۳ﺣ۳stﺣ۳ eteenpﺣ۳in itsestﺣ۳mme. 994 00:47:37,986 --> 00:47:41,420 Tee lisﺣ۳toiminto, piste slash lisﺣ۳toiminto. 995 00:47:41,420 --> 00:47:44,950 x on 1, y on 2, 1 ja 2 on 3. 996 00:47:44,950 --> 00:47:45,870 Niin se on hyvﺣ۳. 997 00:47:45,870 --> 00:47:49,060 Mutta katsotaanpa mutkistaa tﺣ۳tﺣ۳ nyt hieman, ja luo uuden tiedoston. 998 00:47:49,060 --> 00:47:53,350 >> Aion kutsua tﺣ۳tﺣ۳, sanovat, ints, monikko kokonaislukuja. 999 00:47:53,350 --> 00:47:55,980 Aloitan jossa olin hetki sitten. 1000 00:47:55,980 --> 00:47:57,770 Mutta nyt tehkﺣ۳ﺣ۳mme muutamia muita rivejﺣ۳. 1001 00:47:57,770 --> 00:48:03,430 Anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ seuraava, printf, prosenttia i miinus prosenttia i, 1002 00:48:03,430 --> 00:48:08,959 on prosentti i, pilkku x, pilkku yx miinus y. 1003 00:48:08,959 --> 00:48:10,750 Joten teen hieman eri matematiikka siellﺣ۳. 1004 00:48:10,750 --> 00:48:11,624 Tehdﺣ۳ﺣ۳n toinen. 1005 00:48:11,624 --> 00:48:16,610 Joten prosenttia i kertaa prosenttiin i on prosentti i, kenoviiva n. 1006 00:48:16,610 --> 00:48:21,430 Katsotaan plug-in x ja y ja x kertaa y. 1007 00:48:21,430 --> 00:48:24,530 Kﺣ۳ytﺣ۳mme tﺣ۳htimerkkiﺣ۳ tietokoneen kertaa. 1008 00:48:24,530 --> 00:48:26,390 >> Et kﺣ۳ytﺣ۳ x. x on muuttujan nimi. 1009 00:48:26,390 --> 00:48:28,270 Kﺣ۳ytﺣ۳t tﺣ۳hti kertolasku. 1010 00:48:28,270 --> 00:48:29,020 Tehdﺣ۳ﺣ۳n yksi. 1011 00:48:29,020 --> 00:48:34,580 Printf prosenttia I jaettuna by prosenttia i, on prosentti i, 1012 00:48:34,580 --> 00:48:40,460 backslash n. xy jaettuna y-- joten kﺣ۳ytﺣ۳t vinoviivan C 1013 00:48:40,460 --> 00:48:41,502 tehdﺣ۳ jako. 1014 00:48:41,502 --> 00:48:42,460 Ja Tehdﺣ۳ﺣ۳n yksi muu. 1015 00:48:42,460 --> 00:48:47,920 1016 00:48:47,920 --> 00:48:55,240 Loput prosenttia i, jakautuu by prosenttia i, on prosenttia i. 1017 00:48:55,240 --> 00:48:59,550 xy-- ja nyt jﺣ۳ljellﺣ۳ on mitﺣ۳ on jﺣ۳ljellﺣ۳. 1018 00:48:59,550 --> 00:49:02,980 Kun yritﺣ۳t jakamalla nimittﺣ۳jﺣ۳ osaksi osoittaja, 1019 00:49:02,980 --> 00:49:05,570 kuinka paljon on jﺣ۳ljellﺣ۳, ettﺣ۳ et voisi jakaa ulos? 1020 00:49:05,570 --> 00:49:07,910 >> Joten ei ole oikeastaan, vﺣ۳istﺣ۳mﺣ۳ttﺣ۳, symboli 1021 00:49:07,910 --> 00:49:09,470 olemme kﺣ۳yttﺣ۳neet asteella tﺣ۳tﺣ۳. 1022 00:49:09,470 --> 00:49:13,830 Mutta C. Voit sanoa x modulo y, jossa 1023 00:49:13,830 --> 00:49:18,000 Tﺣ۳mﺣ۳n prosenttimerkkiﺣ۳ tﺣ۳ssﺣ۳ context-- erehdyttﺣ۳vﺣ۳sti kun olet sisﺣ۳llﺣ۳ 1024 00:49:18,000 --> 00:49:20,170 kaksinkertaisen lainausmerkkejﺣ۳, sisﺣ۳llﺣ۳ printf, prosenttia 1025 00:49:20,170 --> 00:49:21,830 kﺣ۳ytetﺣ۳ﺣ۳n muodossa mﺣ۳ﺣ۳rittelyksi. 1026 00:49:21,830 --> 00:49:25,420 >> Kun kﺣ۳ytﺣ۳t prosenttia ulkopuolella ettﺣ۳ matemaattinen lauseke, 1027 00:49:25,420 --> 00:49:29,910 se on modulo operaattori modulaarinen arithmetic-- meidﺣ۳n tarkoituksiin 1028 00:49:29,910 --> 00:49:33,650 tﺣ۳ﺣ۳llﺣ۳, vain tarkoittaa, mikﺣ۳ on Loput x jaettuna y? 1029 00:49:33,650 --> 00:49:36,130 Joten x jaettuna y on x slash y. 1030 00:49:36,130 --> 00:49:38,220 Mikﺣ۳ jﺣ۳ljellﺣ۳ x jaettuna y? 1031 00:49:38,220 --> 00:49:41,780 Se x mod y, ohjelmoijana sanoisi. 1032 00:49:41,780 --> 00:49:48,300 >> Jos siis tehnyt virheitﺣ۳ tﺣ۳ﺣ۳llﺣ۳, haluan mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ ints, monikossa, mukava, 1033 00:49:48,300 --> 00:49:50,010 ja piste slash ints. 1034 00:49:50,010 --> 00:49:55,270 Ja mennﺣ۳ﺣ۳n eteenpﺣ۳in ja do, sanokaamme, 1, 10. 1035 00:49:55,270 --> 00:49:58,390 Selvﺣ۳, 1 plus 10 on 11, check. 1036 00:49:58,390 --> 00:50:01,240 1 miinus 10 on negatiivinen 9, tarkista. 1037 00:50:01,240 --> 00:50:03,420 >> 1 kertaa 10 on 10, check. 1038 00:50:03,420 --> 00:50:07,090 1 jaettuna 10 is-- OK, me ohittaa tﺣ۳mﺣ۳n yhden. 1039 00:50:07,090 --> 00:50:09,480 Loput 1 jaettuna 10 on 1. 1040 00:50:09,480 --> 00:50:10,680 Pitﺣ۳ﺣ۳ paikkansa. 1041 00:50:10,680 --> 00:50:12,630 Mutta on vika tﺣ۳ﺣ۳llﺣ۳. 1042 00:50:12,630 --> 00:50:15,390 >> Joten yksi esitin luovuttaa, ei ole oikein. 1043 00:50:15,390 --> 00:50:16,670 Siis, se on lﺣ۳hellﺣ۳ 0. 1044 00:50:16,670 --> 00:50:20,670 1 jaettuna 10, tiedﺣ۳tte, jos olemme vﺣ۳hentﺣ۳miseksi noin kulmat, varma, se on nolla. 1045 00:50:20,670 --> 00:50:28,050 Mutta se pitﺣ۳isi oikeastaan ﻗ€‹ﻗ€‹olla 1/10, 0,1 tai 0,10, 0,1000, tai niin edelleen. 1046 00:50:28,050 --> 00:50:30,600 >> Sen ei pitﺣ۳isi oikeastaan ﻗ€‹ﻗ€‹olla nolla. 1047 00:50:30,600 --> 00:50:35,990 No, kﺣ۳y ilmi, ettﺣ۳ tietokone on tekemﺣ۳llﺣ۳ kirjaimellisesti mitﺣ۳ kerroimme sitﺣ۳ tekemﺣ۳ﺣ۳n. 1048 00:50:35,990 --> 00:50:39,460 Teemme matematiikka kuten x jaettuna y. 1049 00:50:39,460 --> 00:50:44,680 Ja sekﺣ۳ x ja y, per linjat koodia aikaisemmin, ovat kokonaislukuja. 1050 00:50:44,680 --> 00:50:50,440 >> Lisﺣ۳ksi linjalla 15, olemme kertoo printf, hei, printf plug-in 1051 00:50:50,440 --> 00:50:54,230 kokonaisluku, plug-in kokonaisluku, plug-kﺣ۳ytettﺣ۳essﺣ۳ integer-- nimenomaan 1052 00:50:54,230 --> 00:50:57,580 x ja sitten y, ja niin x jaettuna y. x ja y ovat ints. 1053 00:50:57,580 --> 00:50:59,060 Olemme hyvﺣ۳ siellﺣ۳. 1054 00:50:59,060 --> 00:51:01,250 >> Mutta mitﺣ۳ on x jaetaan x? 1055 00:51:01,250 --> 00:51:06,790 x jaettuna y pitﺣ۳isi olla, matemaattisesti, 1/10 tai 0,1, 1056 00:51:06,790 --> 00:51:11,600 joka on reaaliluku, reaaliluku ottaa mahdollisesti desimaalipisteen. 1057 00:51:11,600 --> 00:51:13,230 Se ei ole kokonaisluku. 1058 00:51:13,230 --> 00:51:18,290 >> Mutta mikﺣ۳ on lﺣ۳hin kokonaisluvun 1/10 eli 0,1? 1059 00:51:18,290 --> 00:51:21,114 Joo, se tavallaan on nolla. 1060 00:51:21,114 --> 00:51:22,030 0.1 on nﺣ۳in paljon. 1061 00:51:22,030 --> 00:51:22,890 Ja 1 on nﺣ۳in paljon. 1062 00:51:22,890 --> 00:51:25,870 Joten 1/10 on lﺣ۳hempﺣ۳nﺣ۳ 0 kuin se on yksi. 1063 00:51:25,870 --> 00:51:30,800 >> Ja mitﺣ۳ sitten C on tekemﺣ۳ssﺣ۳ us-- Tﺣ۳llainen koska kerroimme se to-- 1064 00:51:30,800 --> 00:51:32,600 on lyhennetty, ettﺣ۳ kokonaisluku. 1065 00:51:32,600 --> 00:51:40,540 Se ottaa arvon, joka taas on tarkoitus olla jotain 0,1000, 1066 00:51:40,540 --> 00:51:41,800 0 ja niin edelleen. 1067 00:51:41,800 --> 00:51:45,320 Ja se katkaisemiseksi kaiken desimaalipisteen jﺣ۳lkeen 1068 00:51:45,320 --> 00:51:47,510 siten, ettﺣ۳ kaikki tﺣ۳mﺣ۳n tavaraa, koska se ei 1069 00:51:47,510 --> 00:51:51,910 sovi kﺣ۳site kokonaisluku, joka on vain numero kuin negatiivinen 1, 0, 1, 1070 00:51:51,910 --> 00:51:55,830 ylﺣﭘs ja alas, se heittﺣ۳ﺣ۳ pois kaiken desimaalipisteen jﺣ۳lkeen, koska olet 1071 00:51:55,830 --> 00:51:59,020 ei mahdu desimaalipisteen in kokonaisluku mﺣ۳ﺣ۳ritelmﺣ۳n. 1072 00:51:59,020 --> 00:52:01,290 >> Joten vastaus tﺣ۳ssﺣ۳ on nolla. 1073 00:52:01,290 --> 00:52:02,600 Miten siis korjata? 1074 00:52:02,600 --> 00:52:04,400 Me tarvitsemme toinen ratkaisu kaikki yhdessﺣ۳. 1075 00:52:04,400 --> 00:52:06,880 Ja voimme tehdﺣ۳ tﺣ۳mﺣ۳n seuraavasti. 1076 00:52:06,880 --> 00:52:12,820 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja luoda uusi tiedosto, tﺣ۳mﺣ۳ yksi nimeltﺣ۳ﺣ۳n floats.c. 1077 00:52:12,820 --> 00:52:16,500 Ja tallenna se tﺣ۳ﺣ۳llﺣ۳ samaan hakemistoon, float.c. 1078 00:52:16,500 --> 00:52:19,360 1079 00:52:19,360 --> 00:52:23,260 Ja anna minun mennﺣ۳ eteenpﺣ۳in ja kopioi joitakin ettﺣ۳ koodia aikaisemmin. 1080 00:52:23,260 --> 00:52:27,690 >> Mutta sen sijaan saada int, tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳. 1081 00:52:27,690 --> 00:52:31,037 Anna minulle liukulukuarvoksi nimeltﺣ۳ﺣ۳n x. jossa liukuluku 1082 00:52:31,037 --> 00:52:33,370 arvo on vain kirjaimellisesti jotain liukuvan pilkun. 1083 00:52:33,370 --> 00:52:34,410 Se voi liikkua vasemmalle, oikealle. 1084 00:52:34,410 --> 00:52:35,530 Se on todellinen numero. 1085 00:52:35,530 --> 00:52:38,050 >> Ja Soitan ei saada int, mutta saada kellua, 1086 00:52:38,050 --> 00:52:41,420 joka myﺣﭘs oli yksi valikko annetuista vaihtoehdoista C250 kirjastossa. 1087 00:52:41,420 --> 00:52:43,220 Vaihdetaan y kﺣ۳teisvaroja. 1088 00:52:43,220 --> 00:52:45,000 Joten tﺣ۳mﺣ۳ tulee saada kellua. 1089 00:52:45,000 --> 00:52:47,620 >> Ja nyt, emme halua kytkeﺣ۳ ints. 1090 00:52:47,620 --> 00:52:53,130 On kﺣ۳ynyt ilmi, meidﺣ۳n on kﺣ۳ytettﺣ۳vﺣ۳ prosenttiin f float, prosenttia f float, 1091 00:52:53,130 --> 00:52:54,560 ja nyt tallentaa sen. 1092 00:52:54,560 --> 00:53:01,220 Ja nyt, sormet ristissﺣ۳, tee kellukkeet, mukava, piste slash kelluu. 1093 00:53:01,220 --> 00:53:04,280 x tulee olemaan yksi 1. y Tulee olemaan 10 uudelleen. 1094 00:53:04,280 --> 00:53:08,240 >> Ja kiva, OK minun lisﺣ۳ksi on oikea. 1095 00:53:08,240 --> 00:53:10,240 Toivoin enemmﺣ۳n, mutta unohdin kirjoittaa sitﺣ۳. 1096 00:53:10,240 --> 00:53:13,250 Joten mennﺣ۳ﺣ۳n ja korjata looginen virhe. 1097 00:53:13,250 --> 00:53:16,280 >> Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja napata seuraavaa. 1098 00:53:16,280 --> 00:53:18,080 Me vain tehdﺣ۳ vﺣ۳hﺣ۳n kopioi ja liitﺣ۳. 1099 00:53:18,080 --> 00:53:20,080 Ja aion sanoa miinus. 1100 00:53:20,080 --> 00:53:21,890 >> Ja aion sanoa kertaa. 1101 00:53:21,890 --> 00:53:24,060 Ja aion sanoa jaettu. 1102 00:53:24,060 --> 00:53:28,240 Ja en aio tehdﺣ۳ modulo, joka ei ole yhtﺣ۳ germane tﺣ۳ssﺣ۳, 1103 00:53:28,240 --> 00:53:33,690 jaettuna f, ja ajat plus-- OK, tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳ uudestaan. 1104 00:53:33,690 --> 00:53:44,210 >> Tee kellukkeet, piste slash kellukkeet, ja 1, 10, and-- mukava, no, OK. 1105 00:53:44,210 --> 00:53:45,250 Joten olen idiootti. 1106 00:53:45,250 --> 00:53:47,000 Joten tﺣ۳mﺣ۳ on hyvin yleinen tietotekniikassa 1107 00:53:47,000 --> 00:53:49,780 tehdﺣ۳ typeriﺣ۳ virheitﺣ۳ nﺣ۳in. 1108 00:53:49,780 --> 00:53:53,100 >> Opetuksellisia tarkoituksia varten, mitﺣ۳ halusin tehdﺣ۳ 1109 00:53:53,100 --> 00:53:57,410 oli muuttaa tiedettﺣ۳ tﺣ۳ﺣ۳llﺣ۳ plus, miinus, ettﺣ۳ ajat, 1110 00:53:57,410 --> 00:54:01,140 ja jakaa, kun toivottavasti huomanneet tﺣ۳mﺣ۳n harjoituksen aikana. 1111 00:54:01,140 --> 00:54:04,700 Nyt Katsotaanpa uudelleen kokoaa ohjelma, tehdﺣ۳ piste slash kelluu. 1112 00:54:04,700 --> 00:54:07,950 >> Ja kolmannen kerran, nyt katso jos se tﺣ۳yttﺣ۳ﺣ۳ odotukseni. 1113 00:54:07,950 --> 00:54:21,480 1, 10, kirjoita, kyllﺣ۳, OK, 1.000, jaettuna 10.000, on 0,100000. 1114 00:54:21,480 --> 00:54:24,952 Ja se osoittautuu voimme valvoa, kuinka monta numerot ovat sen jﺣ۳lkeen ne desimaaliin. 1115 00:54:24,952 --> 00:54:25,660 Me itse asiassa tulee. 1116 00:54:25,660 --> 00:54:26,790 Palaamme tﺣ۳hﺣ۳n. 1117 00:54:26,790 --> 00:54:28,440 >> Mutta nyt, itse asiassa, matematiikka on oikea. 1118 00:54:28,440 --> 00:54:30,090 Joten, jﺣ۳lleen, mikﺣ۳ on takeaway tﺣ۳ﺣ۳llﺣ۳? 1119 00:54:30,090 --> 00:54:33,050 On kﺣ۳ynyt ilmi, ettﺣ۳ C, on ei vain pelkﺣ۳stﺣ۳ﺣ۳n strings-- ja, itse asiassa, 1120 00:54:33,050 --> 00:54:36,120 ei ole oikeastaan, koska me lisﺣ۳tﺣ۳ ne kanssa CS50 kirjasto. 1121 00:54:36,120 --> 00:54:37,710 Mutta ei ole vain ints. 1122 00:54:37,710 --> 00:54:38,990 >> On myﺣﭘs kelluu. 1123 00:54:38,990 --> 00:54:42,810 Ja se osoittautuu joukko muita tietoja tyyppejﺣ۳ myﺣﭘs, ettﺣ۳ kﺣ۳ytﺣ۳mme ennen pitkﺣ۳ﺣ۳. 1124 00:54:42,810 --> 00:54:46,270 Osoittautuu, jos haluat yhden merkki, ei merkkijono, 1125 00:54:46,270 --> 00:54:47,610 voit kﺣ۳yttﺣ۳ﺣ۳ vain char. 1126 00:54:47,610 --> 00:54:52,350 >> Osoittautuu, ettﺣ۳ jos haluat bool, looginen arvo, tosi tai epﺣ۳tosi vain, 1127 00:54:52,350 --> 00:54:56,840 kiitos CS50 kirjasto, olemme lisﺣ۳tﺣ۳ﺣ۳n C BOOL tietotyyppi samoin. 1128 00:54:56,840 --> 00:54:59,180 Mutta se myﺣﭘs esittﺣ۳ﺣ۳ vuonna monia muita kieliﺣ۳ samoin. 1129 00:54:59,180 --> 00:55:04,130 Ja kﺣ۳y ilmi, ettﺣ۳ joskus tarvitsee suurempia numeroita sitten tulevat oletuksena 1130 00:55:04,130 --> 00:55:05,210 jossa ints ja kelluu. 1131 00:55:05,210 --> 00:55:10,590 >> Ja itse asiassa, kaksinkertainen on useita joka kﺣ۳yttﺣ۳ﺣ۳ ei 32 bittiﺣ۳, mutta 64 bittiﺣ۳. 1132 00:55:10,590 --> 00:55:14,990 Ja pitkﺣ۳ﺣ۳n pitkﺣ۳ﺣ۳n on numero, kﺣ۳yttﺣ۳ﺣ۳ ei 32 bittiﺣ۳ mutta 64 bittiﺣ۳, 1133 00:55:14,990 --> 00:55:19,190 vastaavasti, liukuluku arvot ja kokonaislukuja, vastaavasti. 1134 00:55:19,190 --> 00:55:22,780 Joten itse asiassa nyt tutustua tﺣ۳hﺣ۳n toimintoon. 1135 00:55:22,780 --> 00:55:26,150 >> Aion mennﺣ۳ eteenpﺣ۳in tﺣ۳ssﺣ۳ ja lietsoa yksi muu ohjelma. 1136 00:55:26,150 --> 00:55:32,020 Tﺣ۳ﺣ۳llﺣ۳, aion mennﺣ۳ eteenpﺣ۳in ja sisﺣ۳llyttﺣ۳vﺣ۳t CS50.h. 1137 00:55:32,020 --> 00:55:34,910 Ja anna minun mennﺣ۳, ovat standardin IO.h. 1138 00:55:34,910 --> 00:55:37,320 >> Ja huomaat jotain funky tﺣ۳ﺣ۳llﺣ۳ tapahtuu. 1139 00:55:37,320 --> 00:55:40,592 Se ei ole vﺣ۳rikoodeja asioita samoin kuin ennen. 1140 00:55:40,592 --> 00:55:43,550 Ja on kﺣ۳ynyt ilmi, ettﺣ۳ koska minﺣ۳ eivﺣ۳t ole antaneet asia tiedostonimen. 1141 00:55:43,550 --> 00:55:47,270 >> Aion kutsua tﺣ۳tﺣ۳ yksi sizeof.c, ja valitse Tallenna. 1142 00:55:47,270 --> 00:55:51,039 Ja huomaa, mitﺣ۳ tapahtuu, hyvin valkoinen koodia vastaan ﻗ€‹ﻗ€‹mustaa taustaa. 1143 00:55:51,039 --> 00:55:52,830 Nyt ainakin siellﺣ۳ purppuramaisen siellﺣ۳. 1144 00:55:52,830 --> 00:55:54,490 Ja se on syntaksi korostettu. 1145 00:55:54,490 --> 00:55:57,700 >> Tﺣ۳mﺣ۳ johtuu yksinkertaisesti, olen kertoi IDE minkﺣ۳lainen tiedosto 1146 00:55:57,700 --> 00:56:01,060 se on antamalla sille nimi, ja erityisesti tiedostopﺣ۳ﺣ۳te. 1147 00:56:01,060 --> 00:56:03,620 Nyt mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 1148 00:56:03,620 --> 00:56:08,910 Aion mennﺣ۳ eteenpﺣ۳in ja hyvin yksinkertaisesti tulostaa following-- bool 1149 00:56:08,910 --> 00:56:11,080 on prosenttia LU. 1150 00:56:11,080 --> 00:56:12,950 >> Tulemme takaisin ettﺣ۳ vain hetken. 1151 00:56:12,950 --> 00:56:15,840 Ja sitten aion tulostuskoon bool. 1152 00:56:15,840 --> 00:56:18,170 Ja nyt, vain sﺣ۳ﺣ۳stﺣ۳ﺣ۳ itse jonkin aikaa, olen 1153 00:56:18,170 --> 00:56:20,280 aikoo tehdﺣ۳ koko joukko nﺣ۳istﺣ۳ kerralla. 1154 00:56:20,280 --> 00:56:24,620 Ja erityisesti, aion vaihtaa tﺣ۳mﺣ۳n char ja char. 1155 00:56:24,620 --> 00:56:27,760 Tﺣ۳mﺣ۳ yksi, aion muuttaa kaksinkertainen ja kaksinkertainen. 1156 00:56:27,760 --> 00:56:31,440 >> Tﺣ۳mﺣ۳ yksi, aion muuttaa kelluvaan ja kellua. 1157 00:56:31,440 --> 00:56:35,670 Tﺣ۳mﺣ۳ yksi, aion muuttuvat int ja int. 1158 00:56:35,670 --> 00:56:38,660 Ja tﺣ۳mﺣ۳, aion vaihtaa pitkﺣ۳ﺣ۳n pitkﺣ۳ﺣ۳n. 1159 00:56:38,660 --> 00:56:40,840 Ja se on edelleen ottaen pitkﺣ۳ﺣ۳n, pitkﺣ۳ﺣ۳n pitkﺣ۳ﺣ۳n. 1160 00:56:40,840 --> 00:56:44,572 >> Ja sitten lopuksi annoin itse liikaa, merkkijono. 1161 00:56:44,572 --> 00:56:47,030 On kﺣ۳ynyt ilmi, ettﺣ۳ C, siellﺣ۳ erityinen operaattori nimeltﺣ۳ﺣ۳n 1162 00:56:47,030 --> 00:56:50,260 koko se kirjaimellisesti menossa, kun ajaa, 1163 00:56:50,260 --> 00:56:52,099 Kerro meille kokoa jokainen nﺣ۳istﺣ۳ muuttujista. 1164 00:56:52,099 --> 00:56:53,890 Ja tﺣ۳mﺣ۳ on tapa, nyt, voimme liittﺣ۳ﺣ۳ takaisin 1165 00:56:53,890 --> 00:56:57,140 viime viikon keskustelu Tietojen ja edustus. 1166 00:56:57,140 --> 00:57:00,330 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja koota koko piste slash koko. 1167 00:57:00,330 --> 00:57:01,210 Ja katsotaan. 1168 00:57:01,210 --> 00:57:05,210 On kﺣ۳ynyt ilmi, ettﺣ۳ C, nimenomaan CS50 IDE, 1169 00:57:05,210 --> 00:57:08,170 nimenomaan kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳ Ubuntu, 1170 00:57:08,170 --> 00:57:11,100 joka on 64-bittinen kﺣ۳yttﺣﭘjﺣ۳rjestelmﺣ۳ jﺣ۳rjestelmﺣ۳ tﺣ۳ssﺣ۳ tapauksessa, 1171 00:57:11,100 --> 00:57:14,189 bool on menossa kﺣ۳yttﺣ۳ﺣ۳ yhden tavun tilaa. 1172 00:57:14,189 --> 00:57:16,480 Niin koko mitataan, ei bittiﺣ۳, mutta tavuina. 1173 00:57:16,480 --> 00:57:18,690 Ja muistaa, ettﺣ۳ yksi tavu on kahdeksan bittiﺣ۳. 1174 00:57:18,690 --> 00:57:22,030 Joten bool, vaikka Teknisesti tarvitaan vain 0 tai 1, 1175 00:57:22,030 --> 00:57:24,092 se on hieman tuhlaileva miten me lisﺣ۳nnyt sen. 1176 00:57:24,092 --> 00:57:26,800 Se todella tulee kﺣ۳yttﺣ۳ﺣ۳ koko byte-- niin kaikki nollia, ovat ehkﺣ۳ 1177 00:57:26,800 --> 00:57:31,050 kaikki ne, tai jotain sellaista, tai vain yksi 1 joukossa kahdeksan bittiﺣ۳. 1178 00:57:31,050 --> 00:57:34,962 >> Char puolestaan ﻗ€‹ﻗ€‹kﺣ۳ytetﺣ۳ﺣ۳n hahmo kuten ASCII per viime viikolla, 1179 00:57:34,962 --> 00:57:36,170 tulee olemaan yksi merkki. 1180 00:57:36,170 --> 00:57:42,340 Ja ettﺣ۳ synchs kanssa kﺣ۳sityksemme se on enintﺣ۳ﺣ۳n 256 bits-- pikemminkin 1181 00:57:42,340 --> 00:57:45,360 synchs sen kanssa yhteydessﺣ۳ ole pidempi kuin 8 bittiﺣ۳, joka 1182 00:57:45,360 --> 00:57:47,450 antaa meille jopa 256 arvoa. 1183 00:57:47,450 --> 00:57:49,680 Kaksinkertainen on menossa olla 8 tavua tai 64 bittiﺣ۳. 1184 00:57:49,680 --> 00:57:50,510 >> Koho on 4. 1185 00:57:50,510 --> 00:57:51,690 Int on 4. 1186 00:57:51,690 --> 00:57:52,980 Pitkﺣ۳, pitkﺣ۳ on 8. 1187 00:57:52,980 --> 00:57:54,716 Ja merkkijono on 8. 1188 00:57:54,716 --> 00:57:55,840 Mutta ﺣ۳lﺣ۳ huoli siitﺣ۳. 1189 00:57:55,840 --> 00:57:57,340 Aiomme kuoria takaisin, ettﺣ۳ kerros. 1190 00:57:57,340 --> 00:57:59,940 On kﺣ۳ynyt ilmi, jouset voi olla pidempi kuin 8 tavua. 1191 00:57:59,940 --> 00:58:02,310 >> Ja todellakin, olemme kirjoittaneet jouset jo, Hello World, 1192 00:58:02,310 --> 00:58:03,700 yli 8 tavua. 1193 00:58:03,700 --> 00:58:06,270 Mutta me palaamme ettﺣ۳ vain hetken. 1194 00:58:06,270 --> 00:58:09,690 Mutta take pois tﺣ۳ssﺣ۳ on seuraava. 1195 00:58:09,690 --> 00:58:15,320 >> Mikﺣ۳ tahansa tietokone on vain rajallinen muistin mﺣ۳ﺣ۳rﺣ۳n ja tilaa. 1196 00:58:15,320 --> 00:58:17,860 Voit tallentaa vain niin paljon tiedostoja Macin tai PC. 1197 00:58:17,860 --> 00:58:23,030 Voit tallentaa vain niin paljon ohjelmia RAM kﺣ۳ynnissﺣ۳ kerralla, vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ edes 1198 00:58:23,030 --> 00:58:26,360 virtuaalinen muisti, koska sinulla on rajallinen mﺣ۳ﺣ۳rﺣ۳ muistia. 1199 00:58:26,360 --> 00:58:28,990 >> Ja vain picture-- jos et ole koskaan avannut kannettavan 1200 00:58:28,990 --> 00:58:31,300 tai tilata lisﺣ۳ﺣ۳ muistia for tietokonetta, 1201 00:58:31,300 --> 00:58:33,670 ehkﺣ۳ tiedﺣ۳, ettﺣ۳ tietokoneesi sisﺣ۳lle 1202 00:58:33,670 --> 00:58:36,590 on jotain, joka nﺣ۳yttﺣ۳ﺣ۳ vﺣ۳hﺣ۳n kuin tﺣ۳mﺣ۳. 1203 00:58:36,590 --> 00:58:40,540 Joten tﺣ۳mﺣ۳ on vain yleinen yhtiﺣﭘ nimeltﺣ۳ Ratkaisevaa joka tekee RAM tietokoneita. 1204 00:58:40,540 --> 00:58:43,620 Ja RAM on jossa ohjelmat elﺣ۳vﺣ۳t, kun he kﺣ۳ynnissﺣ۳. 1205 00:58:43,620 --> 00:58:46,630 >> Joten jokaisen Mac- tai PC, kun kaksinkertainen valitse ohjelma, ja se avautuu, 1206 00:58:46,630 --> 00:58:48,921 ja se avaa joitakin Word-dokumentti Tai jotain sellaista, 1207 00:58:48,921 --> 00:58:51,764 se varastoi vﺣ۳liaikaisesti RAM, koska RAM on nopeampi 1208 00:58:51,764 --> 00:58:53,680 kuin kovalevyllﺣ۳, tai SSD-levy. 1209 00:58:53,680 --> 00:58:56,600 Joten se on vain jos ohjelmia mennﺣ۳ elﺣ۳ﺣ۳ kun he kﺣ۳ynnissﺣ۳, 1210 00:58:56,600 --> 00:58:58,060 tai kun tiedostoja kﺣ۳ytetﺣ۳ﺣ۳n. 1211 00:58:58,060 --> 00:59:00,890 >> Joten sinulla on asioita, jotka nﺣ۳yttﺣ۳vﺣ۳t nﺣ۳in sisﺣ۳llﺣ۳ kannettavan tietokoneen, 1212 00:59:00,890 --> 00:59:03,320 tai hieman suurempi asioita sisﺣ۳llﺣ۳ tyﺣﭘpﺣﭘydﺣ۳n. 1213 00:59:03,320 --> 00:59:07,440 Mutta avain on sinulla on vain rajallinen mﺣ۳ﺣ۳rﺣ۳ nﺣ۳istﺣ۳ asioista. 1214 00:59:07,440 --> 00:59:11,230 Ja on vain rajallinen mﺣ۳ﺣ۳rﺣ۳ laitteisto istuu tﺣ۳llﺣ۳ tyﺣﭘpﺣﭘytﺣ۳ oikealla 1215 00:59:11,230 --> 00:59:11,730 tﺣ۳ssﺣ۳. 1216 00:59:11,730 --> 00:59:15,920 >> Joten, varmasti, emme voi varastoida ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n pitkﺣ۳ numeroita. 1217 00:59:15,920 --> 00:59:19,030 Ja vielﺣ۳, jos luulet takaisin asteella, kuinka monta numeroa voi 1218 00:59:19,030 --> 00:59:21,400 sinun on oikea of desimaalipilkkua? 1219 00:59:21,400 --> 00:59:24,680 Tﺣ۳stﺣ۳ asiasta, kuinka monta numeroa voi olet vasemmalla desimaalipilkkua? 1220 00:59:24,680 --> 00:59:26,300 Todella, ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n monta. 1221 00:59:26,300 --> 00:59:30,840 >> Nyt me ihmiset ehkﺣ۳ vain osaavat lausua miljoonaan, 1222 00:59:30,840 --> 00:59:34,990 ja miljardia biljoonaa, ja Kvadriljoona, ja quintillion. 1223 00:59:34,990 --> 00:59:39,370 Ja olen Loitonnetaan minun understanding-- tai my-- ymmﺣ۳rrﺣ۳n 1224 00:59:39,370 --> 00:59:41,110 numeroita, mutta minun ﺣ۳ﺣ۳ntﺣ۳minen numeroita. 1225 00:59:41,110 --> 00:59:44,720 Mutta he voivat saada ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n suuri kanssa ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n monta numeroa vasemmalle 1226 00:59:44,720 --> 00:59:47,050 tai oikealla desimaalipilkkua. 1227 00:59:47,050 --> 00:59:50,040 >> Mutta tietokoneissa on vain rajallinen mﺣ۳ﺣ۳rﺣ۳ muistia, 1228 00:59:50,040 --> 00:59:53,510 ﺣ۳ﺣ۳rellinen mﺣ۳ﺣ۳rﺣ۳ transistoreita, joka on rajallinen mﺣ۳ﺣ۳rﺣ۳ lamppujen sisﺣ۳lle. 1229 00:59:53,510 --> 00:59:57,350 Mitﺣ۳ tapahtuu, kun olet tila loppuu? 1230 00:59:57,350 --> 00:59:59,620 Toisin sanoen, jos muistelen viime viikolla 1231 00:59:59,620 --> 01:00:03,160 Kun puhuimme numeroita itse edustaa binary, 1232 01:00:03,160 --> 01:00:05,480 Oletetaan, ettﺣ۳ meillﺣ۳ Tﺣ۳mﺣ۳ 8-bittinen arvo tﺣ۳ﺣ۳llﺣ۳. 1233 01:00:05,480 --> 01:00:08,290 >> Ja meillﺣ۳ on seitsemﺣ۳n 1: n ja yhden 0. 1234 01:00:08,290 --> 01:00:10,827 Ja oletetaan, ettﺣ۳ haluamme Lisﺣ۳ﺣ۳ 1 tﺣ۳hﺣ۳n arvoon. 1235 01:00:10,827 --> 01:00:12,410 Tﺣ۳mﺣ۳ on todella suuri mﺣ۳ﺣ۳rﺣ۳ nyt. 1236 01:00:12,410 --> 01:00:16,610 >> Tﺣ۳mﺣ۳ on 254, jos muistan matematiikka viime viikolla oikealta. 1237 01:00:16,610 --> 01:00:19,480 Mutta mitﺣ۳ jos muutan ettﺣ۳ oikeanpuoleisin 0 1? 1238 01:00:19,480 --> 01:00:22,800 Koko mﺣ۳ﺣ۳rﺣ۳, ja Tietenkin tulee kahdeksan 1: n. 1239 01:00:22,800 --> 01:00:24,050 Joten olemme edelleen hyvﺣ۳. 1240 01:00:24,050 --> 01:00:27,204 >> Ja ettﺣ۳ luultavasti edustaa 255, vaikkakin riippuen yhteydessﺣ۳ 1241 01:00:27,204 --> 01:00:29,120 se voisi todella edustaa negatiivinen luku. 1242 01:00:29,120 --> 01:00:31,240 Mutta siitﺣ۳ lisﺣ۳ﺣ۳ toisella kertaa. 1243 01:00:31,240 --> 01:00:34,220 Tﺣ۳mﺣ۳ tuntuu se on noin perﺣ۳ti voin luottaa. 1244 01:00:34,220 --> 01:00:35,290 >> Nyt se on vain 8 bittiﺣ۳. 1245 01:00:35,290 --> 01:00:38,170 Ja Mac, varmasti, on tapa enemmﺣ۳n kuin 8 bittiﺣ۳ muistia. 1246 01:00:38,170 --> 01:00:39,170 Mutta se ei ole rajallinen. 1247 01:00:39,170 --> 01:00:43,230 Joten Sama pﺣ۳tee, vaikka on enemmﺣ۳n nﺣ۳mﺣ۳ ovat nﺣ۳ytﺣﭘllﺣ۳. 1248 01:00:43,230 --> 01:00:47,020 >> Mutta mitﺣ۳ tapahtuu, jos olet tallentamista tﺣ۳mﺣ۳ mﺣ۳ﺣ۳rﺣ۳, 255, 1249 01:00:47,020 --> 01:00:49,290 ja haluat laskea 1 hieman korkeampi? 1250 01:00:49,290 --> 01:00:51,600 Haluatko mennﺣ۳ 255-256. 1251 01:00:51,600 --> 01:00:55,800 Ongelma on tietenkin se, ettﺣ۳ jos alkaa laskea nollasta kuten viime viikolla, 1252 01:00:55,800 --> 01:00:59,670 et voi laskea niin korkea 256, puhumattakaan 257, 1253 01:00:59,670 --> 01:01:02,584 puhumattakaan 258, m koska mitﺣ۳ tapahtuu, kun lisﺣ۳ﺣ۳t 1? 1254 01:01:02,584 --> 01:01:05,000 Jos tehdﺣ۳ vanhan alakoulussa lﺣ۳hestymistapa, laittaa 1 tﺣ۳ﺣ۳llﺣ۳, 1255 01:01:05,000 --> 01:01:08,150 ja sitten 1 plus 1 on 2, mutta se on todella nolla, kannat 1, 1256 01:01:08,150 --> 01:01:09,695 kuljettaa 1, kuljettaa 1. 1257 01:01:09,695 --> 01:01:12,620 Kaikki nﺣ۳mﺣ۳ asiat, Nﺣ۳iden 1: n, mene nollaan. 1258 01:01:12,620 --> 01:01:17,820 Ja te pﺣ۳ﺣ۳tteeksi, kyllﺣ۳, kuten joku huomautti, 1 vasemmalla puolella. 1259 01:01:17,820 --> 01:01:22,540 Mutta kaiken voit itse nﺣ۳hdﺣ۳ ja mahdu muistiin 1260 01:01:22,540 --> 01:01:27,960 on vain kahdeksan 0: n, toisin sanoen jossain vaiheessa, jos, tietokone, 1261 01:01:27,960 --> 01:01:32,490 kokeillut laskee riittﺣ۳vﺣ۳n korkea ylﺣﭘs, olet menossa kietoa, nﺣ۳yttﺣ۳isi siltﺣ۳, 1262 01:01:32,490 --> 01:01:35,850 nolla, tai ehkﺣ۳ jopa negatiivinen numerot, jotka ovat jopa pienempi kuin nolla. 1263 01:01:35,850 --> 01:01:37,260 >> Voimme tavallaan nﺣ۳hdﺣ۳ tﺣ۳mﺣ۳n. 1264 01:01:37,260 --> 01:01:39,900 Anna minun mennﺣ۳ eteenpﺣ۳in ja kirjoittaa todellinen nopea ohjelma tﺣ۳ﺣ۳llﺣ۳. 1265 01:01:39,900 --> 01:01:43,690 Anna minun mennﺣ۳ eteenpﺣ۳in ja kirjoittaa ohjelma nimeltﺣ۳ ylivuoto. 1266 01:01:43,690 --> 01:01:49,980 Sisﺣ۳llytﺣ۳ CS50.h, sisﺣ۳ltﺣ۳vﺣ۳t standardi IO.h-- oh, 1267 01:01:49,980 --> 01:01:51,730 Olen todella ikﺣ۳vﺣ۳ syntaksin. 1268 01:01:51,730 --> 01:01:54,440 Joten tallentaa tﺣ۳mﺣ۳n overflow.c. 1269 01:01:54,440 --> 01:01:57,084 >> Ja nyt int main void-- ja ennen pitkﺣ۳ﺣ۳ kﺣ۳ymme 1270 01:01:57,084 --> 01:01:59,500 palata miksi pidﺣ۳mme kirjoittamista int main mitﺣ۳tﺣﭘn. 1271 01:01:59,500 --> 01:02:02,080 Mutta nyt, haluan vain tehdﺣ۳ se, itsestﺣ۳ﺣ۳nselvyytenﺣ۳. 1272 01:02:02,080 --> 01:02:06,200 Annetaan itse int, ja alustaa sen 0. 1273 01:02:06,200 --> 01:02:11,716 >> Katsotaan sitten tehdﺣ۳ int saan zero-- itse asiassa, tehdﺣ۳ﺣ۳n pﺣ۳ﺣ۳ttymﺣ۳ttﺣﭘmﺣ۳ﺣ۳n silmukkaan 1274 01:02:11,716 --> 01:02:12,590 ja katso mitﺣ۳ tapahtuu. 1275 01:02:12,590 --> 01:02:22,440 Vaikka totta, niin nyt tulostaa n on prosentti i, kenoviiva n, plug-in n. 1276 01:02:22,440 --> 01:02:27,200 Mutta nyt, tehdﺣ۳ﺣ۳n n saa n plus 1. 1277 01:02:27,200 --> 01:02:29,660 >> Eli toisin sanoen, kullakin iteraatio tﺣ۳mﺣ۳n loputon silmukka, 1278 01:02:29,660 --> 01:02:32,550 Otetaan n arvosta, ja lisﺣ۳tﺣ۳ﺣ۳n 1 siihen, ja sitten 1279 01:02:32,550 --> 01:02:34,350 tuloksen tallentaminen takaisin n vasemmalla. 1280 01:02:34,350 --> 01:02:37,150 Ja itse asiassa, olemme nﺣ۳hneet syntaksin hieman nﺣ۳in lyhyesti. 1281 01:02:37,150 --> 01:02:39,730 Viileﺣ۳ temppu on sen sijaan kirjoittamisen tﺣ۳mﺣ۳n kaiken, 1282 01:02:39,730 --> 01:02:42,770 voit itse sanoa n plus on 1. 1283 01:02:42,770 --> 01:02:47,480 >> Tai jos todella haluat olla fancy, voit sanoa n plus plus puolipisteellﺣ۳. 1284 01:02:47,480 --> 01:02:50,130 Mutta nﺣ۳mﺣ۳ kaksi jﺣ۳lkimmﺣ۳istﺣ۳ ovat vain mitﺣ۳ olimme kutsua syntaktinen sokeria 1285 01:02:50,130 --> 01:02:50,790 ettﺣ۳ ensimmﺣ۳inen asia. 1286 01:02:50,790 --> 01:02:53,456 >> Ensimmﺣ۳inen asia on selvempi, tﺣ۳ysin hieno, tﺣ۳ysin oikea. 1287 01:02:53,456 --> 01:02:55,470 Mutta tﺣ۳mﺣ۳ on yleisempﺣ۳ﺣ۳, sanon. 1288 01:02:55,470 --> 01:02:57,210 Niin teemme tﺣ۳tﺣ۳ vain hetken. 1289 01:02:57,210 --> 01:03:01,685 >> Oletetaan nyt tehdﺣ۳ ylivuoto, joka kuulostaa melko pahaenteinen, piste slash ylivuoto. 1290 01:03:01,685 --> 01:03:04,380 1291 01:03:04,380 --> 01:03:09,852 Katsotaan, n on tulossa melko iso. 1292 01:03:09,852 --> 01:03:11,310 Mutta Ajatellaanpa, kuinka suuri voi n pﺣ۳ﺣ۳stﺣ۳? 1293 01:03:11,310 --> 01:03:12,870 >> n on int. 1294 01:03:12,870 --> 01:03:16,400 Nﺣ۳imme ﺣ۳sken kokoon Esimerkiksi ettﺣ۳ int on neljﺣ۳ tavua. 1295 01:03:16,400 --> 01:03:22,070 Tiedﺣ۳mme viime viikolla, neljﺣ۳ tavua on 32 bittiﺣ۳, koska 8 kertaa 4, joka on 32. 1296 01:03:22,070 --> 01:03:23,460 Se tulee olemaan 4 miljardia. 1297 01:03:23,460 --> 01:03:25,802 >> Ja olemme jopa 800000. 1298 01:03:25,802 --> 01:03:28,510 Tﺣ۳mﺣ۳ tulee kestﺣ۳ﺣ۳ ikuisesti laskea niin korkealle kuin suinkin mahdollista. 1299 01:03:28,510 --> 01:03:30,635 Joten aion mennﺣ۳ eteenpﺣ۳in, kuten saatat ennen pitkﺣ۳ﺣ۳, 1300 01:03:30,635 --> 01:03:34,910 ja osuma ohjaus C-- rehellisesti, Ohjaus C, paljon, jossa valvonta C yleisesti 1301 01:03:34,910 --> 01:03:36,034 vﺣ۳lineet peruuttaa. 1302 01:03:36,034 --> 01:03:38,200 Valitettavasti, koska tﺣ۳mﺣ۳ on kﺣ۳ynnissﺣ۳ pilveen, 1303 01:03:38,200 --> 01:03:41,190 joskus pilvi on sylkeminen ulos niin paljon tavaraa, 1304 01:03:41,190 --> 01:03:44,180 niin paljon tuotos, se tulee kestﺣ۳ﺣ۳ vﺣ۳hﺣ۳n aikaa minun panos 1305 01:03:44,180 --> 01:03:45,630 pﺣ۳ﺣ۳stﺣ۳ pilveen. 1306 01:03:45,630 --> 01:03:49,240 Joten vaikka osuin Ohjaus C muutaman sekunnin sitten, 1307 01:03:49,240 --> 01:03:53,110 tﺣ۳mﺣ۳ on ehdottomasti sivussa vaikutus pﺣ۳ﺣ۳ttymﺣ۳ttﺣﭘmﺣ۳ﺣ۳n silmukkaan. 1308 01:03:53,110 --> 01:03:56,070 >> Ja niin tﺣ۳llaisissa tapauksissa, olemme aio jﺣ۳ttﺣ۳ﺣ۳ sen olla. 1309 01:03:56,070 --> 01:03:59,050 Ja aiomme lisﺣ۳tﺣ۳ toisen pﺣ۳ﺣ۳teikkuna tﺣ۳nne 1310 01:03:59,050 --> 01:04:03,186 kanssa plus, mikﺣ۳ tietysti ei niin, koska se on vielﺣ۳ miettiﺣ۳. 1311 01:04:03,186 --> 01:04:05,310 Ja mennﺣ۳ﺣ۳n eteenpﺣ۳in ja olla hieman jﺣ۳rkevﺣ۳mpi. 1312 01:04:05,310 --> 01:04:07,768 >> Aion mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳mﺣ۳ vain ﺣ۳ﺣ۳rellisen monta kertaa. 1313 01:04:07,768 --> 01:04:10,047 Kﺣ۳ytetﺣ۳ﺣ۳n for-silmukka, joka viittasin aiemmin. 1314 01:04:10,047 --> 01:04:10,630 Tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳. 1315 01:04:10,630 --> 01:04:13,430 Anna minulle toinen muuttuja int i saa 0. 1316 01:04:13,430 --> 01:04:17,430 i on pienempi kuin, sanokaamme, 64 i ++. 1317 01:04:17,430 --> 01:04:24,010 Nyt anna minun mennﺣ۳ eteenpﺣ۳in ja tulostaa out n on prosentin i, pilkku n. 1318 01:04:24,010 --> 01:04:27,547 Ja sitten n- tﺣ۳mﺣ۳ on edelleen vie ikuisesti. 1319 01:04:27,547 --> 01:04:28,130 Tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳. 1320 01:04:28,130 --> 01:04:30,620 >> n saa n kertaa 2. 1321 01:04:30,620 --> 01:04:34,140 Tai voisimme olla fancy ja tehdﺣ۳ kertaa = 2. 1322 01:04:34,140 --> 01:04:37,120 Mutta sanotaan vaikka n on yhtﺣ۳ kuin itse, kertaa 2. 1323 01:04:37,120 --> 01:04:39,321 Toisin sanoen, tﺣ۳mﺣ۳n uusi versio ohjelmasta, 1324 01:04:39,321 --> 01:04:41,820 En halua odottaa ikuisesti alkaen kuten 800000 4 miljardia. 1325 01:04:41,820 --> 01:04:43,070 Toivotaan vain hoitaa tﺣ۳mﺣ۳n. 1326 01:04:43,070 --> 01:04:44,920 >> Katsotaan todella kaksinkertaistuu n kerta. 1327 01:04:44,920 --> 01:04:47,660 Joka muistaa, kaksinkertaistaminen on vastakohta ottaa tietenkin. 1328 01:04:47,660 --> 01:04:50,035 Ja kun viime viikolla meillﺣ۳ jotain uudestaan, ja uudestaan, 1329 01:04:50,035 --> 01:04:52,200 ja jﺣ۳lleen, huippunopea, kaksinkertaistaminen varmasti 1330 01:04:52,200 --> 01:04:58,080 saa meidﺣ۳t 1 suurin mahdollinen arvoa, ettﺣ۳ voimme laskea sisﺣ۳isellﺣ۳. 1331 01:04:58,080 --> 01:04:59,750 >> Joten tehdﺣ۳ juuri tﺣ۳tﺣ۳. 1332 01:04:59,750 --> 01:05:01,720 Ja me palaamme tﺣ۳hﺣ۳n ennen pitkﺣ۳ﺣ۳. 1333 01:05:01,720 --> 01:05:04,180 Mutta tﺣ۳mﺣ۳ taas on aivan toistuva lohko Scratch. 1334 01:05:04,180 --> 01:05:05,600 Ja voit kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ ennen pitkﺣ۳ﺣ۳. 1335 01:05:05,600 --> 01:05:10,170 >> Tﺣ۳mﺣ۳ tarkoittaa vain sitﺣ۳, count nollasta asti, mutta ei yhtﺣ۳ suuri, 64. 1336 01:05:10,170 --> 01:05:14,285 Ja jokaisen iteraation tﺣ۳mﺣ۳n silmukka, vain pitﺣ۳ﺣ۳ kasvattamalla i. 1337 01:05:14,285 --> 01:05:18,990 Joten i ++ - ja tﺣ۳mﺣ۳ yleinen konstruktio rivillﺣ۳ 7 on vain erittﺣ۳in yleinen tapa 1338 01:05:18,990 --> 01:05:22,290 toistamaan muutaman rivin koodi, jokin mﺣ۳ﺣ۳rﺣ۳ kertoja. 1339 01:05:22,290 --> 01:05:23,362 Mitkﺣ۳ riviﺣ۳ koodia? 1340 01:05:23,362 --> 01:05:25,570 Nﺣ۳mﺣ۳ aaltosulkei-, kun saattanut poimittu nyt, 1341 01:05:25,570 --> 01:05:26,780 tarkoittaa, toimi seuraavasti. 1342 01:05:26,780 --> 01:05:29,510 >> Se on kuin Scratch, kun se on keltainen lohkojen 1343 01:05:29,510 --> 01:05:32,680 ja muut vﺣ۳rit tuollaista omaksua tai halata muita lohkoja. 1344 01:05:32,680 --> 01:05:34,750 Se mitﺣ۳ nﺣ۳mﺣ۳ kihara olkaimet tekevﺣ۳t tﺣ۳ﺣ۳llﺣ۳. 1345 01:05:34,750 --> 01:05:40,200 Joten jos sain syntaksin right-- sinulle nﺣ۳kee porkkana symboli C vﺣ۳lineet 1346 01:05:40,200 --> 01:05:42,706 niin monta kertaa olin yritetﺣ۳ﺣ۳n ratkaista tﺣ۳mﺣ۳ ongelma. 1347 01:05:42,706 --> 01:05:45,330 Joten pﺣ۳ﺣ۳stﺣ۳ eroon, ettﺣ۳ yksi kokonaan, ja sulje se ikkuna. 1348 01:05:45,330 --> 01:05:46,520 Ja kﺣ۳ytﺣ۳mme uuteen. 1349 01:05:46,520 --> 01:05:51,980 Tee ylivuoto, piste slash ylivuoto, Enter, kaikki hyvin, 1350 01:05:51,980 --> 01:05:53,090 se nﺣ۳yttﺣ۳ﺣ۳ pahalta aluksi. 1351 01:05:53,090 --> 01:05:56,200 Mutta nyt selata ajassa taaksepﺣ۳in, koska tein tﺣ۳mﺣ۳n 64 kertaa. 1352 01:05:56,200 --> 01:05:58,700 >> Ja huomaa, ensimmﺣ۳istﺣ۳ kertaa, n on 1. 1353 01:05:58,700 --> 01:06:03,110 Toisen kerran, n on 2, Sitten 4, sitten 8, sitten 16. 1354 01:06:03,110 --> 01:06:09,450 Ja nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹ettﺣ۳ niin pian kuin Saan noin 1 miljardi, 1355 01:06:09,450 --> 01:06:12,800 jos en kaksinkertaistaa jﺣ۳lleen, ettﺣ۳ pitﺣ۳isi antaa minulle 2 miljardia. 1356 01:06:12,800 --> 01:06:14,980 Mutta nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹se on aivan partaalla. 1357 01:06:14,980 --> 01:06:18,930 >> Ja niin se todella pursuaa int alkaen 1 miljardi 1358 01:06:18,930 --> 01:06:23,514 karkeasti negatiivinen 2 miljardia, koska kokonaisluku, 1359 01:06:23,514 --> 01:06:25,430 toisin kuin numerot me olivat olettaen viime viikolla, 1360 01:06:25,430 --> 01:06:28,397 voi olla sekﺣ۳ positiivisia ettﺣ۳ negatiivisia todellisuudessa ja tietokoneen. 1361 01:06:28,397 --> 01:06:30,730 Niin ainakin yksi nﺣ۳istﺣ۳ bittiﺣ۳ tehokkaasti varastettu. 1362 01:06:30,730 --> 01:06:34,190 Niinpﺣ۳ me oikeastaan ﻗ€‹ﻗ€‹vain 31 bittiﺣ۳, tai 2 miljardia mahdollisia arvoja. 1363 01:06:34,190 --> 01:06:38,220 >> Mutta nyt, takeaway on melko yksinkertaisesti, mitﺣ۳ nﺣ۳mﺣ۳ luvut ovat 1364 01:06:38,220 --> 01:06:42,280 ja mitﺣ۳ matematiikka on, jotain pahaa tapahtuu lopulta, 1365 01:06:42,280 --> 01:06:46,980 koska lopulta yritﺣ۳t permutoimaan bitit yksi liian monta kertaa. 1366 01:06:46,980 --> 01:06:51,060 Ja te tehokkaasti menevﺣ۳t kaikki 1: n ja ehkﺣ۳ kaikki 0: n, tai ehkﺣ۳ 1367 01:06:51,060 --> 01:06:54,260 vain joitakin muita malli, ettﺣ۳ se selvﺣ۳sti, riippuen asiayhteydestﺣ۳, 1368 01:06:54,260 --> 01:06:56,342 voidaan tulkita negatiiviseksi numero. 1369 01:06:56,342 --> 01:06:59,300 Ja niin se nﺣ۳yttﺣ۳isi korkein I voi laskea tﺣ۳ssﺣ۳ nimenomaisessa ohjelmassa 1370 01:06:59,300 --> 01:07:01,210 on vain noin 1 miljardi. 1371 01:07:01,210 --> 01:07:02,760 Mutta on osaratkaisu tﺣ۳ﺣ۳llﺣ۳. 1372 01:07:02,760 --> 01:07:03,480 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 1373 01:07:03,480 --> 01:07:07,600 >> Saanen muuttuvat perﺣ۳isin int pitkﺣ۳ pitkﺣ۳. 1374 01:07:07,600 --> 01:07:10,633 Ja anna minun mennﺣ۳ eteenpﺣ۳in tﺣ۳ﺣ۳llﺣ۳ ja say-- aion olla 1375 01:07:10,633 --> 01:07:12,290 muuttaa tﺣ۳mﺣ۳ allekirjoittamaton pitkﺣ۳. 1376 01:07:12,290 --> 01:07:16,860 Tai, katsotaanpa, en koskaan muista itse. 1377 01:07:16,860 --> 01:07:19,920 >> Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tehdﺣ۳ ylivuoto. 1378 01:07:19,920 --> 01:07:21,860 Ei, se ei ole sitﺣ۳, OTT, kiitos. 1379 01:07:21,860 --> 01:07:23,430 Joten joskus Clang voi olla hyﺣﭘdyksi. 1380 01:07:23,430 --> 01:07:27,550 En muista mitﺣ۳ muotoa specifier oli pitkﺣ۳ﺣ۳n pitkﺣ۳ﺣ۳n. 1381 01:07:27,550 --> 01:07:28,950 >> Mutta todellakin, Clang kertoi. 1382 01:07:28,950 --> 01:07:31,570 Green on jonkinlainen hyviﺣ۳, edelleen sitﺣ۳ teit virheen. 1383 01:07:31,570 --> 01:07:33,190 Se arvaamaan, ettﺣ۳ tarkoitin LLD. 1384 01:07:33,190 --> 01:07:38,750 >> Joten Otan se neuvo, pitkﺣ۳ pitkﺣ۳ desimaaliluku, paitsi ettﺣ۳. 1385 01:07:38,750 --> 01:07:43,190 Ja anna minun uusintana se, dot slash ylivuoto, Enter. 1386 01:07:43,190 --> 01:07:45,020 Ja nyt, mitﺣ۳ on siistiﺣ۳ tﺣ۳mﺣ۳. 1387 01:07:45,020 --> 01:07:49,140 >> Jos minﺣ۳ vierittﺣ۳ﺣ۳ ajassa taaksepﺣ۳in, vielﺣ۳ kﺣ۳ynnisty laskenta samalla place-- 1, 2, 4, 1388 01:07:49,140 --> 01:07:50,220 8, 16. 1389 01:07:50,220 --> 01:07:54,860 Ilmoitus, saamme kaikki asti 1 miljardi. 1390 01:07:54,860 --> 01:07:57,070 Mutta sitten noustaan ﻗ€‹ﻗ€‹2 miljardia. 1391 01:07:57,070 --> 01:08:01,300 >> Sitten saamme 4 miljardia, sitten 8 miljardia, 17 miljardia. 1392 01:08:01,300 --> 01:08:03,340 Ja me mennﺣ۳ enemmﺣ۳n, ja korkeampi, ja korkeampi. 1393 01:08:03,340 --> 01:08:05,740 Lopulta tﺣ۳mﺣ۳kin taukoja. 1394 01:08:05,740 --> 01:08:09,350 >> Lopulta pitkﺣ۳ pitkﺣ۳, joka on 64-bittinen arvo, ei 1395 01:08:09,350 --> 01:08:13,660 32-bittinen arvo, jos lasketaan liian korkea ja sitﺣ۳ kietoa 0. 1396 01:08:13,660 --> 01:08:16,410 Ja tﺣ۳ssﺣ۳ tapauksessa, me sattuvat pﺣ۳ﺣ۳tyﺣ۳ negatiivinen luku. 1397 01:08:16,410 --> 01:08:17,550 >> Eli tﺣ۳mﺣ۳ on ongelma. 1398 01:08:17,550 --> 01:08:20,439 Ja kﺣ۳y ilmi, ettﺣ۳ tﺣ۳mﺣ۳ Ongelma ei ole kovin mystistﺣ۳. 1399 01:08:20,439 --> 01:08:23,060 Vaikka olen tarkoituksella aiheuttama sitﺣ۳ nﺣ۳itﺣ۳ virheitﺣ۳, 1400 01:08:23,060 --> 01:08:26,149 se kﺣ۳ﺣ۳ntyy pois nﺣ۳emme sen tavallaan kaiken ympﺣ۳rillﺣ۳mme, tai ainakin jotkut meistﺣ۳ tekevﺣ۳t. 1401 01:08:26,149 --> 01:08:28,939 >> Joten Lego Star Wars, jos olet koskaan pelannut peliﺣ۳, 1402 01:08:28,939 --> 01:08:33,830 se osoittautuu voit mennﺣ۳ ympﺣ۳ri rikkoa asioita LEGO maailmassa, 1403 01:08:33,830 --> 01:08:36,640 ja kerﺣ۳tﺣ۳ kolikoita, olennaisesti. 1404 01:08:36,640 --> 01:08:39,200 Ja jos olet koskaan pelannut tﺣ۳mﺣ۳ peli aivan liian paljon aikaa, 1405 01:08:39,200 --> 01:08:42,630 koska tﺣ۳mﺣ۳ nimetﺣﭘn yksittﺣ۳iset tﺣ۳ﺣ۳llﺣ۳ teki, kokonaismﺣ۳ﺣ۳rﺣ۳ 1406 01:08:42,630 --> 01:08:46,700 kolikoita, jotka voit kerﺣ۳tﺣ۳ on, nﺣ۳yttﺣ۳isi siltﺣ۳, ﻗ€‹ﻗ€‹4 miljardia. 1407 01:08:46,700 --> 01:08:48,240 >> Nyt se on todella pyﺣﭘristetty. 1408 01:08:48,240 --> 01:08:50,239 Joten LEGO yritti pitﺣ۳ﺣ۳ asiat kﺣ۳yttﺣ۳jﺣ۳ystﺣ۳vﺣ۳llinen. 1409 01:08:50,239 --> 01:08:53,779 He eivﺣ۳t tee sitﺣ۳ tarkalleen 2 32 teho, per viime viikolla. 1410 01:08:53,779 --> 01:08:55,310 Mutta 4 miljardia on syy. 1411 01:08:55,310 --> 01:08:58,979 Nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹tﺣ۳mﺣ۳n tiedon perusteella, ettﺣ۳ LEGO, ja yritys, joka 1412 01:08:58,979 --> 01:09:02,624 teki tﺣ۳mﺣ۳n todellinen ohjelmisto, pﺣ۳ﺣ۳tti ettﺣ۳ Enimmﺣ۳ismﺣ۳ﺣ۳rﺣ۳ kolikoita 1413 01:09:02,624 --> 01:09:04,540 kﺣ۳yttﺣ۳jﺣ۳ voi kerﺣ۳ﺣ۳ntyﺣ۳ on todellakin 4 miljardia, 1414 01:09:04,540 --> 01:09:12,069 koska he valitsivat niiden koodin kﺣ۳yttﺣ۳ﺣ۳ ei pitkﺣ۳ﺣ۳n pitkﺣ۳ﺣ۳n, ilmeisesti, 1415 01:09:12,069 --> 01:09:16,140 mutta vain kokonaisluku, allekirjoittamattomasta kokonaisluku, vain positiivinen kokonaisluku, jonka 1416 01:09:16,140 --> 01:09:18,089 max arvo on karkeasti se. 1417 01:09:18,089 --> 01:09:19,380 No, tﺣ۳ssﺣ۳ on toinen hauska yksi. 1418 01:09:19,380 --> 01:09:23,500 Joten pelin Civilization, joka jotkut teistﺣ۳ saattavat tuntea, jossa 1419 01:09:23,500 --> 01:09:26,660 kﺣ۳y ilmi, ettﺣ۳ vuosia sitten oli virhe tﺣ۳ssﺣ۳ pelissﺣ۳, jolloin 1420 01:09:26,660 --> 01:09:28,750 jos rooliin Gandhi peliin, 1421 01:09:28,750 --> 01:09:34,020 sen sijaan hﺣ۳nestﺣ۳ on hyvin pasifisti, sen sijaan oli uskomattoman, uskomattoman 1422 01:09:34,020 --> 01:09:36,399 aggressiivinen, joissakin olosuhteissa. 1423 01:09:36,399 --> 01:09:40,529 Erityisesti sillﺣ۳ tavalla, ettﺣ۳ Civilization teoksia on, ettﺣ۳ jos pelaaja, 1424 01:09:40,529 --> 01:09:44,680 hyvﺣ۳ksyﺣ۳ demokratia, sinun aggressiivisuus pisteet saa 1425 01:09:44,680 --> 01:09:48,130 vﺣ۳hennetﺣ۳ﺣ۳n kahdella, joten miinus miinus, ja sitten miinus miinus. 1426 01:09:48,130 --> 01:09:50,569 >> Joten vﺣ۳hennﺣ۳ 2 alkaen todellinen iteroimalla. 1427 01:09:50,569 --> 01:09:56,650 Valitettavasti jos iteroimalla on aluksi 1, ja vﺣ۳hennﺣ۳ 2 siitﺣ۳ 1428 01:09:56,650 --> 01:09:59,050 hyvﺣ۳ksymisen jﺣ۳lkeen demokratia kuten Gandhi tﺣ۳ﺣ۳llﺣ۳ saattaisi 1429 01:09:59,050 --> 01:10:02,200 ovat tehneet, koska hﺣ۳n oli hyvin passive-- 1 mittakaavassa aggressiivisuus. 1430 01:10:02,200 --> 01:10:04,830 Mutta jos hﺣ۳n omaksuu demokratian, sitten hﺣ۳n kulkee 1 negatiiviseksi 1. 1431 01:10:04,830 --> 01:10:11,470 >> Valitettavasti ne olivat kﺣ۳yttﺣ۳mﺣ۳llﺣ۳ unsigned numerot, 1432 01:10:11,470 --> 01:10:15,400 mikﺣ۳ tarkoittaa, ettﺣ۳ ne kﺣ۳sitellﺣ۳ﺣ۳n jopa negatiivista numeroita kuin ne olisivat positiivisia. 1433 01:10:15,400 --> 01:10:19,780 Ja se osoittautuu, ettﺣ۳ positiivinen vastaava negatiivinen 1, 1434 01:10:19,780 --> 01:10:23,480 tyypilliseen tietokoneohjelmat, on 255. 1435 01:10:23,480 --> 01:10:27,250 Joten jos Gandhi hyvﺣ۳ksyy demokratiaa, ja siksi on 1436 01:10:27,250 --> 01:10:32,470 hﺣ۳nen aggressiivisuus pisteet laskivat, se todella koittavat 255 1437 01:10:32,470 --> 01:10:35,470 ja tekee hﺣ۳nestﺣ۳ eniten aggressiivinen luonne peliin. 1438 01:10:35,470 --> 01:10:36,930 Joten voit googlettaa ylﺣﭘs tﺣ۳stﺣ۳. 1439 01:10:36,930 --> 01:10:39,380 Ja se oli todellakin vahingossa ohjelmointi bug, 1440 01:10:39,380 --> 01:10:43,010 mutta joka on tullut varsin Lore lﺣ۳htien. 1441 01:10:43,010 --> 01:10:44,360 >> Siinﺣ۳ kaikki hauskaa ja sﺣﭘpﺣﭘ. 1442 01:10:44,360 --> 01:10:47,760 Enemmﺣ۳n pelottavaa on, kun varsinainen reaalimaailman laitteita, eikﺣ۳ pelejﺣ۳, 1443 01:10:47,760 --> 01:10:48,820 nﺣ۳mﺣ۳ samat viat. 1444 01:10:48,820 --> 01:10:54,500 Itse asiassa vain vuosi sitten artikkeli tuli ulos noin Boeing 787. 1445 01:10:54,500 --> 01:10:56,850 >> Ja artikkeli ensin silmﺣ۳yksellﺣ۳ lukee hieman mystistﺣ۳. 1446 01:10:56,850 --> 01:11:01,480 Mutta se sanoi, ohjelmisto haavoittuvuus Boeingin 1447 01:11:01,480 --> 01:11:04,790 uusi 787 Dreamliner jet on voi aiheuttaa lentﺣ۳jien 1448 01:11:04,790 --> 01:11:07,220 hallinnan menetyksen ilma, mahdollisesti 1449 01:11:07,220 --> 01:11:11,750 puolivﺣ۳lissﺣ۳ lennon, FAA virkamiehet varoitti lentoyhtiﺣﭘt hiljattain. 1450 01:11:11,750 --> 01:11:14,520 Se oli mﺣ۳ﺣ۳ritys ettﺣ۳ malli 787 1451 01:11:14,520 --> 01:11:19,770 lentokone, joka on kytketty yhtﺣ۳jaksoisesti 248 pﺣ۳ivﺣ۳ﺣ۳ 1452 01:11:19,770 --> 01:11:24,880 voivat menettﺣ۳ﺣ۳ kokonaan vaihtovirran, AC, sﺣ۳hkﺣﭘvoimaa vuoksi generaattorin 1453 01:11:24,880 --> 01:11:28,892 ohjausyksikﺣﭘt, GCUs samanaikaisesti menee epﺣ۳onnistua vikasietotilassa. 1454 01:11:28,892 --> 01:11:29,850 Se on tavallaan menettﺣ۳ﺣ۳ minua. 1455 01:11:29,850 --> 01:11:35,390 Mutta muistio totesi, OK, nyt sain, ettﺣ۳ ehto johtui ohjelmisto 1456 01:11:35,390 --> 01:11:38,590 laskuri sisﺣ۳iset generaattorin ohjaus 1457 01:11:38,590 --> 01:11:44,860 yksikﺣﭘt, jotka vuotaa yli jﺣ۳lkeen 248 pﺣ۳ivﺣ۳ﺣ۳ jatkuvan tehon. 1458 01:11:44,860 --> 01:11:47,070 Olemme julkaista tﺣ۳mﺣ۳n huomaa katoamisen estﺣ۳miseksi 1459 01:11:47,070 --> 01:11:49,300 Kaikkien vaihtovirtateknologialla voima, joka voi johtaa 1460 01:11:49,300 --> 01:11:50,980 menetys ohjaamaan lentokonetta. 1461 01:11:50,980 --> 01:11:55,380 >> Joten, kirjaimellisesti, on jonkin verran kokonaisluku, tai jostakin vastaavasta tietotyyppi, 1462 01:11:55,380 --> 01:11:57,960 kﺣ۳ytetﺣ۳ﺣ۳n ohjelmistojen todellisessa lentokoneessa 1463 01:11:57,960 --> 01:12:00,756 ettﺣ۳ jos pidﺣ۳t lentokone tarpeeksi kauan, mikﺣ۳ ilmeisesti 1464 01:12:00,756 --> 01:12:03,880 voi olla, jos olet juuri kﺣ۳ynnissﺣ۳ niitﺣ۳ jatkuvasti ja koskaan irrottamalla 1465 01:12:03,880 --> 01:12:06,810 oman lentokone, nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹tai kerroit sen akut kuolee, 1466 01:12:06,810 --> 01:12:09,840 lopulta laskea, ja ylﺣﭘs, ja ylﺣﭘs, ja ylﺣﭘs ja ylﺣﭘs, ja ylﺣﭘs. 1467 01:12:09,840 --> 01:12:12,150 >> Ja luonnostaan, joka on rajallinen mﺣ۳ﺣ۳rﺣ۳ muistia 1468 01:12:12,150 --> 01:12:15,880 vuotaa yli, liikkuva takaisin nolla tai jokin negatiivinen arvo, 1469 01:12:15,880 --> 01:12:19,920 sivuvaikutus, joka on pelottavan todellinen todellisuus 1470 01:12:19,920 --> 01:12:23,970 ettﺣ۳ kone saattaa tarvita kﺣ۳ynnistettﺣ۳vﺣ۳ uudelleen, tehokkaasti, 1471 01:12:23,970 --> 01:12:27,290 tai voi pudota, pahempi, koska se lentﺣ۳ﺣ۳. 1472 01:12:27,290 --> 01:12:29,230 Joten tﺣ۳llaisia ﻗ€‹ﻗ€‹asioita ovat edelleen keskuudessamme, 1473 01:12:29,230 --> 01:12:33,130 even-- tﺣ۳mﺣ۳ oli 2015 artikkelin, sitﺣ۳kin pelottavaa 1474 01:12:33,130 --> 01:12:36,100 kun et vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ ymmﺣ۳rtﺣ۳ﺣ۳, arvostaa, tai ennakoida 1475 01:12:36,100 --> 01:12:38,640 tuollaiset virheet. 1476 01:12:38,640 --> 01:12:42,030 >> Joten se kﺣ۳ﺣ۳ntyy pois on olemassa yksi muu huono puoli datan esityksessﺣ۳. 1477 01:12:42,030 --> 01:12:47,080 On kﺣ۳ynyt ilmi, ettﺣ۳ jopa kellukkeet ovat Tﺣ۳llainen virheellinen, koska kellukkeet, liian, 1478 01:12:47,080 --> 01:12:51,440 Ehdotin ovat 32 bittiﺣ۳, tai ehkﺣ۳ 64, jos kﺣ۳ytﺣ۳t kaksinkertainen. 1479 01:12:51,440 --> 01:12:53,070 Mutta se on silti rajallinen. 1480 01:12:53,070 --> 01:12:57,070 >> Ja saalis on, ettﺣ۳ jos voit laittaa ﺣ۳ﺣ۳retﺣﭘn mﺣ۳ﺣ۳rﺣ۳ numeroita 1481 01:12:57,070 --> 01:12:59,460 desimaalipisteen jﺣ۳lkeen, ei ole mitﺣ۳ﺣ۳n keinoa sinun 1482 01:12:59,460 --> 01:13:02,690 voi edustaa kaikkia mahdollisia numeroita, jotka me opetettiin 1483 01:13:02,690 --> 01:13:04,990 alakoulussa voi esiintyﺣ۳ maailmassa. 1484 01:13:04,990 --> 01:13:08,870 Tietokone lﺣ۳hinnﺣ۳, on valita osajoukko nﺣ۳itﺣ۳ numeroita 1485 01:13:08,870 --> 01:13:10,200 edustaa tarkasti. 1486 01:13:10,200 --> 01:13:12,450 >> Nyt tietokone voi pyﺣﭘreﺣ۳ ehkﺣ۳ vﺣ۳hﺣ۳n, 1487 01:13:12,450 --> 01:13:17,900 ja voi voit karkeasti tallentaa rajoittamattoman mﺣ۳ﺣ۳rﺣ۳n saatat mahdollisesti haluta. 1488 01:13:17,900 --> 01:13:20,940 Mutta intuitiivisesti, jos on rajallinen mﺣ۳ﺣ۳rﺣ۳ bittejﺣ۳, 1489 01:13:20,940 --> 01:13:24,560 voit vain permute niitﺣ۳ niin monella rajallinen tavoin. 1490 01:13:24,560 --> 01:13:26,570 Joten et voi mahdollisesti Kﺣ۳ytﺣ۳ rajallinen mﺣ۳ﺣ۳rﺣ۳ 1491 01:13:26,570 --> 01:13:29,880 permutaatiomat- bittien, malleja nollia ja ykkﺣﭘsiﺣ۳, 1492 01:13:29,880 --> 01:13:32,940 edustamaan ﺣ۳ﺣ۳retﺣﭘn mﺣ۳ﺣ۳rﺣ۳ numeroita, 1493 01:13:32,940 --> 01:13:37,370 mikﺣ۳ viittaa siihen, ettﺣ۳ tietokoneet saattavat hyvinkin olla valehtelee meille joskus. 1494 01:13:37,370 --> 01:13:38,770 >> Itse asiassa, tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳. 1495 01:13:38,770 --> 01:13:41,239 Anna minun mennﺣ۳ takaisin CS50 IDE. 1496 01:13:41,239 --> 01:13:43,030 Anna minun mennﺣ۳ eteenpﺣ۳in ja luoda pieni ohjelma 1497 01:13:43,030 --> 01:13:47,940 kutsuttu epﺣ۳tarkkuus, jotka osoittavat, ettﺣ۳ tietokoneet ovat todellakin epﺣ۳tarkka. 1498 01:13:47,940 --> 01:13:51,910 >> Ja anna minun mennﺣ۳ eteenpﺣ۳in ja aloittaa joitakin ettﺣ۳ koodin ennen, 1499 01:13:51,910 --> 01:13:53,830 ja nyt vain toimi seuraavasti. 1500 01:13:53,830 --> 01:14:03,640 Anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ printf, prosenttia f, kenoviiva n, 1 jaettuna 10. 1501 01:14:03,640 --> 01:14:07,430 Toisin sanoen, nyt sukeltaa syvemmﺣ۳lle 1/10, kuten 1 ja jaettuna 10. 1502 01:14:07,430 --> 01:14:09,760 Varmasti, tietokone voi edustaa 1/10. 1503 01:14:09,760 --> 01:14:13,620 >> Joten mene eteenpﺣ۳in ja tehdﺣ۳ epﺣ۳tarkkuus. 1504 01:14:13,620 --> 01:14:14,390 Katsotaan. 1505 01:14:14,390 --> 01:14:16,210 Muoto mﺣ۳ﺣ۳rittelee tyypin kaksinkertainen. 1506 01:14:16,210 --> 01:14:18,160 Mutta vﺣ۳ite on tyyppiﺣ۳ int. 1507 01:14:18,160 --> 01:14:19,040 Mitﺣ۳ tapahtuu? 1508 01:14:19,040 --> 01:14:21,970 >> Voi, mielenkiintoinen, joten se on opetus oli ennen. 1509 01:14:21,970 --> 01:14:26,050 Sanon, hei, tietokone nﺣ۳yttﺣ۳ﺣ۳ minulle float prosenttia f. 1510 01:14:26,050 --> 01:14:28,200 Mutta annan sen 2 ints. 1511 01:14:28,200 --> 01:14:31,120 Joten se kﺣ۳ﺣ۳ntyy pois, voin korjata tﺣ۳mﺣ۳ pari tapaa. 1512 01:14:31,120 --> 01:14:38,430 >> Voisin vain kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ One 1.0, ja 10 otetaan 10,0, mikﺣ۳ todellakin 1513 01:14:38,430 --> 01:14:42,390 vaikutuksesta muuntaa ne floats-- edelleen toivottavasti 1514 01:14:42,390 --> 01:14:43,180 sama numero. 1515 01:14:43,180 --> 01:14:45,880 Tai se osoittautuu on jotain nﺣ۳emme taas ennen pitkﺣ۳ﺣ۳. 1516 01:14:45,880 --> 01:14:47,170 Voisit heittﺣ۳ﺣ۳ numeroita. 1517 01:14:47,170 --> 01:14:49,880 >> Voit kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ sulkumerkintﺣ۳ lauseke, voit sanoa, 1518 01:14:49,880 --> 01:14:52,560 hei, tietokone, ota tﺣ۳mﺣ۳ 10, jonka tiedﺣ۳n on int. 1519 01:14:52,560 --> 01:14:54,660 Mutta hoitamattomana kiitos, ikﺣ۳ﺣ۳n kuin se on float. 1520 01:14:54,660 --> 01:14:56,680 Mutta tﺣ۳mﺣ۳ tuntuu tarpeettoman monimutkainen. 1521 01:14:56,680 --> 01:14:59,040 >> Meidﺣ۳n tarkoituksiin tﺣ۳nﺣ۳ﺣ۳n, Haluan vain kirjaimellisesti 1522 01:14:59,040 --> 01:15:02,700 tekevﺣ۳t niistﺣ۳ liukulukuarvoja joiden desimaalierottimen nﺣ۳in. 1523 01:15:02,700 --> 01:15:07,060 Anna minun mennﺣ۳ eteenpﺣ۳in ja uusinta, tee epﺣ۳tﺣ۳smﺣ۳llisyys, hyvﺣ۳, piste slash 1524 01:15:07,060 --> 01:15:08,870 epﺣ۳tﺣ۳smﺣ۳llisyys, kirjoita. 1525 01:15:08,870 --> 01:15:10,990 OK, etsimme hyvﺣ۳ﺣ۳. 1526 01:15:10,990 --> 01:15:18,194 >> 1 jaettuna 10, saamieni Mac tﺣ۳ﺣ۳llﺣ۳, on todellakin 0,100000. 1527 01:15:18,194 --> 01:15:21,360 Nyt minulle opetettiin alakoulussa siellﺣ۳ pitﺣ۳isi olla ﺣ۳ﺣ۳retﺣﭘn mﺣ۳ﺣ۳rﺣ۳ 0: n. 1528 01:15:21,360 --> 01:15:23,151 Joten ainakin yrittﺣ۳ﺣ۳ nﺣ۳hdﺣ۳ joitakin niistﺣ۳. 1529 01:15:23,151 --> 01:15:26,770 On kﺣ۳ynyt ilmi, ettﺣ۳ printf on hieman harrastaja silti kuin olemme kﺣ۳yttﺣ۳neet. 1530 01:15:26,770 --> 01:15:30,890 On kﺣ۳ynyt ilmi, sinun ei tarvitse mﺣ۳ﺣ۳rittﺣ۳ﺣ۳ vain prosentin f, tai vain prosentti i. 1531 01:15:30,890 --> 01:15:33,830 Voit itse mﺣ۳ﺣ۳rittﺣ۳ﺣ۳ jotkut ohjaus vaihtoehtoja tﺣ۳ﺣ۳llﺣ۳. 1532 01:15:33,830 --> 01:15:36,470 >> Erityisesti aion sanoa, hei, printf, 1533 01:15:36,470 --> 01:15:39,660 oikeastaan ﻗ€‹ﻗ€‹nﺣ۳ytﺣ۳ minulle 10 desimaaliin. 1534 01:15:39,660 --> 01:15:40,820 Joten se nﺣ۳yttﺣ۳ﺣ۳ hieman outo. 1535 01:15:40,820 --> 01:15:42,845 Mutta te sanotte prosenttia, piste, kuinka monta numeroa 1536 01:15:42,845 --> 01:15:44,970 haluat nﺣ۳hdﺣ۳ jﺣ۳lkeen desimaalipilkun, ja sitten f 1537 01:15:44,970 --> 01:15:48,340 Litteiden, vain koska se on mitﺣ۳ dokumentaatio sanoo. 1538 01:15:48,340 --> 01:15:50,080 Anna minun mennﺣ۳ eteenpﺣ۳in ja tallenna se. 1539 01:15:50,080 --> 01:15:52,460 >> Ja huomaa myﺣﭘs, Saan vﺣ۳synyt retyping asioita. 1540 01:15:52,460 --> 01:15:55,900 Joten olen vain asettamalla ylﺣﭘs ja alas nuoli minun avaimet tﺣ۳nne. 1541 01:15:55,900 --> 01:15:58,710 Ja jos minﺣ۳ pitﺣ۳ﺣ۳ lyﺣﭘdﺣ۳ ylﺣﭘs, sinun voi nﺣ۳hdﺣ۳ kaikkien komentojen 1542 01:15:58,710 --> 01:16:01,090 ettﺣ۳ tein, tai vﺣ۳ﺣ۳rin tehty. 1543 01:16:01,090 --> 01:16:04,630 >> Ja aion mennﺣ۳ eteenpﺣ۳in nyt ja ei oikeastaan ﻗ€‹ﻗ€‹kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳, ilmeisesti. 1544 01:16:04,630 --> 01:16:11,416 Tee epﺣ۳tﺣ۳smﺣ۳llisyys, dot slash imprecision-- niin 1545 01:16:11,416 --> 01:16:13,290 mitﺣ۳ opetettiin asteella tarkastusten perusteella. 1546 01:16:13,290 --> 01:16:19,010 Vaikka olen tulostaa sen 10 desimaalin asettaa se, todellakin on 0,10000. 1547 01:16:19,010 --> 01:16:19,840 Mutta tiedﺣ۳tkﺣﭘ mitﺣ۳? 1548 01:16:19,840 --> 01:16:21,150 >> Mennﺣ۳ﺣ۳n hieman ahne. 1549 01:16:21,150 --> 01:16:23,990 Sanotaan, kuten, nﺣ۳ytﺣ۳ minulle 55 huomauttaa jﺣ۳lkeen desimaalin. 1550 01:16:23,990 --> 01:16:26,160 Katsotaan todella ottaa tﺣ۳mﺣ۳n ohjelmoida ulos spin. 1551 01:16:26,160 --> 01:16:31,170 Saanen sen uudestaan ﻗ€‹ﻗ€‹make epﺣ۳tﺣ۳smﺣ۳llisyys, piste slash, epﺣ۳tarkkuus. 1552 01:16:31,170 --> 01:16:32,390 >> Ja tﺣ۳ssﺣ۳ mennﺣ۳ﺣ۳n. 1553 01:16:32,390 --> 01:16:34,420 Lapsuuden oli valhe. 1554 01:16:34,420 --> 01:16:48,410 Ilmeisesti 1 jaettuna 10 on todellakin 0.100000000000000005551115123-- 1555 01:16:48,410 --> 01:16:49,740 >> Mitﺣ۳ tapahtuu? 1556 01:16:49,740 --> 01:16:53,360 No, se kﺣ۳ﺣ۳ntyy pois, jos sellainen Katso riittﺣ۳vﺣ۳n ulos taustalla 1557 01:16:53,360 --> 01:16:55,950 edustus tﺣ۳stﺣ۳ numero, se todella 1558 01:16:55,950 --> 01:17:00,400 ei ole juuri 1/10 tai 0,1 ja ﺣ۳ﺣ۳retﺣﭘn mﺣ۳ﺣ۳rﺣ۳ nollia. 1559 01:17:00,400 --> 01:17:01,630 Nyt Miksi? 1560 01:17:01,630 --> 01:17:06,250 >> No, vaikka tﺣ۳mﺣ۳ on yksinkertainen numeron meille ihmisille, 1 jaettuna 10, 1561 01:17:06,250 --> 01:17:10,910 se on edelleen yksi ﺣ۳ﺣ۳rettﺣﭘmﺣ۳n monta numeroita ettﺣ۳ voisimme ajatella. 1562 01:17:10,910 --> 01:17:14,490 Mutta tietokone voi edustaa vain ﺣ۳ﺣ۳rellisen monta niin numeroita. 1563 01:17:14,490 --> 01:17:18,710 Ja niin tehokkaasti, mitﺣ۳ tietokone nﺣ۳yttﺣ۳ﺣ۳ meille on sen lﺣ۳hin 1564 01:17:18,710 --> 01:17:22,940 approksimaatio numero Haluamme uskoa on 1/10, 1565 01:17:22,940 --> 01:17:27,760 tai oikeastaan ﻗ€‹ﻗ€‹0,10000 loputtomiin. 1566 01:17:27,760 --> 01:17:30,425 >> Pikemminkin, vaikka tﺣ۳mﺣ۳ on niin lﺣ۳hellﺣ۳ kuin se voi saada. 1567 01:17:30,425 --> 01:17:32,300 Ja todellakin, jos tarkastellaan alla huppu, 1568 01:17:32,300 --> 01:17:37,050 koska olemme tﺣ۳ﺣ۳llﺣ۳ tarkastelemalla 55 desimaalilla, 1569 01:17:37,050 --> 01:17:39,990 me itse nﺣ۳hdﺣ۳, ettﺣ۳ todellisuus. 1570 01:17:39,990 --> 01:17:42,610 Nyt kun Sivuhuomautuksena, jos olet koskaan nﺣ۳hnyt movie-- 1571 01:17:42,610 --> 01:17:45,780 useimmat varmaan haven't-- mutta Superman 3 muutama vuosi sitten, 1572 01:17:45,780 --> 01:17:49,500 Richard Pryor olennaisesti panostettava tﺣ۳hﺣ۳n todellisuus hﺣ۳nen yrityksensﺣ۳ varastaa paljon 1573 01:17:49,500 --> 01:17:53,500 Fraktioiden ja jakeet penniﺣ۳, koska company-- muistaakseni, 1574 01:17:53,500 --> 01:17:57,210 se on ollut while-- oli olennaisesti heittﺣ۳ﺣ۳ pois mitﺣ۳ﺣ۳n, mikﺣ۳ ei sopinut 1575 01:17:57,210 --> 01:17:58,790 osaksi kﺣ۳site senttiﺣ۳. 1576 01:17:58,790 --> 01:18:01,480 >> Mutta jos lisﺣ۳ﺣ۳t kaikki nﺣ۳mﺣ۳ pieni, pieni, pieni mﺣ۳ﺣ۳rﺣ۳ uudestaan, 1577 01:18:01,480 --> 01:18:04,960 ja uudestaan, ja uudestaan, voit, kuten hﺣ۳nen tapauksessa tehdﺣ۳ hyvﺣ۳ mﺣ۳ﺣ۳rﺣ۳ rahaa. 1578 01:18:04,960 --> 01:18:08,010 >> Tﺣ۳mﺣ۳ sama ajatus oli huijannut uudempi, mutta silti nyt vanhemmat 1579 01:18:08,010 --> 01:18:10,500 elokuva, nimeltﺣ۳ﺣ۳n Office Space, jossa kaverit siinﺣ۳ elokuvassa, 1580 01:18:10,500 --> 01:18:13,501 teki saman, ruuvata se ylﺣﭘs tﺣ۳ysin, pﺣ۳ﺣ۳tyi aivan liikaa 1581 01:18:13,501 --> 01:18:14,666 rahaa niiden pankkitilille. 1582 01:18:14,666 --> 01:18:15,800 Se oli hyvin epﺣ۳ilyttﺣ۳vﺣ۳. 1583 01:18:15,800 --> 01:18:19,290 Mutta lopussa pﺣ۳ivﺣ۳, epﺣ۳tﺣ۳smﺣ۳llisyys on kaikkialla ympﺣ۳rillﺣ۳mme. 1584 01:18:19,290 --> 01:18:22,240 >> Ja myﺣﭘs, voi olla pelottavan tapauksessa. 1585 01:18:22,240 --> 01:18:25,590 On kﺣ۳ynyt ilmi, ettﺣ۳ Superman 3 ja Toimistotilaa sivuun, siellﺣ۳ 1586 01:18:25,590 --> 01:18:28,460 voi olla joitakin hyvin todellinen maailma seurauksia 1587 01:18:28,460 --> 01:18:32,290 realiteetit epﺣ۳tarkka tietojen esittﺣ۳misessﺣ۳ 1588 01:18:32,290 --> 01:18:34,770 ettﺣ۳ vaikka me ihmisten tﺣ۳mﺣ۳ pﺣ۳ivﺣ۳ ei vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ 1589 01:18:34,770 --> 01:18:38,230 ymmﺣ۳rtﺣ۳ﺣ۳ samoin kuin meidﺣ۳n pitﺣ۳isi, tai muistaa niin usein kuin pitﺣ۳isi. 1590 01:18:38,230 --> 01:18:42,950 Ja todellakin, seuraavat leike on mistﺣ۳ katsomaan joitakin hyvin todellinen maailma 1591 01:18:42,950 --> 01:18:47,730 seurauksia, mitﺣ۳ tapahtuu, jos eivﺣ۳t ymmﺣ۳rrﺣ۳ epﺣ۳tarkkuus ettﺣ۳ 1592 01:18:47,730 --> 01:18:50,065 voi tapahtua numeroita edustus. 1593 01:18:50,065 --> 01:18:51,300 >> [VIDEOTOISTOSTA] 1594 01:18:51,300 --> 01:18:55,620 >> -Tietotekniikka, Olemme kaikki tulleet hyvﺣ۳ksyﺣ۳ usein turhauttavaa ongelmia, 1595 01:18:55,620 --> 01:19:00,310 mennﺣ۳ them-- vikoja, viruksia, ja ohjelmistot glitches, 1596 01:19:00,310 --> 01:19:03,130 Pienten hinta maksaa helpotukseksi. 1597 01:19:03,130 --> 01:19:07,800 Mutta korkean teknologian ja nopea sotilas- ja avaruusohjelma sovelluksia, 1598 01:19:07,800 --> 01:19:12,800 pienin ongelma voi suurennetaan katastrofiin. 1599 01:19:12,800 --> 01:19:18,900 >> 4. kesﺣ۳kuuta, 1996 tutkijat valmistettu kﺣ۳ynnistﺣ۳ﺣ۳ miehittﺣ۳mﺣ۳ttﺣﭘmﺣ۳n Ariane 5 raketti. 1600 01:19:18,900 --> 01:19:21,220 Se kantoi tieteen satelliitit suunnitellut 1601 01:19:21,220 --> 01:19:24,600 vahvistaa tarkasti, kuinka Maan magneettikenttﺣ۳ toimii vuorovaikutuksessa 1602 01:19:24,600 --> 01:19:27,410 aurinko tuulet. 1603 01:19:27,410 --> 01:19:30,800 Raketti rakennettiin Euroopan avaruusjﺣ۳rjestﺣﭘn 1604 01:19:30,800 --> 01:19:34,370 ja nostetaan pois sen laitos rannikolla Guyanassa. 1605 01:19:34,370 --> 01:19:37,540 >> -At Noin 37 sekunnin lennon, he ensin 1606 01:19:37,540 --> 01:19:39,270 huomasi jotain oli vialla. 1607 01:19:39,270 --> 01:19:42,250 Suuttimet oli kﺣ۳ﺣ۳ntyvﺣ۳ vuonna tapa ne todella pitﺣ۳isi. 1608 01:19:42,250 --> 01:19:46,580 Noin 40 sekunnin lennon, selvﺣ۳sti, ajoneuvo oli vaikeuksissa. 1609 01:19:46,580 --> 01:19:48,850 >> Ja silloin he tekivﺣ۳t pﺣ۳ﺣ۳tﺣﭘstﺣ۳ tuhota sen. 1610 01:19:48,850 --> 01:19:52,780 Valikoima turvallisuusvastuuhenkilﺣﭘn, jossa valtava suolet, painetaan nappia, 1611 01:19:52,780 --> 01:19:58,150 rﺣ۳jﺣ۳hti raketti, ennen kuin se voisi tullut vaaran yleiselle turvallisuudelle. 1612 01:19:58,150 --> 01:20:01,060 >> -Tﺣ۳mﺣ۳ Oli neito matkasta Ariane 5. 1613 01:20:01,060 --> 01:20:03,960 Ja sen tuhoamista otti aseta koska virhe 1614 01:20:03,960 --> 01:20:05,822 upotettu raketin ohjelmisto. 1615 01:20:05,822 --> 01:20:08,280 -The Ongelma Ariane oli ettﺣ۳ oli useita, ettﺣ۳ 1616 01:20:08,280 --> 01:20:10,600 vaaditaan 64 bittiﺣ۳ ilmaista. 1617 01:20:10,600 --> 01:20:13,590 Ja he halusivat muuntaa se on 16-bittinen numero. 1618 01:20:13,590 --> 01:20:15,610 Ne olettaa, ettﺣ۳ numero ei koskaan tule 1619 01:20:15,610 --> 01:20:20,980 erittﺣ۳in suuri, ettﺣ۳ useimmat niistﺣ۳ numerot 64-bittinen numero olivat nollia. 1620 01:20:20,980 --> 01:20:22,440 He olivat vﺣ۳ﺣ۳rﺣ۳ssﺣ۳. 1621 01:20:22,440 --> 01:20:25,060 >> -edellﺣ۳ Kyvyttﺣﭘmyys yhden ohjelma hyvﺣ۳ksyﺣ۳ 1622 01:20:25,060 --> 01:20:29,510 sellainen mﺣ۳ﺣ۳rﺣ۳ tuottaman toinen oli juureen epﺣ۳onnistumisen. 1623 01:20:29,510 --> 01:20:34,350 Ohjelmistojen kehittﺣ۳minen oli tullut kalliiksi osa uutta teknologiaa. 1624 01:20:34,350 --> 01:20:38,140 Ariane raketti ovat olleet hyvin onnistuu, niin ohjelmisto 1625 01:20:38,140 --> 01:20:41,550 luotu se oli myﺣﭘs kﺣ۳ytetty Ariane 5. 1626 01:20:41,550 --> 01:20:47,940 >> -The Perusongelmana oli, ettﺣ۳ Ariane 5 oli nopeampi, kiihtyi nopeammin. 1627 01:20:47,940 --> 01:20:51,450 Ja ohjelmisto ei ollut osuus siitﺣ۳. 1628 01:20:51,450 --> 01:20:55,060 >> -The Tuhoaminen raketti oli valtava taloudellinen katastrofi, 1629 01:20:55,060 --> 01:20:58,790 kaikki johtuu minuutti ohjelmistovirhe. 1630 01:20:58,790 --> 01:21:01,210 Mutta tﺣ۳mﺣ۳ ei ollut ensimmﺣ۳inen aika tietojen muuntaminen ongelmat 1631 01:21:01,210 --> 01:21:04,820 oli vaivannut moderni ohjusteknologia. 1632 01:21:04,820 --> 01:21:08,050 >> -In 1991 kﺣ۳ynnistﺣ۳en Ensimmﺣ۳isen Persianlahden sodan, 1633 01:21:08,050 --> 01:21:10,570 Patriot Missile kokenut samantyyppinen 1634 01:21:10,570 --> 01:21:12,800 Numeron muuntaminen ongelma. 1635 01:21:12,800 --> 01:21:16,090 Ja sen seurauksena, 28 ihmistﺣ۳, 28 amerikkalaista sotilasta, 1636 01:21:16,090 --> 01:21:19,080 kuoli, ja noin 100 toiset haavoittui, 1637 01:21:19,080 --> 01:21:22,780 kun Patriot, joka piti suojautua saapuvat scuds, 1638 01:21:22,780 --> 01:21:25,830 ei osunut. 1639 01:21:25,830 --> 01:21:31,670 >> -Kun Irak hyﺣﭘkkﺣ۳si Kuwaitiin, ja Amerikassa kﺣ۳ynnistettiin Aavikkomyrskyn vuoden 1991 alussa, 1640 01:21:31,670 --> 01:21:35,780 Patriot Missile akut lﺣ۳hetettiin suojella Saudi-Arabia ja Israel 1641 01:21:35,780 --> 01:21:39,230 Irakin Scud ohjus hyﺣﭘkkﺣ۳yksiﺣ۳. 1642 01:21:39,230 --> 01:21:43,810 Patriot on US keskipitkﺣ۳n kantaman pinta ilmaan jﺣ۳rjestelmﺣ۳, valmistettu 1643 01:21:43,810 --> 01:21:45,770 jonka Raytheon yhtiﺣﭘ. 1644 01:21:45,770 --> 01:21:52,340 >> -The Koko Patriot torjuntahﺣ۳vittﺣ۳jﺣ۳ itsessﺣ۳ﺣ۳n on noin noin 20 jalkaa pitkﺣ۳. 1645 01:21:52,340 --> 01:21:55,230 Ja se painaa noin 2000 kiloa. 1646 01:21:55,230 --> 01:21:59,320 Ja se harjoittaa taistelukﺣ۳rjestﺣ۳ noin, Minusta se on noin 150 kiloa. 1647 01:21:59,320 --> 01:22:03,930 Ja taistelukﺣ۳rki itsessﺣ۳ﺣ۳n korkea rﺣ۳jﺣ۳htﺣ۳vﺣ۳, joka 1648 01:22:03,930 --> 01:22:07,330 on fragmentteja sen ympﺣ۳rille. 1649 01:22:07,330 --> 01:22:11,680 Koteloa taistelukﺣ۳rki on tarkoituksena on toimia kuten buckshot. 1650 01:22:11,680 --> 01:22:14,110 >> -The Ohjuksia kuljetetaan neljﺣ۳ per kontti, 1651 01:22:14,110 --> 01:22:17,130 ja kuljetetaan puoliperﺣ۳vaunu. 1652 01:22:17,130 --> 01:22:24,930 >> -The Patriot ohjuspuolustusjﺣ۳rjestelmﺣ۳ﺣ۳ ulottuu vﺣ۳hintﺣ۳ﺣ۳n 20 vuotta. 1653 01:22:24,930 --> 01:22:28,420 Se oli alun perin suunniteltu kuin ilmatorjuntaohjusjﺣ۳rjestelmﺣ۳ﺣ۳n 1654 01:22:28,420 --> 01:22:30,720 ampua alas vihollisen lentokoneita. 1655 01:22:30,720 --> 01:22:34,500 Ensimmﺣ۳isessﺣ۳ Persianlahden sodan, kun se sota tuli mukaan, 1656 01:22:34,500 --> 01:22:39,745 armeijan halusi kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳ ampua alas scuds, ei lentokoneita. 1657 01:22:39,745 --> 01:22:43,620 >> Irakin Air Force oli ei niin suuri ongelma. 1658 01:22:43,620 --> 01:22:46,670 Mutta armeija oli huolissaan scuds. 1659 01:22:46,670 --> 01:22:50,170 Ja niin he yrittivﺣ۳t pﺣ۳ivittﺣ۳ﺣ۳ Patriot. 1660 01:22:50,170 --> 01:22:52,800 >> -Intercepting Vihollinen ohjus kulkee Mach 5 1661 01:22:52,800 --> 01:22:55,830 tultaisiin riittﺣ۳vﺣ۳n haastava. 1662 01:22:55,830 --> 01:22:58,490 Mutta kun Patriot kiidﺣ۳tettiin laskemista, 1663 01:22:58,490 --> 01:23:02,860 armeija ei ollut tietoisia Irakin muutos, joka teki 1664 01:23:02,860 --> 01:23:05,930 niiden scuds lﺣ۳hes mahdotonta lyﺣﭘdﺣ۳. 1665 01:23:05,930 --> 01:23:10,740 >> Mitﺣ۳ tapahtui on scuds ettﺣ۳ oli tulossa oli epﺣ۳vakaa. 1666 01:23:10,740 --> 01:23:11,692 Heidﺣ۳t huojuu. 1667 01:23:11,692 --> 01:23:14,910 Syynﺣ۳ tﺣ۳hﺣ۳n oli irakilaisia, jotta 1668 01:23:14,910 --> 01:23:18,280 pﺣ۳ﺣ۳stﺣ۳ 600 km ulos 300 kilometrin 1669 01:23:18,280 --> 01:23:21,700 kantaman ohjusten, otti paino pois edestﺣ۳ taistelukﺣ۳rki. 1670 01:23:21,700 --> 01:23:23,390 He tekivﺣ۳t taistelukﺣ۳rki kevyempi. 1671 01:23:23,390 --> 01:23:27,330 >> Joten nyt Patriot on yrittﺣ۳ﺣ۳ tulla klo Scud. 1672 01:23:27,330 --> 01:23:30,230 Ja suurimman osan ajasta, Valtaosa ajasta, 1673 01:23:30,230 --> 01:23:32,940 se vain lentﺣ۳ﺣ۳, jonka Scud. 1674 01:23:32,940 --> 01:23:37,260 Kun Patriot-operaattoreille tajusi Patriot jﺣ۳i kohteeseensa, 1675 01:23:37,260 --> 01:23:41,690 ne rﺣ۳jﺣ۳ytetﺣ۳ﺣ۳n Patriot ydinpommi vﺣ۳ltetﺣ۳ﺣ۳n mahdolliset tappiot, jos se 1676 01:23:41,690 --> 01:23:44,570 annettiin pudota maahan. 1677 01:23:44,570 --> 01:23:48,790 >> -Se Oli mitﺣ۳ useimmat ihmiset nﺣ۳kivﺣ۳t, nﺣ۳itﺣ۳ suuria tulipalloja taivaalla, 1678 01:23:48,790 --> 01:23:54,550 ja ymmﺣ۳rtﺣ۳ﺣ۳ vﺣ۳ﺣ۳rin kuuntelevansa Scud taistelukﺣ۳rkiﺣ۳. 1679 01:23:54,550 --> 01:23:56,630 >> -Vaikka Yﺣﭘllﺣ۳ taivas, Patriots ilmestyi 1680 01:23:56,630 --> 01:24:00,370 olla onnistuneesti tuhoaa Scuds kello Dhahran, 1681 01:24:00,370 --> 01:24:03,360 ei voi olla virhe sen toiminnasta. 1682 01:24:03,360 --> 01:24:07,970 Siellﺣ۳ Patriot tutkajﺣ۳rjestelmﺣ۳n kadottaa saapuvasta Scud, 1683 01:24:07,970 --> 01:24:10,721 ja ei koskaan kﺣ۳ynnistetty takia ohjelmaongelmaan virhe. 1684 01:24:10,721 --> 01:24:14,090 1685 01:24:14,090 --> 01:24:18,940 Se oli israelilaisia, joka ensimmﺣ۳isenﺣ۳ lﺣﭘysi ettﺣ۳ enﺣ۳ﺣ۳ jﺣ۳rjestelmﺣ۳ oli, 1686 01:24:18,940 --> 01:24:22,690 sitﺣ۳ suurempi aika ristiriita tuli, koska kellon sulautettujen 1687 01:24:22,690 --> 01:24:24,810 jﺣ۳rjestelmﺣ۳n tietokoneelle. 1688 01:24:24,810 --> 01:24:28,210 >> -Noin Kaksi viikkoa ennen tragedia Dhahran, 1689 01:24:28,210 --> 01:24:30,770 israelilaiset raportoidaan puolustusministeriﺣﭘ 1690 01:24:30,770 --> 01:24:32,590 ettﺣ۳ jﺣ۳rjestelmﺣ۳ oli menettﺣ۳ﺣ۳ aikaa. 1691 01:24:32,590 --> 01:24:35,360 Noin kahdeksan tuntia tai kﺣ۳ynnissﺣ۳, he huomasivat, ettﺣ۳ jﺣ۳rjestelmﺣ۳ 1692 01:24:35,360 --> 01:24:37,720 oli tulossa huomattavasti epﺣ۳tarkempi. 1693 01:24:37,720 --> 01:24:41,900 Puolustusministeriﺣﭘ vastasi kertoo kaikki Patriot akkujen 1694 01:24:41,900 --> 01:24:44,950 ja jﺣ۳tﺣ۳ jﺣ۳rjestelmiﺣ۳ on pitkﺣ۳ﺣ۳n. 1695 01:24:44,950 --> 01:24:49,160 He eivﺣ۳t koskaan sanoi mitﺣ۳ pitkﺣ۳ﺣ۳n was-- kahdeksan tuntia, 10 tuntia, 1000 tuntia. 1696 01:24:49,160 --> 01:24:51,360 Kukaan ei tiennyt. 1697 01:24:51,360 --> 01:24:53,380 >> -The Patriot akku sijoitettiin kasarmin 1698 01:24:53,380 --> 01:24:58,350 at Dhahran ja sen puutteellinen sisﺣ۳inen kello oli ollut yli 100 tuntia 1699 01:24:58,350 --> 01:25:01,670 yﺣﭘnﺣ۳ helmikuun 25. pﺣ۳ivﺣ۳. 1700 01:25:01,670 --> 01:25:05,917 >> -Se Seurataan aika tarkkuudella noin kymmenesosa toinen. 1701 01:25:05,917 --> 01:25:08,000 Nyt kymmenesosa toinen on mielenkiintoinen numero, 1702 01:25:08,000 --> 01:25:11,920 koska se ei voi ilmaista binary tarkalleen, mikﺣ۳ 1703 01:25:11,920 --> 01:25:16,820 tarkoittaa sitﺣ۳ ei voida ilmaista tarkasti, missﺣ۳ tahansa nykyaikaisessa digitaalisen tietokoneen. 1704 01:25:16,820 --> 01:25:18,540 On vaikea uskoa. 1705 01:25:18,540 --> 01:25:21,210 >> Mutta kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ esimerkkinﺣ۳. 1706 01:25:21,210 --> 01:25:23,540 Otetaan numero yksi kolmasosa. 1707 01:25:23,540 --> 01:25:27,350 Kolmasosa ei voi olla ilmaistaan ﻗ€‹ﻗ€‹desimaalilukuna tarkalleen. 1708 01:25:27,350 --> 01:25:32,080 Kolmannes on 0,333 jatkunut ﺣ۳ﺣ۳rettﺣﭘmyyteen. 1709 01:25:32,080 --> 01:25:36,480 >> Ei ole mitenkﺣ۳ﺣ۳n tehdﺣ۳ sitﺣ۳ absoluuttinen tarkkuus desimaalin. 1710 01:25:36,480 --> 01:25:39,560 Juuri sellainen ongelma ettﺣ۳ tapahtui Patriot. 1711 01:25:39,560 --> 01:25:44,100 Mitﺣ۳ pidempi jﺣ۳rjestelmﺣ۳ juoksi, The huonompi aika virhe tuli. 1712 01:25:44,100 --> 01:25:48,890 >> -Kun 100 tunnin toimintaa, virheestﺣ۳ ajassa oli vain noin kolmannes 1713 01:25:48,890 --> 01:25:50,600 toisen. 1714 01:25:50,600 --> 01:25:54,210 Mutta mitﺣ۳ kohdistaminen ohjus kulkee Mach 5, 1715 01:25:54,210 --> 01:25:58,710 se johti seuranta virhe on yli 600 metriﺣ۳. 1716 01:25:58,710 --> 01:26:02,120 Olisi kohtalokas virhe sotilaat mitﺣ۳ 1717 01:26:02,120 --> 01:26:08,940 tapahtui on Scud kﺣ۳ynnistﺣ۳ﺣ۳ oli havaitaan varhaisessa vaiheessa varoitus satelliittien 1718 01:26:08,940 --> 01:26:12,860 ja he tiesivﺣ۳t, ettﺣ۳ Scud oli tulossa niiden yleistﺣ۳ suuntaa. 1719 01:26:12,860 --> 01:26:15,320 He eivﺣ۳t tiedﺣ۳, missﺣ۳ se oli tulossa. 1720 01:26:15,320 --> 01:26:18,250 >> -Se Oli nyt jopa tutka komponentti Patriot jﺣ۳rjestelmﺣ۳n 1721 01:26:18,250 --> 01:26:23,190 puolustavat Dhahran paikantaa ja pitﺣ۳ﺣ۳ Seuraa saapuvan vihollisen ohjus. 1722 01:26:23,190 --> 01:26:24,609 >> -The Tutka oli hyvin ﺣ۳lykﺣ۳s. 1723 01:26:24,609 --> 01:26:26,650 Olisi todella seurata asento Scud, 1724 01:26:26,650 --> 01:26:30,350 ja sitten ennustaa missﺣ۳ se todennﺣ۳kﺣﭘisesti olisi seuraavan kerran tutka lﺣ۳hetetﺣ۳ﺣ۳n 1725 01:26:30,350 --> 01:26:31,420 pulssi ulos. 1726 01:26:31,420 --> 01:26:33,110 Tﺣ۳mﺣ۳ kutsuttiin erilaisia ﻗ€‹ﻗ€‹portti. 1727 01:26:33,110 --> 01:26:37,660 >> -Sitten, Kun Patriot pﺣ۳ﺣ۳ttﺣ۳ﺣ۳ tarpeeksi aikaa on 1728 01:26:37,660 --> 01:26:42,450 vﺣ۳litetﺣ۳ﺣ۳n mennﺣ۳ takaisin ja tarkista seuraava paikka tﺣ۳lle havaittu kohde, 1729 01:26:42,450 --> 01:26:43,600 se menee takaisin. 1730 01:26:43,600 --> 01:26:48,650 Joten kun se meni takaisin vﺣ۳ﺣ۳rﺣ۳ﺣ۳n paikka, sitten se ei nﺣ۳e mitﺣ۳ﺣ۳n esinettﺣ۳. 1731 01:26:48,650 --> 01:26:52,160 Ja se pﺣ۳ﺣ۳ttﺣ۳ﺣ۳, ettﺣ۳ ei ole esine, se oli vﺣ۳ﺣ۳rﺣ۳ tunnistus, 1732 01:26:52,160 --> 01:26:53,930 ja laskee radan. 1733 01:26:53,930 --> 01:26:57,030 >> -The Saapuva Scud katosi tutkanﺣ۳ytﺣﭘltﺣ۳. 1734 01:26:57,030 --> 01:27:00,260 Ja sekuntia myﺣﭘhemmin, se lyﺣﭘnyt kasarmiin. 1735 01:27:00,260 --> 01:27:06,150 Scud tappoi 28, ja oli viimeinen yksi ampui ensimmﺣ۳isen Persianlahden sodan. 1736 01:27:06,150 --> 01:27:11,960 >> On traagista, pﺣ۳ivitetty ohjelmisto saapui Dhahran seuraavana pﺣ۳ivﺣ۳nﺣ۳. 1737 01:27:11,960 --> 01:27:14,930 Ohjelmisto virhe oli ollut kiinteﺣ۳, sulkeminen 1738 01:27:14,930 --> 01:27:19,806 yksi luku levoton historiasta Patriot ohjus. 1739 01:27:19,806 --> 01:27:20,729 >> [VIDEOTOISTOSTA] 1740 01:27:20,729 --> 01:27:23,520 DAVID J. MALAN: Eli tﺣ۳mﺣ۳ on kaikki sanoa, ettﺣ۳ nﺣ۳mﺣ۳ kysymykset ylivuoto 1741 01:27:23,520 --> 01:27:25,860 ja epﺣ۳tarkkuus ovat liian todellinen. 1742 01:27:25,860 --> 01:27:26,920 Miten tﺣ۳hﺣ۳n on tultu? 1743 01:27:26,920 --> 01:27:28,895 Aloitimme puhu vain printf. 1744 01:27:28,895 --> 01:27:31,270 Tﺣ۳mﺣ۳kin toiminto tulostaa jotain nﺣ۳yttﺣﭘﺣ۳, 1745 01:27:31,270 --> 01:27:33,450 ja toimme sen jﺣ۳lkeen muutamia muita toimintoja 1746 01:27:33,450 --> 01:27:34,945 alkaen ns CS50: n kirjasto. 1747 01:27:34,945 --> 01:27:36,910 Ja jatkamme katso nﺣ۳mﺣ۳ aikanaan. 1748 01:27:36,910 --> 01:27:40,760 Ja me, erityisesti, kﺣ۳yttﺣ۳ﺣ۳ get merkkijono, ja saada int, ja nyt myﺣﭘs saada kellua, 1749 01:27:40,760 --> 01:27:44,410 ja vielﺣ۳ toiset silti kohtaamme ja kﺣ۳yttﺣ۳ﺣ۳ itse ennen pitkﺣ۳ﺣ۳. 1750 01:27:44,410 --> 01:27:47,220 >> Mutta toisinaan, on me jo nﺣ۳hneet tarvetta 1751 01:27:47,220 --> 01:27:50,520 tallentaa mitﺣ۳ nﺣ۳mﺣ۳ tehtﺣ۳vﺣ۳t kﺣ۳sin takaisin? 1752 01:27:50,520 --> 01:27:52,920 He kﺣ۳si meidﺣ۳t takaisin merkkijono, tai int tai float. 1753 01:27:52,920 --> 01:27:56,070 Ja joskus meidﺣ۳n tﺣ۳ytyy laittaa, ettﺣ۳ string, tai int tai float, jonnekin. 1754 01:27:56,070 --> 01:28:00,100 >> Ja tallentaa ne asiat, muistaa vain kuten Scratch, olemme muuttujia. 1755 01:28:00,100 --> 01:28:03,260 Mutta toisin Scratch, C meillﺣ۳ on todellinen tyypit 1756 01:28:03,260 --> 01:28:05,530 of variables-- data tyypit, lisﺣ۳ﺣ۳ generally-- 1757 01:28:05,530 --> 01:28:08,640 niiden joukossa, merkkijono, int, joka on kellua, ja nﺣ۳mﺣ۳ toiset vielﺣ۳. 1758 01:28:08,640 --> 01:28:12,321 >> Ja niin kun me julistaa muuttujia C, meidﺣ۳n tﺣ۳ytyy julistaa meidﺣ۳n tietotyyppejﺣ۳. 1759 01:28:12,321 --> 01:28:14,820 Tﺣ۳mﺣ۳ ei ole jotain me will tﺣ۳ytyy tehdﺣ۳ myﺣﭘhemmin lukukauden 1760 01:28:14,820 --> 01:28:16,810 kuten siirtyminen muille kielille. 1761 01:28:16,810 --> 01:28:19,610 Mutta nyt, tarvitsemme joka priori etukﺣ۳teen, 1762 01:28:19,610 --> 01:28:24,370 selittﺣ۳ﺣ۳ tietokoneeseen minkﺣ۳laista muuttuvan haluamme antaa meille. 1763 01:28:24,370 --> 01:28:27,290 >> Nyt puolestaan ﻗ€‹ﻗ€‹tulostaa tuollaiset tietotyyppejﺣ۳, 1764 01:28:27,290 --> 01:28:29,570 meidﺣ۳n on kerrottava printf mitﺣ۳ odottaa. 1765 01:28:29,570 --> 01:28:32,450 Ja nﺣ۳imme prosentin s jousille, ja prosenttia i kokonaislukuja, 1766 01:28:32,450 --> 01:28:33,790 ja muutama muu jo. 1767 01:28:33,790 --> 01:28:37,237 Ja ne ovat yksinkertaisesti vaatimukset visuaalisen esityksen 1768 01:28:37,237 --> 01:28:38,070 nﺣ۳mﺣ۳ tiedot. 1769 01:28:38,070 --> 01:28:42,080 >> Ja jokainen nﺣ۳istﺣ۳ voi todella olla parametrized tai viritetty jollakin tavalla, 1770 01:28:42,080 --> 01:28:45,370 jos haluat edelleen ohjaus tyyppi tuotoksen ettﺣ۳ saat. 1771 01:28:45,370 --> 01:28:49,604 Ja itse asiassa, kﺣ۳y ilmi, ettﺣ۳ ei ainoastaan on olemassa backslash n uuden linjan. 1772 01:28:49,604 --> 01:28:52,520 On jotain muuta kutsutaan kenoviiva r rivinvaihto, joka 1773 01:28:52,520 --> 01:28:54,360 on lﺣ۳hempﺣ۳nﺣ۳ vanha koulu kirjoituskone, 1774 01:28:54,360 --> 01:28:57,690 ja myﺣﭘs Windows kﺣ۳ytetty jo useita vuosia. 1775 01:28:57,690 --> 01:28:59,690 >> On backslash t vﺣ۳lilehdet. 1776 01:28:59,690 --> 01:29:03,170 Osoittautuu, ettﺣ۳ jos haluat lainausmerkki sisﺣ۳llﺣ۳ merkkijono, 1777 01:29:03,170 --> 01:29:05,000 muistuttaa, ettﺣ۳ olemme kﺣ۳yttﺣ۳neet lainausmerkki double 1778 01:29:05,000 --> 01:29:07,900 lainaus vasemmalla ja oikealla pﺣ۳ﺣ۳ttyy meidﺣ۳n jousille toistaiseksi. 1779 01:29:07,900 --> 01:29:09,420 Tﺣ۳mﺣ۳ nﺣ۳yttﺣ۳isi sekoittaa asioita. 1780 01:29:09,420 --> 01:29:12,503 >> Jos haluat laittaa lainausmerkki vuonna keskellﺣ۳ string-- ja, todellakin, 1781 01:29:12,503 --> 01:29:13,670 se on hﺣ۳mmentﺣ۳vﺣ۳ﺣ۳ nﺣ۳hdﺣ۳. 1782 01:29:13,670 --> 01:29:17,120 Ja niin sinun tﺣ۳ytyy paeta, niin puhua, kaksinkertainen lainata jotain 1783 01:29:17,120 --> 01:29:18,860 kuten, kirjaimellisesti, Kenoviiva lainausmerkki. 1784 01:29:18,860 --> 01:29:20,230 Ja siellﺣ۳ on muutamia muita vielﺣ۳. 1785 01:29:20,230 --> 01:29:24,540 Ja nﺣ۳emme enemmﺣ۳n nﺣ۳istﺣ۳ todellisessa kﺣ۳ytﺣﭘssﺣ۳ ennen pitkﺣ۳ﺣ۳. 1786 01:29:24,540 --> 01:29:27,930 >> Joten nyt siirtyminen data, ja edustus, 1787 01:29:27,930 --> 01:29:30,820 ja aritmeettiset operaattorit, kaikki joista antoi meille jonkin rakennuksen 1788 01:29:30,820 --> 01:29:32,070 lohkojen joka pelata. 1789 01:29:32,070 --> 01:29:34,481 Mutta nyt katsotaanpa todella antaa meille loput sanaston 1790 01:29:34,481 --> 01:29:36,230 ettﺣ۳ meillﺣ۳ oli jo viime viikolla Scratch 1791 01:29:36,230 --> 01:29:39,350 ottamalla tarkastella joitakin muita konstruktioita in C-- ei niitﺣ۳ kaikkia. 1792 01:29:39,350 --> 01:29:41,680 Mutta ideat olemme tulleet oikeastaan ﻗ€‹ﻗ€‹vain 1793 01:29:41,680 --> 01:29:45,610 korostaa kﺣ۳ﺣ۳nnﺣﭘs yksi kieli, Scratch, toiseen, C. 1794 01:29:45,610 --> 01:29:48,470 >> Ja ajan myﺣﭘtﺣ۳, me poimia lisﺣ۳ﺣ۳ tyﺣﭘkaluja meidﺣ۳n tyﺣﭘkalupakki, 1795 01:29:48,470 --> 01:29:49,820 niin sanotusti syntaktisesti. 1796 01:29:49,820 --> 01:29:54,190 Ja todellakin, nﺣ۳et, ettﺣ۳ ideat ovat nyt melko tuttuja viime viikolla. 1797 01:29:54,190 --> 01:29:55,200 Joten tehdﺣ۳ﺣ۳n tﺣ۳mﺣ۳. 1798 01:29:55,200 --> 01:29:58,870 >> Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja lietsoa ohjelma joka todella kﺣ۳yttﺣ۳ﺣ۳ joitakin ilmaisuja, 1799 01:29:58,870 --> 01:30:00,720 Boolen lauseke. 1800 01:30:00,720 --> 01:30:02,810 Anna minun mennﺣ۳ eteenpﺣ۳in tﺣ۳ﺣ۳llﺣ۳ ja luo uuden tiedoston. 1801 01:30:02,810 --> 01:30:06,090 Soitan tﺣ۳mﺣ۳n condition.c. 1802 01:30:06,090 --> 01:30:09,350 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja sisﺣ۳ltﺣ۳vﺣ۳t CS50 kirjasto. 1803 01:30:09,350 --> 01:30:12,640 Ja anna minun mennﺣ۳ eteenpﺣ۳in ja sisﺣ۳ltﺣ۳vﺣ۳t standardi IO.h meidﺣ۳n toimintoja, 1804 01:30:12,640 --> 01:30:14,690 ja printf, ja lisﺣ۳ﺣ۳ vastaavasti. 1805 01:30:14,690 --> 01:30:18,900 Annan itselleni ettﺣ۳ boilerplate of int main mitﺣ۳tﺣﭘn, jonka selitys me will 1806 01:30:18,900 --> 01:30:20,360 palata tulevaisuudessa. 1807 01:30:20,360 --> 01:30:23,820 >> Nyt haluan mennﺣ۳ eteenpﺣ۳in ja antaa Itse int kautta get int. 1808 01:30:23,820 --> 01:30:25,970 Sitten anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 1809 01:30:25,970 --> 01:30:30,150 Haluan sanoa, jos i on less-- katsotaanpa erottaa positiivinen, negatiivinen, 1810 01:30:30,150 --> 01:30:31,260 tai nolla-arvot. 1811 01:30:31,260 --> 01:30:36,630 >> Joten jos i on pienempi kuin nolla, anna minun on vain tﺣ۳mﺣ۳ ohjelma yksinkertaisesti sanoa, 1812 01:30:36,630 --> 01:30:42,370 negatiivinen, kenoviiva n, muu Jos i on suurempi kuin nolla. 1813 01:30:42,370 --> 01:30:47,030 Nyt olen tietenkin aikoo sanoa printf positiivinen, kenoviiva n. 1814 01:30:47,030 --> 01:30:50,690 Ja sitten muu if-- voisin tehdﺣ۳ tﺣ۳tﺣ۳. 1815 01:30:50,690 --> 01:30:53,410 >> Voisin tehdﺣ۳, jos i on yhtﺣ۳ suuri kuin 0. 1816 01:30:53,410 --> 01:30:55,840 Mutta olisin pﺣ۳ﺣ۳tﺣﭘksenteon Ainakin yksi virhe jo. 1817 01:30:55,840 --> 01:30:59,480 Muista, ettﺣ۳ yhtﺣ۳lﺣ۳isyysmerkki on erisuuri, koska me ihmiset tunnemme. 1818 01:30:59,480 --> 01:31:01,010 >> Mutta se on tehtﺣ۳vﺣ۳ operaattori. 1819 01:31:01,010 --> 01:31:05,640 Ja me emme halua ottaa 0 annetun oikealle ja laita se i vasemmalla. 1820 01:31:05,640 --> 01:31:11,810 Joten vﺣ۳lttﺣ۳ﺣ۳ tﺣ۳mﺣ۳n sekaannuksen, tai ehkﺣ۳ vﺣ۳ﺣ۳rinkﺣ۳yttﺣﭘ yhtﺣ۳lﺣ۳isyysmerkin, 1821 01:31:11,810 --> 01:31:14,740 ihmisillﺣ۳ pﺣ۳ﺣ۳tti joitakin vuosia sitten ettﺣ۳ monissa ohjelmointikielissﺣ۳ 1822 01:31:14,740 --> 01:31:18,000 kun haluat tarkistaa tasa vasemman ja oikean, 1823 01:31:18,000 --> 01:31:19,635 te itse kﺣ۳yttﺣ۳ﺣ۳ yhtﺣ۳ kuin tasavertaisina. 1824 01:31:19,635 --> 01:31:21,010 Joten osut yhtﺣ۳suuruusmerkkiﺣ۳ kahdesti. 1825 01:31:21,010 --> 01:31:25,600 Kun haluat mﺣ۳ﺣ۳rittﺣ۳ﺣ۳ oikealta vasemmalle, kﺣ۳ytﺣ۳t yhden yhtﺣ۳lﺣ۳isyysmerkki. 1826 01:31:25,600 --> 01:31:29,360 Jotta voisimme tehdﺣ۳ this-- muuta jos i on yhtﺣ۳ suuri kuin nolla. 1827 01:31:29,360 --> 01:31:31,710 >> Voisin sitten mennﺣ۳ ja avaan aaltosulkeita, 1828 01:31:31,710 --> 01:31:36,087 ja sanoa, printf 0, kenoviiva n, tehty. 1829 01:31:36,087 --> 01:31:38,170 Mutta muista, miten nﺣ۳mﺣ۳ haarautuu tie voi toimia. 1830 01:31:38,170 --> 01:31:39,836 Ja todellakin, ajattele logiikka. 1831 01:31:39,836 --> 01:31:41,510 i on useita. 1832 01:31:41,510 --> 01:31:43,320 Se on kokonaisluku, erityisesti. 1833 01:31:43,320 --> 01:31:48,600 Ja se tarkoittaa se tulee olemaan vﺣ۳hemmﺣ۳n kuin 0 tai suurempi kuin 0, tai 0. 1834 01:31:48,600 --> 01:31:51,600 On siis olemassa sellaista tﺣ۳mﺣ۳n implisiittinen oletusmarginaali. 1835 01:31:51,600 --> 01:31:54,920 >> Ja jotta voisimme, aivan kuten Scratch, luopua if, 1836 01:31:54,920 --> 01:31:55,747 ja vain sanoa muuta. 1837 01:31:55,747 --> 01:31:57,830 Loogisesti, jos sinulle ohjelmoija tietﺣ۳ﺣ۳ on vain 1838 01:31:57,830 --> 01:32:01,635 kolme kauhat, johon skenaario voi fall-- ensimmﺣ۳inen, 1839 01:32:01,635 --> 01:32:03,510 Toisen tai kolmannen Tﺣ۳ssﺣ۳ case-- eivﺣ۳t 1840 01:32:03,510 --> 01:32:07,100 vaivaudu lisﺣ۳ﺣ۳mﺣ۳llﺣ۳ ylimﺣ۳ﺣ۳rﺣ۳isiﺣ۳ tarkkuus ja lisﺣ۳logiikka siellﺣ۳. 1841 01:32:07,100 --> 01:32:09,690 Vain mennﺣ۳ eteenpﺣ۳in kanssa Oletuksena tﺣ۳ssﺣ۳ tapauksessa on muu. 1842 01:32:09,690 --> 01:32:11,950 >> Nyt mennﺣ۳ﺣ۳n eteenpﺣ۳in tallennuksen jﺣ۳lkeen tﺣ۳mﺣ۳, tee 1843 01:32:11,950 --> 01:32:15,760 olosuhteet piste slash conditions-- ole suuri kﺣ۳yttﺣﭘliittymﺣ۳, 1844 01:32:15,760 --> 01:32:18,914 koska en ole kehotukset kﺣ۳yttﺣ۳jﺣ۳, kuten aiemmin mainitsin. 1845 01:32:18,914 --> 01:32:19,580 Mutta se kﺣ۳y hyvin. 1846 01:32:19,580 --> 01:32:20,454 Me pitﺣ۳ﺣ۳ se yksinkertainen. 1847 01:32:20,454 --> 01:32:21,890 Yritetﺣ۳ﺣ۳n numero 42. 1848 01:32:21,890 --> 01:32:23,240 Ja se on positiivinen. 1849 01:32:23,240 --> 01:32:26,120 Kokeillaan numero negatiivinen 42, negatiivinen. 1850 01:32:26,120 --> 01:32:28,244 >> Kokeillaan arvo 0. 1851 01:32:28,244 --> 01:32:29,160 Ja, todellakin, se toimii. 1852 01:32:29,160 --> 01:32:33,900 Nyt nﺣ۳et ongelmia ennen pitkﺣ۳, testaus asiat kolme kertaa, 1853 01:32:33,900 --> 01:32:34,980 todennﺣ۳kﺣﭘisesti riitﺣ۳. 1854 01:32:34,980 --> 01:32:37,438 Et luultavasti halua testata joitakin isompi numeroita, jotkut pienempiﺣ۳ 1855 01:32:37,438 --> 01:32:40,520 numeroita, jotkut kulma tapauksissa, kuten tulemme kuvaamaan niitﺣ۳. 1856 01:32:40,520 --> 01:32:42,500 >> Mutta nyt, tﺣ۳mﺣ۳ on melko yksinkertainen ohjelma. 1857 01:32:42,500 --> 01:32:45,160 Ja olen melko varma, loogisesti, ettﺣ۳ se kuuluu kolme tapausta. 1858 01:32:45,160 --> 01:32:49,360 Ja tosiaankin, vaikka me vain keskitytty mahdollisten haittoja 1859 01:32:49,360 --> 01:32:53,480 epﺣ۳tarkkuuden ja ylivuoto, vuonna Todellisuudessa jossa monet CS50 ongelmia, 1860 01:32:53,480 --> 01:32:56,000 emme aio huolehtia noin, koko ajan, 1861 01:32:56,000 --> 01:32:59,050 nﺣ۳itﺣ۳ kysymyksiﺣ۳ ylivuodon ja epﺣ۳tﺣ۳smﺣ۳llisyys, sillﺣ۳ itse asiassa C, 1862 01:32:59,050 --> 01:33:01,889 se on itse asiassa ole kovin helppo vﺣ۳lttﺣ۳ﺣ۳ niitﺣ۳ asioita. 1863 01:33:01,889 --> 01:33:04,180 Jos haluat laskea isompi, ja isompi, ja isompi, 1864 01:33:04,180 --> 01:33:07,510 se kﺣ۳ﺣ۳ntyy pois on tekniikoita olet voi kﺣ۳yttﺣ۳ﺣ۳, joihin liittyy usein asioita kutsutaan 1865 01:33:07,510 --> 01:33:11,240 kirjastoja, kokoelmia koodin, joka muut ihmiset kirjoitti, ettﺣ۳ voit kﺣ۳yttﺣ۳ﺣ۳, 1866 01:33:11,240 --> 01:33:13,910 ja muut kielet kuten Java ja muut, itse asiassa 1867 01:33:13,910 --> 01:33:15,800 tehdﺣ۳ paljon helpompaa laskea jopa korkeampi. 1868 01:33:15,800 --> 01:33:19,810 Niin se todella on joitakin nﺣ۳istﺣ۳ vaaroista funktio kﺣ۳yttﺣ۳mﺣ۳si kielen. 1869 01:33:19,810 --> 01:33:22,710 Ja tulevina viikkoina kﺣ۳ymme kuinka vaarallista C todella 1870 01:33:22,710 --> 01:33:24,950 voi olla, jos et kﺣ۳ytﺣ۳ sitﺣ۳ oikein. 1871 01:33:24,950 --> 01:33:27,610 Mutta sieltﺣ۳, ja Python ja JavaScript, on 1872 01:33:27,610 --> 01:33:32,620 me kerros joitakin ylimﺣ۳ﺣ۳rﺣ۳isiﺣ۳ suojauksia, ja ajaa vﺣ۳hemmﺣ۳n nﺣ۳iden riskien. 1873 01:33:32,620 --> 01:33:35,820 >> Joten tehdﺣ۳ hieman enemmﺣ۳n mielenkiintoinen logiikka ohjelmaamme. 1874 01:33:35,820 --> 01:33:39,110 Joten anna minun mennﺣ۳ eteenpﺣ۳in ja luoda ohjelma nimeltﺣ۳ Looginen 1875 01:33:39,110 --> 01:33:43,804 vain jotta voin leikkiﺣ۳ joitakin Varsinainen logiikka, logical.c. 1876 01:33:43,804 --> 01:33:46,870 Otan vain kopioida ja liittﺣ۳ﺣ۳ joitakin koodi aikaisemmin niin saan takaisin 1877 01:33:46,870 --> 01:33:49,950 Tﺣ۳mﺣ۳n mukava lﺣ۳htﺣﭘkohta. 1878 01:33:49,950 --> 01:33:53,980 >> Anna minun tﺣ۳llﺣ۳ kertaa tehdﺣ۳ char C. Olen aio antaa sille nimi C 1879 01:33:53,980 --> 01:33:58,510 vain koska se on tavanomainen, saat merkin kﺣ۳yttﺣ۳jﺣ۳ltﺣ۳. 1880 01:33:58,510 --> 01:34:00,730 Ja Teeskennellﺣ۳ﺣ۳npﺣ۳ kuten Olen osan tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanossa 1881 01:34:00,730 --> 01:34:04,130 Kyseisen Rm ohjelman remove ohjelma ennen kehotuksen kﺣ۳yttﺣ۳jﺣ۳ 1882 01:34:04,130 --> 01:34:05,400 poistaa tiedoston. 1883 01:34:05,400 --> 01:34:06,750 Miten teemme tﺣ۳mﺣ۳n? 1884 01:34:06,750 --> 01:34:11,090 >> Haluan sanoa, jos C on yhtﺣ۳ suuri kuin on yhtﺣ۳ suuri kuin, lainaus lainaus pﺣ۳ﺣ۳ttyy, 1885 01:34:11,090 --> 01:34:16,304 y, niin aion olettaa ettﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ on valinnut kyllﺣ۳. 1886 01:34:16,304 --> 01:34:17,470 Olen juuri menossa painoon kyllﺣ۳. 1887 01:34:17,470 --> 01:34:19,440 Jos se oli todella kirjallisesti poisto-ohjelma, 1888 01:34:19,440 --> 01:34:21,420 voisimme poistaa tiedoston enemmﺣ۳n riviﺣ۳ koodia. 1889 01:34:21,420 --> 01:34:22,461 Mutta me pitﺣ۳ﺣ۳ se yksinkertainen. 1890 01:34:22,461 --> 01:34:25,950 1891 01:34:25,950 --> 01:34:31,250 >> If c on yhtﺣ۳ kuin yhtﺣ۳ kuin n- ja nyt tﺣ۳ﺣ۳llﺣ۳, aion sanoa, 1892 01:34:31,250 --> 01:34:32,980 kﺣ۳yttﺣ۳jﺣ۳n on tarkoittanut mitﺣ۳ﺣ۳n. 1893 01:34:32,980 --> 01:34:34,360 Ja sitten muuta, tiedﺣ۳tkﺣﭘ mitﺣ۳? 1894 01:34:34,360 --> 01:34:36,200 En tiedﺣ۳ mitﺣ۳ muuta kﺣ۳yttﺣ۳jﺣ۳n tulee kirjoittaa. 1895 01:34:36,200 --> 01:34:38,533 Joten olen juuri menossa sanoa, ettﺣ۳ ettﺣ۳ on virhe, mitﺣ۳ 1896 01:34:38,533 --> 01:34:40,070 hﺣ۳n todella kirjoitettu. 1897 01:34:40,070 --> 01:34:41,180 >> Joten mitﺣ۳ tﺣ۳ﺣ۳llﺣ۳ tapahtuu? 1898 01:34:41,180 --> 01:34:44,530 On perustavanlaatuinen ero versus mitﺣ۳ olen tehnyt aikaisemmin. 1899 01:34:44,530 --> 01:34:49,300 Lainausmerkkeihin, lainausmerkit, double lainauksia, ja, vielﺣ۳, heittomerkkejﺣ۳, 1900 01:34:49,300 --> 01:34:50,170 heittomerkkeihin. 1901 01:34:50,170 --> 01:34:52,860 On kﺣ۳ynyt ilmi C, ettﺣ۳ kun haluat kirjoittaa merkkijonon, 1902 01:34:52,860 --> 01:34:56,680 et kﺣ۳ytﺣ۳ lainausmerkkejﺣ۳, aivan kuten olemme kﺣ۳yttﺣ۳nyt kaikki tﺣ۳llﺣ۳ kertaa printf. 1903 01:34:56,680 --> 01:35:02,030 >> Mutta jos haluat kﺣ۳sitellﺣ۳ vain yhden merkin, ns nieriﺣ۳, 1904 01:35:02,030 --> 01:35:03,780 sitten todellisuudessa kﺣ۳ytettiin heittomerkkeihin. 1905 01:35:03,780 --> 01:35:05,450 Ne teistﺣ۳, jotka ovat ohjelmoitu ennen, ei ehkﺣ۳ ole 1906 01:35:05,450 --> 01:35:07,850 oli huolestua erottelu tietyillﺣ۳ kielillﺣ۳. 1907 01:35:07,850 --> 01:35:09,450 In C, sillﺣ۳ on vﺣ۳liﺣ۳. 1908 01:35:09,450 --> 01:35:12,560 Ja niin kun saan char ja haluan vertailla, ettﺣ۳ char kﺣ۳yttﺣ۳en tasavertaisten 1909 01:35:12,560 --> 01:35:18,350 on yhtﺣ۳ kuin jotkut kirjain, kuten y tai n, teen, todellakin, tﺣ۳ytyy olla puolilainausmerkkejﺣ۳. 1910 01:35:18,350 --> 01:35:19,770 >> Nyt mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 1911 01:35:19,770 --> 01:35:26,180 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja tekevﺣ۳t looginen piste slash looginen. 1912 01:35:26,180 --> 01:35:27,305 Ja nyt Minua pyydetﺣ۳ﺣ۳n. 1913 01:35:27,305 --> 01:35:30,638 Joten, oletettavasti, paremman kﺣ۳yttﺣﭘkokemuksen itse asiassa kerro, mitﺣ۳ tehdﺣ۳ tﺣ۳ﺣ۳llﺣ۳. 1914 01:35:30,638 --> 01:35:33,030 Mutta aion vain sokeasti sanoa y for kyllﺣ۳, OK, mukava. 1915 01:35:33,030 --> 01:35:35,780 >> Oletetaan ajaa sen uudestaan, n ilman, mukava. 1916 01:35:35,780 --> 01:35:39,610 Oletetaan kuten tietyt ihmiset tiedﺣ۳n, minun lukitusnﺣ۳ppﺣ۳in on aivan liian usein. 1917 01:35:39,610 --> 01:35:43,740 Joten en pﺣ۳ﺣ۳oma Y, kirjoita, virhe. 1918 01:35:43,740 --> 01:35:46,130 OK, se ei ole, mitﺣ۳ olen odottanut. 1919 01:35:46,130 --> 01:35:48,170 Todellakin, tietokone tekee kirjaimellisesti mitﺣ۳ 1920 01:35:48,170 --> 01:35:51,794 Kerroin sen do-- tarkistaa pieniﺣ۳ y ja pieniﺣ۳ n. 1921 01:35:51,794 --> 01:35:53,960 Tﺣ۳mﺣ۳ ei tunnu hyvﺣ۳ltﺣ۳ kﺣ۳yttﺣﭘkokemuksen, vaikka. 1922 01:35:53,960 --> 01:35:59,010 Saanen kysyﺣ۳ ja hyvﺣ۳ksyn joko pienet kirjaimet tai isot kirjaimet. 1923 01:35:59,010 --> 01:36:02,090 Joten se kﺣ۳ﺣ۳ntyy pois, haluat ehkﺣ۳ sanoa jotain Scratch, 1924 01:36:02,090 --> 01:36:08,150 kuten kirjaimellisesti tai C yhtﺣ۳ suuri kuin on yhtﺣ۳ kuin pﺣ۳ﺣ۳oman yhden lainattu y. 1925 01:36:08,150 --> 01:36:11,400 Osoittautuu, C ei ole Tﺣ۳mﺣ۳n kirjaimellinen avainsanan tai. 1926 01:36:11,400 --> 01:36:12,880 >> Mutta siinﺣ۳ on kaksi pystysuoraa baaria. 1927 01:36:12,880 --> 01:36:15,463 Sinun tﺣ۳ytyy pitﺣ۳ﺣ۳ Shift yleensﺣ۳, Jos kﺣ۳ytﺣ۳t Yhdysvaltain nﺣ۳ppﺣ۳imistﺣﭘ, 1928 01:36:15,463 --> 01:36:18,910 ja osui pystypalkki avain ylﺣ۳puolella enteriﺣ۳. 1929 01:36:18,910 --> 01:36:22,410 Mutta tﺣ۳mﺣ۳ pystypalkki pystyviiva tarkoittaa tai. 1930 01:36:22,410 --> 01:36:26,220 >> Jos sitﺣ۳ vastoin halusimme sanoa ja, kuten Scratch, 1931 01:36:26,220 --> 01:36:28,180 voisimme tehdﺣ۳ ampersand ampersand. 1932 01:36:28,180 --> 01:36:31,330 Siinﺣ۳ ei ole mitﺣ۳ﺣ۳n loogista jﺣ۳rkeﺣ۳ tﺣ۳ﺣ۳llﺣ۳, koska ihmisen ei mitenkﺣ۳ﺣ۳n 1933 01:36:31,330 --> 01:36:37,110 kirjoitit sekﺣ۳ y ettﺣ۳ pieniﺣ۳ y ja pﺣ۳ﺣ۳oma Y samaa merkkiﺣ۳. 1934 01:36:37,110 --> 01:36:39,470 Joten vai mitﺣ۳ aiomme tﺣ۳ﺣ۳llﺣ۳. 1935 01:36:39,470 --> 01:36:46,280 >> Joten jos en tee tﺣ۳tﺣ۳ molemmissa paikoissa, tai c on yhtﺣ۳ kuin yhtﺣ۳ suuri kuin pﺣ۳ﺣ۳oman N, nyt uusintana, 1936 01:36:46,280 --> 01:36:49,390 tehdﺣ۳ loogisia, aloita looginen. 1937 01:36:49,390 --> 01:36:51,200 Nyt voin kirjoittaa y. 1938 01:36:51,200 --> 01:36:53,920 Ja voin tehdﺣ۳ sen uudelleen pﺣ۳ﺣ۳oma Y, tai pﺣ۳ﺣ۳oman N. 1939 01:36:53,920 --> 01:36:56,630 Ja voisin lisﺣ۳tﺣ۳ ylimﺣ۳ﺣ۳rﺣ۳isiﺣ۳ yhdistelmﺣ۳t edelleen. 1940 01:36:56,630 --> 01:36:58,810 >> Joten tﺣ۳mﺣ۳ on looginen Ohjelma sikﺣ۳li kuin nyt 1941 01:36:58,810 --> 01:37:01,940 Olen tarkkailun loogisesti tﺣ۳mﺣ۳ arvo tai tﺣ۳tﺣ۳ arvoa. 1942 01:37:01,940 --> 01:37:06,420 Enkﺣ۳ tarvitse vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳, keksiﺣ۳ kaksi ifs tai muuten IFS. 1943 01:37:06,420 --> 01:37:09,960 Itse asiassa voin yhdistﺣ۳ﺣ۳ joitakin logiikan yhteen tﺣ۳llﺣ۳ tavalla. 1944 01:37:09,960 --> 01:37:11,950 Joten tﺣ۳mﺣ۳ olisi parempi suunniteltu pelkﺣ۳stﺣ۳ﺣ۳n 1945 01:37:11,950 --> 01:37:17,490 sanomalla, jos C on yhtﺣ۳ pieniﺣ۳ kirjaimia y, tulostaa kyllﺣ۳, muuta, jos c on yhtﺣ۳ kuin pﺣ۳ﺣ۳oman Y, 1946 01:37:17,490 --> 01:37:20,074 tulostaa kyllﺣ۳, muuten jos c on yhtﺣ۳ suuri kuin lower-- Toisin sanoen, 1947 01:37:20,074 --> 01:37:21,990 sinun ei tarvitse olla enemmﺣ۳n ja enemmﺣ۳n oksia. 1948 01:37:21,990 --> 01:37:28,840 Voit yhdistﺣ۳ﺣ۳ joitakin vastaavia oksat loogisesti, koska tﺣ۳llﺣ۳ tavalla. 1949 01:37:28,840 --> 01:37:34,150 >> Joten katsomaan vain yhdellﺣ۳ lopullinen ainesosa, yksi lopullisen rakenteen, 1950 01:37:34,150 --> 01:37:34,847 ettﺣ۳ C avulla. 1951 01:37:34,847 --> 01:37:36,930 Ja tulemme takaisin Tulevaisuudessa muille edelleen. 1952 01:37:36,930 --> 01:37:41,400 Ja sitten me pﺣ۳ﺣ۳tellﺣ۳ tarkastelemalla at ei oikeellisuutta code-- 1953 01:37:41,400 --> 01:37:46,070 saada koodin work-- mutta suunnittelu koodia, ja istuttaa ne siemenet varhain. 1954 01:37:46,070 --> 01:37:51,337 >> Joten anna minun mennﺣ۳ eteenpﺣ۳in ja avata uuden tiedoston tﺣ۳ﺣ۳llﺣ۳. 1955 01:37:51,337 --> 01:37:51,920 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 1956 01:37:51,920 --> 01:37:54,450 Aion uudelleen toteuttamaan ettﺣ۳ samaa ohjelmaa, 1957 01:37:54,450 --> 01:37:55,940 mutta eri konstruktia. 1958 01:37:55,940 --> 01:38:00,110 >> Haluan siis nopeasti antaa itselleni pﺣ۳ﺣ۳sy ovat CS50.h 1959 01:38:00,110 --> 01:38:04,150 ettﺣ۳ CS50 kirjasto, standardi Io.h varten printf. 1960 01:38:04,150 --> 01:38:06,510 Anna minulle int main mitﺣ۳tﺣﭘn. 1961 01:38:06,510 --> 01:38:09,310 Ja sitten tﺣ۳ﺣ۳llﺣ۳, anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ tﺣ۳tﺣ۳. 1962 01:38:09,310 --> 01:38:12,010 >> Char c saa pﺣ۳ﺣ۳stﺣ۳ nieriﺣ۳, aivan kuten ennenkin. 1963 01:38:12,010 --> 01:38:16,770 Ja aion kﺣ۳yttﺣ۳ﺣ۳ uutta konstruktio now-- kytkin, mitﺣ۳ merkki? 1964 01:38:16,770 --> 01:38:19,820 Joten kytkin on ikﺣ۳ﺣ۳n kuin kytkentﺣ۳ juna kappaleita. 1965 01:38:19,820 --> 01:38:22,070 Tai oikeastaan, se on erﺣ۳ﺣ۳nlainen if else, jos if, 1966 01:38:22,070 --> 01:38:23,980 mutta kirjoitettu hieman eri tavalla. 1967 01:38:23,980 --> 01:38:25,490 >> Kytkin nﺣ۳yttﺣ۳ﺣ۳ tﺣ۳ltﺣ۳. 1968 01:38:25,490 --> 01:38:29,060 Sinulla on kytkin, ja mitﺣ۳ sitten merkki tai numero, jonka haluat katsoa, 1969 01:38:29,060 --> 01:38:32,000 Sitten jotkut aaltosulkeita like in Scratch, sano tehdﺣ۳ tﺣ۳tﺣ۳ kamaa. 1970 01:38:32,000 --> 01:38:33,480 Ja sitten on erilaisia ﻗ€‹ﻗ€‹tapauksia. 1971 01:38:33,480 --> 01:38:34,830 >> Et kﺣ۳ytﺣ۳ jos ja muuta. 1972 01:38:34,830 --> 01:38:37,050 Sinﺣ۳ kirjaimellisesti kﺣ۳yttﺣ۳ﺣ۳ sanaa tapaus. 1973 01:38:37,050 --> 01:38:38,790 Ja sanoisit jotain tﺣ۳llaista. 1974 01:38:38,790 --> 01:38:43,820 >> Joten kyseessﺣ۳ on pieniﺣ۳ y, tai jos kyseessﺣ۳ on pﺣ۳ﺣ۳oman Y, 1975 01:38:43,820 --> 01:38:47,350 mennﺣ۳ eteenpﺣ۳in ja tulostaa kyllﺣ۳. 1976 01:38:47,350 --> 01:38:49,020 Ja sitten puhkeaa kytkimen. 1977 01:38:49,020 --> 01:38:49,580 Se siitﺣ۳. 1978 01:38:49,580 --> 01:38:50,880 Olemme valmiit. 1979 01:38:50,880 --> 01:38:57,270 >> If, niin sanotusti, pienet kirjaimet n, tai pﺣ۳ﺣ۳oman N, 1980 01:38:57,270 --> 01:39:02,560 sitten mennﺣ۳ eteenpﺣ۳in ja tulostaa out ei, ja sitten tauko. 1981 01:39:02,560 --> 01:39:08,022 Else-- ja tﺣ۳llainen on oletusmarginaali indeed-- printf error-- 1982 01:39:08,022 --> 01:39:10,980 ja vain hyvﺣ۳ toimenpide, vaikka loogisesti tﺣ۳mﺣ۳ tauko ei ole vﺣ۳lttﺣ۳mﺣ۳tﺣﭘntﺣ۳ 1983 01:39:10,980 --> 01:39:12,896 koska olemme lopussa kytkimen tapauksessa, 1984 01:39:12,896 --> 01:39:14,520 Olen nyt murtaa pois kytkin. 1985 01:39:14,520 --> 01:39:16,280 Joten tﺣ۳mﺣ۳ nﺣ۳yttﺣ۳ﺣ۳ hieman erilainen. 1986 01:39:16,280 --> 01:39:18,272 >> Mutta, loogisesti, se on vastaa todellisuudessa. 1987 01:39:18,272 --> 01:39:19,980 Ja miksi kﺣ۳ytﺣ۳t yksi yli muiden? 1988 01:39:19,980 --> 01:39:23,220 Joskus vain henkilﺣﭘkohtaisista mieltymyksistﺣ۳, joskus estetiikka, 1989 01:39:23,220 --> 01:39:25,420 jos Vilkaisen tﺣ۳mﺣ۳n Nyt on jotain 1990 01:39:25,420 --> 01:39:27,510 sanottava, ettﺣ۳ luettavuus tﺣ۳mﺣ۳n koodin. 1991 01:39:27,510 --> 01:39:30,690 Siis, puhumattakaan siitﺣ۳, ettﺣ۳ tﺣ۳mﺣ۳ koodi on uusi monille meistﺣ۳ huoneessa. 1992 01:39:30,690 --> 01:39:33,515 >> Mutta se juuri sellainen on melko. 1993 01:39:33,515 --> 01:39:37,760 Katsos pieniﺣ۳ y, pﺣ۳ﺣ۳oma Y, pienet kirjaimet n, pﺣ۳ﺣ۳oma N oletus, 1994 01:39:37,760 --> 01:39:40,150 se juuri sellainen hyppﺣ۳ﺣ۳ ulos sinua tavalla 1995 01:39:40,150 --> 01:39:42,200 ettﺣ۳, luultavasti, ehkﺣ۳ edellisessﺣ۳ esimerkissﺣ۳ 1996 01:39:42,200 --> 01:39:45,780 kanssa IFS ja pystypalkit, ja muuten IFS, ei vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ ole. 1997 01:39:45,780 --> 01:39:51,600 Eli tﺣ۳mﺣ۳ on oikeastaan ﻗ€‹ﻗ€‹kyse henkilﺣﭘkohtaisista valinta, todella, tai luettavuutta, 1998 01:39:51,600 --> 01:39:52,360 koodin. 1999 01:39:52,360 --> 01:39:58,230 >> Mutta kannalta toiminnallisuus, haluan mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ kytkin, piste slash 2000 01:39:58,230 --> 01:40:05,830 kytkin, ja nyt kirjoittaa pieniﺣ۳ kirjaimia y, pﺣ۳ﺣ۳oma Y, pienet n, pﺣ۳ﺣ۳oman N, 2001 01:40:05,830 --> 01:40:09,250 David, uudelleen koska se on ei yksi merkki. 2002 01:40:09,250 --> 01:40:12,050 Tehdﺣ۳ﺣ۳n x, virhe, odotetusti. 2003 01:40:12,050 --> 01:40:15,640 Ja logically-- ja tﺣ۳mﺣ۳ on jotain Kannustan in general-- jopa 2004 01:40:15,640 --> 01:40:17,790 vaikka olemme vain naarmuttamista pinta joitakin nﺣ۳istﺣ۳ ominaisuuksista. 2005 01:40:17,790 --> 01:40:20,560 >> Ja se ei ehkﺣ۳ ole ilmeinen, kun itse istuutua nﺣ۳ppﺣ۳imistﺣﭘ, 2006 01:40:20,560 --> 01:40:21,370 miten tﺣ۳mﺣ۳ toimii? 2007 01:40:21,370 --> 01:40:22,240 Mitﺣ۳ tﺣ۳mﺣ۳ tekee? 2008 01:40:22,240 --> 01:40:25,630 Kaunis asia ottaa kannettavan tietokoneen tai tyﺣﭘpﺣﭘydﺣ۳llﺣ۳, tai kﺣ۳yttﺣ۳ﺣ۳ 2009 01:40:25,630 --> 01:40:29,290 tietokoneeseen, jossa on kﺣ۳ﺣ۳ntﺣ۳jﺣ۳, ja koodieditori nﺣ۳in, 2010 01:40:29,290 --> 01:40:32,990 on voit melkein aina vastata nﺣ۳ihin kysymykset itse vain yrittﺣ۳ﺣ۳. 2011 01:40:32,990 --> 01:40:36,570 >> Esimerkiksi jos retorisen kysymys kﺣ۳sillﺣ۳ olivat, 2012 01:40:36,570 --> 01:40:39,540 mitﺣ۳ tapahtuu, jos unohdat tauko lausuntoja? 2013 01:40:39,540 --> 01:40:41,400 Joka on itse asiassa hyvin yleinen asia tehdﺣ۳, 2014 01:40:41,400 --> 01:40:43,540 koska se ei nﺣ۳ytﺣ۳ kuten todella tarvitset niitﺣ۳. 2015 01:40:43,540 --> 01:40:46,790 He eivﺣ۳t todellakaan kruunaavat ajatellut kuten suluissa tai kihara 2016 01:40:46,790 --> 01:40:47,714 ahdin tekee. 2017 01:40:47,714 --> 01:40:49,630 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ koodin ja nﺣ۳hdﺣ۳. 2018 01:40:49,630 --> 01:40:53,690 Joten kytkin, piste slash kytkin. 2019 01:40:53,690 --> 01:40:56,435 Katsotaan kirjoittaa pienillﺣ۳ kirjaimilla y, ylhﺣ۳ﺣ۳ltﺣ۳ tapauksessa Enter. 2020 01:40:56,435 --> 01:40:59,390 2021 01:40:59,390 --> 01:41:00,700 Joten olen kirjoittanut y. 2022 01:41:00,700 --> 01:41:04,420 >> Ohjelma sanoi kyllﺣ۳, ei, virhe, ikﺣ۳ﺣ۳n kuin se muuttaa kﺣ۳sitystﺣ۳ﺣ۳n. 2023 01:41:04,420 --> 01:41:09,280 Mutta se sellainen oli, koska mitﺣ۳ tapahtuu kytkimellﺣ۳ on ensimmﺣ۳inen tapaus, joka 2024 01:41:09,280 --> 01:41:13,899 ottelu tarkoittaa sitﺣ۳, hei tietokone, suorittaa kaikki koodi alla. 2025 01:41:13,899 --> 01:41:16,690 Ja jos et sano taukoa, tai ﺣ۳lﺣ۳ sano taukoa, tai eivﺣ۳t sano taukoa, 2026 01:41:16,690 --> 01:41:19,540 tietokone rﺣ۳jﺣ۳yttﺣ۳ﺣ۳ lﺣ۳pi kaikki nﺣ۳mﺣ۳ rivit 2027 01:41:19,540 --> 01:41:22,779 ja suorittaa ne kaikki kunnes se pﺣ۳ﺣ۳see ettﺣ۳ kihara ahdin. 2028 01:41:22,779 --> 01:41:24,320 Joten jarruilla todellakin tarpeen. 2029 01:41:24,320 --> 01:41:27,120 Mutta takeaway tﺣ۳ssﺣ۳, kun epﺣ۳varma, kokeilla jotain. 2030 01:41:27,120 --> 01:41:29,510 Ehkﺣ۳ tallentaa koodin ensimmﺣ۳inen, tai tallentaa sen ylimﺣ۳ﺣ۳rﺣ۳inen tiedostoon 2031 01:41:29,510 --> 01:41:32,930 jos olet todella huolissaan Messing ja ottaa talteen 2032 01:41:32,930 --> 01:41:34,430 tyﺣﭘtﺣ۳, jota tiedﺣ۳t toimivan. 2033 01:41:34,430 --> 01:41:35,410 >> Mutta yritﺣ۳ asiat. 2034 01:41:35,410 --> 01:41:38,074 Ja ﺣ۳lﺣ۳ niin pelﺣ۳tﺣ۳, ehkﺣ۳, mitﺣ۳ tietokone voisi tehdﺣ۳, 2035 01:41:38,074 --> 01:41:39,490 tai ettﺣ۳ saatat rikkoa jotain. 2036 01:41:39,490 --> 01:41:42,790 Voit aina palata takaisin jossain aiemmassa versiossa. 2037 01:41:42,790 --> 01:41:45,640 >> Joten lopettaa katsomalla suunnitteluvaiheessa koodia. 2038 01:41:45,640 --> 01:41:49,020 Meillﺣ۳ on tﺣ۳mﺣ۳ kyky nyt kirjoittaa olosuhteet, ja kirjoittaa silmukoita, 2039 01:41:49,020 --> 01:41:50,850 ja muuttujia, ja puhelutoiminnot. 2040 01:41:50,850 --> 01:41:54,590 Joten rehellisesti, olemme tavallaan takaisin jossa olimme viikko sitten Scratch, 2041 01:41:54,590 --> 01:42:00,120 vaikkakin vﺣ۳hemmﺣ۳n pakottavia tekstisisﺣ۳llﺣﭘn ympﺣ۳ristﺣﭘ kuin Scratch sallii. 2042 01:42:00,120 --> 01:42:03,990 >> Mutta huomaa, miten nopeasti olemme hankkinut ettﺣ۳ sanastoa, vaikka se on 2043 01:42:03,990 --> 01:42:07,570 vie vﺣ۳hﺣ۳n aikaa uppoavat, jotta voimme nyt kﺣ۳yttﺣ۳ﺣ۳ tﺣ۳tﺣ۳ sanastoa 2044 01:42:07,570 --> 01:42:10,320 kirjoittaa enemmﺣ۳n mielenkiintoisia ohjelmia. 2045 01:42:10,320 --> 01:42:12,940 Ja sallikaa vauva askel kohti tuota, seuraavasti. 2046 01:42:12,940 --> 01:42:14,890 Anna minun mennﺣ۳ eteenpﺣ۳in ja luo uuden tiedoston tﺣ۳ﺣ۳llﺣ۳. 2047 01:42:14,890 --> 01:42:17,750 >> Aion kutsua tﺣ۳tﺣ۳ prototype.c, ja ottaa kﺣ۳yttﺣﭘﺣﭘn 2048 01:42:17,750 --> 01:42:20,954 ensimmﺣ۳istﺣ۳ kertaa, kyky tehdﺣ۳ omia toimintoja. 2049 01:42:20,954 --> 01:42:22,870 Jotkut teistﺣ۳ saattaa olla tehnyt tﺣ۳mﺣ۳n Scratch, 2050 01:42:22,870 --> 01:42:25,430 jolloin voit luoda omia lohkojen Scratch, 2051 01:42:25,430 --> 01:42:27,892 ja vedﺣ۳ ne paikoilleen minne haluat C. 2052 01:42:27,892 --> 01:42:30,100 Ja useimmissa ohjelmointi kieliﺣ۳, voit tehdﺣ۳ juuri 2053 01:42:30,100 --> 01:42:33,580 that-- tehdﺣ۳ omia toimintoja, jos ne eivﺣ۳t ole jo olemassa. 2054 01:42:33,580 --> 01:42:38,660 >> Niinpﺣ۳ esimerkiksi, anna minun mennﺣ۳ eteenpﺣ۳in ja ovat CS50.h, ja ne sisﺣ۳ltﺣ۳vﺣ۳t 2055 01:42:38,660 --> 01:42:43,110 standardi IO.h, int main mitﺣ۳tﺣﭘn. 2056 01:42:43,110 --> 01:42:46,020 Ja nyt meillﺣ۳ on paikkamerkkikentﺣ۳t valmiina. 2057 01:42:46,020 --> 01:42:48,550 En pidﺣ۳ tulostus asioita kuten ihmisten nimet tﺣ۳nﺣ۳ﺣ۳n. 2058 01:42:48,550 --> 01:42:51,910 Ja se tuntuu like-- ei olisi mukavaa, jos siellﺣ۳ 2059 01:42:51,910 --> 01:42:53,936 oli toiminto nimeltﺣ۳ﺣ۳n nimenselvennys? 2060 01:42:53,936 --> 01:42:55,060 En tarvitse kﺣ۳yttﺣ۳ﺣ۳ printf. 2061 01:42:55,060 --> 01:42:56,976 En tarvitse muistaa kaikki muotoa koodit. 2062 01:42:56,976 --> 01:43:00,050 Miksi en, tai miksi ei joku ennen minua, 2063 01:43:00,050 --> 01:43:02,980 luo toiminto nimeltﺣ۳ﺣ۳n print nimi, joka annetaan jonkin nimen, 2064 01:43:02,980 --> 01:43:03,980 yksinkertaisesti tulostaa sen? 2065 01:43:03,980 --> 01:43:08,700 >> Toisin sanoen, jos sanon, hei, tietokone, anna minulle merkkijono 2066 01:43:08,700 --> 01:43:11,870 pyytﺣ۳mﺣ۳llﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ tﺣ۳llaista, kautta CS50: n get merkkijono. 2067 01:43:11,870 --> 01:43:15,090 Hei, tietokone, laita se merkkijono muuttujaa vasemmalla puolella, 2068 01:43:15,090 --> 01:43:16,150 ja kutsuvat sitﺣ۳ s. 2069 01:43:16,150 --> 01:43:22,150 Ja sitten, hei tietokone, mennﺣ۳ eteenpﺣ۳in ja tulostaa henkilﺣﭘn nimen, tehty. 2070 01:43:22,150 --> 01:43:26,240 >> Nyt, se olisi mukavaa, koska Ohjelman osuvasti nimetty, 2071 01:43:26,240 --> 01:43:29,170 kertoo minulle mitﺣ۳ sen pitﺣ۳isi tehdﺣ۳ Poiketen nﺣ۳istﺣ۳ funktion nimiﺣ۳. 2072 01:43:29,170 --> 01:43:32,930 Anna minun mennﺣ۳ ja tehdﺣ۳ prototyyppi, Enter. 2073 01:43:32,930 --> 01:43:34,930 Ja valitettavasti tﺣ۳mﺣ۳ ei aio lentﺣ۳ﺣ۳. 2074 01:43:34,930 --> 01:43:39,430 >> Prototype.c, rivi 7, merkki 5, virhe, implisiittinen ilmoitus 2075 01:43:39,430 --> 01:43:42,960 Funktion nimenselvennys on pﺣ۳temﺣ۳tﺣﭘn C99, C99 2076 01:43:42,960 --> 01:43:45,130 tarkoittaen versio C joka tuli ulos vuonna 1999. 2077 01:43:45,130 --> 01:43:45,730 Siinﺣ۳ kaikki. 2078 01:43:45,730 --> 01:43:48,780 >> Joten en tiedﺣ۳ mitﺣ۳ kaikki tﺣ۳mﺣ۳ tarkoittaa vielﺣ۳. 2079 01:43:48,780 --> 01:43:50,810 Mutta en tunnista virhe punaisena. 2080 01:43:50,810 --> 01:43:51,770 Se on aika selvﺣ۳ﺣ۳. 2081 01:43:51,770 --> 01:43:53,769 >> Ja nﺣ۳yttﺣ۳ﺣ۳ siltﺣ۳, ﻗ€‹ﻗ€‹ettﺣ۳ vihreﺣ۳ merkki tﺣ۳stﺣ۳, 2082 01:43:53,769 --> 01:43:57,520 ongelma on painatuksella nimi, avoin paren s, lﺣ۳hellﺣ۳ paren, puolipisteellﺣ۳. 2083 01:43:57,520 --> 01:44:01,800 Mutta implisiittinen ilmoitus toiminto nﺣ۳imme lyhyesti aikaisemmin. 2084 01:44:01,800 --> 01:44:04,880 Tﺣ۳mﺣ۳ tarkoittaa yksinkertaisesti, ettﺣ۳ Clang ei tiedﺣ۳ mitﺣ۳ tarkoitan. 2085 01:44:04,880 --> 01:44:09,000 >> Olen kﺣ۳yttﺣ۳nyt sanaston sanaa, ettﺣ۳ se on koskaan nﺣ۳hnyt tai opetettu ennen. 2086 01:44:09,000 --> 01:44:11,950 Ja niin minun tﺣ۳ytyy opettaa sitﺣ۳ mitﺣ۳ tﺣ۳mﺣ۳ toiminto tarkoittaa. 2087 01:44:11,950 --> 01:44:13,590 Joten aion mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ se. 2088 01:44:13,590 --> 01:44:17,970 >> Aion mennﺣ۳ eteenpﺣ۳in ja toteuttaa oma toiminto nimeltﺣ۳ﺣ۳n Print Name. 2089 01:44:17,970 --> 01:44:24,720 Ja aion sanoa, seuraavasti, ettﺣ۳ se tekee nﺣ۳in, printf, hei, prosenttia 2090 01:44:24,720 --> 01:44:27,760 s, kenoviiva n, nimi, puolipisteellﺣ۳. 2091 01:44:27,760 --> 01:44:29,250 Joten mitﺣ۳ minﺣ۳ juuri tehdﺣ۳? 2092 01:44:29,250 --> 01:44:31,325 >> Joten se kﺣ۳ﺣ۳ntyy pois, jotta toteuttaa oma toiminta, 2093 01:44:31,325 --> 01:44:33,845 me tavallaan lainata joidenkin sama rakenne kuin pﺣ۳ﺣ۳asiallisena 2094 01:44:33,845 --> 01:44:35,720 ettﺣ۳ olemme juuri olleet itsestﺣ۳ﺣ۳n selvﺣ۳nﺣ۳, ja minﺣ۳ 2095 01:44:35,720 --> 01:44:37,730 tietﺣ۳vﺣ۳t vain kopioimalla ja liittﺣ۳mﺣ۳llﺣ۳ melko paljon, mitﺣ۳ 2096 01:44:37,730 --> 01:44:39,170 Olen kirjoittanut aikaisemmin. 2097 01:44:39,170 --> 01:44:40,570 Mutta huomaa kuvio tﺣ۳ﺣ۳llﺣ۳. 2098 01:44:40,570 --> 01:44:43,750 Int, Main, Void, me kiusaa toisistaan ennen pitkﺣ۳ﺣ۳, mitﺣ۳ se todella tarkoittaa. 2099 01:44:43,750 --> 01:44:46,160 >> Mutta tﺣ۳nﺣ۳ﺣ۳n, vain huomaa rinnakkaisuus. 2100 01:44:46,160 --> 01:44:48,210 Void, tulostaa nimi, string nimi, joten ei 2101 01:44:48,210 --> 01:44:50,310 violetti avainsanan, joka aiomme aloittaa 2102 01:44:50,310 --> 01:44:54,067 soittamalla palautuva, nimi toiminnon, ja sitten tulo. 2103 01:44:54,067 --> 01:44:56,400 Joten itse asiassa, voimme tislata tﺣ۳llainen kuten viime viikolla 2104 01:44:56,400 --> 01:44:59,030 koska tﺣ۳mﺣ۳ on nimi tai algoritmi koodin olemme 2105 01:44:59,030 --> 01:45:00,761 menossa write-- algoritmi taustalla 2106 01:45:00,761 --> 01:45:02,010 koodi aiomme kirjoittaa. 2107 01:45:02,010 --> 01:45:03,180 >> Tﺣ۳mﺣ۳ on sen panos. 2108 01:45:03,180 --> 01:45:04,670 Tﺣ۳mﺣ۳ on sen ulostulo. 2109 01:45:04,670 --> 01:45:08,730 Tﺣ۳mﺣ۳ toiminto, tulostaa nimi, on tarkoituksena on ottaa merkkijonon nimeltﺣ۳ﺣ۳n nimi, 2110 01:45:08,730 --> 01:45:11,350 tai mitﺣ۳ tahansa, kuten syﺣﭘttﺣﭘ, ja sitten mitﺣ۳tﺣﭘn. 2111 01:45:11,350 --> 01:45:13,904 Se ei palaa mitﺣ۳ﺣ۳n, kuten saada merkkijono tai saada int tekee. 2112 01:45:13,904 --> 01:45:15,570 Joten se tulee luovuttaa minulle jotain takaisin. 2113 01:45:15,570 --> 01:45:17,960 Se on vain olemaan sivuvaikutus, niin sanotusti, 2114 01:45:17,960 --> 01:45:19,570 tulostus henkilﺣﭘn nimen. 2115 01:45:19,570 --> 01:45:22,260 Joten huomata, rivi 7, I voi soittaa nimenselvennys. 2116 01:45:22,260 --> 01:45:25,920 Linja 10, voin mﺣ۳ﺣ۳ritellﺣ۳ tai toteuttaa nimenselvennys. 2117 01:45:25,920 --> 01:45:28,450 Mutta valitettavasti se ei riitﺣ۳. 2118 01:45:28,450 --> 01:45:31,230 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ tﺣ۳mﺣ۳n tallennuksen jﺣ۳lkeen. 2119 01:45:31,230 --> 01:45:33,910 Whoa, nyt, olen tehnyt sen pahempaa, se nﺣ۳yttﺣ۳isi. 2120 01:45:33,910 --> 01:45:37,027 Joten implisiittinen ilmoitus toiminto tulostaa nimi on virheellinen. 2121 01:45:37,027 --> 01:45:38,360 Ja taas on enemmﺣ۳n virheitﺣ۳. 2122 01:45:38,360 --> 01:45:41,430 Mutta kun varoitettiin aikaisemmin, jopa jos saat hukkua, 2123 01:45:41,430 --> 01:45:44,850 tai hieman surullista nﺣ۳hdﺣ۳ niin monta virheitﺣ۳, keskittyﺣ۳ vain ensimmﺣ۳iseen 2124 01:45:44,850 --> 01:45:47,500 aluksi, koska se voi vain on ollut kerrannaisvaikutuksia. 2125 01:45:47,500 --> 01:45:51,970 Joten C, tai Clang tarkemmin, ei vielﺣ۳kﺣ۳ﺣ۳n tunnista nimenselvennys. 2126 01:45:51,970 --> 01:45:54,580 >> Ja se johtuu Clang, suunnittelun, on tavallaan tyhmﺣ۳. 2127 01:45:54,580 --> 01:45:56,280 Se tekee vain mitﺣ۳ kerrot sitﺣ۳ tekemﺣ۳ﺣ۳n. 2128 01:45:56,280 --> 01:46:00,950 Ja se vain tekee niin siinﺣ۳ jﺣ۳rjestyksessﺣ۳ jossa kerrot sitﺣ۳ tekemﺣ۳ﺣ۳n. 2129 01:46:00,950 --> 01:46:05,270 >> Olen siis mﺣ۳ﺣ۳ritellyt tﺣ۳rkeimmﺣ۳t linjalla neljﺣ۳, kuten olemme tehneet melko usein. 2130 01:46:05,270 --> 01:46:07,980 Olen mﺣ۳ﺣ۳ritellyt print nimi rivillﺣ۳ 10. 2131 01:46:07,980 --> 01:46:11,793 Mutta olen yrittﺣ۳nyt kﺣ۳yttﺣ۳ﺣ۳ print nimi rivillﺣ۳ seitsemﺣ۳n. 2132 01:46:11,793 --> 01:46:13,670 >> Se liian pian, ei ole vielﺣ۳ olemassa. 2133 01:46:13,670 --> 01:46:19,150 Joten en voinut olla fiksu, ja olla, OK, joten tehdﺣ۳ﺣ۳n vain pelata yhdessﺣ۳, 2134 01:46:19,150 --> 01:46:23,680 ja siirrﺣ۳ nimenselvennys ylﺣﭘs tﺣ۳ﺣ۳llﺣ۳, ja uudelleen koota. 2135 01:46:23,680 --> 01:46:24,550 Herranjumala. 2136 01:46:24,550 --> 01:46:25,260 Se toimi. 2137 01:46:25,260 --> 01:46:26,670 Se oli niin yksinkertaista. 2138 01:46:26,670 --> 01:46:28,120 >> Mutta logiikka on juuri nﺣ۳in. 2139 01:46:28,120 --> 01:46:30,870 Sinun tﺣ۳ytyy opettaa Clang mitﺣ۳ se on mﺣ۳ﺣ۳rittelemﺣ۳llﺣ۳ funktion ensimmﺣ۳inen. 2140 01:46:30,870 --> 01:46:31,920 Sitten voit kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳. 2141 01:46:31,920 --> 01:46:33,940 Mutta suoraan sanoen, tﺣ۳mﺣ۳ tuntuu kuten kaltevalle pinnalle. 2142 01:46:33,940 --> 01:46:35,773 >> Joten joka kerta Juoksen osaksi ongelma, olen vain 2143 01:46:35,773 --> 01:46:39,450 menossa esiin ja kopioi koodi Kirjoitin, leikkaa se ja liitﺣ۳ se tﺣ۳ﺣ۳llﺣ۳. 2144 01:46:39,450 --> 01:46:41,370 Ja varmasti, voisimme keksiﺣ۳ joitakin skenaarioita 2145 01:46:41,370 --> 01:46:43,286 jossa yksi toiminto saattaisi tﺣ۳ytyy soittaa toiselle. 2146 01:46:43,286 --> 01:46:46,030 Ja et vain voi laittaa jokaisen toiminto kaikkien muiden ylﺣ۳puolelle. 2147 01:46:46,030 --> 01:46:47,930 >> Joten se kﺣ۳ﺣ۳ntyy pois siellﺣ۳ n parempi ratkaisu. 2148 01:46:47,930 --> 01:46:50,100 Voimme jﺣ۳ttﺣ۳ﺣ۳ tﺣ۳mﺣ۳n olla. 2149 01:46:50,100 --> 01:46:53,677 Ja rehellisesti, se on yleensﺣ۳ mukava, ja kﺣ۳tevﺣ۳, ja hyvﺣ۳ muotoilu 2150 01:46:53,677 --> 01:46:56,760 laittaa tﺣ۳rkein ensin, koska, jﺣ۳lleen, Tﺣ۳rkein aivan kuten silloin, kun vihreﺣ۳ lippu napsautetaan, 2151 01:46:56,760 --> 01:46:59,027 ettﺣ۳ on toiminto, saa suorittaa oletusarvoisesti. 2152 01:46:59,027 --> 01:47:01,110 Joten ehkﺣ۳ myﺣﭘs laittaa se ylﺣ۳osassa tiedoston 2153 01:47:01,110 --> 01:47:03,560 niin, ettﺣ۳ kun tai muut ihmisen tarkastellaan tiedosto 2154 01:47:03,560 --> 01:47:06,360 Tiedﺣ۳tkﺣﭘ mitﺣ۳ tapahtuu vain lukemalla tﺣ۳rkein ensin. 2155 01:47:06,360 --> 01:47:15,360 Joten se kﺣ۳ﺣ۳ntyy pois, voimme kertoa Clang ennakoivasti, hei, Clang, rivillﺣ۳ neljﺣ۳, 2156 01:47:15,360 --> 01:47:17,940 Lupaan toteuttaa toiminto nimeltﺣ۳ﺣ۳n Tulosta 2157 01:47:17,940 --> 01:47:22,600 Nimi joka vie merkkijonon kutsutaan nimellﺣ۳ syﺣﭘtteenﺣ۳, ja palaa mitﺣ۳ﺣ۳n, mitﺣ۳tﺣﭘn. 2158 01:47:22,600 --> 01:47:24,770 Ja minﺣ۳ kiertﺣ۳ﺣ۳ sen tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanoa myﺣﭘhemmin. 2159 01:47:24,770 --> 01:47:25,680 >> Tﺣ۳ﺣ۳ltﺣ۳ tulee Main. 2160 01:47:25,680 --> 01:47:29,130 Tﺣ۳rkeimmﺣ۳t nyt rivillﺣ۳ 9 voi kﺣ۳yttﺣ۳ﺣ۳ Tulosta Name koska Clang 2161 01:47:29,130 --> 01:47:32,600 on luottavainen, ettﺣ۳ lopulta, se kohtaavat mﺣ۳ﺣ۳ritelmﺣ۳n 2162 01:47:32,600 --> 01:47:34,880 tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanon Print Name. 2163 01:47:34,880 --> 01:47:37,390 Joten kun tallentavan tiedostoa, anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ prototyyppi, 2164 01:47:37,390 --> 01:47:38,498 nﺣ۳yttﺣ۳ﺣ۳ hyvﺣ۳ltﺣ۳ tﺣ۳llﺣ۳ kertaa. 2165 01:47:38,498 --> 01:47:43,470 Dot slash, prototyyppi, haluan mennﺣ۳ eteenpﺣ۳in ja kirjoittaa nimen. 2166 01:47:43,470 --> 01:47:48,440 David, hei David, Zamila, hei Zamila, ja todellakin nyt se toimii. 2167 01:47:48,440 --> 01:47:52,200 >> Joten ainesosa tﺣ۳ssﺣ۳ on se, ettﺣ۳ olemme teki mukautetun funktion, kuten mukautetun 2168 01:47:52,200 --> 01:47:54,219 Scratch lohko me kutsuvat sitﺣ۳. 2169 01:47:54,219 --> 01:47:57,010 Mutta toisin Scratch jossa voit vain luoda sen ja alkaa kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳, 2170 01:47:57,010 --> 01:47:59,330 Nyt meidﺣ۳n tﺣ۳ytyy olla hieman pikkutarkka, 2171 01:47:59,330 --> 01:48:03,410 ja itse kouluttaa Clang kﺣ۳yttﺣ۳ﺣ۳, tai odottaa sitﺣ۳. 2172 01:48:03,410 --> 01:48:09,140 Nyt sivuhuomautuksena, miksi koko ajan on me olleet vain sokeasti uskoon lukien 2173 01:48:09,140 --> 01:48:12,170 CS50.h, ja myﺣﭘs vakio IO.h? 2174 01:48:12,170 --> 01:48:15,190 >> No, se kﺣ۳ﺣ۳ntyy pois, joukossa muutamia muita asioita, 2175 01:48:15,190 --> 01:48:18,550 kaikki se nﺣ۳issﺣ۳ dot h tiedostoja, jotka sattuvat olemaan tiedostoja. 2176 01:48:18,550 --> 01:48:20,460 He header-tiedostoja, niin sanotusti. 2177 01:48:20,460 --> 01:48:23,270 He vielﺣ۳ kirjoitettu C. Mutta he erityyppinen tiedosto. 2178 01:48:23,270 --> 01:48:28,690 >> Nyt voit melko paljon olettaa ettﺣ۳ kaikki mikﺣ۳ on sisﺣ۳llﺣ۳ CS50.h 2179 01:48:28,690 --> 01:48:33,360 on noin yksi-alukset, kuten tﺣ۳mﺣ۳, ei Toimintojen nimeltﺣ۳ﺣ۳n Print Name, 2180 01:48:33,360 --> 01:48:36,840 mutta Get String, Get Float, ja muutama muu. 2181 01:48:36,840 --> 01:48:41,510 Ja on samanlaisia ﻗ€‹ﻗ€‹prototyyppejﺣ۳, yksi vaipat sisﺣ۳llﺣ۳ standardin IO.h 2182 01:48:41,510 --> 01:48:46,241 varten printf, joka on nyt oma Tulosta nimi -toiminto. 2183 01:48:46,241 --> 01:48:49,490 Eli toisin sanoen, tﺣ۳mﺣ۳ koko ajan olemme juuri sokeasti kopioida ja liittﺣ۳ﺣ۳ 2184 01:48:49,490 --> 01:48:51,780 sisﺣ۳llyttﺣ۳ﺣ۳ tﺣ۳mﺣ۳n, sisﺣ۳ltﺣ۳vﺣ۳t ettﺣ۳, mitﺣ۳ tapahtuu? 2185 01:48:51,780 --> 01:48:55,310 Nﺣ۳mﺣ۳ ovat vain sellainen vihjeitﺣ۳ ettﺣ۳ kalahtaa, mitﺣ۳ toimintoja 2186 01:48:55,310 --> 01:49:00,170 ovat todellakin tﺣ۳ytﺣ۳ntﺣﭘﺣﭘn, vain muualla eri tiedostoja 2187 01:49:00,170 --> 01:49:02,440 muualla jﺣ۳rjestelmﺣ۳ssﺣ۳. 2188 01:49:02,440 --> 01:49:05,160 >> Niinpﺣ۳ olemme ottaneet kﺣ۳yttﺣﭘﺣﭘn nimenselvennys. 2189 01:49:05,160 --> 01:49:07,910 Se on tﺣ۳mﺣ۳ sivuvaikutus tulostus jotain ruudulla. 2190 01:49:07,910 --> 01:49:10,170 Mutta se ei varsinaisesti kﺣ۳si minulle jotain takaisin. 2191 01:49:10,170 --> 01:49:12,200 Miten edetﺣ۳ toteuttamista varten, joka 2192 01:49:12,200 --> 01:49:14,510 ei kﺣ۳si minulle jotain takaisin? 2193 01:49:14,510 --> 01:49:15,580 >> No, kokeile tﺣ۳tﺣ۳. 2194 01:49:15,580 --> 01:49:21,360 Anna minun mennﺣ۳ eteenpﺣ۳in ja toteuttaa niminen tiedosto return.c 2195 01:49:21,360 --> 01:49:24,530 jotta voimme osoittaa, miten jotain kuten Get String, tai Get Int, 2196 01:49:24,530 --> 01:49:27,340 on todella palaamassa jotain takaisin kﺣ۳yttﺣ۳jﺣ۳lle. 2197 01:49:27,340 --> 01:49:29,840 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja mﺣ۳ﺣ۳ritellﺣ۳ int main mitﺣ۳tﺣﭘn. 2198 01:49:29,840 --> 01:49:33,230 >> Ja jﺣ۳lleen, ettﺣ۳ tulevaisuudessa kﺣ۳ymme selittﺣ۳ﺣ۳, mitﺣ۳ se int ja ettﺣ۳ void 2199 01:49:33,230 --> 01:49:34,090 on todella tekee. 2200 01:49:34,090 --> 01:49:35,840 Mutta tﺣ۳nﺣ۳ﺣ۳n kﺣ۳ymme pitﺣ۳ﺣ۳ itsestﺣ۳ﺣ۳nselvyytenﺣ۳. 2201 01:49:35,840 --> 01:49:39,970 Aion mennﺣ۳ eteenpﺣ۳in ja printf, hyvﺣ۳ kﺣ۳yttﺣ۳jﺣ۳kokemus, x on. 2202 01:49:39,970 --> 01:49:44,360 Ja sitten aion odottaa Kﺣ۳yttﺣ۳jﺣ۳ antaa minulle x get int. 2203 01:49:44,360 --> 01:49:48,459 >> Ja sitten aion mennﺣ۳ eteenpﺣ۳in ja tulostaa x neliﺣﭘﺣﭘn. 2204 01:49:48,459 --> 01:49:50,500 Joten kun on vain nﺣ۳ppﺣ۳imistﺣﭘ, ihmiset yleisesti 2205 01:49:50,500 --> 01:49:52,600 kﺣ۳yttﺣ۳ﺣ۳ pikku porkkana symboli nﺣ۳ppﺣ۳imistﺣﭘllﺣ۳ 2206 01:49:52,600 --> 01:49:55,330 edustamaan valta yhdessﺣ۳ tai ettﺣ۳ eksponentti. 2207 01:49:55,330 --> 01:49:58,960 Joten x potenssiin on lﺣ۳snﺣ۳ i. 2208 01:49:58,960 --> 01:50:00,660 >> Ja nyt aion tehdﺣ۳ tﺣ۳mﺣ۳n. 2209 01:50:00,660 --> 01:50:03,940 Voisin do-- mitﺣ۳ x potenssiin? x potenssiin on x kertaa x. 2210 01:50:03,940 --> 01:50:06,690 >> Ja teimme joitakin aika sitten jo tﺣ۳nﺣ۳ﺣ۳n. 2211 01:50:06,690 --> 01:50:08,730 Tﺣ۳mﺣ۳ ei tunnu kovin paljon edistystﺣ۳. 2212 01:50:08,730 --> 01:50:09,570 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 2213 01:50:09,570 --> 01:50:13,100 Katsotaan hyﺣﭘdyntﺣ۳ﺣ۳ jotakin siitﺣ۳ ajatuksesta viime aika abstraktio. 2214 01:50:13,100 --> 01:50:16,080 >> Eikﺣﭘ olisi mukavaa, jos siellﺣ۳ on toiminto nimeltﺣ۳ﺣ۳n 2215 01:50:16,080 --> 01:50:18,460 neliﺣﭘ, ettﺣ۳ juuri nﺣ۳in? 2216 01:50:18,460 --> 01:50:20,640 Se on edelleen, on lopussa pﺣ۳ivﺣ۳, tekee saman matematiikka. 2217 01:50:20,640 --> 01:50:22,410 Mutta katsotaanpa abstrakti pois ajatusta ottaen 2218 01:50:22,410 --> 01:50:25,280 yksi numero kerrottuna toinen, ja vain antaa sille nimi, 2219 01:50:25,280 --> 01:50:27,360 kuten neliﺣﭘ tﺣ۳mﺣ۳ arvo. 2220 01:50:27,360 --> 01:50:29,560 >> Ja, toisin sanoen, C, nyt luoda funktion 2221 01:50:29,560 --> 01:50:32,660 kutsutaan neliﺣﭘn ettﺣ۳ juuri nﺣ۳in. 2222 01:50:32,660 --> 01:50:34,600 Se tulee kutsua neliﺣﭘ. 2223 01:50:34,600 --> 01:50:35,790 Se tulee ottaa int. 2224 01:50:35,790 --> 01:50:37,820 Ja me tulee juuri kutsuvat sitﺣ۳ n oletusarvoisesti. 2225 01:50:37,820 --> 01:50:39,403 >> Mutta voisimme kutsua sitﺣ۳ mitﺣ۳ me haluamme. 2226 01:50:39,403 --> 01:50:42,900 Ja kaikki se menee do, kirjaimellisesti, on paluu 2227 01:50:42,900 --> 01:50:45,810 tulos n kertaa n. 2228 01:50:45,810 --> 01:50:48,980 Mutta koska se on palaavat jotain, joka 2229 01:50:48,980 --> 01:50:53,690 on avainsana violetti olemme koskaan ennen nﺣ۳hnyt, I rivillﺣ۳ 11, 2230 01:50:53,690 --> 01:50:55,410 voi vain sanoa mitﺣ۳tﺣﭘn tﺣ۳llﺣ۳ kertaa. 2231 01:50:55,410 --> 01:51:01,320 >> Void, esimerkissﺣ۳ olemme juuri nﺣ۳hnyt pikemminkin tulostaa nimi, tarkoittaa vain sitﺣ۳, 2232 01:51:01,320 --> 01:51:02,190 tee jotain. 2233 01:51:02,190 --> 01:51:04,170 Mutta ﺣ۳lﺣ۳ kﺣ۳si jotain takaisin. 2234 01:51:04,170 --> 01:51:06,790 Tﺣ۳ssﺣ۳ tapauksessa en halua palata n kertaa n, 2235 01:51:06,790 --> 01:51:08,460 tai mitﺣ۳ se on, ettﺣ۳ numero. 2236 01:51:08,460 --> 01:51:12,460 >> Joten en voi sanoa, hei, tietokone, Palaan mitﺣ۳ﺣ۳n, mitﺣ۳tﺣﭘn. 2237 01:51:12,460 --> 01:51:16,166 Se tulee palata, luonteeltaan, int. 2238 01:51:16,166 --> 01:51:17,790 Ja niin se on kaikki mitﺣ۳ on tekeillﺣ۳. 2239 01:51:17,790 --> 01:51:20,070 >> Panos lﺣ۳htﺣﭘruutuun tulee olemaan int. 2240 01:51:20,070 --> 01:51:24,760 Ja jotta voimme kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳, se on on nimi, N. Se tulee lﺣ۳htﺣﭘ 2241 01:51:24,760 --> 01:51:26,240 int, joka ei tarvitse nimeﺣ۳. 2242 01:51:26,240 --> 01:51:29,590 Voimme jﺣ۳ttﺣ۳ﺣ۳ tﺣ۳rkein, tai kuka on kﺣ۳yttﺣ۳vﺣ۳t minua muistamaan tﺣ۳tﺣ۳ arvoa, jos me 2243 01:51:29,590 --> 01:51:31,120 haluavat omalla vaihteleva. 2244 01:51:31,120 --> 01:51:33,230 >> Ja, jﺣ۳lleen, ainoa uusi avainsana tﺣ۳ssﺣ۳ Return. 2245 01:51:33,230 --> 01:51:34,480 Ja olen juuri tekemﺣ۳ssﺣ۳ joitakin matematiikkaa. 2246 01:51:34,480 --> 01:51:41,825 Jos halusin olla tarpeetonta, Voisin sanoa int tuote saa n kertaa n. 2247 01:51:41,825 --> 01:51:44,170 >> Ja sitten voisi sanoa, palauta tuote. 2248 01:51:44,170 --> 01:51:47,360 Mutta jﺣ۳lleen kerran, minun kohta aikaisempana tﺣ۳mﺣ۳ vain ei ole hyvﺣ۳ design-- 2249 01:51:47,360 --> 01:51:50,060 kuten, miksi kﺣ۳yttﺣﭘﺣﭘn nimi, symboli, kuten tuote, 2250 01:51:50,060 --> 01:51:51,570 vain vﺣ۳littﺣﭘmﺣ۳sti palauttaa sen? 2251 01:51:51,570 --> 01:51:53,670 Se on vﺣ۳hﺣ۳n puhtaampi, hieman tiukempi, niin 2252 01:51:53,670 --> 01:51:59,380 puhua, vain sanoa paluu n kertaa n, pﺣ۳ﺣ۳stﺣ۳ eroon tﺣ۳stﺣ۳ linjan kokonaan. 2253 01:51:59,380 --> 01:52:02,860 >> Ja se on vain vﺣ۳hemmﺣ۳n koodia lukea, vﺣ۳hemmﺣ۳n mahdollisuuksia virheitﺣ۳. 2254 01:52:02,860 --> 01:52:05,180 Ja katsotaanpa, jos tﺣ۳mﺣ۳ todella toimii nyt. 2255 01:52:05,180 --> 01:52:09,380 Nyt aion mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ paluun. 2256 01:52:09,380 --> 01:52:11,460 >> Voi ei, implisiittinen ilmoitus toiminto. 2257 01:52:11,460 --> 01:52:14,080 Tein tﺣ۳mﺣ۳n virheen ennen, no big deal. 2258 01:52:14,080 --> 01:52:18,950 Saanen kirjoita, tai korosta ja kopioida, tﺣ۳smﺣ۳lleen sama toiminto prototyyppi, 2259 01:52:18,950 --> 01:52:21,342 tai allekirjoitus, funktion tﺣ۳ﺣ۳llﺣ۳. 2260 01:52:21,342 --> 01:52:22,800 Tai voisin siirtﺣ۳ﺣ۳ koko toiminto. 2261 01:52:22,800 --> 01:52:23,841 >> Mutta se on vﺣ۳hﺣ۳n laiska. 2262 01:52:23,841 --> 01:52:24,870 Joten emme tee sitﺣ۳. 2263 01:52:24,870 --> 01:52:27,960 Nyt, tehtﺣ۳kﺣﭘﺣﭘn paluu jﺣ۳lleen, piste slash paluu. 2264 01:52:27,960 --> 01:52:32,790 >> x 2. x potenssiin on 4. x 3. x potenssiin on 9. 2265 01:52:32,790 --> 01:52:35,300 Ja toiminto nﺣ۳yttﺣ۳ﺣ۳ Nyt toimivan. 2266 01:52:35,300 --> 01:52:36,550 Joten mitﺣ۳ eroa tﺣ۳ﺣ۳llﺣ۳? 2267 01:52:36,550 --> 01:52:42,520 Olen toiminto, joka kutsutaan neliﺣﭘ, Tﺣ۳ssﺣ۳ tapauksessa, joka laitoin tulo. 2268 01:52:42,520 --> 01:52:43,830 Ja palaan lﺣ۳htﺣﭘ. 2269 01:52:43,830 --> 01:52:46,210 Ja kuitenkin aikaisemmin, jos Avaan toinen esimerkki 2270 01:52:46,210 --> 01:52:51,640 aiemmista, josta oli nimeltﺣ۳ﺣ۳n prototype.c, 2271 01:52:51,640 --> 01:52:54,770 Minulla oli print nimi, joka palasi mitﺣ۳tﺣﭘn, niin sanotusti, 2272 01:52:54,770 --> 01:52:58,730 Tai se palasi mitﺣ۳ﺣ۳n, ja yksinkertaisesti oli sivuvaikutus. 2273 01:52:58,730 --> 01:53:00,230 >> Joten mitﺣ۳ tﺣ۳ﺣ۳llﺣ۳ tapahtuu? 2274 01:53:00,230 --> 01:53:03,520 No, pitﺣ۳vﺣ۳t toiminto saada merkkijono vain hetken. 2275 01:53:03,520 --> 01:53:06,570 Olemme funktiolla saada merkkijono seuraavalla tavalla. 2276 01:53:06,570 --> 01:53:10,464 >> Meillﺣ۳ on ollut tehtﺣ۳vﺣ۳ saada merkkijono, kuten muun muassa CS50.h, 2277 01:53:10,464 --> 01:53:16,624 ovat standardin IO.h, int, tﺣ۳rkein, mitﺣ۳tﺣﭘn. 2278 01:53:16,624 --> 01:53:18,790 Ja sen jﺣ۳lkeen joka kerta olen nimeltﺣ۳ﺣ۳n get merkkijono tﺣ۳hﺣ۳n mennessﺣ۳, 2279 01:53:18,790 --> 01:53:23,260 Olen sanonut jotain, merkkijono s saa saada merkkijono, koska get string-- 2280 01:53:23,260 --> 01:53:27,880 kutsukaamme tﺣ۳tﺣ۳ get.c-- get merkkijono itse palauttaa merkkijonon, joka voin sitten 2281 01:53:27,880 --> 01:53:32,050 kﺣ۳yttﺣ۳ﺣ۳, ja sanoa, hei, pilkku, prosentin s, kenoviiva n, s. 2282 01:53:32,050 --> 01:53:35,660 >> Joten tﺣ۳mﺣ۳ on samaa esimerkkiﺣ۳, todella, ettﺣ۳ meillﺣ۳ oli aikaisemmin. 2283 01:53:35,660 --> 01:53:37,920 Joten merkkijono palauttaa arvon. 2284 01:53:37,920 --> 01:53:41,260 Mutta hetki sitten, print string ei palauta arvoa. 2285 01:53:41,260 --> 01:53:42,721 Se vain on sivuvaikutus. 2286 01:53:42,721 --> 01:53:44,220 Joten tﺣ۳mﺣ۳ on perustavanlaatuinen ero. 2287 01:53:44,220 --> 01:53:46,710 Olemme nﺣ۳hneet eri tyyppisiﺣ۳ toimintoja nyt, 2288 01:53:46,710 --> 01:53:49,490 joista jotkut ovat palanneet arvot, joista jotkut eivﺣ۳t. 2289 01:53:49,490 --> 01:53:51,890 Joten ehkﺣ۳ se on merkkijono, tai int tai float. 2290 01:53:51,890 --> 01:53:53,480 Tai ehkﺣ۳ se on vain mitﺣ۳tﺣﭘn. 2291 01:53:53,480 --> 01:53:55,710 >> Ja ero on ettﺣ۳ nﺣ۳mﺣ۳ toiminnot, jotka 2292 01:53:55,710 --> 01:53:59,940 saada tietoja ja palauttaa arvon todella tuo jotakin takaisin pﺣﭘytﺣ۳ﺣ۳n, 2293 01:53:59,940 --> 01:54:01,110 niin sanoakseni. 2294 01:54:01,110 --> 01:54:03,710 Joten mene eteenpﺣ۳in ja katsokaa yksi viimeinen 2295 01:54:03,710 --> 01:54:09,129 Esimerkkien joka antaa tunteen, nyt on miten voisimme todellakin abstrakti parempi, 2296 01:54:09,129 --> 01:54:11,670 ja paremmin, ja paremmin, tai enemmﺣ۳n, ja enemmﺣ۳n, ja enemmﺣ۳n, jotta 2297 01:54:11,670 --> 01:54:13,810 kirjoittamaan lopulta parempaa koodia. 2298 01:54:13,810 --> 01:54:16,860 Mennﺣ۳ﺣ۳n eteenpﺣ۳in, ja hengessﺣ۳ Scratch, toimi seuraavasti. 2299 01:54:16,860 --> 01:54:21,700 >> Anna minun mennﺣ۳ eteenpﺣ۳in ja sisﺣ۳ltﺣ۳vﺣ۳t CS50.h ja standardi IO.h. 2300 01:54:21,700 --> 01:54:24,010 Anna minun mennﺣ۳ eteenpﺣ۳in ja antaa itse int, tﺣ۳rkein, mitﺣ۳tﺣﭘn. 2301 01:54:24,010 --> 01:54:27,380 Ja anna minun mennﺣ۳ eteenpﺣ۳in, kutsuvat tﺣ۳tﺣ۳ cough.c. 2302 01:54:27,380 --> 01:54:35,510 >> Ja anna minun mennﺣ۳ eteenpﺣ۳in ja vain kuten Scratch, tulostaa yskﺣ۳ / n. 2303 01:54:35,510 --> 01:54:37,170 Ja haluan tehdﺣ۳ tﺣ۳tﺣ۳ kolme kertaa. 2304 01:54:37,170 --> 01:54:39,670 Joten olen tietenkin juuri menossa kopioida ja liittﺣ۳ﺣ۳ kolme kertaa. 2305 01:54:39,670 --> 01:54:46,440 Olen nyt menossa tekemﺣ۳ﺣ۳n yskﺣ۳ piste slash yskﺣ۳. 2306 01:54:46,440 --> 01:54:50,120 Annetaan itse vﺣ۳hﺣ۳n enemmﺣ۳n tilaa tﺣ۳ﺣ۳llﺣ۳, Anna, yskﺣ۳, yskﺣ۳, yskﺣ۳. 2307 01:54:50,120 --> 01:54:53,970 >> On tietysti jo mahdollisuus parantaa. 2308 01:54:53,970 --> 01:54:55,679 Olen kopioida ja liittﺣ۳ﺣ۳ muutaman kerran tﺣ۳nﺣ۳ﺣ۳n. 2309 01:54:55,679 --> 01:54:58,261 Mutta se oli vain niin en tﺣ۳ytyy kirjoittaa niin monta merkkiﺣ۳. 2310 01:54:58,261 --> 01:55:00,250 Olen edelleen muuttaneet nﺣ۳mﺣ۳ riviﺣ۳ koodia ovat. 2311 01:55:00,250 --> 01:55:04,240 >> Nﺣ۳mﺣ۳ kolme riviﺣ۳ ovat samanlaiset, joka tuntuu laiska ja todellakin on, 2312 01:55:04,240 --> 01:55:07,110 ja ei luultavasti ole oikea lﺣ۳hestymistapa. 2313 01:55:07,110 --> 01:55:11,029 Joten mitﺣ۳ ainesosan voisimme parantaa tﺣ۳tﺣ۳ koodia? 2314 01:55:11,029 --> 01:55:12,570 Meillﺣ۳ ei tarvitse kopioida ja liittﺣ۳ﺣ۳ koodin. 2315 01:55:12,570 --> 01:55:15,070 >> Ja tosiaankin, milloin tunnet itse kopioimalla, 2316 01:55:15,070 --> 01:55:17,700 eikﺣ۳ edes muuttuvat koodia, kertoimet ovat olemassa parempi tapa. 2317 01:55:17,700 --> 01:55:19,470 Ja todellakin, siellﺣ۳ on. 2318 01:55:19,470 --> 01:55:22,510 Anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ silmukka, vaikka syntaksi ei ehkﺣ۳ 2319 01:55:22,510 --> 01:55:24,570 tulevat luonnollisesti vielﺣ۳. 2320 01:55:24,570 --> 01:55:29,494 >> Tekemﺣ۳llﺣ۳ tﺣ۳mﺣ۳n kolmesti, yksinkertaisesti tekemﺣ۳llﺣ۳ following-- 2321 01:55:29,494 --> 01:55:31,160 ja satun tietﺣ۳ﺣ۳ tﺣ۳tﺣ۳ kﺣ۳ytﺣ۳ntﺣﭘﺣﭘn. 2322 01:55:31,160 --> 01:55:32,810 Meillﺣ۳ on kuitenkin useita esimerkkejﺣ۳ nyt. 2323 01:55:32,810 --> 01:55:34,950 Ja nﺣ۳et verkossa lisﺣ۳ﺣ۳ viitteitﺣ۳ edelleen. 2324 01:55:34,950 --> 01:55:37,790 >> Tﺣ۳mﺣ۳ on syntaksi rivillﺣ۳ 6, ettﺣ۳ aivan kuten Scratch joka toistuu 2325 01:55:37,790 --> 01:55:40,090 lohko, toista seuraavat kolme kertaa. 2326 01:55:40,090 --> 01:55:41,340 Se on vﺣ۳hﺣ۳n maaginen nyt. 2327 01:55:41,340 --> 01:55:43,050 Mutta tﺣ۳mﺣ۳ saa enemmﺣ۳n, ja tutumpi. 2328 01:55:43,050 --> 01:55:45,050 >> Ja se tulee toistaa line kahdeksan kolme kertaa, 2329 01:55:45,050 --> 01:55:52,390 niin ettﺣ۳ jos olen uudelleen koota make yskﺣ۳, piste slash yskﺣ۳, yskﺣ۳, yskﺣ۳, yskﺣ۳. 2330 01:55:52,390 --> 01:55:54,030 Se toimii edelleen samalla tavalla. 2331 01:55:54,030 --> 01:55:55,550 Niin, ettﺣ۳ kaikki hyvﺣ۳ ja hieno. 2332 01:55:55,550 --> 01:55:58,200 Mutta se ei ole kovin abstracted. 2333 01:55:58,200 --> 01:55:59,371 >> Se on tﺣ۳ysin oikein. 2334 01:55:59,371 --> 01:56:01,370 Mutta se tuntuu siellﺣ۳ voisi olla mahdollisuus, 2335 01:56:01,370 --> 01:56:03,750 kuten maailmassa Scratch, erﺣ۳ﺣ۳nlainen alku 2336 01:56:03,750 --> 01:56:07,530 lisﺣ۳tﺣ۳ muutamia semantiikan tﺣ۳ssﺣ۳ niin, ettﺣ۳ En vain joitakin varten silmukka, 2337 01:56:07,530 --> 01:56:09,867 ja toiminto, jossa lukee yskﺣ۳, vai yskﺣ۳. 2338 01:56:09,867 --> 01:56:10,450 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 2339 01:56:10,450 --> 01:56:12,620 Yritﺣ۳n olla hieman viileﺣ۳mpi kuin, 2340 01:56:12,620 --> 01:56:16,090 ja itse asiassa kirjoittaa funktio, joka on joitakin sivuvaikutuksia, kutsuvat sitﺣ۳ yskﺣ۳. 2341 01:56:16,090 --> 01:56:20,830 >> Ja siinﺣ۳ ei tulo, ja palauttaa mitﺣ۳ﺣ۳n arvoa tuotokseksi. 2342 01:56:20,830 --> 01:56:22,680 Mutta tiedﺣ۳tkﺣﭘ mitﺣ۳ se tekee? 2343 01:56:22,680 --> 01:56:29,370 Se this-- printf, lainaus lainaus, yskﺣ۳. 2344 01:56:29,370 --> 01:56:32,380 >> Ja nyt tﺣ۳ﺣ۳llﺣ۳, aion mennﺣ۳ eteenpﺣ۳in ja int, 2345 01:56:32,380 --> 01:56:36,070 i saa nolla, i alle 3, i plus plus. 2346 01:56:36,070 --> 01:56:39,770 Aion tehdﺣ۳ printf, joka on luultavasti alhainen tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpano 2347 01:56:39,770 --> 01:56:40,270 yksityiskohta. 2348 01:56:40,270 --> 01:56:41,353 En vﺣ۳litﺣ۳ miten yskﺣ۳. 2349 01:56:41,353 --> 01:56:43,240 Haluan vain kﺣ۳yttﺣ۳ﺣ۳ yskﺣ۳ toimintoa. 2350 01:56:43,240 --> 01:56:44,840 Ja olen juuri menossa soittaa yskﺣ۳. 2351 01:56:44,840 --> 01:56:46,204 >> Nyt huomaa kahtiajako. 2352 01:56:46,204 --> 01:56:49,370 Kun soitat toiminto, jos et haluavat antaa sen tuloihin, tﺣ۳ysin hieno. 2353 01:56:49,370 --> 01:56:51,780 Tee avoin paren lﺣ۳hellﺣ۳ paren, ja olet valmis. 2354 01:56:51,780 --> 01:56:56,271 >> Kun mﺣ۳ﺣ۳rittﺣ۳ﺣ۳ funktion, tai julistaa funktion prototyyppi, 2355 01:56:56,271 --> 01:56:58,770 Jos tiedﺣ۳t etukﺣ۳teen se ei ole vie argumentteja, 2356 01:56:58,770 --> 01:57:01,170 sanoa mitﺣ۳tﺣﭘn nﺣ۳issﺣ۳ suluissa siellﺣ۳. 2357 01:57:01,170 --> 01:57:05,660 Ja se tekee, ettﺣ۳ olet ei vahingossa sitﺣ۳ vﺣ۳ﺣ۳rin. 2358 01:57:05,660 --> 01:57:07,020 Anna minun mennﺣ۳ eteenpﺣ۳in ja tehdﺣ۳ yskﺣ۳. 2359 01:57:07,020 --> 01:57:08,540 Ja tietenkin, olen tehnyt virheen. 2360 01:57:08,540 --> 01:57:10,410 >> Dammit, siellﺣ۳ on, ettﺣ۳ implisiittinen ilmoitus. 2361 01:57:10,410 --> 01:57:11,325 Mutta se kﺣ۳y hyvin. 2362 01:57:11,325 --> 01:57:12,590 Se on helppo korjata. 2363 01:57:12,590 --> 01:57:18,240 Tarvitsen vain prototyyppi ylempﺣ۳nﺣ۳ minun tiedosto kuin olen todellisuudessa kﺣ۳yttﺣ۳vﺣ۳t sitﺣ۳. 2364 01:57:18,240 --> 01:57:20,070 >> Joten nyt tehtﺣ۳kﺣﭘﺣﭘn yskﺣ۳ taas mukava. 2365 01:57:20,070 --> 01:57:20,790 Nyt se toimii. 2366 01:57:20,790 --> 01:57:22,930 Tee yskﺣ۳, yskﺣ۳, yskﺣ۳, yskﺣ۳. 2367 01:57:22,930 --> 01:57:25,930 Joten voisi ajatella, ettﺣ۳ olemme todella runsaat insinﺣﭘﺣﭘrin tﺣ۳tﺣ۳ ongelmaa. 2368 01:57:25,930 --> 01:57:26,763 Ja todellakin, me olemme. 2369 01:57:26,763 --> 01:57:28,870 Tﺣ۳mﺣ۳ ei ole hyvﺣ۳ ehdokas ohjelman 2370 01:57:28,870 --> 01:57:31,930 kategoriassa refaktorointi, ja tekee mitﺣ۳ 2371 01:57:31,930 --> 01:57:35,645 nimeltﺣ۳ﺣ۳n hierarkkinen hajoaminen, jos otat koodia, ja sitten 2372 01:57:35,645 --> 01:57:38,790 te sellainen tekijﺣ۳ asioita, niin kuin syyksi enemmﺣ۳n semantiikka heille 2373 01:57:38,790 --> 01:57:40,930 ja kﺣ۳yttﺣ۳ﺣ۳ sitﺣ۳ lopulta pitkﺣ۳llﺣ۳ aikavﺣ۳lillﺣ۳. 2374 01:57:40,930 --> 01:57:43,490 Mutta se on rakennuspalikka kohti kehittyneempiﺣ۳ ohjelmia 2375 01:57:43,490 --> 01:57:45,600 ettﺣ۳ aloitamme kirjallisesti ennen pitkﺣ۳ﺣ۳, ettﺣ۳ 2376 01:57:45,600 --> 01:57:50,090 antaa meille mahdollisuuden sanastoa jolla kirjoittamaan parempaa koodia. 2377 01:57:50,090 --> 01:57:52,920 Ja todellakin, katsotaanpa jos voi yleistﺣ۳ﺣ۳ tﺣ۳tﺣ۳ pidemmﺣ۳lle. 2378 01:57:52,920 --> 01:57:57,984 >> Se tuntuu hieman ontuva, ettﺣ۳ minﺣ۳, tﺣ۳rkein, tarvitse huolehtia tﺣ۳stﺣ۳ hiton silmukka, 2379 01:57:57,984 --> 01:57:59,400 ja kutsuvan yskﺣ۳ uudestaan ﻗ€‹ﻗ€‹ja uudestaan. 2380 01:57:59,400 --> 01:58:03,050 Miksi en voi vain kertoa yskﺣ۳, ota yskﺣ۳ kolme kertaa? 2381 01:58:03,050 --> 01:58:08,170 Toisin sanoen, miksi en voi vain antaa panos yskﺣ۳ ja tehdﺣ۳ tﺣ۳mﺣ۳n? 2382 01:58:08,170 --> 01:58:11,270 >> Miksi en voi vain sanoa, vuonna Tﺣ۳rkein yskﺣ۳ kolme kertaa. 2383 01:58:11,270 --> 01:58:13,150 Ja nyt, tﺣ۳mﺣ۳ on tavallaan maaginen. 2384 01:58:13,150 --> 01:58:14,540 Se on hyvin iteratiivinen tﺣ۳ﺣ۳llﺣ۳. 2385 01:58:14,540 --> 01:58:15,940 Ja se on, todellakin, vauva askel. 2386 01:58:15,940 --> 01:58:19,250 >> Mutta juuri kyky sanoa rivi kahdeksan, yskﺣ۳ kolme kertaa, 2387 01:58:19,250 --> 01:58:20,730 se on vain niin paljon enemmﺣ۳n luettavaa. 2388 01:58:20,730 --> 01:58:24,210 Ja plus, en tarvitse tietﺣ۳ﺣ۳ tai vﺣ۳litﺣ۳ kuinka yskﺣ۳ on toteutettu. 2389 01:58:24,210 --> 01:58:26,460 Ja todellakin, myﺣﭘhemmin termi ja opinnﺣ۳ytetﺣﭘiden, 2390 01:58:26,460 --> 01:58:29,150 Jos puuttua projektin luokkatoveri tai kaksi luokkatoverit, 2391 01:58:29,150 --> 01:58:32,370 huomaat, ettﺣ۳ olet menossa on, tai haluat, jakaa tyﺣﭘ. 2392 01:58:32,370 --> 01:58:34,650 >> Ja olet menossa haluavat pﺣ۳ﺣ۳ttﺣ۳ﺣ۳ etukﺣ۳teen, kuka tekee mitﺣ۳, 2393 01:58:34,650 --> 01:58:35,483 ja jossa kappaleet? 2394 01:58:35,483 --> 01:58:37,520 Ja eikﺣﭘ olisi mukavaa Jos esimerkiksi 2395 01:58:37,520 --> 01:58:40,100 huolehtia kirjoittamisen tﺣ۳rkein, tehty. 2396 01:58:40,100 --> 01:58:43,470 Ja kﺣ۳mppﺣ۳kaveri, tai kumppani yleisemmin 2397 01:58:43,470 --> 01:58:45,230 huolehtii tﺣ۳ytﺣ۳ntﺣﭘﺣﭘnpanon yskﺣ۳. 2398 01:58:45,230 --> 01:58:49,540 >> Ja tﺣ۳mﺣ۳ jako, nﺣ۳mﺣ۳ seinﺣ۳t abstraktio, 2399 01:58:49,540 --> 01:58:52,310 tai kerrosten abstraktio jos te, ovat erittﺣ۳in tehokkaita, 2400 01:58:52,310 --> 01:58:55,480 koska erityisesti suurempien, monimutkaisempia ohjelmia ja jﺣ۳rjestelmiﺣ۳, 2401 01:58:55,480 --> 01:59:00,070 se mahdollistaa useiden ihmisiﺣ۳ rakentamaan asioita yhdessﺣ۳, ja lopulta 2402 01:59:00,070 --> 01:59:02,680 ommel tyﺣﭘnsﺣ۳ yhteen tﺣ۳llﺣ۳ tavalla. 2403 01:59:02,680 --> 01:59:05,332 Mutta tietenkin, me tﺣ۳ytyy nyt korjata yskﺣ۳. 2404 01:59:05,332 --> 01:59:07,290 Meidﺣ۳n tﺣ۳ytyy kertoa yskﺣ۳ ettﺣ۳, hei, tiedﺣ۳tkﺣﭘ mitﺣ۳? 2405 01:59:07,290 --> 01:59:11,230 Olet menossa tarvitse ottaa input-- niin ei mitﺣ۳tﺣﭘn, mutta int ja nyt. 2406 01:59:11,230 --> 01:59:15,170 Mennﺣ۳ﺣ۳n eteenpﺣ۳in ja panna yskﺣ۳ int. i saa nolla. 2407 01:59:15,170 --> 01:59:16,890 >> i on pienempi kuin se, kuinka monta kertaa. 2408 01:59:16,890 --> 01:59:18,550 Sanoin kolme aiemmin. 2409 01:59:18,550 --> 01:59:20,420 Mutta se ei ole mitﺣ۳ haluan. 2410 01:59:20,420 --> 01:59:25,520 En halua yskﺣ۳ voidaan yleistﺣ۳ﺣ۳ tukea mitﺣ۳ tahansa mﺣ۳ﺣ۳rﺣ۳ﺣ۳ toistojen. 2411 01:59:25,520 --> 01:59:28,800 >> Joten, todellakin, se on n ettﺣ۳ haluan, mitﺣ۳ kﺣ۳yttﺣ۳jﺣ۳ kertoo minulle. 2412 01:59:28,800 --> 01:59:31,620 Nyt voin mennﺣ۳ eteenpﺣ۳in ja sanoa tulostaa yskﺣ۳. 2413 01:59:31,620 --> 01:59:34,750 Ja mitﺣ۳ numero kﺣ۳yttﺣ۳jﺣ۳ kulkee, 2414 01:59:34,750 --> 01:59:36,890 Aion kerrata, ettﺣ۳ monta kertaa. 2415 01:59:36,890 --> 01:59:39,160 >> Joten lopussa pﺣ۳ivﺣ۳, Ohjelma on sama. 2416 01:59:39,160 --> 01:59:42,820 Mutta huomaa kaikki tﺣ۳tﺣ۳ kamaa voisi olla jopa toiseen tiedostoon. 2417 01:59:42,820 --> 01:59:45,620 Itse asiassa en tiedﺣ۳ tﺣ۳llﺣ۳ hetki miten printf toteutetaan. 2418 01:59:45,620 --> 01:59:47,980 >> En tiedﺣ۳ tﺣ۳llﺣ۳ hetkellﺣ۳, miten saada string, tai saada int, tai saada kellua 2419 01:59:47,980 --> 01:59:48,646 pannaan tﺣ۳ytﺣ۳ntﺣﭘﺣﭘn. 2420 01:59:48,646 --> 01:59:50,930 Ja en halua nﺣ۳hdﺣ۳ niitﺣ۳ tietokoneen nﺣ۳ytﺣﭘllﺣ۳. 2421 01:59:50,930 --> 01:59:55,320 Koska se on, olen alkanut keskittyﺣ۳ minun ohjelma, eikﺣ۳ nﺣ۳itﺣ۳ tehtﺣ۳viﺣ۳. 2422 01:59:55,320 --> 01:59:59,070 >> Ja niin, todellakin, heti kun Aloita factoring koodi nﺣ۳in ulos, 2423 01:59:59,070 --> 02:00:01,397 voisimme jopa siirtﺣ۳ﺣ۳ yskﺣ۳ erilliseen tiedostoon? 2424 02:00:01,397 --> 02:00:02,730 Joku voisi toteuttaa sitﺣ۳. 2425 02:00:02,730 --> 02:00:06,810 Ja sinun ja ohjelma tulee hyvin kaunis, ja hyvin luettavissa, 2426 02:00:06,810 --> 02:00:10,830 luultavasti, todella neljﺣ۳ line-ohjelma oikeassa. 2427 02:00:10,830 --> 02:00:13,510 >> Joten mene eteenpﺣ۳in nyt ja vielﺣ۳ yksi muutos. 2428 02:00:13,510 --> 02:00:16,180 Huomaa, ettﺣ۳ minun prototyyppi on vaihtaa ylﺣﭘs. 2429 02:00:16,180 --> 02:00:18,390 Haluan siis korjata, ettﺣ۳ niin En saa huusi. 2430 02:00:18,390 --> 02:00:22,580 >> Tee yskﺣ۳, minﺣ۳ juoksen yskﺣ۳ kerran enemmﺣ۳n, edelleen tehdﺣ۳ sama asia. 2431 02:00:22,580 --> 02:00:26,010 Mutta nyt huomaa meillﺣ۳ on ainesosa yksi lopullinen versio. 2432 02:00:26,010 --> 02:00:26,940 Tiedﺣ۳tkﺣﭘ mitﺣ۳? 2433 02:00:26,940 --> 02:00:29,040 En halua vain yskﺣ۳, vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳. 2434 02:00:29,040 --> 02:00:30,802 Haluan olla jotain yleisempﺣ۳ﺣ۳. 2435 02:00:30,802 --> 02:00:31,510 Joten tiedﺣ۳tkﺣﭘ mitﺣ۳? 2436 02:00:31,510 --> 02:00:32,450 En halua tehdﺣ۳ tﺣ۳tﺣ۳. 2437 02:00:32,450 --> 02:00:37,140 Haluan olla, aivan kuten Scratch ei, sanoa lohko, mutta ei pelkﺣ۳stﺣ۳ﺣ۳n 2438 02:00:37,140 --> 02:00:38,680 sanoa jotain muutamia kertoja. 2439 02:00:38,680 --> 02:00:41,510 Haluan sen sanoa hyvin erityinen merkkijono. 2440 02:00:41,510 --> 02:00:43,850 Ja siksi en haluavat sen vain sanoa yskﺣ۳. 2441 02:00:43,850 --> 02:00:47,660 Haluan sen sanoa mitﺣ۳ tahansa merkkijono johdetaan. 2442 02:00:47,660 --> 02:00:49,960 >> Joten huomata, olen yleistynyt tﺣ۳mﺣ۳ niin, ettﺣ۳ nyt 2443 02:00:49,960 --> 02:00:53,110 vaikkapa tuntuu hyvﺣ۳ltﺣ۳ nimi Tﺣ۳mﺣ۳n, kuten Scratch, 2444 02:00:53,110 --> 02:00:55,530 ottaa kaksi argumenttia, toisin Scratch. 2445 02:00:55,530 --> 02:00:56,570 Yksi on merkkijono. 2446 02:00:56,570 --> 02:00:57,300 Yksi on int. 2447 02:00:57,300 --> 02:00:58,130 >> Ja voisin vaihtaa niitﺣ۳. 2448 02:00:58,130 --> 02:01:00,713 Olen juuri sellainen kuin ajatus sanoa merkkijono ensin, ja sitten 2449 02:01:00,713 --> 02:01:01,940 kuinka monta kertaa myﺣﭘhemmin. 2450 02:01:01,940 --> 02:01:03,970 Void tarkoittaa sitﺣ۳ vielﺣ۳ ei palaa mitﺣ۳ﺣ۳n. 2451 02:01:03,970 --> 02:01:06,428 Nﺣ۳mﺣ۳ ovat vain visuaalinen puoli vaikutuksia, kuten kanssa [? Jordan,?] 2452 02:01:06,428 --> 02:01:08,240 sanallinen sivuvaikutus huutaa. 2453 02:01:08,240 --> 02:01:12,630 Se kuitenkin tekee jotain n kertaa, 0 asti, mutta ei yhtﺣ۳ suuri kuin n. 2454 02:01:12,630 --> 02:01:14,540 Tﺣ۳mﺣ۳ tarkoittaa n koko kertaa. 2455 02:01:14,540 --> 02:01:16,540 Ja sitten vain tulostaa mitﺣ۳ se merkkijono on. 2456 02:01:16,540 --> 02:01:19,060 Joten olen todella yleistynyt koodirivin. 2457 02:01:19,060 --> 02:01:22,460 Joten nyt, miten voin toteuttaa yskﺣ۳ toiminto? 2458 02:01:22,460 --> 02:01:25,520 >> Voin tehdﺣ۳ mitﺣ۳tﺣﭘn yskﺣ۳. 2459 02:01:25,520 --> 02:01:28,501 Ja voin silti ottaa miten monta kertaa haluat yskﺣ۳. 2460 02:01:28,501 --> 02:01:29,250 Mutta tiedﺣ۳tkﺣﭘ mitﺣ۳? 2461 02:01:29,250 --> 02:01:31,240 Voin nyt punt sanoa. 2462 02:01:31,240 --> 02:01:36,540 >> Voin soittaa sanoa kanssa sana yskﺣ۳, kulkee n. 2463 02:01:36,540 --> 02:01:40,410 Ja jos haluan myﺣﭘs toteuttaa, vain huvin vuoksi, aivastus funktio, 2464 02:01:40,410 --> 02:01:42,290 Voin sneeze joitakin kertoja. 2465 02:01:42,290 --> 02:01:47,300 Ja voin pitﺣ۳ﺣ۳ uudelleenkﺣ۳yttﺣﭘ n, koska huomaa, ettﺣ۳ m tﺣ۳ssﺣ۳ yhteydessﺣ۳ tai laajuus 2466 02:01:47,300 --> 02:01:49,470 on olemassa vain tﺣ۳mﺣ۳n toiminnon. 2467 02:01:49,470 --> 02:01:52,767 >> Ja n tﺣ۳ssﺣ۳ yhteydessﺣ۳ vain vallitsee tﺣ۳tﺣ۳ toimintoa tﺣ۳ﺣ۳llﺣ۳. 2468 02:01:52,767 --> 02:01:54,600 Joten me palaamme nﺣ۳itﺣ۳ kysymyksiﺣ۳ soveltamisalan. 2469 02:01:54,600 --> 02:02:01,160 Ja tﺣ۳ssﺣ۳, olen juuri menossa sanoa, Achoo, ja sitten n kertaa, puolipisteellﺣ۳. 2470 02:02:01,160 --> 02:02:04,340 >> Ja nyt, minﺣ۳ vain tﺣ۳ytyy lainata nﺣ۳mﺣ۳ toiminnot allekirjoitukset tﺣ۳ﺣ۳llﺣ۳. 2471 02:02:04,340 --> 02:02:06,290 Joten yskﺣ۳ on oikea. 2472 02:02:06,290 --> 02:02:10,090 Void aivastus on oikea nyt. 2473 02:02:10,090 --> 02:02:12,390 >> Ja olen edelleen tﺣ۳ytyy vain sanoa. 2474 02:02:12,390 --> 02:02:18,990 Joten aion sanoa, vaikkapa string s, int n, puolipisteellﺣ۳. 2475 02:02:18,990 --> 02:02:22,010 Joten olen yli-suunnitelleet pahus pois tﺣ۳stﺣ۳ ohjelmasta. 2476 02:02:22,010 --> 02:02:23,760 >> Ja tﺣ۳mﺣ۳ ei vﺣ۳lttﺣ۳mﺣ۳ttﺣ۳ tarkoita tﺣ۳mﺣ۳ on 2477 02:02:23,760 --> 02:02:26,343 mitﺣ۳ pitﺣ۳isi tehdﺣ۳, kun kirjallinen edes yksinkertaisimpia ohjelmia. 2478 02:02:26,343 --> 02:02:29,280 Ota jotain, joka on ilmeisesti todella yksinkertainen, todella lyhyt, 2479 02:02:29,280 --> 02:02:31,800 ja uudelleen toteuttaa se kﺣ۳yttﺣ۳mﺣ۳llﺣ۳ aivan liikaa koodia. 2480 02:02:31,800 --> 02:02:34,560 Mutta voit itse nﺣ۳hdﺣ۳ ja aika muistella nﺣ۳itﺣ۳ esimerkkejﺣ۳, 2481 02:02:34,560 --> 02:02:38,610 ja ymmﺣ۳rtﺣ۳ﺣ۳,, oi, ne ovat vaiheet otimme todella yleistﺣ۳ﺣ۳, 2482 02:02:38,610 --> 02:02:40,797 tekijﺣ۳ jotain, kunnes lopussa pﺣ۳ivﺣ۳n 2483 02:02:40,797 --> 02:02:42,380 minun koodi on oikeastaan ﻗ€‹ﻗ€‹aika kohtuullinen. 2484 02:02:42,380 --> 02:02:45,960 Koska jos Haluan yskﺣ۳ kolme ajat sitten aivastaa kolme kertaa, 2485 02:02:45,960 --> 02:02:50,420 En yksinkertaisesti menossa uusintana tﺣ۳mﺣ۳n, ohjelma tehdﺣ۳ yskﺣ۳, ja suorita yskﺣ۳. 2486 02:02:50,420 --> 02:02:53,620 Ja minulla on kolme yskﺣ۳ﺣ۳ ja kolme aivastaa. 2487 02:02:53,620 --> 02:02:55,990 >> Ja niin tﺣ۳mﺣ۳ on perus paradigma, jos haluatte, 2488 02:02:55,990 --> 02:03:00,110 kuinka voisimme edetﺣ۳ todella toteuttaa ohjelmaa. 2489 02:03:00,110 --> 02:03:03,220 Mutta Haluan vain nﺣ۳hdﺣ۳ nyt, mikﺣ۳ on olemme tehneet kaiken tﺣ۳mﺣ۳n ajan, 2490 02:03:03,220 --> 02:03:06,940 ja mitﺣ۳ jotkut lopullista kappaletta ovat tﺣ۳mﺣ۳n takana yksinkertaisen komennon. 2491 02:03:06,940 --> 02:03:09,620 Lopussa pﺣ۳ivﺣ۳n, olemme kﺣ۳yttﺣ۳nyt Clang meidﺣ۳n kﺣ۳ﺣ۳ntﺣ۳jﺣ۳. 2492 02:03:09,620 --> 02:03:11,494 Olemme kirjallisesti lﺣ۳hde koodi, muuttaen sen 2493 02:03:11,494 --> 02:03:12,820 kautta Clang konekielelle. 2494 02:03:12,820 --> 02:03:15,540 >> Ja olemme kﺣ۳yttﺣ۳neet tehdﺣ۳ vain helpottaa meidﺣ۳n nﺣ۳ppﺣ۳imistﺣﭘn niin 2495 02:03:15,540 --> 02:03:20,740 ettﺣ۳ meidﺣ۳n ei tarvitse muistaa ne loitsut of Clang itse. 2496 02:03:20,740 --> 02:03:22,640 Mutta mikﺣ۳ on tehdﺣ۳ todella tekee? 2497 02:03:22,640 --> 02:03:24,750 Ja puolestaan ﻗ€‹ﻗ€‹mitﺣ۳ on Kalahtaa todella tekee? 2498 02:03:24,750 --> 02:03:28,790 >> On kﺣ۳ynyt ilmi, vaikka olemme yksinkertaistettu tﺣ۳mﺣ۳npﺣ۳ivﺣ۳isessﺣ۳ keskustelussa sanomalla, 2499 02:03:28,790 --> 02:03:33,090 otat lﺣ۳hdekoodia, siirtﺣ۳ﺣ۳ sen tulona kﺣ۳ﺣ۳ntﺣ۳jﺣ۳, joka antaa sinulle 2500 02:03:33,090 --> 02:03:35,750 tuotos koneen koodi kﺣ۳ﺣ۳ntyy siellﺣ۳ n 2501 02:03:35,750 --> 02:03:37,420 muutamia eri vaiheita sisﺣ۳llﺣ۳ siellﺣ۳. 2502 02:03:37,420 --> 02:03:41,940 Ja kokoaminen sattuu olemaan sateenvarjo termi koko joukko vaiheita. 2503 02:03:41,940 --> 02:03:43,970 Mutta Haluan vain kiusaa tﺣ۳tﺣ۳ todella nopeasti. 2504 02:03:43,970 --> 02:03:48,070 >> On kﺣ۳ynyt ilmi, ettﺣ۳ olemme tehneet enemmﺣ۳n asioita joka kerta kun kﺣ۳ynnistﺣ۳ﺣ۳ ohjelman 2505 02:03:48,070 --> 02:03:50,990 tai joka kerta kun kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ ohjelmaa tﺣ۳nﺣ۳ﺣ۳n. 2506 02:03:50,990 --> 02:03:55,020 Niin esikﺣ۳sittelyyn viittaa this-- mitﺣ۳ﺣ۳n C-ohjelma, 2507 02:03:55,020 --> 02:03:58,720 kuten nﺣ۳emme uudelleen ja uudelleen, joka alkaa tﺣ۳mﺣ۳n hash symboli, 2508 02:03:58,720 --> 02:04:03,320 tai hashtagin symboli tﺣ۳ﺣ۳llﺣ۳, merkitsee se on esikﺣ۳sittelijﺣ۳ﺣ۳n direktiivi. 2509 02:04:03,320 --> 02:04:07,330 Tﺣ۳mﺣ۳ tarkoittaa tﺣ۳ssﺣ۳ tapauksessa, hei tietokone, tehdﺣ۳ jotain tﺣ۳mﺣ۳n tiedoston 2510 02:04:07,330 --> 02:04:09,430 ennen kuin itse koota oman koodin. 2511 02:04:09,430 --> 02:04:15,220 >> Tﺣ۳ssﺣ۳ tapauksessa hash sisﺣ۳ltﺣ۳vﺣ۳t sanoen, pohjimmiltaan, C tapa sanoa, 2512 02:04:15,220 --> 02:04:19,325 hei tietokone, mene saada sisﺣ۳ltﺣﭘﺣ۳ of CS50.h ja liittﺣ۳ﺣ۳ ne tﺣ۳ﺣ۳llﺣ۳. 2513 02:04:19,325 --> 02:04:22,170 Hei tietokone, mene saada sisﺣ۳llﺣﭘstﺣ۳ standardin IO.h, 2514 02:04:22,170 --> 02:04:24,690 aina kun se on sen kiintolevy, liitﺣ۳ se tﺣ۳hﺣ۳n. 2515 02:04:24,690 --> 02:04:27,390 Joten ne asioita tapahtuu Ensimmﺣ۳inen aikana esikﺣ۳sittely. 2516 02:04:27,390 --> 02:04:28,880 >> Ja Clang tekee kaiken tﺣ۳mﺣ۳n meille. 2517 02:04:28,880 --> 02:04:30,510 Ja se tekee sen niin hiton nopea, et edes 2518 02:04:30,510 --> 02:04:32,000 katso neljﺣ۳ erillistﺣ۳ asioita tapahtuu. 2519 02:04:32,000 --> 02:04:34,100 Mutta se ensimmﺣ۳inen tﺣ۳llainen askel. 2520 02:04:34,100 --> 02:04:35,560 >> Mitﺣ۳ oikeastaan ﻗ€‹ﻗ€‹tapahtuu? 2521 02:04:35,560 --> 02:04:38,320 No, seuraava virallinen vaihe on koota. 2522 02:04:38,320 --> 02:04:40,385 Ja kﺣ۳y ilmi, ettﺣ۳ ohjelmaa koostettaessa 2523 02:04:40,385 --> 02:04:44,060 teknisesti tarkoittaa menee lﺣ۳hdekoodi, tavaraa olemme 2524 02:04:44,060 --> 02:04:47,890 kirjoittanut tﺣ۳nﺣ۳ﺣ۳n, jotain nimeltﺣ۳ﺣ۳n assembly, jotain 2525 02:04:47,890 --> 02:04:49,260 joka nﺣ۳yttﺣ۳ﺣ۳ hieman erilainen. 2526 02:04:49,260 --> 02:04:51,050 >> Ja itse asiassa, voimme nﺣ۳hdﺣ۳ tﺣ۳mﺣ۳n todella nopeasti. 2527 02:04:51,050 --> 02:04:53,890 Anna minun itse mennﺣ۳ minun IDE. 2528 02:04:53,890 --> 02:04:58,050 Anna minun mennﺣ۳ eteenpﺣ۳in ja avoin hello.c, joka on ensimmﺣ۳inen ohjelma, jota 2529 02:04:58,050 --> 02:04:59,120 alkoi tﺣ۳nﺣ۳ﺣ۳n. 2530 02:04:59,120 --> 02:05:04,130 Ja anna minun mennﺣ۳ eteenpﺣ۳in ja ajaa Clang hieman eri tavalla, Clang-s, hello.c, 2531 02:05:04,130 --> 02:05:07,720 joka on todella aikoo anna minulle toinen tiedosto hello.s. 2532 02:05:07,720 --> 02:05:10,330 >> Ja me luultavasti koskaan jﺣ۳lleen nﺣ۳hdﺣ۳ tﺣ۳llaista koodia. 2533 02:05:10,330 --> 02:05:13,030 Jos ottaa alemmalla tasolla jﺣ۳rjestelmﺣ۳t luokan kuten CS61, 2534 02:05:13,030 --> 02:05:14,920 nﺣ۳et paljon enemmﺣ۳n Tﺣ۳llaisen koodin. 2535 02:05:14,920 --> 02:05:17,020 Mutta tﺣ۳mﺣ۳ on konekielellﺣ۳. 2536 02:05:17,020 --> 02:05:22,050 Tﺣ۳mﺣ۳ on X86 konekielellﺣ۳ ettﺣ۳ CPU, joka on taustalla 2537 02:05:22,050 --> 02:05:24,460 CS50 IDE todella ymmﺣ۳rtﺣ۳ﺣ۳. 2538 02:05:24,460 --> 02:05:27,060 >> Ja arvoituksellinen kuin se katso, se on jotain 2539 02:05:27,060 --> 02:05:29,180 tietokone ymmﺣ۳rtﺣ۳ﺣ۳ melko hyvin. 2540 02:05:29,180 --> 02:05:30,790 Sub q, tﺣ۳mﺣ۳ on vﺣ۳hennﺣ۳. 2541 02:05:30,790 --> 02:05:31,660 On liikkeitﺣ۳. 2542 02:05:31,660 --> 02:05:35,730 >> Siellﺣ۳ soittaa toimintoja tﺣ۳ﺣ۳llﺣ۳, x Oring, liike, lisﺣ۳osa, pop, 2543 02:05:35,730 --> 02:05:36,430 paluuta. 2544 02:05:36,430 --> 02:05:38,850 Joten on joitakin hyvin alhainen ohjeet 2545 02:05:38,850 --> 02:05:41,280 ettﺣ۳ suorittimia ymmﺣ۳rtﺣ۳ﺣ۳, ettﺣ۳ Viittasin aikaisemmin. 2546 02:05:41,280 --> 02:05:43,100 Juuri Intel Inside. 2547 02:05:43,100 --> 02:05:45,030 >> On malleja nollia ja ykkﺣﭘsiﺣ۳, jotka 2548 02:05:45,030 --> 02:05:51,800 karttaa nﺣ۳ihin arcanely muotoiltu, mutta jokseenkin hyvin nimetty, ohjeet, 2549 02:05:51,800 --> 02:05:52,780 niin sanoakseni. 2550 02:05:52,780 --> 02:05:54,780 Tﺣ۳mﺣ۳ on mitﺣ۳ tapahtuu, kun te kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ koodia. 2551 02:05:54,780 --> 02:05:58,560 Saat kokoonpano kieli ulos siitﺣ۳, mikﺣ۳ 2552 02:05:58,560 --> 02:06:04,680 tarkoittaa, ettﺣ۳ kolmas vaihe on koota ettﺣ۳ kokoonpano koodin, lopulta, 2553 02:06:04,680 --> 02:06:09,080 kone code-- nollia ja ykkﺣﭘsiﺣ۳, eikﺣ۳ tekstissﺣ۳, josta juuri nﺣ۳hnyt hetki sitten. 2554 02:06:09,080 --> 02:06:13,370 >> Joten esikﺣ۳sittelyﺣ۳ ei joka lﺣﭘytﺣ۳ﺣ۳ ja korvaa, ja muutamia muita asioita. 2555 02:06:13,370 --> 02:06:16,430 Kﺣ۳ﺣ۳ntﺣ۳minen vie lﺣ۳hde koodi C, lﺣ۳hdekoodi 2556 02:06:16,430 --> 02:06:18,980 ettﺣ۳ me kirjoitti, kokoonpano koodi, joka me vain vilkaisi. 2557 02:06:18,980 --> 02:06:22,170 Kokoaminen vie ettﺣ۳ kokoonpano koodi nollia ja ykkﺣﭘsiﺣ۳ 2558 02:06:22,170 --> 02:06:24,680 ettﺣ۳ CPU todella ymmﺣ۳rtﺣ۳ﺣ۳ lopussa pﺣ۳ivﺣ۳n. 2559 02:06:24,680 --> 02:06:27,630 Ja linkittﺣ۳minen on viimeinen vaihe ettﺣ۳ tapahtuu us-- uudelleen, 2560 02:06:27,630 --> 02:06:29,830 niin nopeasti emme edes notice-- joka sanoo, 2561 02:06:29,830 --> 02:06:32,460 hei tietokone, ottaa kaikki nollat ﻗ€‹ﻗ€‹ja ne, jotka 2562 02:06:32,460 --> 02:06:36,750 johtui kokoamisessa Daavidin koodia, ja hﺣ۳nen pﺣ۳ﺣ۳asiallinen tehtﺣ۳vﺣ۳ tﺣ۳ssﺣ۳ tapauksessa. 2563 02:06:36,750 --> 02:06:39,160 >> Ja hei tietokone, mene saada kaikki nollat ﻗ€‹ﻗ€‹ja ykkﺣﭘset 2564 02:06:39,160 --> 02:06:42,180 ettﺣ۳ CS50 henkilﺣﭘstﺣﭘ kirjoitti sisﺣ۳llﺣ۳ CS50 kirjasto. 2565 02:06:42,180 --> 02:06:43,440 Sekoita ne sisﺣ۳ﺣ۳n Daavidin. 2566 02:06:43,440 --> 02:06:46,648 Ja hei tietokone, mene saada kaikki nollat ja ne, jotka joku muu kirjoitti vuotta 2567 02:06:46,648 --> 02:06:47,470 sitten varten printf. 2568 02:06:47,470 --> 02:06:49,880 Ja lisﺣ۳tﺣ۳ ne osaksi koko asia, joten olemme 2569 02:06:49,880 --> 02:06:52,870 sain nollia ja ykkﺣﭘsiﺣ۳, The CS50 henkilﺣﭘstﺣﭘn nollia ja ykkﺣﭘsiﺣ۳, 2570 02:06:52,870 --> 02:06:55,370 printf nollia ja ykkﺣﭘsiﺣ۳, ja mitﺣ۳ﺣ۳n muuta kﺣ۳ytﺣ۳mme. 2571 02:06:55,370 --> 02:07:00,410 >> He kaikki saavat yhdistetﺣ۳ﺣ۳n yhdeksi ohjelmaa nimeltﺣ۳, tﺣ۳ssﺣ۳ tapauksessa, hei. 2572 02:07:00,410 --> 02:07:03,141 Joten tﺣ۳stﺣ۳ lﺣ۳htien, me vain kﺣ۳yttﺣ۳ﺣ۳ sanaa kokoamiseen. 2573 02:07:03,141 --> 02:07:06,390 Ja otamme selvﺣ۳nﺣ۳, ettﺣ۳ kun sanomme, kﺣ۳ﺣ۳ntﺣ۳ﺣ۳ ohjelma, se tarkoittaa, 2574 02:07:06,390 --> 02:07:08,849 hei tehdﺣ۳ esikﺣ۳sittelyﺣ۳, kokoonpano, ja yhdistﺣ۳ﺣ۳. 2575 02:07:08,849 --> 02:07:11,890 Mutta on todella jokin mehukas tavaraa siellﺣ۳ tapahtuu alla huppu. 2576 02:07:11,890 --> 02:07:13,723 Ja varsinkin jos saada utelias jonkin aikaa, 2577 02:07:13,723 --> 02:07:15,900 voit alkaa tﺣﭘnﺣ۳isi noin tﺣ۳llﺣ۳ alhaisemmalla tasolla. 2578 02:07:15,900 --> 02:07:19,660 Mutta nyt, ymmﺣ۳rtﺣ۳ﺣ۳, ettﺣ۳ joukossa takeaways tﺣ۳nﺣ۳ﺣ۳n 2579 02:07:19,660 --> 02:07:23,420 ovat yksinkertaisesti alkaa prosessi, 2580 02:07:23,420 --> 02:07:26,700 saada mukava jotain Hello World. 2581 02:07:26,700 --> 02:07:29,575 Itse asiassa suurin osa mitﺣ۳ teimme tﺣ۳nﺣ۳ﺣ۳n ei varmasti uppoavat huippunopea. 2582 02:07:29,575 --> 02:07:31,491 Ja kestﺣ۳ﺣ۳ jonkin aika, ja jotkut kﺣ۳ytﺣ۳ntﺣﭘ. 2583 02:07:31,491 --> 02:07:33,864 Ja kertoimet ovat, sinun tulee lajitella of haluat lyﺣﭘdﺣ۳ nﺣ۳ppﺣ۳imistﺣﭘn 2584 02:07:33,864 --> 02:07:34,780 tai huutaa nﺣ۳yttﺣﭘﺣ۳. 2585 02:07:34,780 --> 02:07:35,880 Ja kaikki tﺣ۳mﺣ۳ on OK. 2586 02:07:35,880 --> 02:07:38,320 Tosin ehkﺣ۳ yritﺣ۳ tee se kirjastossa niin paljon. 2587 02:07:38,320 --> 02:07:40,820 >> Ja lopulta, luultavasti olisi voinut kuitenkin, aloittaa 2588 02:07:40,820 --> 02:07:44,580 nﺣ۳hdﺣ۳ kuvioita, niin hyvﺣ۳ﺣ۳ koodia ettﺣ۳ olet kirjoittanut ja virheitﺣ۳ 2589 02:07:44,580 --> 02:07:45,370 ettﺣ۳ olet tehnyt. 2590 02:07:45,370 --> 02:07:48,965 Ja paljon kuin prosessin tulossa TF tai CA on kuin, 2591 02:07:48,965 --> 02:07:51,590 voit alkaa saada paremmin ja paremmin nﺣ۳kemﺣ۳ﺣ۳n nﺣ۳itﺣ۳ kuvioita, 2592 02:07:51,590 --> 02:07:53,774 ja vain ratkaisemaan omat ongelmansa lopulta. 2593 02:07:53,774 --> 02:07:56,940 Tﺣ۳llﺣ۳ vﺣ۳lin tulee olemaan runsaasti meistﺣ۳ antamaan sinulle tukea ja painukaa 2594 02:07:56,940 --> 02:07:57,481 tﺣ۳mﺣ۳n lﺣ۳pi. 2595 02:07:57,481 --> 02:07:59,450 Ja arvonkorotukset kaikki ongelmat 2596 02:07:59,450 --> 02:08:01,366 aiotte ohjataan lﺣ۳pi kaikki komennot 2597 02:08:01,366 --> 02:08:05,330 ettﺣ۳ en todellakaan tiedﺣ۳ mistﺣ۳ paljon kﺣ۳ytﺣ۳nnﺣﭘn nyt, 2598 02:08:05,330 --> 02:08:07,380 mutta ehkﺣ۳ lentﺣ۳nyt yli pﺣ۳ﺣ۳n nyt. 2599 02:08:07,380 --> 02:08:08,580 Ja se on tﺣ۳ysin kunnossa. 2600 02:08:08,580 --> 02:08:11,230 >> Mutta lopulta olet menossa alkaa nﺣ۳hdﺣ۳ kuvioita syntyﺣ۳. 2601 02:08:11,230 --> 02:08:14,260 Ja kun saat ohi kaikki tyhmﺣ۳ yksityiskohtia, kuten suluissa, 2602 02:08:14,260 --> 02:08:16,710 ja aaltosulkei-, ja puolipistettﺣ۳, ja tavaraa, rehellisesti, 2603 02:08:16,710 --> 02:08:19,360 joka ei ole ollenkaan ﺣ۳lyllisesti mielenkiintoinen. 2604 02:08:19,360 --> 02:08:22,690 Ja se ei ole tavoite minkﺣ۳ﺣ۳n johdanto luokassa. 2605 02:08:22,690 --> 02:08:24,410 Se on ideoita, jotka ovat menossa merkitystﺣ۳. 2606 02:08:24,410 --> 02:08:26,659 >> Se on silmukoita, ja olosuhteet, ja toiminnot, 2607 02:08:26,659 --> 02:08:30,552 ja voimakkaammin ottoon, ja factoring koodia, 2608 02:08:30,552 --> 02:08:33,510 ja hyvﺣ۳ suunnittelu, ja hyvﺣ۳ tyyli, ja lopulta oikeellisuutta 2609 02:08:33,510 --> 02:08:37,330 oman koodin, joka on viime kﺣ۳dessﺣ۳ menossa asia eniten. 2610 02:08:37,330 --> 02:08:40,925 Joten ensi viikolla, otamme nﺣ۳mﺣ۳ ideoita, tuli ensimmﺣ۳isen kerran Scratch 2611 02:08:40,925 --> 02:08:42,800 ja ovat nyt kﺣ۳ﺣ۳ntﺣ۳nyt C. Ja aloitamme 2612 02:08:42,800 --> 02:08:45,740 esitellﺣ۳ ensimmﺣ۳inen kurssin reaalimaailman verkkotunnuksia. 2613 02:08:45,740 --> 02:08:50,140 >> Me keskitymme maailman turvallisuutta, ja tarkemmin salaus, 2614 02:08:50,140 --> 02:08:51,980 taidetta muokkaamisella tietoja. 2615 02:08:51,980 --> 02:08:54,000 Ja ensimmﺣ۳isten joukossa ongelmat itse 2616 02:08:54,000 --> 02:08:56,840 saa kirjoittaa pidemmﺣ۳lle leikkii joitakin syntaksin 2617 02:08:56,840 --> 02:08:59,880 ja ratkaista loogisia ongelmia, lopulta ennen pitkﺣ۳ﺣ۳, 2618 02:08:59,880 --> 02:09:03,960 on todella muokkaamaan tai salata, ja lopulta purkaa tietoa. 2619 02:09:03,960 --> 02:09:06,470 Ja kaikki olemme tehneet tﺣ۳nﺣ۳ﺣ۳n, tulee melko alhainen 2620 02:09:06,470 --> 02:09:09,190 tasolla, on juuri menossa sallia voimme ottaa yhden, ja yksi, 2621 02:09:09,190 --> 02:09:13,550 ja yksi askel edellﺣ۳ kohti kirjallisesti mielenkiintoisin koodin vielﺣ۳. 2622 02:09:13,550 --> 02:09:15,050 >> Niin siitﺣ۳ lisﺣ۳ﺣ۳ ensi viikolla. 2623 02:09:15,050 --> 02:09:17,834 2624 02:09:17,834 --> 02:09:18,762 >> [VIDEOTOISTOSTA] 2625 02:09:18,762 --> 02:09:19,690 2626 02:09:19,690 --> 02:09:22,006 >> -Mitﺣ۳ Voi kertoa minulle viimeinen kerta, kun nﺣ۳in hﺣ۳net? 2627 02:09:22,006 --> 02:09:26,041 2628 02:09:26,041 --> 02:09:27,040 -Mitﺣ۳ Voin sanoa, todella? 2629 02:09:27,040 --> 02:09:30,500 2630 02:09:30,500 --> 02:09:35,340 Siis, se oli kuin mikﺣ۳ tahansa muu pre-tuotanto harjoitus, 2631 02:09:35,340 --> 02:09:40,510 paitsi siellﺣ۳ oli jotain hﺣ۳n sanoi aivan lopussa, ettﺣ۳ kiinni minua. 2632 02:09:40,510 --> 02:09:44,810 2633 02:09:44,810 --> 02:09:46,640 >> -Tﺣ۳mﺣ۳ Oli CS50. 2634 02:09:46,640 --> 02:09:49,440 2635 02:09:49,440 --> 02:09:52,190 >> -Se On leikattu kaikille, hienoa tyﺣﭘtﺣ۳ harjoitus. 2636 02:09:52,190 --> 02:09:53,070 >> -Se Lounas? 2637 02:09:53,070 --> 02:09:54,986 >> -Joo, Sinﺣ۳ ja voin napata voileipﺣ۳ hieman. 2638 02:09:54,986 --> 02:09:58,380 Saanen tiedotustilaisuuden kanssa David todella nopeasti. 2639 02:09:58,380 --> 02:09:59,160 David? 2640 02:09:59,160 --> 02:10:01,260 David? 2641 02:10:01,260 --> 02:10:03,110 >> [END TOISTO]