1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [Videó lejátszás] 3 00:00:16,626 --> 00:00:19,410 >> -A Diadala matematikai és mechanikai készség 4 00:00:19,410 --> 00:00:23,270 Ez a nagy új automata számológép a Harvard Egyetemen. 5 00:00:23,270 --> 00:00:27,140 Bonyolult problémákat a matematika tedd át a gépen kódolt formában 6 00:00:27,140 --> 00:00:31,710 szalagon pontosan megoldani, perc töredéke a szükséges idő 7 00:00:31,710 --> 00:00:32,819 Az emberi számítás. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Úgy tervezték, hogy felgyorsítsa minden formáját matematikai és tudományos kutatás, 10 00:00:48,220 --> 00:00:53,840 az óriás mechanikus agyat működni fog Az Egyesült Államok Haditengerészete, amíg a háború végén. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [Lejátszás vége] 13 00:01:06,570 --> 00:01:08,590 >> David J. MALAN: Ez a CS50. 14 00:01:08,590 --> 00:01:10,590 Az elmúlt egy varázslatos hely, de ha valaha 15 00:01:10,590 --> 00:01:13,366 vajon mi a másik készülék A Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 ez valóban része a Harvard Mark I, és ez 17 00:01:16,150 --> 00:01:18,710 ott kiállított most az elmúlt évek. 18 00:01:18,710 --> 00:01:20,590 És mit fogsz látni ágyazott probléma szett 19 00:01:20,590 --> 00:01:24,416 az egyik egy pillantást a színfalak mögött hogy milyen az adott eszköz volt, és igen, 20 00:01:24,416 --> 00:01:27,540 professzor Harry Lewis, aki a A Számítástudományi Tanszék itt. 21 00:01:27,540 --> 00:01:29,440 Így még az, hogy csak egy kicsit. 22 00:01:29,440 --> 00:01:33,990 >> De ma elkezdjük átmenet a múlt héten, hogy ez az, 23 00:01:33,990 --> 00:01:37,290 és mi, említést Egy fénykép itt 24 00:01:37,290 --> 00:01:38,630 Ez tulajdonképpen elég híres. 25 00:01:38,630 --> 00:01:42,270 Tudja valaki, hogy mi ez a Itt van a képernyőn? 26 00:01:42,270 --> 00:01:43,880 Legalábbis a legendák szerint. 27 00:01:43,880 --> 00:01:44,837 Igen. 28 00:01:44,837 --> 00:01:45,920 Közönség: Az első vírus. 29 00:01:45,920 --> 00:01:49,570 David J. MALAN: Így volt állítólag Az első tényleges hiba a számítógépen. 30 00:01:49,570 --> 00:01:52,490 Most a valóságban szó bug, A hiba a programban, 31 00:01:52,490 --> 00:01:55,250 már velünk néhány időt a fizikai világban, 32 00:01:55,250 --> 00:01:58,190 és ez volt az egyik első dokumentált alkalommal, amikor valaki valóban 33 00:01:58,190 --> 00:02:02,280 leszedett egy nagy lepke ki a Mark II számítógép, tedd a kötőanyag, 34 00:02:02,280 --> 00:02:05,006 majd felvettük mint az első ismert hiba 35 00:02:05,006 --> 00:02:06,630 hogy valóban találtak fizikailag. 36 00:02:06,630 --> 00:02:10,104 Szóval így került be hogy a mai tan. 37 00:02:10,104 --> 00:02:12,020 Mindent utolsó heti online elérhető. 38 00:02:12,020 --> 00:02:14,840 Különösen források, hogy lehet, nem feltétlenül veszi észre, különösen 39 00:02:14,840 --> 00:02:15,881 ha idejön személyesen. 40 00:02:15,881 --> 00:02:20,230 Tehát az egyik tanítási fickók minden évi teszi a kanonikus sor jegyzetek, 41 00:02:20,230 --> 00:02:22,010 így nem kell tartani le a fejed, és megpróbálta 42 00:02:22,010 --> 00:02:24,410 átírni leginkább semmit hogy megtörténhet itt az osztályban. 43 00:02:24,410 --> 00:02:25,940 Így megállapítható, hogy ezek úgynevezett [? Scribd?] Jegyzetek 44 00:02:25,940 --> 00:02:29,350 online, minden bizonnyal a diák és forráskódot, hogy használjuk az osztályban. 45 00:02:29,350 --> 00:02:31,436 Azt, hogy teljes szöveg átirata is elérhető. 46 00:02:31,436 --> 00:02:34,310 Tehát, ha homályosan emlékszem néhány távon, és szeretné, hogy keresse ki egy kicsit 47 00:02:34,310 --> 00:02:37,280 könnyebben, rájönnek, hogy minden Az, hogy az online kereshető. 48 00:02:37,280 --> 00:02:38,930 Csakúgy, mint walkthroughs is. 49 00:02:38,930 --> 00:02:42,710 Valóban, ma elkezdjük nézni alacsonyabb szintű programozási nyelv, 50 00:02:42,710 --> 00:02:45,290 hamarosan ismert számunkra mint a C, és ez nagyon könnyű 51 00:02:45,290 --> 00:02:48,820 a fajta eltévedni után néhány pillanatok időt, majd egyfajta csoda 52 00:02:48,820 --> 00:02:52,370 hogyan is van, hogy néhány összetettebb példa a legegyszerűbb. 53 00:02:52,370 --> 00:02:54,975 És így észre fogunk cseresznye vedd során osztály néhány 54 00:02:54,975 --> 00:02:57,850 A reprezentatív példák, de észre, hogy sokkal több is 55 00:02:57,850 --> 00:03:01,140 online elérhető, így a munka rajta a saját tempójában, 56 00:03:01,140 --> 00:03:02,950 Ugyanakkor maga a legkényelmesebb. 57 00:03:02,950 --> 00:03:05,200 >> De mi maradt le programok, amelyek éppen ezt. 58 00:03:05,200 --> 00:03:09,690 Szóval kattintson a zöld zászlót, és mit jelent ez a program nem? 59 00:03:09,690 --> 00:03:10,710 Mondja, hello, világ. 60 00:03:10,710 --> 00:03:13,180 Lehetővé teszi a macska mondják Hello az ő kis világában 61 00:03:13,180 --> 00:03:15,990 A bal felső sarkában A Scratch felhasználói felületet. 62 00:03:15,990 --> 00:03:18,810 De kezdtük bevezetni Néhány terminológiai múlt héten. 63 00:03:18,810 --> 00:03:23,614 És igen, a dolgok, mint ez hívtuk mi? 64 00:03:23,614 --> 00:03:25,280 Mi lehet az általános kifejezés ez? 65 00:03:25,280 --> 00:03:26,266 Igen. 66 00:03:26,266 --> 00:03:28,210 A módszer vagy egy nyilatkozatot. 67 00:03:28,210 --> 00:03:29,280 Persze, ez egy akció. 68 00:03:29,280 --> 00:03:30,140 Tegye ezt. 69 00:03:30,140 --> 00:03:32,400 És mégis voltak más formák a semmiből, 70 00:03:32,400 --> 00:03:35,360 mellett ezek az úgynevezett nyilatkozatot, ők is 71 00:03:35,360 --> 00:03:38,221 dolgok, mint ez, amit az úgynevezett mi? 72 00:03:38,221 --> 00:03:38,720 Igen. 73 00:03:38,720 --> 00:03:39,634 Tehát egy hurok. 74 00:03:39,634 --> 00:03:42,050 És ebben az esetben, ez a dolog ismétli, nyilván, 10-szer. 75 00:03:42,050 --> 00:03:43,040 Van egy örökké blokk. 76 00:03:43,040 --> 00:03:44,164 Van egy pár mások. 77 00:03:44,164 --> 00:03:48,309 És ma megyünk, hogy hogyan kell lefordítani ezt egy modernebb világban, 78 00:03:48,309 --> 00:03:50,850 ha úgy tetszik, annak ellenére, hogy fog megjelenni az első pillantásra 79 00:03:50,850 --> 00:03:52,024 hogy sokkal misztikus. 80 00:03:52,024 --> 00:03:53,190 De azok valóban hurkok. 81 00:03:53,190 --> 00:03:56,182 És akkor mi van a dolgok, mint ez, ami már ezt a formát, 82 00:03:56,182 --> 00:03:57,515 és lényegében feltett kérdésekre. 83 00:03:57,515 --> 00:03:58,890 És mi utalt ezekre, mi? 84 00:03:58,890 --> 00:03:59,762 >> Közönség: logikai kifejezés. 85 00:03:59,762 --> 00:04:00,320 >> David J. MALAN: Igen. 86 00:04:00,320 --> 00:04:01,340 Logikai kifejezést. 87 00:04:01,340 --> 00:04:04,502 Valami, ami vagy igaz, vagy hamis, igen vagy nem, egy vagy nulla, 88 00:04:04,502 --> 00:04:05,960 Ugyanakkor azt szeretnénk, hogy a világot. 89 00:04:05,960 --> 00:04:08,335 De hívtuk ezeket a logikai kifejezéseket, és mi dugja 90 00:04:08,335 --> 00:04:09,900 a feltételeket, vagy fióktelepek. 91 00:04:09,900 --> 00:04:12,170 És a világ Scratch, mindent szépen 92 00:04:12,170 --> 00:04:15,460 blokkolókat szempontjából az alakját, ha ettől logikai értelemben, hogy erre, 93 00:04:15,460 --> 00:04:18,490 de nem kell megállni, csak csinál egy dolgot feltételesen, 94 00:04:18,490 --> 00:04:20,450 akkor egy közmondásos útelágazáshoz 95 00:04:20,450 --> 00:04:24,040 és tegye ezt vagy azt, ha a feltétel igaz, vagy sem. 96 00:04:24,040 --> 00:04:26,040 És akkor, mint látni fogod, ha még nem tetted meg, 97 00:04:26,040 --> 00:04:27,480 Akkor is fészket ezeket a blokkokat. 98 00:04:27,480 --> 00:04:32,110 Tehát Scratch növekedése kitölti az alakzatok hogy érdemes beilleszteni azt, 99 00:04:32,110 --> 00:04:35,330 így tulajdonképpen kifejezni a legtöbb minden logikát, hogy érdemes csinálni. 100 00:04:35,330 --> 00:04:38,220 >> Most néhány szót a hirdetést mind itt, és New Haven. 101 00:04:38,220 --> 00:04:39,370 Tehát vágási ma kezdődik. 102 00:04:39,370 --> 00:04:42,120 Az URL-t, ez a tanfolyam honlap, azok számára ismeretlen. 103 00:04:42,120 --> 00:04:43,970 Szakaszok lesz lehetőséget, hogy együtt legyünk 104 00:04:43,970 --> 00:04:46,553 egy sokkal intimebb környezetben mint [? Sanders?] Lehetővé teszi, 105 00:04:46,553 --> 00:04:50,347 a 10 és 20 osztálytársai egy tanítás munkatársa különböző pályákon, 106 00:04:50,347 --> 00:04:51,930 és eltérő ütemben, ha úgy döntenek. 107 00:04:51,930 --> 00:04:54,080 Sőt, a kurzus ajánlatok különböző szakaszok 108 00:04:54,080 --> 00:04:57,340 a kevésbé kényelmes, több kényelmes, és valahol a kettő között, 109 00:04:57,340 --> 00:04:59,860 és szerepe a hüvelykujj itt, nincs hivatalos meghatározása, 110 00:04:59,860 --> 00:05:04,600 de ha kevésbé kényelmes, Ön milyen is tudod. 111 00:05:04,600 --> 00:05:07,470 Te egy kicsit merész a gondolata lépett láb, talán vissza 112 00:05:07,470 --> 00:05:10,130 az osztályteremben, vagy bemutató akár egy in közötti részben. 113 00:05:10,130 --> 00:05:12,770 Ha már programozási mióta Hat éves, kényelmesebb, 114 00:05:12,770 --> 00:05:13,400 Talán az Ön számára. 115 00:05:13,400 --> 00:05:16,150 És ha ez a fajta dobás-ig, hogy pontosan mi a kettő között 116 00:05:16,150 --> 00:05:17,190 azt jelentette, hogy. 117 00:05:17,190 --> 00:05:18,410 >> Most, az időközben egy osztály ilyen méretű, 118 00:05:18,410 --> 00:05:21,326 ez visz minket jó ideje szakasz mindenkinek, így már az úgynevezett, 119 00:05:21,326 --> 00:05:24,030 szuper szakaszok, jön ez a hétvégén és a jövő hét elején, 120 00:05:24,030 --> 00:05:26,570 ezért vessünk egy pillantást a tanfolyam honlapján azok számára, akik természetesen széles, 121 00:05:26,570 --> 00:05:28,610 és azt is forgatták azoknak akik nem tudják azokat. 122 00:05:28,610 --> 00:05:33,470 És szakaszok maguk indul A héten három CS50 nulla index. 123 00:05:33,470 --> 00:05:35,880 Probléma állítsa 0 már A tanfolyam honlapján. 124 00:05:35,880 --> 00:05:40,010 És észre, hogy te is Kilenc nap végén ebben a félévben. 125 00:05:40,010 --> 00:05:43,240 Szóval ez egy frissítés a tavalyi évben, amikor már öt nap végén. 126 00:05:43,240 --> 00:05:46,210 >> Tehát ha kíváncsiak vagytok, már kilenc probléma készletek. 127 00:05:46,210 --> 00:05:53,200 Van kilenc késő nap, amelyek mindegyike akkor csak eltölteni egy heti. 128 00:05:53,200 --> 00:05:56,089 Amely hatékonyan teszi az összes A probléma határozza miatt péntek 129 00:05:56,089 --> 00:05:58,630 de a cél az, hogy egy kicsit kis pszichológiai nyomás 130 00:05:58,630 --> 00:06:01,100 rajtad, hogy meg kell kérni dolgokat csütörtökön 131 00:06:01,100 --> 00:06:03,960 mert hamarosan kiderül, jobb vagy rosszabb, a legtöbb 132 00:06:03,960 --> 00:06:07,820 mindent a szoftverek világában köt ki figyelembe sokkal hosszabb, mint amit előre. 133 00:06:07,820 --> 00:06:10,620 Így tartja egyfajta A lehetőséget, hogy segítsen 134 00:06:10,620 --> 00:06:13,880 magát a cél, csütörtök de szereti a jólétet, hogy igen, 135 00:06:13,880 --> 00:06:14,950 mindent annak köszönhető, pénteken. 136 00:06:14,950 --> 00:06:17,590 És ha be őket Csütörtök, ez csodálatos. 137 00:06:17,590 --> 00:06:21,020 Nincs bónusz pontokat, vagy extra hitelt e határidő betartásával. 138 00:06:21,020 --> 00:06:23,250 Ez azt jelentette, hogy egy mankó csak. 139 00:06:23,250 --> 00:06:25,810 >> És munkaidőben, mind itt és a New Haven, 140 00:06:25,810 --> 00:06:28,840 személyesen, ha azt szeretné, hogy találkozni bármelyik tanfolyamok 141 00:06:28,840 --> 00:06:31,060 tanítás társaival és CA segítségért. 142 00:06:31,060 --> 00:06:31,640 >> Minden rendben. 143 00:06:31,640 --> 00:06:33,110 Tehát most, csináljuk meg ezt valóságosabb. 144 00:06:33,110 --> 00:06:35,470 És egy pillanatra, hogy fog kezdeni hogy egy kicsit misztikus, de nagyon 145 00:06:35,470 --> 00:06:37,310 Gyorsan pénteken és Jövő héten lesz 146 00:06:37,310 --> 00:06:41,230 képes erre sokkal több, mint tudtunk eddig a Scratch. 147 00:06:41,230 --> 00:06:44,350 Szóval mi vezetett kód utolsó héten, bár pictoral. 148 00:06:44,350 --> 00:06:45,620 Ez volt puzzle-darabokat. 149 00:06:45,620 --> 00:06:48,800 És mi formalizált, hogy ez úgynevezett forráskódját, 150 00:06:48,800 --> 00:06:50,330 de azt nem néz ki? 151 00:06:50,330 --> 00:06:52,550 Nos, úgy nézett ki egy kicsit valami ilyesmi. 152 00:06:52,550 --> 00:06:55,410 És, sőt, csak azért, hogy a fajta kötekedik, ahol tudunk menni ezzel. 153 00:06:55,410 --> 00:06:57,800 Megyek megy előre, és nyit egy ablakot itt, 154 00:06:57,800 --> 00:06:59,810 és én csak fog választani Új fájl. 155 00:06:59,810 --> 00:07:03,200 És fogom menteni a fájlt mint valami ilyesmi: helló pont c. 156 00:07:03,200 --> 00:07:05,700 Több az, hogy megválasztása szóval csak egy pillanatra. 157 00:07:05,700 --> 00:07:08,630 És ez hogyan valaki megy a programot írni. 158 00:07:08,630 --> 00:07:13,990 Közé tartoznak a standard I / O pont h, int main void, majd nyitott zárójel, közel 159 00:07:13,990 --> 00:07:19,430 kapcsos zárójel, printf helló vesszővel világon, backslash n, pontosvessző, mentése, kész. 160 00:07:19,430 --> 00:07:19,930 OKÉ. 161 00:07:19,930 --> 00:07:21,670 Írtam az első program, de ez meg fog 162 00:07:21,670 --> 00:07:23,878 hogy hihetetlenül underwhelmed mert amikor ténylegesen 163 00:07:23,878 --> 00:07:27,352 futtatni ezt a programot, persze, az első írás, hogy hello, 164 00:07:27,352 --> 00:07:30,310 majd dot perjel hello, és mi végig ezt sokkal részletesebben 165 00:07:30,310 --> 00:07:31,730 Egy pillanat, ez minden, hogy nem. 166 00:07:31,730 --> 00:07:33,270 Nem kinyílik minden ablakot. 167 00:07:33,270 --> 00:07:35,070 Nem csinál semmit különösen divatos. 168 00:07:35,070 --> 00:07:38,830 Csak annyit tesz, amit mondtam, hogy csinálni, de hogyan jutunk hozzá? 169 00:07:38,830 --> 00:07:40,560 És hogyan épít, hogy? 170 00:07:40,560 --> 00:07:43,430 Nos, nézzük tegyünk néhány különböző fogalom itt. 171 00:07:43,430 --> 00:07:47,170 >> Tehát az egyik, mi vagyunk az indulásra segítségével a program neve egy fordító. 172 00:07:47,170 --> 00:07:51,470 A fordító létezik a Mac OS, Windows, Linux, tetszőleges számú operációs rendszerek, 173 00:07:51,470 --> 00:07:54,540 és mi hamarosan bevezetni, ha az környezetben fogjuk használni, 174 00:07:54,540 --> 00:07:57,410 de a fordító csak egy általános kifejezés egy szoftver 175 00:07:57,410 --> 00:08:01,940 vevő forráskódot és termel tárgykód belőle. 176 00:08:01,940 --> 00:08:03,940 Más szavakkal, ha Van input a forrás 177 00:08:03,940 --> 00:08:08,250 kódot, olyasmi, mint amit csak gépelt, Végső soron termel tárgykód. 178 00:08:08,250 --> 00:08:11,780 És tárgykód tényleg csak divatos módja mondván, hogy kiadja 179 00:08:11,780 --> 00:08:12,926 nulla és az ember. 180 00:08:12,926 --> 00:08:14,800 Más szavakkal, forrás kódot, bár ez 181 00:08:14,800 --> 00:08:17,240 fognak nézni egy kicsit misztikus, és egy kicsit kevésbé barátságos 182 00:08:17,240 --> 00:08:19,590 mint Scratch első pillantásra, ez legalább valami 183 00:08:19,590 --> 00:08:21,120 hogy mi, emberek is megértsék. 184 00:08:21,120 --> 00:08:24,360 Ez a fajta néz ki, és úgy hangzik, mint Angol bár ez igen szűkszavú. 185 00:08:24,360 --> 00:08:28,040 Mivel programozás nulla és az ember, mint elődeink kellett csinálni, 186 00:08:28,040 --> 00:08:30,920 Néhány évvel ezelőtt, nem volt Különösen jó kihívás. 187 00:08:30,920 --> 00:08:33,710 És mégis, ez az, amit a számítógép még mindig érti. 188 00:08:33,710 --> 00:08:37,010 Tehát fordító kapja meg minket forráskód tiltakozni kódot. 189 00:08:37,010 --> 00:08:39,860 Ez olyan, mint egy fájl megnyitásakor a fordító, és amikor menteni, 190 00:08:39,860 --> 00:08:41,419 szerezted azokat nullák. 191 00:08:41,419 --> 00:08:43,419 Szóval majd meglátjuk, hogyan kell csinálni hogy csak egy pillanatra. 192 00:08:43,419 --> 00:08:47,400 >> De nézzük most megpróbálunk egy hidat a múlt héten, és ez, 193 00:08:47,400 --> 00:08:50,660 így még akkor is kap letette a dolgok, mint kapcsoszárójele, 194 00:08:50,660 --> 00:08:54,100 és a pontosvessző, és zárójelben, és az összes ilyen intellektuálisan érdekes 195 00:08:54,100 --> 00:08:57,620 szempontokat a programozás, hogy nagyon Érthető utazás emberek korán, 196 00:08:57,620 --> 00:09:00,930 észre, hogy az összes ötletet Ma, jelentése ugyanaz, mint az utolsó. 197 00:09:00,930 --> 00:09:03,975 Így a múlt, láttuk ezt a példát Itt, Hello World programban. 198 00:09:03,975 --> 00:09:07,500 Nos, a mai naptól, ha azt akarjuk, végrehajtásához, hogy ugyanaz a program, 199 00:09:07,500 --> 00:09:10,800 ez meg fog látszani kicsit valami ilyesmi. 200 00:09:10,800 --> 00:09:14,040 És mi magyarázza nemsokára mi int, és a fő, és semmis, és minden, 201 00:09:14,040 --> 00:09:18,770 van, de legalább látok itt Már az ismerős Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Közben ilyeneket funkciót, köszönni, 203 00:09:20,860 --> 00:09:23,570 nagyon egyszerűen megy, hogy egy Nagyon egyszerű nyilatkozatot, mint ez. 204 00:09:23,570 --> 00:09:26,930 Printf hello world, némi idézi, egy backslash, 205 00:09:26,930 --> 00:09:29,780 pontosvessző, de bővebben jönni. 206 00:09:29,780 --> 00:09:34,066 Hurkok, eközben ez egy hurok, hogy Persze, mondja hello world örökre, 207 00:09:34,066 --> 00:09:36,690 és ez fog kinézni a kicsit furcsább, mint a legutóbbi, 208 00:09:36,690 --> 00:09:39,530 de ha azt mondom, valami szerű, míg igaz, én 209 00:09:39,530 --> 00:09:44,050 Ezután nyomtassa ki Helló világ újra és újra és újra és újra. 210 00:09:44,050 --> 00:09:46,660 És akkor, mint te kedves A kezdeni következtetni itt, 211 00:09:46,660 --> 00:09:49,070 Ennek az egyezménynek a kapcsoszárójele kedves 212 00:09:49,070 --> 00:09:52,050 hasonló felölelő tagolt kódsort van. 213 00:09:52,050 --> 00:09:55,840 A printf kódsort hasonlóan a sárga puzzle-darab fölé. 214 00:09:55,840 --> 00:09:58,740 Szóval nem fogunk mondani örökre, fogjuk mondani, miközben igaz, 215 00:09:58,740 --> 00:10:01,020 de majd meglátjuk, hogy miért van csak egy kicsit. 216 00:10:01,020 --> 00:10:04,210 >> Közben, ha van egy hurok, mint ez, ahol ismételje valami véges 217 00:10:04,210 --> 00:10:07,730 számú alkalommal, ez is ez megy, hogy egy kicsit szokni 218 00:10:07,730 --> 00:10:12,820 , de ez meg fog mondani az int i jelentkeznek nulla, i kevesebb, mint 10, i ++, 219 00:10:12,820 --> 00:10:14,056 majd printf újra. 220 00:10:14,056 --> 00:10:15,430 De lesz mintákat. 221 00:10:15,430 --> 00:10:18,434 És azoknak, ismerős AP Computer Science, vagy a Java, 222 00:10:18,434 --> 00:10:21,100 vagy akárhány más nyelveken, Szinte minden ilyen konstrukciók 223 00:10:21,100 --> 00:10:23,820 Eddig kell nézni többnyire ismerős. 224 00:10:23,820 --> 00:10:24,680 >> Szóval változó. 225 00:10:24,680 --> 00:10:29,270 Tehát itt egy egyszerű Scratch részlet, hogy állítja egy változó nevű nullára, 226 00:10:29,270 --> 00:10:33,150 majd örökre szól az ellen, és majd módosítja a számláló eggyel. 227 00:10:33,150 --> 00:10:37,030 Tehát nullával kezdődik, majd egy, kettő, három. 228 00:10:37,030 --> 00:10:42,560 Nos, hogyan lehet bemutatjuk, hogy a ez az új nyelv, egy kicsit hasonló? 229 00:10:42,560 --> 00:10:45,460 Int számláló értéke nulla, míg igaz, ami 230 00:10:45,460 --> 00:10:48,100 az, hogy ugyanaz az ötlet elől csinál valamit örökre, 231 00:10:48,100 --> 00:10:49,530 és én csak fog printf. 232 00:10:49,530 --> 00:10:53,310 És most már kezd egy kicsit furcsa, százalékkal i, de erről bővebben jönni, 233 00:10:53,310 --> 00:10:55,140 de ezek az elképzelések pontosan ugyanaz. 234 00:10:55,140 --> 00:10:58,820 Csak most, hogy tartsák be a szintaxis, hogy a számítógép 235 00:10:58,820 --> 00:11:00,010 fog követelni tőlünk. 236 00:11:00,010 --> 00:11:04,620 >> Logikai kifejezést, valami ilyesmi sx kevesebb, mint Y, vagy x kisebb, mint Y, 237 00:11:04,620 --> 00:11:06,354 és y kevesebb, mint z. 238 00:11:06,354 --> 00:11:09,270 Meg fog nézni egy kicsit valamit mint ez, csak zárójelben 239 00:11:09,270 --> 00:11:13,020 mint a matematika jó intézkedés, hogy csak arról, hogy a műveletek sorrendjét 240 00:11:13,020 --> 00:11:14,750 olyan kívánunk. 241 00:11:14,750 --> 00:11:15,600 És most, feltételeit. 242 00:11:15,600 --> 00:11:21,220 Tehát, ha x kisebb mint y, mondjuk x kisebb mint Y, mást, ha x nagyobb, mint Y, 243 00:11:21,220 --> 00:11:26,020 mondjuk x nagyobb, mint Y, egyébként logikusan, x egyenlőnek kell lennie y. 244 00:11:26,020 --> 00:11:28,710 Szóval lehet, hogy végre ilyet Scratch, 245 00:11:28,710 --> 00:11:31,230 vagy lehet, hogy végre ebben a szintaxis. 246 00:11:31,230 --> 00:11:35,090 És ismét, a kapcsos zárójelek fajta ami nekünk ugyanolyan alakú, mint a puzzle 247 00:11:35,090 --> 00:11:40,750 darab, de a szintaxis, most, talán kezdve követni néhány mintát. 248 00:11:40,750 --> 00:11:42,910 >> Szóval, mit jelent ez nekünk itt? 249 00:11:42,910 --> 00:11:45,260 Úgyhogy majd vissza a mi fő program. 250 00:11:45,260 --> 00:11:47,930 Nézzük valóban, most, vele valamit. 251 00:11:47,930 --> 00:11:50,660 Tehát ebben a legelső sorban látunk éles közé, 252 00:11:50,660 --> 00:11:53,160 standard I / O, pont h, és majd néhány furcsa szögben 253 00:11:53,160 --> 00:11:57,330 zárójelben alatta. int main void, majd printf hello world. 254 00:11:57,330 --> 00:11:58,200 Tehát csak egy lépést. 255 00:11:58,200 --> 00:12:02,440 Valaki, aki soha nem programozott előtt, Legalább magyarázza az egyik ilyen vonalak. 256 00:12:02,440 --> 00:12:04,490 Segítségével talán néhányan szaknyelvben az elmúlt héten. 257 00:12:04,490 --> 00:12:06,942 Mi printf például? 258 00:12:06,942 --> 00:12:07,442 Igen. 259 00:12:07,442 --> 00:12:08,410 >> Közönség: [hallható] 260 00:12:08,410 --> 00:12:08,610 >> David J. MALAN: Igen. 261 00:12:08,610 --> 00:12:11,380 Ez egy funkciót, vagy egy nyilatkozatot, a múlt heti terminológiát. 262 00:12:11,380 --> 00:12:13,470 És ez egy akció hogy csinál valamit. 263 00:12:13,470 --> 00:12:15,855 Most ezt a funkciót, vagy ez a kijelentés, nem 264 00:12:15,855 --> 00:12:17,550 úgy tűnik, hogy valamilyen input? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 És mi értelme van Úgy tűnik, hogy a bemenet, ha igen? 267 00:12:24,380 --> 00:12:26,180 Bemenet, mit értek ez alatt? 268 00:12:26,180 --> 00:12:26,720 Igen. 269 00:12:26,720 --> 00:12:27,595 >> Közönség: [hallható] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 David J. MALAN: Igen. 272 00:12:31,440 --> 00:12:34,890 Tehát kihúz néhány puzzle-darabokat ahol parametrize meg. 273 00:12:34,890 --> 00:12:37,980 Meg tudná mondani az ismétlés blokkolja hányszor ismételje meg, 274 00:12:37,980 --> 00:12:40,320 úgy, hogy volt egy bemenetére fajta, és mint Scratch 275 00:12:40,320 --> 00:12:43,060 Volt egy kis fehér helykitöltő A szám azt írja, 276 00:12:43,060 --> 00:12:45,810 Mi is tudjuk használni ebben az szöveget világ zárójelben 277 00:12:45,810 --> 00:12:49,910 hogy nekünk, hogy kör alakú, amibe mi is dugja a bemenet. 278 00:12:49,910 --> 00:12:53,180 Végtére is, tíz évvel ezelőtt ha ez a nyelv, az úgynevezett C, 279 00:12:53,180 --> 00:12:55,950 találták senki várható, hogy ez egy közülünk, 280 00:12:55,950 --> 00:12:59,420 Ezek néhány évvel később, mi lenne szeretnénk, hogy a funkció köszön. 281 00:12:59,420 --> 00:12:59,920 Jobb? 282 00:12:59,920 --> 00:13:02,880 Jó lenne, ha lenne egy puzzle-darab, vagy egy kulcs szó, 283 00:13:02,880 --> 00:13:05,502 hogy hívják hello, hogy szó szerint csak köszön. 284 00:13:05,502 --> 00:13:06,460 De nem kell, hogy. 285 00:13:06,460 --> 00:13:09,320 Mi lehet valami sokkal alacsonyabb szinten, mint egy általános nyomtatási 286 00:13:09,320 --> 00:13:12,760 parancsot, hogy vesz bemenet, és kiírja, amit csak akarunk. 287 00:13:12,760 --> 00:13:14,960 Tehát észre őt a minta hogy kezd kialakulni. 288 00:13:14,960 --> 00:13:19,310 Nyílt zárójel, közel zárójel van láthatóan magába a bemeneti, 289 00:13:19,310 --> 00:13:21,770 és akkor látom a kettős idézi a két végét. 290 00:13:21,770 --> 00:13:25,110 Még mindig fura fordított perjel n, de remélhetőleg most 291 00:13:25,110 --> 00:13:29,900 lehet kezdeni elképzelni, hogy legalább printf vesz valamilyen formában a bemenet. 292 00:13:29,900 --> 00:13:31,850 Nem olyan felhasználóbarát, mint Karcolja, de ez csak 293 00:13:31,850 --> 00:13:34,920 mintha dugva valamilyen érték van. 294 00:13:34,920 --> 00:13:38,306 >> Rendben, most nézzük ténylegesen Csinálj vele valamit. 295 00:13:38,306 --> 00:13:40,930 Így néhányan talán tudják, miután vásárolt az osztály előtt, 296 00:13:40,930 --> 00:13:42,638 beszélgetett barátaival, hogy sok éven 297 00:13:42,638 --> 00:13:44,590 szoktuk úgynevezett A CS50 készüléket. 298 00:13:44,590 --> 00:13:49,160 Ez olyan kifejezés, amely leírja a technológia úgynevezett virtuális gép, amely 299 00:13:49,160 --> 00:13:51,870 egy olyan szoftver, amely a elődei lenne letölteni le 300 00:13:51,870 --> 00:13:53,360 A kurzus honlapján ingyenesen. 301 00:13:53,360 --> 00:13:56,550 Ők is letölthető egy ingyenes darab A szoftver úgynevezett hypervisor, 302 00:13:56,550 --> 00:14:00,590 úgynevezett mint a VMware, vagy VirtualBox, vagy akárhány 303 00:14:00,590 --> 00:14:04,450 Más eszközök, valamint a saját Mac vagy PC vagy bármi számítógép voltak az elmúlt évben 304 00:14:04,450 --> 00:14:06,620 és az elmúlt években, úgy megduplázódik kattintson egy ikonra 305 00:14:06,620 --> 00:14:08,860 A szoftver futtatásához az úgynevezett hypervisor. 306 00:14:08,860 --> 00:14:12,220 És majd belülről, hogy a program akkor nyissa meg a CS50 készüléket. 307 00:14:12,220 --> 00:14:14,710 És a hatás az volt, hogy hogy elődje tiéd 308 00:14:14,710 --> 00:14:17,780 futó Mac OS vagy A Windows, ő majd 309 00:14:17,780 --> 00:14:22,910 Ezt követően volt egy új ablak a képernyőn futó CS50 környezetét. 310 00:14:22,910 --> 00:14:27,370 Tehát egy virtuális gép futtathat egy operációs rendszer belsejében egy másik, 311 00:14:27,370 --> 00:14:28,785 és hogy pontosan mit csináltunk. 312 00:14:28,785 --> 00:14:31,410 Szinte a teljes persze olyan operációs rendszert használ úgynevezett 313 00:14:31,410 --> 00:14:34,070 Linux, konkrétan Ubuntu Linux, és ez a 314 00:14:34,070 --> 00:14:37,590 egy nagyon szép módja az elmúlt években a ügyelve arra, hogy mindenki a tanfolyam 315 00:14:37,590 --> 00:14:38,840 Csak volt ugyanabban a környezetben. 316 00:14:38,840 --> 00:14:41,339 És tudod használni bármilyen számítógépen, amit valóban szeretne. 317 00:14:41,339 --> 00:14:43,930 Között a hátulütői, bár, voltak olyan volt, mintha két gigabájt 318 00:14:43,930 --> 00:14:45,480 Töltse le ezt a dolgot. 319 00:14:45,480 --> 00:14:50,310 Nem feltétlenül működik szuper jól emberek, akiknek a gépén, hogy talán csak 320 00:14:50,310 --> 00:14:54,570 Volt egy koncert, vagy úgy RAM, vagy nem Túl sok gigahertzes CPU sebességét, 321 00:14:54,570 --> 00:14:56,750 és így ebben az évben, a Ezen és más okok miatt, 322 00:14:56,750 --> 00:14:59,140 lettünk átállás hogy ebben a környezetben. 323 00:14:59,140 --> 00:15:03,730 Az úgynevezett CS50 IDE, amely a nyílt forráskódú szoftverek, 324 00:15:03,730 --> 00:15:07,380 és egy támogatott platformra hogy egy cég, a Cloud9 325 00:15:07,380 --> 00:15:11,110 támogatja Európában, hogy lehetővé teszi számunkra, hogy lényegében 326 00:15:11,110 --> 00:15:15,770 hogy pontosan ugyanabban a környezetben, mint a az elmúlt években, de az úgynevezett felhő. 327 00:15:15,770 --> 00:15:17,532 >> Tehát mi a felhő? 328 00:15:17,532 --> 00:15:20,480 Valószínűleg már kattintott az ikonját a Mac vagy PC. 329 00:15:20,480 --> 00:15:22,210 Mi a felhő? 330 00:15:22,210 --> 00:15:22,709 Igen? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Egy kicsit hangosabban. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Igen. 335 00:15:31,010 --> 00:15:33,770 Ez csak egy rakás számítógépek máshol, hogy az adatok tárolására és fuss 336 00:15:33,770 --> 00:15:34,880 szoftver és hasonlók. 337 00:15:34,880 --> 00:15:39,390 Szóval ez tényleg csak a szót de jure leírására [? bérelhető?] 338 00:15:39,390 --> 00:15:40,930 számítógépek máshol éljen. 339 00:15:40,930 --> 00:15:42,810 Hogy te magad Nem feltétlenül a tulajdonosa. 340 00:15:42,810 --> 00:15:45,256 Tehát, ha az adatok, illetve a programok, amelyek a felhő, 341 00:15:45,256 --> 00:15:47,630 ez csak azt jelenti, hogy valaki más számítógépek máshol, 342 00:15:47,630 --> 00:15:50,510 és nem a legvalószínűbb, a fizikai laptop vagy asztali. 343 00:15:50,510 --> 00:15:52,990 És ez az, amit CS50 IDE most. 344 00:15:52,990 --> 00:15:55,670 >> Ezentúl akkor menjen egy bizonyos URL, hogy mutassam be 345 00:15:55,670 --> 00:16:00,090 hogy, a probléma készlet 1, később ezt héten, hogy lesz majd, után bejelentkezik, 346 00:16:00,090 --> 00:16:01,480 Önnek ebben a környezetben. 347 00:16:01,480 --> 00:16:03,896 És ugyanúgy, mint Scratch volt néhány különböző panelek részt, 348 00:16:03,896 --> 00:16:06,030 így nem CS50 IDE van, hogy pontosan. 349 00:16:06,030 --> 00:16:09,480 A bal felső sarkában van, akkor elmegy egy ismerős fájl böngésző. 350 00:16:09,480 --> 00:16:11,930 Így azok a fájlok, hogy ebbe a környezetbe 351 00:16:11,930 --> 00:16:13,346 csak fog szerepelni ott. 352 00:16:13,346 --> 00:16:14,350 A fájlok és mappák. 353 00:16:14,350 --> 00:16:16,790 A jobb felső sarokban van, fogsz látni egy helyen 354 00:16:16,790 --> 00:16:18,420 ahol ténylegesen írni a kódot. 355 00:16:18,420 --> 00:16:21,860 Kezdetben a C, később a távon a PHP és JavaScript, 356 00:16:21,860 --> 00:16:24,739 és talán az utolsó projektek, Ruby és a Java vagy Python 357 00:16:24,739 --> 00:16:27,280 vagy akárhány nyelv támogatott ebben a környezetben. 358 00:16:27,280 --> 00:16:30,130 Ez egyáltalán nem kötötte hogy CS50 konkrétan. 359 00:16:30,130 --> 00:16:33,390 >> Majd a jobb alsó sarokban van, különösen azok számára kényelmesebb, 360 00:16:33,390 --> 00:16:35,590 Van valami úgynevezett terminál ablakot. 361 00:16:35,590 --> 00:16:38,770 És ez a terminál ablak lehetővé hogy semmilyen parancsot végrehajtani, hogy 362 00:16:38,770 --> 00:16:40,860 szeretnénk ebben a felhő környezetben. 363 00:16:40,860 --> 00:16:42,860 Ez lehetővé teszi, hogy telepíteni további szoftverek 364 00:16:42,860 --> 00:16:46,810 hogy szeretné, mert már az úgynevezett gyökér, vagy rendszergazdai jogosultságokkal. 365 00:16:46,810 --> 00:16:49,930 Tehát más szavakkal, bár ez a végül adott otthont a felhő, 366 00:16:49,930 --> 00:16:52,400 és bár mi van egyszerűsített azt, hogy bizonyos mértékig 367 00:16:52,400 --> 00:16:57,110 alapértelmezés szerint, a szó szoros értelmében bevezetése, köszönhetően Dan Armendariz, és Dino, 368 00:16:57,110 --> 00:17:01,070 és Dan Bradley CS50 csapata felett már több hónapja, kevésbé komfortos 369 00:17:01,070 --> 00:17:05,140 mód, amely elrejti a sok kezdetben zavaró zavaró. 370 00:17:05,140 --> 00:17:10,119 Minden létezik, hogy képviselnek tipikus számítógépes rendszer 371 00:17:10,119 --> 00:17:12,319 hogy lehet használni a valós világban. 372 00:17:12,319 --> 00:17:15,640 >> Szóval mit is jelent ez, és Mit tehetünk valójában köze hozzá? 373 00:17:15,640 --> 00:17:19,124 Nézzük valóban olyan kandikál a programot. 374 00:17:19,124 --> 00:17:21,290 Így fogok nyitni a aktuális környezet itt, 375 00:17:21,290 --> 00:17:23,894 amely csak a Chrome böngésző, ami lehet a Firefox, 376 00:17:23,894 --> 00:17:26,640 lehet az Internet Explorer, vagy más böngésző is. 377 00:17:26,640 --> 00:17:28,400 Tele árnyékolt itt a pillanat. 378 00:17:28,400 --> 00:17:31,580 És azt akarom, hogy valóban ugratni eltekintve, mi ez a program. 379 00:17:31,580 --> 00:17:36,170 Szóval vessünk egy pillantást, a nagyítást fel Felső, amit tettem, és hogyan kerültem ide. 380 00:17:36,170 --> 00:17:38,315 Tehát itt az egzakt ugyanolyan sornyi kódot. 381 00:17:38,315 --> 00:17:40,440 Szóval ez a kijelentés, ahogy korábban említettem. 382 00:17:40,440 --> 00:17:42,580 A funkció, amely köszön. 383 00:17:42,580 --> 00:17:45,870 A kapcsos zárójelek, a soros, négyhengeres, és soros hathengeres, 384 00:17:45,870 --> 00:17:49,290 feltehetően a fajta boríték hogy ezt a vezetéket asszociál 385 00:17:49,290 --> 00:17:50,890 A lényege az én programom. 386 00:17:50,890 --> 00:17:54,890 Tehát valóban, ez a kulcsszó fő, ez ott a sorban három, 387 00:17:54,890 --> 00:17:59,450 lehet gondolni, hogy az egyenértékű Az, hogy amikor a zöld zászlót kattintott, 388 00:17:59,450 --> 00:18:01,080 blokkolja a Scratch. 389 00:18:01,080 --> 00:18:05,280 Szóval ez minden van itt, amikor zöld zászló kattintott, nyomtatás, vagy mondjuk, 390 00:18:05,280 --> 00:18:06,700 Helló Világ. 391 00:18:06,700 --> 00:18:11,210 >> De vessünk egy találgatás, most, hogy mi Az első, több misztikus vonalat, van. 392 00:18:11,210 --> 00:18:15,100 Sharp közé, nyitott szögletes konzol, standard I / O pont h, 393 00:18:15,100 --> 00:18:17,320 zárja szögletes zárójel. 394 00:18:17,320 --> 00:18:19,850 Mi az, hogy talán csinál, főleg, ha már programozott 395 00:18:19,850 --> 00:18:21,390 előtt valamilyen más nyelven. 396 00:18:21,390 --> 00:18:21,890 Igen? 397 00:18:21,890 --> 00:18:22,765 >> Közönség: [hallható] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 David J. MALAN: Igen. 400 00:18:25,970 --> 00:18:26,470 Pontosan. 401 00:18:26,470 --> 00:18:29,455 Szóval ez is hozzáférést biztosít a könyvtár, hogy úgy mondjam, a funkciók. 402 00:18:29,455 --> 00:18:31,830 És könyvtár funkciócsoportja funkciók, hogy valaki más 403 00:18:31,830 --> 00:18:34,406 írta, vagy a közelmúltban vagy olyan régen, úgy, hogy 404 00:18:34,406 --> 00:18:35,780 Nem kell újra feltalálni a kereket. 405 00:18:35,780 --> 00:18:39,020 Például, mi nem Tudnunk kell, 2015-ben, 406 00:18:39,020 --> 00:18:42,280 hogyan kell írni a kódot, hogy hozza egy karaktert a képernyő. 407 00:18:42,280 --> 00:18:44,820 Valaki rájött, hogy ki a printf függvény 408 00:18:44,820 --> 00:18:47,280 így én is rendezni az absztrakt re, hogy vagy réteg 409 00:18:47,280 --> 00:18:49,350 tetején ő kódot, és most csak úgy 410 00:18:49,350 --> 00:18:52,760 biztosra, hogy minden program írok tud nyomtatni valamit a képernyőn. 411 00:18:52,760 --> 00:18:58,150 Tehát ez első sorban ott az első lépésben tartalmazza az úgynevezett header fájlt 412 00:18:58,150 --> 00:18:59,980 A standard könyvtár. 413 00:18:59,980 --> 00:19:02,630 Tehát látni, azt a nyelvet, ami most azon dolgozunk, 414 00:19:02,630 --> 00:19:05,010 Volt egy standard könyvtár A rengeteg funkcióval rendelkezik. 415 00:19:05,010 --> 00:19:07,240 Printf az egyik ezek közül, és hogy az első kódsor 416 00:19:07,240 --> 00:19:10,040 azt jelenti, hogy nekem hozzáférést azok a funkciók, így én 417 00:19:10,040 --> 00:19:12,300 Nem kell újra feltalálni a kerék. 418 00:19:12,300 --> 00:19:15,940 >> Most menjünk az alsó ablakban és pontosan mit tettem, mielőtt. 419 00:19:15,940 --> 00:19:18,520 Egy pillanattal ezelőtt, amikor én voltam whizzing át a kódot, 420 00:19:18,520 --> 00:19:24,540 gépelés ki először, Én nagyon gyorsan gépelt, hogy helló. 421 00:19:24,540 --> 00:19:28,250 Mi volt ez az egész azt hiszem? 422 00:19:28,250 --> 00:19:29,150 Mit csinálok? 423 00:19:29,150 --> 00:19:29,649 Igen? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Nem fontos. 426 00:19:32,310 --> 00:19:32,970 Oké. 427 00:19:32,970 --> 00:19:33,492 Igen. 428 00:19:33,492 --> 00:19:34,450 Közönség: fordítanunk. 429 00:19:34,450 --> 00:19:34,700 David J. MALAN: Igen. 430 00:19:34,700 --> 00:19:35,770 Ez csak úgy fordítják le. 431 00:19:35,770 --> 00:19:36,270 Jobb? 432 00:19:36,270 --> 00:19:39,280 Még ha ez teljesen ismeretlen neked, ez elég English hasonlók. 433 00:19:39,280 --> 00:19:41,155 Ez természetesen nem nullák és azok, így még mindig 434 00:19:41,155 --> 00:19:44,220 kell lefuttatni, hogy az úgynevezett program, a fordító, hogy fog 435 00:19:44,220 --> 00:19:46,060 hogy azt a bemeneti és kimeneti termel. 436 00:19:46,060 --> 00:19:48,270 És legalábbis egyelőre, a ez a Linux környezetben, 437 00:19:48,270 --> 00:19:51,030 de ez nem előfeltétele, ez csak hol kezdjük, 438 00:19:51,030 --> 00:19:53,960 Ön általában kölcsönhatásba számítógépes rendszerek, mint ez 439 00:19:53,960 --> 00:19:55,770 egy úgynevezett parancssor. 440 00:19:55,770 --> 00:19:57,790 Tehát egy villogó azonnali és a billentyűzet, 441 00:19:57,790 --> 00:20:01,630 és nem is annyira az egér, és nem annyira ablakok és ikonok és menük, 442 00:20:01,630 --> 00:20:02,980 hanem minden szöveges. 443 00:20:02,980 --> 00:20:06,180 És bár ez úgy érzi, az első pillantásra talán, mint egy lépést hátra, 444 00:20:06,180 --> 00:20:08,437 ez valójában egy sokkal erős és kifejező módon 445 00:20:08,437 --> 00:20:10,270 vezérlésére számítógép különösen akkor, 446 00:20:10,270 --> 00:20:12,950 magát, egyre Kényelmes kevesebb. 447 00:20:12,950 --> 00:20:16,790 Meg fog lehetővé teszi, hogy nem sok több dolgot, mint amit a Microsoft 448 00:20:16,790 --> 00:20:20,390 vagy az Apple lehetővé teszi, hogy köze a grafikus operációs rendszert. 449 00:20:20,390 --> 00:20:23,270 >> Tehát amikor elütöttem Enter, most, semmi nem történik ebben az időben 450 00:20:23,270 --> 00:20:25,960 mert látszólag a programot helló naprakész. 451 00:20:25,960 --> 00:20:28,250 És mi volt a parancs Futottam utána? 452 00:20:28,250 --> 00:20:32,370 Dot perjel hello, és hello world. 453 00:20:32,370 --> 00:20:34,350 Most vessünk egy lépésben vissza egy pillanatra. 454 00:20:34,350 --> 00:20:39,510 Kiderül, hogy győződjön helló csak egy egyszerűsített módon, hogy összeállítsák a programot. 455 00:20:39,510 --> 00:20:41,670 Nézzük csak bemutatva Egy darab zsargont, 456 00:20:41,670 --> 00:20:43,470 de toljuk el, belőle, mivel ez nem 457 00:20:43,470 --> 00:20:46,640 olyan érdekes a mai célra. 458 00:20:46,640 --> 00:20:51,000 A fordító fogunk kezdi el használni az úgynevezett csenget, a C nyelvet. 459 00:20:51,000 --> 00:20:54,280 És ez egy olyan program, ami fut, mint tettük azt a parancssorban van. 460 00:20:54,280 --> 00:20:56,580 És így, ha akarok állítson össze egy programot, hogy én 461 00:20:56,580 --> 00:21:00,790 írtak egy fájl neve hello dot c, én szó szerint csak írja csengés helló c 462 00:21:00,790 --> 00:21:02,100 adja. 463 00:21:02,100 --> 00:21:04,880 >> A vicces az, történelmi okokból, 464 00:21:04,880 --> 00:21:07,750 ha nem adja meg a A program neve 465 00:21:07,750 --> 00:21:11,690 hogy szeretnék kimenet, ha nem adja meg a fájl nevét azoknak nullák 466 00:21:11,690 --> 00:21:14,990 és azok, nagyon fura egyezményt elfogadó évvel ezelőtt 467 00:21:14,990 --> 00:21:17,390 amikor úgy éreztem, egyfajta jó válasz abban az időben, 468 00:21:17,390 --> 00:21:21,650 jól nézzük csak önkényesen hívja a első program állítunk össze dot ki. 469 00:21:21,650 --> 00:21:22,900 Egy előbb az ábécében. 470 00:21:22,900 --> 00:21:23,920 Ki, ez a kimenet. 471 00:21:23,920 --> 00:21:26,210 Így fogjuk hívni a programot alapértelmezés szerint egy pont ki. 472 00:21:26,210 --> 00:21:29,550 És ez rendben van, mert ha azt akarom, hogy A program futtatásához ebben a szövegben alapú 473 00:21:29,550 --> 00:21:33,590 környezetben, csak írja dot perjel egy pont ki adja. 474 00:21:33,590 --> 00:21:35,250 És ez állna pontosan, mint azelőtt. 475 00:21:35,250 --> 00:21:36,880 Nézzük, hogy nagyon gyorsan. 476 00:21:36,880 --> 00:21:40,370 >> Tehát, ha megyek vissza a forráskód CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 és én inkább ezt, csengés helló gyermekágy c írja, észre semmi sem történne, 478 00:21:47,860 --> 00:21:49,790 de szinte mindig ez a Linux környezetben, 479 00:21:49,790 --> 00:21:53,310 amikor semmi rossz sem történik, hogy azt jelenti, valami jó is történt. 480 00:21:53,310 --> 00:21:56,270 Ha nem látja a hibát üzenetet, minden bizonnyal jól. 481 00:21:56,270 --> 00:22:01,930 És valóban, ha én most nem pont perjel egy pont ki adja, amit futtatni a ugyanazt a programot. 482 00:22:01,930 --> 00:22:04,610 Még mindig megvan a Hello programban A korábbi, mert valójában, 483 00:22:04,610 --> 00:22:07,430 lesz sokkal szebb most írja, hogy ahelyett, emlékezve 484 00:22:07,430 --> 00:22:10,240 Ezek varázsigét a parancsokat, de lássuk, hogyan 485 00:22:10,240 --> 00:22:12,890 javulhat erre, mégis. 486 00:22:12,890 --> 00:22:15,340 >> Szóval, ez a parancs hogy összeállítja a kódot. 487 00:22:15,340 --> 00:22:19,100 Ez a parancs futtatásához A lefordított kód követően. 488 00:22:19,100 --> 00:22:20,546 Hogyan adja meg a fájl nevét? 489 00:22:20,546 --> 00:22:22,670 Nos nézzük csak bevezetni még egy darab zsargon. 490 00:22:22,670 --> 00:22:24,461 Ha ebben a szöveges környezetben indul el, 491 00:22:24,461 --> 00:22:27,400 fogsz szeretne megadni dolgokat az úgynevezett parancssori paramétereket. 492 00:22:27,400 --> 00:22:31,380 Ami csak egy divatos szóval, Más szóval a figyelmeztetés 493 00:22:31,380 --> 00:22:33,860 csípés a viselkedését bármilyen programot futtat. 494 00:22:33,860 --> 00:22:37,320 Tehát konkrétan a program vagyok futás, beírja a nevét csengés, 495 00:22:37,320 --> 00:22:38,504 a program neve csenget. 496 00:22:38,504 --> 00:22:40,920 Szóval ez vagy a régi iskola megfelelője dupla kattintással 497 00:22:40,920 --> 00:22:42,860 A Microsoft Word vagy Néhány program ikonja. 498 00:22:42,860 --> 00:22:46,360 Én inkább csak beírjuk a nevét, de ez a verzió a parancsot, 499 00:22:46,360 --> 00:22:51,334 Én majd kötőjel o teret Hello helyet Hello dot c. 500 00:22:51,334 --> 00:22:53,500 Tehát akkor is, ha soha nem játszott ebben a világban korábban, 501 00:22:53,500 --> 00:22:58,160 Csak egy tipp, amit nem dash o Hello csinálni? 502 00:22:58,160 --> 00:23:00,620 Vagy mit mondani csengés csinálni? 503 00:23:00,620 --> 00:23:01,386 Igen. 504 00:23:01,386 --> 00:23:02,455 >> Közönség: [hallható] 505 00:23:02,455 --> 00:23:03,330 David J. MALAN: Igen. 506 00:23:03,330 --> 00:23:08,614 Ez csak beállítja a fájl kimenete is Hello helyett a butább egy pont ki. 507 00:23:08,614 --> 00:23:09,780 És valóban, próbáljuk meg. 508 00:23:09,780 --> 00:23:14,250 Tehát ha én most nem először csináljuk ezt, r m helló. 509 00:23:14,250 --> 00:23:15,590 Ez eltávolítani. 510 00:23:15,590 --> 00:23:18,450 És ez meg fog mondani eltávolítás Rendszeres fájl hello, amely 511 00:23:18,450 --> 00:23:22,210 szükségtelenül bonyolult, de ez csak úton akarsz törölni a fájlt, 512 00:23:22,210 --> 00:23:23,230 és az I. típusú Y igen. 513 00:23:23,230 --> 00:23:27,340 És észre, ha arra pillantva tetejére hagyta, hogy egyáltalán eltűnnek ott. 514 00:23:27,340 --> 00:23:32,180 Hadd most nem csenget kötőjel o, és Én megyek előre, és nem hello, 515 00:23:32,180 --> 00:23:34,890 minden sapkák, helló pont c. 516 00:23:34,890 --> 00:23:37,775 Most, ha én pont perjel hello, mit vársz? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Lehet, hogy ez a kis- és nagybetűk. 519 00:23:42,430 --> 00:23:43,070 Talán nem. 520 00:23:43,070 --> 00:23:44,030 Lássuk. 521 00:23:44,030 --> 00:23:45,230 Nincs ilyen fájl vagy könyvtár. 522 00:23:45,230 --> 00:23:47,438 És mi lehet a fajta csalnak csak néztem a bal felső sarokban. 523 00:23:47,438 --> 00:23:49,630 Mit tettem nyilván menteni a programot? 524 00:23:49,630 --> 00:23:51,070 Minden sapkák helló. 525 00:23:51,070 --> 00:23:53,020 Tehát valóban, ez megy hogy a különbséget. 526 00:23:53,020 --> 00:23:54,540 Tehát most hello world visszatért. 527 00:23:54,540 --> 00:23:56,969 Most ez mind szép és jó, és minden nagyon zsibbasztó, 528 00:23:56,969 --> 00:23:59,760 hogy egyfajta megreked ezen részleteket, de megértésükhöz 529 00:23:59,760 --> 00:24:00,500 ez jó. 530 00:24:00,500 --> 00:24:02,675 >> Gépelési ki ezeket egyre inkább hosszú varázsigét 531 00:24:02,675 --> 00:24:05,980 Nem lesz különösen szórakoztató, hogy az emberek a világon 532 00:24:05,980 --> 00:24:08,260 kitalált egy másik program, Néhány évvel ezelőtt, az úgynevezett 533 00:24:08,260 --> 00:24:12,190 hogy, hogy egész egyszerűen lehetővé teszi a típus make, 534 00:24:12,190 --> 00:24:14,530 A program neve azt szeretnénk, hogy győződjön meg, és hogy 535 00:24:14,530 --> 00:24:18,580 okos, hogy fog kinézni Az aktuális mappában aka könyvtárat, 536 00:24:18,580 --> 00:24:21,440 és ha van egy fájl neve hello dot c, 537 00:24:21,440 --> 00:24:25,800 ez a fájl fogja összeállítani Önnek egy program neve köszön. 538 00:24:25,800 --> 00:24:29,950 Szóval ez egy sokkal egyszerűbb módja Ennek a több rejtélyes parancsokat 539 00:24:29,950 --> 00:24:30,800 hogy mi volt korábban. 540 00:24:30,800 --> 00:24:34,080 És mi van előre beállítva CS50 IDE tudni 541 00:24:34,080 --> 00:24:38,560 hogy meg kell csinálni kötőjel o és számos Más zászlók, illetve parancssori 542 00:24:38,560 --> 00:24:40,670 hogy majd meglátjuk nemsokára. 543 00:24:40,670 --> 00:24:43,700 >> De nézzük most ténylegesen valami érdekesebb. 544 00:24:43,700 --> 00:24:46,950 Csak gépelés hello world összes Az idő nem olyan vonzó. 545 00:24:46,950 --> 00:24:52,280 Szóval hadd menjen előre, és a változás ez a program, és azt mondják, helló David. 546 00:24:52,280 --> 00:24:54,120 Most fogok lemenni itt. 547 00:24:54,120 --> 00:24:57,360 Én megyek előre, és nem teszik helló. 548 00:24:57,360 --> 00:25:00,652 És most megint látsz hogy az mutatja meg a már 549 00:25:00,652 --> 00:25:03,360 parancsokat, hogy ez az csinál, mert mi már előre konfigurált 550 00:25:03,360 --> 00:25:05,200 ez így, de nem kell aggódni most 551 00:25:05,200 --> 00:25:10,735 mit csinál a többi, mint az, összeállítása dot perjel hello, hello world. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Mi a baj? 554 00:25:15,510 --> 00:25:16,177 Igen. 555 00:25:16,177 --> 00:25:17,370 >> Közönség: [hallható] 556 00:25:17,370 --> 00:25:18,203 >> David J. MALAN: Igen. 557 00:25:18,203 --> 00:25:19,600 Szóval, noobie hiba. 558 00:25:19,600 --> 00:25:22,394 Úgy vettem észre, ez szuper finom, de a csillag itt, a fül, 559 00:25:22,394 --> 00:25:25,060 csak azt jelenti, hogy nem mentette meg, és a böngészők és egyéb programok 560 00:25:25,060 --> 00:25:25,930 Ehhez néha. 561 00:25:25,930 --> 00:25:27,939 Tehát ellenőrző s, vagy parancsot s meg kell menteni. 562 00:25:27,939 --> 00:25:29,730 Most hadd menjen előre és újra futtatni a programot. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Fordítanod. 565 00:25:34,260 --> 00:25:36,050 Jobb, így ez egy többlépcsős folyamat. 566 00:25:36,050 --> 00:25:39,400 Amelyek közül egyik sem különösen összetett, de minden alkalommal, amikor változtatni a fájl, 567 00:25:39,400 --> 00:25:43,450 meg kell változtatni az ebből eredő nullák, és a pont perjel helló. 568 00:25:43,450 --> 00:25:43,950 Azta. 569 00:25:43,950 --> 00:25:46,450 Tehát ez nagyon underwhelming hogy mi csak nyomtatott ki ezt. 570 00:25:46,450 --> 00:25:48,360 Nézzük a dolgok egy kicsit dinamikusabb, most. 571 00:25:48,360 --> 00:25:52,280 >> Nos kiderült, hogy tetszik Scratch, C támogatja változók. 572 00:25:52,280 --> 00:25:54,790 És kiderül, ha azt szeretné, hogy egy változó, üzletek, 573 00:25:54,790 --> 00:25:57,300 nem szám, mint mi jellemzően nem a semmiből, 574 00:25:57,300 --> 00:26:01,300 de mint egy szó, vagy egy kifejezést, vagy egy nevet, akkor 575 00:26:01,300 --> 00:26:04,837 megadhat egy változót hogy string típusú. 576 00:26:04,837 --> 00:26:06,670 Szóval majd meglátjuk több Ezek csak egy pillanatra, 577 00:26:06,670 --> 00:26:09,090 de kiderül, hogy a C és sok nyelven tetszik, 578 00:26:09,090 --> 00:26:11,240 nagyon különleges típusú változók. 579 00:26:11,240 --> 00:26:13,810 Ez nem csak tetszik algebra, ahol kapsz egy x, a y és z 580 00:26:13,810 --> 00:26:16,940 És ezek csak mindig szám, egy programozási nyelv 581 00:26:16,940 --> 00:26:20,030 tárolhat számokat, akkor tárolja az egyéni karakter, 582 00:26:20,030 --> 00:26:24,619 eltárolhatja egész szavakat, amit lehetett tárolja az egész képet, egész hangfájlokat, 583 00:26:24,619 --> 00:26:25,160 és a hasonlók. 584 00:26:25,160 --> 00:26:28,362 Tehát meg kell határozni, hogy mi a típus a mi változó. 585 00:26:28,362 --> 00:26:31,570 És megegyezés alapján fogom hívni a változó s csak azért, mert tömör, 586 00:26:31,570 --> 00:26:33,510 és s értéke karakterlánc. 587 00:26:33,510 --> 00:26:36,400 >> És akkor fogok tárolni belsejében ez változó, 588 00:26:36,400 --> 00:26:39,570 Csakúgy, mint a Scratch ha használom a set block, 589 00:26:39,570 --> 00:26:41,950 Én fogom használni a értékadó operátor a C, 590 00:26:41,950 --> 00:26:45,290 amely szépen elég az egyenlő aláírni, de az egyenlőségjel ez. 591 00:26:45,290 --> 00:26:53,220 Mozog valamit a jobbra a bal oldali a kifejezést. 592 00:26:53,220 --> 00:26:57,170 Szóval, mit tettem, hogy világosan ötös vonalon, az én nyilvánították változó. 593 00:26:57,170 --> 00:27:01,284 Elmondtam a számítógépet, adj memória változó, nevezzük s, 594 00:27:01,284 --> 00:27:03,950 és előre tudni, hogy megyek kell üzembe egy string benne. 595 00:27:03,950 --> 00:27:05,950 És egy string csak egy karakterek sorozata. 596 00:27:05,950 --> 00:27:09,190 Ez a szó vagy kifejezés vagy bekezdés, de ez egy karaktersorozat. 597 00:27:09,190 --> 00:27:10,610 Ez nem a számok. 598 00:27:10,610 --> 00:27:13,800 Milyen húr vagyok én lesz üzembe helyezését, amely változó? 599 00:27:13,800 --> 00:27:16,185 Nos, úgy tűnik árajánlatot idézőjel bezárva, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Most észre a minta, ami kialakulóban. 601 00:27:17,810 --> 00:27:19,260 Van egy bal oldali kifejezés. 602 00:27:19,260 --> 00:27:21,810 Van egy jobb oldali kifejezés, elválasztva az egyenlőségjel. 603 00:27:21,810 --> 00:27:24,390 És csak akkor gondolom, ha ismerik ennek ellenére, 604 00:27:24,390 --> 00:27:27,430 azzal, amit a pontosvessző csinál. 605 00:27:27,430 --> 00:27:28,865 Mi ez feltehetően tesz értünk? 606 00:27:28,865 --> 00:27:29,365 Igen? 607 00:27:29,365 --> 00:27:29,840 >> Közönség: [hallható] 608 00:27:29,840 --> 00:27:29,980 >> David J. MALAN: Igen. 609 00:27:29,980 --> 00:27:31,170 Ez csak megszüntetéséről a sor. 610 00:27:31,170 --> 00:27:31,669 Jobb? 611 00:27:31,669 --> 00:27:34,260 A számítógépek szeretné, hogy kertelés nélkül Mondtam, szó, mi a teendő. 612 00:27:34,260 --> 00:27:36,343 Mint a mogyoróvajat és zselés szendvics például 613 00:27:36,343 --> 00:27:39,360 ha nem adja meg Pontosan mit szándékozik, 614 00:27:39,360 --> 00:27:42,190 ez lehet bízni ítélet vagy hiba. 615 00:27:42,190 --> 00:27:44,890 A pontosvessző azt jelenti, ez az a parancs. 616 00:27:44,890 --> 00:27:48,310 Ez hogy szuper precíz, és ez egy nagyon egyszerű dolog, hogy hagyja ki. 617 00:27:48,310 --> 00:27:52,240 Tehát most ez a program nem tűnik kell viselkedik másként, amíg nem 618 00:27:52,240 --> 00:27:53,500 modell dinamizálása. 619 00:27:53,500 --> 00:27:57,107 Tehát ahelyett, nehéz lehet a saját Íme, hadd tegye a helykitöltő értéket. 620 00:27:57,107 --> 00:28:00,190 És kiderül, hogy, és tudom, ez attól, olvasd el a dokumentációt, 621 00:28:00,190 --> 00:28:04,080 és használta a funkciót évekig, hogy printf úgy tervezték, hogy dinamikus. 622 00:28:04,080 --> 00:28:07,510 Nem kell előre tudni, milyen szavakat szeretne tenni benne. 623 00:28:07,510 --> 00:28:11,290 Akkor inkább egy helykitöltő, mint a százalék s, amely 624 00:28:11,290 --> 00:28:15,500 elmondja a számítógép, hogy egy húr van. 625 00:28:15,500 --> 00:28:17,740 >> Melyik karakterláncot akarunk tenni ott? 626 00:28:17,740 --> 00:28:22,430 Will kiderül, hogy ezek között zárójelben, amely emlékszik, elhatárolják 627 00:28:22,430 --> 00:28:28,020 A bemenetet egy funkciót, ha vesszővel elválasztva dolog van, 628 00:28:28,020 --> 00:28:31,790 mi ténylegesen át több bemenetek függvényében. 629 00:28:31,790 --> 00:28:33,901 Tehát csak egy kis karcolás blokkok, talán nem 630 00:28:33,901 --> 00:28:36,150 már játszott velük Várhatóan még, vagy egyáltalán, 631 00:28:36,150 --> 00:28:38,250 Néhány Scratch blokkok két bemenete. 632 00:28:38,250 --> 00:28:41,220 Két fehér dobozokban lehet számok begépelése vagy szót. 633 00:28:41,220 --> 00:28:45,210 Tehát nem úgy működik, mint C van printf, hogy lehet, hogy két bemenettel. 634 00:28:45,210 --> 00:28:48,050 És megint, ez a vessző elválasztja őket. 635 00:28:48,050 --> 00:28:51,070 Tehát az angol, akkor is, ha újra még soha nem programozott előtt, 636 00:28:51,070 --> 00:28:55,320 az, hogy a logika printf függvény, úgy két bemenet, amelyek közül az egyik 637 00:28:55,320 --> 00:28:58,810 helyőrzője, mit remélsz printf fog tenni ezzel a bemenettel? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Meg fog köszönni Hannah, remélhetőleg. 640 00:29:03,220 --> 00:29:05,274 Így kell ezt csinálni meg kell menteni. 641 00:29:05,274 --> 00:29:06,190 Megyek kicsinyíteni. 642 00:29:06,190 --> 00:29:10,701 Én megyek vissza ide és azt mondják, hogy helló be. 643 00:29:10,701 --> 00:29:11,200 Ó. 644 00:29:11,200 --> 00:29:14,830 Valami nem stimmel, és ténylegesen ez elég nyomasztó. 645 00:29:14,830 --> 00:29:18,400 Én hat sornyi kódot és mint a 12 sor hibákat. 646 00:29:18,400 --> 00:29:22,120 Szóval, várom, hogy ezt. 647 00:29:22,120 --> 00:29:24,260 Szóval, mi folyik itt? 648 00:29:24,260 --> 00:29:27,370 Tehát a legjobb ökölszabály, különösen, ha kezdő, 649 00:29:27,370 --> 00:29:29,370 nem kap elterelte A dolog az alján. 650 00:29:29,370 --> 00:29:31,220 Ami azt illeti, nagyon tudatosan Csak felfele 651 00:29:31,220 --> 00:29:33,930 mert gyakran egy számítógép nem olyan fényes a készüléket. 652 00:29:33,930 --> 00:29:35,054 Ez lesz összezavarodnak. 653 00:29:35,054 --> 00:29:37,220 Ha úgy látja, egy dolog, hogy hogy nem érti, 654 00:29:37,220 --> 00:29:40,030 talán tévedés egyéb sornyi kódot, helytelen, 655 00:29:40,030 --> 00:29:41,649 annak ellenére, hogy tökéletesen megfelel. 656 00:29:41,649 --> 00:29:43,940 Így mindig akar dolgozni fentről lefelé végig a hibákat. 657 00:29:43,940 --> 00:29:47,850 És ugyan ez szuper misztikus abban a pillanatban. 658 00:29:47,850 --> 00:29:50,830 >> Hiba, a be nem jelentett azonosító karakterlánc. 659 00:29:50,830 --> 00:29:52,130 Vajon Mármint szabvány? 660 00:29:52,130 --> 00:29:53,720 Nem, úgy értettem, húr. 661 00:29:53,720 --> 00:29:55,830 És ez mutatva, talán ez egy elírás. 662 00:29:55,830 --> 00:30:00,570 Valahogy úgy, mint, helyesírás-ellenőrző egy nagyon geeky módon, de az ok itt, 663 00:30:00,570 --> 00:30:02,840 és tudni fogod ezt csak a gyakorlatban, 664 00:30:02,840 --> 00:30:06,390 hogy kiderül, hogy a húr nem létezik a C. Tény, C 665 00:30:06,390 --> 00:30:08,820 egy különösen régi nyelv, és ez nagyon alacsony, 666 00:30:08,820 --> 00:30:11,361 És ez nem egy csomó funkciók hogy lehet, hogy nőttek fel 667 00:30:11,361 --> 00:30:14,620 a ha, sőt, programozott Java, mint néhány van, 668 00:30:14,620 --> 00:30:16,980 de lehet tanítani, hogy új dolgokat. 669 00:30:16,980 --> 00:30:20,900 És valóban, mi tette ezt CS50, annak ellenére, hogy a végén a félév, 670 00:30:20,900 --> 00:30:23,512 az összes ilyen képzés kerekek majd lekerültek, 671 00:30:23,512 --> 00:30:25,220 amit csinálunk ezeken első pár hét 672 00:30:25,220 --> 00:30:29,830 kezdetben mi is Ön közé CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Ami egy header fájlt. 674 00:30:31,230 --> 00:30:32,440 Több az, hogy a jövőben. 675 00:30:32,440 --> 00:30:36,430 >> Ez egy fájlt, amely funkciók hogy már írt neked. 676 00:30:36,430 --> 00:30:39,180 És azok között függvények funkciók egyre bemenet 677 00:30:39,180 --> 00:30:43,520 a felhasználó, mint a húrok, és szám, és a valós számok, és így tovább. 678 00:30:43,520 --> 00:30:45,550 De ez is egy pár hivatkozások. 679 00:30:45,550 --> 00:30:48,200 Ez határozza meg a logikai, mint az adatok típusát. 680 00:30:48,200 --> 00:30:50,340 C nem igaz, vagy hamis. 681 00:30:50,340 --> 00:30:53,880 De tudjuk, hogy ez a fogalom igaz vagy hamis útján ezt a könyvtárat. 682 00:30:53,880 --> 00:30:57,670 És ez is nem egy string beépített amíg ezt a sort. 683 00:30:57,670 --> 00:31:01,090 Tehát ezt a kódsort mondja a fordító, hé, csenget, nézd 684 00:31:01,090 --> 00:31:03,570 Ebben a fájlban egy egész csomó kód, amely CS50 685 00:31:03,570 --> 00:31:06,330 úgy megírni, hogy valaki használ erre a képre 686 00:31:06,330 --> 00:31:09,330 lehet magától értetődőnek a jellemzői ők már hozzá. 687 00:31:09,330 --> 00:31:11,220 >> Tehát most hadd menjen előre és törölje a képernyőt, 688 00:31:11,220 --> 00:31:14,178 és ha kíváncsi Csak azt mondom szabályozás l minden egyes alkalommal, hogy törölje a képernyőt, 689 00:31:14,178 --> 00:31:15,500 vagy beírhatja egyértelmű. 690 00:31:15,500 --> 00:31:19,220 Csak megyek, hogy menjen előre, és most típusú teszik hello, és minden rendben van. 691 00:31:19,220 --> 00:31:22,550 Még egy misztikus kimenet, de ez nem hibás üzenet. 692 00:31:22,550 --> 00:31:28,300 Most, ha én pont perjel hello, és mint félretéve, pont perjel az ismeretlen a legtöbb. 693 00:31:28,300 --> 00:31:30,430 Ez csak azt jelenti, pont úton Az aktuális könyvtárban. 694 00:31:30,430 --> 00:31:33,120 Tehát, ha valaha is használt DOS vagy Linux vagy Unix 695 00:31:33,120 --> 00:31:35,410 lehet, hogy tettek valamit mint a cd dot dot, ahol 696 00:31:35,410 --> 00:31:39,220 dot dot jelent menjen hátra időt, vagy megy hátra, vagy feljebb 697 00:31:39,220 --> 00:31:40,370 a könyvtárban. 698 00:31:40,370 --> 00:31:43,090 Dot csak azt jelenti, nézz Az aktuális könyvtárban. 699 00:31:43,090 --> 00:31:45,670 Azt akarom, hello, ami itt van. 700 00:31:45,670 --> 00:31:47,750 És valóban, most már köszön Hannah. 701 00:31:47,750 --> 00:31:51,120 És ha én változtassa meg újra Maria, újrafordítani 702 00:31:51,120 --> 00:31:55,650 ez lenne hello, pont perjel hello, a program folyamatosan változik. 703 00:31:55,650 --> 00:31:58,060 >> De ez még mindig egy elég hülye programot. 704 00:31:58,060 --> 00:32:00,972 Ha azt szeretnénk, hogy a hajó a program, vagy hogy ez egy barátjának, 705 00:32:00,972 --> 00:32:03,430 vagy add oda Maria vagy Hannah ami azt illeti, ez rendben van. 706 00:32:03,430 --> 00:32:07,300 Én szabhatja meg mind a kettőt, de ez soha nem lesz dinamikus. 707 00:32:07,300 --> 00:32:10,870 Nem tudnak változtatni, ha ez össze le azokat a nullák. 708 00:32:10,870 --> 00:32:12,350 Szóval mit tettünk valamit okosabb? 709 00:32:12,350 --> 00:32:17,100 Mi lenne, ha ahelyett, hogy keményen kódolás a programban ennek a személynek a nevét, 710 00:32:17,100 --> 00:32:20,890 mi lenne, ha csak kap a húr igény? 711 00:32:20,890 --> 00:32:22,430 >> Más szóval, hadd tegye ezt. 712 00:32:22,430 --> 00:32:24,030 Megyek újrafordítani a programot. 713 00:32:24,030 --> 00:32:25,710 És hadd nagyítani a képernyő alján. 714 00:32:25,710 --> 00:32:29,920 Tedd Hello dot perjel helló. 715 00:32:29,920 --> 00:32:31,710 Most semmi sem történik. 716 00:32:31,710 --> 00:32:35,860 Kaphatunk egy gyors önkéntes hogy történjen valami? 717 00:32:35,860 --> 00:32:36,360 Gyere fel. 718 00:32:36,360 --> 00:32:37,020 Mi a neved? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> David J. MALAN: Pacho? 721 00:32:38,361 --> 00:32:39,609 Gyere fel. 722 00:32:39,609 --> 00:32:42,150 Ha egyszer kap itt, ez lesz nagyon underwhelming, 723 00:32:42,150 --> 00:32:44,060 de ez sokkal érdekesebb nálam beírásával. 724 00:32:44,060 --> 00:32:49,007 Ha azt szeretnénk, hogy menjen előre, és adja meg név, tettem ezt a programot csak az Ön számára. 725 00:32:49,007 --> 00:32:49,840 Csak írja be a nevét. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Írja be. 728 00:32:53,900 --> 00:32:54,489 Csodálatos. 729 00:32:54,489 --> 00:32:55,780 Rendben, nagyon köszönöm. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Köszönöm szépen. 731 00:32:56,708 --> 00:32:57,636 >> David J. MALAN: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Taps] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Ez nagyon kedves. 735 00:33:01,840 --> 00:33:03,145 Tessék. 736 00:33:03,145 --> 00:33:03,770 Mit tegyünk? 737 00:33:03,770 --> 00:33:05,930 Így végül, legalábbis, tette ezt a programot dinamikus. 738 00:33:05,930 --> 00:33:08,400 Most ez akkor is biztosan by design underwhelming, 739 00:33:08,400 --> 00:33:11,480 de végre megvan a képessége, Most kódot írni előre, mennyi 740 00:33:11,480 --> 00:33:13,770 mint a szerzők printf, majd dinamikusan 741 00:33:13,770 --> 00:33:17,550 alkalmazkodni alapján a bemeneti vagyunk átadta, sem a programozó, 742 00:33:17,550 --> 00:33:20,610 vagy az ember, aki valójában kölcsönhatásban áll a program. 743 00:33:20,610 --> 00:33:22,990 Úgyhogy tulajdonképpen most próbálja hogy csinál egy pár többi konstrukció 744 00:33:22,990 --> 00:33:26,625 és nézd meg, nem tudjuk, hogy a programok magukat kifinomultabb. 745 00:33:26,625 --> 00:33:29,250 Szóval menjünk előre, és ahelyett, írásban ezt a semmiből, 746 00:33:29,250 --> 00:33:31,540 Én megyek a mai forráskódot, és mindez 747 00:33:31,540 --> 00:33:34,290 elérhető a tanfolyam honlapján, és akkor fogd és vidd azt 748 00:33:34,290 --> 00:33:36,590 a saját környezetvédelem jöjjön péntek egyszer probléma 749 00:33:36,590 --> 00:33:38,506 szett 1 adja a utasításokat, vagy ha lehet 750 00:33:38,506 --> 00:33:41,200 csináld meg a parancssorból is, de tovább bővül az o set 1. 751 00:33:41,200 --> 00:33:44,940 >> Lássuk, mi van ebben a programban Itt nevezett, vipera dot c. 752 00:33:44,940 --> 00:33:47,970 Most már kommentálta , de mi újság? 753 00:33:47,970 --> 00:33:51,230 Első pillantásra, milyen irányvonalat A kód teljesen új? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Valószínűleg nem alapvetően ismerik őt. 756 00:33:56,780 --> 00:33:58,417 >> Közönség: [hallható] 757 00:33:58,417 --> 00:34:00,250 David J. MALAN: Igen, így int x = kap n. 758 00:34:00,250 --> 00:34:03,760 Még sosem láttam olyan e korábban, de int valószínűleg 759 00:34:03,760 --> 00:34:08,179 szimbóluma, milyen változó, [? re?] egész. 760 00:34:08,179 --> 00:34:09,040 Tehát int az egész. 761 00:34:09,040 --> 00:34:11,420 Ez csak, hogy több szűkszavú. x csak önkényes. 762 00:34:11,420 --> 00:34:13,920 x és y és z mindig Eléggé ésszerű a számok, 763 00:34:13,920 --> 00:34:16,790 de általában fogjuk használni szavak egyszer Programjaink kap bonyolultabb. 764 00:34:16,790 --> 00:34:18,940 Get int, persze, ugyanúgy, mint A string, 765 00:34:18,940 --> 00:34:21,629 valószínűleg meg is fog int a felhasználó, 766 00:34:21,629 --> 00:34:23,670 majd megyünk ugyanezt csinálja y. 767 00:34:23,670 --> 00:34:27,610 És látszólag, bár ez a utolsó sorban, 24, úgy néz ki, sokkal összetettebb, 768 00:34:27,610 --> 00:34:32,679 ez meg fog mondani az összeg ennek és ez a másik dolog. 769 00:34:32,679 --> 00:34:35,840 >> És észre százalékkal i Valószínűleg jelöli mi? 770 00:34:35,840 --> 00:34:38,190 Milyen szerepet százalék i látszólag szolgálja? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Ez csak helykitöltő. 773 00:34:41,719 --> 00:34:42,219 Jobb? 774 00:34:42,219 --> 00:34:45,149 Százalékos s volt karakterlánc, százalékkal i integer. 775 00:34:45,149 --> 00:34:47,690 Ott lesz százalékkal f lebegőpontos érték, amely 776 00:34:47,690 --> 00:34:49,273 csak egy szám egy tizedes pontossággal. 777 00:34:49,273 --> 00:34:50,590 Más szóval, egy valós szám. 778 00:34:50,590 --> 00:34:55,270 Úgyhogy tulajdonképpen fordítani ezt programozni igazi böjt, és nem teszik meg vipera. 779 00:34:55,270 --> 00:34:57,962 Hoppá. 780 00:34:57,962 --> 00:34:58,670 Jó lehetőséget. 781 00:34:58,670 --> 00:35:02,970 Tehát itt megjegyezni, ennyi idő a használati a fiók nevét is jharvard. 782 00:35:02,970 --> 00:35:06,620 Én vagyok a CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 És most itt van kék, egy említést, de a környezetet, hogy hol vagyok. 784 00:35:11,030 --> 00:35:16,050 És valóban, ha zoom fel a csúcsra Itt megjegyezzük, hogy van egy IDE50 785 00:35:16,050 --> 00:35:19,490 és látom ezt a szót, ha a fajta fordítsa el a fejét, hogy az oldalán, munkaterület. 786 00:35:19,490 --> 00:35:23,890 Röviden összefoglalva, az a tény, hogy Látok hullámvonal perjel munkaterület 787 00:35:23,890 --> 00:35:26,910 azt jelenti, hogy ebben a szövegben alapú parancsot környezetben, 788 00:35:26,910 --> 00:35:32,300 Én vagyok a szövegben megfelelője Ez a grafikus mappa itt. 789 00:35:32,300 --> 00:35:35,730 Tehát amikor én pont perjel vipera, ez mondván nincs szabály 790 00:35:35,730 --> 00:35:37,372 hogy cél a kiegészítés stop. 791 00:35:37,372 --> 00:35:39,830 Nem tudom, hogy ez mit jelent, de ez rossz valamiért. 792 00:35:39,830 --> 00:35:43,310 Nincs ilyen fájl vagy könyvtár még inkább nyilvánvaló. 793 00:35:43,310 --> 00:35:45,670 Hol van hát? 794 00:35:45,670 --> 00:35:47,820 Alapul, ahol rákattintottam a fájl megnyitásához korábban. 795 00:35:47,820 --> 00:35:49,442 Hol lehet ez? 796 00:35:49,442 --> 00:35:52,050 >> Ez valószínűleg a forrás egy w, szerda, 797 00:35:52,050 --> 00:35:53,960 és látom, sőt, ha kinyitom, hogy akár. 798 00:35:53,960 --> 00:35:57,220 Van összeadó dot C, de ez a szöveg-alapú környezetben, 799 00:35:57,220 --> 00:35:59,380 újra kell lennem szuper explicit. 800 00:35:59,380 --> 00:36:03,950 Ha meg akarom változtatni a könyvtárakat be forrás egy szerdán azt kell begépelnie, 801 00:36:03,950 --> 00:36:07,210 cd térforrás egy Szerda be és most 802 00:36:07,210 --> 00:36:09,810 én azonnali változtatásokat adj egy látjel, hogy 803 00:36:09,810 --> 00:36:12,330 Én vagyok, sőt, máshol a környezetemben, 804 00:36:12,330 --> 00:36:15,710 de most megcsináljuk vipera, úgy tűnik, működik, 805 00:36:15,710 --> 00:36:18,190 dot perjel vipera, adj egy egész szám. 806 00:36:18,190 --> 00:36:19,080 Egy. 807 00:36:19,080 --> 00:36:20,070 Kettő. 808 00:36:20,070 --> 00:36:21,630 Az összeget az egy és két három. 809 00:36:21,630 --> 00:36:24,140 De ha én nem működnek együtt, lássuk, mit fog int csinál. 810 00:36:24,140 --> 00:36:25,200 Adj nekem egy egész szám. 811 00:36:25,200 --> 00:36:26,590 Nem. 812 00:36:26,590 --> 00:36:27,350 Próbálja újra. 813 00:36:27,350 --> 00:36:29,060 OKÉ. 814 00:36:29,060 --> 00:36:30,520 Finom. 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 Minden rendben. 818 00:36:33,010 --> 00:36:34,055 Így végül együttműködik. 819 00:36:34,055 --> 00:36:36,430 És ez néhány alkalmassága, hogy ezek a funkciók 820 00:36:36,430 --> 00:36:37,760 lehet építettek be az Ön számára. 821 00:36:37,760 --> 00:36:43,330 >> Tehát belülről végrehajtásáról Az, hogy int, milyen programozási 822 00:36:43,330 --> 00:36:47,990 építeni a múlt héten valószínűleg a ott, hogy kényszerítsék ezt a viselkedést az újrakezdés, 823 00:36:47,990 --> 00:36:49,962 újra, újra? 824 00:36:49,962 --> 00:36:51,670 Igen, ott valószínűleg valamiféle hurok. 825 00:36:51,670 --> 00:36:54,160 Ez fog kinézni szintaktikailag eltér Scratch a blokkok, 826 00:36:54,160 --> 00:36:55,880 de ez valóban mi van benne a fájlt. 827 00:36:55,880 --> 00:36:58,505 És néhány hét múlva fogunk ténylegesen nézd meg a CS50 könyvtár 828 00:36:58,505 --> 00:37:02,000 hogy mi van benne, de van hurok kiszabó, hogy pontosan. 829 00:37:02,000 --> 00:37:04,840 >> Játsszunk egy hülye kis játék itt ezt a fájlt. 830 00:37:04,840 --> 00:37:06,550 Condition Zero dot c. 831 00:37:06,550 --> 00:37:08,960 Mi csak megy általában elkezdi mérni nulla. 832 00:37:08,960 --> 00:37:11,220 És tartok görgetés idő néhány dolgot a tetején. 833 00:37:11,220 --> 00:37:15,390 Kék itt, körülhatárolt minden a csillagok és a osztásjeleket, 834 00:37:15,390 --> 00:37:17,310 Azoknak, akik programozni előtt, mi az? 835 00:37:17,310 --> 00:37:18,690 Miért ne kihagyom rajta? 836 00:37:18,690 --> 00:37:19,110 Mi? 837 00:37:19,110 --> 00:37:19,490 >> Közönség: Ez egy megjegyzést. 838 00:37:19,490 --> 00:37:19,800 >> David J. MALAN: Igen. 839 00:37:19,800 --> 00:37:20,633 Ez csak egy megjegyzést. 840 00:37:20,633 --> 00:37:24,160 Ez egy megjegyzés az emberre olvasni, hogy a mi esetünkben, 841 00:37:24,160 --> 00:37:27,120 elmondja, hogy mi a neve a fájl van, aki írta, és mit csinál, 842 00:37:27,120 --> 00:37:28,610 így nem kell hogy olvassa el a kódot 843 00:37:28,610 --> 00:37:30,110 tudni, hogy mi ez a fájl szól. 844 00:37:30,110 --> 00:37:33,110 Ez csak egy leírás, de funkcionálisan ez lényegtelen. 845 00:37:33,110 --> 00:37:35,930 És azt is törli a fájlom, és semmilyen káros hatással nincs. 846 00:37:35,930 --> 00:37:38,740 A lédús sorok ezek első két itt, most. 847 00:37:38,740 --> 00:37:41,405 int main void egyenértékű mi, amikor a zöld zászlót kattintott, 848 00:37:41,405 --> 00:37:44,030 így fogunk hagyni, hogy legyen ma, és mi jön vissza, 849 00:37:44,030 --> 00:37:46,940 végül, hogy milyen int és a semmisnek, de most, 850 00:37:46,940 --> 00:37:49,500 észre, mit tettem Itt is, akkor is, 851 00:37:49,500 --> 00:37:51,736 ha van egy sorban megjegyzést, ha van 852 00:37:51,736 --> 00:37:54,670 Egy gondolat a megosztani kívánt egy adott kódsort, 853 00:37:54,670 --> 00:37:58,910 egyezmény C hogy ne csökkentse perjel, majd néhány rövid szóval, 854 00:37:58,910 --> 00:38:01,500 nem egy teljes mondatot, általában nem egy bekezdés, 855 00:38:01,500 --> 00:38:05,310 hogy csak magyarázza, hogy Ön vagy TF, vagy más olvasók vagy kollégáival, 856 00:38:05,310 --> 00:38:06,990 mi a kód csinál. 857 00:38:06,990 --> 00:38:10,150 Tehát ahelyett, meg kell nézni Ebben és ebből arra következtetnek vonalak 858 00:38:10,150 --> 00:38:12,550 Kilenc és 10, ami ezt csinálja, összhangban a nyolc 859 00:38:12,550 --> 00:38:14,945 Átadom neki egy hozzászólást felkéri a felhasználót az egész, 860 00:38:14,945 --> 00:38:17,820 akkor nem kell gondolkodni túl kemény mit vonalak kilenc és 10. 861 00:38:17,820 --> 00:38:19,720 Csak azt tudom, hogy ez az, amit együttesen csinálnak. 862 00:38:19,720 --> 00:38:20,460 >> Hogyan? 863 00:38:20,460 --> 00:38:22,060 Nos, itt van a prompt. 864 00:38:22,060 --> 00:38:23,610 Itt a szerzés a int. 865 00:38:23,610 --> 00:38:25,984 És az előző alapján viselkedését, úgy tűnik, mintha get int 866 00:38:25,984 --> 00:38:29,080 elég okos ahhoz, hogy megbizonyosodjon arról, hogy Az emberi együttműködik, és ad neki 867 00:38:29,080 --> 00:38:30,090 egy egész szám. 868 00:38:30,090 --> 00:38:32,270 De most ezt látjuk. 869 00:38:32,270 --> 00:38:33,740 És ez emlékeztet a Scratch. 870 00:38:33,740 --> 00:38:36,140 Én azt állítva, hogy én vagyok elemezve a felhasználó által megadott, 871 00:38:36,140 --> 00:38:39,050 de kissé pontatlanul. 872 00:38:39,050 --> 00:38:43,200 És ez nyilván C hogyan kifejezzük az, ha mást, fióktelep, 873 00:38:43,200 --> 00:38:46,320 egy villát a közúti, de én mondjuk kissé pontatlanul. 874 00:38:46,320 --> 00:38:50,470 Mi a hiba ebben a programban? 875 00:38:50,470 --> 00:38:51,610 Körülbelül hátrébb? 876 00:38:51,610 --> 00:38:52,223 Igen. 877 00:38:52,223 --> 00:38:53,150 >> Közönség: [hallható] nulla. 878 00:38:53,150 --> 00:38:54,025 >> David J. MALAN: Igen. 879 00:38:54,025 --> 00:38:57,630 Tehát, ha azt írja nulla, nézzük meg Pontosan az esetben, vagy a sarokba esetben, 880 00:38:57,630 --> 00:38:58,450 ha úgy tetszik. 881 00:38:58,450 --> 00:39:02,790 Tehát, ha azt írja nulla, ami a blokkok fog látszólag fogd meg? 882 00:39:02,790 --> 00:39:04,660 Az, ha vagy a más? 883 00:39:04,660 --> 00:39:07,340 Az más, és ez fog mondani, akkor felvette negatív szám. 884 00:39:07,340 --> 00:39:10,476 És valóban, a nulla nem kéne hogy pozitív vagy negatív, 885 00:39:10,476 --> 00:39:11,850 és úgy, hogy lenne hibásan. 886 00:39:11,850 --> 00:39:12,930 Ez lenne a hiba. 887 00:39:12,930 --> 00:39:14,580 Szóval hogyan lehet ezen javítani? 888 00:39:14,580 --> 00:39:16,360 Valaki, aki még soha nem programozott előtt? 889 00:39:16,360 --> 00:39:16,570 Akarod-- 890 00:39:16,570 --> 00:39:17,480 >> Közönség: [hallható] 891 00:39:17,480 --> 00:39:17,990 >> David J. MALAN: Befelé? 892 00:39:17,990 --> 00:39:18,570 >> Közönség: [hallható] 893 00:39:18,570 --> 00:39:18,930 >> David J. MALAN: Ó, van? 894 00:39:18,930 --> 00:39:20,350 Valaki, aki még soha nem programozott előtt. 895 00:39:20,350 --> 00:39:21,750 Szeretne próbálja ki magát Ennek a piros póló? 896 00:39:21,750 --> 00:39:22,600 Gyere fel. 897 00:39:22,600 --> 00:39:25,320 Ó, igen, gyere fel, ha nem bánja. 898 00:39:25,320 --> 00:39:27,586 Tehát soha nem programozott előtt, mi a neved? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 David J. MALAN: Lauren, minden rendben. 901 00:39:29,626 --> 00:39:31,150 Így javítja a hibát számunkra. 902 00:39:31,150 --> 00:39:35,070 Már nem látta C, feltehetően, és valószínűleg nincs más nyelven. 903 00:39:35,070 --> 00:39:38,380 Tehát erősít ez a program a számunkra. 904 00:39:38,380 --> 00:39:39,100 Örülök, hogy találkoztunk. 905 00:39:39,100 --> 00:39:39,615 Nincs nyomás. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Igen. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> David J. MALAN: De ismétlem, ha ez a játékra a tervek szerint halad, 909 00:39:46,270 --> 00:39:48,350 A elvihető itt is lehet, csak újra kezdeni 910 00:39:48,350 --> 00:39:51,080 észre szokások és következtethetett meglévő szintaxis 911 00:39:51,080 --> 00:39:55,420 hogyan mást is kifejezni magad, nem szójáték szándékozott, annak érdekében, 912 00:39:55,420 --> 00:39:58,410 elfog néhány további forgatókönyv. 913 00:39:58,410 --> 00:39:59,603 Tehát mi mondunk mást, ha. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, jó. 916 00:40:05,230 --> 00:40:09,120 És észre a CS50 IDE és frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 jelentése Integrált Development Environment. 918 00:40:11,110 --> 00:40:14,110 Ez csak egy divatos módja mondván Egy program, amely segít a program. 919 00:40:14,110 --> 00:40:16,779 Ez nem felhasználóbarát ilyeneket amikor írja egy zárójel, 920 00:40:16,779 --> 00:40:18,320 automatikusan megadja neked a másik. 921 00:40:18,320 --> 00:40:20,760 A feltételezés az, hogy te Végül szeretne majd írja, hogy 922 00:40:20,760 --> 00:40:22,400 és ez is megteszi idézetekkel. 923 00:40:22,400 --> 00:40:24,190 >> Szóval, mint a 23. 924 00:40:24,190 --> 00:40:26,400 99% -a az utat oda. 925 00:40:26,400 --> 00:40:29,920 Valaki akar közbeszólni egy tipp? 926 00:40:29,920 --> 00:40:31,420 Hallottam pontosvessző a közönség. 927 00:40:31,420 --> 00:40:32,080 Jó. 928 00:40:32,080 --> 00:40:33,260 Annak érdekében, hogy befejezi ezt. 929 00:40:33,260 --> 00:40:37,930 És most, én csak egy kicsit megdöbbenésére a 21. sort. 930 00:40:37,930 --> 00:40:41,370 Hogyan akarjuk fejezni ezt? 931 00:40:41,370 --> 00:40:43,370 Milyen kérdést akarunk megkérdezni, mit gondolsz? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Így a korábban már feltette a kérdést, ha n értéke nagyobb, mint nulla, ezt. 934 00:40:50,330 --> 00:40:51,870 Mást, csinálni. 935 00:40:51,870 --> 00:40:54,317 Tehát meg kell választani a kérdés itt. 936 00:40:54,317 --> 00:40:55,192 Közönség: [hallható] 937 00:40:55,192 --> 00:40:56,530 David J. MALAN: Jó. 938 00:40:56,530 --> 00:40:58,290 Tehát, ha n értéke nulla. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Kitűnő. 941 00:41:02,100 --> 00:41:03,080 Úgyhogy itt megállni. 942 00:41:03,080 --> 00:41:04,850 Köszönöm szépen, hogy dacolva ezt. 943 00:41:04,850 --> 00:41:10,890 Hadd adjak egy kis jól megérdemelt stressz labda, talán nem. 944 00:41:10,890 --> 00:41:11,900 Így mindjárt ott vagyunk. 945 00:41:11,900 --> 00:41:14,790 Tény, Lauren, ha nem szem előtt tartva, engedjék meg, hogy egy csípés itt, 946 00:41:14,790 --> 00:41:17,850 csak hogy legyen következetes, még amit láttunk Scratch, milyen 947 00:41:17,850 --> 00:41:21,080 akarok csinálni vonalak 21. és 24., csak újra alapú 948 00:41:21,080 --> 00:41:23,290 hogyan csináltuk ezt a Scratch, talán? 949 00:41:23,290 --> 00:41:24,230 >> Közönség: Mozgás fel. 950 00:41:24,230 --> 00:41:25,605 >> David J. MALAN: Igen, mozgassa fel. 951 00:41:25,605 --> 00:41:30,260 Így a más feltétel, a harmadik, vagy negyedik, vagy ötödik, vagy a végső ága, 952 00:41:30,260 --> 00:41:34,100 kell is eljött utána, és ez csak a konvenció, 953 00:41:34,100 --> 00:41:36,047 csak azért, mert ha úgy tetszik. 954 00:41:36,047 --> 00:41:37,380 Szóval kell, hogy a csípés. 955 00:41:37,380 --> 00:41:39,660 És azt kell, hogy tette a kapcsos zárójel vissza ide. 956 00:41:39,660 --> 00:41:42,700 És most, ez a program összeállítása. 957 00:41:42,700 --> 00:41:46,140 Annyira közel, de van Nagyon, nagyon finom bug. 958 00:41:46,140 --> 00:41:47,200 Lássuk, mi történik. 959 00:41:47,200 --> 00:41:49,660 >> Először is, hadd menjen előre és kicsinyítés. 960 00:41:49,660 --> 00:41:53,405 Megyek megy előre, és írja, hogy Condition Zero. 961 00:41:53,405 --> 00:41:55,070 Ó, hazudtam. 962 00:41:55,070 --> 00:41:58,760 Most a fordító valójában nagyon okos. 963 00:41:58,760 --> 00:42:00,950 És én nem igazán értem ez a hibaüzenet. 964 00:42:00,950 --> 00:42:04,310 Használata az eredménye egy hozzárendelési feltételeként zárójelek nélkül, 965 00:42:04,310 --> 00:42:05,740 nyilvánvalóan rossz. 966 00:42:05,740 --> 00:42:07,100 De mit is jelent ez? 967 00:42:07,100 --> 00:42:10,860 >> Hát megint keres minták A kód, amit eddig láttam, 968 00:42:10,860 --> 00:42:16,640 mi a 17. sorban ténylegesen csinál, annak ellenére, Lauren szánt enyhén 969 00:42:16,640 --> 00:42:18,790 különben? 970 00:42:18,790 --> 00:42:19,290 Igen. 971 00:42:19,290 --> 00:42:21,565 >> Közönség: [hallható] 972 00:42:21,565 --> 00:42:22,440 David J. MALAN: Igen. 973 00:42:22,440 --> 00:42:26,610 Úgy emlékszem, az egyenlőségjel, látszólag ahogy korábban is használtam, nem egyenlő. 974 00:42:26,610 --> 00:42:29,240 A feladat, jobbról balra. 975 00:42:29,240 --> 00:42:33,810 Így a 17. sorban abban a pillanatban egy olyan állapot, és ez 976 00:42:33,810 --> 00:42:37,890 kód végrehajtásával belsejében, de ha a kód végrehajtja, 977 00:42:37,890 --> 00:42:42,140 mi történik a nulla értéket? 978 00:42:42,140 --> 00:42:45,250 Mi történik az n értéke? 979 00:42:45,250 --> 00:42:46,810 Egyre nulla. 980 00:42:46,810 --> 00:42:50,520 Tehát, ha n egyre nulla, és újra, mint egy múlt héten, 981 00:42:50,520 --> 00:42:54,690 mi általában azt mondják, hogy a zéró hamis és az igaz, 982 00:42:54,690 --> 00:42:57,410 vagy igen van egy, de nem nulla. 983 00:42:57,410 --> 00:42:59,590 Így igaz és hamis, egy és 0. 984 00:42:59,590 --> 00:43:06,090 Ha n, mint a 17. sor került adott értéke 0, nulla igaz? 985 00:43:06,090 --> 00:43:06,590 Nem. 986 00:43:06,590 --> 00:43:08,280 A definíció szerint nulla hamis. 987 00:43:08,280 --> 00:43:10,860 Ez az egyezmény vagyunk fog ragaszkodnak halad előre. 988 00:43:10,860 --> 00:43:17,320 Így lesz vonalak 18, 19, és 20 valaha jelentkezz most, logikusan? 989 00:43:17,320 --> 00:43:18,320 Nem tudnak. 990 00:43:18,320 --> 00:43:21,640 Tehát a kérdést de nem egészen pontosan, 991 00:43:21,640 --> 00:43:25,620 és akkor nem tudom, ezt, hacsak láttad, a megoldás a C 992 00:43:25,620 --> 00:43:29,610 van, ha azt szeretné, hogy kifejezze egyenlőség, azt mondod, az egyenlők egyenlő. 993 00:43:29,610 --> 00:43:33,140 Tehát egyenlőségjel már felhasználták a feladat, jobbról balra. 994 00:43:33,140 --> 00:43:35,110 Egyenlő egyenlő eszközökkel egyenlő. 995 00:43:35,110 --> 00:43:37,950 És ha igazán akar a fejedben hajlítandó, a JavaScript és a PHP, 996 00:43:37,950 --> 00:43:40,490 van értéke egyenlő az egyenlők, amelyek valami mást jelent összesen, 997 00:43:40,490 --> 00:43:41,990 de mi lesz, hogy nemsokára. 998 00:43:41,990 --> 00:43:45,760 >> Szóval ez egy egyszerű fix, de észre szuper könnyű ezt a hibát, 999 00:43:45,760 --> 00:43:48,700 és aztán csodálkoznak, és a harc percek, ha nem egy óra, 1000 00:43:48,700 --> 00:43:51,490 Miért van a kód nem végrehajtó, mint kívánom? 1001 00:43:51,490 --> 00:43:54,140 Azért, mert nem szóltál ez pontosan mit jelent. 1002 00:43:54,140 --> 00:43:56,450 Szóval ez volt szinte tökéletes, és nagyon jó volt 1003 00:43:56,450 --> 00:44:00,760 hogy mi botlott a két kis dolgokat, mert most ha javítani őket, 1004 00:44:00,760 --> 00:44:06,240 és én megcsináljuk Condition Zero dot perjel Condition Zero, 1005 00:44:06,240 --> 00:44:07,490 Szeretnék egy egész szám kérjük. 1006 00:44:07,490 --> 00:44:08,090 Lássuk. 1007 00:44:08,090 --> 00:44:09,160 Nem. 1008 00:44:09,160 --> 00:44:10,740 Meg fog kényszeríteni, hogy megtegyem. 1009 00:44:10,740 --> 00:44:11,990 Tehát 42. 1010 00:44:11,990 --> 00:44:13,590 Felvettem egy pozitív szám. 1011 00:44:13,590 --> 00:44:16,470 Tehát most Hogyan bizonyítom ez a program helyes? 1012 00:44:16,470 --> 00:44:19,990 Ha te matematikus, akkor nem Tényleg ezt bizonyítani próbálgatással, 1013 00:44:19,990 --> 00:44:20,490 ugye? 1014 00:44:20,490 --> 00:44:23,180 Nem lehet csak bizonyítás Például, de legalább 1015 00:44:23,180 --> 00:44:25,494 mint programozó nem vagyunk megpróbálom bebizonyítani most 1016 00:44:25,494 --> 00:44:27,660 hogy ez valójában helyes, de talán érdemes 1017 00:44:27,660 --> 00:44:29,470 tesztelni néhány reprezentatív esetben. 1018 00:44:29,470 --> 00:44:31,070 >> Kipróbáltam 42. 1019 00:44:31,070 --> 00:44:33,030 Tudtam kipróbálni 43. 1020 00:44:33,030 --> 00:44:34,910 Tudtam kipróbálni 44. 1021 00:44:34,910 --> 00:44:35,640 Teszt 45. 1022 00:44:35,640 --> 00:44:36,140 Jobb? 1023 00:44:36,140 --> 00:44:37,860 De én meg tudom csinálni egy nagyon hosszú idő. 1024 00:44:37,860 --> 00:44:39,925 Mi lenne néhány Érdekes esetek kipróbálni? 1025 00:44:39,925 --> 00:44:41,050 Közönség: [hallható] nulla. 1026 00:44:41,050 --> 00:44:41,740 David J. MALAN: Szóval nulla. 1027 00:44:41,740 --> 00:44:42,297 Biztosan. 1028 00:44:42,297 --> 00:44:44,880 És jó, megvan ez alkalommal, hála Lauren új kódot. 1029 00:44:44,880 --> 00:44:46,213 Mi egy jó ügy, hogy megpróbálja? 1030 00:44:46,213 --> 00:44:47,320 Közönség: negatív. 1031 00:44:47,320 --> 00:44:50,070 >> David J. MALAN: negatív, és talán valami egy kicsit nagyobb, 1032 00:44:50,070 --> 00:44:52,617 így talán negatív 42, de általában, amikor 1033 00:44:52,617 --> 00:44:54,450 tesztelés programok halad előre, te 1034 00:44:54,450 --> 00:44:56,325 akarnak gondolkodni magadnak, mint amit 1035 00:44:56,325 --> 00:44:58,050 azok az alapvető egyes eseteket. 1036 00:44:58,050 --> 00:45:01,720 És merem állítani, hogy negatív esetben pozitív eset, és a nulla ügyben 1037 00:45:01,720 --> 00:45:03,365 elég sok fordulóban ki ezeket. 1038 00:45:03,365 --> 00:45:04,990 Nézzünk egy változata ez mégis. 1039 00:45:04,990 --> 00:45:06,930 Feltételek egyet. 1040 00:45:06,930 --> 00:45:11,224 Ez egy helyes megoldást, így látni fogod két és online, 1041 00:45:11,224 --> 00:45:13,390 ha séta a walkthroughs, általában 1042 00:45:13,390 --> 00:45:18,090 növedék ezeket lépésenként, amíg nem mindig a megfelelő megközelítés. 1043 00:45:18,090 --> 00:45:20,070 Mi lenne, ha volna megkérdezni két kérdést egyszerre? 1044 00:45:20,070 --> 00:45:22,200 >> Hadd nyissa meg ezt helyette. 1045 00:45:22,200 --> 00:45:26,740 Nem kapcsolót okokból majd meglátjuk egy másik alkalommal. 1046 00:45:26,740 --> 00:45:29,610 Mi az új szintaktikai itt? 1047 00:45:29,610 --> 00:45:32,760 Én jelenleg a játékot ahol a számítógép azt mondja 1048 00:45:32,760 --> 00:45:35,550 nekem, adj egy egész szám között egy és 10, 1049 00:45:35,550 --> 00:45:37,180 és akkor én ítélve a felhasználó által megadott. 1050 00:45:37,180 --> 00:45:39,180 Angol alapján A kód itt látsz 1051 00:45:39,180 --> 00:45:41,530 kék, mi ez a program csinál? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 Közönség: [hallható] felvette Egy kicsi vagy nagy számát. 1054 00:45:46,380 --> 00:45:46,484 David J. MALAN: Igen. 1055 00:45:46,484 --> 00:45:49,450 Ez csak ítélkező hogy Felvettem egy nagy, illetve közepes, 1056 00:45:49,450 --> 00:45:53,900 vagy kis száma alapján egy nagyon önkényes meghatározása kicsi, közepes, 1057 00:45:53,900 --> 00:45:58,510 és a nagy itt, de észre a szintaxis, ami új ez. 1058 00:45:58,510 --> 00:46:02,340 Nincs kisebb int vagy egyenlő aláírja, vagy nagyobb vagy egyenlő, hogy írja alá, 1059 00:46:02,340 --> 00:46:05,430 ahol az egyik, mint a másik, hogy lehet kifejezni, mint a Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Tehát a programnyelv, jellemzően csak nem két karakter, 1061 00:46:08,180 --> 00:46:09,450 egyiket a másik után. 1062 00:46:09,450 --> 00:46:12,695 És mit jelent ez valószínűleg képviselnek, és jelet jelet. 1063 00:46:12,695 --> 00:46:13,570 Közönség: [hallható] 1064 00:46:13,570 --> 00:46:13,680 David J. MALAN: Igen. 1065 00:46:13,680 --> 00:46:16,910 Ez csak azt jelenti, és mert Kiderül, hogy a szerzők a C 1066 00:46:16,910 --> 00:46:19,120 használt egyetlen jelet, ami azt gondolhatja 1067 00:46:19,120 --> 00:46:22,430 tökéletes lenne az a gondolat, és, már felhasználták, 1068 00:46:22,430 --> 00:46:27,300 így jelet jelet ténylegesen megragadja az esetben mi valójában akar. 1069 00:46:27,300 --> 00:46:30,610 >> Úgyhogy most botlottunk két dolgot. 1070 00:46:30,610 --> 00:46:32,640 Hadd menjen előre, és nyit egy. 1071 00:46:32,640 --> 00:46:36,590 Valami, ami egy kicsit aggasztó. 1072 00:46:36,590 --> 00:46:37,970 Pontatlansággal dot c. 1073 00:46:37,970 --> 00:46:40,260 Hadd mutassam be két dolgot itt. 1074 00:46:40,260 --> 00:46:44,720 Az egyik, észreveszi, hogy meg tudjuk csinálni matek, mint most, mint korábban, amikor 1075 00:46:44,720 --> 00:46:47,797 tettük plusz két szám, x és y. 1076 00:46:47,797 --> 00:46:49,380 Mi ez a program nyilvánvalóan csinál? 1077 00:46:49,380 --> 00:46:52,140 Már nem nyilatkozott még, és én már bevezetett százalékkal f, 1078 00:46:52,140 --> 00:46:55,720 de hamar mondta korábban százalék f jelenti lebegőpontos 1079 00:46:55,720 --> 00:46:56,970 értéket, ami valós szám. 1080 00:46:56,970 --> 00:46:59,520 Valami egy tizedes pont, amely nem egész szám. 1081 00:46:59,520 --> 00:47:02,270 Mit gondol ez a program megpróbálja megmutatni nekem a képernyőn? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Igen? 1084 00:47:06,050 --> 00:47:07,550 Közönség: Az eredmény egy több mint 10. 1085 00:47:07,550 --> 00:47:07,780 David J. MALAN: Igen. 1086 00:47:07,780 --> 00:47:09,680 Mi az eredménye egy osztva 10. 1087 00:47:09,680 --> 00:47:12,721 Jobb, mert az összes akkor valószínűleg nőtt fel, tudván, hogy egy több mint 10 1088 00:47:12,721 --> 00:47:14,502 az mi? 1089 00:47:14,502 --> 00:47:16,220 Igen, ez csak 1/10 vagy 0,1. 1090 00:47:16,220 --> 00:47:16,720 Jobb? 1091 00:47:16,720 --> 00:47:19,010 Szóval lássuk, mi ez valójában. 1092 00:47:19,010 --> 00:47:21,010 Szóval hadd menjen előre, és mentse ezt. 1093 00:47:21,010 --> 00:47:21,970 Hadd menjek le ide. 1094 00:47:21,970 --> 00:47:26,360 Tedd pontatlanság dot perjel pontatlanság, és értesítést is, 1095 00:47:26,360 --> 00:47:29,380 Linux környezetben, akkor nem be kell gépelni ki pontatlanságot és vegye 1096 00:47:29,380 --> 00:47:30,010 egész nap. 1097 00:47:30,010 --> 00:47:32,910 Általában, ha megnyomjuk a Tab, ez befejezi a gondolat az Ön számára, 1098 00:47:32,910 --> 00:47:36,660 alapuló szavakat, amelyek elérhető az aktuális könyvtárban. 1099 00:47:36,660 --> 00:47:37,160 OKÉ. 1100 00:47:37,160 --> 00:47:37,970 Szóval igazad volt. 1101 00:47:37,970 --> 00:47:41,239 Egy osztva 10, sőt, 0,1. 1102 00:47:41,239 --> 00:47:42,280 De én egy kicsit furcsa. 1103 00:47:42,280 --> 00:47:44,196 És kiderül, printf támogatja bizonyos funkciók 1104 00:47:44,196 --> 00:47:48,700 ahol megadhatja több mint Az alapértelmezett számú tizedes jegyre. 1105 00:47:48,700 --> 00:47:52,140 Tehát, ha látni akarom 10 decimális pont, amit tehetek százalékkal, 1106 00:47:52,140 --> 00:47:55,510 A helykitöltő szimbólum, pont 10, adj 10 tizedes jegyre, 1107 00:47:55,510 --> 00:47:58,140 és akkor még lebegőpontos érték, és, mint egy félre, 1108 00:47:58,140 --> 00:48:01,550 mi ez a fordított perjel n Látszólag folyamatosan használja? 1109 00:48:01,550 --> 00:48:03,450 Kiderült, hogy ez egy szimbóluma egy új sort. 1110 00:48:03,450 --> 00:48:05,970 Ez a nagyon explicit módon mondván, hogy a számítógép, 1111 00:48:05,970 --> 00:48:08,759 mozgassa a kurzort a következő vonal után kész. 1112 00:48:08,759 --> 00:48:10,800 És majd meglátjuk, mi történik ha nem tesszük ezt. 1113 00:48:10,800 --> 00:48:12,430 >> Hadd újrafordítani, hogy a pontatlanság. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Most pont perjel pontatlanság. 1116 00:48:18,356 --> 00:48:18,930 OKÉ. 1117 00:48:18,930 --> 00:48:19,780 Még mindig jobb. 1118 00:48:19,780 --> 00:48:21,512 Egy osztva 10. 1119 00:48:21,512 --> 00:48:23,220 Most kapok kicsit furcsa, mégis. 1120 00:48:23,220 --> 00:48:27,599 Mit tegyek, ha megnézi 20 tizedes rámutat, újrafordítani, futtassa újra, 1121 00:48:27,599 --> 00:48:29,390 és mint félre sebesség, akkor is használhatja 1122 00:48:29,390 --> 00:48:31,800 A felfelé és lefelé mutató nyilak segítségével lapozhatunk a történelem, 1123 00:48:31,800 --> 00:48:35,476 így nem kell tartani beírni ezeket a parancsokat adja. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Nem tanultam, hogy az általános iskolában. 1126 00:48:39,220 --> 00:48:43,260 Rendben, hadd lásd mint 29 helyen ki. 1127 00:48:43,260 --> 00:48:44,300 Lehet, hogy csak a véletlen műve. 1128 00:48:44,300 --> 00:48:46,907 Talán a számítógép furcsán viselkedik. 1129 00:48:46,907 --> 00:48:47,990 Ez nem egy dolog, igaz? 1130 00:48:47,990 --> 00:48:50,300 Csinál valamit determinisztikusán. 1131 00:48:50,300 --> 00:48:53,410 Tehát, hogy a pontatlanság. 1132 00:48:53,410 --> 00:48:54,890 OK, ez elrontotta. 1133 00:48:54,890 --> 00:48:57,620 Szóval mi folyik itt? 1134 00:48:57,620 --> 00:49:00,160 >> Tehát nyilvánvalóan a tanár már feküdt 1135 00:49:00,160 --> 00:49:03,900 Önnek mindezt ideje oka annak, hogy majd meglátjuk nemsokára. 1136 00:49:03,900 --> 00:49:05,569 De nézzük a végén egy másik program. 1137 00:49:05,569 --> 00:49:07,860 Ez egy kis program Valaki azt írta néhány évvel ezelőtt, 1138 00:49:07,860 --> 00:49:08,990 és ez valóban része egy verseny. 1139 00:49:08,990 --> 00:49:11,198 Valójában senki sem ír kód mint ez, és ha igen, 1140 00:49:11,198 --> 00:49:12,880 ez stilisztikailag probléma. 1141 00:49:12,880 --> 00:49:14,660 De az emberek ezt a kérkedés jogok. 1142 00:49:14,660 --> 00:49:17,260 Írni a leginkább zavarba ejtő látszó program 1143 00:49:17,260 --> 00:49:19,110 ennek ellenére nem valami érdekes. 1144 00:49:19,110 --> 00:49:23,930 És a jegyzet Azt hittem hagyja Ma, mielőtt Colton játszik velünk itt, 1145 00:49:23,930 --> 00:49:27,840 az, hogy a program futtatásához, amely, még a csak használ 1146 00:49:27,840 --> 00:49:31,450 C ez a szöveg alapú környezetben, megadja nekünk ezt. 1147 00:49:31,450 --> 00:49:32,264 A fenébe. 1148 00:49:32,264 --> 00:49:34,930 >> [Nevetés] 1149 00:49:34,930 --> 00:49:36,800 >> Készenlét. 1150 00:49:36,800 --> 00:49:39,340 [Hallhatatlan] c kötőjel l m. 1151 00:49:39,340 --> 00:49:42,885 Fogsz látni a mágikus varázsigét, hogy majd meglátjuk nemsokára. 1152 00:49:42,885 --> 00:49:45,780 [Hallhatatlan] Rendben. 1153 00:49:45,780 --> 00:49:51,592 És most már tudod is, ilyen dolgokat csinálni. 1154 00:49:51,592 --> 00:49:52,340 Ez az. 1155 00:49:52,340 --> 00:49:56,410 Mert CS50 azt, találkozunk pénteken. 1156 00:49:56,410 --> 00:49:58,910 >> [Zenelejátszási] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Taps] 1159 00:52:41,440 --> 00:52:42,812