1 00:00:00,000 --> 00:00:12,410 >> [Muusika mängib] 2 00:00:12,410 --> 00:00:12,830 >> DAVID Malan: Olgu. 3 00:00:12,830 --> 00:00:13,370 Tere tulemast tagasi. 4 00:00:13,370 --> 00:00:16,510 See on CS50, ja see on Esimene nädal jätkus. 5 00:00:16,510 --> 00:00:20,050 Nii et üks põhjus, miks me olen möödaminnes umbes tehnoloogiad nagu 6 00:00:20,050 --> 00:00:24,120 Google Glass on see, et nad tulevad koos midagi, mida nimetatakse API, 7 00:00:24,120 --> 00:00:25,980 Application Programming Interface. 8 00:00:25,980 --> 00:00:28,830 Ja mida see tähendab, on see, et õige faili ja õigus 9 00:00:28,830 --> 00:00:32,850 dokumendid, mida saab tegelikult kirjutada tarkvara isegi selline seade. 10 00:00:32,850 --> 00:00:36,200 >> Ja mis meil meeles suunas semestrit lõpuks on, kui projekti 11 00:00:36,200 --> 00:00:39,310 seotud, ütlevad, Google Klaas võib kaebus, siis me vaatame, mida me saame teha 12 00:00:39,310 --> 00:00:42,220 poolest kinnihakkamine sind mõne loaner riistvara samuti 13 00:00:42,220 --> 00:00:46,500 avalikult kättesaadav API, et saaksite tegelikult alustada luua tarkvara 14 00:00:46,500 --> 00:00:48,630 mis töötab sama Google Klaas. 15 00:00:48,630 --> 00:00:51,710 >> Teine seade, et oleme mänginud koos hilja, et me arvasime, võib olla 16 00:00:51,710 --> 00:00:53,910 lõbus semestri lõpus on see väike asi siin. 17 00:00:53,910 --> 00:00:56,860 Seda nimetatakse hüpe Motion, ja see, mida sa oled kohta, et näha, on tehniliselt 18 00:00:56,860 --> 00:01:00,280 reklaam seade, kuid see ei räägi, mida see konkreetne 19 00:01:00,280 --> 00:01:01,240 Seade on võimeline. 20 00:01:01,240 --> 00:01:05,550 Ja see ka, kaasas API kaudu mis saab kirjutada tarkvara 21 00:01:05,550 --> 00:01:10,545 kontrollida oma arvuti nii, päris meeldib selle üheminutilise film siin. 22 00:01:10,545 --> 00:01:12,070 >> [VIDEO PLAYBACK] 23 00:01:12,070 --> 00:02:08,002 24 00:02:08,002 --> 00:02:08,590 >> [END VIDEO PLAYBACK] 25 00:02:08,590 --> 00:02:11,190 >> Nii kohe, see seade juhtub rakendatakse vähe USB 26 00:02:11,190 --> 00:02:14,290 connector et saad ühendada oma arvuti, kuid ma ei oleks üllatunud, 27 00:02:14,290 --> 00:02:17,930 kui enne kaua meil selliseid tehnoloogiate järgmise partii arvutid 28 00:02:17,930 --> 00:02:20,510 ja Mac nii, et saate tõepoolest suhelda seda 29 00:02:20,510 --> 00:02:21,650 viisil, nagu seda. 30 00:02:21,650 --> 00:02:24,250 Tegelikult ma arvasin, et ma teeksin, liiga, on Ma tõmbasin natuke meeleavaldus 31 00:02:24,250 --> 00:02:25,860 programm, mis on selle tarkvara. 32 00:02:25,860 --> 00:02:28,700 Nii et ma olen panna väike sensor ees oma sülearvuti. 33 00:02:28,700 --> 00:02:32,420 >> Ja nagu näete, see juba mõistab et mu käsi on seal 34 00:02:32,420 --> 00:02:33,400 reguleerimiseks. 35 00:02:33,400 --> 00:02:37,900 Ja kõik see taotlus ei ole, libedasti vähe asju niimoodi. 36 00:02:37,900 --> 00:02:41,080 Aga näed, et tõepoolest, Mul on viis sõrme seal. 37 00:02:41,080 --> 00:02:44,270 Kui me ei saa seda teha, kõik 10 võite ette kujutada, puhas klaver 38 00:02:44,270 --> 00:02:45,390 taotlus vms. 39 00:02:45,390 --> 00:02:47,820 Nii et kui soovite tulla pärast klassi täna ja mängida, et kui 40 00:02:47,820 --> 00:02:49,720 hästi, olete teretulnud. 41 00:02:49,720 --> 00:02:52,930 Seega rohkem, et poole semestri lõpus. 42 00:02:52,930 --> 00:02:54,420 >> Nii paar haldus teadaandeid. 43 00:02:54,420 --> 00:02:58,690 Üks tee osa selle reede keskpäeval cs60.net/section. 44 00:02:58,690 --> 00:03:01,260 See URL on kursuse kodulehe samuti. 45 00:03:01,260 --> 00:03:04,010 Vahepeal aga supersections teeb debüüdi sel pühapäeval. 46 00:03:04,010 --> 00:03:07,800 Supersections on ühekordne asi, sest see viib meid aega, et töötada 47 00:03:07,800 --> 00:03:09,470 välja kes, kus osa ja kus. 48 00:03:09,470 --> 00:03:12,280 >> Niisiis sel pühapäeval, siis tuleb üks osa neile vähem mugav, 49 00:03:12,280 --> 00:03:14,040 üks osa nende mugavamaks. 50 00:03:14,040 --> 00:03:16,110 Ja neile, kuskil vahel on hea meel, et minna 51 00:03:16,110 --> 00:03:17,850 üks või mõlemad või mitte kumbagi. 52 00:03:17,850 --> 00:03:19,150 Mõlemad on filmitud. 53 00:03:19,150 --> 00:03:22,740 Nad olla suurem auditoorium kui , tavaliselt oleks sisse 54 00:03:22,740 --> 00:03:26,110 Aga eesmärk siin on varustada teid mõned mugavust probleem määrata ühe, 55 00:03:26,110 --> 00:03:29,910 C-ga, koos CS50 aparaat, see nädalavahetusel, isegi enne sa teada oma 56 00:03:29,910 --> 00:03:31,050 ametlik osa loovutamisega. 57 00:03:31,050 --> 00:03:34,700 Nii et sa rahuldada oma TF ja oma väiksemate rühma sectionmates umbes 58 00:03:34,700 --> 00:03:36,350 nädala jooksul. 59 00:03:36,350 --> 00:03:38,200 >> Vastuvõtuajad vahepeal on kestnud. 60 00:03:38,200 --> 00:03:41,020 Kas ära neid täna või homme õhtul, kui soovite. 61 00:03:41,020 --> 00:03:43,460 Ülesanded 0 põhjuseks reedel. 62 00:03:43,460 --> 00:03:46,680 See on päev hiljem, kui regulaarselt graafikuga neljapäeval. 63 00:03:46,680 --> 00:03:50,410 Aga probleem set 1, näete et see sisaldab mõningaid soojenduseks 64 00:03:50,410 --> 00:03:52,770 harjutusi, mis sa ise saab laiendada oma 65 00:03:52,770 --> 00:03:54,660 Neljapäev tähtaeg reedeni. 66 00:03:54,660 --> 00:03:58,410 Ülesanded 1, vahepeal teeb debüüdi rajal veebilehte tuleval 67 00:03:58,410 --> 00:04:02,000 Reede, kui soovite käppyrässä seda ma tegin ammu hiljaks 68 00:04:02,000 --> 00:04:04,370 Reede õhtul oma toas. 69 00:04:04,370 --> 00:04:07,660 >> Nii cs50.net/appliance on koht, kus saad CS50 seade 70 00:04:07,660 --> 00:04:09,040 et me hakkasime kasutama esmaspäeval. 71 00:04:09,040 --> 00:04:10,140 Me kasutame seda natuke rohkem täna. 72 00:04:10,140 --> 00:04:14,040 Aga kindel, et probleem on seatud 1 spetsifikatsioon sõelub 73 00:04:14,040 --> 00:04:16,490 täpselt, mida te peate saada see üles ja töötab. 74 00:04:16,490 --> 00:04:22,120 Nii et ärge muretsege seda, et enne Erksa 1 kui te ei soovi. 75 00:04:22,120 --> 00:04:22,660 >> Hea küll. 76 00:04:22,660 --> 00:04:27,180 Nii me vaatasime esmaspäeval lähtekoodi, kuid seoses uue 77 00:04:27,180 --> 00:04:30,895 programmeerimiskeel, nimelt C ja C, erinevalt Scratch, ei ole graafiline. 78 00:04:30,895 --> 00:04:32,270 See ei ole puzzle tükki. 79 00:04:32,270 --> 00:04:34,450 See on rohkem inglise keelt nagu süntaks. 80 00:04:34,450 --> 00:04:37,140 Ja seal on mõned sammud kaasatud aastal tegelikult kirjalikult ja töötab 81 00:04:37,140 --> 00:04:41,650 programmi C, sest peale allika kood niimoodi, sa pead midagi 82 00:04:41,650 --> 00:04:42,890 kutsutud tõlkija. 83 00:04:42,890 --> 00:04:46,682 Ja üldarusaadavat mõttes, mida ei kompilaator teha meie jaoks? 84 00:04:46,682 --> 00:04:47,650 Jah. 85 00:04:47,650 --> 00:04:51,040 >> Üliõpilane: See muundab kood et kirjutad 0. ja 1s. 86 00:04:51,040 --> 00:04:51,151 >> DAVID Malan: Hea. 87 00:04:51,151 --> 00:04:53,580 Nii et see muudab koodi me kirjutame 0. ja 1s. 88 00:04:53,580 --> 00:04:57,730 See muudab nn lähtekoodi objekti kood, millest viimane näeb 89 00:04:57,730 --> 00:04:59,140 natuke midagi sellist. 90 00:04:59,140 --> 00:05:02,860 Ja see on teie CPU, aju sees arvuti, et kuna 91 00:05:02,860 --> 00:05:06,280 inimesed, kes on loonud need arvutid, tea, mida need järjestused 92 00:05:06,280 --> 00:05:07,460 on 0. ja 1s keskmine. 93 00:05:07,460 --> 00:05:08,640 >> Võib-olla tähendab see printida. 94 00:05:08,640 --> 00:05:10,265 Võib-olla tähendab see lisaks. 95 00:05:10,265 --> 00:05:11,610 Võib-olla tähendab see lahutamine. 96 00:05:11,610 --> 00:05:13,350 Võib-olla tähendab see kuvada pilti. 97 00:05:13,350 --> 00:05:16,870 On eelnevalt mustrid bitti et maailm on otsustanud tähenda 98 00:05:16,870 --> 00:05:17,700 teatud asju. 99 00:05:17,700 --> 00:05:20,760 Aga enamasti on see muidugi me töö kõrgemal tasandil, ja 100 00:05:20,760 --> 00:05:24,180 me enesestmõistetavaks, et on olemas asjad nagu koostajad, mis võib 101 00:05:24,180 --> 00:05:27,670 muuta meie lähtekoodi funktsioon , kuidas me kavatseme. 102 00:05:27,670 --> 00:05:31,660 >> Nii programmi kandsime esimese eelmisel nädalal ja siis hakkas sadama, nii et 103 00:05:31,660 --> 00:05:33,920 kõnelda, et C möödunud Esmaspäev, oli see. 104 00:05:33,920 --> 00:05:35,700 Kui roheline lipp klõpsatud, tere öelda. 105 00:05:35,700 --> 00:05:37,430 See oli muidugi kirjutatud nullist. 106 00:05:37,430 --> 00:05:40,710 Ja ma väita, et samaväärne programmi C vaatasin natuke 107 00:05:40,710 --> 00:05:41,520 midagi sellist. 108 00:05:41,520 --> 00:05:45,050 >> Niisiis, mida ma arvasin, et me tahaks teha esimesel on olgem tease peale mida ootab, esimesel 109 00:05:45,050 --> 00:05:48,790 pilgul küll, sest üsna keerulisse süntaks, kuid hakkate märkama 110 00:05:48,790 --> 00:05:50,160 mustrid üsna kiiresti. 111 00:05:50,160 --> 00:05:53,770 Mida me teha ka täna on pakkuda Teile vaimne mudel mõnda 112 00:05:53,770 --> 00:05:57,280 kanooniline mõned standard konstrueerib programmeerimisel. 113 00:05:57,280 --> 00:06:00,420 Ja siis me tegelikult saame oma käed määrdunud mõned näited ka. 114 00:06:00,420 --> 00:06:04,140 >> Nii neile, mugavam, aru, et see nädal ja siis järgmine 115 00:06:04,140 --> 00:06:05,940 nädal võib väga hästi olla natuke vaadata. 116 00:06:05,940 --> 00:06:08,810 Aga eriti kui häkker väljaanne Probleemse set 1 kustub 117 00:06:08,810 --> 00:06:12,330 Muidugi kodulehel reedel, ma arvan, leiad, et isegi kui te täidate 118 00:06:12,330 --> 00:06:15,390 mõned toorikud üle järgmisel nädalal või kaks, saate alustada saada üha rohkem 119 00:06:15,390 --> 00:06:18,410 vaidlustada ning kogevad uued ja uuemad asjad. 120 00:06:18,410 --> 00:06:21,310 >> Teeme õrritama selle programmi peale paar rida korraga. 121 00:06:21,310 --> 00:06:24,140 Tipus, meil on see, mida on tehniliselt nimetatakse 122 00:06:24,140 --> 00:06:25,950 eeltöötluse direktiiv. 123 00:06:25,950 --> 00:06:30,510 See on lihtsalt rida koodi, mis ütleb, lisada faili sisu, 124 00:06:30,510 --> 00:06:35,080 nimetatakse standard I / N, standard input - või, vabandust, standard I / O, standard 125 00:06:35,080 --> 00:06:38,670 sisend / väljund,. h sees minu enda programmi. 126 00:06:38,670 --> 00:06:41,670 >> Nii teisisõnu, kui ma kirjutasin selle programmi lihtne tekstiredaktor nagu 127 00:06:41,670 --> 00:06:45,260 gedit, lihtsam samaväärne midagi nagu Microsoft Word, mis 128 00:06:45,260 --> 00:06:50,970 juhendamise # include stdio.h, on lihtsalt ütlen kompilaator, ostke 129 00:06:50,970 --> 00:06:56,080 sisu, et muud faili, stdio.h, ja kleebi need siin. 130 00:06:56,080 --> 00:06:57,090 >> Nüüd, miks ma hoolima? 131 00:06:57,090 --> 00:07:01,850 Mida me nõuda on sees selle faili nimetatakse stdio.h, mis on salvestatud 132 00:07:01,850 --> 00:07:05,490 kuskil minu kõvakettale või selles juhul kusagil CS50 seade? 133 00:07:05,490 --> 00:07:06,635 Keegi teine ​​pane see minu jaoks olemas. 134 00:07:06,635 --> 00:07:09,910 Aga mis see on? 135 00:07:09,910 --> 00:07:13,020 >> Jah, nii see on deklaratsiooni funktsioon nimega printf. 136 00:07:13,020 --> 00:07:17,400 Nii printf meenutab funktsiooni kuvab sõnade ja märkide ja 137 00:07:17,400 --> 00:07:20,160 numbrid ekraanil minu pakkumine. 138 00:07:20,160 --> 00:07:21,220 Aga ma ei kirjuta seda. 139 00:07:21,220 --> 00:07:22,230 CS50 ei kirjutanud seda. 140 00:07:22,230 --> 00:07:26,990 Keegi aastat tagasi kirjutas ta, ja nad sisuliselt andis meile retsept see 141 00:07:26,990 --> 00:07:29,110 aastal fail nimega stdio.h. 142 00:07:29,110 --> 00:07:33,240 Nii et esimene rida lihtsalt annab mulle juurde funktsioonidele, mis keegi teine 143 00:07:33,240 --> 00:07:36,500 kirjutas aastat tagasi, nende hulgas mis on printf. 144 00:07:36,500 --> 00:07:39,450 >> Nüüd järgmine rida ma siputan kätt, vähemalt kuni järgmisel nädalal. 145 00:07:39,450 --> 00:07:43,620 Aga nüüd tean, et int main (void) on sisuliselt samaväärsed käesoleva 146 00:07:43,620 --> 00:07:46,310 kollane puzzle tükk kui roheline lipp klõpsatud. 147 00:07:46,310 --> 00:07:49,510 Maailmas, aastaid tagasi, otsustasin, et kui sa oled kirjutamise programmi 148 00:07:49,510 --> 00:07:53,150 keeles nimetatakse C, kui hakkate oma programmi rida 149 00:07:53,150 --> 00:07:54,410 , mis näeb välja selline. 150 00:07:54,410 --> 00:07:57,650 Vaid umbes nädala pärast, see teeb mõttes mida int on, mida void on. 151 00:07:57,650 --> 00:08:00,840 Aga nüüd, lihtsalt arvan, et see kui see kollane puzzle tükk. 152 00:08:00,840 --> 00:08:04,550 >> Nüüd järgmine, meil on lokkis traksidega järgneb teise lähedal lokkis traksidega, 153 00:08:04,550 --> 00:08:05,240 nii rääkida. 154 00:08:05,240 --> 00:08:07,430 Ja me näeme neid kõikjal programmide C, samuti 155 00:08:07,430 --> 00:08:08,930 JavaScript ja PHP. 156 00:08:08,930 --> 00:08:11,345 Ja need lihtsalt kapseldada seotud rida koodi. 157 00:08:11,345 --> 00:08:14,600 Avatud lokkis traksidega põhiliselt ütleb, siin on natuke koodi. 158 00:08:14,600 --> 00:08:17,590 Ja suletud lokkis traksidega, mis on nurga teises suunas, just 159 00:08:17,590 --> 00:08:19,920 vahendid, mis on selle asjakohane kood. 160 00:08:19,920 --> 00:08:22,970 >> Nii mahlane line see esimene Programm on viimane, printf, 161 00:08:22,970 --> 00:08:25,080 viisi kraami, tere. 162 00:08:25,080 --> 00:08:30,670 Ja ma helistasin asi vahel tsitaadid mida viimasel ajal? 163 00:08:30,670 --> 00:08:31,285 Nii et see on string. 164 00:08:31,285 --> 00:08:35,309 Ja string on lihtsalt techie termin jada 165 00:08:35,309 --> 00:08:37,169 märki, sõna, fraas. 166 00:08:37,169 --> 00:08:39,380 Isegi ühe kirja saanud kahekordselt tsiteeritud. 167 00:08:39,380 --> 00:08:41,840 Aga see on jada nullist või enam märki. 168 00:08:41,840 --> 00:08:43,650 >> Längkriipsu-n, kuigi tundub natuke imelik. 169 00:08:43,650 --> 00:08:46,290 Aga see lihtsalt tähendas midagi lihtne arvuti. 170 00:08:46,290 --> 00:08:48,060 Mis Kenoviiva-n? 171 00:08:48,060 --> 00:08:48,570 Uus liin. 172 00:08:48,570 --> 00:08:52,490 Nii see on lihtsalt eri jada märki, et maailm on otsustanud 173 00:08:52,490 --> 00:08:56,880 vahenditega panna line break seal, kuna kompilaator tegelikult saada 174 00:08:56,880 --> 00:09:02,280 segaduses, tavaliselt, kui te, väga arusaadavalt, kuid valesti, lihtsalt 175 00:09:02,280 --> 00:09:04,570 alustada Enterin panna Uute liinide oma koodi. 176 00:09:04,570 --> 00:09:07,150 Sa pead olema natuke rohkem selgesõnaline koos Kenoviiva-n. 177 00:09:07,150 --> 00:09:10,540 >> Ja me näeme seal on mõni muu selline patterns erimärke. 178 00:09:10,540 --> 00:09:14,340 Näiteks, kui sa tahad, et lasta oma meelt hulkuma nurgalöögiks juhul 179 00:09:14,340 --> 00:09:18,080 oletame, et ma tahtsin printida jutumärke ekraanile 180 00:09:18,080 --> 00:09:21,840 Mingil põhjusel, et tundub olla pisut problemaatiline, kas pole? 181 00:09:21,840 --> 00:09:24,990 Sest kui ma panin jutumärke sisse keskel "Tere, maailm," mis tahes 182 00:09:24,990 --> 00:09:30,120 põhjus, miks, mis tunduvad Probleemseks? 183 00:09:30,120 --> 00:09:32,180 See murrab string. 184 00:09:32,180 --> 00:09:34,700 >> Koostaja on lihtsalt programmi. 185 00:09:34,700 --> 00:09:37,210 Programmi nagu kompilaator lihtsalt läheb lugeda oma koodi ülevalt alla, 186 00:09:37,210 --> 00:09:37,990 vasakult paremale. 187 00:09:37,990 --> 00:09:41,850 Ja kui näeb kolme jutumärkide asemel kahe, ta ei kavatse teada 188 00:09:41,850 --> 00:09:45,210 kui sa mõtled, et asi vasakule peaks olema string, või asi 189 00:09:45,210 --> 00:09:46,570 õige või kogu asi. 190 00:09:46,570 --> 00:09:50,560 On ebaselge, ja mis siis tüüpiline koostaja teeks lihtsalt närvi, 191 00:09:50,560 --> 00:09:53,710 ja annab sulle mõned veateate, ja sind probleemiga tegelema. 192 00:09:53,710 --> 00:09:58,120 >> Seega, arvestades, et Kenoviiva-n-uus line, mis oleks oma instinkte nüüd 193 00:09:58,120 --> 00:10:02,610 hakkavad olema, kui sa tahad, et hõlmata midagi anomaalset nagu topelt 194 00:10:02,610 --> 00:10:06,210 Tsiteerin sees see muidu tsiteeritud string? 195 00:10:06,210 --> 00:10:07,640 Längkriipsu-jutumärke. 196 00:10:07,640 --> 00:10:09,630 Ja nii me näeme, see mingi muster ka. 197 00:10:09,630 --> 00:10:12,490 >> Kui sa tahad midagi veidi imelik, siis leiad, et 198 00:10:12,490 --> 00:10:15,060 lahendused järgivad sageli muster, ja Kenoviiva 199 00:10:15,060 --> 00:10:17,150 tähistab sümboliga. 200 00:10:17,150 --> 00:10:20,320 Ja see tähendab, midagi erilist et me peame esindama 201 00:10:20,320 --> 00:10:21,060 teistmoodi. 202 00:10:21,060 --> 00:10:23,830 Nagu kuidas sa esindama längkriipsu, hästi, me 203 00:10:23,830 --> 00:10:24,550 tagasi tulla seda. 204 00:10:24,550 --> 00:10:26,930 Aga vastus, liiga, on tegelikult natuke ilmne. 205 00:10:26,930 --> 00:10:31,080 >> Niisiis olgem nüüd mõningaid teisi programmeerimine konstrueerib 206 00:10:31,080 --> 00:10:31,915 et nägid Scratch. 207 00:10:31,915 --> 00:10:34,790 Te olete ilmselt enesestmõistetavaks juba siis, kui olete juba sukeldus 208 00:10:34,790 --> 00:10:36,060 probleem määrata 0. 209 00:10:36,060 --> 00:10:40,950 Kuid olgem nüüd tutvustada süntaks C nende muidu üsna intuitiivne 210 00:10:40,950 --> 00:10:42,300 ideid, vähemalt mõned neist. 211 00:10:42,300 --> 00:10:45,570 >> Nii et see mõiste tingimus või filiaali, arvestades, et varem me 212 00:10:45,570 --> 00:10:49,330 esindab see kood, mis nägi Asjalik vasakul Scratch - 213 00:10:49,330 --> 00:10:52,200 kui x on väiksem kui y, siis nii öelda - 214 00:10:52,200 --> 00:10:56,760 asemel nüüd C - andke luisk sisse lihtsamal juhul - 215 00:10:56,760 --> 00:11:01,235 me lihtsalt ütlen, kui avatud sulgudes midagi on tõsi - 216 00:11:01,235 --> 00:11:04,190 Loogiline avaldis lähe kus ma olen öelnud tingimus - 217 00:11:04,190 --> 00:11:08,170 Lõpusulg, siis seda, mis on sees need looksulg. 218 00:11:08,170 --> 00:11:11,020 >> Nii ka siin looksulg on selline nagu Scratch on 219 00:11:11,020 --> 00:11:12,460 U-kujuline puzzle tükki. 220 00:11:12,460 --> 00:11:14,890 Kas see, mis seal sees on need looksulg. 221 00:11:14,890 --> 00:11:16,790 Sel juhul kärpida kärpida. 222 00:11:16,790 --> 00:11:19,720 Ja teate see on tulevikku kärpida, ei längkriipsu. 223 00:11:19,720 --> 00:11:21,440 Kaldkriips, kaldkriips, neile, kes pole programmeeritud 224 00:11:21,440 --> 00:11:23,370 enne, lihtsalt tähendab - 225 00:11:23,370 --> 00:11:24,190 see on lihtsalt kommentaar. 226 00:11:24,190 --> 00:11:26,630 Kommentaar ei ole kooskõlas koodi, per se. 227 00:11:26,630 --> 00:11:30,200 See on rida Inglise, et teie, inimese, olen kirjutanud ise 228 00:11:30,200 --> 00:11:33,540 ehk meelde, et sa teeksid midagi, mis selgitada ise, et selgitada 229 00:11:33,540 --> 00:11:35,260 keegi, milline on sinu kood teeb. 230 00:11:35,260 --> 00:11:37,050 See on lihtsalt kirjeldav kommentaari. 231 00:11:37,050 --> 00:11:40,880 >> Nüüd, muidugi, meil on kahesuunaline teelahkmele ainult seda teed, 232 00:11:40,880 --> 00:11:43,930 kolmeastmelise teelahkmele tehes seda, ja kui te jätkate seda 233 00:11:43,930 --> 00:11:47,570 muster, sul võib olla neli-viis, viis-viis, kuus-viis kahvlid maantee kui 234 00:11:47,570 --> 00:11:50,150 pead hakkama tõepoolest et paljud tingimused. 235 00:11:50,150 --> 00:11:52,010 Ja siis märkate parallelism siin - 236 00:11:52,010 --> 00:11:55,070 if (tingimus), else if (tingimus), ja ainus, mis on veidi 237 00:11:55,070 --> 00:11:58,010 imelik on viimane, mis on just see teine. 238 00:11:58,010 --> 00:12:01,170 Aga jälle, see on sama, kontseptuaalselt, et see, mida me oleme teinud 239 00:12:01,170 --> 00:12:04,690 juba, kuigi süntaks võtab natuke harjumist. 240 00:12:04,690 --> 00:12:07,730 >> Nüüd, selle näiteks on mõned teised kummaline süntaks. 241 00:12:07,730 --> 00:12:11,220 Näeme printf taas avatud sulgudes ja Lõpusulg. 242 00:12:11,220 --> 00:12:13,190 Ja sees on jutumärkide. 243 00:12:13,190 --> 00:12:17,060 Sulgudes kontekstis printf minge vasakul 244 00:12:17,060 --> 00:12:18,160 ja õigus, mida? 245 00:12:18,160 --> 00:12:22,190 Mida me kirjeldada, et noteeritud stringi üldisemalt? 246 00:12:22,190 --> 00:12:23,320 >> Nii et see on argument. 247 00:12:23,320 --> 00:12:26,620 Iga kord, kui on funktsioon, nagu printf ja seejärel avatud paren ja 248 00:12:26,620 --> 00:12:30,330 Sulge paren ja midagi sees see, kas see on string, või 249 00:12:30,330 --> 00:12:34,420 täisarv, või midagi muud, asi vahel need sulud nimetatakse 250 00:12:34,420 --> 00:12:35,110 argument. 251 00:12:35,110 --> 00:12:37,910 >> Ja argument vaid mõjutab funktsiooni käitumist. 252 00:12:37,910 --> 00:12:39,990 Sel juhul on see päris selge, kuidas. 253 00:12:39,990 --> 00:12:44,480 x 00:12:47,720 Ja printf läheb printida just nii. 255 00:12:47,720 --> 00:12:51,590 Sest kindlasti on isik aastat tagasi kes ellu printf polnud aimugi, 256 00:12:51,590 --> 00:12:55,000 mida me inimese õigusjärglased kavatse kasutada printf eest. 257 00:12:55,000 --> 00:12:58,610 Nii et miks argumendid olemas, käitumise mõjutamiseks pärast funktsiooni 258 00:12:58,610 --> 00:12:59,450 on kirjutatud. 259 00:12:59,450 --> 00:13:00,780 >> Nüüd Boolean väljend. 260 00:13:00,780 --> 00:13:02,470 Me oleme näinud neid enne Scratch. 261 00:13:02,470 --> 00:13:06,680 Selgub, C saab ka "või" koos, nii rääkida. 262 00:13:06,680 --> 00:13:10,930 Triipudel tähendab, et see plokk koodi, see selleks, eks 263 00:13:10,930 --> 00:13:15,350 täitmisest, kui esimene tingimus on tõene või teine ​​tingimus on tõene. 264 00:13:15,350 --> 00:13:17,710 Ja kuigi te ei oleks teinud see Scratch, siis võib tõepoolest 265 00:13:17,710 --> 00:13:20,580 seda teha Scratch, ja te saate ka ennast väljendada erinevalt - 266 00:13:20,580 --> 00:13:25,300 Kui esimene tingimus ja teine tingimus on tõene, siis seda, mis on 267 00:13:25,300 --> 00:13:27,160 sees looksulg. 268 00:13:27,160 --> 00:13:31,210 >> Ja just nagu kõrvale, põhjusel et see on topelt-märk ja topelt 269 00:13:31,210 --> 00:13:34,610 püstkriips, me näeme lõpuks et ühe püstkriips ja 270 00:13:34,610 --> 00:13:38,710 ühe ampersand tegelikult on erinevad tähendus C. Nii et nüüd, 271 00:13:38,710 --> 00:13:41,840 et dubleerimise sümbolid on tahtlik. 272 00:13:41,840 --> 00:13:45,070 >> Niisiis olgem tutvustada lühidalt see teine ​​natuke süntaks. 273 00:13:45,070 --> 00:13:48,940 See ei ole päris üle kanda Scratch, kuid ma väita, et ma ei saa 274 00:13:48,940 --> 00:13:55,190 rakendamiseks mõiste kui muidu, kui muud, kui muud, kui teine ​​avaldus kasutades 275 00:13:55,190 --> 00:13:56,760 midagi, mida nimetatakse lüliti avaldusega. 276 00:13:56,760 --> 00:14:00,820 Ja ainus põhjus, miks see tõesti olemas on lihtsalt teile, programmeerija, 277 00:14:00,820 --> 00:14:05,470 veidi teistmoodi lahendada mõned probleem, kuigi loogiliselt 278 00:14:05,470 --> 00:14:07,340 ei anna teile uusi võimeid. 279 00:14:07,340 --> 00:14:08,530 >> Autor et ma mõtlen seda. 280 00:14:08,530 --> 00:14:13,330 Kui sa ütled lüliti, ja siis tühiku ja siis sulgudes, sees 281 00:14:13,330 --> 00:14:14,570 millest läheb väljendus - 282 00:14:14,570 --> 00:14:18,010 ja see võiks olla veidi vähem ilmne alguses, kuid see ei ole argument, 283 00:14:18,010 --> 00:14:20,680 tehniliselt, sest lüliti ei ole funktsioon. 284 00:14:20,680 --> 00:14:24,230 Nii et nüüd, lihtsalt eeldada, et me kasutame Sulgudes erinevates kohtades 285 00:14:24,230 --> 00:14:25,250 erinevatel põhjustel. 286 00:14:25,250 --> 00:14:29,310 >> Nii lüliti väljend tähendab, et ma ei saa panna muutuja sees neist 287 00:14:29,310 --> 00:14:31,350 sulgudes, kui ta ütleb väljendus. 288 00:14:31,350 --> 00:14:33,090 Ja siis, kui see muutuja - 289 00:14:33,090 --> 00:14:35,400 arvan, et see nimi on x, ja see on lihtsalt täisarv - 290 00:14:35,400 --> 00:14:38,900 Võin siis loetleda oma slide siin midagi sellist. 291 00:14:38,900 --> 00:14:41,690 Kui x on minu muutuja, ja ma tahad midagi teha, kui x 292 00:14:41,690 --> 00:14:43,480 võrdub 1, ma ei tee seda. 293 00:14:43,480 --> 00:14:46,660 >> Kui ma vaid tahavad teha midagi kui x on 2, ma ei saa seda teha. 294 00:14:46,660 --> 00:14:50,390 Sest kui ma tahan teha midagi täielikult, saan default juhul 295 00:14:50,390 --> 00:14:52,750 sel juhul ma seda teiste asi. 296 00:14:52,750 --> 00:14:58,730 Nii et selles mõttes, et see on võrdne kui x võrdub võrdub 1, teine ​​kui mujal, 297 00:14:58,730 --> 00:15:01,150 kuid mainin seda nüüd lihtsalt sellepärast, me näeme seda uuesti. 298 00:15:01,150 --> 00:15:03,720 Aga nüüd, lihtsalt tean, et see on olemas. 299 00:15:03,720 --> 00:15:04,220 >> Hea küll. 300 00:15:04,220 --> 00:15:07,660 Nii need viimased paar on natuke rohkem keeruline esmapilgul, kuid nad ei 301 00:15:07,660 --> 00:15:09,385 midagi üsna lihtne. 302 00:15:09,385 --> 00:15:14,410 Jaoks loop C on patakas kood, mis lihtsalt teeb midagi uuesti ja 303 00:15:14,410 --> 00:15:15,330 uuesti ja uuesti. 304 00:15:15,330 --> 00:15:17,590 Ja ainus tüütu asi on see, see on, et see on natuke segasena 305 00:15:17,590 --> 00:15:21,380 väljendada ennast selles tsükliline muster, kuid maailma standardiseeritud 306 00:15:21,380 --> 00:15:22,450 järgmisel viisil. 307 00:15:22,450 --> 00:15:25,760 >> Kui kasutate jaoks silmus, sul sulgudes uuesti. 308 00:15:25,760 --> 00:15:27,570 Ja teate kaks semikoolonit seal. 309 00:15:27,570 --> 00:15:34,380 Need kaks semikoolonit eraldi kolm erinevad väljendid sees 310 00:15:34,380 --> 00:15:35,020 sulgudes. 311 00:15:35,020 --> 00:15:37,170 Üks neist on nn initsialisatsioonistringi. 312 00:15:37,170 --> 00:15:38,830 Üks neist on nn seisukorras. 313 00:15:38,830 --> 00:15:40,210 Ja üks on nn uuendusi. 314 00:15:40,210 --> 00:15:43,240 >> Vaadeldi abstraktselt, see on täiesti mitte-ilmne, et vaatame 315 00:15:43,240 --> 00:15:44,630 juures konkreetne näide. 316 00:15:44,630 --> 00:15:46,720 Scratch pidime korrata blokeerida. 317 00:15:46,720 --> 00:15:50,670 Ja see plokk ütles korrata 10 korda, ütleme "Tere, maailm." Lubage mul nõuda 318 00:15:50,670 --> 00:15:53,810 nüüd, ja me tuleme selle juurde tagasi, ning Seegi saab rohkem tuttavad 319 00:15:53,810 --> 00:15:57,345 te enne pikk, samaväärne C kood võib öelda, et see - 320 00:15:57,345 --> 00:16:02,320 kohta avalduse ja ruumi, paari sulgudes märkate semikooloniga sisse 321 00:16:02,320 --> 00:16:05,730 seal, mis eraldavad kolme erinevat asjad, käivitamine, 322 00:16:05,730 --> 00:16:07,320 seisukorras ja uuendatud. 323 00:16:07,320 --> 00:16:08,840 >> Ja võtke guess what esimene teeb. 324 00:16:08,840 --> 00:16:10,690 Int i = 0. 325 00:16:10,690 --> 00:16:15,120 Töötlemata üldarusaadavat mõttes, mis on et teed meie jaoks ilmselt? 326 00:16:15,120 --> 00:16:15,590 Nii et jah. 327 00:16:15,590 --> 00:16:19,630 See kuulutab muutuja nimega i, ja see annab talle, mida väärtus? 328 00:16:19,630 --> 00:16:20,220 0. 329 00:16:20,220 --> 00:16:24,280 Nii, et see loob muutuja nimega i, säilitades väärtus 0 ta. 330 00:16:24,280 --> 00:16:26,420 See on nn ettekanne. 331 00:16:26,420 --> 00:16:29,360 >> Olgu, nüüd ma väitnud enne et keset asi, i 332 00:16:29,360 --> 00:16:31,760 <10, on tingimus. 333 00:16:31,760 --> 00:16:32,730 Mis siis teete? 334 00:16:32,730 --> 00:16:36,560 Noh, mis silmus teeb, kui programmi jaoks loop töötab, on 335 00:16:36,560 --> 00:16:41,050 iga kord, kui arvuti jookseb läbi see silmus, ülevalt alla, ülevalt 336 00:16:41,050 --> 00:16:43,740 põhja, just nagu sina tegite kui lugedes ennast ja istudes, 337 00:16:43,740 --> 00:16:47,090 uuesti ja uuesti ja uuesti, arvuti läheb 338 00:16:47,090 --> 00:16:48,560 et kontrollida, kas tingimus. 339 00:16:48,560 --> 00:16:51,140 Ja kui ma alla 10, siis teen seda uuesti. 340 00:16:51,140 --> 00:16:53,100 Kui mul on vähem kui 10, siis teen seda uuesti. 341 00:16:53,100 --> 00:16:55,030 Kui mul on vähem kui kümme, siis teen seda uuesti. 342 00:16:55,030 --> 00:16:57,330 Nii et tundub, et Loodetavasti muutub. 343 00:16:57,330 --> 00:16:59,010 Vastasel juhul oleks meil lõputu silmuse. 344 00:16:59,010 --> 00:17:02,590 Ja tõepoolest, i on muutumas, sest Viimane asi, mida pärast semikoolonit seal 345 00:17:02,590 --> 00:17:05,569 on veidi segasena süntaks i + +. 346 00:17:05,569 --> 00:17:07,630 Aga need, kes seda teinud enne, see tähendab lihtsalt 347 00:17:07,630 --> 00:17:08,609 lihtsalt mida? 348 00:17:08,609 --> 00:17:09,730 >> Õpilased: [astudes VOICES]. 349 00:17:09,730 --> 00:17:10,740 >> DAVID Malan: Lisa 1 i. 350 00:17:10,740 --> 00:17:11,819 Kasvatab i. 351 00:17:11,819 --> 00:17:13,910 Nii nägime Scratch puzzle tükk, et tegelikult. 352 00:17:13,910 --> 00:17:18,230 See ei paistnud i + +, kuid see lihtsalt tähendab lihtsalt, juurdekasvu 353 00:17:18,230 --> 00:17:24,040 Väärtustame i poolt 1 iga kord, kui te seda teha. 354 00:17:24,040 --> 00:17:26,910 Nii sõna-sõnalt, siis alustada käivitumist I 0. 355 00:17:26,910 --> 00:17:29,520 Seejärel kontrollida oma seisundit. 356 00:17:29,520 --> 00:17:31,070 Kas 0 alla 10? 357 00:17:31,070 --> 00:17:31,730 Jah. 358 00:17:31,730 --> 00:17:32,910 Me läheme läbi silmuse. 359 00:17:32,910 --> 00:17:35,150 >> Järgmine asi, mida ma nõuda arvuti kavatse teha, on, et see läheb 360 00:17:35,150 --> 00:17:35,910 juurdekasvu i. 361 00:17:35,910 --> 00:17:37,080 Nii et ma nüüd 1. 362 00:17:37,080 --> 00:17:37,940 Ta kontrollib seisukorras. 363 00:17:37,940 --> 00:17:39,290 Kas 1 alla 10? 364 00:17:39,290 --> 00:17:39,930 Muidugi. 365 00:17:39,930 --> 00:17:41,030 Nii see uuesti. 366 00:17:41,030 --> 00:17:43,580 Siis sammuga i + + kuni 2. 367 00:17:43,580 --> 00:17:44,610 Kas 2 alla 10? 368 00:17:44,610 --> 00:17:45,230 Jah. 369 00:17:45,230 --> 00:17:46,670 Ja ikka ja jälle ja jälle. 370 00:17:46,670 --> 00:17:50,070 Ja lõpuks, sest pluss-plussing, saame i võrdub 10. 371 00:17:50,070 --> 00:17:51,675 Kas 10 on alla 10? 372 00:17:51,675 --> 00:17:52,990 Noh, ilmselt mitte. 373 00:17:52,990 --> 00:17:55,320 Ja see on koht, kus silmus lihtsalt peatub. 374 00:17:55,320 --> 00:17:58,320 Ja kui teil on veel kood ekraan allapoole, arvuti 375 00:17:58,320 --> 00:18:01,620 tulu käivitada selle koodi asemel. 376 00:18:01,620 --> 00:18:05,380 >> Nii et taas, kuigi see läheb ilme ja veidi imelik 377 00:18:05,380 --> 00:18:07,830 Esiteks kindlasti neile, kes pole kunagi programmeeritud enne, see 378 00:18:07,830 --> 00:18:11,640 sõnalt vähendab kontseptuaalselt mis on muidu väga 379 00:18:11,640 --> 00:18:14,330 lihtne puzzle tükk Scratch. 380 00:18:14,330 --> 00:18:19,130 >> Olgu, ma lubasin, et ei tahaks muid analooge Scratch. 381 00:18:19,130 --> 00:18:20,060 Seal on see ka. 382 00:18:20,060 --> 00:18:21,700 Ja me nägime seda korraks viimast korda. 383 00:18:21,700 --> 00:18:23,530 Aga mäletan igavesti blokeerida Scratch? 384 00:18:23,530 --> 00:18:25,490 See lihtsalt teeb midagi igavesti? 385 00:18:25,490 --> 00:18:27,470 Ma väita, et sa võiksid rakendada seda sel viisil. 386 00:18:27,470 --> 00:18:29,740 Ja te võite tegelikult rakendada seda aastal hunnik erinevaid viise. 387 00:18:29,740 --> 00:18:34,260 >> Aga samas silmus on lihtsalt teistsugune kuidas C väljendada ennast. 388 00:18:34,260 --> 00:18:37,080 Lõpus päeval, te ei saa seda teha midagi samas silmus, mida 389 00:18:37,080 --> 00:18:38,360 ei saa koos silmus. 390 00:18:38,360 --> 00:18:41,430 Nii nad lõpus päev praktiliselt samad. 391 00:18:41,430 --> 00:18:43,840 Aga ta saab ennast väljendada natuke teistmoodi 392 00:18:43,840 --> 00:18:44,850 järgmisel viisil. 393 00:18:44,850 --> 00:18:49,720 >> Mis samas silmus, see on see, mis on in sulgudes, mis on uuesti kontrollida ja 394 00:18:49,720 --> 00:18:51,050 uuesti ja uuesti. 395 00:18:51,050 --> 00:18:55,100 Ja niipea, kui see väljend on vale, siis loop peatub täidesaatva, 396 00:18:55,100 --> 00:18:57,890 ja arvuti suundub joosta tahes muu kood, mida 397 00:18:57,890 --> 00:18:59,230 on teie faili. 398 00:18:59,230 --> 00:19:02,180 >> Aga mis on huvitav siin on et ma sõna otseses mõttes kirjutatud tõsi. 399 00:19:02,180 --> 00:19:06,680 Ja tõsi on tüüpi tõeväärtuse, õige või vale väärtus. 400 00:19:06,680 --> 00:19:09,750 Nii võiks tõsi kunagi saanud vale, kui ma olen sõna otseses mõttes 401 00:19:09,750 --> 00:19:11,970 kodeeritud see minu programm? 402 00:19:11,970 --> 00:19:12,470 Seega ei ole. 403 00:19:12,470 --> 00:19:13,730 See on natuke imelik, et ma tegin seda. 404 00:19:13,730 --> 00:19:15,190 Aga tõsi on tõsi. 405 00:19:15,190 --> 00:19:16,320 Ei ole pluss-plussing. 406 00:19:16,320 --> 00:19:17,820 Ei ole kasutada muutujaid siin. 407 00:19:17,820 --> 00:19:22,740 Nii, kuna ma kodeeritud kuigi tõsi, see loop alati saab hinnata 408 00:19:22,740 --> 00:19:24,090 uuesti ja uuesti ja uuesti. 409 00:19:24,090 --> 00:19:27,660 >> Nii mitu korda on tere trükkimineku ekraanil? 410 00:19:27,660 --> 00:19:28,170 Igavesti. 411 00:19:28,170 --> 00:19:31,980 Lõpmatu arv kordi, kuni aku sureb või mõne muu välise 412 00:19:31,980 --> 00:19:32,730 Kui juhtub. 413 00:19:32,730 --> 00:19:35,880 Nii et see ei ole ilmselt parim programm kirjutada, sest kui kasutaja 414 00:19:35,880 --> 00:19:38,660 ei saa kunagi loobuda oma programmi, siis on ilmselt ei ole, mida sa ette. 415 00:19:38,660 --> 00:19:41,070 >> Aga mõnikord, programmid peaksid on lõputu silmuse. 416 00:19:41,070 --> 00:19:44,050 Näiteks, kui arvuti on kella, see kindlasti oleks 417 00:19:44,050 --> 00:19:48,130 tore, kui oma kella see hoida ajakohastamine ise igavesti, kuigi kord 418 00:19:48,130 --> 00:19:50,500 teine ​​või kord minutis või midagi sellist. 419 00:19:50,500 --> 00:19:53,690 Nii et isegi lõpmatu ring ei ole nende koht. 420 00:19:53,690 --> 00:19:54,360 >> Hea küll. 421 00:19:54,360 --> 00:19:55,190 Lõpuks see. 422 00:19:55,190 --> 00:19:57,770 Ja see üks on natuke erinev funktsionaalselt ja me tuleme tagasi 423 00:19:57,770 --> 00:19:59,460 see ilmselt pset 1. 424 00:19:59,460 --> 00:20:02,370 Aga seal on teist tüüpi loop kutsutud tegema samas silmus. 425 00:20:02,370 --> 00:20:07,100 Ja ainus erinevus siin vahel teha, samas loop ja, ütleme, samas silmus, 426 00:20:07,100 --> 00:20:11,120 on see, et seisund on kontrollitud mitte enne kui käivitada koodi, kuid pärast 427 00:20:11,120 --> 00:20:12,080 teil täita koodi. 428 00:20:12,080 --> 00:20:15,380 Nii tipus kui loop, et teha samas 429 00:20:15,380 --> 00:20:16,560 kontrollib see allosas. 430 00:20:16,560 --> 00:20:21,370 >> Ja see lihtsalt tähendab, et samal ajal loop tavaliselt täita mitu korda 431 00:20:21,370 --> 00:20:24,630 või vähem korda kui samal ajal loop? 432 00:20:24,630 --> 00:20:30,810 Potentsiaalselt rohkem korda, sest ei samas silmus selgelt öelda seda, 433 00:20:30,810 --> 00:20:34,600 ainult pärast mida sa kontrollida kui tingimus sees 434 00:20:34,600 --> 00:20:35,980 Sulgudes on tõsi. 435 00:20:35,980 --> 00:20:37,940 >> Nii me näeme, see uuesti ilmselt pset 1. 436 00:20:37,940 --> 00:20:41,150 Kui sa kunagi tahad teha midagi juures vähemalt üks kord ja siis võib-olla veel mõned 437 00:20:41,150 --> 00:20:43,350 korda, et see on hea ehitada kasutada. 438 00:20:43,350 --> 00:20:46,970 Kuid samal ajal loop seevastu tahe kontrollida selle tingimuse esimene. 439 00:20:46,970 --> 00:20:50,660 Ja see on see silmuseid C, ärge samas, kui, ja silmad. 440 00:20:50,660 --> 00:20:54,700 Ja jälle nad map päris kenasti tagasi kriimustus, välja arvatud see üks ei ole 441 00:20:54,700 --> 00:20:57,350 üsna sama analoog Scratch. 442 00:20:57,350 --> 00:20:58,880 >> Noh, kuidas nüüd, muutujad? 443 00:20:58,880 --> 00:21:02,600 Nii see on, kuidas ma deklareeritud muutuja süntaktiliselt teisel päeval. 444 00:21:02,600 --> 00:21:06,440 Mul oli int, mida ma väitnud on täisarv. 445 00:21:06,440 --> 00:21:09,690 Seejärel sain muutuja nimega counter, ja siis semikooloniga. 446 00:21:09,690 --> 00:21:11,070 Mis siis on see koodirida teed? 447 00:21:11,070 --> 00:21:14,540 See on lihtsalt, kuulutatakse muutuja - 448 00:21:14,540 --> 00:21:17,940 mis on, küsib arvuti, anna mulle mõned mälu, anna mulle mõned bitti - in 449 00:21:17,940 --> 00:21:19,450 mis ma saan salvestada mis? 450 00:21:19,450 --> 00:21:20,300 Int. 451 00:21:20,300 --> 00:21:23,570 Ja semikoolon tähendab lihtsalt lõpus rida koodi. 452 00:21:23,570 --> 00:21:25,500 >> Nüüd teine ​​rida on ilmselt päris guessable. 453 00:21:25,500 --> 00:21:29,710 Mis on counter = 0; teed? 454 00:21:29,710 --> 00:21:31,690 See määrates 0 võidelda. 455 00:21:31,690 --> 00:21:33,470 Ja nii see on teine ​​asi, et see on natuke tüütu 456 00:21:33,470 --> 00:21:34,540 versus, ütleme, algebra. 457 00:21:34,540 --> 00:21:39,110 Arvestades, algebra, võrdusmärk tähendab võrdne, siin C, võrdne 458 00:21:39,110 --> 00:21:40,470 märk tähendab loovutamine. 459 00:21:40,470 --> 00:21:45,380 Nii et see tähendab, pane mis paremal selle kohta, mis on vasakul. 460 00:21:45,380 --> 00:21:49,030 Ja me näeme, teine ​​sümbol, võrdub võrdne, kui me tahame tegelikult testida 461 00:21:49,030 --> 00:21:50,570 kvaliteet, veidi tüütult. 462 00:21:50,570 --> 00:21:52,590 >> Aga see on veidi ebaefektiivne. 463 00:21:52,590 --> 00:21:55,090 See on selline tüütu, et mul on kuulutada muutuja ja 464 00:21:55,090 --> 00:21:56,110 siis annab see väärtus. 465 00:21:56,110 --> 00:21:59,380 Nii C tegelikult võimaldab meil lihtsustada ja just seda teha kõik korraga. 466 00:21:59,380 --> 00:22:01,330 Võite kuulutada muutuja vasakul. 467 00:22:01,330 --> 00:22:04,590 Saate siiski teha loovutamise õigus, pannes et võrdusmärki 468 00:22:04,590 --> 00:22:05,030 keskel. 469 00:22:05,030 --> 00:22:08,740 Nii et lõpuks, need kaks on samaväärne, kuid see, ausalt öeldes, 470 00:22:08,740 --> 00:22:11,840 on ilmselt parem harjumus sattuda lihtsalt sellepärast, et see on natuke vähem 471 00:22:11,840 --> 00:22:15,040 kood, see on natuke lihtsam lugeda, ja see lihtsalt karmistab 472 00:22:15,040 --> 00:22:17,470 oma koodi, nii rääkida. 473 00:22:17,470 --> 00:22:22,120 >> Kõik küsimused seni on silmad, muutujate kohta, tingimuste kohta 474 00:22:22,120 --> 00:22:27,001 Tõeväärtused, kas tehniliselt või kontseptuaalselt? 475 00:22:27,001 --> 00:22:28,010 Hea küll. 476 00:22:28,010 --> 00:22:30,690 Nüüd see järgmine üks saab veidi põnevamaks. 477 00:22:30,690 --> 00:22:34,790 Ja see on näiteks panin üles viimane aega, et lihtsalt kaardistas Scratch näiteks 478 00:22:34,790 --> 00:22:35,820 üle C. 479 00:22:35,820 --> 00:22:36,580 >> Seega funktsioon. 480 00:22:36,580 --> 00:22:38,110 In üldarusaadavat mõttes, mis on funktsioon? 481 00:22:38,110 --> 00:22:42,900 482 00:22:42,900 --> 00:22:44,350 Pead olema julgem oma vastust. 483 00:22:44,350 --> 00:22:45,020 Mis funktsioon? 484 00:22:45,020 --> 00:22:46,320 >> Üliõpilane: Kas midagi. 485 00:22:46,320 --> 00:22:46,780 >> DAVID Malan: Mis see on? 486 00:22:46,780 --> 00:22:48,000 >> Üliõpilane: Kas midagi. 487 00:22:48,000 --> 00:22:48,710 >> DAVID Malan: Kas midagi. 488 00:22:48,710 --> 00:22:49,000 OK. 489 00:22:49,000 --> 00:22:49,590 Hakkame seal. 490 00:22:49,590 --> 00:22:51,270 Seega funktsioon teeb midagi. 491 00:22:51,270 --> 00:22:55,160 Nii et see on tükk kood, mis on sisuliselt rakendada mujal, mis 492 00:22:55,160 --> 00:22:56,620 tõepoolest teeb midagi. 493 00:22:56,620 --> 00:23:00,180 Nüüd, mis on huvitav funktsioon on see, et ta võib võtta sisend, 494 00:23:00,180 --> 00:23:02,710 ja seda saab toota toodangut. 495 00:23:02,710 --> 00:23:05,090 Ja olgem tegelikult võtta Vaata seda. 496 00:23:05,090 --> 00:23:09,030 >> Nii mees eesriide taga oli tahtlik hetk tagasi. 497 00:23:09,030 --> 00:23:10,320 Siin on tabel. 498 00:23:10,320 --> 00:23:13,010 Aga oletame, et see tegelikult esindab suur kast. 499 00:23:13,010 --> 00:23:14,940 Nii et see on nn must kast. 500 00:23:14,940 --> 00:23:19,800 Ja üldiselt, disaini, arvuti teaduse, mustad kastid lihtsalt viidata 501 00:23:19,800 --> 00:23:22,510 tükki funktsionaalsust, et keegi on rakendanud, ja sa ei ole 502 00:23:22,510 --> 00:23:26,140 tingimata teadma või huvita, kui see on rakendatud all kapuuts. 503 00:23:26,140 --> 00:23:28,960 Sa lihtsalt hoolitseda, et see must kast, mis me nüüd alustada kutsudes 504 00:23:28,960 --> 00:23:30,730 funktsioon, ei midagi. 505 00:23:30,730 --> 00:23:34,710 >> Nii näiteks, kui see must kast etapis siin esindab printf, 506 00:23:34,710 --> 00:23:38,040 funktsioon, ma tean eelmiste näidete et printf võtab ühe või mitme 507 00:23:38,040 --> 00:23:40,910 argumente ning esimene neist argumendid peaksid olema string, nagu 508 00:23:40,910 --> 00:23:44,780 "Tere, maailm." Noh, kui ma olen inimene kirjutamise programm, ja ma tahan, 509 00:23:44,780 --> 00:23:50,460 kasutada printf, I, näiteks võib võtta tükk tühja paberi siin ja 510 00:23:50,460 --> 00:23:55,060 must marker ja kirjuta sinna - 511 00:23:55,060 --> 00:23:56,580 Ma valesti "maailm" - 512 00:23:56,580 --> 00:23:59,560 H-E-L-L-O. 513 00:23:59,560 --> 00:24:04,220 >> Nii et ma võtan must marker ja ma tulen kirjutada, kui suur ja loetav, kui suudan edasi 514 00:24:04,220 --> 00:24:07,260 see paberile, "hello, world" Ja nüüd ma väita, et see on minu argument. 515 00:24:07,260 --> 00:24:09,740 See on string esindatud valgele paberilehele. 516 00:24:09,740 --> 00:24:13,030 Ja minu sisend nüüd funktsioon printf saab olema see. 517 00:24:13,030 --> 00:24:18,250 Nii et ma kutsun printf, mis kulgeb et väide, nagu sisend ta. 518 00:24:18,250 --> 00:24:22,110 519 00:24:22,110 --> 00:24:26,740 >> Ja nüüd, ma ei tea, kuidas isik, kes kirjutas printf tegid seda aastaid tagasi, kuid 520 00:24:26,740 --> 00:24:31,110 Ma tean oma dokumentatsiooni tema eesmärk elus on printida, mida ma 521 00:24:31,110 --> 00:24:34,410 ette, et ta on sisend. 522 00:24:34,410 --> 00:24:40,630 Ja nii, kuigi see rakendamine on teadmata mulle 523 00:24:40,630 --> 00:24:44,170 all kapuuts, nüüd Ma näen, oh, see on tehtud. 524 00:24:44,170 --> 00:24:45,740 See on trükitud midagi ekraanil. 525 00:24:45,740 --> 00:24:49,070 Ja nüüd kontrollida programmi, kui seal oli rohkem rida koodi, mis 526 00:24:49,070 --> 00:24:51,070 on nüüd tagasi mulle. 527 00:24:51,070 --> 00:24:52,290 Ja nii, et Colton - 528 00:24:52,290 --> 00:24:55,370 õnnista oma südames on peidus siin all laua ees teid kõiki - 529 00:24:55,370 --> 00:24:59,530 on tahtlik ka, et ma ei tea, ja mind ei huvita kuidas printf on 530 00:24:59,530 --> 00:25:00,100 rakendada. 531 00:25:00,100 --> 00:25:03,390 Ma lihtsalt tean, jälle tema dokumendid, mida ta teeb ja kuidas ma 532 00:25:03,390 --> 00:25:05,040 ma peaks seda kasutama. 533 00:25:05,040 --> 00:25:09,140 >> Nüüd meenutada printf võiks saada veidi keerukam. 534 00:25:09,140 --> 00:25:12,220 Jällegi, me lihtsalt räägime samaväärne Scratch Ütleme blokeerida. 535 00:25:12,220 --> 00:25:14,230 Aga ma ka tegin seda viimast korda. 536 00:25:14,230 --> 00:25:17,270 Tahtsin Tema programm vähe dünaamilisem ja mitte ainult raske 537 00:25:17,270 --> 00:25:19,740 kood midagi "maailma" ja Kindlasti ei ole raske koodi midagi 538 00:25:19,740 --> 00:25:22,520 meelevaldne nagu D-A-V-I-D programmi. 539 00:25:22,520 --> 00:25:27,510 Ma tahtsin küsida kasutajalt tema nimi ja tehke midagi 540 00:25:27,510 --> 00:25:29,720 et string, et nad pakuvad. 541 00:25:29,720 --> 00:25:32,690 >> Nii et seal on midagi veidi teistsugune siin. printf, hetk tagasi 542 00:25:32,690 --> 00:25:35,860 ei tõesti, midagi teha, kuid see ei andnud mulle midagi. 543 00:25:35,860 --> 00:25:36,020 Õigus? 544 00:25:36,020 --> 00:25:38,910 Colton ei andnud mulle midagi tagasi, ei paberilehele. 545 00:25:38,910 --> 00:25:40,320 Seal oli lihtsalt kõrvalnäht. 546 00:25:40,320 --> 00:25:44,510 Minu pakkudes "hello, world", nagu argument, et Colton tulemuseks 547 00:25:44,510 --> 00:25:48,420 kõrvalmõju sõna, mõned sõnad, ilmuvad ekraanile. 548 00:25:48,420 --> 00:25:51,350 >> getString, kuigi on vähe erinevad. getString on ka 549 00:25:51,350 --> 00:25:54,590 toimida, kuid see läheb mingi väärtus. 550 00:25:54,590 --> 00:25:56,370 See ei ole mitte ainult esteetiline kõrvalmõju. 551 00:25:56,370 --> 00:26:00,230 See tegelikult annab mulle inimene helistades või kasutades funktsiooni, 552 00:26:00,230 --> 00:26:01,320 midagi tagasi. 553 00:26:01,320 --> 00:26:05,740 Nii et sel juhul getString on hüüdis getString avatud 554 00:26:05,740 --> 00:26:07,510 paren lähedal paren. 555 00:26:07,510 --> 00:26:11,370 Kas getString seetõttu võtma mingeid argumente või sisend? 556 00:26:11,370 --> 00:26:12,340 Ei, see ei paista. 557 00:26:12,340 --> 00:26:14,460 Selle eesmärk elus on lihtsalt saada string. 558 00:26:14,460 --> 00:26:16,910 See ei vaja üksikasjalikumalt kui see. 559 00:26:16,910 --> 00:26:20,430 Nii et lubage mul minna ja teeselda, et jälle see must kast ei printf, 560 00:26:20,430 --> 00:26:25,160 kuid getString, ja andke mulle, inimene kirjutamise programm, helista või kasutada 561 00:26:25,160 --> 00:26:29,720 getString poolt lihtsalt kirjalikult G-E-T-S-T-R-I-N-G, avatud paren lähedal 562 00:26:29,720 --> 00:26:32,170 paren, getString. 563 00:26:32,170 --> 00:26:36,920 >> Nüüd ma ei tea, kuidas CS50 personal rakendatud getString, aga ma tean, et 564 00:26:36,920 --> 00:26:41,240 kui ma oodata piisavalt kaua, siis teen oma asi all kapuuts, võibolla kasutades 565 00:26:41,240 --> 00:26:44,940 mõned muutujad, ehk kasutades mõned tingimused, võib-olla kasutades mõned silmad, 566 00:26:44,940 --> 00:26:48,170 võibolla mõnede funktsioonide kasutamiseks, võibolla kasutades - 567 00:26:48,170 --> 00:26:52,290 lihtsalt üritan varisemine - võib-olla kasutades mõne muu programmi funktsioone. 568 00:26:52,290 --> 00:26:55,350 Aga kui ma oodata piisavalt kaua - tegelikkuses arvuti, seda juhtub, 569 00:26:55,350 --> 00:26:56,270 super kiire - 570 00:26:56,270 --> 00:26:59,910 kui ma oodata piisavalt kaua, see funktsioon getString hakka string 571 00:26:59,910 --> 00:27:04,060 kasutaja, kes on oletatavasti kirjutades ta läbi oma klaviatuuri ja 572 00:27:04,060 --> 00:27:08,090 siis, kui te getString tehakse saada need märgid kasutaja 573 00:27:08,090 --> 00:27:14,080 ja säilitada neid arvesse string, mis funktsioon, getString, läheb on 574 00:27:14,080 --> 00:27:17,990 valmis mulle väljund, mis ma olen läheb kätte teel 575 00:27:17,990 --> 00:27:19,470 omistamisoperaatorile. 576 00:27:19,470 --> 00:27:25,390 >> Ja kui ma olen läinud tõepoolest arvesse väljund Siin Obosi on heldelt 577 00:27:25,390 --> 00:27:29,900 osalenud, teadmata seda edasi, kirjutades oma nime peale seda 578 00:27:29,900 --> 00:27:33,100 muutuja, mis esindab string. 579 00:27:33,100 --> 00:27:35,640 Nüüd omistamisoperaatorile tähendab, isegi Kuigi see võib tunduda veidi 580 00:27:35,640 --> 00:27:38,790 üleliigne, ma tegelikult ei vaja teha oma koopia. 581 00:27:38,790 --> 00:27:40,700 Kuna vasakul külg - Oih! - 582 00:27:40,700 --> 00:27:45,760 teate, et ma põhimõtteliselt on string nimi vasakul servas. 583 00:27:45,760 --> 00:27:48,280 Nii et ma olen ka kavatse teha minu koopia. 584 00:27:48,280 --> 00:27:50,990 Ja see on natuke valge vale, sest me näeme nädal või kaks on 585 00:27:50,990 --> 00:27:54,100 aega, et stringid ei tegelikult mida nad näivad olevat. 586 00:27:54,100 --> 00:27:56,700 >> Aga nüüd, siin on tagastatav väärtus. 587 00:27:56,700 --> 00:28:00,160 Siin on minu enda koopia pärast kasutades omistamisoperaatorile. 588 00:28:00,160 --> 00:28:01,790 Ja nüüd, mida ma tahan teha? 589 00:28:01,790 --> 00:28:04,080 Meil on nüüd teine kaks rida koodi. 590 00:28:04,080 --> 00:28:05,640 Nii et ma nüüd tahan helistada printf. 591 00:28:05,640 --> 00:28:08,500 Kujutleme nüüd, et must kast on jälle tagasi olla 592 00:28:08,500 --> 00:28:10,210 printf ja ei getString. 593 00:28:10,210 --> 00:28:12,200 >> Printf seekord läheb võtma, kui palju argumente? 594 00:28:12,200 --> 00:28:14,890 595 00:28:14,890 --> 00:28:16,770 Nii et otsida, see on nagu kaks. 596 00:28:16,770 --> 00:28:18,860 Seal on kaks koma olemas, kuid üks neist komad, see on 597 00:28:18,860 --> 00:28:20,220 sees jutumärkides. 598 00:28:20,220 --> 00:28:23,190 Nii et esimene argument on sõna otseses mõttes läheb see. 599 00:28:23,190 --> 00:28:31,850 H-E-L-L-O, koma protsenti s, Kenoviiva-n. 600 00:28:31,850 --> 00:28:36,560 Ja nüüd ma olen pakkudes mitte üks argument, kuid kaks argumente printf. 601 00:28:36,560 --> 00:28:39,530 >> Ja mis printf sellega teha need kaks sisendit pärast annan neile 602 00:28:39,530 --> 00:28:42,050 kui argumendid? 603 00:28:42,050 --> 00:28:45,360 See peaks võtma teine neid, mis ma helistasin nimi, nii 604 00:28:45,360 --> 00:28:48,660 Teine paberile kirjutasin välja hetk tagasi nimetatakse nimi. 605 00:28:48,660 --> 00:28:53,550 See saab plug väärtuse sees Selle muutuja arvesse kohatäide, 606 00:28:53,550 --> 00:28:58,310 % S, nii et jällegi vaid hetk aega, näeme kõrvalnähuna 607 00:28:58,310 --> 00:29:04,180 Ta kutsus printf, kusjuures nüüd me ei näe "hello, world", vaid "tere, 608 00:29:04,180 --> 00:29:04,710 Obosi. " 609 00:29:04,710 --> 00:29:08,730 >> Nii suur aplaus mõlemale Meie vabatahtlikud, vaid üks neist teadis 610 00:29:08,730 --> 00:29:12,010 see oleks toimumas. 611 00:29:12,010 --> 00:29:12,990 Hea küll. 612 00:29:12,990 --> 00:29:16,480 Niisiis, võib-olla, nii lihtne see oli, Kindlasti, kui sa oled juba tuttav 613 00:29:16,480 --> 00:29:20,190 Sellise, loodetavasti sa kunagi unustada, et eelkõige visuaalne, kuidas 614 00:29:20,190 --> 00:29:21,220 funktsioonid töötavad. 615 00:29:21,220 --> 00:29:23,000 >> Nii et seal on midagi enamat kui lihtsalt getString. 616 00:29:23,000 --> 00:29:26,020 Toas CS50 raamatukogu, seal terve hulk funktsioone, mis kõik 617 00:29:26,020 --> 00:29:29,510 kapitaliseeritakse lihtsalt selgeks teha, et me kirjutasime need funktsioonid. 618 00:29:29,510 --> 00:29:33,610 Tüüpiliselt on C, peaaegu iga teine funktsiooni saad kasutada on väiketähed. 619 00:29:33,610 --> 00:29:36,190 Aga me teadlikult kasutada suurtähti lihtsalt selgeks teha, et need 620 00:29:36,190 --> 00:29:39,880 on Apupyörät kehvasti, et paneme kasutada vaid paar nädalat, et 621 00:29:39,880 --> 00:29:42,890 lihtsustada protsessi saada panus kasutaja. 622 00:29:42,890 --> 00:29:46,740 >> CS50 raamatukogu ei tee midagi et te ise ei saanud seda, mida 623 00:29:46,740 --> 00:29:50,230 lihtsalt kasutades C koodi oldschool õpik. 624 00:29:50,230 --> 00:29:53,310 Kuid jällegi, me kasutame neid koolitus rattad kehvasti paar 625 00:29:53,310 --> 00:29:57,250 nädala, et saaksime vabaneda keerukus, et saate kohe aru, 626 00:29:57,250 --> 00:30:00,460 ise teha midagi nagu Suhteliselt lihtne on saada 627 00:30:00,460 --> 00:30:02,080 panust kasutaja. 628 00:30:02,080 --> 00:30:05,540 >> Nii tean, et teil on juurdepääs et getchar, GetDouble - 629 00:30:05,540 --> 00:30:06,050 kahekordistub. 630 00:30:06,050 --> 00:30:07,050 Tollest - ja siis GetFloat. 631 00:30:07,050 --> 00:30:07,600 Mis float? 632 00:30:07,600 --> 00:30:09,382 Alustame siis. 633 00:30:09,382 --> 00:30:10,600 >> Õpilane: [kuuldamatu]. 634 00:30:10,600 --> 00:30:10,790 >> DAVID Malan: Jah. 635 00:30:10,790 --> 00:30:12,120 See number koma. 636 00:30:12,120 --> 00:30:15,930 Nii et int on täisarv, mis on vaid number 0 kuni 9, 637 00:30:15,930 --> 00:30:18,940 mõned korduste arvu, ning float on midagi 638 00:30:18,940 --> 00:30:20,100 koos koma. 639 00:30:20,100 --> 00:30:26,090 Ja topelt, vahepeal on ka number koma, kuid rohkem 640 00:30:26,090 --> 00:30:28,160 numbrite pärast koma punkt, potentsiaalselt. 641 00:30:28,160 --> 00:30:30,040 >> Nii et me võtame seda enne pikk. 642 00:30:30,040 --> 00:30:34,560 Aga tavaliselt, iga tüüpi andmed, iga tüüpi muutujad 643 00:30:34,560 --> 00:30:39,380 et raamatukogu nagu meie võib naasta sa kasutada erinevate numbrite bittide 644 00:30:39,380 --> 00:30:40,290 teavet salvestada. 645 00:30:40,290 --> 00:30:43,910 Tavaliselt Char, mis tähendab lihtsalt üks märk, kasutab 8 bitti. 646 00:30:43,910 --> 00:30:47,490 Ja see on tegelikult kooskõlas meie bait vabatahtlike eelmisel nädalal kes 647 00:30:47,490 --> 00:30:50,410 tuli ja oli üks ASCII korraga. 648 00:30:50,410 --> 00:30:51,850 Nii Char on 8 bitti. 649 00:30:51,850 --> 00:30:54,430 >> Float juhtub olema 32 bitti, tavaliselt. 650 00:30:54,430 --> 00:30:59,230 Ja topelt, nagu te võite arvata, on tegelikult 64 bitti, mis on lihtsalt rohkem, 651 00:30:59,230 --> 00:31:01,360 mis tähendab, et sul võib olla suurem numbrid või rohkem täpsust. 652 00:31:01,360 --> 00:31:03,000 Aga jälle, rohkem, et mõni teine ​​kord. 653 00:31:03,000 --> 00:31:06,550 GetLongLong, vahepeal küll rumalalt nimega, on tegelikult lihtsalt 654 00:31:06,550 --> 00:31:10,770 täisarv, mis on kaks korda nii suur, kaks korda pikk, potentsiaalselt tavalise 655 00:31:10,770 --> 00:31:12,940 täisarv, 64 bitti asemel 32. 656 00:31:12,940 --> 00:31:14,560 Ja getString Oleme kasutanud. 657 00:31:14,560 --> 00:31:18,870 >> Aga selgub, et CS50 raamatukogu mida rakendatakse, kui me näeme, et 658 00:31:18,870 --> 00:31:23,560 kujul kaks faili, millest üks nimetatakse cs50.h, on kaks 659 00:31:23,560 --> 00:31:24,770 andmetüübid ta. 660 00:31:24,770 --> 00:31:29,700 Tõeväärtused ei eksisteeri C. Võite simuleerida neid kasutab ainult 0. ja 1s 661 00:31:29,700 --> 00:31:30,850 kogu oma programmi. 662 00:31:30,850 --> 00:31:35,500 Aga me CS50 raamatukogu on loodud sümbolid "true" ja "vale" 663 00:31:35,500 --> 00:31:38,580 esindada 1 ja 0, et sa ei on raske koodi midagi 664 00:31:38,580 --> 00:31:39,810 sõna otseses mõttes nagu 1 ja 0. 665 00:31:39,810 --> 00:31:40,980 Aga me näeme neid uuesti. 666 00:31:40,980 --> 00:31:42,330 >> String, liiga, ei ole olemas. 667 00:31:42,330 --> 00:31:44,520 Ja sellepärast ma mainisin see on natuke hädavale nüüd. 668 00:31:44,520 --> 00:31:46,660 Aga me koor tagasi, et kiht enne pikk. 669 00:31:46,660 --> 00:31:49,540 Aga nüüd, string märgijada. 670 00:31:49,540 --> 00:31:51,790 >> Vahepeal, C, siis tõepoolest on eri tüüpi andmeid. 671 00:31:51,790 --> 00:31:53,200 Teade need on väiksed. 672 00:31:53,200 --> 00:31:56,960 Nii toimib nägid hetk tagasi on funktsioone kirjutada CS50 et 673 00:31:56,960 --> 00:32:02,310 naaseb sa raha, mis kuulub ühte nendest kategooriatest. 674 00:32:02,310 --> 00:32:06,730 >> Paar cheat lehed lihtsalt istutada seeme siin. printf ei ole lihtsalt 675 00:32:06,730 --> 00:32:08,600 võtta% s kohatäidetena. 676 00:32:08,600 --> 00:32:13,490 See võtab% d jaoks kohaga täisarvud või% i ei tööta nii hästi. 677 00:32:13,490 --> 00:32:19,450 % F ujub väärtused. % C on char, kui sa tahad lihtsalt ühenda 678 00:32:19,450 --> 00:32:23,510 iseloomu arvesse vormindatud stringi nagu me oleme seda teinud, saate kasutada% c. 679 00:32:23,510 --> 00:32:28,490 >> Ja siis, veidi tüütult,% LLD on kaua, kaua aega pärast koma täisarv, 680 00:32:28,490 --> 00:32:31,050 mis lihtsalt tähendab, et kui teil on vaja tõesti suur number ja te kasutate midagi 681 00:32:31,050 --> 00:32:35,450 nimetatakse pikka, mis me tuleme tagasi in pset, mida saab kasutada% LLD et 682 00:32:35,450 --> 00:32:40,700 ütle printf, ühendage tõesti suur täisarv siin teel oma teise või 683 00:32:40,700 --> 00:32:41,830 mõne muu argument. 684 00:32:41,830 --> 00:32:45,700 >> Ja lõpuks, ma lubasin, et seal on mõned muud väljapääsu 685 00:32:45,700 --> 00:32:47,670 järjestused, mis printf toetab. 686 00:32:47,670 --> 00:32:49,160 Me oleme näinud Kenoviiva-n. 687 00:32:49,160 --> 00:32:50,510 Längkriipsu-r võite näha. 688 00:32:50,510 --> 00:32:51,780 See on omamoodi vana kooli asi. 689 00:32:51,780 --> 00:32:55,920 Kui olete kunagi kasutanud reaalne kirjutusmasin aastat tagasi ja te tõmbas vända 690 00:32:55,920 --> 00:32:59,810 mis mitte ainult ei pöörata ratast liikuda rivistuse, samuti liikunud 691 00:32:59,810 --> 00:33:03,730 Kogu asi kogu tee tagasi üle vasakule, noh, Kenoviiva-r lihtsalt 692 00:33:03,730 --> 00:33:06,480 sisuliselt kursori tagasi alustamist line 693 00:33:06,480 --> 00:33:07,830 liigutamata see maha. 694 00:33:07,830 --> 00:33:09,780 Aga jälle, rohkem sellest, võibolla tulevikus. 695 00:33:09,780 --> 00:33:13,670 >> Längkriipsu-tsiteerin Kenoviiva-jutumärke, Kenoviiva-Kenoviiva on 696 00:33:13,670 --> 00:33:16,600 lahendus tilluke mõistatus I vihjas varem. 697 00:33:16,600 --> 00:33:18,920 Ja Kenoviiva-0 on tegelikult päris huvitav. 698 00:33:18,920 --> 00:33:21,470 Aga me tuleme tagasi et enne pikk. 699 00:33:21,470 --> 00:33:25,640 >> Nii et lubage mul minna, nüüd CS50 aparaat, ja olgem tegelikult teha 700 00:33:25,640 --> 00:33:28,930 kiire soojendada üks näiteid tegime juba ja siis liikuda edasi 701 00:33:28,930 --> 00:33:31,160 midagi veidi keerulisem. 702 00:33:31,160 --> 00:33:34,980 Nii et kui ma avada oma programmi nimetatakse gedit - 703 00:33:34,980 --> 00:33:36,840 see on minu graafiline redaktor. 704 00:33:36,840 --> 00:33:38,460 Ja ma ei saa seda teha - 705 00:33:38,460 --> 00:33:39,820 lase mul lõpetada see aken seal - 706 00:33:39,820 --> 00:33:42,720 teel selle ikooni siia, gedit, põhja-vasakule 707 00:33:42,720 --> 00:33:44,170 nurgas kõrval menüüs. 708 00:33:44,170 --> 00:33:48,670 >> Ma lähen edasi minna ja arendada ning salvestada see näiteks meie, ütleme, John 709 00:33:48,670 --> 00:33:49,660 Harvardi kausta. 710 00:33:49,660 --> 00:33:52,690 John Harvardi kaust on lihtsalt oma kodus kataloog, kus kõik oma failid elada 711 00:33:52,690 --> 00:33:53,340 vaikimisi. 712 00:33:53,340 --> 00:33:58,410 Ja ma lähen salvestada see nagu fail nimega hello-0.c. 713 00:33:58,410 --> 00:34:01,260 Ja ma olen valinud selle nimi just nii see ridade järele proovi kood 714 00:34:01,260 --> 00:34:04,210 Loomulikult veebilehel ning YouTube videos online. 715 00:34:04,210 --> 00:34:06,320 >> Nüüd ma lähen hakata kirjutan oma esimest programmi. 716 00:34:06,320 --> 00:34:08,469 Lubage mul suumida loetavuse. 717 00:34:08,469 --> 00:34:12,760 Ja ma lähen edasi minna ja öelda, int Peamine tühine, mis on nagu, et 718 00:34:12,760 --> 00:34:14,900 kollane puzzle tükk, mis käivitab programmi. 719 00:34:14,900 --> 00:34:18,290 Olen saanud harjumuspäraselt üle aasta avamise mu lokkis traksidega, siis 720 00:34:18,290 --> 00:34:22,000 ka sulgemise ja siis läheb tagasi kui ma tahan, et minu kood, lihtsalt 721 00:34:22,000 --> 00:34:24,630 sest see aitab mul hoida kõike tasakaalus, eriti kui mu 722 00:34:24,630 --> 00:34:25,880 Programmi saab pikk. 723 00:34:25,880 --> 00:34:29,239 >> Ja nüüd, siin, ma lähen edasi minna ja öelda, printf, tsiteerin lõppeb, 724 00:34:29,239 --> 00:34:34,330 tere, Kenoviiva-n lähedal tsiteerin Lõpusulg, semikoolon. 725 00:34:34,330 --> 00:34:38,100 Nii et ma olen lihtsalt korrates kõik oleme võtnud iseenesestmõistetavana siiani. 726 00:34:38,100 --> 00:34:39,270 Nüüd ma lähen välja suumida. 727 00:34:39,270 --> 00:34:43,030 >> Ja see terminal window siin all, mida mul lubatud teha selles must 728 00:34:43,030 --> 00:34:44,389 ja valge aken? 729 00:34:44,389 --> 00:34:46,977 Mida ma saan seda kasutada? 730 00:34:46,977 --> 00:34:49,770 Nii et see on koht, kus ma saan käsud ja kus ma saan kompileerida asju. 731 00:34:49,770 --> 00:34:50,620 Ja ma lähen hoida seda lihtsat. 732 00:34:50,620 --> 00:34:52,780 Ma kasutan programmi nimetatakse Tee, mis ei ole 733 00:34:52,780 --> 00:34:54,020 tehniliselt tõlkija. 734 00:34:54,020 --> 00:34:56,360 Koostaja kutsutakse rõkkama, kuid me tuleme tagasi, et 735 00:34:56,360 --> 00:34:57,190 nädal või kaks aega. 736 00:34:57,190 --> 00:35:03,410 >> Sest nüüd, ma olen lihtsalt kavatse tüüpi teha tere-0, aga need, kes olid 737 00:35:03,410 --> 00:35:07,050 võrrelda oma mõtetes, mida ma lihtsalt kirjutatud, mida ma oleks pidanud kirjutada võib 738 00:35:07,050 --> 00:35:10,180 teavad juba, et ma ei midagi valesti. 739 00:35:10,180 --> 00:35:12,160 Nüüd, seal on selgelt mõned vead. 740 00:35:12,160 --> 00:35:16,742 Enne kui ma isegi vaadata, mida nad on kõik mõtteid selle kohta, mida ma valesti tegin? 741 00:35:16,742 --> 00:35:18,590 >> Õpilased: [astudes VOICES]. 742 00:35:18,590 --> 00:35:18,840 >> DAVID Malan: Jah. 743 00:35:18,840 --> 00:35:20,640 Olen kadunud raamatukogu header fail. 744 00:35:20,640 --> 00:35:24,240 Kõiki neid. H failid nimetatakse header failid ja nad kollektiivselt 745 00:35:24,240 --> 00:35:25,680 kuuluvad asju nimetatakse raamatukogud. 746 00:35:25,680 --> 00:35:28,030 Raamatukogud on lihtsalt tükkideks kood et teised inimesed kirjutas. 747 00:35:28,030 --> 00:35:32,140 Nii standard [? i?] raamatukogu failide kogumit sisaldav kood 748 00:35:32,140 --> 00:35:33,330 et teised inimesed kirjutas. 749 00:35:33,330 --> 00:35:34,820 >> Nii et ma olen kadunud, et. 750 00:35:34,820 --> 00:35:36,520 Miks ma saan vea? 751 00:35:36,520 --> 00:35:40,840 Noh, las ma kerida tagasi üles minu terminal window siin. 752 00:35:40,840 --> 00:35:44,310 Ja kahjuks C, kui palju programmeerimiskeeli, eriti 753 00:35:44,310 --> 00:35:47,830 kui see kõik on uusi teid, vea sõnumid on täpne, kuid nad ka 754 00:35:47,830 --> 00:35:48,620 üsna segasena. 755 00:35:48,620 --> 00:35:51,720 Ja viga siin, punane, on "Kaudselt kuulutatakse raamatukogu funktsiooni 756 00:35:51,720 --> 00:35:57,660 printf tüüpi, "ja siis kerib järgmisele reale "int const char * 757 00:35:57,660 --> 00:36:00,220 ... "See lihtsalt muutub tõesti Valdav kiiresti. 758 00:36:00,220 --> 00:36:04,420 >> Aga mida sa peaksid algama teha, kui, jälle uus see kõik on lihtsalt 759 00:36:04,420 --> 00:36:06,010 hakata otsima märksõnu. 760 00:36:06,010 --> 00:36:08,770 On selge, et ma ei mõista pool on sõnu, mida ma olen näinud veel. 761 00:36:08,770 --> 00:36:10,140 Sa saad, aga ka nädal aega. 762 00:36:10,140 --> 00:36:11,230 Aga ma näen printf. 763 00:36:11,230 --> 00:36:14,310 Ja see peaks algama enne pikk, et jog oma mälu, eks, printf. 764 00:36:14,310 --> 00:36:15,210 Midagi on valesti printf. 765 00:36:15,210 --> 00:36:16,580 Kas ma kirjutada seda valesti? 766 00:36:16,580 --> 00:36:18,130 Ei, see ei tundu - oh. 767 00:36:18,130 --> 00:36:21,350 Ma ei saa seda kasutada, kui ma õpetan koostaja, et see on olemas. 768 00:36:21,350 --> 00:36:25,220 Ja nii uuesti, minna oma instinkte, isegi kui sa tegelikult ei mõista 769 00:36:25,220 --> 00:36:26,510 tegelik veateateid. 770 00:36:26,510 --> 00:36:30,240 >> Ja tõepoolest, lahendus on siin lihtsalt lisada selle ülaosas faili 771 00:36:30,240 --> 00:36:34,340 niimoodi, resaving mu faili Kontroll-S või menüüst Fail. 772 00:36:34,340 --> 00:36:36,730 Ja kui ma nüüd tagasi minna siia alla, Ma lähen, et selge see. 773 00:36:36,730 --> 00:36:39,150 Kontroll-L on lihtsalt tore viis Ekraani tühjendamiseks. 774 00:36:39,150 --> 00:36:44,870 Ja siis ma lähen kirjuta "make tere 0 "Enter, ja nüüd ma ikka näen 775 00:36:44,870 --> 00:36:47,710 segasena jada sümbolid, kuid Me tuleme tagasi selle. 776 00:36:47,710 --> 00:36:49,230 See on see, mis teeb teeb teile. 777 00:36:49,230 --> 00:36:52,590 See automatiseerida protsessi, võttes üsna tüütu käsk hõlmab 778 00:36:52,590 --> 00:36:54,050 Rõkkama tegelik koostaja. 779 00:36:54,050 --> 00:36:57,460 Aga see, et mul pole viga tähendab et see asi peaks toimima. 780 00:36:57,460 --> 00:37:00,630 >> Nii et ma olen nüüd teeme - andke mulle suumimiseks uuesti - 781 00:37:00,630 --> 00:37:07,070 ./hello-0 Enter, ja tõepoolest, ma näen "Tere, maailm." Teeme nüüd suurendada 782 00:37:07,070 --> 00:37:12,105 see kunagi nii vähe lihtsalt imiteerida milliseid samme ette. 783 00:37:12,105 --> 00:37:15,370 Ma lähen ümber seda Save As hello1.c. 784 00:37:15,370 --> 00:37:20,300 Ja nüüd ma lähen kuulutada muutuja nimetatakse nimi, nii string nimi, 785 00:37:20,300 --> 00:37:23,420 ja ma lähen panna see väärtus viisi kraami 786 00:37:23,420 --> 00:37:27,030 D-A-V-I-D close-quote semikooloniga. 787 00:37:27,030 --> 00:37:31,150 Ja nüüd ma lähen asendama "maailm" mida kohatäide string? 788 00:37:31,150 --> 00:37:32,200 % S. 789 00:37:32,200 --> 00:37:35,040 >> Ja nüüd, kui palju argumente peaks printf seda aega? 790 00:37:35,040 --> 00:37:35,700 Nii kaks. 791 00:37:35,700 --> 00:37:37,090 Nii et ma minna väljaspool hinnapakkumisi. 792 00:37:37,090 --> 00:37:39,330 Writing "name" peale koma. 793 00:37:39,330 --> 00:37:41,550 Aga ma olen teinud midagi muidu viga seekord. 794 00:37:41,550 --> 00:37:43,940 Aga oletame, et ma ei teinud seda aru, et veel. 795 00:37:43,940 --> 00:37:44,910 Lubage mul minna siin. 796 00:37:44,910 --> 00:37:48,850 >> Ja teate ka, ma saan veidi igav kirjutades "teha hello 0" kõik 797 00:37:48,850 --> 00:37:50,180 aega, "teha" ja kõik see. 798 00:37:50,180 --> 00:37:53,270 Niisiis, tuleb välja, et Linus saate sageli tabanud Up noolt 799 00:37:53,270 --> 00:37:56,850 klaviatuur ja tegelikult võite kerida läbi kõik käsud, mis ma olen 800 00:37:56,850 --> 00:37:58,830 hukati eelmisel just nüüd. 801 00:37:58,830 --> 00:38:02,040 Nii et kui ma seda teen, Up, Up, seal teha hello 0. 802 00:38:02,040 --> 00:38:02,610 Ma ei taha seda. 803 00:38:02,610 --> 00:38:05,450 Ma tahan, et seda muuta, et tere 1 seekord Enter. 804 00:38:05,450 --> 00:38:07,620 Lõpuks, mis säästa aega. 805 00:38:07,620 --> 00:38:08,150 >> Hea küll. 806 00:38:08,150 --> 00:38:09,520 Kahjuks seal on viga. 807 00:38:09,520 --> 00:38:10,980 Nii et lubage mul liikuge üles. 808 00:38:10,980 --> 00:38:13,120 See näeb välja nagu ma tõesti tappis selle programmi. 809 00:38:13,120 --> 00:38:16,530 Ma mõtlen, et mu jumal, see on kaks rida koodi, ja 10 rida vigu. 810 00:38:16,530 --> 00:38:18,800 Aga vaatame top üks esimene. 811 00:38:18,800 --> 00:38:21,640 Kasutage deklareerimata tunnus string. 812 00:38:21,640 --> 00:38:23,270 Kas ma mõtlen standard i n? 813 00:38:23,270 --> 00:38:23,930 No ma ei teinud seda. 814 00:38:23,930 --> 00:38:24,940 Ma mõtlesin string. 815 00:38:24,940 --> 00:38:29,390 >> Aga kus on string muutuja tüüp kuulutatud, dd ütleme? 816 00:38:29,390 --> 00:38:30,730 Nii see on CS50 raamatukogu. 817 00:38:30,730 --> 00:38:33,740 Nii et see ei ole piisav, et need kõigepealt paar nädalat, lihtsalt kasutada 818 00:38:33,740 --> 00:38:34,860 Mida C annab meile. 819 00:38:34,860 --> 00:38:38,120 Ma kavatsen ka minema siit, ja ma võiksid panna see üles-või allapoole, aga ma 820 00:38:38,120 --> 00:38:40,340 muudkui tähestikulises hoida asjad korras. 821 00:38:40,340 --> 00:38:43,470 Ma lähen lisada cs50.h, mis on eelnevalt paigaldatud 822 00:38:43,470 --> 00:38:44,900 Teid CS50 aparaat. 823 00:38:44,900 --> 00:38:47,640 Ja see on avatud lähtekoodiga, nii et isegi inimesed Internetis võib seda kasutada oma 824 00:38:47,640 --> 00:38:48,450 arvuteid. 825 00:38:48,450 --> 00:38:50,700 Aga see on kaasas CS50 aparaat. 826 00:38:50,700 --> 00:38:55,320 >> Nüüd lubage mul minna tagasi ja kompileeri seda teha hello 1. 827 00:38:55,320 --> 00:38:55,710 Kurat. 828 00:38:55,710 --> 00:38:57,240 Veel üks viga. 829 00:38:57,240 --> 00:38:59,370 Lubage mul kerida kuni esimese, kuigi. 830 00:38:59,370 --> 00:39:00,630 See üks on natuke keeruline. 831 00:39:00,630 --> 00:39:03,830 Multi-kohaline sümboleid. 832 00:39:03,830 --> 00:39:04,890 See ei aita mind. 833 00:39:04,890 --> 00:39:08,220 Aga teate, rõkkama on vähemalt natuke natuke korralik, kusjuures vähe 834 00:39:08,220 --> 00:39:11,890 roheline katus sümbol, ta ütleb siin on koht, kus ma silmamunad. 835 00:39:11,890 --> 00:39:16,160 Miks on suunatud, selle väike roheline nool, et ühtse quote järgmine 836 00:39:16,160 --> 00:39:18,290 minu nimi? 837 00:39:18,290 --> 00:39:20,880 >> Nii et see on üks neist asjadest, sa lihtsalt harjuda, eriti kui sa oled olnud 838 00:39:20,880 --> 00:39:23,980 programmeerimine Python, või JavaScript, või teistes keeltes, kui see detail 839 00:39:23,980 --> 00:39:24,560 Vahet pole. 840 00:39:24,560 --> 00:39:25,740 In C, see asi. 841 00:39:25,740 --> 00:39:29,520 Kui te kuulutab string, mis on jada 0 või rohkem tähemärki, 842 00:39:29,520 --> 00:39:32,280 sa tegelikult peavad kasutama jutumärgid. 843 00:39:32,280 --> 00:39:36,670 Nii et ma tegelikult vaja muuta see tagasi avada quote sulgege quote koos 844 00:39:36,670 --> 00:39:37,800 jutumärgid. 845 00:39:37,800 --> 00:39:41,610 Ülakoma teha on oma koht, kuid ainult siis, kui te kasutate individuaalne 846 00:39:41,610 --> 00:39:44,100 tähemärki, kuid rohkem sellest mõni teine ​​kord. 847 00:39:44,100 --> 00:39:46,550 Praegu jutumärgid on vajalikud. 848 00:39:46,550 --> 00:39:50,460 >> Nüüd lubage mul minna tagasi oma terminal aken, muuta tere 1. 849 00:39:50,460 --> 00:39:51,450 Ja kes on kindel? 850 00:39:51,450 --> 00:39:53,800 Kas see programm nüüd läheb koostada õigesti? 851 00:39:53,800 --> 00:39:58,250 852 00:39:58,250 --> 00:39:58,540 OK. 853 00:39:58,540 --> 00:39:59,780 Nii kolm meist arvavad seda. 854 00:39:59,780 --> 00:40:00,280 Hea küll. 855 00:40:00,280 --> 00:40:01,190 Enter. 856 00:40:01,190 --> 00:40:02,440 Ja ta tegelikult ka tegi. 857 00:40:02,440 --> 00:40:05,130 Seega puudub vigu seekord isegi kuigi see programm on läinud natuke 858 00:40:05,130 --> 00:40:05,840 keerulisemaks. 859 00:40:05,840 --> 00:40:10,110 Kui ma nüüd tegema dot kaldkriipsuga tere 1, Enter, see läheb öelda "tere, David." 860 00:40:10,110 --> 00:40:11,750 >> Aga teeme kolmanda iteratsiooni selle, kus 861 00:40:11,750 --> 00:40:13,380 Programm on tõeliselt dünaamiline. 862 00:40:13,380 --> 00:40:16,770 Lubage mul minna ja muuta faili nimi, just kooskõla 863 00:40:16,770 --> 00:40:20,410 failid on teil võimalik et sa hiljem internetis. 864 00:40:20,410 --> 00:40:21,620 Enter. 865 00:40:21,620 --> 00:40:25,510 Ja nüüd ma lähen minema ja ei salvestada "David" kõva kodeeritud siin. 866 00:40:25,510 --> 00:40:28,826 Mida ma saaksin teha, väga lihtsalt parandada selle programmiga? 867 00:40:28,826 --> 00:40:30,520 >> Ma võiks helistada getString. 868 00:40:30,520 --> 00:40:33,240 See võib olla veidi vähem selge, mis on umbes juhtuda, nii et ma lähen 869 00:40:33,240 --> 00:40:38,470 tegelikult lisada teise rea, printf, ja öelda nimi, koolon, lähedal tsiteerida, lihtsalt 870 00:40:38,470 --> 00:40:40,790 anda kasutajale kiire ekraanil. 871 00:40:40,790 --> 00:40:42,980 Ja nüüd ma lähen siia, ja ma olen kavatse kasutada oma klaviatuuri otseteed. 872 00:40:42,980 --> 00:40:47,680 Ma lähen üles, üles ja muuta tere 1 tere 2 Enter. 873 00:40:47,680 --> 00:40:49,260 Ja õnneks olen saavutanud edu. 874 00:40:49,260 --> 00:40:52,720 >> Ja nüüd ma lähen üles to dot kaldkriipsuga tere ja 875 00:40:52,720 --> 00:40:54,690 muuta, et 2, Enter. 876 00:40:54,690 --> 00:40:55,650 Ja nüüd minu programm - 877 00:40:55,650 --> 00:40:57,700 Ma suumida - muutub veidi ilusamaks. 878 00:40:57,700 --> 00:41:02,190 Nimi saab olema, ütleme, et Rob seekord Sisesta Tere, Rob. 879 00:41:02,190 --> 00:41:03,260 Me ei tee seda uuesti. 880 00:41:03,260 --> 00:41:05,360 Nime, Lauren, Enter. 881 00:41:05,360 --> 00:41:07,820 Nime, Joseph, Enter. 882 00:41:07,820 --> 00:41:11,596 Nimi, proovime olla raske, Enter. 883 00:41:11,596 --> 00:41:12,410 Eh. 884 00:41:12,410 --> 00:41:14,680 See ei ole tegelikult viga. 885 00:41:14,680 --> 00:41:16,090 Nii et see on natuke inetu. 886 00:41:16,090 --> 00:41:18,640 Nii et äkki me võiks lahendada see tulevikus, mitte praegu. 887 00:41:18,640 --> 00:41:20,840 >> Aga kuidas sa instinktiivselt minna käsitledes 888 00:41:20,840 --> 00:41:21,990 mis väljakutse? 889 00:41:21,990 --> 00:41:23,710 See lihtsalt tundub rumal. 890 00:41:23,710 --> 00:41:27,320 Kuidas vältida asju otsin loll? 891 00:41:27,320 --> 00:41:29,890 Nii et me võiksime teha, OK, ma kuulsin paar asju, seisund ja silmus. 892 00:41:29,890 --> 00:41:33,340 Me võiksime kasutada, üks, tingimusel, et kontrollida Mis on pikkus string 893 00:41:33,340 --> 00:41:34,190 kasutaja andis meile? 894 00:41:34,190 --> 00:41:37,100 Ja kui see on 0, see on lihtsalt tsiteerida lõppeb, nad lihtsalt Enter, siis 895 00:41:37,100 --> 00:41:38,930 äkki ma peaks kisa neid ja küsib uuesti. 896 00:41:38,930 --> 00:41:39,970 Aga kuidas kallutada neid uuesti? 897 00:41:39,970 --> 00:41:44,230 Noh, ma kuulsin ka, loop, ja suutsin tee seda uuesti ja uuesti ja uuesti 898 00:41:44,230 --> 00:41:47,010 ajendades kasutaja jaoks sama. 899 00:41:47,010 --> 00:41:48,880 >> Noh, teeme veel ühe näide kasutades erinevat 900 00:41:48,880 --> 00:41:50,620 funktsiooni CS50 raamatukogu. 901 00:41:50,620 --> 00:41:52,330 Lubage mul lõpetada kaebuse. 902 00:41:52,330 --> 00:41:53,510 Lubage mul luua uue. 903 00:41:53,510 --> 00:41:58,510 Ja ma kutsun seda adder.c lihtsalt sellepärast, see on lihtne teha lihtne aritmeetika, 904 00:41:58,510 --> 00:42:00,890 kuigi see on täiesti underwhelming, mida sa võiksid teha 905 00:42:00,890 --> 00:42:02,250 mis tahes kaasaegne arvuti. 906 00:42:02,250 --> 00:42:03,750 >> Aga lubage mul minna nüüd ja - 907 00:42:03,750 --> 00:42:10,680 Õppisin minu õppetund viimane aeg - sisaldab cs50.h sisaldama stdio.h, int 908 00:42:10,680 --> 00:42:14,170 Peamine tühine, mis nüüd, ma lihtsalt võtma pimedat usku, kuid eeldame, 909 00:42:14,170 --> 00:42:16,380 et saab aru, mida see tähendab, et enne pikk. 910 00:42:16,380 --> 00:42:21,030 Ja ma midagi öelda nagu "anna mulle int." 911 00:42:21,030 --> 00:42:22,140 >> Ja nüüd, kuidas ma saan int? 912 00:42:22,140 --> 00:42:26,820 Tahan lõpuks kuulutada muutuja nimetatakse x-tüüpi int ja 913 00:42:26,820 --> 00:42:29,240 salvestada see täisarv kasutaja. 914 00:42:29,240 --> 00:42:29,970 Nii et oli suutäis. 915 00:42:29,970 --> 00:42:35,680 Aga kui keegi tahab teha ettepanekuid, kuidas ma kuulutada täisarv nimetatakse x? 916 00:42:35,680 --> 00:42:36,310 Int x. 917 00:42:36,310 --> 00:42:37,430 >> Nii et see on tõesti nii lihtne. 918 00:42:37,430 --> 00:42:38,240 Anna int. 919 00:42:38,240 --> 00:42:39,070 Kõne see x. 920 00:42:39,070 --> 00:42:40,580 Nüüd ma saan kasutada omistamisoperaatorile. 921 00:42:40,580 --> 00:42:43,400 Ja kuidas ma säilitada alates jäänud raha kasutaja? 922 00:42:43,400 --> 00:42:47,310 Ma ei taha, et helistada getString, Ilmselt vaid getint. 923 00:42:47,310 --> 00:42:49,060 Kõik argumendid? 924 00:42:49,060 --> 00:42:49,350 Ei. 925 00:42:49,350 --> 00:42:51,870 Nii et see on avatud paren lähedal paren kohe, ja siis 926 00:42:51,870 --> 00:42:53,440 semikoolon lõpeb liin. 927 00:42:53,440 --> 00:42:54,930 >> Nüüd lubage mul seda teha uuesti. 928 00:42:54,930 --> 00:42:57,070 Anna mulle veel int. 929 00:42:57,070 --> 00:43:01,850 Seekord ma teen int, olgem kutsume seda y võrdub getint. 930 00:43:01,850 --> 00:43:05,060 Ja nüüd andke mulle midagi super-lihtne nagu natuke matemaatikat. 931 00:43:05,060 --> 00:43:14,340 Nii printf, summa% d on kohatäide int. 932 00:43:14,340 --> 00:43:20,030 Ja% d, periood, Kenoviiva-n. 933 00:43:20,030 --> 00:43:20,360 >> Hea küll. 934 00:43:20,360 --> 00:43:21,670 Nii et see ei ole tegelikult matemaatikat. 935 00:43:21,670 --> 00:43:25,500 Aga kui ma tahan öelda summa selle väärtus pluss see on võrdne selle 936 00:43:25,500 --> 00:43:29,320 muu väärtus, kui palju argumente arvesse kokku peaks ma olla annab printf, 937 00:43:29,320 --> 00:43:30,520 lõpuks? 938 00:43:30,520 --> 00:43:31,420 Nii neli, eks? 939 00:43:31,420 --> 00:43:33,790 Seda stringi ja seejärel kolm väärtust. 940 00:43:33,790 --> 00:43:37,560 Nii x on esimene ma tahan olla ühendatud esimesena% d. 941 00:43:37,560 --> 00:43:39,270 y läheb järgmine. 942 00:43:39,270 --> 00:43:42,030 >> Ja nüüd ma nagu tahaks öelda z, aga z ei eksisteeri. 943 00:43:42,030 --> 00:43:43,190 Aga see ei ole suur asi. 944 00:43:43,190 --> 00:43:45,440 Sest see, mida sa teeksid, instinktiivselt, eriti kui teil on olnud 945 00:43:45,440 --> 00:43:47,820 Graafikavidinate kalkulaator, mida sa kirjutad? 946 00:43:47,820 --> 00:43:48,760 Kuidas x pluss y? 947 00:43:48,760 --> 00:43:50,200 Nii see ei ole tegelik muutuja. 948 00:43:50,200 --> 00:43:51,820 See on lihtsalt summa kaks teised muutujad. 949 00:43:51,820 --> 00:43:53,170 Ja see on täiesti õigustatud. 950 00:43:53,170 --> 00:43:56,630 C kindlasti mõistab lihtne aritmeetika niimoodi. 951 00:43:56,630 --> 00:43:58,450 >> Semikoolon, salvestada. 952 00:43:58,450 --> 00:44:02,080 Nüüd lubage mul minna siin ja kirjuta muuta lisasid, Enter. 953 00:44:02,080 --> 00:44:04,100 No viga, et see on edu ka. 954 00:44:04,100 --> 00:44:04,890 Tüüp rästik. 955 00:44:04,890 --> 00:44:07,100 Ja veel üks kiirklahvi, kui hakkad igavleda 956 00:44:07,100 --> 00:44:08,760 kõik käsud - 957 00:44:08,760 --> 00:44:12,650 kui hakkad käsk, nagu dot kärpida reklaami, ja see on koht, kus oma 958 00:44:12,650 --> 00:44:16,020 igavus tunda, tavaliselt saab löögi Tab on arvuti lõpetada 959 00:44:16,020 --> 00:44:20,510 ülejäänud fraas teile, kui see ei ole ebaselge, milline peaks tulema pärast reklaami. 960 00:44:20,510 --> 00:44:23,950 >> Nii et lubage mul minna nüüd ja klõpsate Enter. 961 00:44:23,950 --> 00:44:27,490 Anna int, 1, 2, ja Õnneks on see 3. 962 00:44:27,490 --> 00:44:29,900 Aga nagu alati, testimise programmid ei tohiks vähendada 963 00:44:29,900 --> 00:44:30,820 lihtsalt üritan seda üks kord. 964 00:44:30,820 --> 00:44:35,560 Las ma proovin nurgas juhul nagu negatiivne 1, anna mulle 1, ning et üks 965 00:44:35,560 --> 00:44:36,210 lahkub samuti. 966 00:44:36,210 --> 00:44:38,870 Ja ma vist tahan teha mõned rohkem range testimise, aga ma olen päris 967 00:44:38,870 --> 00:44:40,630 rahul, kui see on. 968 00:44:40,630 --> 00:44:43,110 >> Noh, nüüd proovime teise programmi et seekord kasutab 969 00:44:43,110 --> 00:44:44,620 natuke teine ​​süntaks. 970 00:44:44,620 --> 00:44:46,100 Lubage mul luua uus fail. 971 00:44:46,100 --> 00:44:51,050 Ma nimetan seda conditions0.c liinile välja mõned proovi kood online. 972 00:44:51,050 --> 00:44:55,550 Ja lubage mul minna ja teha sisaldavad cs50.h sisaldama 973 00:44:55,550 --> 00:45:00,320 stdio.h, peamiste void - 974 00:45:00,320 --> 00:45:01,030 OK. 975 00:45:01,030 --> 00:45:01,850 Vot nii. 976 00:45:01,850 --> 00:45:03,010 Meil on standard stereotüüp. 977 00:45:03,010 --> 00:45:08,170 >> Ja seekord ma lähen ütlen printf, "Ma tahaksin int, palun," lihtsalt 978 00:45:08,170 --> 00:45:10,030 teha kiire vähe sõbralikum. 979 00:45:10,030 --> 00:45:11,620 Ja nüüd ma tahan saada int kasutaja. 980 00:45:11,620 --> 00:45:15,010 Ma kutsun seda n seekord lihtsalt sest n kõlab number. 981 00:45:15,010 --> 00:45:18,140 getint ja nüüd, mida teha Ma tahan teha? 982 00:45:18,140 --> 00:45:21,640 Noh, kui n on - ja ma suumida - 983 00:45:21,640 --> 00:45:25,930 kui n on suurem kui 0, ma tahan teha järgmist - 984 00:45:25,930 --> 00:45:36,060 printf "Sa valisid positiivne number." Else, ma lähen kirjutama printf "Sa 985 00:45:36,060 --> 00:45:37,870 valisin negatiivne 986 00:45:37,870 --> 00:45:39,650 number. "Olgu. 987 00:45:39,650 --> 00:45:44,410 Nii, et see programm, kuigi ma tegin seda kiire, tundub õige süntaktiliselt. 988 00:45:44,410 --> 00:45:45,010 Las ma proovin seda. 989 00:45:45,010 --> 00:45:46,890 Tee seisund 0. 990 00:45:46,890 --> 00:45:47,710 Tundub, et käivitada. 991 00:45:47,710 --> 00:45:49,230 Seisukord 0, siseneda. 992 00:45:49,230 --> 00:45:51,910 Anname ta int 50. 993 00:45:51,910 --> 00:45:53,160 Ma valisin positiivne number. 994 00:45:53,160 --> 00:45:54,230 Proovime uuesti. 995 00:45:54,230 --> 00:45:54,930 Seisukord 0. 996 00:45:54,930 --> 00:45:56,260 Negatiivne 50. 997 00:45:56,260 --> 00:45:57,290 Ma valisin negatiivse numbriga. 998 00:45:57,290 --> 00:46:00,350 >> Aga nüüd, lubage mul valida, mida me hoiame helistades nurgas puhul, mis on rohkem 999 00:46:00,350 --> 00:46:04,702 huvitav juhtum, mis te arvate võib anda teile mõningaid probleeme, 0. 1000 00:46:04,702 --> 00:46:07,940 Nüüd ma olen päris kindel, et see on üks need nurgas kui null on 1001 00:46:07,940 --> 00:46:12,330 ei positiivset ega negatiivset, nii et mu programm, kuigi süntaktiliselt 1002 00:46:12,330 --> 00:46:15,440 õige - ta kogub, see töötab - ei ole loogiliselt korrektne. 1003 00:46:15,440 --> 00:46:21,050 Mis on lihtne fix siin kui ma tahan avastada, kui ma tahan tegeleda n 1004 00:46:21,050 --> 00:46:23,840 võrdub 0 eraldi? 1005 00:46:23,840 --> 00:46:32,980 >> Nii et kui n on 0, siis tahan öelda, midagi printf "Sa valisid 0". 1006 00:46:32,980 --> 00:46:33,990 Las ma proovin seda nüüd. 1007 00:46:33,990 --> 00:46:38,320 Lubage mul minna tagasi siin, selge minu akna ja kompileeri. 1008 00:46:38,320 --> 00:46:38,690 Hm. 1009 00:46:38,690 --> 00:46:39,770 Üks viga tekitada. 1010 00:46:39,770 --> 00:46:41,630 Aga ma soovite kontrollida kui n on 0. 1011 00:46:41,630 --> 00:46:44,230 1012 00:46:44,230 --> 00:46:47,720 >> Nii et taas, teine ​​loll asi harjuda, võrdusmärk on 1013 00:46:47,720 --> 00:46:48,910 omistamisoperaatorile. 1014 00:46:48,910 --> 00:46:52,240 Nii et see on tegelikult viga selles, tehniliselt, kuigi tõlkija 1015 00:46:52,240 --> 00:46:56,450 kaitsta mind ennast, olime tehniliselt kopeerimine 0 võetud n, mis 1016 00:46:56,450 --> 00:46:57,590 ei ole see, mida ma tahan. 1017 00:46:57,590 --> 00:47:00,950 Tahan testida võrdõiguslikkuse koos võrdub võrdsetena. 1018 00:47:00,950 --> 00:47:03,390 Ja nii, et nüüd võiks olla mu parem lahendus. 1019 00:47:03,390 --> 00:47:07,810 >> Lubage mul tegelikult salvestage see nagu, ütleme, nähtavus1, et uus ja parem. 1020 00:47:07,810 --> 00:47:10,480 Nüüd, kui ma kompileerida see, see muudaks tingimused - 1021 00:47:10,480 --> 00:47:16,960 Oih - teha tingimuste kohta1 dot kaldkriips nähtavus1, Enter, "Ma tahaksin int, 1022 00:47:16,960 --> 00:47:18,760 palun. "Ma lähen ees ja tüüp 50. 1023 00:47:18,760 --> 00:47:19,660 See on ikka hea. 1024 00:47:19,660 --> 00:47:21,200 Negatiivne 50, ikka hea. 1025 00:47:21,200 --> 00:47:24,920 0, ja see tõepoolest avastatud et ma valisin 0. 1026 00:47:24,920 --> 00:47:28,200 >> Nii et mida rohkem ma saan nüüd teha selle? 1027 00:47:28,200 --> 00:47:32,280 Noh, saame kindlasti teha järjest keeruline asju. 1028 00:47:32,280 --> 00:47:37,240 Aga mida ma tahaks teha ettepanekuid on et me lõpetame selle teadmiseks siin. 1029 00:47:37,240 --> 00:47:41,680 Kui me tõmba seda, siis näete, võib-olla, lemmik cartoon sinu 1030 00:47:41,680 --> 00:47:43,326 kuni tänase sa võiksid kunagi aru saanud. 1031 00:47:43,326 --> 00:47:46,550 1032 00:47:46,550 --> 00:47:49,520 Ja see on umbes kvaliteedi naer sa peaksid koos CS nalja. 1033 00:47:49,520 --> 00:47:51,060 Nii et õige. 1034 00:47:51,060 --> 00:47:54,900 >> Aga rohkem compellingly, ma mõtlesin, et ma anna meile veidi teaser esmaspäeval. 1035 00:47:54,900 --> 00:47:56,430 Nii et me oleme alustanud kasutades täisarvu. 1036 00:47:56,430 --> 00:47:57,510 Oleme nimetatud ujukid. 1037 00:47:57,510 --> 00:48:00,120 Me oleme isegi nimetatud paarismängus mis jällegi annab teile numbrid 1038 00:48:00,120 --> 00:48:01,390 pärast koma. 1039 00:48:01,390 --> 00:48:04,230 >> Aga selgub, et ujukite ja kahekordistub, ja tõesti, arvutid, 1040 00:48:04,230 --> 00:48:08,470 Põhimõtteliselt ei saa väljendada mõned väärtused täpselt. 1041 00:48:08,470 --> 00:48:12,840 Me teame matemaatika klassi, mida saate mingit numbrite arv pärast 1042 00:48:12,840 --> 00:48:13,510 koma. 1043 00:48:13,510 --> 00:48:16,460 Ja te võite isegi panna püstkriips öelda need kesta igavesti. 1044 00:48:16,460 --> 00:48:18,810 >> Kahjuks te ei saa tõesti teha, et arvuti. 1045 00:48:18,810 --> 00:48:20,400 Ja nii nurgas juhtudel tekivad. 1046 00:48:20,400 --> 00:48:23,120 Oletame näiteks, et sa oled midagi rahaline. 1047 00:48:23,120 --> 00:48:25,700 Sa teed matemaatika protsentidega, ning 1048 00:48:25,700 --> 00:48:27,030 koos dollarites ja sentides. 1049 00:48:27,030 --> 00:48:29,230 Ja need senti ei tingimata rivistama. 1050 00:48:29,230 --> 00:48:34,120 Noh, selgub, et fraktsioonid penne saab hakata küündivad kui 1051 00:48:34,120 --> 00:48:37,250 modelleerida arvutisüsteemi sellisel viisil, et tark 1052 00:48:37,250 --> 00:48:39,100 inimesed võivad ära kasutada. 1053 00:48:39,100 --> 00:48:42,650 >> Ja neile, kes ei ole näinud, ma meeldib sulle 30-sekundiline teaser 1054 00:48:42,650 --> 00:48:48,290 suurepärane film tuntud bürooruumid, mis joonistab pildi 1055 00:48:48,290 --> 00:48:51,205 probleem meil lahendada Esimene asi, mida esmaspäeval. 1056 00:48:51,205 --> 00:48:53,960 Kui me saaksime tõsta maht natuke, ma annan teile 30 1057 00:48:53,960 --> 00:48:55,495 sekundit kontoripinda. 1058 00:48:55,495 --> 00:48:55,770 >> [VIDEO PLAYBACK] 1059 00:48:55,770 --> 00:48:59,000 >> -Sa ju, sa ei ole olnud, mis näitab up ja saad hoida oma tööd. 1060 00:48:59,000 --> 00:49:00,620 >> -Tegelikult ma reklaamitakse. 1061 00:49:00,620 --> 00:49:03,240 >> -Ma võiks programmeerida viirus, et tahaks rip et koht ära suur aega. 1062 00:49:03,240 --> 00:49:04,430 >> -Noh, kuidas see töötab? 1063 00:49:04,430 --> 00:49:06,782 >> -Iga kord seal pangaoperatsioon kus intress on arvutatud, ja seal 1064 00:49:06,782 --> 00:49:10,160 On tuhandeid päevas, arvuti lõpeb kuni nende fraktsioonid protsenti. 1065 00:49:10,160 --> 00:49:12,030 >> -Aga ma ei kavatse tee midagi ebaseaduslikku. 1066 00:49:12,030 --> 00:49:12,660 >> -Ebaseaduslik? 1067 00:49:12,660 --> 00:49:15,075 Samir, see on Ameerika. 1068 00:49:15,075 --> 00:49:16,570 >> -Me peame vannun. 1069 00:49:16,570 --> 00:49:19,070 >> -Kui keegi ei tea seda aga meile, eks? 1070 00:49:19,070 --> 00:49:21,920 No pereliikmeid ei sõbrannade kedagi. 1071 00:49:21,920 --> 00:49:22,700 >> -Muidugi. 1072 00:49:22,700 --> 00:49:23,320 >> -Nõus. 1073 00:49:23,320 --> 00:49:24,280 >> -Ära muretse, mees. 1074 00:49:24,280 --> 00:49:25,640 Ma ei ütle kellelegi kas. 1075 00:49:25,640 --> 00:49:26,504 >> [END VIDEO PLAYBACK] 1076 00:49:26,504 --> 00:49:30,030 >> DAVID Malan: Nii et see on siis CS50, mis oli Office Space, ja see kõik 1077 00:49:30,030 --> 00:49:31,465 mõtet esmaspäeval. 1078 00:49:31,465 --> 00:49:33,940 Näeme siis. 1079 00:49:33,940 --> 00:49:37,880 >> Jutustaja: Järgmisel CS50, Rob kohaneb kustunud 1080 00:49:37,880 --> 00:49:39,130 Harvardi söömisharjumused. 1081 00:49:39,130 --> 00:49:56,160