1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [Video taasesitus] 3 00:00:16,626 --> 00:00:19,410 >> -A Triumf matemaatiliste ja mehaanilised oskus 4 00:00:19,410 --> 00:00:23,270 on see väga uus automaatne Kalkulaatori Harvardi ülikoolis. 5 00:00:23,270 --> 00:00:27,140 Keerukad probleemid matemaatika pane läbi masina kodeeritult 6 00:00:27,140 --> 00:00:31,710 lindile on täpselt lahendatud minut murdosa kuluvat aega 7 00:00:31,710 --> 00:00:32,819 inimeste arvutus. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Mõeldud kiirendada kõikide vormide matemaatika ja teadustöö, 10 00:00:48,220 --> 00:00:53,840 hiiglane mehaaniline aju töötab USA mereväe kuni sõja lõpuni. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [Taasesituse lõpetamiseks] 13 00:01:06,570 --> 00:01:08,590 >> DAVID J. Humala: See on CS50. 14 00:01:08,590 --> 00:01:10,590 Minevik oli maagiline koht, aga kui sa oled kunagi 15 00:01:10,590 --> 00:01:13,366 imestas, mida see seade on Harvardi Science Center, 16 00:01:13,366 --> 00:01:16,150 see on tõesti osa Harvard Mark I, ja see on 17 00:01:16,150 --> 00:01:18,710 kuva seal nüüd viimase mitu aastat. 18 00:01:18,710 --> 00:01:20,590 Ja mida sa näed varjatud probleem komplekt 19 00:01:20,590 --> 00:01:24,416 üks on pilk kulisside taga millises et seade tegi, ja teeb, 20 00:01:24,416 --> 00:01:27,540 professor Harry Lewis, kes on arvutiteaduse osakonna siin. 21 00:01:27,540 --> 00:01:29,440 Nii rohkem, et lihtsalt natuke. 22 00:01:29,440 --> 00:01:33,990 >> Aga täna me hakkame üleminek eelmisel nädalal sellele, 23 00:01:33,990 --> 00:01:37,290 ja viime mainimine Ühe foto siin 24 00:01:37,290 --> 00:01:38,630 see on tegelikult üsna tuntud. 25 00:01:38,630 --> 00:01:42,270 Kas keegi teab, mida see siin on ekraanil? 26 00:01:42,270 --> 00:01:43,880 Vähemalt vastavalt müüt. 27 00:01:43,880 --> 00:01:44,837 Jah. 28 00:01:44,837 --> 00:01:45,920 Sihtrühm: Esimene viirus. 29 00:01:45,920 --> 00:01:49,570 DAVID J. Humala: Nii et see oli väidetavalt kõige esimene tegelik viga arvutis. 30 00:01:49,570 --> 00:01:52,490 Nüüd tegelikult sõna viga, veast programmis, 31 00:01:52,490 --> 00:01:55,250 on olnud meiega juba mõnda aeg füüsilises maailmas, 32 00:01:55,250 --> 00:01:58,190 ja see oli üks esimesi dokumenteeritud korda, kus keegi tegelikult 33 00:01:58,190 --> 00:02:02,280 kitkutud suur ööliblikas välja Mark II arvutis, pane see sideaine, 34 00:02:02,280 --> 00:02:05,006 ja siis salvestamisel kui esimene teadaolev viga 35 00:02:05,006 --> 00:02:06,630 et on tegelikult leitud füüsiliselt. 36 00:02:06,630 --> 00:02:10,104 Nii seega kanti et tänapäeva pärimus. 37 00:02:10,104 --> 00:02:12,020 Kõik alates viimase nädal on kättesaadavad Internetis. 38 00:02:12,020 --> 00:02:14,840 Eelkõige ressursse, mida võiks ei pruugi märgata, eriti 39 00:02:14,840 --> 00:02:15,881 Kui siia tulevad isiklikult. 40 00:02:15,881 --> 00:02:20,230 Nii et üks õpetamise stipendiaatide iga Aasta teeb kanooniline rida märgib 41 00:02:20,230 --> 00:02:22,010 nii et sa ei pea hoidma oma pea alla, püüdes 42 00:02:22,010 --> 00:02:24,410 transkribeerida kõige midagi mis võib juhtuda siin klassis. 43 00:02:24,410 --> 00:02:25,940 Nii mõistame, et need Niinimetatud [? Scribd?] Märkmed 44 00:02:25,940 --> 00:02:29,350 on online, kindlasti slaidid ja lähtekoodi, et me kasutame klassis. 45 00:02:29,350 --> 00:02:31,436 Teeme täistekst ärakirju saadaval ka. 46 00:02:31,436 --> 00:02:34,310 Nii et kui sa ähmaselt mäletan mõned perspektiivis, ja tahan vaadata seda natuke 47 00:02:34,310 --> 00:02:37,280 kergemini aru, et kõik Selle on onlainis otsitavaks. 48 00:02:37,280 --> 00:02:38,930 Nagu ka walkthroughs samuti. 49 00:02:38,930 --> 00:02:42,710 Tõepoolest, täna me hakkame vaatama madalamal tasemel programmeerimise keel, 50 00:02:42,710 --> 00:02:45,290 Varsti tuleb meil teada nagu C, ja see on väga lihtne 51 00:02:45,290 --> 00:02:48,820 et omamoodi eksida pärast paari hetki ajast, ja siis mingi ime 52 00:02:48,820 --> 00:02:52,370 kuidas me tegelikult sain veel mõned keerukas näiteks lihtsaim. 53 00:02:52,370 --> 00:02:54,975 Ja nii aru, jagame kirss vali tunni ajal mõnda 54 00:02:54,975 --> 00:02:57,850 esindaja näiteid, kuid aru, et nii palju on ka 55 00:02:57,850 --> 00:03:01,140 Internetis kättesaadavad, nii et saate töötada läbi oma tempos, 56 00:03:01,140 --> 00:03:02,950 aga sa oled kõige mugavam. 57 00:03:02,950 --> 00:03:05,200 >> Aga jätsime maha programme, mis olid just seda. 58 00:03:05,200 --> 00:03:09,690 Nii et ma nuppu roheline lipp, ja mida see programm teeb? 59 00:03:09,690 --> 00:03:10,710 Ütleb, hello, world. 60 00:03:10,710 --> 00:03:13,180 See muudab kass öelda hello oma väike maailm 61 00:03:13,180 --> 00:03:15,990 ülemises vasakpoolses servas Scratch kasutajaliides. 62 00:03:15,990 --> 00:03:18,810 Aga hakkasime tutvustada mõned terminoloogia eelmisel nädalal. 63 00:03:18,810 --> 00:03:23,614 Ja nii asjad niimoodi me kutsusime mida? 64 00:03:23,614 --> 00:03:25,280 Mis võiks olla üldnimetus seda? 65 00:03:25,280 --> 00:03:26,266 Jah. 66 00:03:26,266 --> 00:03:28,210 Meetod või avalduse. 67 00:03:28,210 --> 00:03:29,280 Muidugi, see on hagi. 68 00:03:29,280 --> 00:03:30,140 Kas see. 69 00:03:30,140 --> 00:03:32,400 Ja veel oli teiste kujundeid nullist, 70 00:03:32,400 --> 00:03:35,360 Peale nende nn avalduses, et nad olid ka 71 00:03:35,360 --> 00:03:38,221 asjad niimoodi, mis me kutsusime mida? 72 00:03:38,221 --> 00:03:38,720 Jah. 73 00:03:38,720 --> 00:03:39,634 Nii silmus. 74 00:03:39,634 --> 00:03:42,050 Ja sel juhul, et see asi kordust muidugi 10 korda. 75 00:03:42,050 --> 00:03:43,040 Seal on igaveseks blokeerida. 76 00:03:43,040 --> 00:03:44,164 Seal on paar teistega. 77 00:03:44,164 --> 00:03:48,309 Ja täna me näeme, kuidas tõlkida seda rohkem tänapäeva maailmas, 78 00:03:48,309 --> 00:03:50,850 kui soovite, kuigi see on läheb esmapilgul 79 00:03:50,850 --> 00:03:52,024 olema palju kauge. 80 00:03:52,024 --> 00:03:53,190 Aga need olid tõepoolest silmad. 81 00:03:53,190 --> 00:03:56,182 Ja siis on meil asjad see, mis oli selle kuju, 82 00:03:56,182 --> 00:03:57,515 ja sisuliselt kippuvad küsimused. 83 00:03:57,515 --> 00:03:58,890 Ja me nimetatud need mida? 84 00:03:58,890 --> 00:03:59,762 >> Sihtrühm: Boole'i ​​väljendus. 85 00:03:59,762 --> 00:04:00,320 >> DAVID J. Humala: Jah. 86 00:04:00,320 --> 00:04:01,340 Loogiline väljendus. 87 00:04:01,340 --> 00:04:04,502 Midagi, mis on kas tõene või vale, jah või ei, üks või null, 88 00:04:04,502 --> 00:04:05,960 aga soovite näha maailma. 89 00:04:05,960 --> 00:04:08,335 Aga me kutsusime neid Boole'i väljendid, ja me ühendage need 90 00:04:08,335 --> 00:04:09,900 tingimustesse või filiaalid. 91 00:04:09,900 --> 00:04:12,170 Ja maailmas Scratch, kõik kenasti 92 00:04:12,170 --> 00:04:15,460 blokeeringute nii oma kuju, kui ta teeb loogilisel seda teha, 93 00:04:15,460 --> 00:04:18,490 aga sa ei pea peatu lihtsalt teeme ühe asja tinglikult, 94 00:04:18,490 --> 00:04:20,450 sul võib olla lõpmatuseni teelahkmele 95 00:04:20,450 --> 00:04:24,040 ja teha kas see või see, kui tingimus on tõene või mitte. 96 00:04:24,040 --> 00:04:26,040 Ja siis, kui sa näed, kui te pole juba, 97 00:04:26,040 --> 00:04:27,480 Võite isegi pesa neid plokke. 98 00:04:27,480 --> 00:04:32,110 Nii Scratch kasvab täita kujundeid et võiksite lisada sinna, 99 00:04:32,110 --> 00:04:35,330 nii et saate tegelikult väljendada kõige loogikat, et te võiksite teha. 100 00:04:35,330 --> 00:04:38,220 >> Nüüd paar sõna teadaanne nii siin ja New Haven. 101 00:04:38,220 --> 00:04:39,370 Nii osadeks algab täna. 102 00:04:39,370 --> 00:04:42,120 URL on see muidugi on veebilehel, neile võõras. 103 00:04:42,120 --> 00:04:43,970 Sektsioonid olla võimaluse kokku saada 104 00:04:43,970 --> 00:04:46,553 on palju intiimsem keskkond kui [? Sanders?] Lubab, 105 00:04:46,553 --> 00:04:50,347 10 kuni 20 klassikaaslastega koos õpetamise mehe eri lugusid, 106 00:04:50,347 --> 00:04:51,930 ja erineva tempoga, kui sa nii valida. 107 00:04:51,930 --> 00:04:54,080 Tõepoolest käigus pakkumised erinevate osade 108 00:04:54,080 --> 00:04:57,340 ka vähem mugav, rohkem mugav ja kusagil vahepeal, 109 00:04:57,340 --> 00:04:59,860 ja rolli pöidla siin on pole mingit formaalset määratlust, 110 00:04:59,860 --> 00:05:04,600 aga kui sa oled vähem mugav, sa selline tea seda. 111 00:05:04,600 --> 00:05:07,470 Sa oled natuke kartmatu kohta Idee astudes jala ehk tagasi 112 00:05:07,470 --> 00:05:10,130 klassis või millel kuni vahele osa. 113 00:05:10,130 --> 00:05:12,770 Kui oled olnud programmeerimine, sest sa oli kuus aastat vana, mugavamaks, 114 00:05:12,770 --> 00:05:13,400 võibolla teile. 115 00:05:13,400 --> 00:05:16,150 Ja kui see on selline Toss-up, see on täpselt see, mida vahel 116 00:05:16,150 --> 00:05:17,190 pidi olema. 117 00:05:17,190 --> 00:05:18,410 >> Nüüd vahepeal klassi selle suurus, 118 00:05:18,410 --> 00:05:21,326 see viib meid juba mõnda aega osa kõigile, et oleme nn, 119 00:05:21,326 --> 00:05:24,030 super lõigud, Eeloleval nädalavahetusel ja järgmise nädala alguses, 120 00:05:24,030 --> 00:05:26,570 nii, kui heita pilk käigus veebilehte neid, mis on muidugi lai, 121 00:05:26,570 --> 00:05:28,610 ja ka filmitud neile kes ei saa neid teha. 122 00:05:28,610 --> 00:05:33,470 Ja lõigud ise hakkab nädalal kolm CS50 null indeks. 123 00:05:33,470 --> 00:05:35,880 Ülesanded 0 juba muidugi kodulehel. 124 00:05:35,880 --> 00:05:40,010 Ja aru, et sa ei pea Üheksa hilja päeva sel semestril. 125 00:05:40,010 --> 00:05:43,240 Nii et see on värskendada viimase aastal, kui meil oli viis hilja päeva. 126 00:05:43,240 --> 00:05:46,210 >> Nii et kui sa ei tea, Meil on üheksa probleem komplekti. 127 00:05:46,210 --> 00:05:53,200 Sul on üheksa hilja päeva, millest igaüks saad ainult kulutada ühe nädalas. 128 00:05:53,200 --> 00:05:56,089 See omakorda seab kõik probleem seab tõttu reedel 129 00:05:56,089 --> 00:05:58,630 kuid eesmärk on panna natuke natuke psühholoogilist survet 130 00:05:58,630 --> 00:06:01,100 kohta, kus saab proovida saada asju neljapäeval 131 00:06:01,100 --> 00:06:03,960 sest kui sa varsti teada, paremaks või halvemaks, kõige 132 00:06:03,960 --> 00:06:07,820 kõik tarkvara maailmas jõuab võttes palju pikem kui sul ennetada. 133 00:06:07,820 --> 00:06:10,620 Nii peavad seda omamoodi on võimalus aidata 134 00:06:10,620 --> 00:06:13,880 ise suunata neljapäeval kuid lohutama, et jah, 135 00:06:13,880 --> 00:06:14,950 kõik on tingitud reedel. 136 00:06:14,950 --> 00:06:17,590 Ja kui te esitama need Neljapäev, et on imeline. 137 00:06:17,590 --> 00:06:21,020 Pole boonuspunkti või extra krediidi Nimetatud tähtajast kinnipidamisega. 138 00:06:21,020 --> 00:06:23,250 See tähendas, et kark ainult. 139 00:06:23,250 --> 00:06:25,810 >> Ja tööaega, nii Siin ja New Haven, 140 00:06:25,810 --> 00:06:28,840 isiklikult, kui soovite kohtuda mõne meie kursused 141 00:06:28,840 --> 00:06:31,060 õpetamise stipendiaatide ja CAS abi. 142 00:06:31,060 --> 00:06:31,640 >> Hästi. 143 00:06:31,640 --> 00:06:33,110 Nüüd oletame, et see enam reaalne. 144 00:06:33,110 --> 00:06:35,470 Ja hetkeks see läheb alustada saada veidi kauge, kuid väga 145 00:06:35,470 --> 00:06:37,310 kiiresti reedel ja Järgmisel nädalal oleme 146 00:06:37,310 --> 00:06:41,230 võimalik teha nii palju kui võiksime senise Scratch. 147 00:06:41,230 --> 00:06:44,350 Nii me tutvustas koodi viimase nädalas, kuigi pictoral. 148 00:06:44,350 --> 00:06:45,620 See oli puzzle tükki. 149 00:06:45,620 --> 00:06:48,800 Ja me vormistatud, et see on midagi, mida nimetatakse lähtekoodi, 150 00:06:48,800 --> 00:06:50,330 kuid ei nägema? 151 00:06:50,330 --> 00:06:52,550 Noh, see tundus natuke midagi sellist. 152 00:06:52,550 --> 00:06:55,410 Ja tegelikult, lihtsalt selline õrritama, kus me saame minna sellega. 153 00:06:55,410 --> 00:06:57,800 Ma lähen edasi minna ja avada aken siin 154 00:06:57,800 --> 00:06:59,810 ja ma lähen lihtsalt valida Uus fail. 155 00:06:59,810 --> 00:07:03,200 Ja ma lähen, salvestada faili kui midagi hello dot c. 156 00:07:03,200 --> 00:07:05,700 Veel, et valik sõnad hetk. 157 00:07:05,700 --> 00:07:08,630 Ja see, kuidas keegi võiks minna kirjutamise programm. 158 00:07:08,630 --> 00:07:13,990 Kaasa standard I / O dot h, int main void ja siis avatud lokkis traksidega lähedal 159 00:07:13,990 --> 00:07:19,430 lokkis traksidega, printf hello komaga maailma kurakriips n, semikoolon, Save, tehtud. 160 00:07:19,430 --> 00:07:19,930 OKEI. 161 00:07:19,930 --> 00:07:21,670 Olen kirjutanud oma esimese programmi, kuid see läheb 162 00:07:21,670 --> 00:07:23,878 olla uskumatult underwhelmed sest kui ma tegelikult 163 00:07:23,878 --> 00:07:27,352 Käivita see programm muidugi kõigepealt kirjalikult teha hello, 164 00:07:27,352 --> 00:07:30,310 ja siis dot kaldkriips hello, ja me läbida seda palju detailsemalt 165 00:07:30,310 --> 00:07:31,730 ühel hetkel, et kõik see. 166 00:07:31,730 --> 00:07:33,270 Ei pop avatud ühtegi akent. 167 00:07:33,270 --> 00:07:35,070 Ta ei tee midagi Eriti meeldib. 168 00:07:35,070 --> 00:07:38,830 Kõik see on see, mida ma ütlesin seda teha, kuid kuidas me saame seda? 169 00:07:38,830 --> 00:07:40,560 Ja kuidas me toetuda, et? 170 00:07:40,560 --> 00:07:43,430 Noh, olgem tutvustada paari erinevad arusaamad siin. 171 00:07:43,430 --> 00:07:47,170 >> Nii et üks, me oleme algamas kasutades programmi nimega kompilaator. 172 00:07:47,170 --> 00:07:51,470 Kogumiku koostaja on olemas Mac OS, Windows, Linux, ükskõik kui palju operatsioonisüsteemid, 173 00:07:51,470 --> 00:07:54,540 ja me varsti tutvustada teile keskkond, mis me kasutame, 174 00:07:54,540 --> 00:07:57,410 kuid tõlkija on lihtsalt üldine termin tarkvara 175 00:07:57,410 --> 00:08:01,940 mis võtab lähtekoodi ja toodab objekti kood saada. 176 00:08:01,940 --> 00:08:03,940 Teisisõnu, kui te on sisendiks teie allikas 177 00:08:03,940 --> 00:08:08,250 kood, midagi, mida ma lihtsalt kirjutada, see lõppkokkuvõttes tekitab objekti kood. 178 00:08:08,250 --> 00:08:11,780 Ja objekti kood on tõesti ainult fancy viis öelda on väljundiks 179 00:08:11,780 --> 00:08:12,926 null on ja üks. 180 00:08:12,926 --> 00:08:14,800 Teisisõnu allikas koodi, kuigi see on 181 00:08:14,800 --> 00:08:17,240 läheb otsima veidi kauge, ja veidi vähem sõbralik 182 00:08:17,240 --> 00:08:19,590 kui Scratch esmapilgul see on vähemalt midagi 183 00:08:19,590 --> 00:08:21,120 et meie, inimesed ei saa aru. 184 00:08:21,120 --> 00:08:24,360 See selline näeb välja ja kõlab Inglise kuigi see on väga sisutihe. 185 00:08:24,360 --> 00:08:28,040 Programmeerimise null on ja üks, kui meie eelkäijad pidid tegema, 186 00:08:28,040 --> 00:08:30,920 Mõni aasta tagasi ei olnud eriti lõbus väljakutse. 187 00:08:30,920 --> 00:08:33,710 Ja veel, see on see, mida arvuti ikka aru. 188 00:08:33,710 --> 00:08:37,010 Nii koostaja saab meid lähtekoodi Objekti kood. 189 00:08:37,010 --> 00:08:39,860 See on nagu avades faili tõlkija ja salvestage see, 190 00:08:39,860 --> 00:08:41,419 sa need ühtede ja nullide. 191 00:08:41,419 --> 00:08:43,419 Nii me näeme, kuidas seda teha et üks hetk. 192 00:08:43,419 --> 00:08:47,400 >> Aga olgem nüüd proovida anda sillaks eelmisel nädalal ja see, 193 00:08:47,400 --> 00:08:50,660 nii, et isegi kui me üles riputatud asju nagu looksulg, 194 00:08:50,660 --> 00:08:54,100 ja semikoolonid ja sulgudes, ja kõik need intellektuaalselt huvitavad 195 00:08:54,100 --> 00:08:57,620 aspekte programmeerimine, et väga arusaadavalt reis inimesed juba varakult, 196 00:08:57,620 --> 00:09:00,930 aru, et kõik ideed täna, on samad, mis eelmisel. 197 00:09:00,930 --> 00:09:03,975 Nii eelmisel nägime seda näiteks Siin Hello World programmi. 198 00:09:03,975 --> 00:09:07,500 Noh, alates tänasest, kui me tahame rakendada, et sama programmi 199 00:09:07,500 --> 00:09:10,800 see läheb vaatama natuke midagi sellist. 200 00:09:10,800 --> 00:09:14,040 Ja me selgitame enne pikka millised int, ja peamine, ja tühine, ja kõik, mis 201 00:09:14,040 --> 00:09:18,770 on, aga vähemalt ma näen siin juba tuttav Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Vahepeal asjad funktsiooni, ütleme tere, 203 00:09:20,860 --> 00:09:23,570 väga lihtsalt saab olema väga lihtne avalduse niimoodi. 204 00:09:23,570 --> 00:09:26,930 Printf tere, mõned hinnapakkumisi, längkriipsuga, 205 00:09:26,930 --> 00:09:29,780 semikooloniga, kuid rohkem sellest tulla. 206 00:09:29,780 --> 00:09:34,066 Loops, vahepeal on see silmus, mis, Muidugi, ütleb tere igavesti, 207 00:09:34,066 --> 00:09:36,690 ja see läheb vaatama vähe imelikum kui möödunud, 208 00:09:36,690 --> 00:09:39,530 aga kui ma midagi öelda nagu, kuigi tõsi, ma 209 00:09:39,530 --> 00:09:44,050 Seejärel saab välja printida Tere maailm uuesti ja uuesti ja uuesti ja uuesti. 210 00:09:44,050 --> 00:09:46,660 Ja siis, kui saad sellist ning alustada järeldada siin 211 00:09:46,660 --> 00:09:49,070 Selle konventsiooni abil looksulg on selline 212 00:09:49,070 --> 00:09:52,050 ja nagu omaks liigestatud koodirida seal. 213 00:09:52,050 --> 00:09:55,840 Printf koodirida meelega kollane puzzle tükk ülevalt. 214 00:09:55,840 --> 00:09:58,740 Nii et me ei kavatse öelda igaveseks, me ei kavatse öelda, kuid tõsi, 215 00:09:58,740 --> 00:10:01,020 kuid me näeme, miks see on lihtsalt natuke. 216 00:10:01,020 --> 00:10:04,210 >> Vahepeal, kui meil on silmus, nagu see, kus sa korrata midagi piiratud 217 00:10:04,210 --> 00:10:07,730 number korda, seda ka see aega võtab natuke harjumist 218 00:10:07,730 --> 00:10:12,820 , kuid see läheb öelda int i saab nulli, i alla 10, i ++ 219 00:10:12,820 --> 00:10:14,056 ja siis printf uuesti. 220 00:10:14,056 --> 00:10:15,430 Aga seal saab olla mustrid. 221 00:10:15,430 --> 00:10:18,434 Ja neile, tuttav AP Computer Science, või Java, 222 00:10:18,434 --> 00:10:21,100 või mitmeid teisi keeli, peaaegu kõik need konstruktsioonid 223 00:10:21,100 --> 00:10:23,820 Seni peaks otsima enamasti tuttav. 224 00:10:23,820 --> 00:10:24,680 >> Nii muutuja. 225 00:10:24,680 --> 00:10:29,270 Nii et siin on lihtne Scratch väljavõte, et seab muutuja nimega counter nulli, 226 00:10:29,270 --> 00:10:33,150 ja siis igavesti ütleb counter, ja siis muudab counter ühe võrra. 227 00:10:33,150 --> 00:10:37,030 Nii see algab nullist, ja siis üks, kaks, kolm. 228 00:10:37,030 --> 00:10:42,560 Noh, kuidas võiks tutvustame et see uus keel natuke sarnaselt? 229 00:10:42,560 --> 00:10:45,460 Int counter võrdub null, kuigi tõsi, mis 230 00:10:45,460 --> 00:10:48,100 on see, et sama idee enne teha midagi igavesti, 231 00:10:48,100 --> 00:10:49,530 ja ma olen lihtsalt kavatse printf. 232 00:10:49,530 --> 00:10:53,310 Ja nüüd see muutub veidi kummaline, protsenti i, kuid rohkem, et tulla, 233 00:10:53,310 --> 00:10:55,140 aga need mõtted on täpselt sama. 234 00:10:55,140 --> 00:10:58,820 Me lihtsalt nüüd kinni süntaks, et arvuti on 235 00:10:58,820 --> 00:11:00,010 läheb meilt. 236 00:11:00,010 --> 00:11:04,620 >> Loogiline väljendus, midagi sx alla y või x vähem kui y, 237 00:11:04,620 --> 00:11:06,354 ja y alla z. 238 00:11:06,354 --> 00:11:09,270 See saab vaadata natuke midagi nagu see, mis sulgudes lihtsalt 239 00:11:09,270 --> 00:11:13,020 nagu matemaatika hea meede lihtsalt tagama, et tegevuse 240 00:11:13,020 --> 00:11:14,750 on meil kavas. 241 00:11:14,750 --> 00:11:15,600 Ja nüüd, tingimused. 242 00:11:15,600 --> 00:11:21,220 Nii et kui x on väiksem kui y, ütlevad x on väiksem kui y, else if x on suurem kui y, 243 00:11:21,220 --> 00:11:26,020 öelda x on suurem kui y, vastasel loogiliselt, x peab olema võrdne y. 244 00:11:26,020 --> 00:11:28,710 Nii võite rakendada midagi sellist Scratch, 245 00:11:28,710 --> 00:11:31,230 või siis võib rakendada see seda süntaksit. 246 00:11:31,230 --> 00:11:35,090 Ja jälle lokkis traksid on omamoodi andes meile sama kujuga nagu puzzle 247 00:11:35,090 --> 00:11:40,750 tükki, kuid süntaks, nüüd on ehk järginud mõned mustrid. 248 00:11:40,750 --> 00:11:42,910 >> Niisiis, mida see meile siin? 249 00:11:42,910 --> 00:11:45,260 Nii et me tollal meie põhiprogrammi. 250 00:11:45,260 --> 00:11:47,930 Olgem tegelikult, nüüd, sellega midagi teha. 251 00:11:47,930 --> 00:11:50,660 Nii et esimene line näeme teravat hulka, 252 00:11:50,660 --> 00:11:53,160 standard I / O, dot h, ja siis mõned imelik nurk 253 00:11:53,160 --> 00:11:57,330 Sulgudes allapoole. int main void ja siis printf hello world. 254 00:11:57,330 --> 00:11:58,200 Nii lihtsalt sammu. 255 00:11:58,200 --> 00:12:02,440 Keegi, kes pole kunagi programmeeritud enne, vähemalt selgitada üks neid ridu. 256 00:12:02,440 --> 00:12:04,490 Kasutades võibolla mõned kõnepruugis eelmisel nädalal. 257 00:12:04,490 --> 00:12:06,942 Mis on printf, näiteks? 258 00:12:06,942 --> 00:12:07,442 Jah. 259 00:12:07,442 --> 00:12:08,410 >> Sihtrühm: [kuuldamatu] 260 00:12:08,410 --> 00:12:08,610 >> DAVID J. Humala: Jah. 261 00:12:08,610 --> 00:12:11,380 See on funktsioon, või märge, eelmise nädala terminoloogiat. 262 00:12:11,380 --> 00:12:13,470 Ja see tegevus see on midagi. 263 00:12:13,470 --> 00:12:15,855 Nüüd on see funktsioon, või Selle avalduse teeb 264 00:12:15,855 --> 00:12:17,550 tundub, et võtta mingi sisend? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 Ja mis mõttes teeb seda tundub, et sisend, kui nii? 267 00:12:24,380 --> 00:12:26,180 Sisend, mida ma mõtlen, et? 268 00:12:26,180 --> 00:12:26,720 Jah. 269 00:12:26,720 --> 00:12:27,595 >> Sihtrühm: [kuuldamatu] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 DAVID J. Humala: Jah. 272 00:12:31,440 --> 00:12:34,890 Nii Scratch välja paar puzzle tükki kus saab parametrize ta. 273 00:12:34,890 --> 00:12:37,980 Sa võid öelda korrake blokeerida mitu korda korrata, 274 00:12:37,980 --> 00:12:40,320 nii et oli sisend kehvasti, ja nagu Scratch 275 00:12:40,320 --> 00:12:43,060 oli väike valge kohatäide arvu tipiksite aastal, 276 00:12:43,060 --> 00:12:45,810 nii me kasutame seda Teksti maailma sulgudes 277 00:12:45,810 --> 00:12:49,910 meile, et ümmarguse kujuga kuhu saame ühendada meie panus. 278 00:12:49,910 --> 00:12:53,180 Lõppude lõpuks, kümneid aastaid tagasi kui see keel, mida nimetatakse C, 279 00:12:53,180 --> 00:12:55,950 leiutati keegi oodatud on üks meist, 280 00:12:55,950 --> 00:12:59,420 Nende mõned aastad hiljem, olime tahan funktsioon, mis ütleb tere. 281 00:12:59,420 --> 00:12:59,920 Õigus? 282 00:12:59,920 --> 00:13:02,880 Oleks tore, kui seal olid puzzle tükk, või võtmesõnadeks 283 00:13:02,880 --> 00:13:05,502 seda nimetatakse hello, et sõna otseses mõttes lihtsalt ütleb tere. 284 00:13:05,502 --> 00:13:06,460 Aga me ei pea seda. 285 00:13:06,460 --> 00:13:09,320 Meil võib olla midagi palju madalam tasandil, nagu geneerilised print 286 00:13:09,320 --> 00:13:12,760 käsk, mis võtab sisend, ja pildid mida iganes me tahame. 287 00:13:12,760 --> 00:13:14,960 Nii märkate nüüd muster et hakkab tekkima. 288 00:13:14,960 --> 00:13:19,310 Avatud paren lähedal paren on ilmselt omaks sisend, 289 00:13:19,310 --> 00:13:21,770 ja siis ma näen topelt tsiteerib mõlemas otsas. 290 00:13:21,770 --> 00:13:25,110 On ikka imelik kurakriips n, kuid loodetavasti nüüd olete 291 00:13:25,110 --> 00:13:29,900 saab alustada visualiseerida vähemalt, et printf võtab mingis vormis sisend. 292 00:13:29,900 --> 00:13:31,850 Ei ole nii kasutajasõbralik kui Scratch, kuid see on lihtsalt 293 00:13:31,850 --> 00:13:34,920 nagu olles ühendatud mingi väärtus olemas. 294 00:13:34,920 --> 00:13:38,306 >> Olgu, nüüd lähme tegelikult midagi selle. 295 00:13:38,306 --> 00:13:40,930 Nii et mõned teist võivad teada võttes sisseoste klassi enne, 296 00:13:40,930 --> 00:13:42,638 vestlesid sõbrad, Paljude aastate vältel 297 00:13:42,638 --> 00:13:44,590 me kasutada midagi, mida nimetatakse CS50 aparaat. 298 00:13:44,590 --> 00:13:49,160 See oli termin, mis kirjeldab tehnoloogia nimetatakse virtuaalarvutil mille 299 00:13:49,160 --> 00:13:51,870 on tarkvara, mis teie eelkäijad oleksid laadida off 300 00:13:51,870 --> 00:13:53,360 Kursuse kodulehel tasuta. 301 00:13:53,360 --> 00:13:56,550 Nad oleks ka alla laadida tasuta tükk tarkvara nimetatakse hypervisor 302 00:13:56,550 --> 00:14:00,590 midagi, mida nimetatakse nagu VMware, või VirtualBox või mis tahes number 303 00:14:00,590 --> 00:14:04,450 muid vahendeid, ning nende Mac või PC või mis iganes nad arvuti oli eelmisel aastal 304 00:14:04,450 --> 00:14:06,620 ja aasta varem, nad oleks topeltklõps ikoonil 305 00:14:06,620 --> 00:14:08,860 käivitada selle tarkvara nimetatakse hypervisor. 306 00:14:08,860 --> 00:14:12,220 Ja siis sees, et programmi nad avaks CS50 aparaat. 307 00:14:12,220 --> 00:14:14,710 Ja mõju oli, et kas eelkäija sinu 308 00:14:14,710 --> 00:14:17,780 jooksin Mac OS või Windows, ta siis 309 00:14:17,780 --> 00:14:22,910 Seejärel tuli uus aken oma ekraan töötab CS50 keskkond. 310 00:14:22,910 --> 00:14:27,370 Nii virtuaalne masin saab käivitada ühe operatsioonisüsteemi sees teise, 311 00:14:27,370 --> 00:14:28,785 ja see on täpselt see, mida me tegime. 312 00:14:28,785 --> 00:14:31,410 Peaaegu kogu muidugi kasutada operatsioonisüsteemi nimega 313 00:14:31,410 --> 00:14:34,070 Linux, eriti Ubuntu Linux ja selle 314 00:14:34,070 --> 00:14:37,590 on väga kena viis aastat minevikku tagada, et kõik aasta jooksul 315 00:14:37,590 --> 00:14:38,840 oli just sama keskkond. 316 00:14:38,840 --> 00:14:41,339 Ja mida saab kasutada mis tahes arvuti, mida sa tegelikult tahad. 317 00:14:41,339 --> 00:14:43,930 Seas varjuküljed, kuigi olid see oli nagu kaks gigabaiti 318 00:14:43,930 --> 00:14:45,480 alla laadida see asi. 319 00:14:45,480 --> 00:14:50,310 See ei pruugi töötada super hästi inimesed, kelle arvutid, mis võibolla ainult 320 00:14:50,310 --> 00:14:54,570 oli kaarik või nii RAM või mitte liiga palju gigahertsi CPU kiirus, 321 00:14:54,570 --> 00:14:56,750 ja nii sel aastal Sel ja muudel põhjustel, 322 00:14:56,750 --> 00:14:59,140 on meil juba minnakse Selle keskkond. 323 00:14:59,140 --> 00:15:03,730 Niinimetatud CS50 IDE, mis on põhineb avatud lähtekoodiga tarkvara, 324 00:15:03,730 --> 00:15:07,380 ja toetatud platvorm et firma nimega Cloud9 325 00:15:07,380 --> 00:15:11,110 toetab Euroopa, et võimaldab meil sisuliselt 326 00:15:11,110 --> 00:15:15,770 et täpselt sama keskkonda sisse aastat varem, kuid nn pilve. 327 00:15:15,770 --> 00:15:17,532 >> Mis on pilv? 328 00:15:17,532 --> 00:15:20,480 Te olete ilmselt klõpsanud selle ikooni Mac või PC. 329 00:15:20,480 --> 00:15:22,210 Mis on pilv? 330 00:15:22,210 --> 00:15:22,709 Jah? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Vähe kõvemini. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Jah. 335 00:15:31,010 --> 00:15:33,770 See on lihtsalt hunnik arvutid mujal, et salvestada andmeid ja joosta 336 00:15:33,770 --> 00:15:34,880 tarkvara ja muud sarnased. 337 00:15:34,880 --> 00:15:39,390 Nii et see on tõesti lihtsalt sõna de jure kirjeldada [? üüritav?] 338 00:15:39,390 --> 00:15:40,930 arvutid, mis elada mujal. 339 00:15:40,930 --> 00:15:42,810 Et te, ise, ei pruugi ise. 340 00:15:42,810 --> 00:15:45,256 Nii et kui teie andmed, või oma programme, on pilv, 341 00:15:45,256 --> 00:15:47,630 see tähendab, et see on kellegi teise arvutite mujal, 342 00:15:47,630 --> 00:15:50,510 ja ei, tõenäoliselt oma füüsilise sülearvuti või lauaarvuti. 343 00:15:50,510 --> 00:15:52,990 Ja nii see on, mida CS50 IDE nüüd on. 344 00:15:52,990 --> 00:15:55,670 >> Edaspidi lähete teatud URL, mis tutvustab teile 345 00:15:55,670 --> 00:16:00,090 to, in probleemi seatud 1, hiljem see nädalal, et siis pärast sisselogimist 346 00:16:00,090 --> 00:16:01,480 teile selles keskkonnas. 347 00:16:01,480 --> 00:16:03,896 Ja palju nagu Scratch oli mõned erinevad paneelid seotud, 348 00:16:03,896 --> 00:16:06,030 nii ei CS50 IDE on just nii. 349 00:16:06,030 --> 00:16:09,480 On the top vasakul pool siin, sa oled näeme tuttav failibrauseri. 350 00:16:09,480 --> 00:16:11,930 Nii tahes faile, mida pannakse see keskkond 351 00:16:11,930 --> 00:16:13,346 lihtsalt läheb reastatakse siin. 352 00:16:13,346 --> 00:16:14,350 Failid ja kaustad. 353 00:16:14,350 --> 00:16:16,790 On the top siinsamas, sa lähed, et näha koht 354 00:16:16,790 --> 00:16:18,420 kus saab tegelikult kirjutada oma koodi. 355 00:16:18,420 --> 00:16:21,860 Esialgu in C, hiljem Mõiste PHP ja JavaScript, 356 00:16:21,860 --> 00:16:24,739 ja võib-olla lõplikuks projektid, Ruby või Java või Python 357 00:16:24,739 --> 00:16:27,280 või mitmeid keeli keda selles keskkonnas. 358 00:16:27,280 --> 00:16:30,130 See ei ole üldse seotud et CS50 konkreetselt. 359 00:16:30,130 --> 00:16:33,390 >> Ja siis alumises nurgas siin eriti neile mugavam, 360 00:16:33,390 --> 00:16:35,590 sul on midagi nimetatakse terminal window. 361 00:16:35,590 --> 00:16:38,770 Ja see terminal window võimaldab Teil täita käsu, et teil 362 00:16:38,770 --> 00:16:40,860 tahan selles pilv keskkond. 363 00:16:40,860 --> 00:16:42,860 See võimaldab teil installida täiendavat tarkvara 364 00:16:42,860 --> 00:16:46,810 mis sa tahad, sest sul on nn root või administraatori õigustega. 365 00:16:46,810 --> 00:16:49,930 Nii teisisõnu, kuigi see lõpuks võõrustas pilv, 366 00:16:49,930 --> 00:16:52,400 ja kuigi meil on lihtsustas seda mõningal määral 367 00:16:52,400 --> 00:16:57,110 vaikimisi, sõna otseses mõttes sisse, tänu Dan Armendariz ja Dino, 368 00:16:57,110 --> 00:17:01,070 ja Dan Bradley kohta CS50 meeskonna üle Varem mitu kuud, vähem mugav 369 00:17:01,070 --> 00:17:05,140 režiim, mis peidab palju esialgu segane distractions. 370 00:17:05,140 --> 00:17:10,119 Kõik on olemas esindab tüüpilist arvutisüsteemi 371 00:17:10,119 --> 00:17:12,319 et võite kasutada reaalses maailmas. 372 00:17:12,319 --> 00:17:15,640 >> Mida see kõik tähendada, ja Mida me saame tegelikult teha? 373 00:17:15,640 --> 00:17:19,124 Olgem tegelikult kurkistaa programmi. 374 00:17:19,124 --> 00:17:21,290 Nii et ma lähen avada tegelikku keskkonda siin, 375 00:17:21,290 --> 00:17:23,894 mis on lihtsalt meie Chrome brauser, mis võiks olla Firefox, 376 00:17:23,894 --> 00:17:26,640 võiks Internet Explorer, või mõni muu veebilehitseja samuti. 377 00:17:26,640 --> 00:17:28,400 See on täis linastub siin hetkel. 378 00:17:28,400 --> 00:17:31,580 Ja ma tahan, et tegelikult kraakleja peale mida see programm oli. 379 00:17:31,580 --> 00:17:36,170 Võtame pilk, Suurendamine üles peal, mida ma tegin, ja kuidas ma siia jõudsin. 380 00:17:36,170 --> 00:17:38,315 Nii et siin on neidsamu Sama rida koodi. 381 00:17:38,315 --> 00:17:40,440 Nii et see on avaldus, kui eelpool mainitud. 382 00:17:40,440 --> 00:17:42,580 Funktsioon, mis ütleb tere. 383 00:17:42,580 --> 00:17:45,870 Lokkis traksid kohta line neli ja line kuus, 384 00:17:45,870 --> 00:17:49,290 arvatavasti mingi vahenditest et line siduda see 385 00:17:49,290 --> 00:17:50,890 koos minu töö programm. 386 00:17:50,890 --> 00:17:54,890 Nii tõesti, see märksõna peamine, see on seal üleval real kolm, 387 00:17:54,890 --> 00:17:59,450 sa ei mõtle, et kui samaväärne kohta, et kui roheline lipp klõpsates 388 00:17:59,450 --> 00:18:01,080 blokeerida Scratch. 389 00:18:01,080 --> 00:18:05,280 Nii et kõik on meil siin on, kui roheline lipp klõpsatud, printida või öelda, 390 00:18:05,280 --> 00:18:06,700 Tere, Maailm. 391 00:18:06,700 --> 00:18:11,210 >> Aga võtame arvan, nüüd, mida Selle esimese, rohkem kauge line, on. 392 00:18:11,210 --> 00:18:15,100 Sharp hulka, avatud nurgaga sulg, standard I / O dot h, 393 00:18:15,100 --> 00:18:17,320 sulgeda nurga külge. 394 00:18:17,320 --> 00:18:19,850 Mis on see võib-olla teeme, eriti kui olete programmeeritud 395 00:18:19,850 --> 00:18:21,390 enne mõnes teises keeles. 396 00:18:21,390 --> 00:18:21,890 Jah? 397 00:18:21,890 --> 00:18:22,765 >> Sihtrühm: [kuuldamatu] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 DAVID J. Humala: Jah. 400 00:18:25,970 --> 00:18:26,470 Täpselt. 401 00:18:26,470 --> 00:18:29,455 Nii et see annab teile juurdepääsu raamatukogu, nii et rääkida, funktsioone. 402 00:18:29,455 --> 00:18:31,830 Ja raamatukogu funktsioonid on funktsioone, et keegi teine 403 00:18:31,830 --> 00:18:34,406 kirjutas, kas hiljuti või kaua aega tagasi, et sa 404 00:18:34,406 --> 00:18:35,780 ei pea jalgratast leiutama. 405 00:18:35,780 --> 00:18:39,020 Näiteks me ei pead teadma, 2015. aastal, 406 00:18:39,020 --> 00:18:42,280 kuidas kirjutada koodi, mis paneb märk minu ekraanil. 407 00:18:42,280 --> 00:18:44,820 Keegi teine ​​on arvasin, et välja printf funktsiooni 408 00:18:44,820 --> 00:18:47,280 nii et ma ei sorteeri abstraktse eemale või kiht 409 00:18:47,280 --> 00:18:49,350 peal tema koodi ja nüüd lihtsalt võtta 410 00:18:49,350 --> 00:18:52,760 iseenesestmõistetavaks, et iga programmi ma kirjutan saab printida midagi ekraanil. 411 00:18:52,760 --> 00:18:58,150 Nii see esimene rida on esimene etapp sisaldab nn päisefail 412 00:18:58,150 --> 00:18:59,980 Standardse raamatukogu. 413 00:18:59,980 --> 00:19:02,630 Nii näeme, keele mis me nüüd töötab 414 00:19:02,630 --> 00:19:05,010 oli standard raamatukogu palju funktsioone. 415 00:19:05,010 --> 00:19:07,240 Printf on üks neist, ja et esimene rida koodi 416 00:19:07,240 --> 00:19:10,040 tähendab mulle juurdepääsu neid funktsioone, nii et ma 417 00:19:10,040 --> 00:19:12,300 ei pea jalgratast, et ratas. 418 00:19:12,300 --> 00:19:15,940 >> Nüüd lähme põhja aknas ja teha täpselt seda, mida ma tegin enne. 419 00:19:15,940 --> 00:19:18,520 Hetk tagasi, kui olin whizzing koodi kaudu, 420 00:19:18,520 --> 00:19:24,540 kirjutades seda esimest korda, Ma väga kiiresti sisestanud, et tere. 421 00:19:24,540 --> 00:19:28,250 Mis oli see, et kõike oleks te vist? 422 00:19:28,250 --> 00:19:29,150 Mida ma teen? 423 00:19:29,150 --> 00:19:29,649 Jah? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Unusta ära. 426 00:19:32,310 --> 00:19:32,970 See on OK. 427 00:19:32,970 --> 00:19:33,492 Jah. 428 00:19:33,492 --> 00:19:34,450 Sihtrühm: kompileerimisel. 429 00:19:34,450 --> 00:19:34,700 DAVID J. Humala: Jah. 430 00:19:34,700 --> 00:19:35,770 See oli lihtsalt kompileerimisel. 431 00:19:35,770 --> 00:19:36,270 Õigus? 432 00:19:36,270 --> 00:19:39,280 Isegi kui see on täiesti võõras teile, see on päris English jms. 433 00:19:39,280 --> 00:19:41,155 See ei ole kindlasti nulli ja need, nii et ma ikka 434 00:19:41,155 --> 00:19:44,220 pead sõitma läbi, et nn Programm, tõlkija, et läheb 435 00:19:44,220 --> 00:19:46,060 võtta seda kui sisend ja väljundi. 436 00:19:46,060 --> 00:19:48,270 Ja vähemalt praegu, on Selle Linux keskkonnas, 437 00:19:48,270 --> 00:19:51,030 kuid see ei ole eelduseks, see on just seal, kus hakkame, 438 00:19:51,030 --> 00:19:53,960 sa üldiselt suhelda arvutisüsteemide niimoodi 439 00:19:53,960 --> 00:19:55,770 poolt nn käsurida. 440 00:19:55,770 --> 00:19:57,790 Nii vilkuv kiire ja klaviatuuri, 441 00:19:57,790 --> 00:20:01,630 ja mitte niivõrd oma hiirt, ja mitte nii palju aknaid ja ikoonid ja menüüd, 442 00:20:01,630 --> 00:20:02,980 pigem on kõik tekstilised. 443 00:20:02,980 --> 00:20:06,180 Ja kuigi see tundub, esimesel lühidalt, ehk nagu samm tagasi, 444 00:20:06,180 --> 00:20:08,437 see on tegelikult palju võimas ja väljendusrikas viis 445 00:20:08,437 --> 00:20:10,270 kontrollida arvuti eriti kui sa, 446 00:20:10,270 --> 00:20:12,950 ise muutuda mugav vähem. 447 00:20:12,950 --> 00:20:16,790 See saab võimaldab teil teha palju rohkem asju kui just see, mida Microsoft 448 00:20:16,790 --> 00:20:20,390 või Apple lubab sul teha graafilise operatsioonisüsteemi. 449 00:20:20,390 --> 00:20:23,270 >> Nii et kui ma Enter, nüüd, midagi ei juhtu seekord 450 00:20:23,270 --> 00:20:25,960 sest ilmselt Programm hello on ajakohane. 451 00:20:25,960 --> 00:20:28,250 Ja milline oli käsk Ma jooksin pärast seda? 452 00:20:28,250 --> 00:20:32,370 Dot kaldkriips hello, ja tere. 453 00:20:32,370 --> 00:20:34,350 Nüüd võtame samm tagasi üks hetk. 454 00:20:34,350 --> 00:20:39,510 Selgub, et teha hello on lihtsalt lihtsustatult koostamise programm. 455 00:20:39,510 --> 00:20:41,670 Lihtsalt sisse ühes tükis kõnepruuki, 456 00:20:41,670 --> 00:20:43,470 aga siis minema sellest, kuna see ei ole 457 00:20:43,470 --> 00:20:46,640 kõik mis huvitav tänapäeva eesmärkidel. 458 00:20:46,640 --> 00:20:51,000 Koostaja me ei kavatse hakata kasutama nimetatakse rõkkama, et C keeles. 459 00:20:51,000 --> 00:20:54,280 Ja see on programm, mis on käivitada ainult nagu me tegime käsurea seal. 460 00:20:54,280 --> 00:20:56,580 Ja nii kui ma tahan koostada programm, mis ma 461 00:20:56,580 --> 00:21:00,790 on kirjutatud fail nimega hello dot c, ma sõna otseses mõttes lihtsalt kirjuta rõkkama hello c 462 00:21:00,790 --> 00:21:02,100 siseneda. 463 00:21:02,100 --> 00:21:04,880 >> Naljakas on, ajaloolistel põhjustel, 464 00:21:04,880 --> 00:21:07,750 kui ma ei täpsustata Programmi nimi 465 00:21:07,750 --> 00:21:11,690 et ma tahan väljund, kui ma seda ei tee määrata faili nimi neile nulli 466 00:21:11,690 --> 00:21:14,990 ja need, väga imelik Konventsioon võeti vastu aastat tagasi 467 00:21:14,990 --> 00:21:17,390 kus ta tundis omamoodi hea vastus ajal, 468 00:21:17,390 --> 00:21:21,650 hästi olgem lihtsalt suvaliselt helistada Esimene programm oleme kompileerida dot välja. 469 00:21:21,650 --> 00:21:22,900 Esikohal tähestikus. 470 00:21:22,900 --> 00:21:23,920 Out, see on väljund. 471 00:21:23,920 --> 00:21:26,210 Nii me nimetame programmi Vaikimisi dot välja. 472 00:21:26,210 --> 00:21:29,550 Ja see on hea, sest kui ma tahan käivitada programmi selle tekst põhineb 473 00:21:29,550 --> 00:21:33,590 keskkond, ma lihtsalt kirjuta dot kaldkriips dot välja sisestada. 474 00:21:33,590 --> 00:21:35,250 Ja see läheks täpselt nii nagu enne. 475 00:21:35,250 --> 00:21:36,880 Vaatame, mis päris kiire. 476 00:21:36,880 --> 00:21:40,370 >> Nii et kui ma lähen tagasi oma lähtekoodi CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 ja ma mitte seda, Kalskahdus hello välivoodi c siseneda, teate midagi tundub juhtuda, 478 00:21:47,860 --> 00:21:49,790 kuid peaaegu alati Selle Linux keskkonnas, 479 00:21:49,790 --> 00:21:53,310 kui midagi halba tundub juhtuda, et tähendab midagi head tegelikult juhtus. 480 00:21:53,310 --> 00:21:56,270 Kui te ei näe viga sõnum, et kõik on ilmselt hästi. 481 00:21:56,270 --> 00:22:01,930 Ja tõepoolest, kui ma nüüd tegema dot kaldkriips dot välja siseneda, ma olen saan oma sama programmiga. 482 00:22:01,930 --> 00:22:04,610 Mul on veel tere programmi varasematest, sest tõepoolest, see on 483 00:22:04,610 --> 00:22:07,430 saab olema nii palju kenamaks lihtsalt kirjuta teha selle asemel, meenutades 484 00:22:07,430 --> 00:22:10,240 Nende incantations käske, aga vaatame, kuidas me 485 00:22:10,240 --> 00:22:12,890 Võib täiustada seda siiski. 486 00:22:12,890 --> 00:22:15,340 >> Nii, see on käsk kompileerida koodi. 487 00:22:15,340 --> 00:22:19,100 See on käivitatav käsk kompileeritud koodi tagant. 488 00:22:19,100 --> 00:22:20,546 Kuidas ma saan määrata faili nimi? 489 00:22:20,546 --> 00:22:22,670 Noh olgem lihtsalt tutvustada üks tükk kõnepruuki. 490 00:22:22,670 --> 00:22:24,461 Kui sa oled selle Teksti põhine keskkond, 491 00:22:24,461 --> 00:22:27,400 sa lähed tahan täpsustada asju nimetatakse käsurea argumente. 492 00:22:27,400 --> 00:22:31,380 Kumb on lihtsalt fancy viis öelda, Teisisõnu on kiire, et 493 00:22:31,380 --> 00:22:33,860 näpistama käitumist iganes programmi sa kasutad. 494 00:22:33,860 --> 00:22:37,320 Nii spetsiaalselt programmi ma olen töötab, kirjutades nime rõkkama, 495 00:22:37,320 --> 00:22:38,504 on programm nimega rõkkama. 496 00:22:38,504 --> 00:22:40,920 Nii et see on või vana kooli samaväärne topeltklõpsuga 497 00:22:40,920 --> 00:22:42,860 Microsoft Word või mõned programmi ikoonil. 498 00:22:42,860 --> 00:22:46,360 Ma asemel kirjutades oma nime, kuid see versioon käsk, 499 00:22:46,360 --> 00:22:51,334 Ma siis on kriips o ruumi hello ruumi hello dot c. 500 00:22:51,334 --> 00:22:53,500 Nii et isegi kui te pole kunagi mängitakse siin maailmas enne, 501 00:22:53,500 --> 00:22:58,160 lihtsalt võtta Arva ära ei kriips o hello teha? 502 00:22:58,160 --> 00:23:00,620 Või mida see öelda rõkkama teha? 503 00:23:00,620 --> 00:23:01,386 Jah. 504 00:23:01,386 --> 00:23:02,455 >> Sihtrühm: [kuuldamatu] 505 00:23:02,455 --> 00:23:03,330 DAVID J. Humala: Jah. 506 00:23:03,330 --> 00:23:08,614 See lihtsalt seab faili väljund olla tere asemel sillier dot välja. 507 00:23:08,614 --> 00:23:09,780 Ja tõepoolest, proovime seda. 508 00:23:09,780 --> 00:23:14,250 Nii et kui ma nüüd teen, esimene teeme seda, r m hello. 509 00:23:14,250 --> 00:23:15,590 See on eemaldada. 510 00:23:15,590 --> 00:23:18,450 Ja see läheb öelda eemaldada tavaline fail hello, mis 511 00:23:18,450 --> 00:23:22,210 on asjatult kauge, kuid see lihtsalt vahendid tahad faili kustutada, 512 00:23:22,210 --> 00:23:23,230 ja ma kirjuta y jah. 513 00:23:23,230 --> 00:23:27,340 Ja teate, kui sa olid riivav top vasakule, see ei kao sealt ülevalt. 514 00:23:27,340 --> 00:23:32,180 Lubage mul nüüd teha rõkkama kriips o, ja Ma lähen edasi minna ja seda hello, 515 00:23:32,180 --> 00:23:34,890 kõik mütsid, hello dot c. 516 00:23:34,890 --> 00:23:37,775 Nüüd, kui ma dot kaldkriipsuga tere, mida ootate? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Võib-olla see on tõstutundlik. 519 00:23:42,430 --> 00:23:43,070 Võib-olla see ei ole. 520 00:23:43,070 --> 00:23:44,030 Vaatame. 521 00:23:44,030 --> 00:23:45,230 No sellist faili või kataloogi. 522 00:23:45,230 --> 00:23:47,438 Ja me saame mingi petta lihtsalt vaadata top vasakule. 523 00:23:47,438 --> 00:23:49,630 Mida ma ilmselt salvestada programmi? 524 00:23:49,630 --> 00:23:51,070 Kõik mütsid tere. 525 00:23:51,070 --> 00:23:53,020 Nii tõesti, et läheb teha vahet. 526 00:23:53,020 --> 00:23:54,540 Nüüd hello world on tagasi. 527 00:23:54,540 --> 00:23:56,969 Nüüd on see kõik hea ja tore, ja kõik väga meelinüristav, 528 00:23:56,969 --> 00:23:59,760 et omamoodi Tyssätä nendes üksikasju, kuid nende mõistmiseks 529 00:23:59,760 --> 00:24:00,500 on hea. 530 00:24:00,500 --> 00:24:02,675 >> Kirjutamise neid järjest kaua loitse 531 00:24:02,675 --> 00:24:05,980 ei kavatse olla eriti fun, et inimesed maailmas 532 00:24:05,980 --> 00:24:08,260 leiutas teise programmi, mõned aastad tagasi, nimetatakse 533 00:24:08,260 --> 00:24:12,190 teha, et lihtsalt võimaldab kirjutada make, 534 00:24:12,190 --> 00:24:14,530 nimi programmi sa tahad teha, ning teha 535 00:24:14,530 --> 00:24:18,580 on tark, sest see aitab uurida aktiivse kausta, aka kataloog, 536 00:24:18,580 --> 00:24:21,440 ja kui sul on faili nimetatakse hello dot c, 537 00:24:21,440 --> 00:24:25,800 mis on fail siis koostada Teile arvesse programmi nimega tere. 538 00:24:25,800 --> 00:24:29,950 Nii et see on palju lihtsam viis tehes rohkem segasena käske 539 00:24:29,950 --> 00:24:30,800 et me tegime varem. 540 00:24:30,800 --> 00:24:34,080 Ja meil on eelhäälestatud CS50 IDE teada 541 00:24:34,080 --> 00:24:38,560 et ta peaks tegema kriips o ja mitmed teiste lippudega, või käsurea argumente, 542 00:24:38,560 --> 00:24:40,670 et me näeme varsti. 543 00:24:40,670 --> 00:24:43,700 >> Aga olgem nüüd tegelikult teha midagi huvitavat. 544 00:24:43,700 --> 00:24:46,950 Kirjutades välja hello world kõik aeg ei ole kõik, mis mõjuvad. 545 00:24:46,950 --> 00:24:52,280 Nii et lubage mul minna ja muutus Selle programmi ja öelda, hello David. 546 00:24:52,280 --> 00:24:54,120 Nüüd ma lähen siia alla. 547 00:24:54,120 --> 00:24:57,360 Ma lähen edasi minna ja seda teha tere. 548 00:24:57,360 --> 00:25:00,652 Ja nüüd uuesti näed teha näitab teile enam 549 00:25:00,652 --> 00:25:03,360 jada käske, et see on teeme, sest me oleme eelhäälestatud 550 00:25:03,360 --> 00:25:05,200 see nii, kuid me ei pea muretsema nüüd 551 00:25:05,200 --> 00:25:10,735 mida ta teeb teistele, kui see on koostamisel dot kaldkriips hello, hello world. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Mis viga? 554 00:25:15,510 --> 00:25:16,177 Jah. 555 00:25:16,177 --> 00:25:17,370 >> Sihtrühm: [kuuldamatu] 556 00:25:17,370 --> 00:25:18,203 >> DAVID J. Humala: Jah. 557 00:25:18,203 --> 00:25:19,600 Nii, noobie viga. 558 00:25:19,600 --> 00:25:22,394 Märkan see on super väike, kuid tärniga siin, tab, 559 00:25:22,394 --> 00:25:25,060 lihtsalt tähendab, et sa ei ole salvestanud, ja brauserid ja muud programmid 560 00:25:25,060 --> 00:25:25,930 Selleks mõnikord. 561 00:25:25,930 --> 00:25:27,939 Nii kontrolli s või käsk s tuleb see salvestada. 562 00:25:27,939 --> 00:25:29,730 Nüüd lubage mul minna ja uuesti käivitada programmi. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 On koondada. 565 00:25:34,260 --> 00:25:36,050 Õigus, nii et see on mitmeetapiline protsess. 566 00:25:36,050 --> 00:25:39,400 Ükski mis on eriti keeruline, kuid iga kord, kui me muuta faili 567 00:25:39,400 --> 00:25:43,450 Me peame muutma Tekkiv ühtede ja nullide ja dot kaldkriipsuga tere. 568 00:25:43,450 --> 00:25:43,950 Vau. 569 00:25:43,950 --> 00:25:46,450 Nii et see on väga underwhelming et me lihtsalt välja printida seda. 570 00:25:46,450 --> 00:25:48,360 Teeme asjad vähe dünaamilisem, nüüd. 571 00:25:48,360 --> 00:25:52,280 >> Noh selgub, et meeldib Scratch, C toetab muutujaid. 572 00:25:52,280 --> 00:25:54,790 Ja selgub, kui soovite on muutuja, mis kauplustes 573 00:25:54,790 --> 00:25:57,300 ei ole number, nagu me Tavaliselt tegid Scratch, 574 00:25:57,300 --> 00:26:01,300 kuid nagu sõna, või lause või nimi, siis 575 00:26:01,300 --> 00:26:04,837 saab määrata muutuja tüübiks string. 576 00:26:04,837 --> 00:26:06,670 Nii me näeme rohkem Nende vaid hetk, 577 00:26:06,670 --> 00:26:09,090 Aga selgub, et C ja palju keeli, nagu see, 578 00:26:09,090 --> 00:26:11,240 väga kindlat tüüpi muutujaid. 579 00:26:11,240 --> 00:26:13,810 See ei ole lihtsalt meeldib algebra, kus sa saad x, y ja z 580 00:26:13,810 --> 00:26:16,940 ja need on lihtsalt alati numbrid, programmeerimiskeelt 581 00:26:16,940 --> 00:26:20,030 saate salvestada numbreid, saate salvestada üksikute märkide, 582 00:26:20,030 --> 00:26:24,619 võid salvestada terveid sõnu, siis võiks talletada kogu pilti, kogu helifaile, 583 00:26:24,619 --> 00:26:25,160 jms. 584 00:26:25,160 --> 00:26:28,362 Seega on meil vaja täpsustada, mida tüübist meie muutuja on. 585 00:26:28,362 --> 00:26:31,570 Ja kokkuleppeliselt ma helistada minu muutuja s lihtsalt sellepärast, et see on lühike, 586 00:26:31,570 --> 00:26:33,510 ja s tähistab string. 587 00:26:33,510 --> 00:26:36,400 >> Ja siis ma lähen hoida sees muutuja, 588 00:26:36,400 --> 00:26:39,570 Just nagu Scratch kui ma kasutan komplekti blokaad, 589 00:26:39,570 --> 00:26:41,950 Ma lähen kasutada omistamisoperaatorile C, 590 00:26:41,950 --> 00:26:45,290 mis kenasti piisavalt on võrdne kirjutama, kuid võrdusmärki teeb seda. 591 00:26:45,290 --> 00:26:53,220 Ta liigub midagi paremalt sisse Vasakul väljend. 592 00:26:53,220 --> 00:26:57,170 Mida ma olen teinud, et olla selge line viis, on mul deklareeritud muutuja. 593 00:26:57,170 --> 00:27:01,284 Olen rääkinud arvuti, anna mulle mälu muutuja, nimetame seda s, 594 00:27:01,284 --> 00:27:03,950 ja tean juba ette, et ma lähen tuleb panna string ta. 595 00:27:03,950 --> 00:27:05,950 Ja string on vaid märgijada. 596 00:27:05,950 --> 00:27:09,190 See on sõna või fraas, või lõikes, aga see on märgijada. 597 00:27:09,190 --> 00:27:10,610 See ei ole numbrid. 598 00:27:10,610 --> 00:27:13,800 Mis string olen ma kavatsen olla laskmine muutuja? 599 00:27:13,800 --> 00:27:16,185 Noh, ilmselt tsiteerida lõppeb, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Nüüd märkate mustrit, mis on tekkimas. 601 00:27:17,810 --> 00:27:19,260 Seal on vasakut kätt väljendus. 602 00:27:19,260 --> 00:27:21,810 Seal on parem käsi väljendus, eraldatud võrdusmärki. 603 00:27:21,810 --> 00:27:24,390 Ja lihtsalt võtta vist, kui harjumatu siiski, 604 00:27:24,390 --> 00:27:27,430 mida semikoolonit teeb. 605 00:27:27,430 --> 00:27:28,865 Mis see arvatavasti läheb meil? 606 00:27:28,865 --> 00:27:29,365 Jah? 607 00:27:29,365 --> 00:27:29,840 >> Sihtrühm: [kuuldamatu] 608 00:27:29,840 --> 00:27:29,980 >> DAVID J. Humala: Jah. 609 00:27:29,980 --> 00:27:31,170 See on lihtsalt lõpetada line. 610 00:27:31,170 --> 00:27:31,669 Õigus? 611 00:27:31,669 --> 00:27:34,260 Arvutid tahad olla keerutamata ütles, sõna otseses mõttes, mida teha. 612 00:27:34,260 --> 00:27:36,343 Nagu maapähklivõi ja tarrend sandwich näiteks 613 00:27:36,343 --> 00:27:39,360 Kui sa ei määra täpselt, mida te kavatsete, 614 00:27:39,360 --> 00:27:42,190 see võib jätta otsuse või viga. 615 00:27:42,190 --> 00:27:44,890 Semikoolonit tähendab, Ongi see käsk. 616 00:27:44,890 --> 00:27:48,310 See on super täpne, ja see on väga lihtne asi jätta välja. 617 00:27:48,310 --> 00:27:52,240 Nüüd see programm ei tundu saab käitub teistmoodi, kuni ma 618 00:27:52,240 --> 00:27:53,500 muuta seda dünaamilisemaks. 619 00:27:53,500 --> 00:27:57,107 Nii et pigem kõva võiks oma Nime, lase mind panna kohatäide väärtus. 620 00:27:57,107 --> 00:28:00,190 Ja selgub, et, ja ma tean, et see alates läbilugemise dokumentatsiooni, 621 00:28:00,190 --> 00:28:04,080 ja ko funktsiooni juba aastaid, et printf oli mõeldud olema dünaamiline. 622 00:28:04,080 --> 00:28:07,510 Sa ei pea ette teada mida sõnad, mida soovite panna see. 623 00:28:07,510 --> 00:28:11,290 Selle asemel saab olema kohatäide, nagu protsenti s, mis 624 00:28:11,290 --> 00:28:15,500 läheb öelda arvuti, pane string siin. 625 00:28:15,500 --> 00:28:17,740 >> Milline string me tahame panna sinna? 626 00:28:17,740 --> 00:28:22,430 Will selgub, et nende vahel sulgudes, mis mäletan, piiritleda 627 00:28:22,430 --> 00:28:28,020 sisendi funktsiooni, kui teil on komadega eraldatud nimekiri asjadest siin 628 00:28:28,020 --> 00:28:31,790 me tegelikult läbida mitu sisendite funktsioon. 629 00:28:31,790 --> 00:28:33,901 Nii lihtsalt meeldib mõned Scratch plokid, sa ei pruugi 630 00:28:33,901 --> 00:28:36,150 mänginud nendega oma projekte veel või üldse 631 00:28:36,150 --> 00:28:38,250 mõned Scratch plokid on kaks sisendit. 632 00:28:38,250 --> 00:28:41,220 Kaks valget kasti saate kirjuta numbreid või sõnu. 633 00:28:41,220 --> 00:28:45,210 Nii et ei C on funktsioone, nagu printf, mis võib kesta kaks sisendit. 634 00:28:45,210 --> 00:28:48,050 Ja jälle see komadega on neid lahutava. 635 00:28:48,050 --> 00:28:51,070 Nii inglise, jälle isegi siis, kui olete kunagi programmeeritud enne, 636 00:28:51,070 --> 00:28:55,320 selle loogika printf on funktsioon, võtab kaks sisendit, millest üks 637 00:28:55,320 --> 00:28:58,810 on kohatäide, mida sa loodan printf kavatseb teha seda input? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 See saab öelda tere Hannah, loodetavasti. 640 00:29:03,220 --> 00:29:05,274 Nii on meil vaja salvestada. 641 00:29:05,274 --> 00:29:06,190 Ma lähen välja suumida. 642 00:29:06,190 --> 00:29:10,701 Ma lähen siia tagasi ja öelda, et tere siseneda. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Midagi on valesti, ja tegelikult see on üsna suur. 645 00:29:14,830 --> 00:29:18,400 Mul on kuus rida koodi ja nagu 12 rida vigu. 646 00:29:18,400 --> 00:29:22,120 Niisiis, ootan seda. 647 00:29:22,120 --> 00:29:24,260 Mis siin toimub? 648 00:29:24,260 --> 00:29:27,370 Nii et parim rusikareegel siin eriti kui sa oled hakanud välja 649 00:29:27,370 --> 00:29:29,370 ei saa häirida kraami allosas. 650 00:29:29,370 --> 00:29:31,220 Tegelikult ma väga sihilikult lihtsalt kerida üles 651 00:29:31,220 --> 00:29:33,930 sest väga sageli, arvuti on mitte kõik, mis särav seadme. 652 00:29:33,930 --> 00:29:35,054 See saab segane. 653 00:29:35,054 --> 00:29:37,220 Kui ta näeb üks asi, mis ta ei saa aru, 654 00:29:37,220 --> 00:29:40,030 see võib ekslikult muu rida koodi valesti, 655 00:29:40,030 --> 00:29:41,649 kuigi need on täiesti korras. 656 00:29:41,649 --> 00:29:43,940 Nii et sa alati tahavad töötada ülevalt alla läbi vigu. 657 00:29:43,940 --> 00:29:47,850 Ja tõsi see on super kauge hetkel. 658 00:29:47,850 --> 00:29:50,830 >> Viga kasutamine deklareerimata identifitseerimine string. 659 00:29:50,830 --> 00:29:52,130 Kas ma mõtlen standard? 660 00:29:52,130 --> 00:29:53,720 Ei, ma mõtlesin string. 661 00:29:53,720 --> 00:29:55,830 Ja see osutavad, äkki see on kirjaviga. 662 00:29:55,830 --> 00:30:00,570 Omamoodi nagu, õigekirjakontrolli on väga geeky viis, kuid põhjus siin 663 00:30:00,570 --> 00:30:02,840 ja sa tead seda lihtsalt praktikas on 664 00:30:02,840 --> 00:30:06,390 et tuleb välja, et string ei eksisteeri C. Tegelikult C 665 00:30:06,390 --> 00:30:08,820 on eriti vana keele ja see on väga madal, 666 00:30:08,820 --> 00:30:11,361 ja see ei ole palju funktsioone et võite kasvanud 667 00:30:11,361 --> 00:30:14,620 koos, kui teil on, tegelikult programmeeritud Java, nagu mõned teist on, 668 00:30:14,620 --> 00:30:16,980 aga sa ei saa õpetada see uusi asju. 669 00:30:16,980 --> 00:30:20,900 Ja tõepoolest, me oleme teinud seda CS50, kuigi lõpuks semester, 670 00:30:20,900 --> 00:30:23,512 kõik need abirattad mis on maha võetud, 671 00:30:23,512 --> 00:30:25,220 mida me teeme neid Esimesed paar nädalat 672 00:30:25,220 --> 00:30:29,830 Esialgu on meil ka Teile hulka CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Milline on päisefailist. 674 00:30:31,230 --> 00:30:32,440 Veel, et tulevikus. 675 00:30:32,440 --> 00:30:36,430 >> See on fail, mis sisaldab funktsioone et me oleme kirjutanud teile. 676 00:30:36,430 --> 00:30:39,180 Ja nende seas funktsioonid on funktsioone saada sisend 677 00:30:39,180 --> 00:30:43,520 kasutaja, nagu stringid, ja numbrid ja reaalarvud ja rohkem. 678 00:30:43,520 --> 00:30:45,550 Aga see on ka mõned otseteed. 679 00:30:45,550 --> 00:30:48,200 See määratleb Loogiline kui andmetüüp. 680 00:30:48,200 --> 00:30:50,340 C ei ole õige või vale. 681 00:30:50,340 --> 00:30:53,880 Aga me ei saa anda seda mõistet õige või vale teel selle raamatukogu. 682 00:30:53,880 --> 00:30:57,670 Ja see ka ei ole string ehitatud, kuni me lisada see rida. 683 00:30:57,670 --> 00:31:01,090 Nii et see koodirida ütleb tõlkija, hei, rõkkama, vaatame 684 00:31:01,090 --> 00:31:03,570 seda pilti terve hunnik koodi, et CS50 685 00:31:03,570 --> 00:31:06,330 on kirjutatud nii, et kõigile, kes kasutavad seda faili 686 00:31:06,330 --> 00:31:09,330 saab enesestmõistetavaks funktsioone nad lisanud. 687 00:31:09,330 --> 00:31:11,220 >> Nüüd lubage mul minna ja selge ekraan, 688 00:31:11,220 --> 00:31:14,178 ja kui uudishimulik Ma lihtsalt ütlen kontrolli l iga kord selge ekraan, 689 00:31:14,178 --> 00:31:15,500 või saate tippida selge. 690 00:31:15,500 --> 00:31:19,220 Ma lihtsalt minna nüüd ja tüüp teeb hello, ja kõik on hästi. 691 00:31:19,220 --> 00:31:22,550 Ikka kauge väljund, kuid see ei ole eksliku sõnumi. 692 00:31:22,550 --> 00:31:28,300 Nüüd, kui ma teen dot kaldkriips hello, ja kui kõrvale, dot kaldkriipsuga on võõras enamikule. 693 00:31:28,300 --> 00:31:30,430 See tähendab lihtsalt, DOT aktiivse kataloogi. 694 00:31:30,430 --> 00:31:33,120 Nii et kui te olete kunagi kasutanud DOS või Linux või Unix 695 00:31:33,120 --> 00:31:35,410 sa oleks võinud teha midagi nagu cd dot dot, kus 696 00:31:35,410 --> 00:31:39,220 dot dot tähendab minna tahapoole aega, või minna tagasi või kõrgemal 697 00:31:39,220 --> 00:31:40,370 Teie kataloogi. 698 00:31:40,370 --> 00:31:43,090 Dot tähendab lihtsalt vaatan aktiivse kataloogi. 699 00:31:43,090 --> 00:31:45,670 Ma tahan hello, mis on siinsamas. 700 00:31:45,670 --> 00:31:47,750 Ja tõepoolest, nüüd ta ütleb tere Hannah. 701 00:31:47,750 --> 00:31:51,120 Ja kui ma seda uuesti muuta Maria, kompileerida 702 00:31:51,120 --> 00:31:55,650 see oleks tere, dot kaldkriipsuga tere, programmi hoiab muutumas. 703 00:31:55,650 --> 00:31:58,060 >> Aga see on ikka päris loll programm. 704 00:31:58,060 --> 00:32:00,972 Kui ma tahan saata selle programmi, või anda see sõber, 705 00:32:00,972 --> 00:32:03,430 või anda see Maria või Hannah et asi, mis on hea. 706 00:32:03,430 --> 00:32:07,300 Võin kohandada see mõlema jaoks, kuid see ei saa kunagi olema dünaamiline. 707 00:32:07,300 --> 00:32:10,870 Nad ei saa seda muuta, kui see on koostatud jaguneb need ühtede ja nullide. 708 00:32:10,870 --> 00:32:12,350 Mida me tegime midagi targemaks? 709 00:32:12,350 --> 00:32:17,100 Mis siis, kui selle asemel, et kõva kodeerimine programmiga isiku nime, 710 00:32:17,100 --> 00:32:20,890 Mis siis, kui me lihtsalt saada nöör nõudlust? 711 00:32:20,890 --> 00:32:22,430 >> Nii teisisõnu, lubage mul seda teha. 712 00:32:22,430 --> 00:32:24,030 Ma lähen kompileerida programmi. 713 00:32:24,030 --> 00:32:25,710 Ja las ma suumida allosas nüüd. 714 00:32:25,710 --> 00:32:29,920 Tee hello dot kaldkriipsuga tere. 715 00:32:29,920 --> 00:32:31,710 Nüüd ei juhtu midagi. 716 00:32:31,710 --> 00:32:35,860 Kas saame kiire vabatahtlike teha midagi juhtuda? 717 00:32:35,860 --> 00:32:36,360 Tule üles. 718 00:32:36,360 --> 00:32:37,020 Mis su nimi on? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> DAVID J. Humala: Pacho? 721 00:32:38,361 --> 00:32:39,609 Tule üles. 722 00:32:39,609 --> 00:32:42,150 Kui sa siin, see on saab olema väga underwhelming, 723 00:32:42,150 --> 00:32:44,060 aga see on huvitavam kui mulle kirjutades. 724 00:32:44,060 --> 00:32:49,007 Kui soovid minna ja kirjuta oma nimi, tegin selle programmi just teie jaoks. 725 00:32:49,007 --> 00:32:49,840 Lihtsalt kirjuta oma nimi. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Sisesta. 728 00:32:53,900 --> 00:32:54,489 Wonderful. 729 00:32:54,489 --> 00:32:55,780 Olgu, tänan teid väga. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Tänan väga. 731 00:32:56,708 --> 00:32:57,636 >> DAVID J. Humala: OK. 732 00:32:57,636 --> 00:32:59,028 >> [APPLAUSE] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> See oli väga lahke. 735 00:33:01,840 --> 00:33:03,145 Palun. 736 00:33:03,145 --> 00:33:03,770 Mida me teeme? 737 00:33:03,770 --> 00:33:05,930 Nii me lõpuks vähemalt tegin selle programmi dünaamiline. 738 00:33:05,930 --> 00:33:08,400 Nüüd on veel kindlasti by design underwhelming, 739 00:33:08,400 --> 00:33:11,480 kuid me lõpuks on võime nüüd kirjutada koodi ette, palju 740 00:33:11,480 --> 00:33:13,770 nagu autorid printf, ja siis dünaamiliselt 741 00:33:13,770 --> 00:33:17,550 kohandada sisendi põhjal oleme meheks, kas programmeerija, 742 00:33:17,550 --> 00:33:20,610 või inimese, kes on tegelikult suheldes programmi. 743 00:33:20,610 --> 00:33:22,990 Nii saab tegelikult nüüd proovida teha mõned muud konstrueerib 744 00:33:22,990 --> 00:33:26,625 ja näha, kui me ei saa teha programmide ise keerukam. 745 00:33:26,625 --> 00:33:29,250 Nii lähme edasi ja selle asemel Kirjutan seda nullist, 746 00:33:29,250 --> 00:33:31,540 Ma lähen tänapäeva lähtekoodi, ja see kõik 747 00:33:31,540 --> 00:33:34,290 on kättesaadav kursuse kodulehel ja saate lohistada see 748 00:33:34,290 --> 00:33:36,590 oma enda keskkonnas tulevad reede kui probleem 749 00:33:36,590 --> 00:33:38,506 komplekt 1 annab teile juhiseid, või võid 750 00:33:38,506 --> 00:33:41,200 seda teha käsurea hästi, kuid rohkem tulema p seatud 1. 751 00:33:41,200 --> 00:33:44,940 >> Vaatame, mis on antud programmi siin nimetatakse, rästik dot c. 752 00:33:44,940 --> 00:33:47,970 Nüüd olen juba kommenteerinud see, aga mida uut? 753 00:33:47,970 --> 00:33:51,230 Esmapilgul mida joon kood on täiesti uus? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Tõenäoliselt ei ole põhimõtteliselt harjumatu nüüd. 756 00:33:56,780 --> 00:33:58,417 >> Sihtrühm: [kuuldamatu] 757 00:33:58,417 --> 00:34:00,250 DAVID J. Humala: Jah, nii int x võrdub saada n. 758 00:34:00,250 --> 00:34:03,760 Me pole kunagi näinud midagi sellist varem, kuid int on ilmselt 759 00:34:03,760 --> 00:34:08,179 sümbol, millist varieeruv, [? alates?] täisarv. 760 00:34:08,179 --> 00:34:09,040 Nii int täisarv. 761 00:34:09,040 --> 00:34:11,420 See lihtsalt on rohkem sisutihedat. x on lihtsalt suvaline. 762 00:34:11,420 --> 00:34:13,920 x ja y ja z on endiselt päris mõistlik numbrid, 763 00:34:13,920 --> 00:34:16,790 kuid üldiselt me ​​kasutame sõnu, kui Meie programmid saada keerulisem. 764 00:34:16,790 --> 00:34:18,940 Võta int muidugi palju nagu get string, 765 00:34:18,940 --> 00:34:21,629 Ilmselt hakka int kasutaja, 766 00:34:21,629 --> 00:34:23,670 ja siis me läheme teha sama asi y. 767 00:34:23,670 --> 00:34:27,610 Ja ilmselt, kuigi see viimane rida, 24, otsib keerulisem, 768 00:34:27,610 --> 00:34:32,679 see saab öelda summa selle ja mis on see teine ​​asi. 769 00:34:32,679 --> 00:34:35,840 >> Ja teate protsenti i Tõenäoliselt tähendab mida? 770 00:34:35,840 --> 00:34:38,190 Millist rolli protsenti i ilmselt teenida? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 See on lihtsalt kohatäitjaid. 773 00:34:41,719 --> 00:34:42,219 Õigus? 774 00:34:42,219 --> 00:34:45,149 Protsenti s oli string, protsenti i on täisarv. 775 00:34:45,149 --> 00:34:47,690 Seal saab olema protsenti f ujukoma väärtus, mis 776 00:34:47,690 --> 00:34:49,273 on lihtsalt number koma. 777 00:34:49,273 --> 00:34:50,590 Teisisõnu, reaalarv. 778 00:34:50,590 --> 00:34:55,270 Nii saab tegelikult koostada selle programmeerida päris kiire ja ei tee rästik. 779 00:34:55,270 --> 00:34:57,962 Oih. 780 00:34:57,962 --> 00:34:58,670 Hea võimalus. 781 00:34:58,670 --> 00:35:02,970 Nii märkate siin, kõik see aeg minu kasutaja nimi selle konto jharvard. 782 00:35:02,970 --> 00:35:06,620 Olen CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 Ja nüüd sinisega siin on mainitud, kuid keskkonnast, kus ma olen. 784 00:35:11,030 --> 00:35:16,050 Ja tegelikult, kui saan suurendada kuni ülemise siin, märkate, et mul on IDE50 785 00:35:16,050 --> 00:35:19,490 ja ma näen seda sõna, kui te sellist keerata oma pea küljele, tööruumi. 786 00:35:19,490 --> 00:35:23,890 Lühidalt sellest, et Ma käin tilde kaldkriipsuga tööruumi 787 00:35:23,890 --> 00:35:26,910 tähendab, et selles tekstis põhineb käsk keskkond 788 00:35:26,910 --> 00:35:32,300 Olen tekstis samaväärne see graafiline kausta siin. 789 00:35:32,300 --> 00:35:35,730 Nii et kui ma teen dot kaldkriipsuga rästik, ta ütleb, ei ole reeglina 790 00:35:35,730 --> 00:35:37,372 teha sihtmärk rästik stop. 791 00:35:37,372 --> 00:35:39,830 Ma ei tea, mida see tähendab, kuid see on halb mingil põhjusel. 792 00:35:39,830 --> 00:35:43,310 No sellist faili või kataloogi Veelgi selge. 793 00:35:43,310 --> 00:35:45,670 Kus see siis on? 794 00:35:45,670 --> 00:35:47,820 Tuginedes kus ma klõpsatud faili avada varem. 795 00:35:47,820 --> 00:35:49,442 Kus võiks see olla? 796 00:35:49,442 --> 00:35:52,050 >> See on ilmselt allikas üks w, kolmapäeval, 797 00:35:52,050 --> 00:35:53,960 ja ma näen seda tõepoolest kui ma avan, et üles. 798 00:35:53,960 --> 00:35:57,220 Hetkel liitja dot c, kuid Selle teksti-põhine keskkond, 799 00:35:57,220 --> 00:35:59,380 uuesti, ma pean olema super selgesõnaline. 800 00:35:59,380 --> 00:36:03,950 Kui ma tahan muuta kataloogid sisse allikas üks Kolmapäev, mul on vaja kirjutada, 801 00:36:03,950 --> 00:36:07,210 cd ruumi allikas üks Kolmapäev siseneda ja nüüd 802 00:36:07,210 --> 00:36:09,810 minu kiire muudatusi mulle visuaalne kii et 803 00:36:09,810 --> 00:36:12,330 Ma olen tõesti mujal minu keskkond, 804 00:36:12,330 --> 00:36:15,710 aga nüüd ma suudan teha liitja tundub töötada, 805 00:36:15,710 --> 00:36:18,190 dot kaldkriips rästik, anna mulle täisarv. 806 00:36:18,190 --> 00:36:19,080 Üks. 807 00:36:19,080 --> 00:36:20,070 Kaks. 808 00:36:20,070 --> 00:36:21,630 Summa ühe ja kahe on kolm. 809 00:36:21,630 --> 00:36:24,140 Aga kui ma ei tee koostööd, Vaatame, mida saad int teeb. 810 00:36:24,140 --> 00:36:25,200 Anna mulle täisarv. 811 00:36:25,200 --> 00:36:26,590 Ei. 812 00:36:26,590 --> 00:36:27,350 Uuesti. 813 00:36:27,350 --> 00:36:29,060 OKEI. 814 00:36:29,060 --> 00:36:30,520 Fine. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Hästi. 818 00:36:33,010 --> 00:36:34,055 Nii ta lõpuks teeb. 819 00:36:34,055 --> 00:36:36,430 Ja see on osa funktsionaalsust, et neid funktsioone 820 00:36:36,430 --> 00:36:37,760 võib olla ehitatud teid. 821 00:36:37,760 --> 00:36:43,330 >> Nii sees rakendamine get int, mida programmeerimine 822 00:36:43,330 --> 00:36:47,990 ehitada eelmisel nädalal on ilmselt seal sundida seda käitumist taasüritamist, 823 00:36:47,990 --> 00:36:49,962 uuesti, uuesti? 824 00:36:49,962 --> 00:36:51,670 Jah, seal on ilmselt mingi loop. 825 00:36:51,670 --> 00:36:54,160 See saab vaadata süntaktiliselt erineb Scratch on plokkide, 826 00:36:54,160 --> 00:36:55,880 aga see on tõesti mis sees fail. 827 00:36:55,880 --> 00:36:58,505 Ja mõne nädala pärast jagame tegelikult vaadata CS50 raamatukogu 828 00:36:58,505 --> 00:37:02,000 et mis sees, kuid seal on silmus, millega just nii. 829 00:37:02,000 --> 00:37:04,840 >> Mängime rumal vähe mängu siin seda pilti. 830 00:37:04,840 --> 00:37:06,550 Seisukord null dot c. 831 00:37:06,550 --> 00:37:08,960 Me lihtsalt läheb üldiselt alustada nullist. 832 00:37:08,960 --> 00:37:11,220 Ja ma saan kerimine varem mõned asjad üleval. 833 00:37:11,220 --> 00:37:15,390 Sinine siin piiritletud kõik need tähed ja kaldkriipsud, 834 00:37:15,390 --> 00:37:17,310 Neile, kes programmeerima enne, mis see on? 835 00:37:17,310 --> 00:37:18,690 Miks me hoiame vahele üle? 836 00:37:18,690 --> 00:37:19,110 Mida? 837 00:37:19,110 --> 00:37:19,490 >> Sihtrühm: See kommentaari. 838 00:37:19,490 --> 00:37:19,800 >> DAVID J. Humala: Jah. 839 00:37:19,800 --> 00:37:20,633 See on lihtsalt kommentaari. 840 00:37:20,633 --> 00:37:24,160 See on kommentaar inimestele lugeda, et meie puhul 841 00:37:24,160 --> 00:37:27,120 ütleb meile, milline nimi faili on, kes selle kirjutas, ja mida ta teeb, 842 00:37:27,120 --> 00:37:28,610 nii et sa ei pea läbi lugeda koodi 843 00:37:28,610 --> 00:37:30,110 teadma, mida see fail on. 844 00:37:30,110 --> 00:37:33,110 See on lihtsalt kirjeldus, kuid funktsionaalselt on ebaoluline. 845 00:37:33,110 --> 00:37:35,930 Ja ma ei saa isegi kustutada minu faili ja see ei mõjuta. 846 00:37:35,930 --> 00:37:38,740 Juicy read on need Esimesed kaks siin, praegu. 847 00:37:38,740 --> 00:37:41,405 int main void on samaväärne Meie kui roheline lipp klõpsates 848 00:37:41,405 --> 00:37:44,030 nii et me läheme lahkuda, et olla täna, ja me tuleme tagasi, 849 00:37:44,030 --> 00:37:46,940 lõpuks, et mida int ja tühiseks, kuid nüüd, 850 00:37:46,940 --> 00:37:49,500 pane tähele, mis ma olen teinud ka siin, te saate ka 851 00:37:49,500 --> 00:37:51,736 kui sul on kooskõlas kommenteerida, kui teil on 852 00:37:51,736 --> 00:37:54,670 Arvatavasti tahad jagada umbes eelkõige koodirida, 853 00:37:54,670 --> 00:37:58,910 konventsiooni C on teha kaldkriipsuga kaldkriips ja siis paar sisutihedat sõnu, 854 00:37:58,910 --> 00:38:01,500 ole terve lause, Enamasti ei ole lõikes, 855 00:38:01,500 --> 00:38:05,310 et lihtsalt selgitab teile või teie TF või teistele lugejatele või kolleegidega, 856 00:38:05,310 --> 00:38:06,990 mida teie kood teeb. 857 00:38:06,990 --> 00:38:10,150 Nii et pigem on vaadata sel ja järeldavad read 858 00:38:10,150 --> 00:38:12,550 üheksa ja 10, mis on see teeb kooskõlas kaheksa 859 00:38:12,550 --> 00:38:14,945 Ma lihtsalt annan kommentaari küsi kasutajalt täisarv, 860 00:38:14,945 --> 00:38:17,820 siis ma ei pea mõtlema liiga raske mida read üheksa ja 10. 861 00:38:17,820 --> 00:38:19,720 Ma lihtsalt tean, et see, mida kollektiivselt nad teevad. 862 00:38:19,720 --> 00:38:20,460 >> Kuidas? 863 00:38:20,460 --> 00:38:22,060 Noh, siin on kiire. 864 00:38:22,060 --> 00:38:23,610 Siin on saada int. 865 00:38:23,610 --> 00:38:25,984 Ja mis põhineb eelmise käitumist, tundub get int 866 00:38:25,984 --> 00:38:29,080 on piisavalt targad, et veenduda, et inimese koostööd ja annab 867 00:38:29,080 --> 00:38:30,090 täisarv. 868 00:38:30,090 --> 00:38:32,270 Aga nüüd me näeme seda. 869 00:38:32,270 --> 00:38:33,740 Ja see meenutab Scratch. 870 00:38:33,740 --> 00:38:36,140 Ma väidan, et ma olen Analüüsides kasutaja sisend, 871 00:38:36,140 --> 00:38:39,050 kuid mõnevõrra ebatäpselt. 872 00:38:39,050 --> 00:38:43,200 Ja see ilmselt C kuidas Me anname kui mujal, filiaali, 873 00:38:43,200 --> 00:38:46,320 kahvel tee, kuid ma öelda mõnevõrra ebatäpselt. 874 00:38:46,320 --> 00:38:50,470 Mis viga selles programmis? 875 00:38:50,470 --> 00:38:51,610 Umbes edasi tagasi? 876 00:38:51,610 --> 00:38:52,223 Jah. 877 00:38:52,223 --> 00:38:53,150 >> Sihtrühm: [kuuldamatu] null. 878 00:38:53,150 --> 00:38:54,025 >> DAVID J. Humala: Jah. 879 00:38:54,025 --> 00:38:57,630 Nii et kui ma kirjutada null Vaatleme täpselt, et juhul, või nurgas juhul, 880 00:38:57,630 --> 00:38:58,450 kui soovite. 881 00:38:58,450 --> 00:39:02,790 Nii et kui ma kirjutada null, mis on plokid läheb ilmselt haarata? 882 00:39:02,790 --> 00:39:04,660 IF või teine? 883 00:39:04,660 --> 00:39:07,340 Else, ja see läheb öelda, valisid negatiivse numbriga. 884 00:39:07,340 --> 00:39:10,476 Ja tõepoolest, null ei peaks positiivne või negatiivne, 885 00:39:10,476 --> 00:39:11,850 ja nii, et oleks valesti. 886 00:39:11,850 --> 00:39:12,930 See oleks viga. 887 00:39:12,930 --> 00:39:14,580 Niisiis, kuidas me saame parandada? 888 00:39:14,580 --> 00:39:16,360 Keegi, kes pole kunagi programmeeritud enne? 889 00:39:16,360 --> 00:39:16,570 Kas sa tahad-- 890 00:39:16,570 --> 00:39:17,480 >> Sihtrühm: [kuuldamatu] 891 00:39:17,480 --> 00:39:17,990 >> DAVID J. Humala: Pingutusjõud? 892 00:39:17,990 --> 00:39:18,570 >> Sihtrühm: [kuuldamatu] 893 00:39:18,570 --> 00:39:18,930 >> DAVID J. Humala: Oh, sul on? 894 00:39:18,930 --> 00:39:20,350 Keegi, kes pole kunagi programmeeritud enne. 895 00:39:20,350 --> 00:39:21,750 Tahad proovida oma kätt see, et punane särk? 896 00:39:21,750 --> 00:39:22,600 Tule üles. 897 00:39:22,600 --> 00:39:25,320 Oh yeah, tule üles, kui sa ei pahanda. 898 00:39:25,320 --> 00:39:27,586 Nii ei ole kunagi programmeeritud Enne, mis su nimi on? 899 00:39:27,586 --> 00:39:28,210 Lauren: Lauren. 900 00:39:28,210 --> 00:39:29,626 DAVID J. Humala: Lauren, eks. 901 00:39:29,626 --> 00:39:31,150 Nii määrata see viga meile. 902 00:39:31,150 --> 00:39:35,070 Sul ei ole näinud C, arvatavasti, ja ilmselt ühtegi teist keelt. 903 00:39:35,070 --> 00:39:38,380 Nii määrata selle programmi juures. 904 00:39:38,380 --> 00:39:39,100 Nice to meet ya. 905 00:39:39,100 --> 00:39:39,615 No survet. 906 00:39:39,615 --> 00:39:40,156 Lauren: Jah. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> DAVID J. Humala: Aga jällegi, kui see õnnemäng läheb plaanipäraselt, 909 00:39:46,270 --> 00:39:48,350 Buffee siin olla, lihtsalt uuesti alustada 910 00:39:48,350 --> 00:39:51,080 märgata mustreid ja tuletada olemasoleva süntaks 911 00:39:51,080 --> 00:39:55,420 kuidas muidu võite väljendada ise, no pun mõeldud, et 912 00:39:55,420 --> 00:39:58,410 jäädvustada mõned täiendavad stsenaariumi. 913 00:39:58,410 --> 00:39:59,603 Nii me ütleme muud kui. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, hea. 916 00:40:05,230 --> 00:40:09,120 Ja teate koos CS50 IDE ja frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 tähistab integreeritud Arenduskeskkond. 918 00:40:11,110 --> 00:40:14,110 See on lihtsalt fancy viis öelda programm, mis aitab Teil programmi. 919 00:40:14,110 --> 00:40:16,779 Ta teeb kasutajasõbralik asjad kui kirjutad ühe sulgudes 920 00:40:16,779 --> 00:40:18,320 see annab teile automaatselt teisele. 921 00:40:18,320 --> 00:40:20,760 Eeldus on, et sa oled lõpuks lähed tahan kirjutada, et 922 00:40:20,760 --> 00:40:22,400 ja see ka teeb seda jutumärkidesse. 923 00:40:22,400 --> 00:40:24,190 >> Nii mulle meeldib line 23. 924 00:40:24,190 --> 00:40:26,400 99% teest on. 925 00:40:26,400 --> 00:40:29,920 Keegi taha Säestää otsa? 926 00:40:29,920 --> 00:40:31,420 Kuulsin semikooloniga publik. 927 00:40:31,420 --> 00:40:32,080 Väga hea. 928 00:40:32,080 --> 00:40:33,260 Nii et lõpetab selle. 929 00:40:33,260 --> 00:40:37,930 Ja nüüd, ma lihtsalt pean natuke jahmatus on line 21. 930 00:40:37,930 --> 00:40:41,370 Kuidas me tahame väljendada seda? 931 00:40:41,370 --> 00:40:43,370 Mis küsimus, kas me tahame küsida, kas sa arvad? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Nii varem me küsis, kui n on suurem kui null, seda teha. 934 00:40:50,330 --> 00:40:51,870 Else, tee seda. 935 00:40:51,870 --> 00:40:54,317 Seega peame valima küsimus küsida siin. 936 00:40:54,317 --> 00:40:55,192 Sihtrühm: [kuuldamatu] 937 00:40:55,192 --> 00:40:56,530 DAVID J. Humala: Hea. 938 00:40:56,530 --> 00:40:58,290 Nii et kui n võrdub nulliga. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Suurepärane. 941 00:41:02,100 --> 00:41:03,080 Nii saab peatada siin. 942 00:41:03,080 --> 00:41:04,850 Tänan sind nii palju braving seda. 943 00:41:04,850 --> 00:41:10,890 Annan teile veidi ärateenitud stress palli, võib-olla seal. 944 00:41:10,890 --> 00:41:11,900 Nii et me oleme peaaegu kohal. 945 00:41:11,900 --> 00:41:14,790 Tegelikult Lauren, kui te ei meeles, lubage mul teha üks näpistama siin 946 00:41:14,790 --> 00:41:17,850 lihtsalt olla järjekindel isegi mida me nägime Scratch, mida 947 00:41:17,850 --> 00:41:21,080 ma tahan teha read 21 ja 24, vaid taas aluseks 948 00:41:21,080 --> 00:41:23,290 kuidas me seda tegime Scratch, ehk? 949 00:41:23,290 --> 00:41:24,230 >> Sihtrühm: Liiguta see üles. 950 00:41:24,230 --> 00:41:25,605 >> DAVID J. Humala: Jah, see teema. 951 00:41:25,605 --> 00:41:30,260 Nii et teine ​​tingimus, kolmanda või Neljas või viies või lõplik filiaal, 952 00:41:30,260 --> 00:41:34,100 peaks tõepoolest tulevad hiljem, ja see on just see, kokkuleppeliselt 953 00:41:34,100 --> 00:41:36,047 lihtsalt sellepärast, et kui soovite. 954 00:41:36,047 --> 00:41:37,380 Nii et ma ei pea seda näpistama. 955 00:41:37,380 --> 00:41:39,660 Ja ma pean panen lokkis traksidega siia tagasi. 956 00:41:39,660 --> 00:41:42,700 Ja nüüd, see programm koostada. 957 00:41:42,700 --> 00:41:46,140 Me oleme nii lähedal, kuid seal on väga, väga peen viga. 958 00:41:46,140 --> 00:41:47,200 Vaatame, mis juhtub. 959 00:41:47,200 --> 00:41:49,660 >> Esiteks lubage mul minna ja välja suumida. 960 00:41:49,660 --> 00:41:53,405 Ma lähen edasi minna ja kirjuta teha seisukorras null. 961 00:41:53,405 --> 00:41:55,070 Oh, ma valetasin. 962 00:41:55,070 --> 00:41:58,760 Nüüd koostaja on tegelikult päris tark. 963 00:41:58,760 --> 00:42:00,950 Ja ma tõesti ei mõista, see veateade. 964 00:42:00,950 --> 00:42:04,310 Kasutades tulemus loovutamine tingimusena ilma sulgudes, 965 00:42:04,310 --> 00:42:05,740 on ilmselt halb. 966 00:42:05,740 --> 00:42:07,100 Aga mida see tähendab? 967 00:42:07,100 --> 00:42:10,860 >> Noh jälle, otsin mustreid koodi, et me oleme näinud, 968 00:42:10,860 --> 00:42:16,640 Mis on line 17 tegelikult seda, kuigi Lauren mõeldud veidi 969 00:42:16,640 --> 00:42:18,790 muidu? 970 00:42:18,790 --> 00:42:19,290 Jah. 971 00:42:19,290 --> 00:42:21,565 >> Sihtrühm: [kuuldamatu] 972 00:42:21,565 --> 00:42:22,440 DAVID J. Humala: Jah. 973 00:42:22,440 --> 00:42:26,610 Seega pidage meeles võrdusmärki, ilmselt nagu me oleme seda kasutanud enne, ei ole võrdne. 974 00:42:26,610 --> 00:42:29,240 Selle ülesande, paremalt vasakule. 975 00:42:29,240 --> 00:42:33,810 Nii joon 17 hetkel Tingimuseks on, ja see on 976 00:42:33,810 --> 00:42:37,890 täidesaatva kood sulgudes, aga kui selle koodi hukatakse, 977 00:42:37,890 --> 00:42:42,140 mis toimub väärtus null? 978 00:42:42,140 --> 00:42:45,250 Mis toimub väärtus n? 979 00:42:45,250 --> 00:42:46,810 Saades null. 980 00:42:46,810 --> 00:42:50,520 Nii et kui n muutub null, ja jälle, nagu iga eelmisel nädalal, 981 00:42:50,520 --> 00:42:54,690 me üldiselt öelda, et null on vale ja üks on tõsi, 982 00:42:54,690 --> 00:42:57,410 või jah on üks ja mitte on null. 983 00:42:57,410 --> 00:42:59,590 Nii õige ja vale, üks ja 0. 984 00:42:59,590 --> 00:43:06,090 Kui n nagu Rida 17 on antud väärtus 0, on null tõsi? 985 00:43:06,090 --> 00:43:06,590 Ei. 986 00:43:06,590 --> 00:43:08,280 Definitsiooni järgi null on vale. 987 00:43:08,280 --> 00:43:10,860 See konventsioon me oleme läheb klammerduvad liigub edasi. 988 00:43:10,860 --> 00:43:17,320 Nii on read 18, 19 ja 20 kunagi kohaldatakse nüüd loogiliselt? 989 00:43:17,320 --> 00:43:18,320 Nad ei saa. 990 00:43:18,320 --> 00:43:21,640 Nii me küsis kuid mitte päris täpselt, 991 00:43:21,640 --> 00:43:25,620 ja sa ei tea seda, kui oled näinud seda, lahuse C 992 00:43:25,620 --> 00:43:29,610 on see, kui sa tahad väljendada võrdsus, ütlete võrdsete võrdne. 993 00:43:29,610 --> 00:43:33,140 Nii võrdusmärk oli juba ära kasutatud loovutamisega, paremalt vasakule. 994 00:43:33,140 --> 00:43:35,110 Vastus võrdub vahenditega võrdsetena. 995 00:43:35,110 --> 00:43:37,950 Ja kui sa tõesti tahad oma meelt painutatud, JavaScripti ja PHP, 996 00:43:37,950 --> 00:43:40,490 seal on võrdne võrdne võrdsete, mis tähenda midagi muud kokku, 997 00:43:40,490 --> 00:43:41,990 kuid me jõuame, et enne pikk. 998 00:43:41,990 --> 00:43:45,760 >> Nii et see on lihtne määrata, kuid mõistma super lihtne teha seda viga, 999 00:43:45,760 --> 00:43:48,700 ja siis ei tea, ja võitlus minuteid, kui mitte tund, 1000 00:43:48,700 --> 00:43:51,490 miks on minu kood täidesaatva kui ma kavatsen? 1001 00:43:51,490 --> 00:43:54,140 See on sellepärast, et sa ei rääkinud see täpselt see, mida sa mõtlesid. 1002 00:43:54,140 --> 00:43:56,450 Nii et oli peaaegu täiuslik, ja see oli suurepärane 1003 00:43:56,450 --> 00:44:00,760 et me komistas kogu neid kaks väikest asju, sest nüüd, kui me neid parandada, 1004 00:44:00,760 --> 00:44:06,240 ja ma ei tee seisundi null dot kaldkriips seisukorras null, 1005 00:44:06,240 --> 00:44:07,490 Sooviksin täisarv palun. 1006 00:44:07,490 --> 00:44:08,090 Vaatame. 1007 00:44:08,090 --> 00:44:09,160 Ei. 1008 00:44:09,160 --> 00:44:10,740 See saab sundida mind seda tegema. 1009 00:44:10,740 --> 00:44:11,990 Nii 42. 1010 00:44:11,990 --> 00:44:13,590 Ma valisin positiivne arv. 1011 00:44:13,590 --> 00:44:16,470 Nüüd, kui ma tõestada Selle programmi õige? 1012 00:44:16,470 --> 00:44:19,990 Kui oled matemaatik, sa ei saa tõesti tõestada seda katse-eksituse meetodil, 1013 00:44:19,990 --> 00:44:20,490 õige? 1014 00:44:20,490 --> 00:44:23,180 Sa ei saa lihtsalt tõendina Näiteks, kuid vähemalt 1015 00:44:23,180 --> 00:44:25,494 programmeerijana me ei ole üritagi tõestada nüüd 1016 00:44:25,494 --> 00:44:27,660 et see on tegelikult õige, aga ma peaks ilmselt 1017 00:44:27,660 --> 00:44:29,470 katsetada mõne esindaja juhtudel. 1018 00:44:29,470 --> 00:44:31,070 >> Olen testitud 42. 1019 00:44:31,070 --> 00:44:33,030 Ma võiks testida 43. 1020 00:44:33,030 --> 00:44:34,910 Ma võiks testida 44. 1021 00:44:34,910 --> 00:44:35,640 Test 45. 1022 00:44:35,640 --> 00:44:36,140 Õigus? 1023 00:44:36,140 --> 00:44:37,860 Aga ma võiks seda teha väga palju aega. 1024 00:44:37,860 --> 00:44:39,925 Mis oleks veel mõned huvitav juhul proovida? 1025 00:44:39,925 --> 00:44:41,050 Sihtrühm: [kuuldamatu] null. 1026 00:44:41,050 --> 00:44:41,740 DAVID J. Humala: Nii null. 1027 00:44:41,740 --> 00:44:42,297 Kindlasti. 1028 00:44:42,297 --> 00:44:44,880 Ja hea, meil on seekord Tänu Lauren uus kood. 1029 00:44:44,880 --> 00:44:46,213 Mis on veel üks hea näide proovida? 1030 00:44:46,213 --> 00:44:47,320 Sihtrühm: negatiivne. 1031 00:44:47,320 --> 00:44:50,070 >> DAVID J. Humala: negatiivne ja võibolla midagi veidi suurem, 1032 00:44:50,070 --> 00:44:52,617 et äkki negatiivne 42, aga üldiselt, kui 1033 00:44:52,617 --> 00:44:54,450 testida oma programmides liigub edasi, sa oled 1034 00:44:54,450 --> 00:44:56,325 läheb taha mõelda ise, nagu mida 1035 00:44:56,325 --> 00:44:58,050 on põhiline erinevad juhtumid. 1036 00:44:58,050 --> 00:45:01,720 Ja ma julgen öelda negatiivne juhul, positiivne juhul, ning null juhul 1037 00:45:01,720 --> 00:45:03,365 päris palju ümardab need välja. 1038 00:45:03,365 --> 00:45:04,990 Vaatame variant seda küll. 1039 00:45:04,990 --> 00:45:06,930 Tingimused üks. 1040 00:45:06,930 --> 00:45:11,224 See on õige lahendus siin, nii et näete kaks ja online, 1041 00:45:11,224 --> 00:45:13,390 kui sa käid trajektooridega, üldiselt 1042 00:45:13,390 --> 00:45:18,090 juurdekasvu need järk-järgult, kuni me saada täpselt õige lähenemine. 1043 00:45:18,090 --> 00:45:20,070 Mis siis, kui me tahtsime küsida kaks küsimust korraga? 1044 00:45:20,070 --> 00:45:22,200 >> Lubage mul avada selle asemel. 1045 00:45:22,200 --> 00:45:26,740 Non-lüliti põhjustel me näeme veel kord. 1046 00:45:26,740 --> 00:45:29,610 Mida uut süntaktiliselt siin? 1047 00:45:29,610 --> 00:45:32,760 Ma olen praegu mängides mängu kui arvuti on öelnud 1048 00:45:32,760 --> 00:45:35,550 mulle, anna mulle täisarv üks kuni 10, 1049 00:45:35,550 --> 00:45:37,180 ja siis ma otsustades kasutaja sisend. 1050 00:45:37,180 --> 00:45:39,180 Inglise keeles, mis põhineb kood, mida näed siin 1051 00:45:39,180 --> 00:45:41,530 sinine, mida see programm teeb? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 Sihtrühm: [kuuldamatu] korjatud suur või väike arv. 1054 00:45:46,380 --> 00:45:46,484 DAVID J. Humala: Jah. 1055 00:45:46,484 --> 00:45:49,450 See on lihtsalt lahendamisel, kas Ma valisin suur või keskmise, 1056 00:45:49,450 --> 00:45:53,900 või väike arv põhineb väga meelevaldne määratlus väike, keskmine, 1057 00:45:53,900 --> 00:45:58,510 ja suur siin, kuid teatamata süntaks et uut on see. 1058 00:45:58,510 --> 00:46:02,340 Ei ole vähem kui int või võrdne kirjutama, või sellest suurem või võrdne kirjutama, 1059 00:46:02,340 --> 00:46:05,430 kus üks on teise üle, et teil võib väljendada nagu Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Nii et programmeerimiskeelt tavaliselt lihtsalt teha kaks märki, 1061 00:46:08,180 --> 00:46:09,450 üksteise järel. 1062 00:46:09,450 --> 00:46:12,695 Ja mida see ilmselt esindada, ampersand ampersand. 1063 00:46:12,695 --> 00:46:13,570 Sihtrühm: [kuuldamatu] 1064 00:46:13,570 --> 00:46:13,680 DAVID J. Humala: Jah. 1065 00:46:13,680 --> 00:46:16,910 See tähendab lihtsalt, ja kuna see Selgub, et autorid C 1066 00:46:16,910 --> 00:46:19,120 kasutatud ühe ampersand, mis sa võiksid mõelda 1067 00:46:19,120 --> 00:46:22,430 oleks ideaalne mõiste ja on juba ära kasutatud, 1068 00:46:22,430 --> 00:46:27,300 nii ampersand ampersand tegelikult lööb puhul me tegelikult tahame. 1069 00:46:27,300 --> 00:46:30,610 >> Nii saab nüüd sattuma kaks asja. 1070 00:46:30,610 --> 00:46:32,640 Lubage mul minna ja avada üks. 1071 00:46:32,640 --> 00:46:36,590 Midagi, mis on natuke murettekitav. 1072 00:46:36,590 --> 00:46:37,970 Ebatäpsuse dot c. 1073 00:46:37,970 --> 00:46:40,260 Lubage mul tutvustada kahte asja siin. 1074 00:46:40,260 --> 00:46:44,720 Üks, teate, et me saame teha matemaatika, sest just nii enne kui 1075 00:46:44,720 --> 00:46:47,797 tegime plus kaks numbrit, x ja y. 1076 00:46:47,797 --> 00:46:49,380 Mis on selle programmi ilmselt läheb? 1077 00:46:49,380 --> 00:46:52,140 Ma ei ole seda kommenteerinud veel ja ma olen kasutusele protsenti f, 1078 00:46:52,140 --> 00:46:55,720 kuid ma kiiresti ütlesin protsenti f tähendab ujukoma 1079 00:46:55,720 --> 00:46:56,970 väärtus, mis on reaalne number. 1080 00:46:56,970 --> 00:46:59,520 Midagi koos kohaga punkti, mis ei ole täisarv. 1081 00:46:59,520 --> 00:47:02,270 Mida sa arvad, et see programm on püüdes näidata mind ekraanil? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Jah? 1084 00:47:06,050 --> 00:47:07,550 Sihtrühm: tulemus üks üle 10. 1085 00:47:07,550 --> 00:47:07,780 DAVID J. Humala: Jah. 1086 00:47:07,780 --> 00:47:09,680 Mis põhjustas üks jagatud 10. 1087 00:47:09,680 --> 00:47:12,721 Õigus, sest kõik on teil ilmselt kasvanud, teades, et üks üle 10 1088 00:47:12,721 --> 00:47:14,502 on mis? 1089 00:47:14,502 --> 00:47:16,220 Jah, see on lihtsalt 1/10 ehk 0,1. 1090 00:47:16,220 --> 00:47:16,720 Õigus? 1091 00:47:16,720 --> 00:47:19,010 Vaatame, mida see tegelikult on. 1092 00:47:19,010 --> 00:47:21,010 Nii et lubage mul minna ja päästa see. 1093 00:47:21,010 --> 00:47:21,970 Lubage mul minna siin. 1094 00:47:21,970 --> 00:47:26,360 Tee ebatäpsus dot kaldkriipsuga ebatäpsus, ja teate ka, 1095 00:47:26,360 --> 00:47:29,380 Linux keskkonnas, siis ei ole pea tüüpi välja ebatäpsus ja võtta 1096 00:47:29,380 --> 00:47:30,010 terve päeva. 1097 00:47:30,010 --> 00:47:32,910 Üldiselt on see, kui vajutad Tab, siis lõpetan oma mõtte teile, 1098 00:47:32,910 --> 00:47:36,660 põhineb sõnad, mis on jooksvas kataloogis. 1099 00:47:36,660 --> 00:47:37,160 OKEI. 1100 00:47:37,160 --> 00:47:37,970 Nii sul oli õigus. 1101 00:47:37,970 --> 00:47:41,239 Üks jagatud 10 on tegelikult 0,1. 1102 00:47:41,239 --> 00:47:42,280 Aga ma olen natuke uudishimulik. 1103 00:47:42,280 --> 00:47:44,196 Ja selgub printf toetab mõned omadused 1104 00:47:44,196 --> 00:47:48,700 millega saab määrata rohkem kui vaikearvu koma. 1105 00:47:48,700 --> 00:47:52,140 Nii et kui ma tahan näha 10 kohaga punktid Ma suudan protsenti, 1106 00:47:52,140 --> 00:47:55,510 jaoks kohatäide sümbol, dot 10, anna mulle 10 kohaga punkti, 1107 00:47:55,510 --> 00:47:58,140 ja siis veel ujukoma väärtus, ja kui kõrvale, 1108 00:47:58,140 --> 00:48:01,550 Mis on selle kurakriips n ilmselt me ​​hoiame kasutab? 1109 00:48:01,550 --> 00:48:03,450 Selgub, et see on sümbol uus liin. 1110 00:48:03,450 --> 00:48:05,970 See on väga selge, kuidas öelda, et arvuti, 1111 00:48:05,970 --> 00:48:08,759 Kursori järgmine line pärast sa oled teinud. 1112 00:48:08,759 --> 00:48:10,800 Ja me näeme, mis juhtub kui me ei tee seda. 1113 00:48:10,800 --> 00:48:12,430 >> Lubage mul kompileerida teha ebatäpsus. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Nüüd dot kaldkriips ebatäpsus. 1116 00:48:18,356 --> 00:48:18,930 OKEI. 1117 00:48:18,930 --> 00:48:19,780 Ikka õige. 1118 00:48:19,780 --> 00:48:21,512 Üks jagatud 10. 1119 00:48:21,512 --> 00:48:23,220 Nüüd ma saan natuke kummaline küll. 1120 00:48:23,220 --> 00:48:27,599 Mis siis, kui ma vaatan 20 kohaga juhib tähelepanu, kompileerida, kordamisega, 1121 00:48:27,599 --> 00:48:29,390 ja kui kõrvale kiirus, võid kasutada ka 1122 00:48:29,390 --> 00:48:31,800 Sinu üles ja alla nooli kerida ajalugu, 1123 00:48:31,800 --> 00:48:35,476 nii et sa ei pea pidama tippida neid käske, sisesta. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Ma ei loe, et algkool. 1126 00:48:39,220 --> 00:48:43,260 Olgu, las ma vaata nagu 29 kohad välja. 1127 00:48:43,260 --> 00:48:44,300 Võib-olla see on lihtsalt juhus. 1128 00:48:44,300 --> 00:48:46,907 Võib-olla minu arvuti käitub imelikult. 1129 00:48:46,907 --> 00:48:47,990 See ei ole asi, eks? 1130 00:48:47,990 --> 00:48:50,300 See on midagi deterministlikult. 1131 00:48:50,300 --> 00:48:53,410 Nii et ebatäpsus. 1132 00:48:53,410 --> 00:48:54,890 OK, see on segane. 1133 00:48:54,890 --> 00:48:57,620 Mis toimub? 1134 00:48:57,620 --> 00:49:00,160 >> Nii ilmselt oma Õpetaja on valetamine 1135 00:49:00,160 --> 00:49:03,900 sulle kõik see aeg põhjustel, et me näeme varsti. 1136 00:49:03,900 --> 00:49:05,569 Aga olgem lõpeb üks teine ​​programm. 1137 00:49:05,569 --> 00:49:07,860 See on natuke programmide keegi kirjutas mõned aastad tagasi 1138 00:49:07,860 --> 00:49:08,990 ja see on tegelikult osa võistlus. 1139 00:49:08,990 --> 00:49:11,198 Keegi tegelikult kirjutab koodi niimoodi, ja kui te seda teete, 1140 00:49:11,198 --> 00:49:12,880 see on stiililiselt probleem. 1141 00:49:12,880 --> 00:49:14,660 Aga inimesed seda praalimine õigusi. 1142 00:49:14,660 --> 00:49:17,260 Selleks, et kirjutada kõige segane otsin programmi, mis 1143 00:49:17,260 --> 00:49:19,110 siiski ei midagi huvitavat. 1144 00:49:19,110 --> 00:49:23,930 Ja teadmiseks, ma arvasin, et me tahaks lahkuda täna, enne Colton mängib meil siin, 1145 00:49:23,930 --> 00:49:27,840 on programmi käivitada, mis isegi lihtsalt kasutades 1146 00:49:27,840 --> 00:49:31,450 C käesoleva teksti põhjal keskkond, annab meile selle. 1147 00:49:31,450 --> 00:49:32,264 Kurat võtaks. 1148 00:49:32,264 --> 00:49:34,930 >> [NAER] 1149 00:49:34,930 --> 00:49:36,800 >> Ootel. 1150 00:49:36,800 --> 00:49:39,340 [Kuuldamatu] c kriips l m. 1151 00:49:39,340 --> 00:49:42,885 Sa lähed, et näha maagilist loits, et me näeme varsti. 1152 00:49:42,885 --> 00:49:45,780 [Kuuldamatu] Olgu. 1153 00:49:45,780 --> 00:49:51,592 Ja nüüd saab isegi asju niimoodi. 1154 00:49:51,592 --> 00:49:52,340 Nii see on. 1155 00:49:52,340 --> 00:49:56,410 Sest CS50 me, näed sa reedel. 1156 00:49:56,410 --> 00:49:58,910 >> [Muusika mängib] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [APPLAUSE] 1159 00:52:41,440 --> 00:52:42,812