1 00:00:00,000 --> 00:00:01,500 >> [Muusika mängimine] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Humala: Olgu see on CS50 ja see on nädala lõpuks üks. 4 00:00:16,110 --> 00:00:20,760 Nii et ma tahaksin tutvustada oma endise advisee, Andel Duff, kes mitte ainult ei 5 00:00:20,760 --> 00:00:25,460 iPhone 5 tähistab samuti käesoleva kõnepult, ta teeb ka autod. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL Duff: Kuidas läheb, kõik on? 8 00:00:29,510 --> 00:00:31,980 Ma tahan teile öelda, natuke natuke Formula SAE, millest ma 9 00:00:31,980 --> 00:00:32,604 olen kapten. 10 00:00:32,604 --> 00:00:33,437 See on MIT meeskond. 11 00:00:33,437 --> 00:00:35,520 Ma tahan teile öelda, poisid natuke seda 12 00:00:35,520 --> 00:00:37,520 ja loodetavasti luua teatud huvi. 13 00:00:37,520 --> 00:00:41,590 >> Nii et lubage mul lihtsalt joosta paar asju meie meeskond. 14 00:00:41,590 --> 00:00:43,640 Nii et me oleme täiesti õpilane run, kus kõik 15 00:00:43,640 --> 00:00:47,300 ning kohal disain, simuleerida test, ning tootja allsüsteem 16 00:00:47,300 --> 00:00:48,090 auto. 17 00:00:48,090 --> 00:00:51,240 Meil on oma masin poe ja garaažid ja N52-- või kahju, 18 00:00:51,240 --> 00:00:54,140 N51-- mis on samas hoones nagu MIT Science Museum. 19 00:00:54,140 --> 00:00:55,990 Ja me oleme inimesed et sõita autoga. 20 00:00:55,990 --> 00:00:58,340 Seal on siseriikliku konkurentsiõiguse aasta suve alguses, 21 00:00:58,340 --> 00:01:01,215 ja siis on väiksem penaltiseeria võistlusi aastaringselt. 22 00:01:01,215 --> 00:01:04,400 Ja siis me teeme juhi koolituse päeva, et saada uusi liikmeid tundma. 23 00:01:04,400 --> 00:01:08,280 >> Meie build päeva oleme Laupäeviti 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Lõunasöök ja õhtusöök hoolitsemine kohta, alates Bertucci-ja Beantown 25 00:01:11,060 --> 00:01:12,130 aastal. 26 00:01:12,130 --> 00:01:15,260 Meil on iganädalasel koosolekul ja seminar, mis on muidugi krediiti. 27 00:01:15,260 --> 00:01:18,560 Mis on nii uued kui selle poolaasta ja seda ka järgmisel semestril 28 00:01:18,560 --> 00:01:19,940 nii et saate läbida-reg eest. 29 00:01:19,940 --> 00:01:22,960 Ja siis meil on projekteerimine, pood, ja CAD päeva nädalas, 30 00:01:22,960 --> 00:01:26,870 samas liikmed iseseisvalt CAD osad, et laos jne. 31 00:01:26,870 --> 00:01:29,200 >> Nii elektri- insener meeskond 32 00:01:29,200 --> 00:01:31,110 meil on veojõudu, kõrgepinge süsteemi 33 00:01:31,110 --> 00:01:33,390 mis jookseb nominaalne 300 volti, mis hõlmab 34 00:01:33,390 --> 00:01:35,360 mootorid, mootori kontrollerid ja akusid. 35 00:01:35,360 --> 00:01:37,235 Siis on meil madal pinge süsteem, mis töötab 36 00:01:37,235 --> 00:01:40,180 12 volti, mis hõlmab kontrolli, kas sõlmed, aju 37 00:01:40,180 --> 00:01:41,570 kast ja armatuurlaud. 38 00:01:41,570 --> 00:01:43,890 Niipalju CS läheb, teeme on kodulehel hooldus 39 00:01:43,890 --> 00:01:47,940 et meil on vaja teha üritustele, liikmelisus muutustele, uusi pilte ja PR materjali. 40 00:01:47,940 --> 00:01:51,540 Ja siis meil on kood, mis kontrollib auto meie veojõukontroll, kaater 41 00:01:51,540 --> 00:01:55,750 kontrolli, kriips kontrolli, pöördemomendi vektorjuhtimist, ja regeneratiivpidurdussüsteemidega, mis 42 00:01:55,750 --> 00:01:59,170 kestab tavaliselt MATLAB, Simulink ja LabView. 43 00:01:59,170 --> 00:02:00,910 >> Ütlen sulle natuke auto. 44 00:02:00,910 --> 00:02:02,470 Nii et see on umbes 500 kilo. 45 00:02:02,470 --> 00:02:04,285 On reeglid piiratud 85 kilovatti. 46 00:02:04,285 --> 00:02:08,310 See on 2 EMRAX 207 mootorid tagasi, üks iga tagaratta. 47 00:02:08,310 --> 00:02:11,880 See on custom-ehitatud akud alates Prismatic A123 kott rakkude 48 00:02:11,880 --> 00:02:14,780 kogusummas 300 volti ja 5,6 kilovatt-tundi. 49 00:02:14,780 --> 00:02:17,950 Ja see on otseülekandega koos 2,64-1 ülekandearv. 50 00:02:17,950 --> 00:02:20,970 Siin on mõned pildid meie sõid seda konkurentsi. 51 00:02:20,970 --> 00:02:25,820 Siin taga, ninamaski ja siin on mootorid, 52 00:02:25,820 --> 00:02:29,682 need suured mustad kettad all et mens manus. 53 00:02:29,682 --> 00:02:32,140 Siin on slide et ma tõmmatakse välja meie konkurentsi kava. 54 00:02:32,140 --> 00:02:35,389 Ja see on lihtsalt võrrelda meie auto Paar kaubanduslikult kättesaadavad autod, 55 00:02:35,389 --> 00:02:38,380 nagu KTM XBOW, Ariel Atom ja Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Kui te olete juba tuttav hind, võimsus tõmbekaal, dollarit hobujõudu, 57 00:02:42,110 --> 00:02:44,930 dollarit pöördemoment ja meie auto puhub neid kõiki välja veega. 58 00:02:44,930 --> 00:02:47,520 Kui teil on küsimusi, kübeke seda e-posti aadress. 59 00:02:47,520 --> 00:02:50,800 Shoot meile e-mail aadressil fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Me oleme õnnelikud, et rääkida Kas sa tahaksid midagi. 61 00:02:53,350 --> 00:02:55,600 Harvardi õpilased on lahked vähemuse meeskonnas. 62 00:02:55,600 --> 00:02:58,350 Kui teil on küsimusi selle kohta, et siis ei tulista meile e-mail, 63 00:02:58,350 --> 00:03:00,810 õnnelik, et rääkida, ja ma lähen pea tagasi üle David. 64 00:03:00,810 --> 00:03:01,550 Tänan. 65 00:03:01,550 --> 00:03:02,466 Ma hindan seda, poisid. 66 00:03:02,466 --> 00:03:03,615 [APPLAUSE] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Humala: Ansel veetis suve töötavad koos meiega siin ülikoolilinnakus CS50 69 00:03:10,980 --> 00:03:11,480 Sel suvel. 70 00:03:11,480 --> 00:03:13,505 Ja lisaks kallal asjad nagu binaarsed sibulad, 71 00:03:13,505 --> 00:03:16,090 ta tegelikult väga avatud meie silmad-- ja kaevanduse particular-- 72 00:03:16,090 --> 00:03:20,535 sellele, mida tegelikult ristumiskohas ei riist-ja tarkvara saab. 73 00:03:20,535 --> 00:03:23,410 Tegelikult on palju asju, mida ta lihtsalt tuuritanud teid on lõppkokkuvõttes 74 00:03:23,410 --> 00:03:26,030 loodud esimene tarkvara, ja siis lõpuks valmistatud 75 00:03:26,030 --> 00:03:27,299 reaalses maailmas riistvara. 76 00:03:27,299 --> 00:03:29,590 Nii et kui olete huvitatud uurides, et ristmik, 77 00:03:29,590 --> 00:03:31,430 ehk alustada, et grupp. 78 00:03:31,430 --> 00:03:34,140 >> Nüüd vahepeal neile, kes on fännid tehnoloogia 79 00:03:34,140 --> 00:03:36,140 ja Apple tooteid eriti teada, et seal 80 00:03:36,140 --> 00:03:37,860 Oli paar Teated eile. 81 00:03:37,860 --> 00:03:39,776 Aga me arvasime me tahaks näidata sa üks, mis tuli välja 82 00:03:39,776 --> 00:03:43,590 paar päeva enne nimetatud te ei näinud. 83 00:03:43,590 --> 00:03:46,150 >> Jörgen EGHAMMER: Tead, kord aega midagi 84 00:03:46,150 --> 00:03:49,540 tuleb mööda, et muudab seda, kuidas me elame. 85 00:03:49,540 --> 00:03:53,479 Seade nii lihtne ja intuitiivne kasutades tundub peaaegu tuttav. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Tutvustame 2015 IKEA kataloogi. 88 00:04:04,138 --> 00:04:10,420 See ei ole digitaalsete raamatute või e-raamat, see on raamat-raamatu. 89 00:04:10,420 --> 00:04:14,440 >> Esimene asi, mida tähele ei ole kaablid, isegi mitte toitejuhe. 90 00:04:14,440 --> 00:04:18,519 2015 IKEA kataloog on täielikult laetud, 91 00:04:18,519 --> 00:04:20,550 ja aku eluiga on igavene. 92 00:04:20,550 --> 00:04:27,300 Kasutajaliides on 7,5 8 tolli, kuid võib laiendada kuni 15 8 tolli. 93 00:04:27,300 --> 00:04:32,410 Navigation põhineb reljeefsete ühendust tehnoloogia, mis saab tegelikult tunned. 94 00:04:32,410 --> 00:04:37,120 >> Sisu on eelinstalleeritud kaudu 328 kõrglahutusega lehekülge 95 00:04:37,120 --> 00:04:40,180 inspireerivaid kodu sisustamiseks ideid. 96 00:04:40,180 --> 00:04:43,740 Brauseri käivitamine, lihtsalt puudutada ja lohistada. 97 00:04:43,740 --> 00:04:50,870 Paremalt vasakule, et liikuda edasi, vasakult paremale, et liikuda tagasi. 98 00:04:50,870 --> 00:04:52,770 >> Pange tähele, midagi muud? 99 00:04:52,770 --> 00:04:53,780 See on õige. 100 00:04:53,780 --> 00:04:55,190 No lag. 101 00:04:55,190 --> 00:04:58,400 Iga kristallselge lehele saadetised silmapilkselt, 102 00:04:58,400 --> 00:05:00,586 ükskõik kui kiiresti liigute. 103 00:05:00,586 --> 00:05:03,710 Kui sa tahad saada kiire ülevaate, lihtsalt hoidke seda peopesaga, 104 00:05:03,710 --> 00:05:06,816 ja kasutades ainult pöidlaga kiirus sisu sirvida. 105 00:05:06,816 --> 00:05:10,930 >> Kui leiate midagi, mida soovite salvestada hiljem, saate selle järjehoidjatesse lisada. 106 00:05:10,930 --> 00:05:17,620 Ja isegi kui sulgete rakenduse saate kergesti leida järjehoidja uuesti. 107 00:05:17,620 --> 00:05:18,490 Amazing. 108 00:05:18,490 --> 00:05:20,434 >> [Naer] 109 00:05:20,434 --> 00:05:21,406 [APPLAUSE] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Nii et toob meid nädala lõpuks üks. 112 00:05:29,870 --> 00:05:31,760 Paar Teated nüüd. 113 00:05:31,760 --> 00:05:33,440 Nii osadeks on praegu pooleli. 114 00:05:33,440 --> 00:05:36,860 Mine seda URL siia millalgi vahel nüüd ja reede keskpäeval 115 00:05:36,860 --> 00:05:39,960 tegelikult täpsustada, kas olete nende hulgas vähem mugav, rohkem 116 00:05:39,960 --> 00:05:41,690 mugav, või kusagil vahepeal. 117 00:05:41,690 --> 00:05:44,511 >> See on tavaliselt üks neist asju, mida sa lihtsalt omamoodi tea. 118 00:05:44,511 --> 00:05:47,510 Ja tegelikult need, kes on vähem mugav ilmselt teavad nii palju, 119 00:05:47,510 --> 00:05:49,634 Neile, kes on rohkem mugav teada nii palju, 120 00:05:49,634 --> 00:05:54,960 ja jälle, kui te ei ole päris kindel, mis need ämbrid jääte te olete 121 00:05:54,960 --> 00:05:56,210 ilmselt kusagil vahepeal. 122 00:05:56,210 --> 00:05:59,810 Aga kindel võid vahetada Pärast paari nädala jooksul, kui vaja oleks. 123 00:05:59,810 --> 00:06:02,620 >> Vahepeal järgmisel nädalal me ei hakka lõigud per se, 124 00:06:02,620 --> 00:06:04,760 aga super lõigud, mis on avatud kõigile üliõpilastele. 125 00:06:04,760 --> 00:06:08,220 Sel pühapäeval kell asukohta kuulutatakse käigus veebilehte 126 00:06:08,220 --> 00:06:10,190 meil on üks need vähem mugav, 127 00:06:10,190 --> 00:06:12,470 samuti üks need mugavamaks. 128 00:06:12,470 --> 00:06:15,460 Ja need kusagil vahepeal saab valida, millist neist kahest, 129 00:06:15,460 --> 00:06:17,360 või nii, kui soovite, et istuda-in. 130 00:06:17,360 --> 00:06:19,630 Ja keskenduda nendele on lõpptulemusena C 131 00:06:19,630 --> 00:06:22,440 mis me jätkame Vestluse täna. 132 00:06:22,440 --> 00:06:25,070 >> Ülesanded 0 vahepeal on loodetavasti teie kätes. 133 00:06:25,070 --> 00:06:27,500 Ametlikult homseks, Neljapäev, keskpäeval. 134 00:06:27,500 --> 00:06:29,490 Kui sa raha ühes oma 5 hilinenud päeva 135 00:06:29,490 --> 00:06:31,780 mis tooks see kuni reede keskpäeval. 136 00:06:31,780 --> 00:06:34,420 Ülesanded 1 vahepeal on postitatud kursuse kodulehel. 137 00:06:34,420 --> 00:06:37,381 Ja see on meie esimene foray kui klass C. 138 00:06:37,381 --> 00:06:40,630 Ja see probleem määrata spec sõelub läbi palju mehhaanika mida 139 00:06:40,630 --> 00:06:43,960 meil hakkas rääkima esmaspäeval ja me jätkame täna räägime. 140 00:06:43,960 --> 00:06:46,770 C, Linux, CS50 seadme, kõik see 141 00:06:46,770 --> 00:06:48,990 ootame teid spetsifikatsioonile. 142 00:06:48,990 --> 00:06:52,840 >> Tööaeg vahepeal on käimas, bakalaureuse söögisaal. 143 00:06:52,840 --> 00:06:56,240 Head selle URL siin ajakava täna ja homme 144 00:06:56,240 --> 00:06:57,930 kui soovid osa saada. 145 00:06:57,930 --> 00:07:01,920 Küsimused vahepeal nii, et sa on võimalus esitada küsimusi 146 00:07:01,920 --> 00:07:05,860 asünkroonselt, 24/7, mõistad sa oled mitte ainult osades ja kontor 147 00:07:05,860 --> 00:07:09,530 tundi, vaid pigem selle tööriista siin CS50 Arutle, et URL 148 00:07:09,530 --> 00:07:12,150 saab muidugi online teadetetahvel tarkvara, mille kaudu 149 00:07:12,150 --> 00:07:15,030 saab esitada küsimusi klassikaaslased ja ka töötajad. 150 00:07:15,030 --> 00:07:18,492 Nii et pidage meeles, et ressursi samuti. 151 00:07:18,492 --> 00:07:20,200 Vahepeal traditsioon algab sel reedel. 152 00:07:20,200 --> 00:07:23,200 Nagu te võib-olla ühtesid alates Viimase kolmapäeva teaser video, 153 00:07:23,200 --> 00:07:25,510 meil on traditsioon kõige igal reedel Tähtajaks 154 00:07:25,510 --> 00:07:28,750 võttes umbes 50 õpilast ja töötajad kohalikus restoranis nimega 155 00:07:28,750 --> 00:07:31,510 Fire ja Ice, kus me oleme tavaliselt olen mõned vilistlased 156 00:07:31,510 --> 00:07:33,850 või sõpradega tööstus üldiselt soovivad 157 00:07:33,850 --> 00:07:35,780 teha suur klass tunne väiksem. 158 00:07:35,780 --> 00:07:37,560 Nii et see on täiesti juhuslik lõunasöök. 159 00:07:37,560 --> 00:07:40,160 Kamp meile töötajad eriti, mängib muusikaline toolid 160 00:07:40,160 --> 00:07:43,360 ja vestelda õpilastega 50, elu väljaspool 50, 161 00:07:43,360 --> 00:07:46,510 elu tulevikus, reaalses maailmas, Ma räägin töövõimalusi 162 00:07:46,510 --> 00:07:47,680 sõprade tööstuses. 163 00:07:47,680 --> 00:07:51,110 >> Nii et kui sa soovid meiega liituda sel reedel, pea see URL siia. 164 00:07:51,110 --> 00:07:54,180 Ruumi on vähe, kuid me teeme seda kordumatult kogu perspektiivis. 165 00:07:54,180 --> 00:07:57,380 Head seal cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 Ja kui sa ei saa sisse seekord mitte muretseda. 167 00:07:59,380 --> 00:08:02,390 Me teeme seda jälle lähinädalatel samuti. 168 00:08:02,390 --> 00:08:05,434 >> Nii et see on pilt Me maalitud eelmisel nädalal 169 00:08:05,434 --> 00:08:07,350 ja sa oled ilmselt olnud espalla siiani. 170 00:08:07,350 --> 00:08:10,360 Aga proovime ühendada see nüüd mida me teeme täna 171 00:08:10,360 --> 00:08:11,440 ja edasi. 172 00:08:11,440 --> 00:08:14,760 Kas ma saaksin ühe vabatahtliku? 173 00:08:14,760 --> 00:08:16,000 Olgu, või mitu. 174 00:08:16,000 --> 00:08:18,460 Kuidas siin lõpuks, sinine särk. 175 00:08:18,460 --> 00:08:20,329 Tule, mis su nimi on? 176 00:08:20,329 --> 00:08:20,870 Alana: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Humala: Alana. 178 00:08:21,661 --> 00:08:25,100 Nii Alana, vaid moment-- tore kohtuda sind-- 179 00:08:25,100 --> 00:08:28,260 hakkab mängima rolli Selle funktsiooni siin. 180 00:08:28,260 --> 00:08:31,290 Lilla block me oleme nimetatakse siiani funktsioon. 181 00:08:31,290 --> 00:08:34,830 Niisiis, mida ma lähen enne siin ja pakkuda Alana 182 00:08:34,830 --> 00:08:38,380 on vähe nimesilti teha selge, mis rolli sa mängid. 183 00:08:38,380 --> 00:08:39,753 >> Nii et sa peab olema sõnaõigus blokeerida. 184 00:08:39,753 --> 00:08:41,419 Kui soovite minna ja pane see edasi. 185 00:08:41,419 --> 00:08:43,169 Ja me ei kavatse hoida seda super lihtne. 186 00:08:43,169 --> 00:08:46,180 Kui eesmärk käepärast on lihtsalt nüüd rakendada koos Alana, 187 00:08:46,180 --> 00:08:49,710 see nn öelda blokaad, siin on, kuidas see läheb tööle. 188 00:08:49,710 --> 00:08:52,574 Ma peate-- olgem kutsuvad seda argument või parameeter, 189 00:08:52,574 --> 00:08:54,240 see on tõesti lihtsalt tühi paberileht. 190 00:08:54,240 --> 00:08:57,239 Ja see on valge kuni objekti Tuletab valge kast, kuhu te 191 00:08:57,239 --> 00:08:58,080 saab kirjutada sõnu. 192 00:08:58,080 --> 00:09:00,660 >> Vahepeal ma lähen siin. 193 00:09:00,660 --> 00:09:06,560 Ma lähen edasi minna ja kirjutada H-E-L-L-O eralda maailma. 194 00:09:06,560 --> 00:09:09,972 Ja nüüd ma, nagu ütlevad programmeerija, ei tegelikult teavad, kuidas öelda midagi. 195 00:09:09,972 --> 00:09:12,180 Võin tulla sõnad, aga ma ei pruugi 196 00:09:12,180 --> 00:09:15,220 tea, kuidas ennast väljendada suuliselt või ekraanil. 197 00:09:15,220 --> 00:09:17,280 Ja nii ma lähen teha, on seda tükk 198 00:09:17,280 --> 00:09:21,157 funktsionaalsuse, kelle input-- või argument, nagu me nimetame seda, 199 00:09:21,157 --> 00:09:23,990 Olen kirjutanud selle tüki paper-- ja ma lähen tellida seda. 200 00:09:23,990 --> 00:09:26,831 >> Ja tõepoolest see on roll, mis funktsioonide programmeerimiskeelt 201 00:09:26,831 --> 00:09:27,330 mängida. 202 00:09:27,330 --> 00:09:29,246 Midagi öelda plokk saab tellida 203 00:09:29,246 --> 00:09:32,074 keegi, kes tõesti teab, mida ta või ta räägib. 204 00:09:32,074 --> 00:09:33,990 Nii et kui sa samm üle siin hetkeks, 205 00:09:33,990 --> 00:09:40,092 Ma lähen mööda seda sisendit Alana ja paluda, et teile öelda, et see sisend. 206 00:09:40,092 --> 00:09:41,202 >> Alana: Hello, world. 207 00:09:41,202 --> 00:09:42,160 DAVID Humala: Ongi kõik. 208 00:09:42,160 --> 00:09:43,326 Nii et on funktsioon. 209 00:09:43,326 --> 00:09:46,556 Nüüd saame seda veidi rohkem, saame astuda samm edasi siit. 210 00:09:46,556 --> 00:09:48,180 Sest see oli selgelt underwhelming. 211 00:09:48,180 --> 00:09:51,670 Nii et olgem nüüd muutma seda midagi natuke keerukam. 212 00:09:51,670 --> 00:09:53,630 >> Nii see muidugi on meie C versiooni. 213 00:09:53,630 --> 00:09:56,760 Nüüd, kui sa tahad teha, et ühekordne, et nimesilti maha, 214 00:09:56,760 --> 00:09:58,530 ja olgem on paned uue nime. 215 00:09:58,530 --> 00:10:00,850 Aga põhimõtteliselt oled mängib sama rolli, 216 00:10:00,850 --> 00:10:03,400 see lihtsalt nii juhtub, et kutsutakse printf nüüd. 217 00:10:03,400 --> 00:10:06,930 >> Lugu on muidugi läheb olema-- ilmselt 218 00:10:06,930 --> 00:10:09,317 niisama underwhelming-- on saab olema järgmine. 219 00:10:09,317 --> 00:10:10,650 Olete nüüd funktsiooni printf. 220 00:10:10,650 --> 00:10:13,300 Olen helistaja või programmeerija, kes tahab 221 00:10:13,300 --> 00:10:15,745 seista õlgadele inimesed minevikus nagu sina, 222 00:10:15,745 --> 00:10:18,670 kes juba arvasin, kuidas tegelikult kirjutada midagi maha. 223 00:10:18,670 --> 00:10:20,650 Ja nii seekord mitte öelda olgem 224 00:10:20,650 --> 00:10:22,255 tegelikult kasutavad meie ekraanil siin. 225 00:10:22,255 --> 00:10:24,130 Nii et kui soovite astuda siin, ma lähen 226 00:10:24,130 --> 00:10:27,196 läbida uuesti seda sisend minu printf sõber. 227 00:10:27,196 --> 00:10:29,320 Kui sa saaksid minna ja printida, et ekraanil 228 00:10:29,320 --> 00:10:31,611 lihtsalt juhtides oma sõrme must ekraan. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Suurepärane. 231 00:10:44,180 --> 00:10:47,350 Olgu, nii palju vahekontole jaoks kuidas see pidi mängima. 232 00:10:47,350 --> 00:10:51,390 >> Nüüd võtame asju üks viimane piir, kui me võiks järgmiselt. 233 00:10:51,390 --> 00:10:53,980 Nii et see on C programmi nagu me ütlesime viimast korda. 234 00:10:53,980 --> 00:10:57,460 Ja see lihtsalt teeb seda, mida sa tegid, see prindib välja ekraan, hello, world. 235 00:10:57,460 --> 00:11:00,290 Kuigi seal on selgelt palju häirivad asjad seal. 236 00:11:00,290 --> 00:11:03,630 Aga võtame asju pügala ja tutvustada seda versiooni, mis meenutavad 237 00:11:03,630 --> 00:11:06,160 oli kolmas versioon, mis sattus koos viimast korda. 238 00:11:06,160 --> 00:11:09,120 >> Ja nüüd on selgelt kaks kasutusalad printf. 239 00:11:09,120 --> 00:11:12,280 Seal on 2 kõned Alana antud juhul printf, 240 00:11:12,280 --> 00:11:14,740 kuid seal on ka kõne teise funktsiooni. 241 00:11:14,740 --> 00:11:17,150 Mida see funktsioon selgelt? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> Kas me saame veel ühe vabatahtliku? 244 00:11:18,980 --> 00:11:20,980 OK, tulge siia. 245 00:11:20,980 --> 00:11:21,805 Mis su nimi on? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Humala: Javier, tule üles. 248 00:11:24,750 --> 00:11:27,270 Nii Javier roll on see paberile. 249 00:11:27,270 --> 00:11:28,860 Mis ma lähen kutsun üldiselt s. 250 00:11:28,860 --> 00:11:32,250 Nüüd on see muutuja, see on tüüpi string, kui vaikimisi 251 00:11:32,250 --> 00:11:34,290 poolt, et teise rea keskel seal. 252 00:11:34,290 --> 00:11:36,540 Ja ma tahan, et sa minema mind string. 253 00:11:36,540 --> 00:11:40,120 Täpsemalt pea alla orkester jagu ja mind kellegi nimi, 254 00:11:40,120 --> 00:11:43,142 ja tulevad tagasi ja muutuva sisaldavad seda väärtust. 255 00:11:43,142 --> 00:11:44,225 See võib olla igaüks, kui soovite. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Siit me tuleme. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Olgu, Javier on kirjalikult ette nime. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Olgu. 262 00:12:03,280 --> 00:12:05,740 Me kõik ilmselt arvata, kui see läheb välja mängida. 263 00:12:05,740 --> 00:12:07,489 Me võib-olla belaboring koht, mida 264 00:12:07,489 --> 00:12:10,320 funktsioon on teed, kuid sellegipoolest tänan teid väga. 265 00:12:10,320 --> 00:12:13,890 >> Nii Javier on tagasi see string Siit, mis ei saa päris vt 266 00:12:13,890 --> 00:12:15,800 Jonathan on string et me oleme saanud. 267 00:12:15,800 --> 00:12:18,330 Nüüd, mida ma tegelikult toimub andma Alana kuigi 268 00:12:18,330 --> 00:12:20,150 on midagi veidi erinev. 269 00:12:20,150 --> 00:12:23,800 Kuna selles versioonis Programmi esimene seal on oma nimi. 270 00:12:23,800 --> 00:12:26,160 Nii et kõige esimene argument Mul on vaja, et anda Alana 271 00:12:26,160 --> 00:12:33,030 kus saab olema sõna otseses mõttes oma nimi. 272 00:12:33,030 --> 00:12:35,280 Olgu, nii lihtne see ongi Ma anna sulle seda. 273 00:12:35,280 --> 00:12:36,730 Ja kui ma kirjutan üles järgmine argument, kui te 274 00:12:36,730 --> 00:12:39,230 tahan minna ja kirjutada see laual, lähme edasi 275 00:12:39,230 --> 00:12:42,659 ja teha lõplik näide siin teha selge, millised on lõpuks sai juhtuda. 276 00:12:42,659 --> 00:12:44,450 Nii oma nimi, Kirjutan selle ülaosa suunas 277 00:12:44,450 --> 00:12:47,220 kui te ei pahanda, just nii, et meil on ruumi veel ühele teisele reale. 278 00:12:47,220 --> 00:12:52,890 Sest viimane asi, mida ma nüüd pakkuda Teile on mitte üks, 279 00:12:52,890 --> 00:12:57,220 kuid kaks paberilehte. 280 00:12:57,220 --> 00:12:58,074 >> Olgu. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O eralda ja seejärel tühi rida. 282 00:13:01,920 --> 00:13:04,780 Nii et see, mida ma olen umbes anda Alana nüüd on midagi veidi erinev. 283 00:13:04,780 --> 00:13:08,600 Mitte ainult ta saada see, kus täitke tühi kujutab 284 00:13:08,600 --> 00:13:12,050 et percent-- milline oli kohatäide Oleme kasutanud? 285 00:13:12,050 --> 00:13:13,890 Jah, nii protsenti s. 286 00:13:13,890 --> 00:13:16,530 Vahepeal ma lähen edasi teda teine ​​argument, mis 287 00:13:16,530 --> 00:13:19,290 on täpselt see, mida Javier väljavõtteid Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Nii et lubage mul anda teile need kaks. 289 00:13:20,534 --> 00:13:22,575 Kui soovite, edasi minna ja trükkida selle kohta. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Mis lõpuks juhtub juba käes, Alana jälle 292 00:13:28,130 --> 00:13:29,410 mängib rolli printf. 293 00:13:29,410 --> 00:13:32,160 Javier mängisin rolli getString. 294 00:13:32,160 --> 00:13:34,700 Nii et on oma suveniiri. 295 00:13:34,700 --> 00:13:39,910 Ja lõpuks, mis toimub, vaatamata Selle hello-- yep minna ja koma. 296 00:13:39,910 --> 00:13:41,410 Alana: Kas ma saan seda veel või ei? 297 00:13:41,410 --> 00:13:43,451 DAVID Humala: Jah, sa said nad mõlemad korraga. 298 00:13:43,451 --> 00:13:45,740 Nii et idee on see, et sa saab nüüd flip lehele 299 00:13:45,740 --> 00:13:50,000 käsitseda teine need kaks sisendit. 300 00:13:50,000 --> 00:13:53,280 Nii et see on ainult haamer kodus punkt, et kui Alana täidetud 301 00:13:53,280 --> 00:13:55,830 see roheline joon siin, ja siis Javier tegi seda üks meie jaoks 302 00:13:55,830 --> 00:13:57,820 ja tagasi mulle midagi me kutsume s, aga see oli tõesti 303 00:13:57,820 --> 00:13:59,520 lihtsalt, et tükk paberit enda. 304 00:13:59,520 --> 00:14:02,320 Ja nüüd Alana on seda teinud kolmas rida. 305 00:14:02,320 --> 00:14:06,010 >> Ja kuigi see kõik välja nii uskumatult segasena ehk 306 00:14:06,010 --> 00:14:08,870 Esmapilgul see tõesti Nii lihtne see ongi. 307 00:14:08,870 --> 00:14:11,390 Associated sisendite ümber, saada väljundid, kas 308 00:14:11,390 --> 00:14:14,560 on füüsiliselt anda tagasi midagi, nägemine või kõrvalmõju niimoodi. 309 00:14:14,560 --> 00:14:17,170 Midagi visuaalselt kirjutatud ekraanil. 310 00:14:17,170 --> 00:14:19,990 Nii et lähme edasi ja tänan Alana ja Javier, 311 00:14:19,990 --> 00:14:25,012 kes oli siin, et meiega siin. 312 00:14:25,012 --> 00:14:25,934 >> [APPLAUSE] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Nüüd võtame enesestmõistetavana, kuidas lihtne kõik see olla võiks. 315 00:14:33,480 --> 00:14:36,775 Ja olgem sõita tegelikult teha midagi tegelikku koodi. 316 00:14:36,775 --> 00:14:40,620 Nii et kuni ekraanil on siin pildil ning nn CS50 seade. 317 00:14:40,620 --> 00:14:43,980 Ja kui teil oli kell, kui 02:00 kolmapäeva pärastlõunal, 318 00:14:43,980 --> 00:14:46,602 selgitada mõningaid sõber mida CS50 seade on 319 00:14:46,602 --> 00:14:48,185 kuidas sa defineerid seda lauset? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Iga ühe lausega? 322 00:14:53,240 --> 00:14:54,876 Jah? 323 00:14:54,876 --> 00:14:57,334 Üliõpilane: See on nagu programmi mis teeb igaühe arvuti 324 00:14:57,334 --> 00:14:58,460 joosta sama süsteemi. 325 00:14:58,460 --> 00:14:59,210 DAVID Humala: Väga hea! 326 00:14:59,210 --> 00:15:02,810 See on programm, mis võimaldab igaühe arvuti joosta sama süsteemi. 327 00:15:02,810 --> 00:15:04,920 See on omamoodi oma koopia operatsioonisüsteemi 328 00:15:04,920 --> 00:15:07,540 süsteem, mis juhtub kutsutakse Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 Ja see töötab tõhusalt sees aknas oma Mac või PC, 330 00:15:11,070 --> 00:15:15,080 nii, et sel viisil on kohe värava 1. nädalal, igaüks siin klassis 331 00:15:15,080 --> 00:15:17,590 on juurdepääs samadele vahenditele, sama konfiguratsiooniga 332 00:15:17,590 --> 00:15:21,250 ja seal ei ole õppimiskõver konkreetse Mac või PC eriti. 333 00:15:21,250 --> 00:15:25,620 >> Nüüd avas sees CS50 Seadme esmaspäeval, see programm siit. 334 00:15:25,620 --> 00:15:27,040 See juhtub olema, mida nimetatakse gedit. 335 00:15:27,040 --> 00:15:29,050 Aga see on tõesti ainult graafiline redaktor. 336 00:15:29,050 --> 00:15:33,170 See on midagi Notepad või tekst Muuda Windows või Mac OS võrra. 337 00:15:33,170 --> 00:15:36,720 Ja ma ettepaneku, et seal oli tõesti kolm olulist osade sellele ekraanile. 338 00:15:36,720 --> 00:15:39,560 Top külg on see, kui sa oleks kirjutada oma koodi. 339 00:15:39,560 --> 00:15:44,080 Ja see, kui me veetsime palju meie kolm näidet esmaspäev loeng. 340 00:15:44,080 --> 00:15:47,650 Alumine me kutsusime mida, see must aken, jah? 341 00:15:47,650 --> 00:15:48,640 >> Üliõpilane: tõlkija? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Humala: tõlkija me juurde viis, et aken. 343 00:15:51,500 --> 00:15:53,040 Aga üldisemalt. 344 00:15:53,040 --> 00:15:54,540 Jah, see oli lihtsalt terminali aknas. 345 00:15:54,540 --> 00:15:57,780 See on vanuse vana mõiste, mis lihtsalt kirjeldab sisuliselt Vilkuv 346 00:15:57,780 --> 00:16:01,910 kiire, et aastaid tagasi kasutati olla üks neist suur CRT stiilis monitorid. 347 00:16:01,910 --> 00:16:04,300 Kuid tänapäeval on see omamoodi virtuaalne tarkvara. 348 00:16:04,300 --> 00:16:06,710 Ja terminal aknad olgem meile käske. 349 00:16:06,710 --> 00:16:11,750 See omamoodi lihtsustatud versioon kasutajaliidese või UI. 350 00:16:11,750 --> 00:16:14,060 See ei ole graafiline kasutajaliidese või GUI, 351 00:16:14,060 --> 00:16:17,250 see on teksti-põhine kasutajaliides või käsurida. 352 00:16:17,250 --> 00:16:20,770 >> Ja tõepoolest see, kui lõpuks Mul oli võimalik kirjutada mingi kood. 353 00:16:20,770 --> 00:16:24,200 Kui ma olin kirjutanud mõned koodi küll, Meenutame, et ma kasutasin seda käsku. 354 00:16:24,200 --> 00:16:26,210 Ja kuna see nimi sellist ütleb, see 355 00:16:26,210 --> 00:16:29,860 võimaldab mul teha programmi nimega Tere. 356 00:16:29,860 --> 00:16:33,400 Aga mis oli see tegelikult teeb? 357 00:16:33,400 --> 00:16:36,180 Noh mark oli võtta oma sisend, mu lähtekoodi, 358 00:16:36,180 --> 00:16:39,380 ja muutub see, mida lõpuks? 359 00:16:39,380 --> 00:16:40,060 >> Objekti kood. 360 00:16:40,060 --> 00:16:42,790 Ja objekti kood on lihtsalt fancy viis öelda nulli ja ones. 361 00:16:42,790 --> 00:16:46,420 Ja siis, kui ma tahtsin joosta, et objekti kood, 362 00:16:46,420 --> 00:16:50,940 kui ma tahtsin edasi sisendina need nulli ja need oma arvuti 363 00:16:50,940 --> 00:16:54,430 aju nn CPU või keskseade, 364 00:16:54,430 --> 00:16:55,730 Mul oli käivitada programmi. 365 00:16:55,730 --> 00:16:59,042 Aga see ei olnud päris lihtne esmaspäeval lihtsalt topeltklõpsuga mõned ikoonil. 366 00:16:59,042 --> 00:17:01,375 Mis asemel ma pean teha selleks, et käivitada programm? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Mis see oli teine ​​käsk? 369 00:17:07,890 --> 00:17:09,619 Ma kuulen vähe kaldkriipsuga? 370 00:17:09,619 --> 00:17:10,544 Jah, jah? 371 00:17:10,544 --> 00:17:12,474 >> Üliõpilane: Dot kärpida ja programmi nimi. 372 00:17:12,474 --> 00:17:13,349 DAVID Humala: Täpselt. 373 00:17:13,349 --> 00:17:15,030 Dot kaldkriips ja programmi nimi. 374 00:17:15,030 --> 00:17:16,210 Nüüd Mida see tähendab? 375 00:17:16,210 --> 00:17:19,470 Noh dot on lihtsalt müstiline, kuidas öelda jooksva kataloogi. 376 00:17:19,470 --> 00:17:23,440 Ükskõik kaust olete on viidatud kui on esindatud dot. 377 00:17:23,440 --> 00:17:26,680 Kaldkriips on just see, mida sa oled näinud Mac OS ja Windows aastaid, 378 00:17:26,680 --> 00:17:30,329 see eraldaja kataloog või kausta ja ülejäänud mõne nime. 379 00:17:30,329 --> 00:17:32,620 Windows juhtub minna tahapoole, Linux ja Mac 380 00:17:32,620 --> 00:17:34,210 OS juhtub minna edasi. 381 00:17:34,210 --> 00:17:37,560 Aga see on lihtsalt eraldaja, nii et see on lihtsalt ebahuvitav süntaktiline detail. 382 00:17:37,560 --> 00:17:40,440 >> Mahlane osa muidugi on programmi nimi, Tere. 383 00:17:40,440 --> 00:17:42,650 Ja see on see, mis teeb loodi meile. 384 00:17:42,650 --> 00:17:44,910 See väljastada et fail meile. 385 00:17:44,910 --> 00:17:46,700 Aga kuidas me saame, et punkt? 386 00:17:46,700 --> 00:17:48,870 Olgem nüüd küsida küsimusele, mis oli tõesti 387 00:17:48,870 --> 00:17:52,470 siin toimub, vähemalt Mõnede käesoleva süntaksi? 388 00:17:52,470 --> 00:17:57,000 >> Seega lause või nii, kuidas me seletame ära 389 00:17:57,000 --> 00:17:59,020 Selle esimene rida, mis on rõhutatud roheline? 390 00:17:59,020 --> 00:18:02,998 Mis oli see, et esimene rida teed, seoses minu programm? 391 00:18:02,998 --> 00:18:03,974 Jah? 392 00:18:03,974 --> 00:18:05,067 >> Õpilane: [kuuldamatu]. 393 00:18:05,067 --> 00:18:06,150 DAVID Humala: Ütle seda uuesti? 394 00:18:06,150 --> 00:18:08,734 Üliõpilane: Sh ja allalaadimine Viimase funktsioonid [kuuldamatu]. 395 00:18:08,734 --> 00:18:09,483 DAVID Humala: Hea. 396 00:18:09,483 --> 00:18:11,900 Sealhulgas, ma ei ütle allalaadimine, kuid ütleme 397 00:18:11,900 --> 00:18:15,500 sealhulgas funktsioone, et inimesed olen kirjutanud ka varem. 398 00:18:15,500 --> 00:18:18,260 Ja need funktsioonid on olemas kuskil minu arvutis. 399 00:18:18,260 --> 00:18:20,470 Keegi kirjutas faili aastat tagasi, ning et faili 400 00:18:20,470 --> 00:18:23,490 on kuskil sees CS50 seadme või mu kõvaketas 401 00:18:23,490 --> 00:18:24,480 üldisemalt. 402 00:18:24,480 --> 00:18:27,810 Ja nii see rida on sisuliselt öeldes: mine leiavad, et fail, standard I / O dot 403 00:18:27,810 --> 00:18:31,740 h, ja kopeeri ja kleebi sisu siinsamas üleval minu faili 404 00:18:31,740 --> 00:18:33,860 nii et ma ei pea tee seda käsitsi ise. 405 00:18:33,860 --> 00:18:40,970 >> Ja vahel juiciest tükki sees et fail me taotleti mida funktsioon? 406 00:18:40,970 --> 00:18:45,740 Mis funktsioon ei ütleme kuulutati või nimetatud standard I / O dot h 407 00:18:45,740 --> 00:18:47,120 Kõige tõenäolisemalt? 408 00:18:47,120 --> 00:18:47,900 Printf, eks? 409 00:18:47,900 --> 00:18:50,797 Me ei kirjuta printf kohta Esmaspäev, see lihtsalt olemas. 410 00:18:50,797 --> 00:18:52,880 Palju nagu Alana lihtsalt tuli lavale ja ta lihtsalt 411 00:18:52,880 --> 00:18:55,540 olemas ja teadis, kuidas juhtida midagi ekraanil, 412 00:18:55,540 --> 00:18:58,660 nii ei printf olemas palju aastaid. 413 00:18:58,660 --> 00:19:00,240 Ja nii see on, kuidas me seda kasutada. 414 00:19:00,240 --> 00:19:03,280 Nüüd, kui me liigume siin, Peamine oli analoogne me 415 00:19:03,280 --> 00:19:06,620 ütles puzzle tükk nimetatakse kui roheline lipp klõpsatud 416 00:19:06,620 --> 00:19:07,620 maailma Scratch. 417 00:19:07,620 --> 00:19:10,130 See on lihtsalt omamoodi Vaikimisi nimi, et inimesed 418 00:19:10,130 --> 00:19:13,340 otsustas kujutaks default lähtepunkt programmi. 419 00:19:13,340 --> 00:19:16,540 Patakas programmeerimine kood mis saab täidetud esimene. 420 00:19:16,540 --> 00:19:19,700 >> Vahepeal need looksulg on selline nagu kumera kujuga 421 00:19:19,700 --> 00:19:21,410 ja palju need kollased nullist tükki. 422 00:19:21,410 --> 00:19:24,860 Need omamoodi kapseldada kogu kamp juhiseid koos. 423 00:19:24,860 --> 00:19:28,350 Nii see lihtsalt omamoodi seob mõned on seotud funktsionaalsust. 424 00:19:28,350 --> 00:19:33,750 printf muidugi on funktsioon, mis trükib ekraanile, kui me just tegime. 425 00:19:33,750 --> 00:19:35,190 >> Aga need sulgudesse? 426 00:19:35,190 --> 00:19:38,770 Kuidas te define-- isegi kui te pole kunagi programmeeritud enne, aga mis põhineb 427 00:19:38,770 --> 00:19:41,320 Nüüdsest suurendades loodetavasti intuitsioon, mida 428 00:19:41,320 --> 00:19:43,290 on sulgudes teed meile siin? 429 00:19:43,290 --> 00:19:45,450 Või mida nad ümbritsevad? 430 00:19:45,450 --> 00:19:46,360 Jah? 431 00:19:46,360 --> 00:19:49,360 >> Üliõpilane: Nad ütlevad, mida sa lähed printida printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Humala: Jah, nad ütlevad, mida sa lähed printida printf. 433 00:19:52,401 --> 00:19:56,260 Või üldiselt on nad ümbritseva sisendite funktsioon. 434 00:19:56,260 --> 00:19:58,530 Nii saab peaaegu arvan Nende sulgudes 435 00:19:58,530 --> 00:20:01,620 olevaks, nagu metallist klipp selle lõikelauale. 436 00:20:01,620 --> 00:20:05,940 See on see, mis hoiab, see on see, mis on läheb kasutatavad argumendid 437 00:20:05,940 --> 00:20:08,500 arvesse funktsioon, mis Sel juhul nimetatakse printf. 438 00:20:08,500 --> 00:20:12,390 >> Nii et üldiselt peaaegu iga kord, kui me nimetame funktsiooni, 439 00:20:12,390 --> 00:20:14,280 me näeme paari sulgudes. 440 00:20:14,280 --> 00:20:17,000 Võib-olla midagi on see, nagu praegu, võib-olla midagi ta. 441 00:20:17,000 --> 00:20:19,770 Aga see, kui sa paneks sisendeid ja niinimetatud argumendid 442 00:20:19,770 --> 00:20:20,680 et funktsioon. 443 00:20:20,680 --> 00:20:22,470 >> Siin on üks selline argument. 444 00:20:22,470 --> 00:20:24,467 Olen rõhutanud kõik vahel hinnapakkumisi, 445 00:20:24,467 --> 00:20:26,300 sest see osutub Selles keeles nimetatakse 446 00:20:26,300 --> 00:20:29,950 C, kui soovite, et esindada string-- mis on sõna või fraas 447 00:20:29,950 --> 00:20:33,470 või isegi paragraph-- pead pange see jutumärgid. 448 00:20:33,470 --> 00:20:35,420 Ei ülakoma, jutumärgid. 449 00:20:35,420 --> 00:20:37,460 Ja see on täpselt see, mida ma olen teinud siin. 450 00:20:37,460 --> 00:20:39,900 >> Vahepeal seal funky sümbol lõpu poole sinna. 451 00:20:39,900 --> 00:20:41,600 Kenoviiva n. 452 00:20:41,600 --> 00:20:43,460 Mida me ütleme, et esindatud? 453 00:20:43,460 --> 00:20:44,093 Jah? 454 00:20:44,093 --> 00:20:44,980 >> Üliõpilane: uus liin. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Humala: Uus liin. 456 00:20:45,896 --> 00:20:47,910 Õigus, sa ei pea üldiselt Enter, kui 457 00:20:47,910 --> 00:20:50,430 soovite, et programm sülitama uus liin. 458 00:20:50,430 --> 00:20:54,210 Pigem sa öelda seda selgesõnaliselt seda küll kauge tükk 459 00:20:54,210 --> 00:20:58,770 süntaksi, längkriipsu n, et soovite uut rida sinna minna. 460 00:20:58,770 --> 00:20:59,810 Lõpuks semikooloniga. 461 00:20:59,810 --> 00:21:01,560 Me tegelikult ei räägi liiga palju sellest, 462 00:21:01,560 --> 00:21:04,893 ja kaugelt see on bane mõned oma eksisteerimise esimest probleem 463 00:21:04,893 --> 00:21:07,990 määrata, kui sa lihtsalt ei mõistnud unustasid midagi nii loll 464 00:21:07,990 --> 00:21:08,614 kui semikooloniga. 465 00:21:08,614 --> 00:21:11,600 Ja üldiselt paneb see seal fikseerib selle probleemi. 466 00:21:11,600 --> 00:21:13,511 Aga mida ta teeb meile, kas sa arvad? 467 00:21:13,511 --> 00:21:15,670 >> Õpilane: [kuuldamatu]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Humala: Vabandust? 469 00:21:17,484 --> 00:21:18,532 >> Õpilane: [kuuldamatu]. 470 00:21:18,532 --> 00:21:19,990 DAVID Humala: Viimistlus avalduse. 471 00:21:19,990 --> 00:21:22,770 See on omamoodi nagu perioodiks lõpuks inglise lause, 472 00:21:22,770 --> 00:21:25,790 arvestades, et selles keeles C, et see lõpeb avalduses. 473 00:21:25,790 --> 00:21:29,250 Juhendamise programmeerimine koodi, mis sa tahad öelda, 474 00:21:29,250 --> 00:21:30,500 Ma olen teinud seda. 475 00:21:30,500 --> 00:21:32,240 Nüüd teate, et on ainult üks siin. 476 00:21:32,240 --> 00:21:34,614 Nii et sa ei taha saada harjumus panna semikooloniga 477 00:21:34,614 --> 00:21:36,190 pärast iga suletud sulgudes. 478 00:21:36,190 --> 00:21:38,610 Näiteks polegi kõrval tühine ja me 479 00:21:38,610 --> 00:21:40,430 tagasi tulla tulevikus millises tühine vahend. 480 00:21:40,430 --> 00:21:44,080 Aga sel juhul oma printf on funktsioon või märge kasutatud, 481 00:21:44,080 --> 00:21:47,420 ja nii me tahame, et otsas päris lõpus ta. 482 00:21:47,420 --> 00:21:50,980 >> Ja ma tahtlikult kiusad C ja ausalt öeldes palju keeli nagu C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, ja mis tahes arv teistes keeltes on palju neid 484 00:21:55,000 --> 00:21:56,730 Sorteeri süntaktiliste detailid. 485 00:21:56,730 --> 00:22:00,120 See kindlasti, kui sa oled uus programmeerimise saab tõeliselt reisi sind. 486 00:22:00,120 --> 00:22:02,307 Ja siis märkige oma sõnad, mõned teist 487 00:22:02,307 --> 00:22:04,140 on see kogemus ametis tundi või hilja 488 00:22:04,140 --> 00:22:07,554 öösiti töötavad mõned p-set, kus teie neetud programm lihtsalt ei kompileerida, 489 00:22:07,554 --> 00:22:09,470 see ei tööta, siis on ei tea, mis viga, 490 00:22:09,470 --> 00:22:11,513 tundub täiesti loogiliselt õige teile. 491 00:22:11,513 --> 00:22:13,596 Ja see on sellepärast, et sa unustasid midagi pihta 492 00:22:13,596 --> 00:22:15,250 semikoolon lõpus mõned liin. 493 00:22:15,250 --> 00:22:17,590 >> Aga need on asju sa oled läheb kohe õppima nägema. 494 00:22:17,590 --> 00:22:20,048 Ja tõepoolest on need asjad et KA ja TF on 495 00:22:20,048 --> 00:22:23,210 on omamoodi treenitud nägema palju kiiremini kui sina. 496 00:22:23,210 --> 00:22:26,610 Ja nii see on ainult öelda, kui sukelduda probleem komplekt 1 eriti 497 00:22:26,610 --> 00:22:28,217 ei saa pettunud seda kraami. 498 00:22:28,217 --> 00:22:30,050 Kui oled omamoodi aklimatiseeruda maailma, siis 499 00:22:30,050 --> 00:22:35,130 hakkame nägema asju, mida sa ei pruugi vaata Esmapilgul esimesel nädalal. 500 00:22:35,130 --> 00:22:37,440 >> Nii et lähtekood on midagi sellist. 501 00:22:37,440 --> 00:22:40,370 Me tahame sinna juhitakse nn tõlkija. 502 00:22:40,370 --> 00:22:42,850 Ja et tõlkija kui ütlesime annab väljundi 503 00:22:42,850 --> 00:22:45,660 tuntud objekti koodi Niinimetatud nullid ja need. 504 00:22:45,660 --> 00:22:47,747 Aga sealt, mida see meile annab? 505 00:22:47,747 --> 00:22:49,080 Noh, see annab meile neid mudeleid. 506 00:22:49,080 --> 00:22:52,020 Ja jälle arvutis Intel inside, 507 00:22:52,020 --> 00:22:54,350 mõistab need mustrid nulli ja ones. 508 00:22:54,350 --> 00:22:57,300 Ja mõnikord muster kujutab tegelikku koma number 509 00:22:57,300 --> 00:22:59,770 nagu me nägime eelmisel nädalal, mõnikord see on kirjas 510 00:22:59,770 --> 00:23:02,730 nagu nägime eelmisel nädalal, mõnikord see on juhendamise, 511 00:23:02,730 --> 00:23:05,460 nagu trükkimine midagi ekraanil. 512 00:23:05,460 --> 00:23:08,782 >> Nii printf jaoks instance-- vaid pigem, lubage mul tagasi kerida. 513 00:23:08,782 --> 00:23:11,240 Me oleme olnud võttes iseenesestmõistetavana et need nullid ja need on 514 00:23:11,240 --> 00:23:14,200 toodetud selle käsu make. 515 00:23:14,200 --> 00:23:16,050 Aga teha ei ole tõlkija. 516 00:23:16,050 --> 00:23:19,370 Tee ei ole asi keskel mis on tootva nulli ja ones. 517 00:23:19,370 --> 00:23:23,780 Pigem teha on lihtsalt väga mugavalt nimega programmi, mille eesmärk elus 518 00:23:23,780 --> 00:23:27,267 on sisuliselt välja selgitada, kuidas koostada oma programmi. 519 00:23:27,267 --> 00:23:29,350 Ja me kasutame seda nende Esimestel nädalatel, sest see lihtsalt 520 00:23:29,350 --> 00:23:30,910 säästab meid palju vaeva. 521 00:23:30,910 --> 00:23:34,080 >> Aga mida teha, on tõesti teed, kui sa kompileerida hello, 522 00:23:34,080 --> 00:23:36,690 on, nagu me ütlesime, viimane kord, et see on otsin kõvakettal 523 00:23:36,690 --> 00:23:40,620 või aktiivse kausta jaoks faili nimega, mida ilmselt? 524 00:23:40,620 --> 00:23:41,815 Hello.c, eks? 525 00:23:41,815 --> 00:23:43,190 See on lihtsalt selline konventsioon. 526 00:23:43,190 --> 00:23:45,620 See on meelevaldne, kuid see, kuidas asjad on. 527 00:23:45,620 --> 00:23:48,620 Tee, kui sa lihtsalt nimetage programmi, mis ei ole veel olemas, 528 00:23:48,620 --> 00:23:52,200 see läheb otsima lähtekoodi aasta faili, vaikimisi tähendab hello.c. 529 00:23:52,200 --> 00:23:53,530 Ja kui ta leiab, suur. 530 00:23:53,530 --> 00:23:56,650 See saab teisendada, et allikas kood objekti kood teile. 531 00:23:56,650 --> 00:23:59,670 >> Aga iga kord, kui ma vajuta Enter peale jooksu teha hello, 532 00:23:59,670 --> 00:24:03,560 , kas sa mäletad nägemine viimast korda üsna pikk ja segasena jada 533 00:24:03,560 --> 00:24:06,430 teiste valgete tähtedega ja tegelased ekraanil? 534 00:24:06,430 --> 00:24:11,220 Noh, mis oli tegelik käsk, tegelik koostaja, et jooksin. 535 00:24:11,220 --> 00:24:15,500 Nii et tegelik koostaja me kasutame enamik semester on midagi, mida nimetatakse rõkkama. 536 00:24:15,500 --> 00:24:19,280 Mõned teist võivad olla kasutatud Visual Studio enne või GCC, 537 00:24:19,280 --> 00:24:21,340 või mõnel teisel koostajad. 538 00:24:21,340 --> 00:24:22,620 Me kasutame rõkkama. 539 00:24:22,620 --> 00:24:26,950 >> Ja rõkkama võimaldab meil tegelikult teisendada et lähtekoodi Objekti kood. 540 00:24:26,950 --> 00:24:29,430 Mida see tegelikult praktikas tähendab? 541 00:24:29,430 --> 00:24:33,390 Noh lase mul minna ühte Minu kaustad viimast korda. 542 00:24:33,390 --> 00:24:35,760 Toas CS50 seade. 543 00:24:35,760 --> 00:24:42,080 Ja lubage mul minna ja luua selle sama faili, sisaldab standard I / O punkti h. 544 00:24:42,080 --> 00:24:42,875 Int main void. 545 00:24:42,875 --> 00:24:46,000 Ja me tuleme ka tulevikus millises Int tähendab ja mida void abil. 546 00:24:46,000 --> 00:24:49,130 Aga nüüd teeme hello world längkriipsu n, 547 00:24:49,130 --> 00:24:50,500 just nagu me tegime laual. 548 00:24:50,500 --> 00:24:53,930 >> Las ma salvestada see fail nimega hello.c. 549 00:24:53,930 --> 00:24:58,280 Ja nüüd, kui ma tahan, et koostada selle Ma kas-- lubage mul suumida sisse-- run 550 00:24:58,280 --> 00:25:00,450 teha hello siseneda. 551 00:25:00,450 --> 00:25:02,645 Ja see kord oli et väga segasena liin. 552 00:25:02,645 --> 00:25:05,120 Aga nüüd on vähemalt üks sõna ilmselt hüppab välja ennast. 553 00:25:05,120 --> 00:25:07,087 Rõkkama on see, et liin nägime enne. 554 00:25:07,087 --> 00:25:10,420 Nüüd on palju muid asju ausalt et me laine oma käsi täna. 555 00:25:10,420 --> 00:25:14,020 Aga seal on mõned alajaotused, mõned tegelased siin 556 00:25:14,020 --> 00:25:14,907 mis pakuvad huvi. 557 00:25:14,907 --> 00:25:16,490 Aga ma lähen edasi minna ja seda teha. 558 00:25:16,490 --> 00:25:18,281 Ma lähen esietendus Tere, lihtsalt tõestada 559 00:25:18,281 --> 00:25:20,320 et see töötab, sest see oli esmaspäev. 560 00:25:20,320 --> 00:25:22,330 Aga nüüd ma lähen kustutada programmi. 561 00:25:22,330 --> 00:25:25,870 Ja palju nagu meil oli neid Lühinimede viimane kord, 562 00:25:25,870 --> 00:25:29,787 käsu eemaldamiseks midagi on rm, eemaldada siseneda. 563 00:25:29,787 --> 00:25:31,870 Sa lähed, et saaksin üsna segasena küsimusi. 564 00:25:31,870 --> 00:25:35,210 Raske uskuda, et saad teha isegi sellele küsimusele raske mõista. 565 00:25:35,210 --> 00:25:38,100 Aga võtke tavaline fail tere lihtsalt vahenditega seda, mida soovid kustutada tere. 566 00:25:38,100 --> 00:25:42,650 >> Ja ma ei saa minna ja kirjuta y jah, Enter, ja nüüd on see kadunud. 567 00:25:42,650 --> 00:25:45,130 Mida see tähendab nüüd, kui ma kustutada minu ekraanil, 568 00:25:45,130 --> 00:25:47,301 on, et selle asemel, et teed tegema hello-- sa 569 00:25:47,301 --> 00:25:48,800 Tead mis, ma olen selles osav. 570 00:25:48,800 --> 00:25:50,690 Ma lähen jooksma koostaja ise. 571 00:25:50,690 --> 00:25:53,330 Ma ei pea mõned programmi aru saada, mis minu faili nimi on. 572 00:25:53,330 --> 00:25:55,370 Kirjutasin hello.c, I tea kuidas seda kutsutakse, 573 00:25:55,370 --> 00:25:57,640 Ma olen selgelt võimelised kirjutades seda. 574 00:25:57,640 --> 00:26:02,620 Ma lähen edasi minna ja ei ripu hello.c Enter. 575 00:26:02,620 --> 00:26:03,264 >> Tundub, et töö. 576 00:26:03,264 --> 00:26:05,930 Ja pole mingit täiendavat toodangut, sest rõkkama on tõlkija. 577 00:26:05,930 --> 00:26:08,590 See on see, mis matab lähtekoodi nulli ja ones. 578 00:26:08,590 --> 00:26:12,870 Nii et kui ma nüüd tegema dot kaldkriips hello Enter, hm. 579 00:26:12,870 --> 00:26:14,630 New veateate täna. 580 00:26:14,630 --> 00:26:17,610 Nii bash on lihtsalt nimi vilgub kiiresti, et me kasutame. 581 00:26:17,610 --> 00:26:20,360 See on raske järeleandmisi, aga nüüd, et kõik, mis on, 582 00:26:20,360 --> 00:26:21,401 see vilgub kiiresti. 583 00:26:21,401 --> 00:26:22,880 Ja sellepärast, et see karjuma meid. 584 00:26:22,880 --> 00:26:25,690 >> Sellist faili või kataloogi ei natuke rohkem arusaadav. 585 00:26:25,690 --> 00:26:28,190 Aga kindlasti ma tegin, et objekti kood. 586 00:26:28,190 --> 00:26:30,930 Aga saak on, et kui ma tippige käsk 587 00:26:30,930 --> 00:26:34,650 loetleda sisuga kataloog, mis on mis? 588 00:26:34,650 --> 00:26:36,210 LS nimekirja. 589 00:26:36,210 --> 00:26:39,332 Seal on hunnik asju siin, millest mõned tulid koos seadmega, 590 00:26:39,332 --> 00:26:42,040 nagu minu töölaua kausta Downloads kausta Dropbox kausta ja kõik 591 00:26:42,040 --> 00:26:42,850 mis värk. 592 00:26:42,850 --> 00:26:45,410 Aga mis on huvitav on hello.c, mis 593 00:26:45,410 --> 00:26:47,286 Ma lõin hetk tagasi koos gedit. 594 00:26:47,286 --> 00:26:49,160 Ja mis kõige veidram otsin nime siin 595 00:26:49,160 --> 00:26:53,110 võib-olla, et me ei vaata viimase aja üldse? 596 00:26:53,110 --> 00:26:54,710 >> a.out, eks? 597 00:26:54,710 --> 00:26:56,920 Niisiis tagasi päevas, see oli lihtsalt otsustanud, et kui 598 00:26:56,920 --> 00:26:58,760 kompileerida programm jaoks esmakordselt 599 00:26:58,760 --> 00:27:02,360 ja te ei täpsusta nimi faili, olgem kutsuvad seda. 600 00:27:02,360 --> 00:27:05,800 Ja a.out tähendab lihtsalt, et see oli väljund tõlkija. 601 00:27:05,800 --> 00:27:07,790 Nii et see on jube nimi programm. 602 00:27:07,790 --> 00:27:12,820 Aga selle loogika dot kaldkriips eest Praegune kataloog, kaldkriips a.out, 603 00:27:12,820 --> 00:27:16,102 peaks tähendama seal tegelikult minu programmi Hello World. 604 00:27:16,102 --> 00:27:17,560 Nüüd veidi soojeneda kasutamise ka. 605 00:27:17,560 --> 00:27:20,420 Kui ma tahan ümber nimetada fail, tuleb välja, et sa 606 00:27:20,420 --> 00:27:23,000 liikuda faili ühest nimi teise. 607 00:27:23,000 --> 00:27:28,750 Nii mv a.out, ja siis ma võib helistada see hello Enter. 608 00:27:28,750 --> 00:27:30,940 Nii et see on Linux käsk. 609 00:27:30,940 --> 00:27:34,370 DOS oli see aasta tagasi, Windows on terminali aknas 610 00:27:34,370 --> 00:27:36,460 mingisugune, mis näeb niimoodi, Linux ja Mac 611 00:27:36,460 --> 00:27:38,140 arvutid on see vilgub kiiresti. 612 00:27:38,140 --> 00:27:41,490 Kuigi enamik meist ilmselt Harva, kui üldse, kasuta seda. 613 00:27:41,490 --> 00:27:44,590 >> Aga mida ma olen teinud, on käivitada programm, mille nimi on mv, 614 00:27:44,590 --> 00:27:47,900 ja ma olen andnud talle kaks argumenti, nii rääkida. 615 00:27:47,900 --> 00:27:48,630 Kaks sisendit. 616 00:27:48,630 --> 00:27:50,260 a.out on algne nimi. 617 00:27:50,260 --> 00:27:51,630 Tere on uus nimi. 618 00:27:51,630 --> 00:27:55,670 Nii et kui ma nüüd tegema dot kaldkriips tere, Enter, et on olemas. 619 00:27:55,670 --> 00:28:00,770 Ja kui ma dot kaldkriips a.out, Mida ootate ma peaks nägema? 620 00:28:00,770 --> 00:28:02,250 >> Bash ei ole sellist faili või kataloogi. 621 00:28:02,250 --> 00:28:03,350 Sest ma lihtsalt ümber ta. 622 00:28:03,350 --> 00:28:04,975 Nii et see võtab natuke harjumist. 623 00:28:04,975 --> 00:28:06,977 Aga probleem komplekt 1 spetsifikatsioon tõeliselt 624 00:28:06,977 --> 00:28:08,810 hoidke oma käsi läbi mõned selle minutae. 625 00:28:08,810 --> 00:28:11,050 Kuna see on täielik intellektuaalse häiritud 626 00:28:11,050 --> 00:28:12,966 huvipakkuvatest ideid käepärast, mis 627 00:28:12,966 --> 00:28:15,310 on tegelikult luua midagi välja kood. 628 00:28:15,310 --> 00:28:18,830 Aga teeme ühe modifikatsiooni nüüd see programm. 629 00:28:18,830 --> 00:28:23,150 >> Tuletame meelde, et viimane kord, kui ma tegin midagi niimoodi, printf oma nimi. 630 00:28:23,150 --> 00:28:25,790 Ja tõepoolest me tegime seda suurel ekraanil seal. 631 00:28:25,790 --> 00:28:30,640 Ja siis ma tegin string s saab GetString avatud paren lähedal paren. 632 00:28:30,640 --> 00:28:33,430 Ja paren lihtsalt stenografist märke sulgudes. 633 00:28:33,430 --> 00:28:36,460 Nii ei getString võtta argumendid? 634 00:28:36,460 --> 00:28:38,440 Nr sisendid ei, kuid see vajab sulgudes 635 00:28:38,440 --> 00:28:41,830 sest see, mida piiritleb kutsumise funktsiooni. 636 00:28:41,830 --> 00:28:46,440 >> Nii et ma lähen edasi minna ja proovida käivitada kompilaator selle programmi nüüd. 637 00:28:46,440 --> 00:28:50,774 Rõkkama hello.c, sest ma ei muutu selle nimi nüüd. 638 00:28:50,774 --> 00:28:51,940 Ja mul on hunnik vigu. 639 00:28:51,940 --> 00:28:53,570 Lähme välja suumida siin. 640 00:28:53,570 --> 00:28:55,420 Kui ma liikuge jälle, nagu ma ütlesin eelmisel korral, 641 00:28:55,420 --> 00:28:58,420 Lisa esiteks sama viga et ma sain eelmine kord. 642 00:28:58,420 --> 00:29:04,210 On line 6 hello.c Pidin deklareerimata tunnus string, 643 00:29:04,210 --> 00:29:05,590 ei ma mõtlen standard? 644 00:29:05,590 --> 00:29:06,750 Ma ei teinud seda. 645 00:29:06,750 --> 00:29:10,050 Sest see, mis viga on tegin selle programm, kui te mäletate viimast korda? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Jah, me peame nn Apupyörät 648 00:29:15,010 --> 00:29:16,510 et me lihtsalt kasutada mõne nädala jooksul. 649 00:29:16,510 --> 00:29:19,480 Aga mul on vaja täpsustada, et ka kusagil seadme sisemust, 650 00:29:19,480 --> 00:29:22,720 on fail, mis me kirjutasime paar aastat tagasi. 651 00:29:22,720 --> 00:29:26,500 Mille sees on funktsioonid nagu ilmselt getString. 652 00:29:26,500 --> 00:29:35,160 Nüüd, kui ma lähen tagasi siin, suurendamiseks ja uuesti käivitada rõkkama hello.c. 653 00:29:35,160 --> 00:29:36,500 Kurat, teine ​​viga. 654 00:29:36,500 --> 00:29:38,590 Aga me ei ole näinud seda varem. 655 00:29:38,590 --> 00:29:41,900 >> See üks on natuke rohkem esoteeriline nuputada. 656 00:29:41,900 --> 00:29:46,910 Aga see on tahtlikult ekraanil sest me tahtsime seda lugu rääkida. 657 00:29:46,910 --> 00:29:51,280 Kui sa kompileerida hello.c, nagu pilti enne ettepaneku, 658 00:29:51,280 --> 00:29:54,650 sa oled ainult konverteeriva et lähtekoodi nulli ja ones. 659 00:29:54,650 --> 00:30:00,340 Nüüd CS50 personali paar aastat tagasi kirjutas CS50.h ja vastavate dokumentide, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 Ja meie, paar aastat tagasi, koostatakse neid faile 662 00:30:04,490 --> 00:30:07,290 toimikusse, mis juhtub mida nimetatakse CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Või seda saab ümber vähe erinevaid asju. 664 00:30:09,180 --> 00:30:11,054 Aga see on lihtne viis mõelda seda. 665 00:30:11,054 --> 00:30:14,960 Nii et me koostatud CS50 on Teegi nulli ja ones. 666 00:30:14,960 --> 00:30:20,340 Aga kusagil on määratletud I et ma tahan ühendada oma nullidega 667 00:30:20,340 --> 00:30:24,030 ja need mu hello world programmi nulli ja need 668 00:30:24,030 --> 00:30:29,760 et CS50 töötajate loodud paar aastat tagasi ühe täieliku programmi. 669 00:30:29,760 --> 00:30:34,100 Kõik, mida ma olen määratud kirjalikult rõkkama hello.c on koostada hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Ma ei ole öelnud rõkkama kuni lüli nulli ja need 671 00:30:38,380 --> 00:30:41,650 et CS50 töötajate loodud Teile mõni aeg tagasi. 672 00:30:41,650 --> 00:30:48,280 Nii et see on lihtne lahendus, kriips l link, CS50. 673 00:30:48,280 --> 00:30:52,600 Ja me jälle näha seda Enne pikk ja jälle. 674 00:30:52,600 --> 00:30:54,420 Aga teate nüüd ei olnud kaebusi. 675 00:30:54,420 --> 00:30:59,770 Nüüd, kui ma saan dot kaldkriips tere, nüüd see töötab. 676 00:30:59,770 --> 00:31:03,840 Kuigi see on natuke eksitav sest ma lihtsalt taasloodi mida faili? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Nii et lubage mul kerida hetkeks. 679 00:31:07,930 --> 00:31:10,900 Programm me lihtsalt koostada on kolm rida koodi. 680 00:31:10,900 --> 00:31:14,710 Kui ma jooksin hello world, hello hetk tagasi, ma ei näe oma nimi. 681 00:31:14,710 --> 00:31:17,080 Ja see on sellepärast, et ma jooksin vana versioon programm. 682 00:31:17,080 --> 00:31:22,700 Aga kui ma tõesti joosta dot kaldkriips a.out Sisesta, oma nimi, Rob, tere, 683 00:31:22,700 --> 00:31:23,370 maailma. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 See on omamoodi viga. 686 00:31:26,110 --> 00:31:28,560 Tõenäoliselt tähendas öelda Rob, eks? 687 00:31:28,560 --> 00:31:30,997 Mis siis fix siin koodi. 688 00:31:30,997 --> 00:31:31,872 Õpilane: [kuuldamatu]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Humala: Täpselt. 691 00:31:39,290 --> 00:31:43,160 Nii et ma lihtsalt vaja teha, et lõplik näpistama nii et ma möödaminnes kohatäide, 692 00:31:43,160 --> 00:31:45,690 nagu täitke tühi, nagu me tegime hetk tagasi. 693 00:31:45,690 --> 00:31:47,870 Kuid protsenti s nüüd et täita tühjaks. 694 00:31:47,870 --> 00:31:52,100 Nii et lõpuks hakkame paljastada viimane üksikasjalikult, nii et seal ei ole magic. 695 00:31:52,100 --> 00:31:54,090 Ma lähen edasi minna ja vabaneda hellow. 696 00:31:54,090 --> 00:31:56,070 Ma lähen edasi minna ja vabaneda a.out. 697 00:31:56,070 --> 00:31:58,410 Nii et nüüd ma ei ole programmid, lihtsalt minu lähtekoodi. 698 00:31:58,410 --> 00:32:01,100 Ja ma lähen jooksma veidi enam käsu rõkkama 699 00:32:01,100 --> 00:32:05,650 kriips o hello hello.c kriips LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Nüüd hakkab justkui minema ühest kõrvast sisse ja teisest välja ehk. 701 00:32:08,700 --> 00:32:10,366 Aga tease peale, mida see teeb. 702 00:32:10,366 --> 00:32:14,910 Rõkkama on kompilaatori kriips LCS50 tahtlikult päris lõpus 703 00:32:14,910 --> 00:32:18,330 teeb mida lause? 704 00:32:18,330 --> 00:32:19,607 Lingid CS50 raamatukogu. 705 00:32:19,607 --> 00:32:21,440 Haarab nulli ja need, mis tehtud personalile 706 00:32:21,440 --> 00:32:23,310 ja crams neid oma programmi. 707 00:32:23,310 --> 00:32:27,040 Nii et viimane küsimus käepärast on, Mis on kriips o hello ilmselt 708 00:32:27,040 --> 00:32:30,530 teed, isegi kui te pole kunagi näinud seda süntaksit enne? 709 00:32:30,530 --> 00:32:34,920 >> Kirjutamine programm, mis on mitte nimega default a.out. 710 00:32:34,920 --> 00:32:37,330 Pigem on see nimega hello. 711 00:32:37,330 --> 00:32:39,460 Nüüd ei ole a.out. 712 00:32:39,460 --> 00:32:42,660 No sellist faili või kataloogi sest ma selgelt öelda 713 00:32:42,660 --> 00:32:46,720 nimetame seda programmi hello, nii et Ma võin nüüd kirjutad nime niimoodi 714 00:32:46,720 --> 00:32:47,790 ja on see käituma. 715 00:32:47,790 --> 00:32:50,180 >> Nüüd ausalt öeldes poiss on see, et ebahuvitav on 716 00:32:50,180 --> 00:32:52,170 meeles pidada kõiki, et vähe minutia, eks? 717 00:32:52,170 --> 00:32:54,180 Nii et lähme edasi ja vabaneda tere jälle. 718 00:32:54,180 --> 00:32:57,880 Ja olgem nüüd naasta maailma mis on piisav, et öelda, teha tere. 719 00:32:57,880 --> 00:33:00,410 Aga see on maagia, mis tee läheb teile, 720 00:33:00,410 --> 00:33:02,320 see tüütus, et ta teeb teile. 721 00:33:02,320 --> 00:33:04,630 Ja kui meie programmide ja probleeme saada keerulisemas 722 00:33:04,630 --> 00:33:06,142 teha on tõesti sinu sõber. 723 00:33:06,142 --> 00:33:07,850 Sest mitte liiga pikk nüüd me läheme 724 00:33:07,850 --> 00:33:11,150 on programmid, mis on kirjutatud mitte ühe faili, kuid mitu faili, 725 00:33:11,150 --> 00:33:16,310 ja teha saab automatiseerida protsessi koostada kõik, et meid kokku. 726 00:33:16,310 --> 00:33:20,620 >> Nüüd printida. 727 00:33:20,620 --> 00:33:24,960 printf on sees seda faili standard I / O punkti h, et me oleme näinud, 728 00:33:24,960 --> 00:33:26,980 aga see pole veel kõik printf kui see. 729 00:33:26,980 --> 00:33:30,482 Seal längkriipsu n, kuid seal on ka hunnik muid põgeneda järjestusi. 730 00:33:30,482 --> 00:33:32,940 Ja sümboliga on lihtsalt fancy viis öelda midagi 731 00:33:32,940 --> 00:33:35,990 mis algab längkriipsu, ei kaldkriipsuga, längkriipsu, 732 00:33:35,990 --> 00:33:37,920 ja kas seal eriline asi. 733 00:33:37,920 --> 00:33:43,770 Ja me ei tegele enamik neist, kuid miks on Kurakaldkriips jutumärke, 734 00:33:43,770 --> 00:33:44,830 Mis sa arvad? 735 00:33:44,830 --> 00:33:48,010 Miks on see imelik jada tegelased, längkriipsu jutumärke, 736 00:33:48,010 --> 00:33:50,505 miks see võiks olla kasulik? 737 00:33:50,505 --> 00:33:51,380 Õpilane: [kuuldamatu]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Humala: Täpselt nii, eks? 740 00:33:57,760 --> 00:34:01,830 Mõtle tagasi meie programmi Hello World et me oleme näinud üsna paar korda nüüd, 741 00:34:01,830 --> 00:34:05,880 iga kord, kui oleme näinud, et hello world programmi oleme olnud jutumärkide sees 742 00:34:05,880 --> 00:34:08,210 millest on hello komaga maailma tagurpidi kaldkriipsuga n. 743 00:34:08,210 --> 00:34:10,070 Aga arvan, et ise, Mis siis, kui sa tegelikult 744 00:34:10,070 --> 00:34:12,520 tahtsin välja printida jutumärgid? 745 00:34:12,520 --> 00:34:16,100 Sinu esimene instinkt võib olla, ma ei tea, miks ma tahta tegema-- siin 746 00:34:16,100 --> 00:34:18,780 saame olla veidi passiivne agressiivne, tere sõber. 747 00:34:18,780 --> 00:34:21,350 Meil võite teha midagi sellist. 748 00:34:21,350 --> 00:34:25,230 >> Aga miks on see nüüd problemaatiline? 749 00:34:25,230 --> 00:34:28,730 Ignoreerimine lokkis hinnapakkumisi kõrvale, et Keynote tegi meile automaatselt. 750 00:34:28,730 --> 00:34:29,730 Miks on see problemaatiline? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Täpselt. 753 00:34:37,270 --> 00:34:39,022 Kuna meil on nagu 4 jutumärke. 754 00:34:39,022 --> 00:34:41,230 Noh esimene ilmselt läheb teine, 755 00:34:41,230 --> 00:34:43,271 ja võibolla neljas läheb kolmas, 756 00:34:43,271 --> 00:34:46,170 või tähendab, ma pole isegi kindel, ega arvuti saab olema. 757 00:34:46,170 --> 00:34:48,352 Arvutid jälle koostajad jälle on üsna loll. 758 00:34:48,352 --> 00:34:50,060 Nad ainult seda, mida sa ütle neile, mida teha. 759 00:34:50,060 --> 00:34:54,270 Ja kui sa ei ole üheselt mõistetav nad ilmselt läheb visata viga. 760 00:34:54,270 --> 00:34:57,700 >> Kui sa ei ole üheselt mõistetav, kuidas teha maapähklivõi ja tarrend sandwich 761 00:34:57,700 --> 00:34:59,510 kummalised asjad võiksid jõuda. 762 00:34:59,510 --> 00:35:00,580 See on sama mõte. 763 00:35:00,580 --> 00:35:03,100 Nüüd piisab, kui öelda pole mõne muu põgeneda järjestusi, 764 00:35:03,100 --> 00:35:04,820 kuid me tuleme neile enne pikk. 765 00:35:04,820 --> 00:35:07,410 Sisuliselt need põgeneda järjestused esindavad midagi 766 00:35:07,410 --> 00:35:10,480 et sa ei pruugi olla võimalik liiga lihtne klaviatuuri, 767 00:35:10,480 --> 00:35:12,010 ilma segadusse arvuti. 768 00:35:12,010 --> 00:35:15,733 >> Nüüd vahepeal oleme Kohanäitajad printf. 769 00:35:15,733 --> 00:35:19,630 Protsenti d, mida võib ka kirjaliku Peaaegu kõikidel juhtudel protsenti i, 770 00:35:19,630 --> 00:35:21,610 on kohatäide millist tüüpi andmeid? 771 00:35:21,610 --> 00:35:23,920 Mis tüüpi väärtus? 772 00:35:23,920 --> 00:35:24,920 Kümnendmurruna. 773 00:35:24,920 --> 00:35:27,234 Nii et tegelikult hakkame kasutades protsenti i, sest see on 774 00:35:27,234 --> 00:35:28,650 vähe lihtsam, nagu täisarv. 775 00:35:28,650 --> 00:35:29,550 Protsenti i. 776 00:35:29,550 --> 00:35:31,320 Täisarv, mis juhtub olema koma. 777 00:35:31,320 --> 00:35:35,690 >> Protsent on meil juba ütles, oli kohatäide string. 778 00:35:35,690 --> 00:35:38,630 Mis on lihtsalt üks sõna, fraas, lõikes, essee, mis iganes. 779 00:35:38,630 --> 00:35:40,830 See järjestus tegelased põhjalikkusega. 780 00:35:40,830 --> 00:35:42,820 Ja me näeme peagi mõned neist teised. 781 00:35:42,820 --> 00:35:45,950 Aga protsenti c on ühe märgi. 782 00:35:45,950 --> 00:35:48,500 Protsenti f on murdarv, 783 00:35:48,500 --> 00:35:50,860 nagu tegelik arv, mis on koma on see, mis 784 00:35:50,860 --> 00:35:52,550 Loomulikult ei ole täisarv. 785 00:35:52,550 --> 00:35:54,670 Ja seal on terve kamp ka teistele. 786 00:35:54,670 --> 00:35:56,990 >> Vahepeal C ja aastal palju keeli, 787 00:35:56,990 --> 00:35:58,650 meil on erinevaid andmetüüpe. 788 00:35:58,650 --> 00:36:00,650 Erinevad klaasist potid kui soovite. 789 00:36:00,650 --> 00:36:03,830 Kaussi Ma kasutasin viimast korda oli ping pong pallid, 790 00:36:03,830 --> 00:36:06,990 kuid me ei saa ka salvestada erinevaid väärtused nagu tähte ja stringid 791 00:36:06,990 --> 00:36:10,820 ja täisarvude konteineri nagu muutuja, ja C on neist. 792 00:36:10,820 --> 00:36:14,020 Char on tüüpi andmeid, tüüpi muutuja 793 00:36:14,020 --> 00:36:15,700 kus saab salvestada iseloomu. 794 00:36:15,700 --> 00:36:19,560 Float on teatud tüüpi muutuja mida saab salvestada tegelikku arvu. 795 00:36:19,560 --> 00:36:21,220 >> Int on muidugi int. 796 00:36:21,220 --> 00:36:23,760 Ja pigem naeruväärselt nimega pikka 797 00:36:23,760 --> 00:36:26,830 on koht, kus saate talletada sisuliselt tõesti pikk number, isegi 798 00:36:26,830 --> 00:36:29,930 rohkem numbrit siis Tüüpiline int võib salvestada. 799 00:36:29,930 --> 00:36:32,420 Aga me tuleme tagasi, et enne pikk. 800 00:36:32,420 --> 00:36:35,520 >> In CS50 dot h vahepeal Teisest päisefailist 801 00:36:35,520 --> 00:36:37,630 et me oleme näinud paar korda kasutusel, seal 802 00:36:37,630 --> 00:36:41,350 kaks teist tüüpi andmeid, et ei ole olemas C tavaliselt. 803 00:36:41,350 --> 00:36:45,000 Üks on string, ja me näeme paar nädalat, mis stringid tõesti 804 00:36:45,000 --> 00:36:46,610 on all kapuuts. 805 00:36:46,610 --> 00:36:47,950 Ja üks on tõeväärtus. 806 00:36:47,950 --> 00:36:51,650 Ja bool on muutuja, mis saavad olla ainult teatud väärtusi. 807 00:36:51,650 --> 00:36:54,370 Ja just põhineb eelmisel nädalal selgitus Scratch, 808 00:36:54,370 --> 00:36:56,680 ja hiljuti C mida sa vist 809 00:36:56,680 --> 00:37:01,770 on kaks võimalikku väärtust mõned mahuti, mis on tüüpi bool? 810 00:37:01,770 --> 00:37:02,860 >> Jah ja ei. 811 00:37:02,860 --> 00:37:03,870 Üks ja null. 812 00:37:03,870 --> 00:37:04,502 Õige või vale. 813 00:37:04,502 --> 00:37:07,460 Ja tõepoolest see on viimane, mis kipub olla tavalised programmeerimine 814 00:37:07,460 --> 00:37:10,030 keeles, öeldes midagi nagu õige või vale. 815 00:37:10,030 --> 00:37:13,160 >> Vahepeal CS50 raamatukogu on hunnik funktsioone 816 00:37:13,160 --> 00:37:16,640 et töötajad kirjutasid sa, Lisaks lihtsalt saada string. 817 00:37:16,640 --> 00:37:20,910 Me kirjutasime eelnevalt funktsioone, saan täisarv kasutaja, 818 00:37:20,910 --> 00:37:22,990 saada ühe märgi, saada float, et 819 00:37:22,990 --> 00:37:25,160 on lihtsalt number koos koma. 820 00:37:25,160 --> 00:37:28,290 Saada pikka, tõesti suur väärtus kasutaja. 821 00:37:28,290 --> 00:37:30,930 Nii et me oleme näinud ainult seda tegevuse vormis getString. 822 00:37:30,930 --> 00:37:33,230 Aga läbi nende funktsioonid varsti võimalik kirjutada 823 00:37:33,230 --> 00:37:36,070 programme, mis saada sisend kasutaja. 824 00:37:36,070 --> 00:37:39,230 >> Vahepeal peab seda programmi ning kaaluda 825 00:37:39,230 --> 00:37:42,600 kuidas me võiksime praegu hakata lisama et seda uute konstrueerib. 826 00:37:42,600 --> 00:37:44,530 Kiire tuulispask tour ja siis me vaatame 827 00:37:44,530 --> 00:37:47,340 mõned kirjalikult mõned programmid käsitsi ise. 828 00:37:47,340 --> 00:37:49,700 Edaspidi, kui tahame rakendada tingimusel, 829 00:37:49,700 --> 00:37:52,790 see ei hakka nägema kena väike ilus puzzle tükk. 830 00:37:52,790 --> 00:37:54,460 See saab vaadata veidi rohkem kauge. 831 00:37:54,460 --> 00:37:57,620 Aga see on kanooniline struktuuri tingimus C. 832 00:37:57,620 --> 00:38:00,380 >> Sõna kui kaks sulgudes, mille sees 833 00:38:00,380 --> 00:38:02,590 saab olema mingi Boolean väljend. 834 00:38:02,590 --> 00:38:04,999 Nüüd kaldkriipsuga kaldkriips keskel, see on 835 00:38:04,999 --> 00:38:07,290 hetkel omamoodi nagu pseudokoodi kood kohatäide. 836 00:38:07,290 --> 00:38:11,576 Aga enam korralikult, iga rida koodi C, mis algab kaldkriipsuga kaldkriips 837 00:38:11,576 --> 00:38:12,850 on kommentaar. 838 00:38:12,850 --> 00:38:15,920 >> See on nagu kleepuv teadmiseks, et võite panna essee, trükitakse paberile. 839 00:38:15,920 --> 00:38:17,290 See märkus iseendale. 840 00:38:17,290 --> 00:38:20,100 See ei ole funktsionaalne mõju programmile. 841 00:38:20,100 --> 00:38:23,580 See on omamoodi meeldetuletus, et see on teie enda dokumendid selle kohta, mis toimub. 842 00:38:23,580 --> 00:38:25,720 Nii et seda hetkel on omamoodi kohatäide 843 00:38:25,720 --> 00:38:27,560 mis iganes seal sees need looksulg 844 00:38:27,560 --> 00:38:29,810 lõpuks läheb midagi teha. 845 00:38:29,810 --> 00:38:35,160 >> Vahepeal on teil kaks kahvlid tee, kui veel ehitada niimoodi. 846 00:38:35,160 --> 00:38:37,024 Võite kui elseif, muud. 847 00:38:37,024 --> 00:38:39,690 Nüüd see on väärt märkimist, eriti kui olete olnud Googling ümber 848 00:38:39,690 --> 00:38:42,480 Online ressursse välja uudishimu või kui te kiirenemist 849 00:38:42,480 --> 00:38:44,575 üks kursuse soovitatud raamatuid C, 850 00:38:44,575 --> 00:38:48,430 näed, et inimestel on palju erinevate soodustuste kuidas 851 00:38:48,430 --> 00:38:50,510 väljendada end kood. 852 00:38:50,510 --> 00:38:53,800 Mõnedele inimestele meeldib panna looksulg nagu ma olen teinud siin. 853 00:38:53,800 --> 00:38:57,760 Mõnedele inimestele meeldib panna lokkis traksid näiteks siin. 854 00:38:57,760 --> 00:39:01,700 >> Mõnedele inimestele meeldib panna elses siin ja siis see siia. 855 00:39:01,700 --> 00:39:05,120 Seal on igal mitmeid võimalusi kirjutada koodi, ja ükski neist ei 856 00:39:05,120 --> 00:39:06,566 on õigus iseenesest. 857 00:39:06,566 --> 00:39:08,440 Kuigi seal on mõned mis on päris vale. 858 00:39:08,440 --> 00:39:11,315 Kuid on ei--, kui see on lõppkokkuvõttes väga religioosne arutelu. 859 00:39:11,315 --> 00:39:13,940 Tegelikult üks kõige tüütu asju arvutiteadus 860 00:39:13,940 --> 00:39:16,310 kuidas otsaga infotehnoloogid saab. 861 00:39:16,310 --> 00:39:19,880 Ja leiad aja jooksul, et isegi arendada isiklikke eelistusi 862 00:39:19,880 --> 00:39:22,130 selle kohta, kuidas oma koodi peaks otsima. 863 00:39:22,130 --> 00:39:27,162 >> Mitte lihtsalt käituvad, mitte ainult luua väljund, aga kuidas see peaks välja nägema esteetiliselt. 864 00:39:27,162 --> 00:39:30,120 Niisiis, mida me teeme on suunata teid mööda teed, vähemalt praegu, 865 00:39:30,120 --> 00:39:34,825 standard CS50 stiilis, et vähemalt hoiab asju ühtne ja lihtne lugeda. 866 00:39:34,825 --> 00:39:37,330 Aga rohkem on neid, vahet enne pikk. 867 00:39:37,330 --> 00:39:41,830 >> Loogiline väljenduse C, kui te tahtsin öelda, kas see tingimus on tõene 868 00:39:41,830 --> 00:39:44,650 ja see teine ​​tingimus on Tõsi, sa ei kirjuta sõna 869 00:39:44,650 --> 00:39:46,610 ja, nagu sa oleks inglise keeles. 870 00:39:46,610 --> 00:39:50,580 Te mitte kasutama ampersand ampersand, põhjustel me tuleme tagasi. 871 00:39:50,580 --> 00:39:54,520 Kui sa tahad öelda või kasutate kahte vertikaalne baarid, mis on USA klaviatuur 872 00:39:54,520 --> 00:39:57,650 üldiselt kõrgem Sisesta klahvi kõrval tagurpidi kaldkriipsuga. 873 00:39:57,650 --> 00:40:03,080 Ja see tähendab lihtsalt, kui see tingimus või see teine ​​tingimus on tõene teha. 874 00:40:03,080 --> 00:40:05,210 >> Samal ajal on see hull asi, mis 875 00:40:05,210 --> 00:40:07,760 pead kord kasutada kord aega. 876 00:40:07,760 --> 00:40:10,390 Aga see on lihtsalt alternatiiv viis ennast väljendada. 877 00:40:10,390 --> 00:40:12,400 See, et nüüd, lähme sätestada, et see on lihtsalt 878 00:40:12,400 --> 00:40:16,880 teise funky viis väljendada kui elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 See on lihtsalt vormindatud poolest juhtumeid, kus sa sõna otseses mõttes 880 00:40:19,720 --> 00:40:23,420 loetleda väärtused võiksite kontrollida. 881 00:40:23,420 --> 00:40:24,410 >> Vahepeal ring. 882 00:40:24,410 --> 00:40:26,842 Nägime võrdlus Scratch silmusega. 883 00:40:26,842 --> 00:40:29,550 Ja ma lähen siputan kätt mida kõik need asjad tähendab. 884 00:40:29,550 --> 00:40:33,520 Aga teate, et silmusega väga sageli alustada märksõna. 885 00:40:33,520 --> 00:40:36,350 Või siis hakkab märgusõnaga aega. 886 00:40:36,350 --> 00:40:41,360 Või siis hakkab märgusõnaga teha, ja lõpeb märksõna ajal. 887 00:40:41,360 --> 00:40:43,920 >> Aga mida me parasjagu näha on asjad enam niimoodi. 888 00:40:43,920 --> 00:40:47,950 Siin on üldiselt C, kuidas te võite kuulutada muutuja ja annab talle raha. 889 00:40:47,950 --> 00:40:50,610 C ei piisa, nagu Scratch, sa lihtsalt 890 00:40:50,610 --> 00:40:52,810 ütlevad mulle muutuja nimega midagi. 891 00:40:52,810 --> 00:40:55,960 Sa pead ütlema C, ja öelda Teie kompilaator täpsemalt 892 00:40:55,960 --> 00:40:58,680 millist tüüpi väärtust sa taha panna klaas kauss. 893 00:40:58,680 --> 00:40:59,610 >> Kas see on täisarv? 894 00:40:59,610 --> 00:41:02,210 Kui jah, siis sa pead sõna otseses mõttes öelda, int ja siis 895 00:41:02,210 --> 00:41:04,220 nimi muutuja siis semikoolon. 896 00:41:04,220 --> 00:41:08,050 Kui te selle asemel tahtis string ja kutsus see on nagu ma tegin oma kood täna siin, 897 00:41:08,050 --> 00:41:10,920 sa ütleksid string s semikooloniga. 898 00:41:10,920 --> 00:41:14,200 Kui soovite, et anda see raha sa võid võrdusmärgi, 899 00:41:14,200 --> 00:41:16,211 muidu tuntud omistamisoperaatorile. 900 00:41:16,211 --> 00:41:17,960 Ja teate, kuidas iga Nende rida koodi 901 00:41:17,960 --> 00:41:20,650 on semikoolon lõpus ta. 902 00:41:20,650 --> 00:41:22,550 >> Aga ausalt öeldes see lihtsalt tundub veidi inetu. 903 00:41:22,550 --> 00:41:26,580 Miks ma ei saa öelda, et arvuti, anna mind muutuja ja initsialiseerida see nulli. 904 00:41:26,580 --> 00:41:28,380 See tähendab, et mulle tühi klaas kauss. 905 00:41:28,380 --> 00:41:28,980 Kuigi saate. 906 00:41:28,980 --> 00:41:32,250 Ja siis ühel kohtuotsuse kutsub teid tegema stiililiselt ajas 907 00:41:32,250 --> 00:41:36,290 on, sa kirjutad oma koodi niimoodi, või sa omamoodi koristama ja muljet 908 00:41:36,290 --> 00:41:39,040 inimesed, kirjutades kaks rida kui üks. 909 00:41:39,040 --> 00:41:41,830 Ja seda võiks pidada üldiselt rohkem elegantne viis 910 00:41:41,830 --> 00:41:43,870 kirjalikult oma koodi stiililiselt. 911 00:41:43,870 --> 00:41:45,200 >> Funktsioonid oleme loomulikult näinud. 912 00:41:45,200 --> 00:41:46,340 Nad kavatsevad võtta selles formaadis. 913 00:41:46,340 --> 00:41:48,881 Funktsiooni nime, mõned sulgudes ja siis võib-olla mõned 914 00:41:48,881 --> 00:41:49,910 kraami sees. 915 00:41:49,910 --> 00:41:52,540 Või te võite näha kasutusalad mitmeid funktsioone pool 916 00:41:52,540 --> 00:41:55,980 kõrval, nagu midagi sellist. 917 00:41:55,980 --> 00:41:59,390 Nüüd kui puutuja, ei see nali nüüd on mõtet? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Naer] 920 00:42:04,960 --> 00:42:09,360 See ei tähenda, et see on naljakas, kuid see Mis võib-olla teha natuke rohkem mõtet. 921 00:42:09,360 --> 00:42:12,140 Nüüd lähme sisse CS50 seade korraks. 922 00:42:12,140 --> 00:42:14,640 Ja lubage mul avada üks teaser siin. 923 00:42:14,640 --> 00:42:17,470 >> Ja tõepoolest üks põhjusi, kehtestamise IKEA kataloog 924 00:42:17,470 --> 00:42:20,080 ja vilkuv pilt iPhone natuke tagasi 925 00:42:20,080 --> 00:42:24,700 oli tegelikult lips koos Asjaolu, et paar aastat tagasi, aastal 2007, 926 00:42:24,700 --> 00:42:26,540 see tükk kood oli vabastatakse, mis oli 927 00:42:26,540 --> 00:42:29,820 üks esimesi rakendamine tükk tarkvara 928 00:42:29,820 --> 00:42:31,494 mis teeb mida nimetatakse jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Neile harjumatu, Täielikuks midagi nagu telefon või iPhone 930 00:42:34,410 --> 00:42:37,680 tähendab sisuliselt viinud kuidas teha asju 931 00:42:37,680 --> 00:42:39,864 seda, et ettevõte kes tegid ta ei kavatse. 932 00:42:39,864 --> 00:42:42,780 Nagu soovite installida teatud tarkvara, mis ei ole in App Store, 933 00:42:42,780 --> 00:42:45,405 Täielikuks telefoni, mis sa tee selliseid asju ja palju muud. 934 00:42:45,405 --> 00:42:47,447 Aga mis oli lõbus 2007-- ja seal on olnud 935 00:42:47,447 --> 00:42:49,780 kümneid erinevaid versioone need asjad, sest siis 936 00:42:49,780 --> 00:42:53,540 igasuguseid languages-- on see, et Selle programmi siin, nimetatakse iUnlock, 937 00:42:53,540 --> 00:42:57,036 oli tegelikult kirjutatud C. Ja nii ma tõmmata lähtekoodi seda, 938 00:42:57,036 --> 00:42:59,910 lihtsalt selline näitan sulle mõned sarnasusi konstruktid 939 00:42:59,910 --> 00:43:01,450 oleme arutanud seni. 940 00:43:01,450 --> 00:43:05,150 Nüüd on nii rohkem keerukust siin kui me oleme näinud juba klassis. 941 00:43:05,150 --> 00:43:07,160 Lubage mul kerida üles natuke siin. 942 00:43:07,160 --> 00:43:11,520 >> Aga teate nende-- hästi märkame vähe things-- kuid märgata neid ridu siin 943 00:43:11,520 --> 00:43:14,090 sealhulgas standard I / O punkti h. 944 00:43:14,090 --> 00:43:17,660 Ja all-- line 24 please-- teate standard I / O 945 00:43:17,660 --> 00:43:21,380 dot h ja terve hulk muid faile, mis ilmselt teisi inimesi 946 00:43:21,380 --> 00:43:22,160 olen kirjutanud. 947 00:43:22,160 --> 00:43:24,850 Ja kui me kerige läbi Selle veidi meelevaldselt 948 00:43:24,850 --> 00:43:27,910 märgata Ma ei tea, kuidas kirjutada see kõik ise tingimata veel 949 00:43:27,910 --> 00:43:28,880 kuid seal on kui. 950 00:43:28,880 --> 00:43:30,400 Nii et ilmselt see on filiaal. 951 00:43:30,400 --> 00:43:33,210 >> Ja kui ma keri natuke edasine on teine ​​kui. 952 00:43:33,210 --> 00:43:38,210 Kui ma liikuge üles, ma arvan, ümber line 100 nägin. 953 00:43:38,210 --> 00:43:40,020 Nii et ma ei ole päris kindel, kuidas see töötab veel, 954 00:43:40,020 --> 00:43:43,180 kuid see on silmus, mis läheb lubage mul kinnitada, mõned mitu korda. 955 00:43:43,180 --> 00:43:45,230 Ja kui ma leidke kõik viis alt 956 00:43:45,230 --> 00:43:51,020 Ma näen, et seal on toimida siia kutsutud 957 00:43:51,020 --> 00:43:54,570 Peamine ja täiendavat krediiti oma lugemise rõõm. 958 00:43:54,570 --> 00:43:57,830 >> Nii et see on ainult olen öelnud ja me paneme see online seas muidugi allikas 959 00:43:57,830 --> 00:44:01,480 koodi today-- et isegi mõned neist seadmed, mida me enesestmõistetavaks, 960 00:44:01,480 --> 00:44:05,130 lõpus päeval sa ikka kasutades neid põhilisi konstruktsioone, mida me oleme 961 00:44:05,130 --> 00:44:07,430 tutvustanud juba siiani. 962 00:44:07,430 --> 00:44:08,620 Aitab see. 963 00:44:08,620 --> 00:44:11,480 Olgu, nüüd lähme tegelikult ehitada midagi. 964 00:44:11,480 --> 00:44:15,640 >> Lähme üle midagi hello.c ja avada see, 965 00:44:15,640 --> 00:44:17,170 kirjutame selle programmi siit. 966 00:44:17,170 --> 00:44:19,850 Ma lähen edasi minna ja Kirjutada programm nimega adder.c, 967 00:44:19,850 --> 00:44:23,310 kelle eesmärk elus saab olema nagu mu esimene super lihtne kalkulaator 968 00:44:23,310 --> 00:44:24,840 et lihtsalt lisab paar numbrid. 969 00:44:24,840 --> 00:44:27,050 Mitte sellepärast, et see on raske probleem, kuid kuna see 970 00:44:27,050 --> 00:44:29,390 võimaldab mul nüüd lips koos mõned asjad. 971 00:44:29,390 --> 00:44:33,100 Nii et ma lähen edasi minna ja sisaldama standard I / O punkti h ja CS50 dot h. 972 00:44:33,100 --> 00:44:34,670 Ma lähen ütlen int main void. 973 00:44:34,670 --> 00:44:36,545 Ja tulevikus uuesti me tuleme selle juurde tagasi 974 00:44:36,545 --> 00:44:38,560 arvesse selles kontekstis ja tühine vahend. 975 00:44:38,560 --> 00:44:43,340 >> Ja nüüd ma lähen midagi öelda nagu printf, anna mulle täisarv. 976 00:44:43,340 --> 00:44:47,610 Ja nüüd on mu teine ​​rida, kuidas ma saan ennast väljendada, nagu 977 00:44:47,610 --> 00:44:50,980 et ma tahan kuulutada muutuja mis toimub salvestada int? 978 00:44:50,980 --> 00:44:55,470 Sõna otseses mõttes, mida ma kirjuta kui ma tahan luua muutuja, mis talletab int 979 00:44:55,470 --> 00:44:58,270 sa ütleksid? 980 00:44:58,270 --> 00:44:59,650 int võrdub getint. 981 00:44:59,650 --> 00:45:00,485 Muidugi, nii et töötab. 982 00:45:00,485 --> 00:45:02,360 Ja just kooskõla koodiga teid 983 00:45:02,360 --> 00:45:04,485 vaata online, lubage mul muutus see, et x, lihtsalt sellepärast, et x 984 00:45:04,485 --> 00:45:06,830 on ühine muutuja nimi kasutama vähemalt Algebrast. 985 00:45:06,830 --> 00:45:08,720 Nüüd lubage mul minna ja teha printf uuesti. 986 00:45:08,720 --> 00:45:10,692 Anna mulle veel täisarv. 987 00:45:10,692 --> 00:45:12,900 Ja nüüd ma lähen liiki ja õppida, et muster, 988 00:45:12,900 --> 00:45:14,490 Ma lähen ütlen int y jõuab GetInt. 989 00:45:14,490 --> 00:45:16,340 >> Ja me oleme ei kasutata GetInt enne, vaid lihtsalt 990 00:45:16,340 --> 00:45:19,860 nagu getString läheb ja läheb string, nagu Javier tegi publik, 991 00:45:19,860 --> 00:45:22,780 Samamoodi ei GetInt hakkavad vilkuma kiire. 992 00:45:22,780 --> 00:45:26,750 Ja tegelikult ootab kasutaja anda see täisarv, kirjutades selle 993 00:45:26,750 --> 00:45:27,900 ja lööb Enter. 994 00:45:27,900 --> 00:45:30,850 Nüüd lõpuks ma teen Selle printf summa of-- 995 00:45:30,850 --> 00:45:36,080 ja ma sain fancy nüüd-- protsenti i ja protsenti i olemasolu 996 00:45:36,080 --> 00:45:39,270 i hüüumärk längkriipsu n. 997 00:45:39,270 --> 00:45:42,750 Ja mis sa arvad, et ma lähen panna nüüd lisasisendeid 998 00:45:42,750 --> 00:45:44,620 et printf? 999 00:45:44,620 --> 00:45:47,380 >> Ma ei taha öelda, sõna-sõnalt tsiteerida lõppeb x. 1000 00:45:47,380 --> 00:45:52,210 Tahan klassi x ja siis ja nüüd lähme väljamõeldud 1001 00:45:52,210 --> 00:45:54,420 ja oletame, et me saame teha, mida tahame. 1002 00:45:54,420 --> 00:45:56,330 Mida sa tahad öelda edasi? 1003 00:45:56,330 --> 00:45:57,070 x pluss y. 1004 00:45:57,070 --> 00:45:58,520 Ja tõepoolest, mis töötab. 1005 00:45:58,520 --> 00:46:01,760 See on minimaalselt programmeerimiskeeli ei mõista põhilisi aritmeetilisi, 1006 00:46:01,760 --> 00:46:03,500 ja nii see peaks tegelikult töö. 1007 00:46:03,500 --> 00:46:06,730 >> Nii et lubage mul minna ja ei tee rästik minu must ja valge aken 1008 00:46:06,730 --> 00:46:08,090 siia alla, Enter. 1009 00:46:08,090 --> 00:46:10,830 Cryptic line, kuid ei vea sõnum, et see on hea. 1010 00:46:10,830 --> 00:46:14,410 Dot kärpida rästik, anna mulle täisarv, 1. 1011 00:46:14,410 --> 00:46:16,230 Anna mulle veel täisarv 2. 1012 00:46:16,230 --> 00:46:18,770 Summa 1 ja 2 on 3. 1013 00:46:18,770 --> 00:46:21,730 >> Olgu, päris triviaalne programmi, kuid mis ta on teinud? 1014 00:46:21,730 --> 00:46:25,680 See võimaldas mul kasutada funktsiooni helista siia, helistage teine ​​funktsioon siin, 1015 00:46:25,680 --> 00:46:29,260 kaks kõnesid GetInt, kolmas kõne printf, 1016 00:46:29,260 --> 00:46:30,720 ja siis kasutades neid kohatäitjaid. 1017 00:46:30,720 --> 00:46:33,160 Nii et see on natuke rohkem keerukam kui eelmine kord. 1018 00:46:33,160 --> 00:46:35,260 Aga mis siis, kui ma tahan natuke Kasvataja? 1019 00:46:35,260 --> 00:46:38,900 >> Lubage mul minna ja nüüd seda teha. 1020 00:46:38,900 --> 00:46:42,890 Lubage mul minna ja luua uus fail nimega tingimused null. 1021 00:46:42,890 --> 00:46:44,890 Ja ma lähen säästa Mõne aja klasside huvides 1022 00:46:44,890 --> 00:46:48,260 ja lihtsalt kleepida, et kood lähtepunktiks. 1023 00:46:48,260 --> 00:46:51,510 Ja nüüd ma lihtsalt panna midagi uut siin keskel. 1024 00:46:51,510 --> 00:46:55,889 Nii printf Sooviksin täisarv palun. 1025 00:46:55,889 --> 00:46:58,180 Ja kõik see kood on olemas kursuse kodulehel 1026 00:46:58,180 --> 00:47:00,556 sa ei pea tippige see kõik välja klassis, kui te ei soovi. 1027 00:47:00,556 --> 00:47:02,638 int, ja nüüd ma lähen asemel kasutada x ja y, 1028 00:47:02,638 --> 00:47:05,270 Ma lähen kasutada n, mis on ilmselt kõige levinum nimi 1029 00:47:05,270 --> 00:47:09,220 võtta täisarv arvutiprogramm. 1030 00:47:09,220 --> 00:47:12,060 Ja nüüd ma tahan teha vähe kohtuotsuse siin. 1031 00:47:12,060 --> 00:47:15,460 Ma lähen, et näha, kui n on suurem kui 0, siis 1032 00:47:15,460 --> 00:47:23,670 Ma lähen ütlen printf-- Oih, printf-- valisid positiivne arv, 1033 00:47:23,670 --> 00:47:25,370 hüüumärk längkriipsu n. 1034 00:47:25,370 --> 00:47:26,460 Sulgege see. 1035 00:47:26,460 --> 00:47:33,150 Muidu ma lähen välja printida printf valisid negatiivne number. 1036 00:47:33,150 --> 00:47:35,377 >> Aga enne sa karjud minu peale, olgem programmi käivitada. 1037 00:47:35,377 --> 00:47:36,210 Lubage mul minna siin. 1038 00:47:36,210 --> 00:47:40,730 Ja kuidas ma kompileerida programm kutsunud tingimused kriips 0? 1039 00:47:40,730 --> 00:47:42,300 Tee tingimused kriips 0. 1040 00:47:42,300 --> 00:47:45,560 Objekti loll nimi aga-- kurat võtaks. 1041 00:47:45,560 --> 00:47:47,560 OK, hea õpetamise moment. 1042 00:47:47,560 --> 00:47:48,410 Miks see murda? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Mida ma kogemata nimetame seda faili? 1045 00:47:54,710 --> 00:47:56,876 Te võite seda järeldada alates tab siin. 1046 00:47:56,876 --> 00:47:58,750 Nii see ei ole halb, et ma tegin seda, sest see 1047 00:47:58,750 --> 00:48:00,208 juhtub võib-olla mõned teist. 1048 00:48:00,208 --> 00:48:03,880 Nii et ma kogemata nimega minu lähtekoodi tingimus 0. 1049 00:48:03,880 --> 00:48:09,950 Aga minu lähtekoodi kokkuleppeliselt peaks olema fail nimega tingimus 0 kriips c, 1050 00:48:09,950 --> 00:48:11,720 või mis iganes dot c. 1051 00:48:11,720 --> 00:48:12,610 >> Nii et lubage mul seda parandada. 1052 00:48:12,610 --> 00:48:16,880 Just nagu Microsoft Word Ma ei saa minna up Salvesta kui ja tegema tingimus 0 dot c. 1053 00:48:16,880 --> 00:48:20,100 Nüüd lihtsalt tuleb korralik olen lähen edasi minna ja eemaldada 1054 00:48:20,100 --> 00:48:23,020 tingimus 0, mis oli minu vana versioon. 1055 00:48:23,020 --> 00:48:26,550 Ja nüüd teeme tee tingimus 0, Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, tundub hea. 1057 00:48:27,870 --> 00:48:29,510 >> Seisukord 0, Enter. 1058 00:48:29,510 --> 00:48:33,530 Sooviksin täisarv palun, 50, valisid positiivne number. 1059 00:48:33,530 --> 00:48:35,390 Nüüd kuidas negatiivne 50? 1060 00:48:35,390 --> 00:48:37,660 Sa valisid negatiivne number. 1061 00:48:37,660 --> 00:48:39,605 Aga nüüd, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Päris kindel, 0 ei ole negatiivne. 1064 00:48:45,350 --> 00:48:47,780 >> Nii et see on omamoodi loogiline viga. 1065 00:48:47,780 --> 00:48:50,680 Kuidas seda parandada? 1066 00:48:50,680 --> 00:48:57,260 Else if n on väiksem kui 0, seda teha, muidu meil on kolm teed filiaal siin 1067 00:48:57,260 --> 00:49:01,740 printf valisid 0. 1068 00:49:01,740 --> 00:49:06,150 Nüüd, kui ma uuesti, see programmi pärast kompileerimisel 1069 00:49:06,150 --> 00:49:10,790 uuesti teha, ja nüüd uuesti, tingimus 0, mida ma näen siin 1070 00:49:10,790 --> 00:49:14,570 0 annab mulle, et väljund. 1071 00:49:14,570 --> 00:49:16,280 Nii et kui me saame seda teha? 1072 00:49:16,280 --> 00:49:18,930 >> Noh, see on väga lihtne unustada ning puude taga metsa. 1073 00:49:18,930 --> 00:49:23,590 Ja nii võimaldab meil sõlmida Selle 2 ja 1/2 minutilise video 1074 00:49:23,590 --> 00:49:25,710 et lõpuks on natuke ad Google, 1075 00:49:25,710 --> 00:49:28,850 kuid see on tõesti märk mida isegi kasutades neid põhilisi hoone 1076 00:49:28,850 --> 00:49:33,020 plokid saame lõpuks teha üks kord meil natuke programmeerimine 1077 00:49:33,020 --> 00:49:34,463 Savvy kanname vööd. 1078 00:49:34,463 --> 00:49:35,150 >> [Muusika mängimine] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO BRIERLEY (Voice Over): See oli 26 aastat tagasi, 1081 00:49:40,540 --> 00:49:42,470 ja ma olin just saamas 5. 1082 00:49:42,470 --> 00:49:45,465 Me saime rongijaama ja me minnakse meie rong koos. 1083 00:49:45,465 --> 00:49:48,010 Mu vend lihtsalt ütlesin, et ma tulen siia jääda, ma tulen tagasi. 1084 00:49:48,010 --> 00:49:51,140 Ja ma arvasin, et, noh tead, Ma võin ka lihtsalt magama minna 1085 00:49:51,140 --> 00:49:52,690 ja ta lihtsalt mind üles äratada. 1086 00:49:52,690 --> 00:49:55,145 Ja kui ma ärkasin järgmisel päev, kogu vedu 1087 00:49:55,145 --> 00:49:59,125 oli tühjade Põgenenud rongi, kummitus rongi, et ma ei tea, kus. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Olin vastu välja Austraalia, Australian pere. 1090 00:50:06,280 --> 00:50:09,710 Ja ema oli kaunistatud minu tuba kaardi India, 1091 00:50:09,710 --> 00:50:11,950 mis pani ta kõrval minu voodi kõrval. 1092 00:50:11,950 --> 00:50:15,830 Ma ärkasin igal hommikul nähes, et kaart ja seega 1093 00:50:15,830 --> 00:50:18,530 see omamoodi hoida mälestusi. 1094 00:50:18,530 --> 00:50:20,530 Inimesed ütlevad, et sa oled püüdes leida nõela 1095 00:50:20,530 --> 00:50:23,560 heinakuhjas, Saroo sa ei leia seda kunagi. 1096 00:50:23,560 --> 00:50:28,540 >> Oleksin pinnatud kohti, et ma käisin, vilgub mu pere 1097 00:50:28,540 --> 00:50:29,890 nägu. 1098 00:50:29,890 --> 00:50:34,060 Seal oli pilt mu ema, istudes oma jalad ületanud, 1099 00:50:34,060 --> 00:50:35,740 lihtsalt vaadates tema nutma. 1100 00:50:35,740 --> 00:50:38,160 Elu on lihtsalt nii raske. 1101 00:50:38,160 --> 00:50:41,237 See oli mu varandus. 1102 00:50:41,237 --> 00:50:44,320 Ja ma vaatasin Google Map ja mõistis seal Google Earth samuti. 1103 00:50:44,320 --> 00:50:48,140 Maailmas, kus võid suumida, Hakkasin on kõik need mõtted 1104 00:50:48,140 --> 00:50:51,500 ja millised võimalused et seda võiks teha minu jaoks. 1105 00:50:51,500 --> 00:50:54,890 Ma ütlesin endale, sa tead, et sa oled sain kõik need fotograafiline mälu; 1106 00:50:54,890 --> 00:50:58,590 ja vaatamisväärsused kust sa pärit oled, ja sa tead, mida linn välja näeb. 1107 00:50:58,590 --> 00:51:03,060 See võib olla rakenduse mida saab kasutada, et leida oma tee tagasi. 1108 00:51:03,060 --> 00:51:06,720 >> Ma arvasin, et, noh panen dot Calcutta rongijaama 1109 00:51:06,720 --> 00:51:10,890 ja raadiusega line, sa tead, et sa Tuleks otsida ümber selle ala. 1110 00:51:10,890 --> 00:51:13,750 Ma omamoodi leidsin Nende rong lugusid. 1111 00:51:13,750 --> 00:51:18,160 Ja ma hakkasin järgmist, ja Tulin rongijaama, mis 1112 00:51:18,160 --> 00:51:22,228 peegeldub sama pilt see oli minu mälestused. 1113 00:51:22,228 --> 00:51:23,707 Kõik sobitatud. 1114 00:51:23,707 --> 00:51:27,950 Ma lihtsalt mõtlesin, et jah, ma tea, kuhu ma lähen. 1115 00:51:27,950 --> 00:51:30,116 Ma lihtsalt lasen kaart, mis mul peas 1116 00:51:30,116 --> 00:51:33,080 kaasa mind ja võtab mind tagasi oma kodulinna. 1117 00:51:33,080 --> 00:51:36,420 >> Tulin käeulatuses maja, et ma sündisin. 1118 00:51:36,420 --> 00:51:39,140 Ja kõndis umbes 15 meetrit ümber nurga, 1119 00:51:39,140 --> 00:51:42,980 seal oli kolm daamid seistes väljastpoolt, üksteise kõrval. 1120 00:51:42,980 --> 00:51:47,830 Ja keskel üks astus, ja Ma lihtsalt mõtlesin, et see on su ema. 1121 00:51:47,830 --> 00:51:53,450 Ta tuli edasi, ta kallistas mind, ja olime seal umbes viis minutit. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Ta haaras mu käe ja Ta viis mind maja 1124 00:51:59,000 --> 00:52:02,450 ja sain telefoni, kus ta helises mu õde ja mu vend 1125 00:52:02,450 --> 00:52:05,600 öelda, et sa tead, su vend on lihtsalt 1126 00:52:05,600 --> 00:52:09,340 kõik järsku ilmus nagu kummitus. 1127 00:52:09,340 --> 00:52:12,440 Ja siis pere taasühendati uuesti. 1128 00:52:12,440 --> 00:52:15,110 Kõik on hea, Aitasin ema välja, 1129 00:52:15,110 --> 00:52:17,110 ta ei pea olema Orjame. 1130 00:52:17,110 --> 00:52:19,555 Ta võib elada kogu ülejäänud oma elu rahus. 1131 00:52:19,555 --> 00:52:23,460 >> See oli nõela heinakuhjas, kuid nõel oli seal. 1132 00:52:23,460 --> 00:52:24,400 Kõik on olemas. 1133 00:52:24,400 --> 00:52:28,260 Kõik me peame maailmas on nupuvajutusega. 1134 00:52:28,260 --> 00:52:32,010 Aga sul on tahe ja otsustavust tahtmisest. 1135 00:52:32,010 --> 00:52:32,950 >> [Muusika mängimine] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Humala: Imeliselt magus iseloomustuse 1138 00:52:38,170 --> 00:52:40,540 lihtsalt mida saate nüüd tänu tehnoloogiale. 1139 00:52:40,540 --> 00:52:43,390 Me näeme järgmisel nädalal. 1140 00:52:43,390 --> 00:52:44,374