1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Humala: Nii et see on CS50. 3 00:00:13,800 --> 00:00:18,970 Ja see oli CS50 enda Colton Ogden, rohkem sellest, kes on muusika võite 4 00:00:18,970 --> 00:00:22,820 lae kell soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Nii et täna me keskenduda enam aasta programmeerimisest. 6 00:00:26,690 --> 00:00:28,980 Ja me võtame, kui me lahkusime välja eelmisel nädalal, keskendudes 7 00:00:28,980 --> 00:00:31,660 aasta Scratch, mis oli selle graafiline programmeerimiskeel. 8 00:00:31,660 --> 00:00:35,490 Ja võtta asju madalamale tasemele, kasutades rohkem traditsioonilise programmeerimise 9 00:00:35,490 --> 00:00:38,420 keeles tuntakse C. Kuid mööda teed, mõistes 10 00:00:38,420 --> 00:00:40,730 et sama ideed me rääkis eelmisel reedel 11 00:00:40,730 --> 00:00:44,390 kordumist mitte ainult selles keeles C, kuid enamikul iga teine 12 00:00:44,390 --> 00:00:46,350 et me vaatame seda semester. 13 00:00:46,350 --> 00:00:50,247 >> Nii et me kutsusime seda asja siin, mida viimane kord? 14 00:00:50,247 --> 00:00:51,830 See on tüüpiline oma avalduses. 15 00:00:51,830 --> 00:00:53,080 Nii et me kutsusime seda avaldust. 16 00:00:53,080 --> 00:00:54,100 Ja ta teeb midagi. 17 00:00:54,100 --> 00:00:56,910 See on juhis, et arvuti või Scratch võiks täita. 18 00:00:56,910 --> 00:00:59,910 Ja edaspidi, olgem alustada ka kutsudes midagi sellist funktsiooni, 19 00:00:59,910 --> 00:01:02,070 põhjustel järgnevalt näeme. 20 00:01:02,070 --> 00:01:03,681 >> Vahepeal nägime asju niimoodi. 21 00:01:03,681 --> 00:01:05,680 Ja need on tavaliselt tuntud mida ehitada? 22 00:01:05,680 --> 00:01:06,240 >> Sihtrühm: Loop. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Humala: Nii loop. 24 00:01:06,860 --> 00:01:07,943 Nii et päris lihtne. 25 00:01:07,943 --> 00:01:09,470 Ta sõna otseses mõttes teeb mida ta ütleb. 26 00:01:09,470 --> 00:01:12,210 Ja Scratch, kui soovite tuupima rohkem puzzle tükki olemas, 27 00:01:12,210 --> 00:01:13,950 tükk kasvab sobi see. 28 00:01:13,950 --> 00:01:16,790 Ja me näeme, C, et saame teha sama asja. 29 00:01:16,790 --> 00:01:20,000 >> Teist tüüpi silmus, kuigi Scratch võiks olla igavesti, 30 00:01:20,000 --> 00:01:21,820 või on mingi number teisi lähenemisviise. 31 00:01:21,820 --> 00:01:24,150 Aga võtame veel üld vaadata koos näo 32 00:01:24,150 --> 00:01:27,402 see on tõenäoliselt üsna tuttav, at ring üldisemalt. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: One asi, et arvutid 34 00:01:29,110 --> 00:01:31,860 on tõesti hea on Korrates käske. 35 00:01:31,860 --> 00:01:33,910 Nagu inimene, sa saad tõesti igav, kui te 36 00:01:33,910 --> 00:01:36,730 pidid tegema sama asja palju kordi järjest. 37 00:01:36,730 --> 00:01:40,530 Aga arvuti saab teha sama asja miljoneid või isegi miljardeid korda 38 00:01:40,530 --> 00:01:43,290 ja ei igavleda, ja suutma kanda seda väga hästi välja. 39 00:01:43,290 --> 00:01:45,650 >> Nii näiteks, kui ma soovin teile kõigile 40 00:01:45,650 --> 00:01:48,840 Facebookis õnne sünnipäevaks , saates neile e-posti, 41 00:01:48,840 --> 00:01:51,550 see võib võtta mind üle sajandil tegelikult kirjutada 42 00:01:51,550 --> 00:01:53,000 kõik need e-mailid kõigile. 43 00:01:53,000 --> 00:01:57,780 Aga just paar rida koodi, ma ei on süsteem, talle igaühele 44 00:01:57,780 --> 00:01:59,930 Facebookis soovivad neile palju õnne sünnipäevaks. 45 00:01:59,930 --> 00:02:02,730 Nii see on, mida silmad on ja miks nad on väärtuslikud ja midagi 46 00:02:02,730 --> 00:02:04,740 et arvutid võivad teha väga hästi. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Humala: Nii et kui olete olnud saaja 48 00:02:05,630 --> 00:02:07,820 Mõnede CS50-ja Dropbox on ruumi hilja, 49 00:02:07,820 --> 00:02:10,590 see on tegelikult täpselt see, mida me teha, kasutades koodi päris niimoodi. 50 00:02:10,590 --> 00:02:12,600 Me sisuliselt on suur tabelisse, kuhu 51 00:02:12,600 --> 00:02:15,016 inimesed on sisestanud oma nimesid ja e-posti aadresse. 52 00:02:15,016 --> 00:02:18,160 Ja me kirjutasime killuke kood, mis saab kinnitada, kui neid, aadressid 53 00:02:18,160 --> 00:02:21,860 ja sülitama unikaalne aadressid kui keegi esitas mitu korda. 54 00:02:21,860 --> 00:02:25,120 Ja pärast seda, saadame automatiseeritud e-posti CS50 on bot, 55 00:02:25,120 --> 00:02:27,190 sealhulgas kuponkikoodi. 56 00:02:27,190 --> 00:02:29,290 >> Nüüd vaadeldi ka Selle ehitamiseks viimast korda. 57 00:02:29,290 --> 00:02:33,100 Ja see on eriti Näiteks mida? 58 00:02:33,100 --> 00:02:35,050 Nii et, jah, Boolean väljend. 59 00:02:35,050 --> 00:02:37,050 Ja kuju on mõeldud lüüa, et samuti. 60 00:02:37,050 --> 00:02:39,966 Kõik sellised küsimused moodustada tõene või väär Scratch 61 00:02:39,966 --> 00:02:41,590 vaatame natuke midagi sellist. 62 00:02:41,590 --> 00:02:43,200 Ja me nimetame seda Boolean väljend. 63 00:02:43,200 --> 00:02:46,170 See on tõesti õige või vale, jah või ei. 64 00:02:46,170 --> 00:02:49,150 See on viis, kuidas vastata küsimusele. 65 00:02:49,150 --> 00:02:52,420 >> Ja vahepeal saate need Boolean väljendeid sees konstrueerib 66 00:02:52,420 --> 00:02:54,720 nagu need, mis on Loomulikult on tingimused 67 00:02:54,720 --> 00:02:57,259 või filiaalide lõpmatuseni kahvlid maantee. 68 00:02:57,259 --> 00:02:59,550 Ja nad saavad vaadata mitte ainult meeldib see, kuid nad võivad ka 69 00:02:59,550 --> 00:03:02,080 on elses nendega. 70 00:03:02,080 --> 00:03:05,820 Ja te võite tegelikult on kolm teed tee hargneb või neli viis kahvel 71 00:03:05,820 --> 00:03:08,340 maantee, lihtsalt pesitseb neid asju, 72 00:03:08,340 --> 00:03:10,510 nagu näete, Scratch kui sa ei ole juba. 73 00:03:10,510 --> 00:03:13,550 Ja kui saad teha C samuti. 74 00:03:13,550 --> 00:03:16,810 >> Võtame teise üld vaata alumnist, samuti, kes 75 00:03:16,810 --> 00:03:21,490 võib kujutada teistsugust lähenemist et neid asju nimetatakse tingimused. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Inimesed teevad otsuseid iga päev. 77 00:03:24,060 --> 00:03:27,530 Näiteks enne kui lähed väljaspool teid selline on kui avaldus, mis ütleb, 78 00:03:27,530 --> 00:03:31,480 Kui sajab, siis ma peame oma jope. 79 00:03:31,480 --> 00:03:36,820 Ja arvutid on hämmastav, kui olete otsustada nende tüüpi avaldused, 80 00:03:36,820 --> 00:03:42,280 et neid saab usaldusväärselt teostada need asjad uskumatu kiirusega. 81 00:03:42,280 --> 00:03:48,240 Ja nii arvutiprogrammi tegelikult on natuke matemaatikat ja mõned 82 00:03:48,240 --> 00:03:53,050 Kui avaldused, kus Otsuse saab teha. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Humala: Nii nagu te teate, et see oli 84 00:03:55,020 --> 00:03:57,880 inimesed nagu Bill Gates, Paul Allen ja teised 85 00:03:57,880 --> 00:04:00,240 et tõeliselt avalöögi Niinimetatud personaalarvuti 86 00:04:00,240 --> 00:04:01,990 revolutsioon mõned aastad tagasi. 87 00:04:01,990 --> 00:04:04,140 Ma arvasin, et enne kui me sukelduda mõnda Administrivia, 88 00:04:04,140 --> 00:04:09,920 me seotud muinasjutust Albuquerque, New Mexico Museum of Natural History 89 00:04:09,920 --> 00:04:13,650 ja teadus, kus mõned Bill Gates " ja Paul Allen varasemaid lugusid 90 00:04:13,650 --> 00:04:17,470 on jutustanud, kuidas me oleme Tänapäeva PC-ja Mac ja rohkem. 91 00:04:17,470 --> 00:04:22,390 Selleks aga peame kaks vabatahtlikku kellel on väga hea jutu hääli 92 00:04:22,390 --> 00:04:23,735 lugeda skripti valjusti. 93 00:04:23,735 --> 00:04:25,530 >> Olgu, kuidas on seal taga. 94 00:04:25,530 --> 00:04:26,120 Tule. 95 00:04:26,120 --> 00:04:27,770 Ja kuidas on ees siin. 96 00:04:27,770 --> 00:04:28,340 Tule alla. 97 00:04:28,340 --> 00:04:29,600 Võtke kohad siin. 98 00:04:29,600 --> 00:04:32,444 Nagu te tulla, paar halduskoormuse teadaandeid. 99 00:04:32,444 --> 00:04:34,360 sektsioneerimispunktid protsess valimise osas 100 00:04:34,360 --> 00:04:36,068 hakkab see Kolmapäevast reedeni. 101 00:04:36,068 --> 00:04:38,400 Veel, et tuleval Kolmapäeval loeng. 102 00:04:38,400 --> 00:04:41,770 >> Super lõigud, vahepeal on midagi, mida me pakume järgmisel nädalal 103 00:04:41,770 --> 00:04:45,310 kusjuures kogu klass on kutsutud osaleda üsna suures ulatuses 104 00:04:45,310 --> 00:04:47,690 lõigud, üks hubane, üks vähem mugav. 105 00:04:47,690 --> 00:04:51,340 Ja me kuulutab andmed Selle, nagu ka hiljem sel nädalal. 106 00:04:51,340 --> 00:04:53,310 >> Vahepeal lõigud, ise hakkab 107 00:04:53,310 --> 00:04:57,241 nädalal kolm loomulikult null indeksi mis tähendab, et need on paar nädalat 108 00:04:57,241 --> 00:04:57,740 välja. 109 00:04:57,740 --> 00:04:58,450 Nii et ärge muretsege. 110 00:04:58,450 --> 00:05:01,014 Sa pole veel vastamata midagi sarnast. 111 00:05:01,014 --> 00:05:03,930 Vahepeal Vahepeal, kui sa Küsimuste halduslikult 112 00:05:03,930 --> 00:05:08,120 kirjuta mulle ja Devon ja Gabe ja Rob sellel aadressil siin. 113 00:05:08,120 --> 00:05:10,320 >> Lõpuks probleemi seatud 0 on muidugi välja. 114 00:05:10,320 --> 00:05:12,320 Olete ehk märganud, et kursuse kodulehel. 115 00:05:12,320 --> 00:05:14,840 See peaks andma teile kõik vastused küsimustele 116 00:05:14,840 --> 00:05:18,250 sa oleks võinud mööda teed alustanud probleem komplekti. 117 00:05:18,250 --> 00:05:21,430 Aga kui sa leiad end vajavale aidates küljest 118 00:05:21,430 --> 00:05:25,020 kõigi vahenditega osalema tööaega Esmaspäev, teisipäev, kolmapäev, neljapäev 119 00:05:25,020 --> 00:05:27,290 Selle nädala õhtul neljas söögisaali. 120 00:05:27,290 --> 00:05:31,650 Vaata, mis URL seal üksikasjad kus tööaega peab olema. 121 00:05:31,650 --> 00:05:34,000 >> Nüüd kohtume kaks online täna. 122 00:05:34,000 --> 00:05:34,740 Mis su nimi on? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> DAVID J. Humala: Jay Paul, meeldiv kohtuda. 125 00:05:36,880 --> 00:05:37,330 >> HIKARI: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. Humala: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> HIKARI: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. Humala: Hikari. 129 00:05:38,810 --> 00:05:39,790 Meeldiv kohtuda ka. 130 00:05:39,790 --> 00:05:42,123 Jay Paul ja Hikari olema nende ees nende muusika 131 00:05:42,123 --> 00:05:45,100 seisab kahe skriptid, et ma trükitud välja täna hommikul New Mexico 132 00:05:45,100 --> 00:05:46,692 Loodusmuuseum ja Science. 133 00:05:46,692 --> 00:05:48,400 Ja ma arvasin Teeksin õhuliini 134 00:05:48,400 --> 00:05:52,830 on kaasas oma ettekandmine script ja selle ajalugu 135 00:05:52,830 --> 00:05:54,700 mõned pildimaterjali, mingeid üllatusi. 136 00:05:54,700 --> 00:05:57,512 >> Ja see, mida ma olen teinud varem on prehighlight oma script 137 00:05:57,512 --> 00:05:59,470 mida sa peaksid lugema, ja mida sa peaksid lugema. 138 00:05:59,470 --> 00:06:00,920 Ja me põhiliselt lihtsalt vahelduvad punktid. 139 00:06:00,920 --> 00:06:03,211 Nii et see on palju nagu te võite teinud inglise klassis. 140 00:06:03,211 --> 00:06:06,875 See on tõesti sundida publikut uskuda oma lugu siin. 141 00:06:06,875 --> 00:06:07,600 Kas lähme? 142 00:06:07,600 --> 00:06:13,272 Nii et lugu siin on meil Põhiline ja see algab Cambridge. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Oli talv 1974 Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 kus talved on külmad. 145 00:06:20,240 --> 00:06:22,800 Habe, pikakarvaline kolledži väljalangevus nimega 146 00:06:22,800 --> 00:06:27,280 Paul Allen oli drudging üle Harvard Square, imendub oma mõtteid. 147 00:06:27,280 --> 00:06:31,050 Tema peamine mure nendel päevadel oli see, kuidas saada oma sõbra, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 koolist ära ja mine äri temaga. 149 00:06:34,974 --> 00:06:37,890 HIKARI: kaks olid juba läinud läbi mitmeid äriettevõtteid 150 00:06:37,890 --> 00:06:40,850 koos algusega kell Lakeside kooli Seattle'is, kus 151 00:06:40,850 --> 00:06:45,220 need maksti tasuta arvuti aeg testida PDP-10 arvuti kohalik aeg 152 00:06:45,220 --> 00:06:46,580 jagamine firma. 153 00:06:46,580 --> 00:06:50,930 Kõige värskemad plaan oli loobuda kool ja moodustavad tarkvarafirma. 154 00:06:50,930 --> 00:06:53,440 Allen lahkus Washington State University. 155 00:06:53,440 --> 00:06:58,380 Aga viimasel hetkel, Väravad otsustas jääda Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Sel päeval, ületades Harvard Square, Allen märkas jaanuaris 157 00:07:02,080 --> 00:07:07,530 1975 küsimust Popular Electronics Maaga seiskumise pealkiri, 158 00:07:07,530 --> 00:07:11,900 Maailma esimene Mini Arvuti Kit rivaali ärimudeleid. 159 00:07:11,900 --> 00:07:14,430 Beneath pealkiri oli pildi väike kast 160 00:07:14,430 --> 00:07:16,160 kaunistatud tuled ja lülitid. 161 00:07:16,160 --> 00:07:19,770 Seda nimetati MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 Ja Allen teadsin, et see oli see, mida ta oli otsinud. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: Päeva arutelu järgida. 164 00:07:26,350 --> 00:07:30,170 Allen ja Gates aru tähendus Altair. 165 00:07:30,170 --> 00:07:32,480 Nad olid rääkinud sageli umbes mikroprotsessorid 166 00:07:32,480 --> 00:07:35,250 ja ootasid, et näha, mida tuleks teha koos nendega. 167 00:07:35,250 --> 00:07:39,770 Nüüd oli mini kit kaanel Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 See ilmselt ei olnud tarkvara veel. 169 00:07:42,830 --> 00:07:46,830 Nad kujutasin rahvas programmeerijad laskumine MITS. 170 00:07:46,830 --> 00:07:49,590 Ja nii nad kutsusid Ed Roberts, Ettevõtte juht, 171 00:07:49,590 --> 00:07:53,330 väidavad, et on versioon BASIC programmeerimiskeelt peaaegu valmis 172 00:07:53,330 --> 00:07:54,710 jaoks Altair. 173 00:07:54,710 --> 00:07:55,570 Nad ei teinud seda. 174 00:07:55,570 --> 00:07:58,910 Ja Roberts pidi teadma, et nad ei teinud seda. 175 00:07:58,910 --> 00:08:03,170 Ta oli saada 10 kõned päev inimesed, kes olid BASIC peaaegu valmis. 176 00:08:03,170 --> 00:08:05,570 Ja tema aktsia vastus oli: "Esimene inimene 177 00:08:05,570 --> 00:08:11,090 kes näitab üles töö BASIC saab lepingu. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates ja Allen ei olnud kunagi näinud Altair. 179 00:08:13,910 --> 00:08:17,600 Nad ei olnud kunagi isegi näinud Intel 8080 mikroprotsessor 180 00:08:17,600 --> 00:08:19,060 keskmes Altair. 181 00:08:19,060 --> 00:08:21,470 Aga paar aastat varem Allen oli kirjutatud programmi 182 00:08:21,470 --> 00:08:25,220 suurarvuti arvuti, mis jäljendasid toimimise eelmine Intel 183 00:08:25,220 --> 00:08:26,217 mikroprotsessor. 184 00:08:26,217 --> 00:08:28,300 Ja seekord nad teeks sama asja. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: Intel 8080 kasutusjuhend tema poolel, 187 00:08:34,380 --> 00:08:37,770 Allen istus Harvard PDP-10 arvuti 188 00:08:37,770 --> 00:08:42,010 ja kirjutas emulaator ja tarkvara vajalikud vahendid, et teha programmeerimine. 189 00:08:42,010 --> 00:08:45,820 Vahepeal Gates lõpetas kavatse klasside ja pühendus 190 00:08:45,820 --> 00:08:48,120 projekteerimisel BASIC, kasutades iga trikk 191 00:08:48,120 --> 00:08:53,130 Ta teadis, et saada suurus allapoole 4 kilobaiti. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out in Albuquerque, Ed Roberts sain kõne Gates 193 00:08:55,870 --> 00:08:59,754 paludes üksikasjalikku teavet Altair käideldakse rutiini. 194 00:08:59,754 --> 00:09:01,170 Keegi kunagi küsis, et enne. 195 00:09:01,170 --> 00:09:02,670 Ja Roberts hakkas saada huvitatud. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: Mis areng ja projekteerimise valmis, 198 00:09:07,970 --> 00:09:10,780 Gates ja Allen kirjutas kood PDP-10, 199 00:09:10,780 --> 00:09:16,060 värbamine teise Harvardi üliõpilane, Monte Davidoff, kirjutada matemaatika rutiinid. 200 00:09:16,060 --> 00:09:19,450 Pärast lõplikku ööl programmeerimine, Allen sai lennuk 201 00:09:19,450 --> 00:09:22,970 andma oma põhilised MITS. 202 00:09:22,970 --> 00:09:25,800 Ta veetis lennukiga sõita läbi murettekitav. 203 00:09:25,800 --> 00:09:28,490 Ja tagasi Cambridge Gates oli murettekitav. 204 00:09:28,490 --> 00:09:32,100 Nad olid testitud nende põhi-ja ta oli töötanud emulaator. 205 00:09:32,100 --> 00:09:35,444 Aga mis siis, kui emulaator oli vale? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Kuna lennuk lähenes Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen aru, et nende BASIC, nüüd kenasti sisalduvate 208 00:09:40,070 --> 00:09:42,460 väike rull augustatud paberit lindid, mis 209 00:09:42,460 --> 00:09:44,970 kasutu ilma eraldi Programm, mida nimetatakse laadur, et 210 00:09:44,970 --> 00:09:47,550 ütleks Altair kuidas loe paberteip olend 211 00:09:47,550 --> 00:09:49,620 söödetakse teletaibiaadressid masin. 212 00:09:49,620 --> 00:09:52,970 Ta võttis välja oma sülearvuti ja kiiresti kritseldas maha loader programm 213 00:09:52,970 --> 00:09:56,819 aastal Assembly, siis käsitsi tõlkida seda arvesse 1s ja 0. 214 00:09:56,819 --> 00:09:57,985 Altair ei mõista. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Allen ootasin puhas, vähe, kõrgtehnoloogiline ettevõte 217 00:10:03,830 --> 00:10:05,470 juhivad mehed ülikonnas. 218 00:10:05,470 --> 00:10:09,210 Nii et ta oli üllatunud, kui Roberts täidetud teda lennujaamas otsin nagu rantšo 219 00:10:09,210 --> 00:10:10,270 poolt. 220 00:10:10,270 --> 00:10:12,070 Roberts oli ka üllatunud. 221 00:10:12,070 --> 00:10:16,340 Kui ta langes Harvard programmeerija kallis hotell, 222 00:10:16,340 --> 00:10:20,790 Allen pidi tunnistama, et ta ei saa endale ruumi. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, ise oli asub tolmune ribad kaubanduskeskus. 224 00:10:24,510 --> 00:10:27,040 Toas on täis Workbench oli Altair 225 00:10:27,040 --> 00:10:30,390 laaditakse 5 kilobaiti mälu ja kaablite 226 00:10:30,390 --> 00:10:32,030 et teletaibiaadressid masin. 227 00:10:32,030 --> 00:10:37,200 Roberts ja peainsener, Bill Yates, ootasin ootusärevalt 228 00:10:37,200 --> 00:10:40,660 nagu Allen lülitada oma laadur Programm viiakse Altair. 229 00:10:40,660 --> 00:10:44,980 Teletaibiaadressid hakkas chugging sest see tõmbas paberteip läbi lindi lugeja. 230 00:10:44,980 --> 00:10:47,215 Kulus ehk 15 minutit laadimiseks programmi. 231 00:10:47,215 --> 00:10:52,110 Siis teletaibiaadressid järsult trükitud mälu kiire, siis valmis kiiresti, 232 00:10:52,110 --> 00:10:55,340 ja Allen alustas kirjutades mõned test käske. 233 00:10:55,340 --> 00:10:57,400 Igaühe hämmastusega, tarkvara töötas. 234 00:10:57,400 --> 00:10:58,525 Seal olid vead, muidugi. 235 00:10:58,525 --> 00:11:02,070 Kuid peamine asi oli see töötas. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Hiljem teel $ 3,00 lõunasööki Pancho on, herilane lendas 237 00:11:06,570 --> 00:11:10,470 aknast pikap veoauto ja nõelab Allen käe. 238 00:11:10,470 --> 00:11:13,070 Aga sel hetkel midagi võib rikkuda tuju. 239 00:11:13,070 --> 00:11:17,210 Altair oli nüüd tema põhilised, Esimene kommertstarkvara kodus 240 00:11:17,210 --> 00:11:23,260 arvuti, tehtud Paul Allen ja Bill Gates, äri nagu Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Humala: Paljud Tänu meie kahe lugejatele. 242 00:11:25,336 --> 00:11:30,690 >> [APPLAUSE] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Humala: Nüüd sul on valik, 244 00:11:32,520 --> 00:11:35,880 enne kui sa lahkud, on sädelevat või kuma dark-- oh, 245 00:11:35,880 --> 00:11:40,810 ootama üks sek, Oota- sädelevat ja kuma pimedas elevanti 246 00:11:40,810 --> 00:11:42,534 alates CS50 enda Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 HIKARI: Ah, tänan. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Humala: All Olgu, tänan sind nii palju. 249 00:11:45,324 --> 00:11:49,855 [APPLAUSE] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Humala: Nii tõsi lugu. 251 00:11:51,105 --> 00:11:54,380 See tähendab, et kõik need masinad ja lihtsus, millega me 252 00:11:54,380 --> 00:11:56,270 kasutada neid nüüd ja võtab enesestmõistetavaks, tõesti 253 00:11:56,270 --> 00:12:00,070 algas siin, vaid mõne sammu kaugusel selle tegelik teater. 254 00:12:00,070 --> 00:12:03,930 Ja nüüd täna, kui olete ei olnud, see on Maxwell Dworkin, arvuti 255 00:12:03,930 --> 00:12:05,810 õppehoones, ka ümber nurga. 256 00:12:05,810 --> 00:12:09,760 Ja teisel korrusel see hoone teeb riputada kolm lehekülge 257 00:12:09,760 --> 00:12:12,740 algallikast kood, mis Bill Gates ja Paul Allen kirjutas. 258 00:12:12,740 --> 00:12:14,770 Tegelikult, kui kasutada suumida aastal näete mitte ainult 259 00:12:14,770 --> 00:12:17,350 nende nimed originaalsete, vaid ka 260 00:12:17,350 --> 00:12:22,100 oma allkirjaga, et nad ehitud Paar aastat tagasi, kui nad viimati külastatud. 261 00:12:22,100 --> 00:12:25,800 >> Aga mis oli eriti veenvad on see, mida nad on sätestatud, mida teha 262 00:12:25,800 --> 00:12:29,760 oli kirjutada programm, mis et teised inimesed kirjutada 263 00:12:29,760 --> 00:12:30,950 oma programme. 264 00:12:30,950 --> 00:12:34,280 Ajal, kõik oli koos Selle Altair masin tehtud MITS. 265 00:12:34,280 --> 00:12:40,020 Ja kõik nad vajasid oli mingi viis mistõttu on lihtne harrastajad ja inimesed 266 00:12:40,020 --> 00:12:45,300 nagu meie siin ruumis tegelikult programmi et ilma tingimata mõista 267 00:12:45,300 --> 00:12:49,060 Assamblee koodi või masin kood, või jumal hoidku, 0. ja 1s. 268 00:12:49,060 --> 00:12:51,190 Me programmeerijad, nagu neid selles toas, me 269 00:12:51,190 --> 00:12:54,070 taha olla võimeline väljendama end palju rohkem nagu pseudo kood 270 00:12:54,070 --> 00:12:57,330 isegi kui see on natuke rohkem ting valiv kui me rääkisime eelmisel nädalal. 271 00:12:57,330 --> 00:13:00,970 Me ei taha, et kirjutada koodi nagu see, mida Paul Allen ja Bill Gates tegi. 272 00:13:00,970 --> 00:13:04,850 Meie, selle asemel, tahan kirjutada koodi, mis tundub veidi kasutajasõbralikumaks. 273 00:13:04,850 --> 00:13:07,150 >> Nüüd on see keel, mida nimetatakse BASIC. 274 00:13:07,150 --> 00:13:11,497 Ja joon numbrid seal on, mida sa kasuta lihtsalt number rida koodi 275 00:13:11,497 --> 00:13:12,330 et sa oled kirjalikult. 276 00:13:12,330 --> 00:13:14,038 Me isegi ei pea seda nendel päevadel. 277 00:13:14,038 --> 00:13:16,060 Aga näete siin kuidas print "tere maailm" 278 00:13:16,060 --> 00:13:18,660 tõepoolest oletatavasti printida just seda. 279 00:13:18,660 --> 00:13:22,710 Ja mis siis Bill ja Paul tegid, oli julgustada inimesi kirjutada koodi niimoodi 280 00:13:22,710 --> 00:13:27,240 asemel of-- kui te võtate pilk arvutiteadus wall-- kood niimoodi. 281 00:13:27,240 --> 00:13:29,290 >> Tegelikult CS50 hiljuti oli võimalus 282 00:13:29,290 --> 00:13:32,540 istuda koos professor Harry Lewis in Computer Science osakond, kes 283 00:13:32,540 --> 00:13:34,640 tegelikult õpetas Bill Gates mõned aastad tagasi, 284 00:13:34,640 --> 00:13:38,460 ja seisab siin enne need kolm lehekülge väljakirjutusi. 285 00:13:38,460 --> 00:13:39,560 Võtame pilk. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Mis teil siin on loetelu alguses tarkvara 287 00:13:45,520 --> 00:13:50,240 kirjutatud Bill Gates ja Paul Allen, asutajad Microsoft. 288 00:13:50,240 --> 00:13:52,570 Nii et kood on huvitav kahel põhjusel. 289 00:13:52,570 --> 00:13:55,480 Esiteks, see muutus Microsofti esimene toode, 290 00:13:55,480 --> 00:14:01,810 mis oli tõlgi BASIC programmeerimiskeelt. 291 00:14:01,810 --> 00:14:04,940 Ja teiseks, see oli üks esimesi katseid 292 00:14:04,940 --> 00:14:10,580 luua tõlk nii tavaliste inimesed võiksid kasutada personaalarvutid. 293 00:14:10,580 --> 00:14:12,670 >> Nii et Bill Gates oli bakalaureuse Harvardi. 294 00:14:12,670 --> 00:14:14,820 Hakkasin õpetamise Harvardis 1974. 295 00:14:14,820 --> 00:14:16,560 Seda tehti 1975. 296 00:14:16,560 --> 00:14:20,180 Nii et see oli alguses oma karjääri ja alguses oma karjääri. 297 00:14:20,180 --> 00:14:23,790 Ma tegelikult õpetas Bill sisse Muidugi umbes sel ajal. 298 00:14:23,790 --> 00:14:27,130 Paul Allen ei olnud Harvardi üliõpilane, kuid ta 299 00:14:27,130 --> 00:14:31,020 oli keskkooli klassivend Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Kui sa tuled ja vaata at nimekirjades, saad 301 00:14:33,740 --> 00:14:36,230 tegelikult leida kolmas nimi, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 kes oli Gates klassikaaslane siin Harvardis. 303 00:14:39,260 --> 00:14:41,340 >> OK, nii et siin on huvitav kommentaar siia. 304 00:14:41,340 --> 00:14:47,150 Ta ütleb: "In 4K kustutada ruutjuur kuid silmad peaks ikka tegema. " 305 00:14:47,150 --> 00:14:53,080 OK, nii et mida see tähendab, on see, et olid kaks võimalust koostada programmi. 306 00:14:53,080 --> 00:14:57,860 Üks oli joosta versioon Selle Altair arvuti 307 00:14:57,860 --> 00:15:04,310 mis oli vaid 4K sõnu mälu, 4096 sõna mälu. 308 00:15:04,310 --> 00:15:07,050 Aga suur versioonis oli 8K. 309 00:15:07,050 --> 00:15:09,770 Ja mis see ütleb on et 4K versioon 310 00:15:09,770 --> 00:15:12,770 siis tuli kustutada kood, et see sobib. 311 00:15:12,770 --> 00:15:14,790 Ja üks asi, et oleks kustutatud 312 00:15:14,790 --> 00:15:16,290 oleks ruutjuur rutiinist. 313 00:15:16,290 --> 00:15:20,360 Aga ilmselt jaoks silmuseid peaks ikka 314 00:15:20,360 --> 00:15:26,392 tööd, isegi kui sa koostamisel alla just 4K versioon arvutisse. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Humala: Nii et üks teemasid, nagu me näeme, infotehnoloogia, 316 00:15:29,350 --> 00:15:31,430 on see mõiste kihilisus ja veevõtu 317 00:15:31,430 --> 00:15:34,670 ja tegelikult seisab õlgadele toredaid inimesi, kes on tulnud enne meid, ei 318 00:15:34,670 --> 00:15:37,890 erinevalt mõnest Bill Gates ja Paul Allen jutustav siin. 319 00:15:37,890 --> 00:15:40,080 Ja mida see tähendab, et täna saame võtta 320 00:15:40,080 --> 00:15:43,490 anda, et asjad on tegelikult meil lihtsam kirjutada koodi. 321 00:15:43,490 --> 00:15:47,170 Tõepoolest kood, kui me ütles reedel, on tehniliselt rohkem tuntud lähtekoodi. 322 00:15:47,170 --> 00:15:52,210 Ja see on see inglise keeles, nagu süntaks et enam nõuetekohaselt ja täpselt määratletud 323 00:15:52,210 --> 00:15:55,480 kui midagi pseudo kood, mis puudub ametlik määratlus. 324 00:15:55,480 --> 00:15:58,320 >> Ja täna me läheme keskenduda on lähtekoodi 325 00:15:58,320 --> 00:16:01,010 mis näeb välja selline, mis küll esmapilgul 326 00:16:01,010 --> 00:16:02,690 tundub täiesti segasena. 327 00:16:02,690 --> 00:16:08,540 Ja ausalt öeldes, see on, kuidas esteetiliselt keerulisem, kui selle aluseks olev programm on. 328 00:16:08,540 --> 00:16:13,300 Kõik see programm, Meenuta, on see, mida me tegime öelda? 329 00:16:13,300 --> 00:16:14,990 See lihtsalt trükib "hello world". 330 00:16:14,990 --> 00:16:19,600 Ja veel vaadata kõiki asju peame ümbritsev, et väga lihtne lause. 331 00:16:19,600 --> 00:16:21,750 Aga enne pikka kõik need read ja rohkem 332 00:16:21,750 --> 00:16:24,800 teeb palju paremat mõtet teile. 333 00:16:24,800 --> 00:16:26,940 >> Ja vool on järgmine. 334 00:16:26,940 --> 00:16:31,220 Mida me vajame, on meie käsutuses võtab koodi, nagu allikas 335 00:16:31,220 --> 00:16:32,340 kood, mis me just nägin. 336 00:16:32,340 --> 00:16:35,060 Ja meil on vaja uut programmi kestab see läbi. 337 00:16:35,060 --> 00:16:39,130 Me peame algoritme, mis võivad teisendada lähtekoodi, nagu see, 338 00:16:39,130 --> 00:16:41,932 objektiga koodi 0. ja 1s. 339 00:16:41,932 --> 00:16:43,890 Teisisõnu, mida me ei kavatse õppida täna 340 00:16:43,890 --> 00:16:46,620 on, kuidas seda teha, kirjutage lähtekoodi üleval, 341 00:16:46,620 --> 00:16:49,930 andke seda sisendina eriline Programmi tuntud tõlkija, 342 00:16:49,930 --> 00:16:52,140 ja me ei kavatse toota objekti kood. 343 00:16:52,140 --> 00:16:54,600 Mis on lihtsalt fancy viis öeldes, me võtame midagi 344 00:16:54,600 --> 00:16:58,350 mis näeb välja selline, andke seda käivitatud programm nimega kompilaator, 345 00:16:58,350 --> 00:17:01,210 toodavad objekti kood mis näeb välja selline. 346 00:17:01,210 --> 00:17:04,720 >> Nii et need on sõna otseses mõttes mustrid 0. ja 1s 347 00:17:04,720 --> 00:17:08,550 arusaadavate Intel arvuti nendel päevadel, 348 00:17:08,550 --> 00:17:12,480 et kui tõlgendada CPU, ajud sees arvutis 349 00:17:12,480 --> 00:17:16,130 sõna otseses mõttes välja printida, lihtsalt "hello world". 350 00:17:16,130 --> 00:17:19,670 Nüüd on nii rohkem 0. ja 1s, kui sa loodan, võib olla vajalik, et. 351 00:17:19,670 --> 00:17:22,520 Aga see on sellepärast, et me ehitada aasta hea tehingu keerukuse 352 00:17:22,520 --> 00:17:24,270 et saame nüüdsest enesestmõistetavaks. 353 00:17:24,270 --> 00:17:27,869 Teisisõnu, palju nutikaid inimesi on andnud meile palju lahedaid tööriistu 354 00:17:27,869 --> 00:17:32,480 ja võimas tarkvara, mis me Nüüd saab projekte meie oma. 355 00:17:32,480 --> 00:17:33,400 >> Niisiis alustame. 356 00:17:33,400 --> 00:17:36,640 Kui eelmisel reedel, ja jaoks Ülesanded 0 Sel nädalal 357 00:17:36,640 --> 00:17:39,000 teid mängima maailmas, mis näeb välja selline. 358 00:17:39,000 --> 00:17:42,180 Alates tänasest ning probleemide Vaid 1 järgmisel nädalal, kood 359 00:17:42,180 --> 00:17:45,410 läheb otsima veidi rohkem segasena, kuid funktsionaalselt on 360 00:17:45,410 --> 00:17:46,940 läheb sama. 361 00:17:46,940 --> 00:17:50,770 Nii teate, top on Scratch, alt on C. Ausalt Scratch 362 00:17:50,770 --> 00:17:52,780 on palju rohkem kasutaja sõbralik ja kättesaadav. 363 00:17:52,780 --> 00:17:56,890 Aga kui sa nüüd võrrelda visuaalselt ülevalt alt, seal on selline 00:59 364 00:17:56,890 --> 00:17:59,690 kirjavahetust puzzle tükid ja keel 365 00:17:59,690 --> 00:18:00,870 me oleme umbes mängida. 366 00:18:00,870 --> 00:18:04,420 Eelkõige öelda, sinine puzzle tükk üleval, 367 00:18:04,420 --> 00:18:08,370 Ilmselt on samaväärne sellega, mis märksõna või eriline fraas selles keeles 368 00:18:08,370 --> 00:18:09,062 nn C? 369 00:18:09,062 --> 00:18:09,770 Sihtrühm: printf. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Humala: printf. 371 00:18:10,728 --> 00:18:12,140 See tähendab vormindatud printimist. 372 00:18:12,140 --> 00:18:15,240 Ja see on lihtsalt fancy viis öelda printf C 373 00:18:15,240 --> 00:18:18,615 saab olema avalduse või funktsioon mis prindib midagi ekraanil. 374 00:18:18,615 --> 00:18:19,990 Mis see printida ekraanil? 375 00:18:19,990 --> 00:18:23,627 Mida iganes sa öelda, et see sees hinnapakkumisi, sees sulgudes. 376 00:18:23,627 --> 00:18:25,460 Nii et taas, küll seal on palju asju 377 00:18:25,460 --> 00:18:27,990 et sa pead meeles pidama, sulgudes, hinnapakkumisi, semikoolonit, 378 00:18:27,990 --> 00:18:28,656 ja kõik see. 379 00:18:28,656 --> 00:18:30,600 Aga kõik see on omamoodi on kõrvale punkti. 380 00:18:30,600 --> 00:18:33,660 Huvitav Buffee nüüd on see, et rääkida ploki Scratch 381 00:18:33,660 --> 00:18:37,520 on päris palju, mis vastab printf avaldus C. 382 00:18:37,520 --> 00:18:41,390 >> Vahepeal kollane puzzle tükk üleval, kui roheline lipp klõpsates 383 00:18:41,390 --> 00:18:44,736 Tõenäoliselt samaväärse et millised märksõna siin? 384 00:18:44,736 --> 00:18:45,360 Sihtrühm: Main. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Humala: Nii peamine. 386 00:18:46,359 --> 00:18:47,410 Ehk keskmine, võibolla tühine. 387 00:18:47,410 --> 00:18:51,280 Aga peamine omamoodi kõlab see on oluline, ja seda ta tõepoolest on. 388 00:18:51,280 --> 00:18:54,080 Nii et kui roheline lipp klõpsatud on jällegi puzzle tükk 389 00:18:54,080 --> 00:18:56,390 et avalöögi Kogu Scratch programmiga. 390 00:18:56,390 --> 00:19:02,140 Aga me nüüd alustada kutsudes et peamine, selle funktsiooni tuntakse peamine. 391 00:19:02,140 --> 00:19:06,410 >> Nüüd vahepeal paneme üldistada seda järgmiselt. 392 00:19:06,410 --> 00:19:08,780 Me võime nimetada öelda funktsiooni. 393 00:19:08,780 --> 00:19:10,580 Ja see võib tunduda just niimoodi. 394 00:19:10,580 --> 00:19:11,770 Noh, aga silmad? 395 00:19:11,770 --> 00:19:16,540 Kui me tahame, et alustada konverteerimiseks või tõlkimise rohkem Scratch C, 396 00:19:16,540 --> 00:19:19,400 see asi siin ilmselt lihtsalt ütleb "hello world" igavesti. 397 00:19:19,400 --> 00:19:23,060 Nii et kui sa seostab neid skripte kass Scratch, 398 00:19:23,060 --> 00:19:26,560 see on lihtsalt läheb aina kordad mingi koomiks mull, 399 00:19:26,560 --> 00:19:29,922 "Hello world, hello world, hello maailmas, "ad nauseum, igavesti. 400 00:19:29,922 --> 00:19:33,130 Kui me tahame teha midagi sarnast C, siis läheb vaadata veidi segasena. 401 00:19:33,130 --> 00:19:35,463 Aga me ei saa saavutada sama tulemusi, kuna jagame lõpuks 402 00:19:35,463 --> 00:19:36,861 teada, süntaksi niimoodi. 403 00:19:36,861 --> 00:19:39,360 Ma lähen kasutada printf jälle sest lõpuks päev 404 00:19:39,360 --> 00:19:42,040 Ma tahan printida "hello world". 405 00:19:42,040 --> 00:19:45,610 Ja ma ilmselt kasutades märksõna, mis ei ole igavesti. 406 00:19:45,610 --> 00:19:47,320 See on selle asemel sõna ajal. 407 00:19:47,320 --> 00:19:49,650 Aga semantiliselt sisse Inglise, samas omamoodi 408 00:19:49,650 --> 00:19:52,120 näitab mingi loop või tsükli. 409 00:19:52,120 --> 00:19:55,070 >> Nii et juhtub olema märksõna C kasutab. 410 00:19:55,070 --> 00:20:00,700 Ja kuigi tõsi, siis miks ei samas tõsi tähendab tegelikult igavesti? 411 00:20:00,700 --> 00:20:04,240 Noh, samas, kui me varsti hindan seda enam, 412 00:20:04,240 --> 00:20:08,140 on see Sulgudes kõrval kus saab panna Boolean väljend. 413 00:20:08,140 --> 00:20:11,360 Ja nii kaua, kui see avaldis on tõene, on see kood, 414 00:20:11,360 --> 00:20:14,750 mis tähistatakse nende kahe looksulg kui me kutsume neid, 415 00:20:14,750 --> 00:20:16,880 muudkui jookseb ikka ja jälle. 416 00:20:16,880 --> 00:20:18,410 >> Nii tõsi on tõsi. 417 00:20:18,410 --> 00:20:20,900 Niisiis, kui õige vahend lihtsalt seda teha igavesti. 418 00:20:20,900 --> 00:20:23,480 See on peaaegu rumal ehitada ennast väljendada. 419 00:20:23,480 --> 00:20:26,590 Aga ei olnud igavesti märksõna C. Oli samal ajal. 420 00:20:26,590 --> 00:20:29,390 Ja seal oli väga lihtne Loogiline väljend nagu tõeline. 421 00:20:29,390 --> 00:20:32,210 Ja nii see, me näeme, saavutab sama tulemuse. 422 00:20:32,210 --> 00:20:33,890 >> Kuidas muidu oleks teil rakendada loop? 423 00:20:33,890 --> 00:20:36,980 Noh, Scratch võite kõva kood konkreetne number 424 00:20:36,980 --> 00:20:39,430 korduste silmus siin. 425 00:20:39,430 --> 00:20:43,210 Ja see on täpselt see, mida me võiks teha selles versioonis C, 426 00:20:43,210 --> 00:20:46,140 kusjuures meil on niinimetatud jaoks silmus. 427 00:20:46,140 --> 00:20:49,850 Ja silmus siin läheb itereerima, veidi salapäraselt, 428 00:20:49,850 --> 00:20:54,100 väärtusest 0 püsti , aga vähem kui 10. 429 00:20:54,100 --> 00:20:55,955 >> Nüüd muutujate Scratch. 430 00:20:55,955 --> 00:20:57,830 Sa ei pruugi pidanud korral kasutada neid. 431 00:20:57,830 --> 00:21:02,516 Aga mis mõtet on üldiselt muutuja, nagu rääkisime eelmisel nädalal? 432 00:21:02,516 --> 00:21:03,015 Mis see on? 433 00:21:03,015 --> 00:21:03,780 >> Sihtrühm: juhib. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Humala: Punkti? 435 00:21:05,200 --> 00:21:05,700 Oh punktid. 436 00:21:05,700 --> 00:21:07,620 OK, jälgida punkte, Näiteks mäng. 437 00:21:07,620 --> 00:21:09,510 Või üldisemalt teed Mis on muutuja? 438 00:21:09,510 --> 00:21:10,450 Milline on kasuliku neist? 439 00:21:10,450 --> 00:21:10,825 >> Sihtrühm: Memory. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Humala: Jah, nii mälu. 441 00:21:11,750 --> 00:21:13,000 See hoidmiseks midagi. 442 00:21:13,000 --> 00:21:17,336 Ja omamoodi tobe visuaalne Kasutasin Viimane kord oli niimoodi klaas kauss. 443 00:21:17,336 --> 00:21:19,710 Ja kui me tahame, et salvestada midagi sees muutuja, 444 00:21:19,710 --> 00:21:21,918 Näiteks praegu väärtus on kuus, kuna seal 445 00:21:21,918 --> 00:21:23,450 Kuus ping pong pallid siin. 446 00:21:23,450 --> 00:21:26,158 See on lihtsalt mingi ladustamine mahuti, mis all kapuuts 447 00:21:26,158 --> 00:21:30,030 rakendatakse koos bitti, 0. ja 1s, aga arvuti juhtub seda teha. 448 00:21:30,030 --> 00:21:32,900 >> Nii Scratch, kui me tahan olla erinev, 449 00:21:32,900 --> 00:21:34,840 saame kasutada oranž blokk niimoodi. 450 00:21:34,840 --> 00:21:37,050 Me helistame, et terrorismivastase sellel konkreetsel juhul. 451 00:21:37,050 --> 00:21:38,890 Ma vormindatud see 0. 452 00:21:38,890 --> 00:21:41,080 Ja mida see ma siis teen? 453 00:21:41,080 --> 00:21:44,780 Forever, ütlevad loendur, mis siis, kui sa mängid, et Scratch, 454 00:21:44,780 --> 00:21:45,780 sa lihtsalt vaata Scratch. 455 00:21:45,780 --> 00:21:49,920 Kass või mis iganes kostüüm paned Tema räägib number küsimus. 456 00:21:49,920 --> 00:21:52,840 >> Muuda counter 1 on nagu incrementing 1. 457 00:21:52,840 --> 00:21:56,580 Ja nii see läheb loe, mida siis? 458 00:21:56,580 --> 00:21:59,114 0 til lõpmatuseni, või kuni Scratch puruneb, 459 00:21:59,114 --> 00:22:01,030 või kuni sa omamoodi kaotada huvi vaadates 460 00:22:01,030 --> 00:22:02,650 kuidas kõrge ta võib tegelikult arvestada. 461 00:22:02,650 --> 00:22:04,800 >> Niisiis, kuidas võiks me muuta see, et C? 462 00:22:04,800 --> 00:22:06,480 See saab vaadata veidi segasena. 463 00:22:06,480 --> 00:22:08,896 Aga jälle, kui te vaatate iga Nende joonte üksikult 464 00:22:08,896 --> 00:22:10,410 nad omamoodi rivistus üldiselt. 465 00:22:10,410 --> 00:22:13,526 Nii et ilmselt int läheb on mingi eriline tähendus C. 466 00:22:13,526 --> 00:22:14,400 Me näeme, et jälle. 467 00:22:14,400 --> 00:22:15,810 Selle kõrvale see tähendab täisarv. 468 00:22:15,810 --> 00:22:16,990 Nii et see tähendab lihtsalt number. 469 00:22:16,990 --> 00:22:18,920 Nii et see tüüp klaasist kaussi Ma tahan, üks 470 00:22:18,920 --> 00:22:21,120 mida saab salvestada numbreid, ei ping pong pallid. 471 00:22:21,120 --> 00:22:25,520 Ja ma lähen kasutada võrdusmärk ei määrata selle väärtus 0. 472 00:22:25,520 --> 00:22:29,440 Nii et on üsna nagu komplekt loendur 0, kuid C. 473 00:22:29,440 --> 00:22:32,840 >> Vahepeal samas tõsi, et see oli ekvivalenti, muidugi igavesti, 474 00:22:32,840 --> 00:22:35,980 kuigi see on veidi segasena, ja siis sees looksulg. 475 00:22:35,980 --> 00:22:39,188 Ja sa ei mõtle neid looksulg, kuhu saab kirjutada klaviatuuril, 476 00:22:39,188 --> 00:22:43,110 kui tõesti oleks nagu kõverust need kollased loop plokid Scratch. 477 00:22:43,110 --> 00:22:45,700 See hõlmab mitu rida koodi. 478 00:22:45,700 --> 00:22:48,120 >> Printf muutub natuke hirmutav nüüd, sest ma 479 00:22:48,120 --> 00:22:51,120 vaata mitte ainult tsiteerib sulgudes. 480 00:22:51,120 --> 00:22:55,160 Aga mida veel uut süntaktiliselt selles näites? 481 00:22:55,160 --> 00:22:57,300 Seal protsenti d. 482 00:22:57,300 --> 00:22:58,551 Ja siis längkriipsu n on olemas. 483 00:22:58,551 --> 00:23:00,883 Me ei näe, et enne, isegi kuigi ma ei maininud seda. 484 00:23:00,883 --> 00:23:01,886 Siis on koma. 485 00:23:01,886 --> 00:23:03,010 Ja siis seal on counter. 486 00:23:03,010 --> 00:23:05,010 >> Aga me näeme vaid hetkel, et see on lihtsalt 487 00:23:05,010 --> 00:23:09,080 standard viis öelda print "Koma number," quote, lõppeb, 488 00:23:09,080 --> 00:23:10,500 mõned kümnendkohani. 489 00:23:10,500 --> 00:23:13,370 Aga ma ütlen sulle hiljem mida see koma number on. 490 00:23:13,370 --> 00:23:16,835 Seega asjaolu, et seal on komadega seda joont ütlus printf, 491 00:23:16,835 --> 00:23:18,710 tähendab, minna ja print mõned kümnendkohani. 492 00:23:18,710 --> 00:23:23,110 Oh, ja muide, kui palju on olenemata selle muutuja väärtusele on. 493 00:23:23,110 --> 00:23:25,880 Ja nii, et muuta see rohkem selge, eks me näeme näiteks 494 00:23:25,880 --> 00:23:30,930 Enne pikk segatud täpselt printf kontekstis reaalse C programme. 495 00:23:30,930 --> 00:23:33,472 >> Nüüd lihtsalt pakkima mõned Nende konstruktide. 496 00:23:33,472 --> 00:23:36,680 Loogiline väljendeid, ei pruugi teil olla korral kasutada neid oma programmi 497 00:23:36,680 --> 00:23:39,450 aga sa võiksid väga hästi, eriti kui lehe tingimustel. 498 00:23:39,450 --> 00:23:43,460 Ja nii need kaks näidet Scratch tähendab, kui x on väiksem kui y, 499 00:23:43,460 --> 00:23:48,770 või kui x on väiksem kui y ja y on väiksem kui z, kuidas võiks tõlkida seda? 500 00:23:48,770 --> 00:23:50,810 >> Noh, C see on lihtsalt läheb välja nägema selline. 501 00:23:50,810 --> 00:23:55,300 Vähe segasena, rohkem sulgudes mingi imelik sümboliga, kuid põhimõtteliselt 502 00:23:55,300 --> 00:23:59,160 ideed on nii lihtne kui nad on puzzle tükk maailma. 503 00:23:59,160 --> 00:24:02,690 Me lihtsalt kontrollida, kui midagi on väiksem kui midagi muud. 504 00:24:02,690 --> 00:24:03,910 >> Kuidas tingimustel? 505 00:24:03,910 --> 00:24:09,710 Lühidalt inglise keeles, mida see patakas Scratch kood ei sa ütleksid? 506 00:24:09,710 --> 00:24:11,050 >> Sihtrühm: Võrdleb kahte numbrit. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Humala: võrdleb kaht numbrid, ja kui x on väiksem kui y 508 00:24:13,760 --> 00:24:14,860 ta ütleb, kui palju. 509 00:24:14,860 --> 00:24:18,080 Kui x on suurem kui y ta ütleb, kui palju, muidu 510 00:24:18,080 --> 00:24:20,740 kui x on võrdne y ta ütleb nii palju. 511 00:24:20,740 --> 00:24:22,180 Nüüd, kus ta x ja y on pärit? 512 00:24:22,180 --> 00:24:22,680 Kes teab. 513 00:24:22,680 --> 00:24:25,380 See patakas Scratch kood on kontekstist välja. 514 00:24:25,380 --> 00:24:29,050 Aga see, mida me tahame teha, on praegu tõlkida see hetkeks näha. 515 00:24:29,050 --> 00:24:31,660 >> Nii et kui sa end mugavalt sel nädalal Ülesanded 516 00:24:31,660 --> 00:24:34,190 0 mängib selles maailmas Vasakul mõistma 517 00:24:34,190 --> 00:24:36,940 et ideid ei muutu sel nädalal või järgmisel või väljaspool seda. 518 00:24:36,940 --> 00:24:38,690 Me lihtsalt läheb hakake asju 519 00:24:38,690 --> 00:24:41,240 aastal teistmoodi meie klaviatuuri asemel hiireke. 520 00:24:41,240 --> 00:24:44,577 >> Seega, kui x on väiksem kui y ja seal on mõned sulud seal, 521 00:24:44,577 --> 00:24:47,160 siis seal on mõned looksulg jälle omamoodi kapseldada ta 522 00:24:47,160 --> 00:24:48,970 nagu kollane puzzle tükki teha. 523 00:24:48,970 --> 00:24:53,000 Ja ma lähen printf x on väiksem kui y ja nii edasi. 524 00:24:53,000 --> 00:24:56,540 >> Mis on ilus umbes C, nagu näete siin, 525 00:24:56,540 --> 00:25:00,480 on see, et sa ei saa seda pesitsevate, pesitsevate, pesitseb see on tingimata 526 00:25:00,480 --> 00:25:02,220 sunnin oma koodi paremale. 527 00:25:02,220 --> 00:25:04,990 Võite selle asemel on kõik rivistus korralikult meeldib see. 528 00:25:04,990 --> 00:25:08,960 Aga see on ainult esteetiline üksikasjalikult me ​​näeme jälle enne pikk. 529 00:25:08,960 --> 00:25:09,660 >> Olgu. 530 00:25:09,660 --> 00:25:13,290 Nii et see toob meid tagasi see segasena otsin programmi. 531 00:25:13,290 --> 00:25:15,180 Olgem tegelikult kirjutada mingi kood. 532 00:25:15,180 --> 00:25:16,830 Nüüd, kuidas sa minema umbes kirjalikult koodi? 533 00:25:16,830 --> 00:25:21,310 Kõik need aastad, et olete omanik Mac või PC, lauaarvuti või sülearvuti, 534 00:25:21,310 --> 00:25:24,520 olete tegelikult oli võime hakake kirjutama programmi koodi. 535 00:25:24,520 --> 00:25:27,050 Aga sa oled ilmselt puuduvad eriliik programm. 536 00:25:27,050 --> 00:25:28,470 Saad kindlasti kirjutada koodi. 537 00:25:28,470 --> 00:25:30,740 Aga sa ei saa tingimata, karbist välja, 538 00:25:30,740 --> 00:25:34,210 teisendada, et lähtekoodi objektiga koodi 0. ja 1s 539 00:25:34,210 --> 00:25:35,619 ilma, mida arvuti? 540 00:25:35,619 --> 00:25:36,410 Sihtrühm: tõlkija. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Humala: Nii koostaja, eks. 542 00:25:37,630 --> 00:25:39,730 Nüüd enamik te ilmselt ei oma kompilaatori 543 00:25:39,730 --> 00:25:41,259 ei ole kunagi alla koostaja. 544 00:25:41,259 --> 00:25:44,300 Aga näete, saad selle alla laadida nagu enamik muid tükk tarkvara. 545 00:25:44,300 --> 00:25:47,470 Tänapäeva maailmas Mac OS, võite laadida või alla laadinud juba 546 00:25:47,470 --> 00:25:50,437 midagi Xcode või GCC või rõkkama. 547 00:25:50,437 --> 00:25:52,270 Kui sa tuled Windows maailma võite 548 00:25:52,270 --> 00:25:56,190 allalaaditud Visual Studio, Visual Basic, keskkondade niimoodi. 549 00:25:56,190 --> 00:25:59,200 Seal on kümneid koostajad nendel päevadel, et sa võiksid kasutada. 550 00:25:59,200 --> 00:26:01,940 Aga lühike siin on, et see oleks valu 551 00:26:01,940 --> 00:26:04,480 ja ausalt öeldes, tehnoloogilised luupainaja sadu 552 00:26:04,480 --> 00:26:07,680 inimeste erinevate Arvutikonfiguratsioonide kõigile 553 00:26:07,680 --> 00:26:09,800 seadistada oma seadmed täpselt samamoodi 554 00:26:09,800 --> 00:26:11,700 nii et me kõik võime olla samal lehel. 555 00:26:11,700 --> 00:26:15,240 >> Nii et see, mida me selle asemel tegema aastal CS50 on meil teile 556 00:26:15,240 --> 00:26:18,349 standard keskkonda, Linux keskkonnas, mis on 557 00:26:18,349 --> 00:26:20,140 läheb otsima vähe midagi sellist. 558 00:26:20,140 --> 00:26:22,980 Näete rohkem seda on Ülesanded 1 spetsifikatsioon, mis 559 00:26:22,980 --> 00:26:25,330 läheb Internetis sel reedel. 560 00:26:25,330 --> 00:26:28,360 >> Ja mida see tähendab on see, et sa edaspidi 561 00:26:28,360 --> 00:26:32,060 hakkavad saama laadida ja installida programmi 562 00:26:32,060 --> 00:26:33,650 nimetatakse CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 Ja sa lähed alla laadida ja paigaldada teise programmi nimega 564 00:26:36,275 --> 00:26:40,300 hüpervisoori, mis on lihtsalt fancy viis selle saavutamiseks. 565 00:26:40,300 --> 00:26:44,600 Kas te oma Mac või PC või Linux arvutisse või Solaris arvutis 566 00:26:44,600 --> 00:26:46,830 või mis iganes hull operatsioonisüsteemi süsteemi sa kasutad, 567 00:26:46,830 --> 00:26:49,820 sa lähed alla laadida programm nimetatakse hüperviisor see 568 00:26:49,820 --> 00:26:53,350 jooksegi CS50 Kodumasinad arvutis 569 00:26:53,350 --> 00:26:55,430 ükski asi, mida teie operatsioonisüsteem on. 570 00:26:55,430 --> 00:27:00,640 Hüpervisoori teisisõnu teisendab meie kraami olenemata keelest, 571 00:27:00,640 --> 00:27:03,850 olenemata juhiseid oma oma arvuti aru saab. 572 00:27:03,850 --> 00:27:04,962 >> Nii et see on kihilisus. 573 00:27:04,962 --> 00:27:06,920 Ja veel, see on selline temaatiliste arvuti 574 00:27:06,920 --> 00:27:08,722 teaduse, hoone peal asju. 575 00:27:08,722 --> 00:27:09,680 Sul võib olla Windows. 576 00:27:09,680 --> 00:27:10,710 Sul võib olla Mac OS. 577 00:27:10,710 --> 00:27:12,960 Aga alustades järgmisel nädalal olete läheb allalaaditud 578 00:27:12,960 --> 00:27:14,980 vaba tarkvara nimetatakse hüperviisor. 579 00:27:14,980 --> 00:27:17,800 Sa lähed on alla tükk tarkvara nimega CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> See saab toimuda hüperviisor, mis läheb teie arvuti. 581 00:27:21,050 --> 00:27:23,030 Ja tulemuseks on et me kõik 582 00:27:23,030 --> 00:27:26,220 on lihtne aken, nagu see Mac või PC 583 00:27:26,220 --> 00:27:30,160 mis annab meile illusiooni kõik töötab sama operatsioonisüsteemi, 584 00:27:30,160 --> 00:27:32,800 ilma muude mõju arvuti. 585 00:27:32,800 --> 00:27:34,870 Ja te võite täisekraanil see ja sisuliselt käituma 586 00:27:34,870 --> 00:27:37,550 nagu oleks teil on operatsioonisüsteemi nimega Linux, 587 00:27:37,550 --> 00:27:40,270 mis on see, mida CS50 Kodumasinad põhineb. 588 00:27:40,270 --> 00:27:42,930 >> Nii et olgem tegelikult kasutavad seda nüüd kirjutada programm. 589 00:27:42,930 --> 00:27:45,450 Võite kirjutada programm kasutades Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Võite kirjutada programm kasutades TextEdit või Notepad, 591 00:27:48,160 --> 00:27:51,880 või WordPad või päris palju tahes sõna töötlemise programm olete kunagi kasutada. 592 00:27:51,880 --> 00:27:55,174 Kuid reaalsus on see, te ei tohiks kasutada tõesti mõnega neist programmidest. 593 00:27:55,174 --> 00:27:57,840 Te kindlasti ei tohiks kasutada midagi nagu Microsoft Word, mis 594 00:27:57,840 --> 00:28:01,120 on julge sõidusuunas kaldkirjas, ja suurem fonte ja väiksemaid fonte 595 00:28:01,120 --> 00:28:03,560 sest arvuti ei ole hooli sellest. 596 00:28:03,560 --> 00:28:05,600 Kõik arvuti läheb hoolivad 597 00:28:05,600 --> 00:28:09,040 English nagu juhiseid kirjutatud C. 598 00:28:09,040 --> 00:28:12,050 >> Niisiis, mida me teeme sees Euroopa CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 on kasutada programmi vabalt olemas, ja see on 600 00:28:14,290 --> 00:28:17,360 eelinstalleeritud selles seade, mida nimetatakse Gedit. 601 00:28:17,360 --> 00:28:22,280 Ja Gedit on lihtsalt super lihtne tekstiredaktoris nagu Mac OS TextEdit, 602 00:28:22,280 --> 00:28:26,200 nagu Windows Notepad, mis läheb vaata natuke midagi sellist. 603 00:28:26,200 --> 00:28:28,910 >> Nii et olgem tegelikult ei vaata slaidid selle. 604 00:28:28,910 --> 00:28:32,580 Kuid olgem tegelikult minna keskkond ise. 605 00:28:32,580 --> 00:28:36,090 Ma lähen edasi minna ja sisse sellega teiste aknas 606 00:28:36,090 --> 00:28:40,910 minu CS50 Appliance, mis ma olen eelinstalleeritud minu sülearvuti siin. 607 00:28:40,910 --> 00:28:43,771 >> Pane tähele, et nagu Windows ja Mac OS, see sai mõned menüüd. 608 00:28:43,771 --> 00:28:45,520 Nagu Windows ta paneb see seal selle asemel 609 00:28:45,520 --> 00:28:47,020 Mac OS, mis paneb selle sinna. 610 00:28:47,020 --> 00:28:48,930 Kuid reaalsus on see, et see on igasugu sama. 611 00:28:48,930 --> 00:28:50,770 Ja siin on kogu hunnik tarkvara. 612 00:28:50,770 --> 00:28:51,770 Seal on Dropbox. 613 00:28:51,770 --> 00:28:54,780 Seal on terve hunnik lisaseadmed graafilise programmid, paneme 614 00:28:54,780 --> 00:28:56,430 kasutada hiljem perspektiivis probleem komplekti. 615 00:28:56,430 --> 00:28:59,650 Seal on veebilehitseja ehitatud nii, et see on küps arvuti 616 00:28:59,650 --> 00:29:01,240 sees arvutis. 617 00:29:01,240 --> 00:29:04,170 >> Aga ma lähen klõpsa selle vasakpoolsema valge ikoon siin 618 00:29:04,170 --> 00:29:05,890 , mis on ikooni Gedit. 619 00:29:05,890 --> 00:29:09,650 Ja see saab avada aken et on kolm paneelid see, 620 00:29:09,650 --> 00:29:12,590 vasakpoolne, ülemine ja alumine. 621 00:29:12,590 --> 00:29:16,071 >> Nüüd on selles ülalt õige, et Ma tegelikult kirjutada mingi kood. 622 00:29:16,071 --> 00:29:16,820 Teeme seda ,. 623 00:29:16,820 --> 00:29:19,040 Ma lähen, et minna File, Save. 624 00:29:19,040 --> 00:29:22,100 Ja sa ei pruugi kunagi näinud see konkreetne aken enne. 625 00:29:22,100 --> 00:29:23,620 Aga see on nagu Mac OS või Windows. 626 00:29:23,620 --> 00:29:25,490 See on lihtsalt aknas kõik kaustad 627 00:29:25,490 --> 00:29:27,290 et mul on sees selle arvuti. 628 00:29:27,290 --> 00:29:30,320 >> Ja ma lähen säästa fail hello.c. 629 00:29:30,320 --> 00:29:32,690 Ja ma lähen edasi ja klõpsake nuppu Salvesta. 630 00:29:32,690 --> 00:29:36,364 Ja nüüd teate mul tab ülaosas vasakul nimetatakse hello.c. 631 00:29:36,364 --> 00:29:38,280 Nii et ilmselt päris tuttav, isegi kui sa oled ei 632 00:29:38,280 --> 00:29:40,240 kasutatakse selle konkreetse programmi enne. 633 00:29:40,240 --> 00:29:44,890 >> Ja nüüd ma lähen kirjuta need üsna segasena jada käske 634 00:29:44,890 --> 00:29:46,360 et me nägime hetkeks tagasi. 635 00:29:46,360 --> 00:29:49,330 Kaasa, standard I / O.h. 636 00:29:49,330 --> 00:29:50,600 Veel, et varsti. 637 00:29:50,600 --> 00:29:55,670 Int main void, avatud lokkis traksidega, suletud lokkis traksidega. 638 00:29:55,670 --> 00:30:01,570 Ja siis seal sees on minu arvates kus meil oli "hello world" semikoolon. 639 00:30:01,570 --> 00:30:03,100 Ja nüüd salvestada. 640 00:30:03,100 --> 00:30:08,780 >> Nii et see on kirjutatud programmi C, kirjutatud, seega lähtekoodi. 641 00:30:08,780 --> 00:30:10,720 Aga ma ei saa lihtsalt käivitada see programm. 642 00:30:10,720 --> 00:30:13,390 Ma nagu tahad kahekordistada kliki ikooni kuhugi, 643 00:30:13,390 --> 00:30:16,390 kuid ikoon on olemas teisi kui lähtekoodi fail. 644 00:30:16,390 --> 00:30:20,359 Mis jällegi on protsess nüüd, et Mul on vaja käivitada see fail läbi? 645 00:30:20,359 --> 00:30:21,150 Sihtrühm: tõlkija. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Humala: Nii tõlkija. 647 00:30:22,399 --> 00:30:24,890 Nii et erinevates arvutites seda erinevalt. 648 00:30:24,890 --> 00:30:27,480 Aga mida me oleme teinud siin CS50 Appliance see on 649 00:30:27,480 --> 00:30:31,260 esindaja, kuidas te võite Selleks on palju erinevaid süsteeme, 650 00:30:31,260 --> 00:30:34,036 on Ma lihtsalt lähen käivitada käsk nimega Mark. 651 00:30:34,036 --> 00:30:35,660 Ja teha on sõna otseses mõttes seda teeme. 652 00:30:35,660 --> 00:30:36,640 Tee mind programm. 653 00:30:36,640 --> 00:30:39,060 >> Nii et läheb käivitada kompilaator minu jaoks. 654 00:30:39,060 --> 00:30:42,160 Ja programmi nimi Ma tahan teha on tere. 655 00:30:42,160 --> 00:30:43,510 Nüüd teeb on programm. 656 00:30:43,510 --> 00:30:47,170 Ja teha on piisavalt targad, et aru, et kui ma ütlen teha hello, 657 00:30:47,170 --> 00:30:50,980 see läheb vaatama automaatselt faili nimega hello.c 658 00:30:50,980 --> 00:30:53,420 lihtsalt sellepärast, et see on nii see konfigureeritud. 659 00:30:53,420 --> 00:31:00,300 >> Nii et kui ma nüüd Enter siin, see hull segasena line just hukata. 660 00:31:00,300 --> 00:31:02,720 Ja usu mind, enne pikk jooksul vaid paar päeva, 661 00:31:02,720 --> 00:31:05,590 saate aru, mida kõik selle jama vahenditega. 662 00:31:05,590 --> 00:31:11,150 Aga nüüd, lihtsalt tean, et teha vallandatud täitmise tõlkija. 663 00:31:11,150 --> 00:31:13,290 Teisisõnu, see leiti koostaja minu arvutis 664 00:31:13,290 --> 00:31:14,820 see on eelinstalleeritud aasta CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 et me anna teile Ülesanded 1. 666 00:31:16,560 --> 00:31:20,990 Ja siis võttis hello.c kui sisend ja toodetud ilmselt 667 00:31:20,990 --> 00:31:23,040 0. ja 1s toodanguna. 668 00:31:23,040 --> 00:31:29,410 >> Ja vaikimisi, mida ta teeb, on see säästab need 0. ja 1s faili nimega hello. 669 00:31:29,410 --> 00:31:33,180 Ja kuigi see süntaks liiga võiks on uusi teid, lihtsalt öeldes dot 670 00:31:33,180 --> 00:31:37,110 kaldkriips hello saab olema vahendid, mille abil ma programmi käivitada. 671 00:31:37,110 --> 00:31:40,360 >> Praegu ja vähemalt paar nädalat, peaaegu kõik programmid 672 00:31:40,360 --> 00:31:44,230 Me kirjutada ei kavatse olla must ja valge tekst aknad. 673 00:31:44,230 --> 00:31:47,006 No Hiirtel ei klõpsamine ilma akendeta, ei ikoone. 674 00:31:47,006 --> 00:31:49,630 Me läheme seda lihtsalt ja keskenduda algideedest 675 00:31:49,630 --> 00:31:52,490 algselt enne kui me midagi kõrgem tase, näiteks 676 00:31:52,490 --> 00:31:56,410 nagu break out mäng, mis me rääkisime umbes esimese loengu eelmisel nädalal. 677 00:31:56,410 --> 00:32:00,820 >> Nii et kui ma Enter siin, et see on vaste ainult teksti keskkond 678 00:32:00,820 --> 00:32:03,272 kahekordistada klõpsates ikoonil nimega hello. 679 00:32:03,272 --> 00:32:05,480 Mida ootate tahet juhtuda, kui ma tabanud Sisesta siis? 680 00:32:05,480 --> 00:32:07,120 >> Sihtrühm: See saab printida "hello world". 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Humala: Loodetavasti ta prindib "hello world". 682 00:32:10,000 --> 00:32:11,370 Ja ta tõepoolest tegi. 683 00:32:11,370 --> 00:32:13,690 Nüüd on olnud mõned segasena süntaks siin. 684 00:32:13,690 --> 00:32:15,950 Lähme tagasi kerida vaid hetk ja vaata, kas me 685 00:32:15,950 --> 00:32:19,530 ei saa alustada järeldada lihtsalt sisemusse, püüdes ja jättes, 686 00:32:19,530 --> 00:32:21,130 selle kohta, mis siin toimub. 687 00:32:21,130 --> 00:32:23,609 Mis siis, kui ma saan lahti längkriipsu n? 688 00:32:23,609 --> 00:32:25,650 Nüüd mõned teist, kes olen programmeeritud enne ilmselt 689 00:32:25,650 --> 00:32:27,054 tea kohe, mida see tähendab. 690 00:32:27,054 --> 00:32:29,220 Aga neile, kes pole kunagi programmeeritud enne, 691 00:32:29,220 --> 00:32:34,052 vähemalt arvan ise, mis toimub muuta, kui ma uuesti, see programm? 692 00:32:34,052 --> 00:32:37,010 Nii et ma lähen tagasi alla mu väike must ja valge aken, mis 693 00:32:37,010 --> 00:32:39,290 on aken, kus Võin koostada selle. 694 00:32:39,290 --> 00:32:41,130 Ma lähen kompileerida tere. 695 00:32:41,130 --> 00:32:43,520 Me näeme sama segasena jada käske. 696 00:32:43,520 --> 00:32:45,719 Ja ma teen dot kaldkriips tere. 697 00:32:45,719 --> 00:32:48,260 Ja nüüd keegi, kui teil oleks, kes pole kunagi programmeeritud enne, 698 00:32:48,260 --> 00:32:49,770 Mis võib olla erinev seekord? 699 00:32:49,770 --> 00:32:50,020 Jah. 700 00:32:50,020 --> 00:32:51,840 >> Sihtrühm: See ei peatu trükkimine "hello world". 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Humala: See läheb to-- kahju? 702 00:32:52,660 --> 00:32:54,210 >> Sihtrühm: See ei peatu trükkimiseks? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Humala: see ei ole Printimise peatamine "hello world". 704 00:32:55,810 --> 00:32:56,560 Nii et ei ole halb mõte. 705 00:32:56,560 --> 00:32:58,633 Ideid? 706 00:32:58,633 --> 00:32:59,132 Jah. 707 00:32:59,132 --> 00:33:00,060 >> Sihtrühm: Veateade? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Humala: Error sõnum, OK, võiks olla. 709 00:33:01,750 --> 00:33:02,250 Mis veel? 710 00:33:02,250 --> 00:33:05,479 Sihtrühm: See võib printida bracket semikooloniga ka? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Humala: võib printer printida bracket semikoolon samuti. 712 00:33:08,270 --> 00:33:11,950 Nii et võibolla see tagurpidi kaldkriipsuga siis on mõned liiki terminous, mis on oluline. 713 00:33:11,950 --> 00:33:14,860 Muid mõtteid? 714 00:33:14,860 --> 00:33:16,412 >> Nii et kõik head ideed. 715 00:33:16,412 --> 00:33:18,370 Ja tegelikult, see läheb olla veateate. 716 00:33:18,370 --> 00:33:20,400 See on ilmselt kõige tõenäolisem olevat vastus üldiselt 717 00:33:20,400 --> 00:33:22,420 Järgmise paari nädala jooksul kui me õpime koodi siin. 718 00:33:22,420 --> 00:33:27,680 >> Aga nüüd meeles, et arvutid ainult seda, mida sa neile öelda, mida teha. 719 00:33:27,680 --> 00:33:30,400 Palju nagu naeruväärne maapähkli või ja marmelaad näiteks. 720 00:33:30,400 --> 00:33:33,860 Meie inimeste arvuteid vaid peaks teha seda, mida sa ütlesid, et nad teeksid. 721 00:33:33,860 --> 00:33:36,250 Nii et sel juhul, kui te ei ütle arvuti 722 00:33:36,250 --> 00:33:41,190 liikuda, et vilkuv kursor Järgmine rida, ta ei kavatse seda teha. 723 00:33:41,190 --> 00:33:45,390 Nii et kui ma saan selle programmi nüüd märgata erinevust. 724 00:33:45,390 --> 00:33:46,900 >> Paistab, et viga. 725 00:33:46,900 --> 00:33:49,190 See on esteetiline bug, võibolla. 726 00:33:49,190 --> 00:33:53,310 Aga mis on erinev sellest võimsus vs viimane loomulikult? 727 00:33:53,310 --> 00:33:53,810 Jah. 728 00:33:53,810 --> 00:33:54,920 >> Sihtrühm: See ei tee uut rida. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Humala: See ei tee uut rida. 730 00:33:56,586 --> 00:33:58,740 Nüüd neile, kes on äkki tehtud veebilehti 731 00:33:58,740 --> 00:34:01,910 enne, sa võiksid teada, et BR tag või lõikes tag, 732 00:34:01,910 --> 00:34:03,120 väga sarnase sisuga. 733 00:34:03,120 --> 00:34:06,680 Veebibrauser ignoreerib sind, kuni sa ütle täpselt, mida teha. 734 00:34:06,680 --> 00:34:10,020 Samuti on keel nagu C ainult teeme, mida sa öelda tahad. 735 00:34:10,020 --> 00:34:12,730 >> Nii et sel põhjusel, et kõik need näited, 736 00:34:12,730 --> 00:34:15,350 Siiani on selline juhuslikult oli see tagurpidi kaldkriipsuga 737 00:34:15,350 --> 00:34:18,560 seal, see on vahend millega ennast väljendada 738 00:34:18,560 --> 00:34:21,380 kui reavahetusmärki, nii rääkida. 739 00:34:21,380 --> 00:34:26,219 Ja te võite seda mõista, võib-olla, et see näeks välja tobe 740 00:34:26,219 --> 00:34:27,070 Kui mitte midagi muud. 741 00:34:27,070 --> 00:34:29,150 Kui ma tahtsin uut rida, vaid Enterin ja seejärel objekti 742 00:34:29,150 --> 00:34:32,219 butchering kood niimoodi ei tohiks tõesti hõõruda sa õige tee. 743 00:34:32,219 --> 00:34:33,830 Ja isegi kui sa seda ei tee tõesti hoolivad sel hetkel, 744 00:34:33,830 --> 00:34:35,830 siis saad aru, et see ei ole eriti 745 00:34:35,830 --> 00:34:37,870 stiilne tükk kood. 746 00:34:37,870 --> 00:34:39,969 >> Ja nii see, mida maailm otsustas aastaid tagasi on 747 00:34:39,969 --> 00:34:43,420 et kui sa tahad panna Cursor'iga uus liin selgesõnaliselt, 748 00:34:43,420 --> 00:34:46,332 peate selgelt öelda uus liin, längkriipsu n. 749 00:34:46,332 --> 00:34:48,040 Ja seal on mõned muud sümbolid niimoodi. 750 00:34:48,040 --> 00:34:50,719 Aga nüüd me lihtsalt keskenduda längkriipsu n. 751 00:34:50,719 --> 00:34:53,790 >> Nüüd teeme programmi natuke huvitavamaks. 752 00:34:53,790 --> 00:34:59,200 Ma lähen edasi minna ja seekord avada uus fail. 753 00:34:59,200 --> 00:35:02,520 Ma lähen, et päästa seda hello-1.c. 754 00:35:02,520 --> 00:35:05,540 Ja lihtsalt peksab, ma lähen mine pane see minu Dropbox kausta. 755 00:35:05,540 --> 00:35:09,030 >> Nagu näete, on CS50 dokumentatsiooni seadme 756 00:35:09,030 --> 00:35:11,210 hiljem sel nädalal Probleem Vaid 1, me julgustada 757 00:35:11,210 --> 00:35:13,230 teil kasutada Dropbox või mõnda samaväärset teenust, 758 00:35:13,230 --> 00:35:15,430 sest siis on kõik teie kood on läheb käiks automaatselt. 759 00:35:15,430 --> 00:35:17,830 Ja see on põhjus, miks ma olen läinud selles kaustas siin. 760 00:35:17,830 --> 00:35:20,230 >> Ja nüüd ma lähen kirjutada veidi erinev programm. 761 00:35:20,230 --> 00:35:24,740 Kaasa, standard I / O.h, int main void. 762 00:35:24,740 --> 00:35:29,660 Ja siis siin printf, hello world, mis on täpselt sama nagu enne. 763 00:35:29,660 --> 00:35:32,450 >> Aga nüüd ma tahan printida midagi see on veidi erinev. 764 00:35:32,450 --> 00:35:34,800 Ma tahan välja printida, öelda: "Tere, David." 765 00:35:34,800 --> 00:35:37,590 Olgu, ilmselt, see peaks loodetavasti 766 00:35:37,590 --> 00:35:40,360 olla nii, et kui ma kompileerida Selle programmi uuesti, see, 767 00:35:40,360 --> 00:35:41,840 see saab öelda "tere, David." 768 00:35:41,840 --> 00:35:45,160 >> Aga mis siis, kui ma tahan tutvustada selline muutuja, 769 00:35:45,160 --> 00:35:49,240 mõiste pakend, mis läheb salvestada D--v-i-d ja ei ole raske koodi see 770 00:35:49,240 --> 00:35:50,600 minu programmi. 771 00:35:50,600 --> 00:35:53,430 Noh mis siis, kui ma alustan midagi sellist? 772 00:35:53,430 --> 00:35:57,120 >> String s, nii et see on muutuv. 773 00:35:57,120 --> 00:36:00,250 Kui soovite string, teise nimega sõna või fraasi. 774 00:36:00,250 --> 00:36:03,485 Märgijada, mida me programmeerimine helistada string. 775 00:36:03,485 --> 00:36:06,610 Me lihtsalt läheb üldiselt kõne see s, sest see on kena lihtne nimi. 776 00:36:06,610 --> 00:36:08,010 Aga ma ei saanud helistada see midagi. 777 00:36:08,010 --> 00:36:12,920 >> Ma lähen ütlen string s võrdsete quote lõppeb, "David" semikoolon. 778 00:36:12,920 --> 00:36:18,330 Ja nüüd ma tahan lisada D-a-v-i-d sellest, mida ma olen trükkimine. 779 00:36:18,330 --> 00:36:23,720 Ja enne kui me nägime teaser kohta ekraanil mõned süntaksit 780 00:36:23,720 --> 00:36:26,050 mis võimaldas meil asendajana väärtus. 781 00:36:26,050 --> 00:36:29,250 Mis oli eriline sümbol mõned slaidid tagasi? 782 00:36:29,250 --> 00:36:30,040 >> Niisiis protsenti. 783 00:36:30,040 --> 00:36:33,830 Tol ajal oli see protsent D kümnendkohani. 784 00:36:33,830 --> 00:36:35,850 See valik ei oma siin tähtsust. 785 00:36:35,850 --> 00:36:38,650 Selgub, et tema teise protsenti sümbol, 786 00:36:38,650 --> 00:36:42,810 mis on protsendi s, mis tähistab jaoks kohatäide string. 787 00:36:42,810 --> 00:36:49,350 >> Nii et nüüd, väga lihtsalt, ma olen lähen tegema hello-1, 788 00:36:49,350 --> 00:36:54,210 sest seda faili nimetatakse hello-1.c ja vajuta Enter. 789 00:36:54,210 --> 00:36:56,230 Ja ma silmamunad. 790 00:36:56,230 --> 00:36:57,394 Mis toimub? 791 00:36:57,394 --> 00:37:00,560 Noh, siin on koht, kus me peame hakkama aru, et me oleme see käsk 792 00:37:00,560 --> 00:37:02,810 line keskkond, seda ainult teksti keskkond. 793 00:37:02,810 --> 00:37:06,114 Ei ole klõpsates ikoonid nagu kaustu praegu. 794 00:37:06,114 --> 00:37:07,280 Ja arvan, et tagasi hetk tagasi. 795 00:37:07,280 --> 00:37:10,740 Millises kausta ma ütlesin Ma hoidsin oma koodi? 796 00:37:10,740 --> 00:37:11,657 Nii Dropbox kausta. 797 00:37:11,657 --> 00:37:12,989 Kas on kutsutud midagi. 798 00:37:12,989 --> 00:37:14,530 Aga see juhtub nimetada Dropbox. 799 00:37:14,530 --> 00:37:18,380 Nii et ma kuidagi on vaja topeltklõpsu et Dropbox kausta, et saada 800 00:37:18,380 --> 00:37:21,657 seda ja saad mu kood nimega hello-1.c. 801 00:37:21,657 --> 00:37:24,490 Tegelikult, las ma minna ja minimeerida see aken hetkeks. 802 00:37:24,490 --> 00:37:27,560 Just nagu Windows ja Mac OS, seal on kaustad Linux. 803 00:37:27,560 --> 00:37:29,410 On kaustad CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 See on lihtsalt praegu me sulgeda end selle teksti keskkond. 805 00:37:32,380 --> 00:37:34,700 >> Aga kui ma topelt klõps on Dropbox, märkate seal 806 00:37:34,700 --> 00:37:37,210 on fail, et ma tahan koguda. 807 00:37:37,210 --> 00:37:41,430 Aga ma vajan seda mustvalgelt terminali aken, nii rääkida. 808 00:37:41,430 --> 00:37:45,750 Aga mul on vaja seetõttu, et liikuda samasse kausta või kataloogi. 809 00:37:45,750 --> 00:37:48,290 Nii et veidi kauge, kuid Sa harjud selle liiga. 810 00:37:48,290 --> 00:37:50,430 >> Tänapäeva maailmas on Linux, mis omakorda on tegevuse 811 00:37:50,430 --> 00:37:54,860 süsteem meil hakkab seestpoolt CS50 Kodumasinad, seal käsk nimega CD. 812 00:37:54,860 --> 00:37:58,310 Mis tähendab, et ma saan teha, CD, ruumi, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, muutus kataloogi. 814 00:37:59,900 --> 00:38:00,400 Õigus. 815 00:38:00,400 --> 00:38:02,890 Juba järgmisel päeval, kui inimesed olid leiutas arvutid ja tegutsevad 816 00:38:02,890 --> 00:38:05,806 süsteemide nagu see, et nad tahtsid kirjuta kõige vähem klahvivajutusi võimalik. 817 00:38:05,806 --> 00:38:08,760 Nii et lihtsaim viis öelda muutus kataloogi CD. 818 00:38:08,760 --> 00:38:13,910 >> Nii et kui ma tabanud CD, ruumi Dropbox, teate, mis on muutunud siin. 819 00:38:13,910 --> 00:38:16,480 Toas sulgude Seade on selline 820 00:38:16,480 --> 00:38:19,360 kohta humoring mind ja meenutas mulle, kus ma olen. 821 00:38:19,360 --> 00:38:21,480 Nii avatud kausta Dropbox. 822 00:38:21,480 --> 00:38:24,950 Kui ma nüüd kirjuta LS nimekirja, jälle lühike, 823 00:38:24,950 --> 00:38:27,540 sest inimesed ei taha kirjuta juba järgmisel päeval l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Nii nad selle asemel tegi ta ls. 825 00:38:29,300 --> 00:38:30,110 >> Sisesta. 826 00:38:30,110 --> 00:38:35,740 Pange tähele, ma näen kahte asja, tere-1.c, ja siis see segasena asi, allikas 1m. 827 00:38:35,740 --> 00:38:38,310 See on lihtsalt minu viis öelda lähtekoodi nädal 1 esmaspäeval. 828 00:38:38,310 --> 00:38:42,020 See kaust ma alla laadida CS50 veebisaidil, et ma tegin täna 829 00:38:42,020 --> 00:38:43,990 ja lihtsalt panna see Seadme ette. 830 00:38:43,990 --> 00:38:47,550 >> Aga nüüd ainus asi, mida hoolin teeb seda programmi. 831 00:38:47,550 --> 00:38:50,440 Nii et kui ma tüüpi muuta tere-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Kurat. 833 00:38:51,320 --> 00:38:53,060 Midagi läks valesti. 834 00:38:53,060 --> 00:38:54,580 Nii et olgem kiusupunn see peale. 835 00:38:54,580 --> 00:38:58,489 Ja kahjuks on see kus asjad natuke stressirohke alguses, 836 00:38:58,489 --> 00:39:00,280 vähemalt siis, kui olete kunagi programmeeritud enne. 837 00:39:00,280 --> 00:39:00,980 >> Mu jumal. 838 00:39:00,980 --> 00:39:04,990 Kirjutasin kaks rida programmi ja Mul on neli rida vigu. 839 00:39:04,990 --> 00:39:07,180 Niisiis, mis toimub siin. 840 00:39:07,180 --> 00:39:11,370 Kõigepealt alati tagasi kerima up ja leida esimene veateade, 841 00:39:11,370 --> 00:39:15,730 sest Sageli koostajad lihtsalt saada segaduses, mida sina ja mina. 842 00:39:15,730 --> 00:39:17,000 Koostajad on päris loll. 843 00:39:17,000 --> 00:39:18,360 Nad ainult seda, mida sa ütle neile, mida teha. 844 00:39:18,360 --> 00:39:21,484 Ja kui sa neid segadusse ajada, et nad on lihtsalt läheb selline öökima oma käed 845 00:39:21,484 --> 00:39:25,010 ja võibolla viska rohkem veateateid kui on tegelikult oluline. 846 00:39:25,010 --> 00:39:26,380 >> Nii et vaatame kõigepealt. 847 00:39:26,380 --> 00:39:27,540 Super segasena alguses. 848 00:39:27,540 --> 00:39:31,050 Aga teate, siin on nimi fail, kus ma silmamunad ilmselt. 849 00:39:31,050 --> 00:39:36,570 Colon 5, käärsoole 5 tähendab lihtsalt kohta sirgel 5 viienda iseloomu. 850 00:39:36,570 --> 00:39:39,760 Nii et viies kolonn tähemärki kui soovite, viga. 851 00:39:39,760 --> 00:39:41,870 Kasutada deklareerimata tunnus string. 852 00:39:41,870 --> 00:39:43,120 Kas mõtlesite standard n? 853 00:39:43,120 --> 00:39:44,850 >> Ei, ma mõtlesin string. 854 00:39:44,850 --> 00:39:47,640 Ja siis see on selline kopeerimine ja asetamine 855 00:39:47,640 --> 00:39:50,700 mida ma kirjutada, et tõesti juhtida oma tähelepanu, kui ma silmamunad. 856 00:39:50,700 --> 00:39:54,260 Nii mingil põhjusel C või vähemalt koostaja 857 00:39:54,260 --> 00:39:56,470 ei saa aru sõna string. 858 00:39:56,470 --> 00:39:57,890 Ja see on sellepärast, et me tegime seda üles. 859 00:39:57,890 --> 00:40:01,440 Nii et string ei ole olemas C. Mis CS50 teeb, 860 00:40:01,440 --> 00:40:03,380 Esimese paari nädala jooksul ainult klassis 861 00:40:03,380 --> 00:40:05,700 on meil pakkuda mõned koolitus rattad, nii rääkida. 862 00:40:05,700 --> 00:40:11,160 Ja me paneme need abirattad sees spetsiaalne fail nimega CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Nii et see on teine ​​kahe faili nimed, mis ilmselt lõpeb dot h. 864 00:40:14,970 --> 00:40:16,300 Lähme tagasi kerida. 865 00:40:16,300 --> 00:40:19,360 Printf on avalduse või funktsioon et ilmselt trükib midagi 866 00:40:19,360 --> 00:40:20,580 ekraanile. 867 00:40:20,580 --> 00:40:23,470 Aga te ei näe mind rakendada printf, eks. 868 00:40:23,470 --> 00:40:26,360 Keegi aastat tagasi ellu printf. 869 00:40:26,360 --> 00:40:30,420 Millises faili sa kihlvedu ta või ta pani rakendamise 870 00:40:30,420 --> 00:40:34,270 printf, kood printf? 871 00:40:34,270 --> 00:40:36,860 >> Faili nimega standard I / O.h. 872 00:40:36,860 --> 00:40:39,930 Tegelikult, see on ilmselt kaks faili, standard I / O.h, 873 00:40:39,930 --> 00:40:42,650 mis tähistab kaudu fail ja standard I / O.c, 874 00:40:42,650 --> 00:40:44,060 mis tähistab C lähtekoodi. 875 00:40:44,060 --> 00:40:48,220 Nii ta mõned aastad tagasi plopped kood, mis nad kirjutasid, et fail 876 00:40:48,220 --> 00:40:51,240 nii et inimesed nagu meie aastat hiljem saab lisada see, 877 00:40:51,240 --> 00:40:53,040 niiöelda meie oma programme. 878 00:40:53,040 --> 00:40:56,320 >> Ja tõepoolest, seda nael märk millele järgneb sõna hulka ei. 879 00:40:56,320 --> 00:41:00,250 Tundub kohalikule kõvakettale, leiab fail nimega standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 ja siis tegelikult koopiad ja kleebib selle sees oma faili. 881 00:41:03,840 --> 00:41:07,210 Nüüd minu programm teab kuidas printida ekraanil. 882 00:41:07,210 --> 00:41:11,120 >> Nii et selle loogika, kus on string määratletud? 883 00:41:11,120 --> 00:41:12,260 >> Sihtrühm: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> DAVID J. Humala: CS50.h. 885 00:41:13,290 --> 00:41:15,540 Ja tõepoolest, see on, mida me, tuum töötajad on teinud. 886 00:41:15,540 --> 00:41:19,590 Me oleme välja töötanud mõned andmetüübid, nii rääkida, nagu string, 887 00:41:19,590 --> 00:41:22,370 lisaks need, mida saada tasuta, nagu int. 888 00:41:22,370 --> 00:41:26,010 Ja me näeme, teised nagu char jaoks märk ja veel mõned. 889 00:41:26,010 --> 00:41:30,670 Toas CS50.h ilmselt on vähemalt mõned mainita string. 890 00:41:30,670 --> 00:41:34,980 >> Nüüd lubage mul minna ja kordamisega mark hello-1. 891 00:41:34,980 --> 00:41:37,100 Ma suumida uuesti ja rist mu sõrmed. 892 00:41:37,100 --> 00:41:41,370 Nüüd, mida on teinud ühe muuta I kinnitatud kõige rohkem asju. 893 00:41:41,370 --> 00:41:42,100 Aga kurat võtaks. 894 00:41:42,100 --> 00:41:44,290 Rohkem protsente kui andmed argumente. 895 00:41:44,290 --> 00:41:45,980 Mis ma valesti tegin sel ajal? 896 00:41:45,980 --> 00:41:47,420 >> Nii et see on ikka päris segasena. 897 00:41:47,420 --> 00:41:51,560 Aga see viga on rida 7 ja iseloom 21. 898 00:41:51,560 --> 00:41:53,880 Nii et lähme vaatame siin. 899 00:41:53,880 --> 00:41:55,350 See on veidi peenem. 900 00:41:55,350 --> 00:41:59,167 Aga kui sa arvad, mida põhilisi ideid on siin, 901 00:41:59,167 --> 00:42:00,500 ehk saame kiusupunn see peale. 902 00:42:00,500 --> 00:42:02,300 >> Nii printf on funktsiooni nimi. 903 00:42:02,300 --> 00:42:04,960 Sulgudes, seni on nagu see, mida me panna ümber 904 00:42:04,960 --> 00:42:07,005 kraami Me möödume sisenditena funktsioon. 905 00:42:07,005 --> 00:42:08,921 Hea küll, lihtsalt suvalise inimese konventsiooni. 906 00:42:08,921 --> 00:42:09,919 Kasuta sulgudes. 907 00:42:09,919 --> 00:42:12,460 Toas need sulud oleme olnud pannes jutumärgid, 908 00:42:12,460 --> 00:42:14,810 ja siis string nagu "hello world". 909 00:42:14,810 --> 00:42:18,160 >> Aga mis varem näiteks väga lühidalt tegime me vaatame koos Scratch. 910 00:42:18,160 --> 00:42:22,590 Ja meil oli protsenti d, mida veel oli sees need sulud 911 00:42:22,590 --> 00:42:23,730 mis ma hüüdsin suuliselt? 912 00:42:23,730 --> 00:42:24,230 Jah. 913 00:42:24,230 --> 00:42:28,166 >> Sihtrühm: Nii et see on see, mida te kasutate [Kuuldamatu] sees [kuuldamatu] 914 00:42:28,166 --> 00:42:30,200 mis need [kuuldamatu]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Humala: Täpselt. 916 00:42:31,200 --> 00:42:32,700 Seega oli meil protsenti d. 917 00:42:32,700 --> 00:42:36,620 Aga meil oli lähedal quote, koma counter. 918 00:42:36,620 --> 00:42:37,120 Õigus. 919 00:42:37,120 --> 00:42:40,680 Oleme kindlaks, mida me tahame teha nii, nagu kohatäide. 920 00:42:40,680 --> 00:42:44,621 Niisiis, mida ma lähen tegema, on siin koma, mida sa tahad panna? 921 00:42:44,621 --> 00:42:45,120 Sihtrühm: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Humala: S, sest s sel juhul 923 00:42:46,828 --> 00:42:48,700 on nime kanistrisse. 924 00:42:48,700 --> 00:42:50,180 See on nimi, et klaas kauss. 925 00:42:50,180 --> 00:42:53,610 Kui enne oli see counter selles lihtne Scratch näide me vaatasime. 926 00:42:53,610 --> 00:42:56,630 Nii et nüüd on teinud kaks muutusi, andke mulle suurendamiseks 927 00:42:56,630 --> 00:42:59,800 ja proovida veel kord koostada programmi. 928 00:42:59,800 --> 00:43:01,596 >> Nüüd ma näen, et segasena liin. 929 00:43:01,596 --> 00:43:03,470 Aga see on tegelikult koostaja nimi. 930 00:43:03,470 --> 00:43:04,886 Rõkkama on koostaja nimi. 931 00:43:04,886 --> 00:43:07,100 Tee on lihtsalt säästa mind peavalu kunagi 932 00:43:07,100 --> 00:43:09,830 kirjutades, et pikk hull käsk välja. 933 00:43:09,830 --> 00:43:14,900 Nüüd, kui ma dot kaldkriips hello-1, Ma oleks näha "tere, David." 934 00:43:14,900 --> 00:43:16,450 >> Päris underwhelming, eks? 935 00:43:16,450 --> 00:43:18,158 Me oleks võinud teha see palju lihtsamalt 936 00:43:18,158 --> 00:43:20,940 ilma räägime muutujate ja CS50.h ja kõik see. 937 00:43:20,940 --> 00:43:23,080 Seega teeme seda natuke huvitavamaks. 938 00:43:23,080 --> 00:43:31,010 >> Lisaks CS50.h, võttes asju nagu string 939 00:43:31,010 --> 00:43:34,550 kuulutas CS50 raamatukogu Lisaks on mõned funktsioonid. 940 00:43:34,550 --> 00:43:38,520 Nii nagu aasta tagasi, keegi kirjutas printf ja pane see standard I / O.h 941 00:43:38,520 --> 00:43:39,530 ja mõne muu faili. 942 00:43:39,530 --> 00:43:44,010 >> Meie, CS50 personal, kirjutas funktsioon nimetatakse getchar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, getString, ja paneme need sees fail 944 00:43:47,610 --> 00:43:49,890 nimetatakse CS50.h ja CS50.c. 945 00:43:49,890 --> 00:43:51,880 Ja me paneme nad sisse Euroopa CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 Ja inimesed saavad ka laadida neid võrgus, kui nad 947 00:43:53,880 --> 00:43:55,880 tahan panna neid oma oma arvutid samuti. 948 00:43:55,880 --> 00:44:00,880 Mis tähendab, et oleme loonud funktsioone, mis saada sisend kasutaja. 949 00:44:00,880 --> 00:44:02,930 Ma ei tea, mida kõik Nende andmete tüüpe. 950 00:44:02,930 --> 00:44:06,490 GetInt on selline lihtne, nagu saada täisarv kuidagi kasutaja. 951 00:44:06,490 --> 00:44:09,980 Ja getString on ilmselt nagu get sõna või lause kasutaja. 952 00:44:09,980 --> 00:44:11,770 >> Nii et olgem keskenduda selle. 953 00:44:11,770 --> 00:44:14,710 Ja ma lähen tagasi seadme ja ma lähen edasi minna 954 00:44:14,710 --> 00:44:20,790 ja salvestada see fail, kutsume see hello-2.c nagu mu teine ​​versioon. 955 00:44:20,790 --> 00:44:23,030 Ja olgem teha paar muudatusi. 956 00:44:23,030 --> 00:44:25,800 >> Seekord asemel kõva kodeerimine David, mis 957 00:44:25,800 --> 00:44:29,120 teeb uskumatult järjekindel kuid underwhelming programmi 958 00:44:29,120 --> 00:44:32,640 Mis siis, kui ma selle asemel teha getString? 959 00:44:32,640 --> 00:44:35,660 Nüüd teate getString on avatud sulgudes 960 00:44:35,660 --> 00:44:38,500 suletud sulgudes sest see ei vaja sisend. 961 00:44:38,500 --> 00:44:40,850 See on lihtsalt minema saada string kasutaja. 962 00:44:40,850 --> 00:44:42,460 >> Ja nüüd sõna teiste süntaks. 963 00:44:42,460 --> 00:44:45,439 Puolipisteinä lihtsalt lõpuks rida koodi. 964 00:44:45,439 --> 00:44:46,730 Sa ei pea neid kõikjal. 965 00:44:46,730 --> 00:44:48,896 Aga see lihtsalt tähendab, et ma olen teinud seda rida koodi. 966 00:44:48,896 --> 00:44:51,080 Lubage mul liikuda teisele avalduse või funktsioon. 967 00:44:51,080 --> 00:44:53,010 String deklareerib muutuja. 968 00:44:53,010 --> 00:44:55,920 String on nagu öelda andke mulle nõu, siis palun. 969 00:44:55,920 --> 00:44:57,940 Ja las ma panen string ta. 970 00:44:57,940 --> 00:44:59,430 >> Ja nüüd võrdusmärk. 971 00:44:59,430 --> 00:45:03,510 Mis on võrdusmärk sisuliselt samaväärsed? 972 00:45:03,510 --> 00:45:04,500 >> Sihtrühm: määrata. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Humala: Jah, väärtustamise. 974 00:45:06,190 --> 00:45:09,872 Nii et kui ma näiteks kõne Selle funktsiooni getString, 975 00:45:09,872 --> 00:45:12,830 ja me näeme ühel hetkel, et on läheb küsib kasutajalt string. 976 00:45:12,830 --> 00:45:17,810 See on nagu lased mul siis kirjutada D-a-v-i-d tükk paberit. 977 00:45:17,810 --> 00:45:21,060 Ja kui ma ütlen string s võrdub getString, 978 00:45:21,060 --> 00:45:24,140 võrdub tegelikult ei tähenda võrdsed C programmeerimine. 979 00:45:24,140 --> 00:45:27,880 See tähendab loovutada alates paremalt pool vasakul pool. 980 00:45:27,880 --> 00:45:29,510 >> Nii et ma olen saanud string. 981 00:45:29,510 --> 00:45:32,785 Ja võrdusmärk tähendab panna aastal hoiuruum nimetatakse s. 982 00:45:32,785 --> 00:45:36,730 Ja siis liigu see ära printf tegelikult teha oma asja. 983 00:45:36,730 --> 00:45:39,790 >> Nii et lõpptulemus siis läheb vaadata veidi erinev. 984 00:45:39,790 --> 00:45:40,840 Teeme teha hello-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Kas võiks toimida. 987 00:45:45,260 --> 00:45:46,450 Sa järgmine mööda. 988 00:45:46,450 --> 00:45:47,940 Tee hello-2 töötas. 989 00:45:47,940 --> 00:45:52,640 Dot kärpida hello-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Mulle tundub, et on lõputu loop või midagi. 991 00:45:54,620 --> 00:45:55,453 Midagi ei juhtu. 992 00:45:55,453 --> 00:45:56,134 Miks? 993 00:45:56,134 --> 00:45:57,805 >> Sihtrühm: see teeb lõputu silmuse. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Humala: See on lõputu silmuse. 995 00:45:59,430 --> 00:46:02,710 See on omamoodi ootab mind tegelikult annab talle mõned sisend. 996 00:46:02,710 --> 00:46:05,800 Nii et lubage mul minna ja kirjuta David ja vajuta Enter. 997 00:46:05,800 --> 00:46:07,230 Ja nüüd ta ütleb: "Tere, David." 998 00:46:07,230 --> 00:46:09,040 Kui ma saan seda uuesti. 999 00:46:09,040 --> 00:46:11,530 Olgem kirjuta Rob, "Tere, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Nüüd on see kõige hullem kasutajaliides kunagi. 1001 00:46:13,900 --> 00:46:16,110 Kasutaja ilmselt peaksin teadma, mida teha. 1002 00:46:16,110 --> 00:46:17,120 Aga ükskõik. 1003 00:46:17,120 --> 00:46:19,570 Kasutades neid samas hoones plokid nagu Scratch, 1004 00:46:19,570 --> 00:46:24,980 saame seda probleemi lahendada ja öelda midagi oma nimi palun, koolon, 1005 00:46:24,980 --> 00:46:27,820 ruumi, suletud quote lähedal sulgudes semikooloniga. 1006 00:46:27,820 --> 00:46:30,680 Nii palju taas rumaluseks süntaks. 1007 00:46:30,680 --> 00:46:34,040 >> Aga teate ma olen lihtsalt lisatud puzzle tükk üle selle ühe 1008 00:46:34,040 --> 00:46:35,280 ja üle selle. 1009 00:46:35,280 --> 00:46:38,870 Nüüd, kui ma uuesti, see, tere-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Oota nüüd. 1011 00:46:41,180 --> 00:46:41,830 Mis viga? 1012 00:46:41,830 --> 00:46:43,570 See ei käitunud teistmoodi. 1013 00:46:43,570 --> 00:46:44,200 Jah. 1014 00:46:44,200 --> 00:46:46,010 >> Sihtrühm: Sa ei jooksnud teha uuesti. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Humala: ma ei ole joosta tee jälle paremale. 1016 00:46:47,968 --> 00:46:49,430 Nii et ma muutsin oma lähtekoodi. 1017 00:46:49,430 --> 00:46:50,638 Aga jälle, seal on see vool. 1018 00:46:50,638 --> 00:46:54,530 Lähtekood läbi koostaja annab te uue objekti kood või 0. ja 1s. 1019 00:46:54,530 --> 00:47:00,209 Nii et ma pean tegelikult kordamisega mark hello-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 OK, tundub, et midagi on juhtunud. 1021 00:47:01,750 --> 00:47:04,220 Dot kärpida hello-2. 1022 00:47:04,220 --> 00:47:05,390 Sinu nimi palun. 1023 00:47:05,390 --> 00:47:09,990 Ja selge nüüd, miks on kursor sama liini? 1024 00:47:09,990 --> 00:47:10,490 Täpselt. 1025 00:47:10,490 --> 00:47:13,020 Ma ei pane längkriipsu n siin minu koodi. 1026 00:47:13,020 --> 00:47:16,110 Nii et nüüd ma ei kirjuta midagi Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Ma saan käivitada uuesti ja kirjuta midagi Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 ja me saame teist programmi uuesti ja uuesti ja uuesti. 1029 00:47:22,250 --> 00:47:28,940 >> Nüüd lõpuks me vajame kasutada palju erinevaid võimalusi. 1030 00:47:28,940 --> 00:47:32,860 Meil on vaja kehtestada lõpuks mõned tingimustel teha asju tinglikult. 1031 00:47:32,860 --> 00:47:35,550 Võib-olla silmuseid, et saaksime teha asjad ikka ja jälle. 1032 00:47:35,550 --> 00:47:38,220 >> Võib-olla oleks tore, kui me võiks rakendada oma funktsioone, 1033 00:47:38,220 --> 00:47:41,355 nagu me võiksime rakendada oma printf või oma versiooni getString 1034 00:47:41,355 --> 00:47:45,870 ja GetFlow, sest lõppkokkuvõttes isegi Kasutades seda käsurea keskkond 1035 00:47:45,870 --> 00:47:49,780 me saame teha, isegi kõige visuaalselt huvitavaid asju. 1036 00:47:49,780 --> 00:47:51,950 >> Tõepoolest lõpetuseks lubage mul seda teha. 1037 00:47:51,950 --> 00:47:54,020 Ma lähen edasi minna ja sulgege need aknad 1038 00:47:54,020 --> 00:47:57,400 ja avage see ikoon siin mis on lihtsalt suurem 1039 00:47:57,400 --> 00:48:00,020 versiooni, et varjatud terminali aknas. 1040 00:48:00,020 --> 00:48:02,329 Nii Gedit ei ole mitte ainult koht minu kood, 1041 00:48:02,329 --> 00:48:05,620 kuid ka ehitatud terminali aknas must ja valge aken, kus ma saan käivitada 1042 00:48:05,620 --> 00:48:06,230 käske. 1043 00:48:06,230 --> 00:48:08,600 >> Ma lihtsalt juhtus, et avada suurem versioon sellest. 1044 00:48:08,600 --> 00:48:11,170 Ja nüüd ma lähen minema kausta, et ma olen juba 1045 00:48:11,170 --> 00:48:13,150 pane eelnevalt muidugi kodulehel. 1046 00:48:13,150 --> 00:48:16,720 Ja ma lähen edasi minna ja avage fail nimega thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 mis on kirjutatud kellegi teise poolt. 1048 00:48:18,710 --> 00:48:21,220 >> Ja kui me vaatame seda, see ei ole objekti kood 1049 00:48:21,220 --> 00:48:24,370 me kirjutame alates Eesmärk on see kood 1050 00:48:24,370 --> 00:48:28,450 oli kirjutada ilusaim otsin koodi, et ta võiks 1051 00:48:28,450 --> 00:48:31,290 olenemata sellest, kas teine ​​inimene võiks kunagi 1052 00:48:31,290 --> 00:48:33,660 mõista seda koodi. 1053 00:48:33,660 --> 00:48:37,050 >> Tõepoolest, igal aastal on see, mis on nimetatakse obfuscated C võistlus, mis 1054 00:48:37,050 --> 00:48:39,570 on reaalne geeks, kes kirjutavad kood, et keegi teine ​​ei saa lugeda, 1055 00:48:39,570 --> 00:48:42,050 aga ei midagi kas väga lihtne ja tõesti hämmastav. 1056 00:48:42,050 --> 00:48:43,890 Ja me arvasime, et oleme sõlmida see ilme 1057 00:48:43,890 --> 00:48:48,300 midagi, mis on päris hämmastav te olete näinud, kui enne. 1058 00:48:48,300 --> 00:48:52,650 Aga me lõpetada selle teadmiseks, dot kaldkriips, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 See on siis, mis ootab. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Ongi CS50. 1062 00:48:58,500 --> 00:48:59,935 Me näeme teid kolmapäeval. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Muusika mängimine] 1065 00:49:10,016 --> 00:53:31,883