1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] DAVID J. Malan: Rendben, ez CS50, és ez az 2 00:00:09,920 --> 00:00:15,250 hét végén 1, így vizsgálatot kártya van, és az összes 3 00:00:15,250 --> 00:00:18,640 osztálytársai, hogy van ebben az évben 745. 4 00:00:18,640 --> 00:00:20,920 És mi annyira izgatott, hogy oly sok a kurzusra 5 00:00:20,920 --> 00:00:23,680 ebben a félévben, de annak ellenére, hogy ez a tanfolyam olyan nagy, 6 00:00:23,680 --> 00:00:26,090 észre, hogy ez ezek a dolgok, mint a péntek ebédet, mint 7 00:00:26,090 --> 00:00:29,020 hivatali óra, 15-ember szakaszok, és így tovább, hogy a 8 00:00:29,020 --> 00:00:30,590 valóban azt jelentette, hogy hozza létre ezt a bensőségesebb 9 00:00:30,590 --> 00:00:31,140 környezet. 10 00:00:31,140 --> 00:00:34,070 Így még akkor is gyűjthet egyszer vagy kétszer egy héten, itt 11 00:00:34,070 --> 00:00:36,420 Sanders, tudom, hogy sok a tapasztalat ezen a kurzuson 12 00:00:36,420 --> 00:00:39,330 nagymértékben lesz hands-on a mellett meg osztálytársai 13 00:00:39,330 --> 00:00:40,730 és a tanári kar. 14 00:00:40,730 --> 00:00:43,960 >> Szóval itt vagyunk, a Fall 2012. 15 00:00:43,960 --> 00:00:47,530 Így emlékeztetni arra, hogy utolsó alkalom, hogy véget ért a tudomásul 16 00:00:47,530 --> 00:00:50,460 pontatlanság, beszél képviselete számokat. 17 00:00:50,460 --> 00:00:52,950 És nézte az egyik hibák, ami történt, az 18 00:00:52,950 --> 00:00:54,920 valós világban, amikor jött a félreértés 19 00:00:54,920 --> 00:00:55,890 hogyan számítógépek működik. 20 00:00:55,890 --> 00:00:58,590 Nos, ma mi újra egy másik ilyen ötletek, mint 21 00:00:58,590 --> 00:01:01,410 valamint folytatjuk a vitát a CS50 ügyfél 22 00:01:01,410 --> 00:01:04,090 C és, hogy mit jelent valójában a program. 23 00:01:04,090 --> 00:01:06,430 De először csak egy pár forgószél közleményei. 24 00:01:06,430 --> 00:01:08,930 >> Szakasza kezdődik vasárnap, és az első héten mindig 25 00:01:08,930 --> 00:01:11,030 Kicsit gyors indítás, mert csak most a 26 00:01:11,030 --> 00:01:12,620 A szakasz formák. 27 00:01:12,620 --> 00:01:14,450 Mi ugyanezt teszi, most, a tanítási fickók, most 28 00:01:14,450 --> 00:01:16,410 hogy tudják, a menetrend, így vagyunk, amelyek célja a 29 00:01:16,410 --> 00:01:19,380 Szombat reggel, hogy kövesse nyomon az Ön számára a szakasz 30 00:01:19,380 --> 00:01:20,760 feladat és TF. 31 00:01:20,760 --> 00:01:22,770 Ismerd fel, hogy fognak kezdeni a következő napon, vasárnap 32 00:01:22,770 --> 00:01:24,510 vagy hétfőn, vagy kedden. 33 00:01:24,510 --> 00:01:27,730 És akkor mi lesz elhelyezésére szakasz változásokat felmerülő 34 00:01:27,730 --> 00:01:28,690 a napokban. 35 00:01:28,690 --> 00:01:31,590 Hivatali órák, eközben vannak, megint este, 8 órától 11, 36 00:01:31,590 --> 00:01:33,740 Annenberg, valamint holnap este. 37 00:01:33,740 --> 00:01:36,150 Annak ellenére, hogy a probléma készletek általában esedékes csütörtökönként 38 00:01:36,150 --> 00:01:39,020 Délben kiderül, hogy legfeljebb öt napot késő költeni, 39 00:01:39,020 --> 00:01:42,430 ezért a rendelkezésre álló munkaidőn csütörtökönként, ha 40 00:01:42,430 --> 00:01:45,930 Ön készpénz egy ilyen későn napok, és ezáltal nyújt 41 00:01:45,930 --> 00:01:47,070 valami pénteken. 42 00:01:47,070 --> 00:01:50,850 Engedjék meg, azt sugallják, hogy Scratch az egyik több móka, többek között a 43 00:01:50,850 --> 00:01:52,390 több alacsony kulcs probléma készletek. 44 00:01:52,390 --> 00:01:55,160 És én ragaszkodni a késedelmes napok, stratégiailag, csak 45 00:01:55,160 --> 00:01:57,380 később a félévben, amikor az élet kezd útban 46 00:01:57,380 --> 00:01:59,470 A vizsgaidõszak és más osztályok. 47 00:01:59,470 --> 00:02:01,580 Probléma Set 1, eközben lenne beírás a kurzus 48 00:02:01,580 --> 00:02:06,080 honlap ezen a héten pénteken, mert lesz a tanfolyam a séta 49 00:02:06,080 --> 00:02:08,789 videón, amelyet filmeztek at 02:30 péntek 50 00:02:08,789 --> 00:02:11,890 majd a kiküldött online a következő napon. 51 00:02:11,890 --> 00:02:13,880 >> Így ért véget hétfőn. 52 00:02:13,880 --> 00:02:15,450 Azt akarom, hogy - valójában egy megjegyezni. 53 00:02:15,450 --> 00:02:18,870 Mivel az osztály -, mert Sanders nem pontosan kölcsönöz 54 00:02:18,870 --> 00:02:22,220 magát, hogy alkalmi Q & A-hátra szörnyen jól vagyunk 55 00:02:22,220 --> 00:02:24,030 megpróbálom egy kicsit új, ebben az évben, amelyben 56 00:02:24,030 --> 00:02:26,160 ha nem kényelmes emelni a kezét, vagy csak 57 00:02:26,160 --> 00:02:28,800 Inkább ne emelje fel a kezét egy szobában, mint ez, 58 00:02:28,800 --> 00:02:30,710 megyünk, hogy néhány, a tanítás ösztöndíjasok és CA 59 00:02:30,710 --> 00:02:33,260 legénységgel cs50.net/discuss közben előadás. 60 00:02:33,260 --> 00:02:35,440 Tehát, ha van egy kérdés, mert teljesen le voltam 61 00:02:35,440 --> 00:02:37,510 egyértelmű valami, vagy kíváncsi vagy néhány 62 00:02:37,510 --> 00:02:39,640 téma, próbáld kiküldetés ott. 63 00:02:39,640 --> 00:02:42,670 Tag azt címkét Előadás, és mi megteszünk minden tőlünk telhetőt 64 00:02:42,670 --> 00:02:45,430 ma és a jövő héten - we'll próbáld ki ezt -, hogy a téren 65 00:02:45,430 --> 00:02:47,990 sem elektronikus, online, vagy ha úgy érzi, mintha meg kellene 66 00:02:47,990 --> 00:02:50,430 Tényleg tűzzék azt tömegesen, az egyik az oktatás ösztöndíjasok, vagy 67 00:02:50,430 --> 00:02:52,080 CA fogja emelni a kezét, és kérje 68 00:02:52,080 --> 00:02:53,480 névtelenül az Ön nevében. 69 00:02:53,480 --> 00:02:55,650 Szóval adok e egy próbát, és látom, hogy jól működik. 70 00:02:55,650 --> 00:02:58,540 De minden eszközzel továbbra is fel kezét, mint szeretné. 71 00:02:58,540 --> 00:03:11,420 >> Tehát utoljára kimutatta, hogy 10%-os, illetve egytizede nem, a 72 00:03:11,420 --> 00:03:13,840 Valójában, 0.1, mint tanították sok évvel ezelőtt. 73 00:03:13,840 --> 00:03:15,390 Ez valójában egy értéket, mint ez. 74 00:03:15,390 --> 00:03:16,970 De ez nem teljesen igaz, ugye? 75 00:03:16,970 --> 00:03:19,585 Csak ezt a kényszert, amellyel a számítógépek, ha a 76 00:03:19,585 --> 00:03:22,450 csak egy véges mennyiségű memória, RAM, vagy több 77 00:03:22,450 --> 00:03:25,220 kifejezetten bit, nos, már csak véges számú 78 00:03:25,220 --> 00:03:26,980 dolog, amit képviselnek. 79 00:03:26,980 --> 00:03:29,780 Például, ha megvan a szám nulla, és azt akarjuk, hogy 80 00:03:29,780 --> 00:03:32,790 képviselik bináris segítségével nyolc bit, ahol egy kicsit, 81 00:03:32,790 --> 00:03:34,710 ismét, egy nulla vagy egy, talán 82 00:03:34,710 --> 00:03:39,240 képviselnek, mint 00000000. 83 00:03:39,240 --> 00:03:41,160 És ez egy kicsit feleslegesen bőbeszédű. 84 00:03:41,160 --> 00:03:43,700 Csakúgy, mint a decimális rendszer a világban, 85 00:03:43,700 --> 00:03:47,040 Általában, ha meg akarja írni a szám 123, akkor 86 00:03:47,040 --> 00:03:52,240 az emberek valószínűleg nem levelet 00000123 még akkor is, 87 00:03:52,240 --> 00:03:53,940 funkcionálisan, ez pontosan ugyanazt a számot. 88 00:03:53,940 --> 00:03:56,580 Mi csak csepp nullát, hogy úgy mondjam. 89 00:03:56,580 --> 00:03:58,270 >> A bináris, amit tehetünk, az ugyanaz. 90 00:03:58,270 --> 00:04:01,440 Bináris és nulla, nulla és bináris csak nulla. 91 00:04:01,440 --> 00:04:02,870 Csak akkor kell egy kicsit. 92 00:04:02,870 --> 00:04:05,020 De ismétlem, a leggyakoribb mértékegység a világban 93 00:04:05,020 --> 00:04:07,820 A számítási bájt, 8 bit. 94 00:04:07,820 --> 00:04:09,720 Csak azért, mert egy kicsit, meglehetősen haszontalan. 95 00:04:09,720 --> 00:04:12,020 Nyolc bit, nem túl hasznos, de legalább ez több 96 00:04:12,020 --> 00:04:14,280 hasznos, mint egy mértékegység. 97 00:04:14,280 --> 00:04:17,100 Így nyolc bit, akkor jellemzően képviselt bináris. 98 00:04:17,100 --> 00:04:20,459 Tehát itt van a számokat nulla, egy, kettő, és azután, ahogy 99 00:04:20,459 --> 00:04:24,200 Nate tette videónkat múlt szerdán, mi továbbra is 100 00:04:24,200 --> 00:04:25,940 számítva legfeljebb hét, nyolc. 101 00:04:25,940 --> 00:04:27,860 És akkor, ha az általunk használt több és több bitet, mi 102 00:04:27,860 --> 00:04:29,880 számíthat fel a végtelenbe. 103 00:04:29,880 --> 00:04:32,800 De ha csak véges számú ezeket a biteket, ahogy 104 00:04:32,800 --> 00:04:35,030 az eset-ben bármelyik számítógépes rendszer, vagy akár rakéta 105 00:04:35,030 --> 00:04:36,670 rendszer, nos, valóban csak egy 106 00:04:36,670 --> 00:04:37,900 véges mennyiségű pontossággal. 107 00:04:37,900 --> 00:04:41,290 Tehát, ha szeretné, hogy képviselje a számot, mint 0,1, nos, a 108 00:04:41,290 --> 00:04:43,410 számítógép, hogy válogathat. 109 00:04:43,410 --> 00:04:45,970 És ha csak véges sok szám tőle telhetőt 110 00:04:45,970 --> 00:04:50,490 képviseli, akkor gyere közel 0,1-et, de nem tud 111 00:04:50,490 --> 00:04:53,730 feltétlenül neked pontosan a kívánt értéket. 112 00:04:53,730 --> 00:04:55,660 És ez csak az egyik kihívás a számítógépek, 113 00:04:55,660 --> 00:04:57,090 a motorháztető alatt, szerencsére. 114 00:04:57,090 --> 00:04:59,110 >> Ahogy haladunk tovább a félévben, ezek alacsonyabb szinten 115 00:04:59,110 --> 00:05:02,310 további részletek egyre kevésbé érdekes, de minden bizonnyal a 116 00:05:02,310 --> 00:05:05,700 alkalmazása ezeket a gondolatokat is van néhány nagyon is valós világ 117 00:05:05,700 --> 00:05:06,760 következményei. 118 00:05:06,760 --> 00:05:08,190 Az egyik egy kicsit szórakoztató. 119 00:05:08,190 --> 00:05:12,150 Hányan látták a csodálatos filmet Office Space? 120 00:05:12,150 --> 00:05:13,620 Ha nem, ez a nem hivatalos 121 00:05:13,620 --> 00:05:14,370 házi feladat a héten. 122 00:05:14,370 --> 00:05:16,730 De Office Space, a fickó ebben a filmben megteszik 123 00:05:16,730 --> 00:05:19,900 előnye, hogy pontosan ez a gondolat, de valójában ellopták 124 00:05:19,900 --> 00:05:21,270 ez egy másik film, hogy lehet, hogy 125 00:05:21,270 --> 00:05:22,760 látott még évvel korábban. 126 00:05:22,760 --> 00:05:24,920 Akkor hadd adjak néhány másodpercig ezen pótkocsi 127 00:05:24,920 --> 00:05:27,470 ezt a csodálatos filmet, és ez nagyon sok 128 00:05:27,470 --> 00:05:28,340 tudományos szempontból releváns. 129 00:05:28,340 --> 00:05:30,310 >> [JÁTSZANAK MOVIE] 130 00:05:30,310 --> 00:05:32,240 Igazából én inkább előtérbe kerül. 131 00:05:32,240 --> 00:05:33,360 Tudok programozni egy vírus, ami leszedi, hogy a 132 00:05:33,360 --> 00:05:34,460 tegye ki nagy idő. 133 00:05:34,460 --> 00:05:35,770 Nos, hogyan működik? 134 00:05:35,770 --> 00:05:37,836 Minden alkalommal, amikor van egy banki tranzakció, ha érdeke 135 00:05:37,836 --> 00:05:40,154 számított, több ezer naponta, a számítógép végül 136 00:05:40,154 --> 00:05:41,040 e frakciók egy cent. 137 00:05:41,040 --> 00:05:43,050 De én nem fogok semmit törvénytelen. 138 00:05:43,050 --> 00:05:46,730 Illegális? Samir, ez Amerika. 139 00:05:46,730 --> 00:05:48,010 Meg kell Istenre esküszöm. 140 00:05:48,010 --> 00:05:51,870 Ha senki nem tud erről, de minket, rendben? Nem családtagok, nem 141 00:05:51,870 --> 00:05:52,490 barátnők, senkinek. 142 00:05:52,490 --> 00:05:53,882 [Hallhatatlan]. 143 00:05:53,882 --> 00:05:57,594 Ne aggódj, ember, nem fogom elmondani senkinek sem. 144 00:05:57,594 --> 00:05:59,680 [MOVIE VÉGE] 145 00:05:59,680 --> 00:06:01,900 >> Rendben, talán találtam erre a mozifilmre jobb, mint a legtöbb 146 00:06:01,900 --> 00:06:05,530 emberek itt, hanem minden esetben, a vírus, hogy azok 147 00:06:05,530 --> 00:06:06,400 próbált létrehozni - 148 00:06:06,400 --> 00:06:08,410 és a filmek, bármikor úgy nevezném valami vírus, 149 00:06:08,410 --> 00:06:09,770 ez általában valójában nem egy vírus. 150 00:06:09,770 --> 00:06:11,600 Ez csak a program, hogy valaki azt írta, hogy tegyen valamit. 151 00:06:11,600 --> 00:06:13,800 És ebben az esetben, a srácok megpróbáltak írni egy programot 152 00:06:13,800 --> 00:06:16,610 hogy kihasználta a cégük neve Innotech a 153 00:06:16,610 --> 00:06:19,740 számítástechnikai rendszer, amelyben a számítógépek, is, még akkor is, 154 00:06:19,740 --> 00:06:21,350 jön a pénz, nem feltétlenül 155 00:06:21,350 --> 00:06:23,490 képviselnek pénz pontosan. 156 00:06:23,490 --> 00:06:27,630 Így, bár lehet, hogy a 0,10 $ a bankszámláján, 157 00:06:27,630 --> 00:06:31,060 0,10, nos, a számítógép lehet, hogy tényleg úgy gondolja, hogy van 158 00:06:31,060 --> 00:06:33,560 ennyi cent a bankszámláján. 159 00:06:33,560 --> 00:06:35,750 És amit ezek a srácok törekvő van - és ők 160 00:06:35,750 --> 00:06:38,240 ellopta az ötletet, kiderül Superman III, amennyiben 161 00:06:38,240 --> 00:06:41,210 Richard Pryor ugyanezt tették - ezek lényegében 162 00:06:41,210 --> 00:06:44,880 írásban programok törekednek, hogy minden a hátsó 163 00:06:44,880 --> 00:06:46,930 számát, az összes apró, pici, apró frakciói 164 00:06:46,930 --> 00:06:50,160 fillérekért, és szifonos azokat le annak érdekében, hogy az emberek csak a 165 00:06:50,160 --> 00:06:52,620 gondolat, oh, ez csak 0,10 $ van, de az összes ilyen 166 00:06:52,620 --> 00:06:54,410 záró számok végül összeadódnak. 167 00:06:54,410 --> 00:06:57,490 Tehát egy nagyszerű ötlet, és ez visszafelé sült el, hogy nevetségesen 168 00:06:57,490 --> 00:06:58,250 különösen a film. 169 00:06:58,250 --> 00:07:01,800 >> De a való világban is vannak sokkal kapcsolatban 170 00:07:01,800 --> 00:07:03,190 következményei ilyen jellegű dolgokat. 171 00:07:03,190 --> 00:07:05,450 És az egyik ok, hogy belevetik magukat a területen a számítógép 172 00:07:05,450 --> 00:07:07,620 tudomány ismét alkalmazhatósága nem a 173 00:07:07,620 --> 00:07:09,740 mérnöki tudományok egyedül, de csak azért, hogy 174 00:07:09,740 --> 00:07:10,650 más területeken is. 175 00:07:10,650 --> 00:07:14,760 Tehát ez egy kevésbé könnyed nézd meg, mi romolhat el, de a 176 00:07:14,760 --> 00:07:17,630 ez is elég szemnyitás, azt hiszem, amikor a 177 00:07:17,630 --> 00:07:20,760 megértése, hogy pontosan hogyan mindenütt jelen technológiák, mint például 178 00:07:20,760 --> 00:07:22,870 számítógépek és programozás vagy ezekben a napokban, 179 00:07:22,870 --> 00:07:23,930 formájában szoftver. 180 00:07:23,930 --> 00:07:26,500 Tehát ez a következő clip mindössze hat perc alatt, továbbra is 181 00:07:26,500 --> 00:07:30,320 ahol abbahagytuk legutóbb, de lehetővé teszi számunkra, hogy vizsgálja meg egy kicsit 182 00:07:30,320 --> 00:07:33,370 mélyrehatóbb egy ilyen ezeket a kérdéseket. 183 00:07:33,370 --> 00:07:35,270 Hadd ugorjon, ahol abbahagytuk, 184 00:07:35,270 --> 00:07:37,780 volt itt. 185 00:07:37,780 --> 00:07:41,580 És mi van a második része két, körülbelül hat perc van. 186 00:07:41,580 --> 00:07:41,980 >> [PLAY MOVIE] 187 00:07:41,980 --> 00:07:45,430 Sújtja a modern rakéta technológia. 188 00:07:45,430 --> 00:07:49,280 1991-ben megkezdődött az első Öböl-háború, a Patriot 189 00:07:49,280 --> 00:07:51,350 rakéta tapasztalt hasonló jellegű 190 00:07:51,350 --> 00:07:52,645 szám konverzió probléma. 191 00:07:52,645 --> 00:07:57,460 És ennek következtében 20 ember, 20 amerikai katona, megölték 192 00:07:57,460 --> 00:08:01,130 és mintegy 100 másik megsebesült, amikor a Patriot, amely állítólag 193 00:08:01,130 --> 00:08:03,400 elleni bejövő Scuds, 194 00:08:03,400 --> 00:08:06,020 nem a tűz egy rakéta. 195 00:08:06,020 --> 00:08:09,350 >> Amikor Irak lerohanta Kuvait és Amerikában indított Desert 196 00:08:09,350 --> 00:08:13,530 Storm 1991 elején, Patriot rakéta elemek voltak 197 00:08:13,530 --> 00:08:16,970 telepített védelme Szaúd-Arábia és Izrael az iraki 198 00:08:16,970 --> 00:08:19,810 Scud rakéta támadások. 199 00:08:19,810 --> 00:08:23,740 The Patriot egy amerikai közepes hatótávolságú föld-levegő rendszer, 200 00:08:23,740 --> 00:08:26,370 által gyártott Raytheon cég. 201 00:08:26,370 --> 00:08:30,860 A méret a Patriot légvédelmi maga, ez körülbelül 202 00:08:30,860 --> 00:08:35,650 mintegy 20 méter hosszú, tömege körülbelül 2000 kg. 203 00:08:35,650 --> 00:08:38,809 És ez hordoz robbanófejet körülbelül - Azt hiszem, ez nagyjából 204 00:08:38,809 --> 00:08:40,169 150 £. 205 00:08:40,169 --> 00:08:45,820 És a robbanófej maga egy magas robbanóanyag, amely 206 00:08:45,820 --> 00:08:48,120 fragmensek körülötte. 207 00:08:48,120 --> 00:08:51,870 A ház a robbanófej célja, hogy úgy viselkednek, mint sörét. 208 00:08:51,870 --> 00:08:54,920 A rakéták hajtják 4 per konténer és 209 00:08:54,920 --> 00:08:57,850 által szállított félpótkocsi. 210 00:08:57,850 --> 00:09:02,940 >> The Patriot rakétavédelmi rendszer nyúlik vissza legalább 211 00:09:02,940 --> 00:09:05,530 20 éve. 212 00:09:05,530 --> 00:09:09,150 Ez volt eredetileg, mint egy légvédelmi rakéta 213 00:09:09,150 --> 00:09:12,920 lő le az ellenséges repülőgépek, az első Öböl-háború. 214 00:09:12,920 --> 00:09:17,700 Amikor a háború jött, a hadsereg akarta használni, hogy lőni 215 00:09:17,700 --> 00:09:19,880 le Scuds, nem repülőgépek. 216 00:09:19,880 --> 00:09:24,860 Az Air Force iraki nem is volt olyan sok a probléma, de a hadsereg 217 00:09:24,860 --> 00:09:27,260 aggódott Scuds. 218 00:09:27,260 --> 00:09:30,810 És így igyekeztek frissíteni a Patriot. 219 00:09:30,810 --> 00:09:33,770 Elfogó egy ellenséges rakéta halad MACH 5 folyik 220 00:09:33,770 --> 00:09:35,790 hogy elég ambiciózusak. 221 00:09:35,790 --> 00:09:39,460 De amikor a Patriot rohant üzembe, a hadsereg 222 00:09:39,460 --> 00:09:43,730 nem volt tudomása olyan iraki módosítással, hogy megtette 223 00:09:43,730 --> 00:09:46,510 Scuds szinte lehetetlen eltalálni. 224 00:09:46,510 --> 00:09:50,040 >> Mi történt a Scuds voltak 225 00:09:50,040 --> 00:09:51,360 jön instabilak voltak. 226 00:09:51,360 --> 00:09:52,266 Voltak ingadozik. 227 00:09:52,266 --> 00:09:56,300 Ennek oka az volt, a irakiak, annak érdekében, hogy 600 228 00:09:56,300 --> 00:10:00,650 kilométernyi ki egy 300 kilométeres hatótávolságú rakéta került 229 00:10:00,650 --> 00:10:02,423 tömege az elülső robbanófej és 230 00:10:02,423 --> 00:10:03,990 tette a robbanófej könnyebb. 231 00:10:03,990 --> 00:10:08,700 Tehát most a Patriot akar jönni a Scud, és a legtöbb 232 00:10:08,700 --> 00:10:11,192 az idő, a túlnyomó többség az idő, akkor 233 00:10:11,192 --> 00:10:13,450 csak repülni a Scud. 234 00:10:13,450 --> 00:10:16,300 Miután a Patriot-üzemeltetők felismerték a Patriot 235 00:10:16,300 --> 00:10:20,160 hiányzott a cél, hogy felrobbantotta a Patriot robbanófejet. 236 00:10:20,160 --> 00:10:22,760 Balesetek elkerülése érdekében, hogy hagytuk 237 00:10:22,760 --> 00:10:25,100 esik a földre. 238 00:10:25,100 --> 00:10:29,400 Ez volt az, amit a legtöbb ember látta, amint hatalmas tűzgolyó az égen, 239 00:10:29,400 --> 00:10:34,930 illetve félreértette a elfogja a Scud robbanófejeket. 240 00:10:34,930 --> 00:10:37,490 >> Bár az éjszakai égen, Patriots tűnt 241 00:10:37,490 --> 00:10:41,570 Sikeresen megsemmisült Scuds, a Dhahran, nem lenne 242 00:10:41,570 --> 00:10:43,730 Hibát körüli teljesítményt. 243 00:10:43,730 --> 00:10:46,370 Ott, a Patriot a radarrendszer vereség a pályán egy 244 00:10:46,370 --> 00:10:50,090 bejövő Scud és soha nem indított kellő 245 00:10:50,090 --> 00:10:51,340 a szoftver hibája. 246 00:10:54,030 --> 00:10:57,050 Ez volt az izraeliek, akik először felfedezték, hogy a hosszabb 247 00:10:57,050 --> 00:11:02,000 a rendszer volt, annál nagyobb az idő eltérés vált, 248 00:11:02,000 --> 00:11:05,530 miatt óra beágyazott a rendszer számítógép. 249 00:11:05,530 --> 00:11:09,060 Körülbelül két héttel a tragédia Dhahran, a 250 00:11:09,060 --> 00:11:11,730 Izraeliek jelentette a Honvédelmi Minisztérium, hogy a 251 00:11:11,730 --> 00:11:13,250 rendszer időveszteség. 252 00:11:13,250 --> 00:11:15,610 Körülbelül nyolc óra futás, de észrevette, hogy a 253 00:11:15,610 --> 00:11:18,330 rendszer vált észrevehetően kevésbé pontos. 254 00:11:18,330 --> 00:11:20,910 A Védelmi Minisztérium reagált, elmondta az összes 255 00:11:20,910 --> 00:11:23,710 A Patriot elemeket, hogy ne hagyja el a rendszert 256 00:11:23,710 --> 00:11:25,450 vonatkozó hosszú ideig. 257 00:11:25,450 --> 00:11:28,010 Soha nem mondta, amit hosszú ideje volt - 8 óra, 10 258 00:11:28,010 --> 00:11:29,690 óra, 1000 óra. 259 00:11:29,690 --> 00:11:31,940 Senki sem tudta. 260 00:11:31,940 --> 00:11:35,020 >> The Patriot akkumulátor állomásozott a laktanya at Dhahran 261 00:11:35,020 --> 00:11:39,030 és a hibás belső óra volt, több mint 100 óra 262 00:11:39,030 --> 00:11:42,240 az éjszaka február 25-én. 263 00:11:42,240 --> 00:11:46,580 A lánctalpas idő pontossággal mintegy tizede a második. 264 00:11:46,580 --> 00:11:48,830 Most egy tizede a második egy érdekes szám, mert 265 00:11:48,830 --> 00:11:52,660 nem lehet kifejezni bináris, pontosan, ami azt jelenti, 266 00:11:52,660 --> 00:11:54,940 nem lehet kifejezni pontosan minden 267 00:11:54,940 --> 00:11:57,330 modern digitális számítógép. 268 00:11:57,330 --> 00:11:59,130 Nehéz elhinni. 269 00:11:59,130 --> 00:12:01,720 De ezt példaként. 270 00:12:01,720 --> 00:12:04,090 >> Nézzük az első számú harmadik. 271 00:12:04,090 --> 00:12:07,950 Egyharmada nem lehet kifejezni tizedes, pontosan. 272 00:12:07,950 --> 00:12:12,710 Egy harmadik pedig 0,333 tart végtelenbe. 273 00:12:12,710 --> 00:12:17,050 Nincs módja, hogy abszolút pontosságú tizedes. 274 00:12:17,050 --> 00:12:19,340 Ez pontosan ugyanaz a fajta problémát, hogy történt 275 00:12:19,340 --> 00:12:20,190 A Patriot. 276 00:12:20,190 --> 00:12:24,680 Minél hosszabb a rendszer futott, annál rosszabb az idő hiba lett. 277 00:12:24,680 --> 00:12:28,640 Miután 100 üzemóra, a hiba az időben csak 278 00:12:28,640 --> 00:12:29,870 körülbelül egyharmada a második. 279 00:12:29,870 --> 00:12:34,790 De szempontjából célba rakéta halad MACH 5, 280 00:12:34,790 --> 00:12:39,140 eredményezett a követési hiba több mint 600 méter. 281 00:12:39,140 --> 00:12:42,510 Lenne végzetes hibát a katonák Dhahran. 282 00:12:42,510 --> 00:12:48,680 >> Mi történt a Scud elindítása volt kimutatható a korai előrejelző 283 00:12:48,680 --> 00:12:52,440 műholdak és tudták, hogy a Scud jött a saját 284 00:12:52,440 --> 00:12:53,350 általános iránya. 285 00:12:53,350 --> 00:12:55,470 Nem tudja, hogy hol jön. 286 00:12:55,470 --> 00:12:58,210 Ez most már fel a radar eleme a Patriot 287 00:12:58,210 --> 00:13:01,920 rendszer, védő Dhahran, hogy keresse meg és nyomon követheti a 288 00:13:01,920 --> 00:13:03,700 bejövő ellenséges rakéta. 289 00:13:03,700 --> 00:13:05,390 A radar nagyon okos. 290 00:13:05,390 --> 00:13:07,570 Te valójában követni a helyzet a Scud majd 291 00:13:07,570 --> 00:13:10,340 megjósolni, ahol valószínűleg lesz a következő alkalommal, amikor a 292 00:13:10,340 --> 00:13:12,040 radar küldött impulzus ki. 293 00:13:12,040 --> 00:13:13,730 Ez volt az úgynevezett tartomány kaput. 294 00:13:13,730 --> 00:13:18,820 Azután, amint a Patriot úgy dönt elegendő idő telt el, hogy menjen 295 00:13:18,820 --> 00:13:22,600 vissza és ellenőrizze a következő helyszín erre észlelt 296 00:13:22,600 --> 00:13:24,190 tárgy, megy vissza. 297 00:13:24,190 --> 00:13:27,940 Tehát, ha visszament a rossz helyen, akkor majd nem lát 298 00:13:27,940 --> 00:13:31,000 kifogást, és úgy dönt, hogy nincs objektum. 299 00:13:31,000 --> 00:13:34,370 Ez egy hamis felderítése és esik a pályán. 300 00:13:34,370 --> 00:13:37,630 >> A bejövő Scud eltűnt a radar képernyőjén. 301 00:13:37,630 --> 00:13:41,300 És másodperccel később, akkor csapódott a kaszárnyába. A Scud 302 00:13:41,300 --> 00:13:44,730 megölt 28 és volt az utolsó kirúgták alatt 303 00:13:44,730 --> 00:13:46,450 Az első Öböl-háború. 304 00:13:46,450 --> 00:13:50,570 Tragikus, hogy a frissített szoftver megérkezett Dhahran 305 00:13:50,570 --> 00:13:52,060 a következő napon. 306 00:13:52,060 --> 00:13:56,210 És a szoftver hiba volna rögzíteni, záró egy fejezet 307 00:13:56,210 --> 00:13:58,370 A zaklatott történelem a Patriot rakéta. 308 00:14:01,790 --> 00:14:04,990 PATRIOT valójában egy mozaikszó a "Fázisvezérelt követés 309 00:14:04,990 --> 00:14:08,516 Elfogják a cél. " 310 00:14:08,516 --> 00:14:13,390 >> Rendben, szóval sokkal szomorú kimenetele nem egészen 311 00:14:13,390 --> 00:14:14,430 megértés ebben a világban. 312 00:14:14,430 --> 00:14:18,180 És az elvihető, valóban, a film, hogy az oldat 313 00:14:18,180 --> 00:14:20,790 ott volt, indítsa újra a rakétavédelmi rendszer 314 00:14:20,790 --> 00:14:21,770 hébe-hóba. 315 00:14:21,770 --> 00:14:24,280 És így ismét egyik célja a tanfolyam, biztosan 316 00:14:24,280 --> 00:14:26,900 egy szerényebb mértékű, mint ezeket az alkalmazásokat, hogy 317 00:14:26,900 --> 00:14:30,710 valóban nyitott mindenki szemét, hogy pontosan hogyan megy a 318 00:14:30,710 --> 00:14:34,380 gépek csinálj, amit akarsz tőlük, és hogyan megy 319 00:14:34,380 --> 00:14:37,180 mintegy csinálja helyesen, míg az út mentén csinálja 320 00:14:37,180 --> 00:14:38,810 jól, elegánsan, és így tovább. 321 00:14:38,810 --> 00:14:41,680 És így ma, hadd belevetik magukat egy kicsit többet, de 322 00:14:41,680 --> 00:14:44,210 hogy mi nem megy túl gyorsan, különösen a kevésbé 323 00:14:44,210 --> 00:14:46,590 kényelmes, hanem azért is, hogy tudjuk tartani a kamatot a 324 00:14:46,590 --> 00:14:49,390 e kényelmesebb, nézzük csak gyorsan kezdődik egy kicsit 325 00:14:49,390 --> 00:14:50,970 A bedugni néhány ilyen ötletet. 326 00:14:50,970 --> 00:14:53,710 És ismét, kérje el, mind személyesen, vagy online, ha 327 00:14:53,710 --> 00:14:56,320 kérdésekre, így tudjuk tartani mindenki ugyanazon az oldalon. 328 00:14:56,320 --> 00:14:58,820 >> Tehát a CS50 Appliance, gyorsan hátralépett, az 329 00:14:58,820 --> 00:15:02,360 mi, a saját szavaiddal? 330 00:15:02,360 --> 00:15:06,454 Nem baj, ha nincs ötlete, mi ezek a szavak is lehet még. 331 00:15:06,454 --> 00:15:07,830 [Hallhatatlan] 332 00:15:07,830 --> 00:15:10,950 Oké, szóval egy univerzális interfész - 333 00:15:10,950 --> 00:15:11,900 hogy mindannyian megosztani. 334 00:15:11,900 --> 00:15:12,470 Abszolút. 335 00:15:12,470 --> 00:15:14,840 Így lehetne például, mondd, hogy menjen néhány 336 00:15:14,840 --> 00:15:16,910 webhelyről töltse le ezt a szoftvert a Mac OS. 337 00:15:16,910 --> 00:15:19,140 Töltse le ezt a szoftvert a Windows konfigurálja a 338 00:15:19,140 --> 00:15:20,100 erre-arra. 339 00:15:20,100 --> 00:15:22,370 De a valóság az, akkor befut számtalan műszaki 340 00:15:22,370 --> 00:15:23,200 támogatása kérdések. 341 00:15:23,200 --> 00:15:26,630 És ezekben a napokban, sok, mi történik szerver oldalon, 342 00:15:26,630 --> 00:15:28,490 a világban a számítástechnika, különösen, amikor a 343 00:15:28,490 --> 00:15:31,460 webfejlesztés és web alapú alkalmazások, valójában 344 00:15:31,460 --> 00:15:35,110 gyakran végzett Unix vagy Linux számítógépek, szemben a 345 00:15:35,110 --> 00:15:36,800 Mac vagy Windows PC-k. 346 00:15:36,800 --> 00:15:39,240 >> Tehát között upsides, majd használatának ez a dolog az úgynevezett 347 00:15:39,240 --> 00:15:41,500 CS50 Appliance mi mindannyian ugyanabban a környezetben. 348 00:15:41,500 --> 00:15:43,670 Szóval mindenki ugyanazon az oldalon nem számít, mit hardvert 349 00:15:43,670 --> 00:15:46,650 jött egyetemen, hanem lesz dabbling pontosan 350 00:15:46,650 --> 00:15:48,230 ugyanabban a környezetben, hogy fogod használni felé 351 00:15:48,230 --> 00:15:51,080 félév végén, valamint a web-fejlesztés, valamint a 352 00:15:51,080 --> 00:15:53,580 jövőben valós alkalmazásokban cikke. 353 00:15:53,580 --> 00:15:56,350 Tehát konkrétan a CS50 Appliance egy ingyenes darab 354 00:15:56,350 --> 00:15:59,400 szoftver, amely lehetővé teszi, hogy futtatni más operációs rendszert, 355 00:15:59,400 --> 00:16:02,670 Linux, ebben az esetben a saját számítógépén, egy ablak. 356 00:16:02,670 --> 00:16:04,750 Most már nem csak le a készüléket. 357 00:16:04,750 --> 00:16:08,170 Szüksége van egy program, amely játszani, vagy futtassa a készüléket. 358 00:16:08,170 --> 00:16:11,220 És hogy szoftver általában ismert, mint a 359 00:16:11,220 --> 00:16:11,520 hypervisor. 360 00:16:11,520 --> 00:16:14,050 Hipervizorokkal jön formájában a termékek, mint a VMware, 361 00:16:14,050 --> 00:16:15,820 Virtual Box, Parallels. 362 00:16:15,820 --> 00:16:18,390 Mindenféle tartozó társaságok szoftver ingyenes és 363 00:16:18,390 --> 00:16:19,310 kereskedelmi, egyaránt. 364 00:16:19,310 --> 00:16:21,480 Mit fog látni a probléma Set 1 adott utasítást, hogy hogyan 365 00:16:21,480 --> 00:16:23,440 beszerzése szabad szoftver, amellyel 366 00:16:23,440 --> 00:16:25,000 futtassa a CS50 Appliance. 367 00:16:25,000 --> 00:16:28,060 És ha nem, akkor van, hogy egy ablak a Mac vagy PC, 368 00:16:28,060 --> 00:16:30,710 asztali környezetet úgy néz ki nagyon, mint ez, ahol a 369 00:16:30,710 --> 00:16:33,100 van egy Start menü-szerű dolog a 370 00:16:33,100 --> 00:16:34,510 a bal alsó sarokban. 371 00:16:34,510 --> 00:16:38,030 Van egy Fő mappába, vagy saját könyvtára, a bal felső 372 00:16:38,030 --> 00:16:40,280 ott, egy szemetes, és így tovább. 373 00:16:40,280 --> 00:16:43,450 Szóval mi kötekedik szét a szükséges adatokat, ahogy haladunk. 374 00:16:43,450 --> 00:16:46,430 >> De most kezdjük, hogy belevetik magukat C. 375 00:16:46,430 --> 00:16:49,200 Szóval ez a C programozási nyelv, szellemükben hasonlóak 376 00:16:49,200 --> 00:16:52,390 Scratch, de sokkal kevésbé grafikus, de ironikus, amennyire 377 00:16:52,390 --> 00:16:54,730 erősebb, ha egyszer hozzáértés vele. 378 00:16:54,730 --> 00:16:58,970 Tehát C, írunk programokat írásban forráskód, amely 379 00:16:58,970 --> 00:17:01,640 az angol-szerű szintaxis hasonló zokni 380 00:17:01,640 --> 00:17:05,609 bemutatása, hogy mi volt utolsó alkalom, hogy lehetővé teszi, hogy 381 00:17:05,609 --> 00:17:07,910 kifejezni magad elég pontosan, ha a 382 00:17:07,910 --> 00:17:09,760 arcanely, a számítógéphez. 383 00:17:09,760 --> 00:17:11,960 >> Szóval milyen terméket szoftver van valóban szükség van 384 00:17:11,960 --> 00:17:15,520 programokat írhassanak olyan nyelven, mint a C, amely a mi 385 00:17:15,520 --> 00:17:17,492 beszélgetés hétfőn? 386 00:17:17,492 --> 00:17:19,650 [Hallhatatlan] 387 00:17:19,650 --> 00:17:21,079 OK, akkor csak meg kell egy szövegszerkesztővel. 388 00:17:21,079 --> 00:17:22,890 Önnek nem kell semmilyen különleges szoftvert 389 00:17:22,890 --> 00:17:24,460 önmagában programokat írhassanak. 390 00:17:24,460 --> 00:17:27,220 Csak kell egy szövegszerkesztővel, mint a Notepad, a Windows, 391 00:17:27,220 --> 00:17:30,450 TextEdit Mac, vagy valami úgynevezett gedit, a világ 392 00:17:30,450 --> 00:17:32,020 Linux, ami fogjuk használni itt. 393 00:17:32,020 --> 00:17:33,750 És ez az, írni a programokat. 394 00:17:33,750 --> 00:17:35,480 >> De írásban csak a fele az egyenlet. 395 00:17:35,480 --> 00:17:36,630 Ezután kell futtatni azokat. 396 00:17:36,630 --> 00:17:38,320 De ahhoz, hogy fusson programok - 397 00:17:38,320 --> 00:17:39,600 Ön nem tudja futtatni a forráskódot. 398 00:17:39,600 --> 00:17:41,500 Ha ehelyett meg kell tenni, amit vele először? 399 00:17:41,500 --> 00:17:41,900 Igen. 400 00:17:41,900 --> 00:17:43,200 DAVID J. Malan: Be kell, hogy 401 00:17:43,200 --> 00:17:44,130 összeállításhoz. 402 00:17:44,130 --> 00:17:49,010 És valaki mást, összeállításának forráskód jelenti - 403 00:17:49,010 --> 00:17:50,260 [Hallhatatlan] 404 00:17:52,300 --> 00:17:52,700 DAVID J. Malan: Pontosan. 405 00:17:52,700 --> 00:17:54,430 Fordítás, hogy nullákkal és egyesekkel. 406 00:17:54,430 --> 00:17:57,150 Mert mindannyian, ezekben a napokban, hogy a számítógépeket, amelyeken CPU, 407 00:17:57,150 --> 00:18:00,350 szinte amelyek mindegyike által nevű cég az Intel, és 408 00:18:00,350 --> 00:18:03,320 Intel Inside, azt jelenti, hogy ez az agy belsejében a 409 00:18:03,320 --> 00:18:04,990 számítógép, az úgynevezett CPU. 410 00:18:04,990 --> 00:18:07,570 És az egyik dolog, hogy az agy nem az, hogy tudja, 411 00:18:07,570 --> 00:18:10,390 hogyan kell megérteni minták nullákkal és egyesekkel. 412 00:18:10,390 --> 00:18:13,240 Tudja, milyen mintát bitek jelentése mellett, milyen 413 00:18:13,240 --> 00:18:15,500 motívum jelentése kivonás, milyen mintája 414 00:18:15,500 --> 00:18:18,890 bitek képviselik nyomtatás, és megteremti a hallható hang. 415 00:18:18,890 --> 00:18:22,450 >> Így rövid, a CPU, párosulva az operációs rendszer, 416 00:18:22,450 --> 00:18:25,230 amely a szoftver fut a tetején a CPU, 417 00:18:25,230 --> 00:18:26,050 hogy úgy mondjam. 418 00:18:26,050 --> 00:18:29,850 Együtt, a két darab tudják, hogyan kell futtatni programokat 419 00:18:29,850 --> 00:18:31,070 Mi, emberek írni. 420 00:18:31,070 --> 00:18:34,040 >> Szóval, ha bemegy a CS50 Appliance itt, meg kell nyitni 421 00:18:34,040 --> 00:18:35,660 egy szövegszerkesztő, és én is elérheti ezt a 422 00:18:35,660 --> 00:18:36,560 egy pár módon. 423 00:18:36,560 --> 00:18:39,060 Én sem megy a menü, programozás, 424 00:18:39,060 --> 00:18:40,230 és akkor lehet választani - 425 00:18:40,230 --> 00:18:40,810 Nem, nem olyan menüt. 426 00:18:40,810 --> 00:18:43,860 Mehetek a Kellékek / gedit ide a megnyitáshoz 427 00:18:43,860 --> 00:18:45,090 az én kis szövegszerkesztő. 428 00:18:45,090 --> 00:18:48,030 Vagy egyszerűbben, tudom kattintson a kis ikonra az alsó 429 00:18:48,030 --> 00:18:48,970 a bal sarokban. 430 00:18:48,970 --> 00:18:50,430 És most kap ebben a környezetben van. 431 00:18:50,430 --> 00:18:52,590 Elég emlékeztet egy egyszerű szövegszerkesztő, mindössze 432 00:18:52,590 --> 00:18:53,820 egy vagy két különbségeket. 433 00:18:53,820 --> 00:18:56,420 A felső, ahol a kurzor villog most, ez az, ahol 434 00:18:56,420 --> 00:18:57,900 Én írásához kódomat. 435 00:18:57,900 --> 00:19:00,415 Az alsó van ez a dolog az úgynevezett terminál ablakot. 436 00:19:00,415 --> 00:19:03,400 És milyen dolgokra van e 437 00:19:03,400 --> 00:19:04,960 úgynevezett terminál ablakot? 438 00:19:04,960 --> 00:19:06,680 [Hallhatatlan] 439 00:19:06,680 --> 00:19:07,890 >> Oké, úgyhogy parancsok futtatására. 440 00:19:07,890 --> 00:19:10,300 És néhány parancsot mi futott hétfőn egy kicsit 441 00:19:10,300 --> 00:19:15,070 rejtélyes az első, de a lista ls, cd változás könyvtár, 442 00:19:15,070 --> 00:19:16,540 rm, az eltávolítás. 443 00:19:16,540 --> 00:19:19,680 Szóval ez a fajta egy old-school módon navigálásról 444 00:19:19,680 --> 00:19:22,310 számítógép segítségével csak a billentyűzet és a szöveges parancsok, 445 00:19:22,310 --> 00:19:24,130 és nem, általában, egy egér. 446 00:19:24,130 --> 00:19:25,960 De majd meglátjuk, hamarosan, ez valójában ad nekünk 447 00:19:25,960 --> 00:19:28,520 kicsit több erő és egy kicsit több pontosságot, amellyel 448 00:19:28,520 --> 00:19:29,600 kifejezni magunkat. 449 00:19:29,600 --> 00:19:31,330 És akkor ide a bal oldalon, mi csak fog látni, 450 00:19:31,330 --> 00:19:34,360 amint elkezdünk író szoftver, egy kis összefoglaló a 451 00:19:34,360 --> 00:19:36,350 programot, hogy már írt a bal felső sarokban. 452 00:19:36,350 --> 00:19:38,360 De majd meglátjuk, hogy ismét nemsokára. 453 00:19:38,360 --> 00:19:40,050 >> Szóval valamit tenni meglehetősen egyszerű itt. 454 00:19:40,050 --> 00:19:43,440 Először is hadd menjen előre, és válassza ki a Fájl, Mentés, és én csak 455 00:19:43,440 --> 00:19:45,970 majd kattintson a jharvard ide, több mint a bal, és 456 00:19:45,970 --> 00:19:48,930 jharvard is, megint csak a nevet a home mappa, a 457 00:19:48,930 --> 00:19:52,110 személyes akták, nekem, most, hogy John Harvard, mint mindannyian 458 00:19:52,110 --> 00:19:54,230 hamarosan John Harvard ebben a környezetben. 459 00:19:54,230 --> 00:19:57,360 Van ez a Home könyvtár, My Documents és így tovább, 460 00:19:57,360 --> 00:19:58,900 hogy szeretnék menteni, most ezt a fájlt be 461 00:19:58,900 --> 00:20:01,520 Így fogom hívni hello.c. Aztán megyek 462 00:20:01,520 --> 00:20:05,770 előre, és kattintson a Mentés, és most mi van itt egy lap 463 00:20:05,770 --> 00:20:09,440 nevezett hello.c, annyira, mint más típusú szerkesztő. 464 00:20:09,440 --> 00:20:11,760 >> És most hadd menjek előre, és kezdjük el beírni a program. 465 00:20:11,760 --> 00:20:14,440 int main (void). 466 00:20:14,440 --> 00:20:18,150 És akkor én csináltam utoljára, printf, a nyomtatási formázott, 467 00:20:18,150 --> 00:20:22,120 ("Hello, world!" 468 00:20:22,120 --> 00:20:24,500 ),. 469 00:20:24,500 --> 00:20:25,630 Majdnem teljes. 470 00:20:25,630 --> 00:20:27,130 De én hiányzik egy pár további részletek. 471 00:20:27,130 --> 00:20:30,210 Mi hiányzik ez a program, amit igazán szükség van a 472 00:20:30,210 --> 00:20:31,890 hogy ténylegesen fordítani? 473 00:20:31,890 --> 00:20:32,130 Igen. 474 00:20:32,130 --> 00:20:33,980 [Hallhatatlan]? 475 00:20:33,980 --> 00:20:35,770 >> DAVID J. Malan: Igen, ezért kell, hogy tartalmazza a szabványos 476 00:20:35,770 --> 00:20:36,700 I / O könyvtár. 477 00:20:36,700 --> 00:20:39,470 Tehát ez szükséges-fölé fő, ezért én csak megy 478 00:20:39,470 --> 00:20:40,790 hogy némi helyet ott. 479 00:20:40,790 --> 00:20:44,420 És én fogom csinálni # include . 480 00:20:44,420 --> 00:20:46,570 És észre a szögletes zárójelben van. 481 00:20:46,570 --> 00:20:49,410 És mint egy félretéve, gedit egy kis felhasználóbarát, ha a 482 00:20:49,410 --> 00:20:52,420 néha egy kicsit zavaró, az, hogy megpróbálja segíteni a 483 00:20:52,420 --> 00:20:54,770 szem észre, milyen vonalakat fel mi. 484 00:20:54,770 --> 00:20:57,760 Így a tény, hogy a kurzor közvetlenül a könyök 485 00:20:57,760 --> 00:21:00,600 tartó, észre, hogy ez kiemeli a többi könyök 486 00:21:00,600 --> 00:21:01,920 tartó plusz ezt. 487 00:21:01,920 --> 00:21:03,770 És ez még csak felhívni a figyelmet arra a tényre, hogy 488 00:21:03,770 --> 00:21:04,460 tekintette szimmetria. 489 00:21:04,460 --> 00:21:07,010 És szimmetria programozás általában egy jó dolog. 490 00:21:07,010 --> 00:21:10,270 Hasonlóképpen, ha mozgatni a kurzort a végéig, észre, hogy a 491 00:21:10,270 --> 00:21:13,630 kapcsos zárójelek felállás azt mutatják, hogy igen, van egy nyitott 1 492 00:21:13,630 --> 00:21:15,160 és egy zárt egy, hogy úgy mondjam. 493 00:21:15,160 --> 00:21:16,640 >> Rendben, és meg tudom csinálni egy másik dolog. 494 00:21:16,640 --> 00:21:20,090 Ez nem feltétlenül szükséges, de jó gyakorlat, azaz 495 00:21:20,090 --> 00:21:21,250 vissza 0-ra. 496 00:21:21,250 --> 00:21:24,140 És return 0 mit nekünk itt? 497 00:21:24,140 --> 00:21:25,584 Vagy azt jelenti, mi? 498 00:21:25,584 --> 00:21:27,480 [Hallhatatlan] 499 00:21:27,480 --> 00:21:28,300 DAVID J. Malan: De semmi baj. 500 00:21:28,300 --> 00:21:30,280 És őszintén szólva nehéz a sok baj egy 501 00:21:30,280 --> 00:21:31,250 programozhatja ezt a rövid. 502 00:21:31,250 --> 00:21:33,930 Szóval csak, hogy szuper határozottan kimondja, hogy minden rendben van. 503 00:21:33,930 --> 00:21:36,740 Én, az ember, amikor fut a program, valószínűleg soha nem 504 00:21:36,740 --> 00:21:38,150 látom, hogy 0-ra. 505 00:21:38,150 --> 00:21:41,070 Általában ezek a számok kerülnek vissza a fő 506 00:21:41,070 --> 00:21:43,540 Csak felnevelni a fejüket az emberek, ha 507 00:21:43,540 --> 00:21:44,360 valami balul sül el. 508 00:21:44,360 --> 00:21:46,640 És egy kicsit pop up mondván: rendszerhiba, egy, 509 00:21:46,640 --> 00:21:48,760 két, három, vagy bármi a szám volt, hogy 510 00:21:48,760 --> 00:21:50,100 ténylegesen vissza. 511 00:21:50,100 --> 00:21:52,870 Szóval bármi mást baj ezzel? 512 00:21:52,870 --> 00:21:55,300 [Hallhatatlan] 513 00:21:55,300 --> 00:21:58,100 >> DAVID J. Malan: Szóval ez nem annyira funkcionális hibát 514 00:21:58,100 --> 00:21:59,240 hanem esztétikai. 515 00:21:59,240 --> 00:22:02,340 Talán érdemes létrehozni egy újsor karaktert ott a 516 00:22:02,340 --> 00:22:05,240 Ezt követően húr, hogy mi valójában a kurzort 517 00:22:05,240 --> 00:22:08,340 a következő sor, és a program, csak úgy néz ki, egy kicsit szebb. 518 00:22:08,340 --> 00:22:10,340 >> És most hadd menjek le a terminál ablakban 519 00:22:10,340 --> 00:22:11,490 és a zoom vissza be 520 00:22:11,490 --> 00:22:13,390 És ez a dolog itt, ez az úgynevezett prompt. 521 00:22:13,390 --> 00:22:16,760 Ez csak eszembe, aki vagyok, jharvard @ készüléket, ha 522 00:22:16,760 --> 00:22:18,850 készülék a számítógép neve vagyok. 523 00:22:18,850 --> 00:22:22,380 Zárójelben a tilde, a cirkalom szimbólum, amely 524 00:22:22,380 --> 00:22:24,160 képviseli azt, amit? 525 00:22:24,160 --> 00:22:25,590 KÖZÖNSÉG: Home könyvtár. 526 00:22:25,590 --> 00:22:26,350 DAVID J. Malan: Home könyvtár. 527 00:22:26,350 --> 00:22:29,350 Tehát ez csak egy összevont írásmód mondod itt 528 00:22:29,350 --> 00:22:32,780 a személyes mappát, ahol az összes fájl megy alapból. 529 00:22:32,780 --> 00:22:36,080 Tehát most, itt, én is írja ls listából. 530 00:22:36,080 --> 00:22:40,020 És az egyetlen dolog, amit látni itt a pillanat hello.c. 531 00:22:40,020 --> 00:22:41,770 És ez jó, mert írtam ezt. 532 00:22:41,770 --> 00:22:44,380 >> Szóval hadd menjen előre, és nem teszik hello. 533 00:22:44,380 --> 00:22:46,830 És észre, nem vagyok gépelni, hogy hello.c. 534 00:22:46,830 --> 00:22:50,300 Ehelyett Én csak beírja a bázis a fájl nevét, hello. 535 00:22:50,300 --> 00:22:53,690 És hogy, mint láttuk, hétfőn, akkor csak arra következtethetünk, hogy szeretnék 536 00:22:53,690 --> 00:22:54,920 a. c fájlt. 537 00:22:54,920 --> 00:22:56,820 Szóval most írtad, hogy hello. 538 00:22:56,820 --> 00:22:59,280 Most már értem ezt a meglehetősen hosszú parancsot, és a jövőben is 539 00:22:59,280 --> 00:23:00,480 látta ezt újra és újra. 540 00:23:00,480 --> 00:23:03,620 De egyértelmű, csenget, a szó, hogy csak megjelent, 541 00:23:03,620 --> 00:23:05,340 ez a tényleges fordító. 542 00:23:05,340 --> 00:23:08,200 Győződjön meg csak egy fordítási segédprogram. 543 00:23:08,200 --> 00:23:11,900 Ez csak egy felhasználóbarát program, amely megment, az 544 00:23:11,900 --> 00:23:15,310 hosszú távon, attól, hogy írja ki hihetetlenül unalmas hosszú 545 00:23:15,310 --> 00:23:17,020 parancsokat, mint hogy az egyik. 546 00:23:17,020 --> 00:23:18,950 Szóval lehet futtatni csenget kézzel. 547 00:23:18,950 --> 00:23:20,530 Ön is írja az összes, hogy kézzel. 548 00:23:20,530 --> 00:23:21,580 Csak lesz nagyon unalmas. 549 00:23:21,580 --> 00:23:24,720 És így, hogy csak egy program, amely leegyszerűsíti az életünket és 550 00:23:24,720 --> 00:23:27,120 fut bonyolultabb parancsokat nekünk. 551 00:23:27,120 --> 00:23:29,410 >> Rendben, most mi fájl van 552 00:23:29,410 --> 00:23:31,540 az én aktuális könyvtár? 553 00:23:31,540 --> 00:23:36,310 Nem csak hello.c, hanem a hello. 554 00:23:36,310 --> 00:23:39,710 Tehát, ha azt szeretné futtatni hello, emlékeztetni arra, hogy azt mondom pont perjel, 555 00:23:39,710 --> 00:23:42,220 amennyiben dot úton megy az aktuális mappában, bárhol 556 00:23:42,220 --> 00:23:46,060 vannak, majd futtassa a program neve hello, sőt, most, 557 00:23:46,060 --> 00:23:48,080 Én hello world. 558 00:23:48,080 --> 00:23:51,640 Rendben, bármilyen kérdése van a munkafolyamat, illetve a szintaxis 559 00:23:51,640 --> 00:23:52,890 amit csináltam? 560 00:23:55,380 --> 00:23:57,040 >> Rendben, nézzük a dolgokat egy fokkal újra. 561 00:23:57,040 --> 00:24:00,430 Tehát ez volt underwhelming hogy csak írni egy programot, hogy csak 562 00:24:00,430 --> 00:24:01,790 mindig azt mondja, hello, világ. 563 00:24:01,790 --> 00:24:03,920 Tehát mi változott meg, hétfőn, azaz, hello, David. 564 00:24:03,920 --> 00:24:06,560 Ez egy kicsit személyes, de ugyanolyan kemény, mint a kódolt 565 00:24:06,560 --> 00:24:07,410 első változat. 566 00:24:07,410 --> 00:24:08,780 Tehát egyáltalán nem olyan meggyőző. 567 00:24:08,780 --> 00:24:13,120 De létezik, a C, funkciók mellett természetesen 568 00:24:13,120 --> 00:24:15,700 print, funkciók segítségével kap felhasználói bevitel. 569 00:24:15,700 --> 00:24:17,990 És ahogy tettük ezt, a másik nap, a következő volt. 570 00:24:17,990 --> 00:24:21,440 Mielőtt ténylegesen ki kell nyomtatni valamit, először kaptam 571 00:24:21,440 --> 00:24:22,410 valamit a felhasználó elől. 572 00:24:22,410 --> 00:24:23,370 Szóval hadd ezt újra. 573 00:24:23,370 --> 00:24:26,580 >> Húr s, ahol s értéke csak egy tetszőleges név, itt, a 574 00:24:26,580 --> 00:24:30,600 string, egyenlő getString. 575 00:24:30,600 --> 00:24:32,070 Szóval, mi volt getString? 576 00:24:32,070 --> 00:24:34,630 Ez nyilvánvalóan kap egy string alapján a nevét. 577 00:24:34,630 --> 00:24:37,560 De mi van, még technikailag? 578 00:24:37,560 --> 00:24:38,440 Ez egy funkciót. 579 00:24:38,440 --> 00:24:41,790 Szóval ez egy függvény, ami nem jön C per se. 580 00:24:41,790 --> 00:24:43,660 CS50 staff írta ezt. 581 00:24:43,660 --> 00:24:46,940 És így, hogy ezt, akkor nem csak magában stdio.h, 582 00:24:46,940 --> 00:24:49,630 Azt is meg kell, hogy tartalmazza, mit? 583 00:24:49,630 --> 00:24:50,060 Igen. 584 00:24:50,060 --> 00:24:54,210 Szóval cs50.h, ami csak egy fájl írtuk néhány évvel ezelőtt. 585 00:24:54,210 --> 00:24:57,130 Mi telepítette be a készüléket az Ön mellett 586 00:24:57,130 --> 00:24:58,490 az összes szabványos fájlokat. 587 00:24:58,490 --> 00:25:00,500 És így ezeket az első hetekben az osztály, akkor használja 588 00:25:00,500 --> 00:25:02,820 ezt csak azért, hogy egyszerűsítse a folyamat során nagyon alap 589 00:25:02,820 --> 00:25:04,600 dolgok, mint például egyre felhasználói bevitel. 590 00:25:04,600 --> 00:25:07,370 Mert mint látni fogjuk néhány hét alatt, egyre felhasználói a 591 00:25:07,370 --> 00:25:10,180 nyelv, mint a C valójában meglepően bonyolult, 592 00:25:10,180 --> 00:25:14,360 különösen azért, mert nem tudod előre, általában hogyan 593 00:25:14,360 --> 00:25:17,030 sok cucc a felhasználó megy írja be 594 00:25:17,030 --> 00:25:20,340 És ha nem tudod, mennyi adatot várnak, akkor nem 595 00:25:20,340 --> 00:25:22,380 tudom, hogy mennyi memóriát kiosztani. 596 00:25:22,380 --> 00:25:25,480 És ha valóban van egy kontradiktórius felhasználónak, aki megpróbál 597 00:25:25,480 --> 00:25:28,180 , hogy törjenek be a rendszer, összeomlik a számítógép, valamint, 598 00:25:28,180 --> 00:25:31,600 általában az első módszer a támadás, ahogy tettem a 599 00:25:31,600 --> 00:25:34,950 , Hétfő, írjon egy egész hosszú sorozata véletlenszerű karaktereket, 600 00:25:34,950 --> 00:25:37,020 Enter, és meglátjuk, mi tör. 601 00:25:37,020 --> 00:25:40,800 Mert általában, ha egy program breaks, hogy utal a 602 00:25:40,800 --> 00:25:42,650 egy biztonsági hiba, potenciálisan. 603 00:25:42,650 --> 00:25:45,250 Az biztos, hogy céloz meg, a programozó, miután tett 604 00:25:45,250 --> 00:25:49,050 hibát, de veszélyesen, akkor tettek 605 00:25:49,050 --> 00:25:52,430 biztonsággal kapcsolatos hibát, és általában látni fogjuk, hogy 606 00:25:52,430 --> 00:25:54,840 ez hogyan gépek veszélyezteti a mai napig mind 607 00:25:54,840 --> 00:25:56,620 A világ a web és programok a 608 00:25:56,620 --> 00:25:58,070 parancsot, mint ez. 609 00:25:58,070 --> 00:25:58,350 >> Rendben van. 610 00:25:58,350 --> 00:26:00,460 Tehát az s karakterlánc egyenlő getString. 611 00:26:00,460 --> 00:26:03,380 Tehát konkrétan most, mit 6 vezetéken csinál itt? 612 00:26:03,380 --> 00:26:05,640 Tehát a függvény a jobb oldalon lesz string, 613 00:26:05,640 --> 00:26:06,890 úgy hány érvek? 614 00:26:09,458 --> 00:26:09,900 Oké. 615 00:26:09,900 --> 00:26:10,400 Tehát nincs. 616 00:26:10,400 --> 00:26:11,360 Egy kis józanság megtekintéséhez. 617 00:26:11,360 --> 00:26:15,380 Egy érv ismét csak egy bemeneti funkció módosítására 618 00:26:15,380 --> 00:26:17,250 Az alapértelmezett viselkedés valamilyen módon. 619 00:26:17,250 --> 00:26:19,540 De ebben az esetben, nem akarok változtatni 620 00:26:19,540 --> 00:26:20,650 viselkedését getString. 621 00:26:20,650 --> 00:26:22,430 Csak azt akartam, hogy egy string. 622 00:26:22,430 --> 00:26:25,190 Így tettem semmit a zárójelek, majd tettem egy 623 00:26:25,190 --> 00:26:27,550 pontosvessző demarking végén a kódsort. 624 00:26:27,550 --> 00:26:29,840 Most, az egyenlőségjel nem jelenti az egyenlő önmagában. 625 00:26:29,840 --> 00:26:32,690 Ez azt jelenti, engedményezés, ami azt jelenti, tegye, amit kap 626 00:26:32,690 --> 00:26:36,060 kiadott a jobb belső bármi is a bal oldalon. 627 00:26:36,060 --> 00:26:39,400 >> Tehát a bal oldalon, azt mondjuk, hogy az általunk hirdetett 628 00:26:39,400 --> 00:26:41,630 karakterlánc hívott s. 629 00:26:41,630 --> 00:26:44,240 És még pontosabban, már lefoglalt memóriát belül 630 00:26:44,240 --> 00:26:46,340 amit majd fel a biteket, ami egy sorozata 631 00:26:46,340 --> 00:26:46,850 karakter. 632 00:26:46,850 --> 00:26:49,400 De ma már kiosztott 633 00:26:49,400 --> 00:26:51,450 vagy bejelentett egy string. 634 00:26:51,450 --> 00:26:51,790 Rendben van. 635 00:26:51,790 --> 00:26:54,760 Szóval most egyszer tettem ezt, azt akarom, hogy csatlakoztassa az érték 636 00:26:54,760 --> 00:26:56,535 s, nem kell hozzáadni az Dávid. 637 00:26:56,535 --> 00:27:00,200 Szóval ez a baj, miért? 638 00:27:03,060 --> 00:27:04,870 Szóval, ez csak szó szerint a kemény kódolt s. 639 00:27:04,870 --> 00:27:06,870 Ez az, hogy "hello, s", ami nem az, amit akarok. 640 00:27:06,870 --> 00:27:07,790 Szóval tudom csinálni. 641 00:27:07,790 --> 00:27:10,330 A százalék jel helyőrző, de most meg kell 642 00:27:10,330 --> 00:27:12,520 bejut nyomtatása egy másik érv. 643 00:27:12,520 --> 00:27:15,160 Emlékezzünk vissza, hogy érveket funkciókat elválasztva 644 00:27:15,160 --> 00:27:20,300 vesszők, így a következő, vesszővel ide tettem ez után a levél s. 645 00:27:20,300 --> 00:27:23,740 És ebben az összefüggésben most, s ez a változó, és a printf, 646 00:27:23,740 --> 00:27:25,550 kézhezvételét követően a két bemenet - 647 00:27:25,550 --> 00:27:29,440 a szöveg a bal és a változó nevét s jobbra - 648 00:27:29,440 --> 00:27:32,750 akkor csatlakoztassa az utóbbit az előbbi a számunkra, és 649 00:27:32,750 --> 00:27:34,600 Csak ki kell nyomtatni egy szép gyönyörű tartalmazó karakterlánc 650 00:27:34,600 --> 00:27:36,770 bármi legyen is az, hogy mi gépelt be 651 00:27:36,770 --> 00:27:37,560 >> Akkor próbáljuk meg. 652 00:27:37,560 --> 00:27:38,860 Menni előre, és kicsinyítés, hátsó 653 00:27:38,860 --> 00:27:40,250 az én terminál ablakot. 654 00:27:40,250 --> 00:27:41,840 Nagyítás az alján van. 655 00:27:41,840 --> 00:27:44,070 Írja be újra, hogy hello. 656 00:27:44,070 --> 00:27:45,870 Zengés úgy tűnik, hogy ismételni. 657 00:27:45,870 --> 00:27:49,280 Megyek, hogy írja. / Hello, Enter. 658 00:27:49,280 --> 00:27:52,145 Semmi sem úgy tűnik, hogy még nem történt, de ez most ezt a parancsot 659 00:27:52,145 --> 00:27:55,700 hogy írhat ilyesmit Nate, Enter, és most már 660 00:27:55,700 --> 00:27:56,380 Hello, Nate. 661 00:27:56,380 --> 00:27:59,600 És tudom csinálni újra Rob, és így tovább. 662 00:27:59,600 --> 00:28:03,410 Így remélhetőleg most már ez a program úgy viselkedik, mint a szándékom. 663 00:28:03,410 --> 00:28:05,720 >> Nos, nem is olyan felhasználóbarát. 664 00:28:05,720 --> 00:28:07,930 Fogalmam sincs, mit várnak tőlem. 665 00:28:07,930 --> 00:28:09,620 Így tudjuk biztosan tiszta ezt egy kicsit. 666 00:28:09,620 --> 00:28:13,270 Hadd menjek vissza ide, és ahelyett, hogy csak a búvárkodás és 667 00:28:13,270 --> 00:28:16,480 kéri a felhasználót egy string, hadd egyértelműen megmondani a 668 00:28:16,480 --> 00:28:17,750 Felhasználói mit várok. 669 00:28:17,750 --> 00:28:21,610 Szóval printf ("Adja meg egy karakterlánc:" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 Tehát nem változók itt. 672 00:28:25,510 --> 00:28:26,750 Nincs százalék jelek. 673 00:28:26,750 --> 00:28:28,550 Csak az egyszerű angol mondatot. 674 00:28:28,550 --> 00:28:34,030 Hadd Most menj az aljára ide és futtassa újra a programot. 675 00:28:34,030 --> 00:28:35,380 De semmi sem úgy tűnik, hogy megváltozott. 676 00:28:35,380 --> 00:28:37,350 Miért? 677 00:28:37,350 --> 00:28:38,380 Azt kell fordítanod azt. 678 00:28:38,380 --> 00:28:39,570 Így könnyen hibát tenni. 679 00:28:39,570 --> 00:28:41,700 De van, hogy nem csak menteni a fájlt, de 680 00:28:41,700 --> 00:28:43,260 újrafordítani a programot. 681 00:28:43,260 --> 00:28:46,640 És ha én újra futtasd a make hello, most csenget fut. 682 00:28:46,640 --> 00:28:51,800 Most már tudok futni. / Hello. És most látom "Adja meg egy string:". 683 00:28:51,800 --> 00:28:52,050 Oké. 684 00:28:52,050 --> 00:28:53,440 Most egy kicsit felhasználóbarát. 685 00:28:53,440 --> 00:28:55,850 Nate, az Enter, hello, Nate. 686 00:28:55,850 --> 00:28:57,310 >> Nos, próbáljuk meg újra, és indítsa el gondolkodni 687 00:28:57,310 --> 00:28:58,080 mintegy sarok esetekben. 688 00:28:58,080 --> 00:29:00,520 Szóval, csak úgy, mint Scratch, te ösztönözni, vagy hogy 689 00:29:00,520 --> 00:29:03,180 ösztönözni a spec, hogy milyen gondolni, mi mehet 690 00:29:03,180 --> 00:29:06,610 baj, ha nem előre mindent, amit a felhasználó esetleg csinálni. 691 00:29:06,610 --> 00:29:08,050 Bugs ezért járna. 692 00:29:08,050 --> 00:29:09,710 Szóval, adjon meg egy húr - 693 00:29:09,710 --> 00:29:11,130 mi a sarokban ügy itt? 694 00:29:11,130 --> 00:29:13,320 Mi az a forgatókönyv, hogy én, a programozó, esetleg nem 695 00:29:13,320 --> 00:29:16,070 várható? 696 00:29:16,070 --> 00:29:17,600 Igen. 697 00:29:17,600 --> 00:29:17,920 Oké. 698 00:29:17,920 --> 00:29:22,060 Szóval, mi van, ha én írjon be egy számot, mint ez? 699 00:29:22,060 --> 00:29:22,500 Rendben van. 700 00:29:22,500 --> 00:29:24,490 Tehát még mindig működik. 701 00:29:24,490 --> 00:29:25,880 Nyelvtanilag semmi értelme. 702 00:29:25,880 --> 00:29:27,180 De legalább a program működik. 703 00:29:27,180 --> 00:29:28,650 >> Mi van a másik sarokban az esetben? 704 00:29:28,650 --> 00:29:29,610 Valami, amit nem vártam. 705 00:29:29,610 --> 00:29:31,590 Igen? 706 00:29:31,590 --> 00:29:31,940 Oké. 707 00:29:31,940 --> 00:29:34,950 Így tudnánk tenni valamit, mint egy nagyon-nagyon nagy szám. 708 00:29:34,950 --> 00:29:37,270 Szóval ezt itt. 709 00:29:37,270 --> 00:29:40,880 Hadd kicsinyítés egy kicsit, hadd kiemelni. 710 00:29:40,880 --> 00:29:42,250 Nem lehet másolni és beilleszteni ide. 711 00:29:42,250 --> 00:29:42,470 Rendben van. 712 00:29:42,470 --> 00:29:44,440 Szóval nem lehet másolni és beilleszteni e terminál ablakban, úgyhogy 713 00:29:44,440 --> 00:29:46,950 Csak szimulálják azt. 714 00:29:46,950 --> 00:29:51,340 Hadd kicsinyítés, megy betakar. 715 00:29:51,340 --> 00:29:52,700 Nem fogom ezt túl sokáig, mert nem fog 716 00:29:52,700 --> 00:29:54,440 ténylegesen szünet ebben a programban. 717 00:29:54,440 --> 00:29:55,260 De igen. 718 00:29:55,260 --> 00:29:55,830 Az Enter billentyűt. 719 00:29:55,830 --> 00:29:56,580 De nem tette. 720 00:29:56,580 --> 00:29:57,050 Rendben van. 721 00:29:57,050 --> 00:29:58,440 De ez egy valódi sarok ügyben. 722 00:29:58,440 --> 00:30:01,610 És az egyetlen oka annak, hogy helyesen viselkedett, így 723 00:30:01,610 --> 00:30:05,820 beszélni, mert a CS50 funkció getString ténylegesen 724 00:30:05,820 --> 00:30:08,040 Ajánlott a motorháztető alatt, mint látni fogjuk néhány hét, 725 00:30:08,040 --> 00:30:11,570 automatikusan kiosztani több és több RAM, egyre több és több 726 00:30:11,570 --> 00:30:14,330 memóriát az operációs rendszer, amikor rájön, wow, 727 00:30:14,330 --> 00:30:16,670 amit tényleg beírt valami egészen hosszú. 728 00:30:16,670 --> 00:30:18,500 Nos, ez egy kicsit egy fehér hazugság. 729 00:30:18,500 --> 00:30:22,020 Ha valóban megállt egy darabig, és én beírt 730 00:30:22,020 --> 00:30:24,640 valami ilyesmi 5000000000 karaktert a billentyűzet 731 00:30:24,640 --> 00:30:28,060 itt, vagy valóban hit copy-paste egy kicsit, akkor nagy valószínűséggel 732 00:30:28,060 --> 00:30:29,730 okozhat a program összeomolhat. 733 00:30:29,730 --> 00:30:32,130 Csak egy kicsit nehezebb, hogy szimulálja, hogy egy véges 734 00:30:32,130 --> 00:30:33,740 ideig. 735 00:30:33,740 --> 00:30:37,320 >> Mi van a másik sarokban az esetben tudtunk próbálni? 736 00:30:37,320 --> 00:30:38,730 Igen? 737 00:30:38,730 --> 00:30:39,020 Igen. 738 00:30:39,020 --> 00:30:40,360 Szóval, miért nem válaszol semmit? 739 00:30:40,360 --> 00:30:43,130 Tehát valójában, hogy bizonyos intézkedéseket, mert különben 740 00:30:43,130 --> 00:30:45,060 A program fog ott ülni villog egész nap. 741 00:30:45,060 --> 00:30:46,860 De ha én csak Enter - 742 00:30:46,860 --> 00:30:48,780 OK, most mégis úgy néz ki rosszul. 743 00:30:48,780 --> 00:30:51,670 Nem lezuhan, de talán van most lehetősége 744 00:30:51,670 --> 00:30:54,190 végrehajtásának megkezdése szigorúbb programot 745 00:30:54,190 --> 00:30:55,290 ténylegesen ellenőrzi. 746 00:30:55,290 --> 00:30:57,640 És ha a húr, a mondat, a szó, amit 747 00:30:57,640 --> 00:31:00,890 beírt területén 0 hosszúságú, nos, talán meg kell kiabálni a 748 00:31:00,890 --> 00:31:03,770 felhasználó, vagy mondd neki, hogy belépjen egy string újra, úgy, hogy 749 00:31:03,770 --> 00:31:06,560 valójában, hogy mit néz a helyes viselkedést, és nem 750 00:31:06,560 --> 00:31:08,570 Csak a teljes felügyeletet a részemről. 751 00:31:08,570 --> 00:31:11,130 >> Kérdés vissza? 752 00:31:11,130 --> 00:31:11,970 Decimális számot. 753 00:31:11,970 --> 00:31:13,120 Tehát lehet próbálni azt is. 754 00:31:13,120 --> 00:31:16,840 1,10000005. 755 00:31:16,840 --> 00:31:19,470 Úgy tűnik, hogy fog működni, csak a ténylegesen oké. 756 00:31:19,470 --> 00:31:21,160 És ez tulajdonképpen várható. 757 00:31:21,160 --> 00:31:24,550 Annak ellenére, hogy lehet, hogy ez a szám van megadva, vagy a 758 00:31:24,550 --> 00:31:28,200 nagyobb szám korábban, amikor rájönnek, hogy mi gépelés felhasználó 759 00:31:28,200 --> 00:31:31,070 bemenet és mi a getString funkció nem 760 00:31:31,070 --> 00:31:34,380 függetlenül attól, hogy mit akarok gépelés néz ki, mint egy számot. 761 00:31:34,380 --> 00:31:36,720 Emlékezzünk vissza, hogy megfelelően ASCII, mindent a 762 00:31:36,720 --> 00:31:39,920 billentyűzet numerikus érték lehet térképezni, hogy a 763 00:31:39,920 --> 00:31:41,480 karakter, a karakter. 764 00:31:41,480 --> 00:31:44,490 Tehát ebben az esetben, bár talán írjon be egy számot, a 765 00:31:44,490 --> 00:31:48,190 számítógép fog gondolni rá, hogy úgy mondjam, mint egy húr - 766 00:31:48,190 --> 00:31:49,870 valamit, ami úgy néz ki, mint egy szám, de 767 00:31:49,870 --> 00:31:51,090 valójában nem egy szám. 768 00:31:51,090 --> 00:31:53,450 De ez valójában egy tökéletes Segue, mert most már tudjuk 769 00:31:53,450 --> 00:31:55,450 valójában átmenet írásban programok 770 00:31:55,450 --> 00:31:56,730 használjon más adattípusok. 771 00:31:56,730 --> 00:32:01,840 >> Szóval mellett a karakter, vagy inkább mellett a húrok, 772 00:32:01,840 --> 00:32:04,510 észre, hogy van más adattípusok a C, valamint a 773 00:32:04,510 --> 00:32:05,230 más nyelveken. 774 00:32:05,230 --> 00:32:08,480 A karakter, mint a neve is sugallja, csak egy karakter. 775 00:32:08,480 --> 00:32:12,150 Az úszó egy lebegőpontos érték, és ez csak egy divatos 776 00:32:12,150 --> 00:32:14,470 szóval a valós szám - valami, hogy van egy tizedes 777 00:32:14,470 --> 00:32:17,410 pont, hogy néhány szám a bal és / vagy jobb. 778 00:32:17,410 --> 00:32:21,370 Az int egész szám, ami csak egy szám, mint a 123. 779 00:32:21,370 --> 00:32:24,170 És most látna érdekesebb olyan dolgok, mint a kettős. 780 00:32:24,170 --> 00:32:28,540 Mit mondunk egy dupla volt az utolsó alkalom? 781 00:32:28,540 --> 00:32:30,050 Ez 64, jobbra. 782 00:32:30,050 --> 00:32:33,560 Tehát mivel jellemzően egy úszó 32-bit - 783 00:32:33,560 --> 00:32:37,340 így ez ilyen sokáig a memóriában, akkor használat 32 nullákkal és egyesekkel, hogy 784 00:32:37,340 --> 00:32:40,530 értékeket képviselnek - a kettős szó kétszerese, ami 785 00:32:40,530 --> 00:32:43,810 azt jelenti, hogy akkor sem képviselt nagyobb számokat, vagy 786 00:32:43,810 --> 00:32:45,810 Ön képviseli pontosabb számokat. 787 00:32:45,810 --> 00:32:48,690 Szóval lehet, hogy több számot a tizedespont után, de a 788 00:32:48,690 --> 00:32:51,520 a fickó azt mondta, a videó, még valami egyszerű 789 00:32:51,520 --> 00:32:55,360 fogalmilag, mint 1/3 nem képviseli pontosan egy 790 00:32:55,360 --> 00:32:58,330 számítógép, mert végül elfogy a bitek, és 791 00:32:58,330 --> 00:33:02,510 ezért csak akkor tudjuk megtenni .33333333 oly sokszor, a 792 00:33:02,510 --> 00:33:05,050 amely pontnál csak azt kell mondani, én vagyok az ábrázolás 793 00:33:05,050 --> 00:33:08,120 hely, van, hogy csak ez egy nap, és képviseli azt 794 00:33:08,120 --> 00:33:10,200 kissé pontatlanul tetszik. 795 00:33:10,200 --> 00:33:11,110 És egy hosszú, hosszú - 796 00:33:11,110 --> 00:33:13,880 hülye név, de ez azért van, mert van egy adattípust ismert 797 00:33:13,880 --> 00:33:19,350 hosszú C-ben, amely véletlenül gyakran 32 bit, csakúgy, mint egy 798 00:33:19,350 --> 00:33:21,670 int a 32 bit, de a hosszú ideig 799 00:33:21,670 --> 00:33:23,560 általában 64 bit. 800 00:33:23,560 --> 00:33:25,740 Tehát ez csak azt jelenti, hogy képviselje nagyobb 801 00:33:25,740 --> 00:33:26,990 számok, mint ez. 802 00:33:26,990 --> 00:33:27,410 >> Rendben van. 803 00:33:27,410 --> 00:33:29,390 Tehát ha valóban szeretné elindítani képviselő dolgokat, mi 804 00:33:29,390 --> 00:33:31,030 szükség lehet kifinomultabb típusok és 805 00:33:31,030 --> 00:33:32,340 ezért van string. 806 00:33:32,340 --> 00:33:36,450 Így a CS50 könyvtárban, hogy a fájl neve cs50.h, most már 807 00:33:36,450 --> 00:33:41,110 ténylegesen bevallott adattípus, hogy úgy mondjam, az úgynevezett húr, 808 00:33:41,110 --> 00:33:42,710 de a szöveg valójában nem létezik. 809 00:33:42,710 --> 00:33:44,780 Ez ismét egy ilyen réteget fogunk héja 810 00:33:44,780 --> 00:33:47,490 vissza egy-két hét, és dobja el, és ténylegesen 811 00:33:47,490 --> 00:33:49,640 nézd a motorháztető alatt, hogy mi a szöveg valójában, és a 812 00:33:49,640 --> 00:33:50,840 hogyan is képviseltette magát. 813 00:33:50,840 --> 00:33:53,520 Mi is lesz nézni logikai értékeket. 814 00:33:53,520 --> 00:33:56,040 >> Szóval, mi volt a bool keretében Scratch? 815 00:33:59,154 --> 00:34:00,300 Igaz, vagy hamis. 816 00:34:00,300 --> 00:34:03,900 Tehát ez csak egy értéket, hogy ez igaz vagy hamis, be-vagy kikapcsolása, 1 vagy 817 00:34:03,900 --> 00:34:06,140 0, de szeretné megtekinteni a világ. 818 00:34:06,140 --> 00:34:09,739 Így a C, köszönhetően a CS50 könyvtár, ami viszont 819 00:34:09,739 --> 00:34:12,179 magában foglalja a másik könyvtár a motorháztető alatt, már 820 00:34:12,179 --> 00:34:14,909 hozzáférést egy adattípust hívják bool, amely 821 00:34:14,909 --> 00:34:18,730 szó szerint lehetővé teszi, hogy rendelni az értékeket true vagy false 822 00:34:18,730 --> 00:34:20,219 dolgokat a program. 823 00:34:20,219 --> 00:34:23,880 >> Szóval gyerünk ide, és írjon egy kis programot, amely 824 00:34:23,880 --> 00:34:26,330 csinál valamit érintő számok helyett. 825 00:34:26,330 --> 00:34:29,840 Akkor hadd menjek vissza a CS50 Appliance, hadd menjen előre, és 826 00:34:29,840 --> 00:34:32,770 hozzon létre egy új fájlt, itt hívják - 827 00:34:32,770 --> 00:34:35,460 mondjuk valami egyszerű, mint a math.c. 828 00:34:38,270 --> 00:34:38,710 Rendben van. 829 00:34:38,710 --> 00:34:41,600 És most menj fel a csúcsra a program, én vagyok 830 00:34:41,600 --> 00:34:42,510 csinálni a szokásos - 831 00:34:42,510 --> 00:34:44,780 # Include , hogy tudom használni 832 00:34:44,780 --> 00:34:46,860 printf, int main (void) - 833 00:34:46,860 --> 00:34:49,270 akkor jön vissza, végül, mit jelent int 834 00:34:49,270 --> 00:34:52,389 itt, mit jelent void itt, de most, csak tudom, hogy 835 00:34:52,389 --> 00:34:54,270 meg kell kezdeni programok, mint ez. 836 00:34:54,270 --> 00:34:56,280 Most megyek előre, és mondjuk egy kicsit 837 00:34:56,280 --> 00:35:02,110 különböző - printf ("Adj egy számot:" 838 00:35:02,110 --> 00:35:03,570 ),. 839 00:35:03,570 --> 00:35:09,220 Akkor fogok csinálni int n = getInt, mert 840 00:35:09,220 --> 00:35:12,770 Kiderült getInt másik funkció a CS50 könyvtárban 841 00:35:12,770 --> 00:35:14,060 mellett getString. 842 00:35:14,060 --> 00:35:17,340 És most fogok csinálni valami hülyeséget, mint a "köszönöm 843 00:35:17,340 --> 00:35:25,760 A% d ", a decimális egész szám, majd vessző n, és 844 00:35:25,760 --> 00:35:26,620 majd vissza 0-ra. 845 00:35:26,620 --> 00:35:28,940 Tehát ismét vissza 0-nak semmi köze a szám vagyok 846 00:35:28,940 --> 00:35:30,080 kéri a felhasználótól. 847 00:35:30,080 --> 00:35:33,620 Csak azt jelenti, a végén, hogy az összes, feltehetően jól. 848 00:35:33,620 --> 00:35:36,290 >> Akkor hadd menjek le a terminál ablak van. 849 00:35:36,290 --> 00:35:39,590 Hadd írja, hogy a matematika, az enter billentyűt. 850 00:35:39,590 --> 00:35:41,360 És valami baj van. 851 00:35:41,360 --> 00:35:44,620 Győződjön matek nem működik. 852 00:35:44,620 --> 00:35:46,170 Itt az első a mi hibaüzenetek. 853 00:35:46,170 --> 00:35:46,570 Miért? 854 00:35:46,570 --> 00:35:49,720 Egy kicsit rejtélyes, de - 855 00:35:49,720 --> 00:35:50,060 Igen. 856 00:35:50,060 --> 00:35:51,240 Szóval cs50.h. 857 00:35:51,240 --> 00:35:53,900 Tehát újra, különösen a korán, akkor írja meg az első 858 00:35:53,900 --> 00:35:56,590 program Pset 1 pontban, a munkaidőn és 859 00:35:56,590 --> 00:35:59,050 őszintén szólva, ez lesz döntő néha mik ezek a dolgok 860 00:35:59,050 --> 00:36:00,000 ténylegesen mondanak. 861 00:36:00,000 --> 00:36:01,890 De rájössz nagyon gyorsan elkezd esni 862 00:36:01,890 --> 00:36:06,120 gyűjtőzónákba ahol ez azt jelenti, hogy már abbahagyta 1 863 00:36:06,120 --> 00:36:08,290 A # magában foglalja a tetején a fájlt. 864 00:36:08,290 --> 00:36:10,960 És csenget, a fordító, hogy tájékoztatja Önt ezt 865 00:36:10,960 --> 00:36:14,090 mondván, inkább fancifully, implicit nyilatkozat 866 00:36:14,090 --> 00:36:15,990 funkció getInt érvénytelen. 867 00:36:15,990 --> 00:36:16,310 >> Rendben van. 868 00:36:16,310 --> 00:36:17,520 Szóval mit jelent ez? 869 00:36:17,520 --> 00:36:22,080 Ez csak azt jelenti, hogy már hallgatólagosan bejelentett getInt ben 870 00:36:22,080 --> 00:36:24,850 abban az értelemben, hogy már nem kifejezetten nyilvánította. 871 00:36:24,850 --> 00:36:27,300 Kifejezetten állapítsa int, meg kell tanítani 872 00:36:27,300 --> 00:36:28,740 Csenget, hogy létezik. 873 00:36:28,740 --> 00:36:32,020 És a nagyon egyszerű megoldás, amely tanítani azt 874 00:36:32,020 --> 00:36:34,780 beleértve a másik fájl, cs50.h készült, 875 00:36:34,780 --> 00:36:35,850 a tetején a fájlt. 876 00:36:35,850 --> 00:36:40,380 Mert szó szerint, mit jelent ez: # include azt mondja csenget 877 00:36:40,380 --> 00:36:44,030 nagyon sokat menni megtalálják a nevű fájlt cs50.h, másol, 878 00:36:44,030 --> 00:36:48,150 illessze automatikusan a tetején az én program nekem, 879 00:36:48,150 --> 00:36:50,850 majd konvertálja a forráskódot nullákkal és egyesekkel. 880 00:36:50,850 --> 00:36:52,850 De ez nyilvánvalóan nagyon unalmas, ha az emberek már 881 00:36:52,850 --> 00:36:55,370 megy a másolás és beillesztés ezek a nagy fájlok minden alkalommal, 882 00:36:55,370 --> 00:36:58,540 úgyhogy # include csak nem minden nélkül, automatikusan 883 00:36:58,540 --> 00:37:01,550 muddying my kód valaki más könyvtár. 884 00:37:01,550 --> 00:37:06,370 És egy könyvtár csak egy fájl, amely funkciók és 885 00:37:06,370 --> 00:37:08,340 Más dolog, hogy valaki írt, hogy mi van 886 00:37:08,340 --> 00:37:10,270 kihasználva a saját kedvéért. 887 00:37:10,270 --> 00:37:10,580 >> Rendben van. 888 00:37:10,580 --> 00:37:11,200 Próbáljuk újra. 889 00:37:11,200 --> 00:37:12,250 Gyártó matek. 890 00:37:12,250 --> 00:37:13,120 Az Enter billentyűt. 891 00:37:13,120 --> 00:37:13,530 Jó. 892 00:37:13,530 --> 00:37:14,880 Annak érdekében, hogy úgy tűnik, hogy működik. 893 00:37:14,880 --> 00:37:18,330 Úgyhogy nekem most futni matek,. / Math. 894 00:37:18,330 --> 00:37:21,100 Adja meg ad nekem egy számot, 123. 895 00:37:21,100 --> 00:37:22,620 Köszönöm a 123. 896 00:37:22,620 --> 00:37:24,490 Most próbáljuk másik sarokban ügyben. 897 00:37:24,490 --> 00:37:26,530 Egy karakterlánc elég nagylelkű, mert a 898 00:37:26,530 --> 00:37:27,620 szöveg bármi lehet. 899 00:37:27,620 --> 00:37:28,910 Lehet néz számok néz 900 00:37:28,910 --> 00:37:30,600 karakterek néznek ki, mint szavakkal. 901 00:37:30,600 --> 00:37:31,900 De egy int egy int. 902 00:37:31,900 --> 00:37:34,370 Így most, ha én vagyok a nehéz felhasználó, és ez azt mondja: "Add nekem 903 00:37:34,370 --> 00:37:38,730 Számos, "mi van, ha megpróbálok tenni valamit, mint a 0.1? 904 00:37:38,730 --> 00:37:41,510 Nos, ez a szám, és ez összhangban van a 905 00:37:41,510 --> 00:37:44,180 nyelvtani szoktam itt, de a motorháztető alatt, én vagyok az 906 00:37:44,180 --> 00:37:45,610 Természetesen a funkció getInt. 907 00:37:45,610 --> 00:37:46,610 >> Szóval lássuk, mi történik. 908 00:37:46,610 --> 00:37:48,250 Adja meg, próbálja újra. 909 00:37:48,250 --> 00:37:48,560 Rendben van. 910 00:37:48,560 --> 00:37:50,570 Hadd legyen nehéz, és az Enter leütése újra. 911 00:37:50,570 --> 00:37:51,700 Enter, Enter. 912 00:37:51,700 --> 00:37:53,890 Szóval most úgy tűnik, hogy getInt egy kicsit 913 00:37:53,890 --> 00:37:55,240 erősebb, mint getString. 914 00:37:55,240 --> 00:37:58,540 Mi, a személyzet, végre oly módon, hogy ha észre 915 00:37:58,540 --> 00:38:02,100 Ön nem adott nekünk egy int - és int egy decimális szám 916 00:38:02,100 --> 00:38:04,785 tartalmazó nullák, is, kettesével, hármasával, négyes, ötös, hatos, 917 00:38:04,785 --> 00:38:05,540 hetes, nyolcas, vagy kilences. 918 00:38:05,540 --> 00:38:06,310 És ennyi. 919 00:38:06,310 --> 00:38:08,810 Nem tizedes jegyre, nem karaktereket, nincs központozás. 920 00:38:08,810 --> 00:38:10,390 Úgy tűnik, hogy van az együttműködésre. 921 00:38:10,390 --> 00:38:13,680 Akkor hadd próbáljam meg négy, öt, hat, és ez lesz velem. 922 00:38:13,680 --> 00:38:16,760 Szóval tényleg, hogy az anális itt, azt kéne mondani, hogy "Adj nekem 923 00:38:16,760 --> 00:38:20,310 egész szám "annak érdekében, hogy továbbítja a felhasználó 924 00:38:20,310 --> 00:38:22,620 pontosan mit szándékoznak. 925 00:38:22,620 --> 00:38:24,090 >> Most gondoljon a motorháztető alatt. 926 00:38:24,090 --> 00:38:27,930 Nem fogunk nézni, hogyan cs50.h megvalósítása ma, 927 00:38:27,930 --> 00:38:29,080 hogy a könyvtár. 928 00:38:29,080 --> 00:38:33,600 De ha tartja mondván újra, újra, újra, milyen programozási 929 00:38:33,600 --> 00:38:36,970 konstrukció vagyok feltehetően használ a motorháztető alatt a 930 00:38:36,970 --> 00:38:39,000 végre ezt? 931 00:38:39,000 --> 00:38:39,980 Szóval csak egy hurok, ugye? 932 00:38:39,980 --> 00:38:41,930 Az egyik legegyszerűbb ötletek láttunk Scratch. 933 00:38:41,930 --> 00:38:45,050 The Forever konstrukció, az ismételt konstrukció. 934 00:38:45,050 --> 00:38:47,320 Feltételezhető, hogy ebben a programban, a motorháztető alatt, még 935 00:38:47,320 --> 00:38:49,470 ellenére, hogy C-ben írt, és nem karcolás, csinál 936 00:38:49,470 --> 00:38:54,300 valami úgynevezett egyenértékű örökre, ha a felhasználó nem 937 00:38:54,300 --> 00:38:58,710 beírt értéke, mondjuk újra, újra, újra, újra, így a 938 00:38:58,710 --> 00:39:01,220 végül ha nem kap egy egész szám, akkor 939 00:39:01,220 --> 00:39:02,970 kitörni, hogy a hurok. 940 00:39:02,970 --> 00:39:05,610 >> Szóval, milyen egyéb funkciókat tudjuk használni itt CS50 könyvtárában? 941 00:39:05,610 --> 00:39:07,880 Nos, a fajta az nyilvánvaló is, legalábbis alapján a 942 00:39:07,880 --> 00:39:09,570 adattípusok, hogy most már tudjuk, létezik. 943 00:39:09,570 --> 00:39:12,900 Mi végre getString, getInt, hanem az egész 944 00:39:12,900 --> 00:39:15,680 első heteiben a kifejezés, akkor is használhatja getFloat és 945 00:39:15,680 --> 00:39:18,870 GetDouble és GetLongLong annak érdekében, hogy pontosan 946 00:39:18,870 --> 00:39:20,030 adattípusok, amit akar. 947 00:39:20,030 --> 00:39:24,030 Mert a legfontosabb részlet az, hogy ellentétben néhány nyelven, 948 00:39:24,030 --> 00:39:26,630 mint a Python és Ruby, ahol nem kell feltétlenül 949 00:39:26,630 --> 00:39:29,730 állapítsa meg az adattípus egy változó - 950 00:39:29,730 --> 00:39:32,390 nem kell elmondani a számítógép milyen stuff 951 00:39:32,390 --> 00:39:34,000 fogsz tenni a változó - 952 00:39:34,000 --> 00:39:36,640 C-ben van, hogy valaha is olyan pontos. 953 00:39:36,640 --> 00:39:40,060 Szóval, ha akarsz egy változót nevű n, egy darab a tárolási 954 00:39:40,060 --> 00:39:42,900 hogy ebben az esetben történik, hogy 32 bitre megegyezés, akkor 955 00:39:42,900 --> 00:39:45,660 El kell mondanom, hogy ezek a számítógép bitek 956 00:39:45,660 --> 00:39:47,840 megy szám tárolásához - 957 00:39:47,840 --> 00:39:50,630 nem egy karakter, nem egy string, nem egy úszó. 958 00:39:50,630 --> 00:39:52,620 És ez azzal a kérdéssel foglalkozik már ténylegesen 959 00:39:52,620 --> 00:39:53,760 futott be a múlt héten. 960 00:39:53,760 --> 00:39:57,050 Ha mi a nullákkal és egyesekkel számok képviselik nem csak 961 00:39:57,050 --> 00:40:00,770 számokat, hanem As és Bs és Cs, hogy a világ egy 962 00:40:00,770 --> 00:40:03,460 számítógép fogja tudni, hogy ez a minta a bitek ténylegesen 963 00:40:03,460 --> 00:40:07,650 jelenti a szám 65, szemben a képviselő 964 00:40:07,650 --> 00:40:09,860 betű, amely véletlenül szerint 965 00:40:09,860 --> 00:40:13,440 ASCII, emlékszem, egyenértékű volt a 65? 966 00:40:13,440 --> 00:40:16,550 >> Tehát ezek adattípusok nyújtanak összefüggésben a számítógéphez, így a 967 00:40:16,550 --> 00:40:18,810 , hogy tudja, hogy ezeket a biteket úgy kell értelmezni, mint egy 968 00:40:18,810 --> 00:40:23,660 int vagy egy string. 969 00:40:23,660 --> 00:40:26,500 Bármilyen kérdése van, akkor ezzel kapcsolatban? 970 00:40:26,500 --> 00:40:28,149 Igen? 971 00:40:34,780 --> 00:40:35,270 DAVID J. Malan: Jó kérdés. 972 00:40:35,270 --> 00:40:39,140 Ha veszünk ki stdio.h, mi mentse a fájlt - 973 00:40:39,140 --> 00:40:44,360 hadd menjek le a terminál ablakot, és futtasd a make matek, zoom 974 00:40:44,360 --> 00:40:45,530 és be - 975 00:40:45,530 --> 00:40:47,700 Most kapok egy másik hiba, mert én vagyok hallgatólagosan 976 00:40:47,700 --> 00:40:49,650 nyilvánító mi működik most? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 Szóval most már létrehozott egy új probléma, amelynek megoldása a 979 00:40:52,970 --> 00:40:53,890 lényegében azonos. 980 00:40:53,890 --> 00:40:55,365 Azt kell, hogy tedd azt vissza. 981 00:40:55,365 --> 00:40:56,615 KÖZÖNSÉG: [hangtalan] 982 00:41:03,534 --> 00:41:04,030 DAVID J. Malan: Oh. 983 00:41:04,030 --> 00:41:04,850 Szóval, ha veszek ki - 984 00:41:04,850 --> 00:41:05,360 Oké, igen. 985 00:41:05,360 --> 00:41:08,960 Tehát, ha leveszem a standard I / O könyvtár integráció up 986 00:41:08,960 --> 00:41:12,020 itt, és akkor mondod, ha megszabadulni a printf, kap 987 00:41:12,020 --> 00:41:13,450 Szabadulj meg printf? 988 00:41:13,450 --> 00:41:13,810 Igen. 989 00:41:13,810 --> 00:41:18,450 Ennek működnie kell, mert már nem vagyok bármilyen - Hoppá. 990 00:41:18,450 --> 00:41:20,110 Hasznosnak Csak hazudni? 991 00:41:20,110 --> 00:41:21,650 Ó, oké. 992 00:41:21,650 --> 00:41:25,640 Ez nem fog működni, mert egy új hiba mi csak bevezetni. 993 00:41:25,640 --> 00:41:28,390 És ez egy kicsit magától értetődő. 994 00:41:28,390 --> 00:41:29,440 >> Mi a baj? 995 00:41:29,440 --> 00:41:30,680 Kihasználatlan változó n. 996 00:41:30,680 --> 00:41:34,040 Szóval ez a hiba annak a következménye, mi miután beállította a 997 00:41:34,040 --> 00:41:36,640 készüléket különösen pedáns, valóban kiabálni 998 00:41:36,640 --> 00:41:39,060 Ön minden lehetséges hibát, akkor is, ha ez a fajta 999 00:41:39,060 --> 00:41:41,950 nem végzetes hiba, mint ez - ez tényleg olyan nagy 1000 00:41:41,950 --> 00:41:44,820 foglalkozik, hogy én kiosztott int, hogy egy számot, majd 1001 00:41:44,820 --> 00:41:46,030 Csak nem csinált semmit vele? 1002 00:41:46,030 --> 00:41:47,020 Szóval funkcionálisan, nem. 1003 00:41:47,020 --> 00:41:50,410 Ez nem fogja megtörni a program. 1004 00:41:50,410 --> 00:41:51,490 Ez csak ilyen hülye, ugye? 1005 00:41:51,490 --> 00:41:54,220 Nincs értéke miután kérte ezt a számot, tárolása 1006 00:41:54,220 --> 00:41:56,370 azt a változót, ha soha nem fog semmit 1007 00:41:56,370 --> 00:41:58,000 vele, hogy nyomtassa ki, vagy mentse el. 1008 00:41:58,000 --> 00:42:00,270 Tehát ebben az esetben, csenget az elismerése, mint sok, és 1009 00:42:00,270 --> 00:42:02,010 azt mondja, nem használt változó n. 1010 00:42:02,010 --> 00:42:05,380 >> Így tudjuk kijavítani ezt, ha igazán akar. 1011 00:42:05,380 --> 00:42:07,250 De ismétlem, ez nem jó programozási most. 1012 00:42:07,250 --> 00:42:09,310 Szóval én is csak ezt - 1013 00:42:09,310 --> 00:42:12,060 menj le ide, hadd törölje a képernyőt, hogy matek. 1014 00:42:12,060 --> 00:42:13,090 Ez működik. 1015 00:42:13,090 --> 00:42:18,110 Most már tudok futni a matematikai program, úgy bemenet - 1016 00:42:18,110 --> 00:42:18,700 nos, ez rossz volt. 1017 00:42:18,700 --> 00:42:23,450 Veszi bemenet, és ez minden ez, ebben az esetben. 1018 00:42:23,450 --> 00:42:25,220 >> Tehát tulajdonképpen, próbáljuk egy másik sarokban eset, hogy mi 1019 00:42:25,220 --> 00:42:26,300 nem gondolt korábban. 1020 00:42:26,300 --> 00:42:28,220 Ebben az esetben - itt, menjünk vissza az egyik, hogy a 1021 00:42:28,220 --> 00:42:29,500 kicsit több felhasználóbarát. 1022 00:42:29,500 --> 00:42:32,580 Hadd menjek vissza ide, és futtasd a make matek újra. 1023 00:42:32,580 --> 00:42:34,190 Hoppá, mit csináltam rosszul? 1024 00:42:34,190 --> 00:42:35,400 Van, hogy állítsa vissza tovább. 1025 00:42:35,400 --> 00:42:36,390 Oké. 1026 00:42:36,390 --> 00:42:38,490 Most már vissza az eredeti állapot, ahol az összes 1027 00:42:38,490 --> 00:42:39,990 ez remélhetőleg jól. 1028 00:42:39,990 --> 00:42:43,360 És most, ha én futni matek, 123 úgy tűnik, hogy működik. 1029 00:42:43,360 --> 00:42:46,010 De ez nem igazán hatásos bizonyíték, hogy csak azt 1030 00:42:46,010 --> 00:42:47,930 oké, hogy működik. 1031 00:42:47,930 --> 00:42:49,120 789, ami működik. 1032 00:42:49,120 --> 00:42:50,100 Ideje benyújtására. 1033 00:42:50,100 --> 00:42:51,870 Mert van másik sarokban esetekben itt. 1034 00:42:51,870 --> 00:42:55,040 A string nem igazán nekünk sok bajt beírja a 1035 00:42:55,040 --> 00:42:56,510 csomó karakter. 1036 00:42:56,510 --> 00:42:59,580 De mi van, ha én írja ezt? 1037 00:42:59,580 --> 00:43:04,850 Irány az 1-es szám egy csomó, csomó ide - 1038 00:43:04,850 --> 00:43:06,300 Rendben, ez kezd egy kicsit unalmas, úgyhogy megyek 1039 00:43:06,300 --> 00:43:10,040 megáll itt, és megyek az Enter leütése. 1040 00:43:10,040 --> 00:43:11,290 >> Mi a fene történt? 1041 00:43:14,110 --> 00:43:17,680 Szóval ez is lehet magyarázni. 1042 00:43:17,680 --> 00:43:18,920 Így telt el, mint bináris? 1043 00:43:18,920 --> 00:43:21,130 Egy jó gondolat, de nem, ez nem az a tény, hogy elvette 1044 00:43:21,130 --> 00:43:22,815 bináris, mert valóban, ez csak egyfajta 1045 00:43:22,815 --> 00:43:23,080 véletlen. 1046 00:43:23,080 --> 00:43:23,930 Meg tudjuk csinálni ezt újra. 1047 00:43:23,930 --> 00:43:26,530 Szóval nincs 2 a bináris rendszer, ez 1048 00:43:26,530 --> 00:43:27,420 valószínűleg elég egyébként. 1049 00:43:27,420 --> 00:43:28,780 Az Enter billentyűt. 1050 00:43:28,780 --> 00:43:30,140 Szóval nem ez volt a probléma. 1051 00:43:30,140 --> 00:43:31,390 Mi van még? 1052 00:43:34,650 --> 00:43:35,400 Pontosan. 1053 00:43:35,400 --> 00:43:37,830 >> Tehát úgy gondolja, vissza a mi int valójában. 1054 00:43:37,830 --> 00:43:40,970 Ez 32 bit, amelyek együttesen értelmezett 1055 00:43:40,970 --> 00:43:42,090 mint egy számot. 1056 00:43:42,090 --> 00:43:44,730 Ha van 32 bit, azt jelenti, hogy minden egyes bit lehet 1057 00:43:44,730 --> 00:43:46,690 a 0 vagy egy 1, 0 vagy 1. 1058 00:43:46,690 --> 00:43:49,090 Tehát ez azt jelenti, van két lehetőség erre bit, 1059 00:43:49,090 --> 00:43:51,140 Két lehetőség ezen két lehetőség erre 1060 00:43:51,140 --> 00:43:52,570 bit - annak érdekében, hogy ez 2-szer 2-szer - 1061 00:43:52,570 --> 00:43:55,480 annak érdekében, hogy ez a 2 a 32 teljesítmény a teljes száma 1062 00:43:55,480 --> 00:43:58,960 permutációk nullákkal és egyesekkel, ha 32 1063 00:43:58,960 --> 00:44:01,400 Helyőrzők, nullát vagy egyest, előtted. 1064 00:44:01,400 --> 00:44:04,250 Szóval, ha van 2 a 32, matematikailag, ez mi? 1065 00:44:07,080 --> 00:44:07,840 Szóval egy csomó. 1066 00:44:07,840 --> 00:44:09,910 Ez 4 milliárd ide vagy oda. 1067 00:44:09,910 --> 00:44:13,510 És 4000000000, nem úgy tűnik, hogy mi kinyomtatott itt. 1068 00:44:13,510 --> 00:44:16,290 Tény, hogy ez úgy néz ki, közelebb a 2 milliárdot. 1069 00:44:16,290 --> 00:44:17,970 De ez nem véletlen. 1070 00:44:17,970 --> 00:44:21,590 Az a tény, hogy a számítógép tévesen értelmezte a nagyszámú, 1071 00:44:21,590 --> 00:44:24,260 én hatalmas sorozata is, és aztán a nagy sorozat kettes, 1072 00:44:24,260 --> 00:44:26,880 A mintegy 2 milliárd ismertetjük hogyan? 1073 00:44:30,250 --> 00:44:32,180 Van egy kupakot a int. 1074 00:44:32,180 --> 00:44:34,970 Van egy természetesen egy maximális érték, amit képviselnek. 1075 00:44:34,970 --> 00:44:36,370 De ez általában 4 milliárd, ugye? 1076 00:44:36,370 --> 00:44:39,100 Ha 2 a 32 nagyjából 4 milliárd, hogy úgy tűnik, mintha 1077 00:44:39,100 --> 00:44:40,350 ez a legnagyobb szám. 1078 00:44:42,420 --> 00:44:45,240 Tehát nem a maradék, de egy jó gondolat. 1079 00:44:45,240 --> 00:44:46,340 Negatív számok. 1080 00:44:46,340 --> 00:44:49,570 Tehát, ha van 4 milliárd lehetséges dolog, amit lehet 1081 00:44:49,570 --> 00:44:52,970 képviselt a különböző permutációk 32 0s és 1082 00:44:52,970 --> 00:44:55,600 1s, nos, magától értetődik, hogy mi, emberek érdemes 1083 00:44:55,600 --> 00:44:57,110 jelentenek nem csak a pozitív egészek 1084 00:44:57,110 --> 00:44:58,240 de negatív egészek. 1085 00:44:58,240 --> 00:45:00,410 És valóban, ez az a feltételezés, hogy a C teszi. 1086 00:45:00,410 --> 00:45:03,550 Tehát a 32 bites, akkor képviseli durván negatív 2 1087 00:45:03,550 --> 00:45:06,630 milliárd egészen pozitív 2 milliárdot. 1088 00:45:06,630 --> 00:45:08,750 És ebben az esetben, amit mi igazán látni csak 1089 00:45:08,750 --> 00:45:13,600 a béren kívüli a kapacitás a mi egész, és mi van, így a 1090 00:45:13,600 --> 00:45:15,860 beszélni, túlcsordult egész. 1091 00:45:15,860 --> 00:45:19,180 Megpróbáltuk teletölteni több bitet bele, mint ami valóban illik. 1092 00:45:19,180 --> 00:45:22,960 Tehát a végeredmény már lényegében minden 1 bit. 1093 00:45:22,960 --> 00:45:25,280 Már tükrözött minden kedves bitek, már próbáltam, hogy képviseljék 1094 00:45:25,280 --> 00:45:27,630 a legnagyobb számú lehetséges, de ez nyilvánvalóan nem közel 1095 00:45:27,630 --> 00:45:30,960 elég nagy ahhoz, hogy képviselje a két dolog, amit csak gépelt be 1096 00:45:30,960 --> 00:45:31,730 Igen? 1097 00:45:31,730 --> 00:45:32,980 KÖZÖNSÉG: [hangtalan] 1098 00:45:37,230 --> 00:45:37,830 >> DAVID J. Malan: Jó kérdés. 1099 00:45:37,830 --> 00:45:40,080 Miért nem tudunk egyszerűen kijelenti, hogy a negatív 1100 00:45:40,080 --> 00:45:41,500 írjon, mint csak egy karakter? 1101 00:45:41,500 --> 00:45:44,200 Tehát teljesen lehetett, és mi is majd mentse 1102 00:45:44,200 --> 00:45:45,470 egy további bit. 1103 00:45:45,470 --> 00:45:49,100 De még mindig megy, hogy kijelenti, hogy kötőjel, és 1104 00:45:49,100 --> 00:45:50,700 ez fog kerülni, hogy legalább valamit, 1105 00:45:50,700 --> 00:45:52,220 valószínűleg egy kicsit. 1106 00:45:52,220 --> 00:45:55,610 Szóval igen, mi lehetett volna 32 bit felhasználhatja a szám, de most 1107 00:45:55,610 --> 00:45:57,610 szükségünk van egy másik bit felhasználhatja a kötőjel 1108 00:45:57,610 --> 00:45:58,810 szimbólum, a mínusz jel. 1109 00:45:58,810 --> 00:46:01,470 Tehát most már 33 bites értékek, amit tehetnénk, de ez 1110 00:46:01,470 --> 00:46:02,570 Csak nem úgy, ahogy kész. 1111 00:46:02,570 --> 00:46:05,140 Csináltunk egy ítélet hívást évvel ezelőtt, 32 bit egyfajta a 1112 00:46:05,140 --> 00:46:06,170 mértékegység itt. 1113 00:46:06,170 --> 00:46:08,120 Így fogunk használni egy ilyen bitek hatékonyan 1114 00:46:08,120 --> 00:46:12,950 képviselnek negativitás, és 31 bit, hogy képviselje a számot. 1115 00:46:12,950 --> 00:46:15,550 Egyéb kérdés? 1116 00:46:15,550 --> 00:46:15,670 Rendben van. 1117 00:46:15,670 --> 00:46:16,030 Ez rengeteg. 1118 00:46:16,030 --> 00:46:17,930 Miért nem megy előre, és megteszi az öt perces szünetet itt? 1119 00:46:23,580 --> 00:46:24,270 >> Rendben van. 1120 00:46:24,270 --> 00:46:31,250 Tehát ismét nem túlhangsúlyozni a matematikai alkalmazások 1121 00:46:31,250 --> 00:46:33,840 programozás, menjünk csak összeszedi ki ezt egy példa 1122 00:46:33,840 --> 00:46:36,590 mielőtt beköltözik más konstrukciók, csak azért, mert 1123 00:46:36,590 --> 00:46:39,430 jól szemlélteti néhány gyakori hátráltatója pontok egyes 1124 00:46:39,430 --> 00:46:41,520 az alapok, amikor a programok írásának. 1125 00:46:41,520 --> 00:46:44,360 Ebben az esetben a, ezzel aritmetikai kiértékelésének van bizonyos 1126 00:46:44,360 --> 00:46:48,010 Érdekes jelentősége a szintaxist. 1127 00:46:48,010 --> 00:46:50,430 >> Tehát ez csak egy képlet, amellyel képes átalakítani 1128 00:46:50,430 --> 00:46:52,690 hőmérséklet Fahrenheit Celsius. 1129 00:46:52,690 --> 00:46:54,600 Ha nem emlékszem, ez csak a képletet. 1130 00:46:54,600 --> 00:46:58,870 Tehát ha csatlakoztatja Fahrenheit értékének 32 fokos, ami 1131 00:46:58,870 --> 00:47:02,850 fagyasztás, hogy lesz 32 mínusz 32 0, és valóban, 1132 00:47:02,850 --> 00:47:05,130 A 0 Celsius is fagyasztás. 1133 00:47:05,130 --> 00:47:08,210 Így gyorsan józanság megtekintéséhez nincs - ez a jól ismert képlet. 1134 00:47:08,210 --> 00:47:10,880 Hadd menjek át a készülék, bár, és indítsa el a 1135 00:47:10,880 --> 00:47:13,920 írásban a program neve, például, F2C; "Fahrenheit 1136 00:47:13,920 --> 00:47:15,920 Celsius dot c ". 1137 00:47:15,920 --> 00:47:18,930 És ki a tetején van, megyek elindul # include 1138 00:47:18,930 --> 00:47:22,190 stdio.h, és én fogom csinálni int main (void), és a 1139 00:47:22,190 --> 00:47:24,680 megint, akkor gyere vissza a jövőben, hogy milyen int jelent 1140 00:47:24,680 --> 00:47:26,820 és mit jelent semmis ott. 1141 00:47:26,820 --> 00:47:28,770 És most hadd menjek előre, és végre egy programot, amely 1142 00:47:28,770 --> 00:47:31,170 alapvetően nem ez az átalakulás a számunkra. 1143 00:47:31,170 --> 00:47:36,830 >> Szóval printf, mondjuk a hőmérséklet Fahrenheit. 1144 00:47:36,830 --> 00:47:40,140 És akkor hadd menjen előre, és kap az értéket a felhasználó. 1145 00:47:40,140 --> 00:47:43,120 Milyen értéket kapok a felhasználó, ha akarom 1146 00:47:43,120 --> 00:47:45,620 őket, hogy adjon nekem egy hőmérséklet Fahrenheit? 1147 00:47:45,620 --> 00:47:48,090 Igen? 1148 00:47:48,090 --> 00:47:50,090 Mit javasol? 1149 00:47:50,090 --> 00:47:50,410 Igen. 1150 00:47:50,410 --> 00:47:51,960 Szóval úszó úgy érzi, elég ésszerű. 1151 00:47:51,960 --> 00:47:53,950 Van, megint csak néhány lehetőség, hogy 1152 00:47:53,950 --> 00:47:55,310 láttunk eddig. 1153 00:47:55,310 --> 00:48:00,100 Van dolgok, mint a char, dupla, float, int, long long, 1154 00:48:00,100 --> 00:48:01,150 bool, string. 1155 00:48:01,150 --> 00:48:03,510 Szóval ezek, float úgy érzi, elég ésszerű. 1156 00:48:03,510 --> 00:48:06,340 Jól jönne egy dupla, jobb, mert ha tényleg meg akarjuk 1157 00:48:06,340 --> 00:48:07,580 jelentenek az emberi hőmérséklete - 1158 00:48:07,580 --> 00:48:10,730 98,60000 - 1159 00:48:10,730 --> 00:48:12,990 tudtuk használni 64 bites csinálni, de úgy érzi, mintha 1160 00:48:12,990 --> 00:48:14,200 túlzás a hőmérséklet. 1161 00:48:14,200 --> 00:48:16,380 Szóval csak megy az úszó. 1162 00:48:16,380 --> 00:48:18,100 Most kell egy változót. 1163 00:48:18,100 --> 00:48:20,500 Csak az egyszerűség kedvéért, fogom hívni f, de 1164 00:48:20,500 --> 00:48:23,370 is ugyanúgy helyesen nevezik hőmérséklet, 1165 00:48:23,370 --> 00:48:24,600 de vagy jól van. 1166 00:48:24,600 --> 00:48:27,610 Szóval float f = getFloat. 1167 00:48:27,610 --> 00:48:30,220 Amint most úgy döntött, hogy használja getFloat, bár én 1168 00:48:30,220 --> 00:48:33,340 kell, hogy egy korrekciót. 1169 00:48:33,340 --> 00:48:33,720 Igen. 1170 00:48:33,720 --> 00:48:37,460 Tehát meg kell # include , különben a fordító 1171 00:48:37,460 --> 00:48:39,000 fog kiabálni nekünk. 1172 00:48:39,000 --> 00:48:41,720 Most, hogy van egy úszó, hadd menjen előre, és nem a 1173 00:48:41,720 --> 00:48:42,460 konverzió. 1174 00:48:42,460 --> 00:48:44,980 >> Tehát először is, hadd kerüljön a szokást itt a 1175 00:48:44,980 --> 00:48:46,310 kommentálva a kódot. 1176 00:48:46,310 --> 00:48:49,820 Tehát ismét megjegyzést csak egy jelölés, hogy az emberi, hogy ez 1177 00:48:49,820 --> 00:48:52,600 nem része a programnak önmagában, hanem egy, segít 1178 00:48:52,600 --> 00:48:55,010 megérteni, mit tettél a másnap reggel, vagy a következő 1179 00:48:55,010 --> 00:48:57,570 hónap, ez segít a tanítás más megérteni, mit tettél 1180 00:48:57,570 --> 00:48:59,230 vagy mit szándékoznak tenni, ezért 1181 00:48:59,230 --> 00:49:00,950 általában nagyon jó gyakorlat. 1182 00:49:00,950 --> 00:49:02,940 Minden néhány sornyi kódot, írjon egy megjegyzést, hogy 1183 00:49:02,940 --> 00:49:04,490 Ön vagy munkatársa. 1184 00:49:04,490 --> 00:49:08,460 Szóval itt fogok mondani, hogy "rákérdezés a hőmérséklet." 1185 00:49:08,460 --> 00:49:10,890 Nem kell a teljes mondatot, csak egy rövid mondat. 1186 00:49:10,890 --> 00:49:14,270 De az ötlet mögött kommentálva C-ben, hogy minden az Ön 1187 00:49:14,270 --> 00:49:17,980 hozzászólások kell képessé - vagy, mondjuk, a TF vagy egy munkatársnak - 1188 00:49:17,980 --> 00:49:21,290 a sovány a program, és pontosan tudja, mit csinál, mivel nem 1189 00:49:21,290 --> 00:49:24,650 annyira olvasni a kódot, de ha elolvassa a megjegyzéseket, amelyek 1190 00:49:24,650 --> 00:49:26,220 kell lennie, tömör és egyértelmű. 1191 00:49:26,220 --> 00:49:29,030 Rendben, most hadd menjek előre, és azt mondják: "Convert 1192 00:49:29,030 --> 00:49:32,660 Fahrenheit Celsius. "Szóval megyek előre, és nem, 1193 00:49:32,660 --> 00:49:34,340 mondjuk, float c. 1194 00:49:34,340 --> 00:49:36,610 Majd folyamatosan Celsius egy lebegőpontos értéket. 1195 00:49:36,610 --> 00:49:37,630 >> És hadd vessen egy stab ebben. 1196 00:49:37,630 --> 00:49:40,350 A képlet ismét fel ide. 1197 00:49:40,350 --> 00:49:45,510 Mivel 5/9 alkalommal F mínusz 32. 1198 00:49:45,510 --> 00:49:46,360 Akkor csináljuk. 1199 00:49:46,360 --> 00:49:50,450 Tehát 5 osztva 9, mínusz - 1200 00:49:50,450 --> 00:49:52,330 Hoppá, én elrontottam már fel. 1201 00:49:52,330 --> 00:49:53,070 Times. 1202 00:49:53,070 --> 00:49:56,550 Tehát 5/9 alkalommal F mínusz 32. 1203 00:49:56,550 --> 00:49:59,650 Tehát F mínusz 32, pontosvessző. 1204 00:49:59,650 --> 00:50:02,000 És most, itt, én megyek előre 1205 00:50:02,000 --> 00:50:03,220 és azt mondják, nyomtassa ki eredményt. 1206 00:50:03,220 --> 00:50:05,160 És ez a rész könnyű. Printf. 1207 00:50:05,160 --> 00:50:07,980 Hogyan megy a nyomtatás ezt? 1208 00:50:07,980 --> 00:50:16,890 Nos, azt is mondhatnám: "Ez a szám a Celsius a% f \ n", 1209 00:50:16,890 --> 00:50:18,060 Csak néhány esztétika. 1210 00:50:18,060 --> 00:50:20,450 És akkor milyen értéket akarok csatlakoztatni itt printf által 1211 00:50:20,450 --> 00:50:21,360 második érv? 1212 00:50:21,360 --> 00:50:21,650 Oké. 1213 00:50:21,650 --> 00:50:22,540 Szóval csak c. 1214 00:50:22,540 --> 00:50:24,760 Tehát kezdjük ezt, és aztán csak vissza 0-ra. 1215 00:50:24,760 --> 00:50:25,960 Ismét, ennek semmi köze a matek. 1216 00:50:25,960 --> 00:50:27,610 Ez csak azt jelenti, minden rendben van. 1217 00:50:27,610 --> 00:50:31,210 >> Nos, ez a helyes, ez a program? 1218 00:50:31,210 --> 00:50:31,520 Rendben van. 1219 00:50:31,520 --> 00:50:33,630 Szóval néhány hibát. 1220 00:50:33,630 --> 00:50:35,980 Akkor is, ha fogalmam sincs, mi a programozás, akkor rendezni 1221 00:50:35,980 --> 00:50:37,120 A következtet vissza az iskolában, amit a 1222 00:50:37,120 --> 00:50:38,740 hibák itt lehet. 1223 00:50:38,740 --> 00:50:40,050 Mi az első? 1224 00:50:40,050 --> 00:50:41,256 KÖZÖNSÉG: [hangtalan] 1225 00:50:41,256 --> 00:50:41,660 DAVID J. Malan: Igen. 1226 00:50:41,660 --> 00:50:42,940 Szóval hiányzik zárójelben. 1227 00:50:42,940 --> 00:50:45,420 Nem volt szándékos, hogy én tettem zárójelben a vitaindító 1228 00:50:45,420 --> 00:50:48,130 tolja ide, mert valójában ez a fogalom a rend 1229 00:50:48,130 --> 00:50:51,590 A műveletek, illetve elsőbbséget, ahol bizonyos műveletek - 1230 00:50:51,590 --> 00:50:52,890 szorzás - 1231 00:50:52,890 --> 00:50:56,000 magasabb kötelező, magasabb elsőbbséget, mint a dolgok 1232 00:50:56,000 --> 00:50:58,050 mint például összeadás vagy a kivonás. 1233 00:50:58,050 --> 00:51:00,550 Így tettünk ezt évek óta, csak egyértelművé tenni, pontosan 1234 00:51:00,550 --> 00:51:02,840 milyen matematikai műveletet kell tenni az első. 1235 00:51:02,840 --> 00:51:05,010 Szóval kéne utánozni pontosan ezt biztosítja. 1236 00:51:05,010 --> 00:51:08,990 Ellenkező esetben, a számítógép valószínűleg megpróbálom megtenni 1237 00:51:08,990 --> 00:51:13,090 valami hasonló megosztottság 5, 9, majd szorozzuk F, majd vonjuk 1238 00:51:13,090 --> 00:51:14,850 32 az egész dolog. 1239 00:51:14,850 --> 00:51:16,480 Ami nem, sőt, mit akarunk csinálni. 1240 00:51:16,480 --> 00:51:17,340 Szóval zárójelbe tesz. 1241 00:51:17,340 --> 00:51:20,860 Adjunk hozzá a zárójelek itt, zárójelek itt. 1242 00:51:20,860 --> 00:51:22,670 Nézzük, hogy ezt itt. 1243 00:51:22,670 --> 00:51:25,130 Itt, Csak most vettem észre egy hibát csináltam az út mentén. 1244 00:51:25,130 --> 00:51:25,680 Igen? 1245 00:51:25,680 --> 00:51:26,930 KÖZÖNSÉG: [hangtalan] 1246 00:51:29,632 --> 00:51:30,130 >> DAVID J. Malan: Ah. 1247 00:51:30,130 --> 00:51:30,470 Jó. 1248 00:51:30,470 --> 00:51:32,400 Tehát tulajdonképpen van egyforma egész 1249 00:51:32,400 --> 00:51:34,020 körzet kérdésről előtt. 1250 00:51:34,020 --> 00:51:35,800 Én korrektek, hogy lássuk, mi a tünet. 1251 00:51:35,800 --> 00:51:36,990 De mi lesz, ha a helyes 1 1252 00:51:36,990 --> 00:51:37,680 más hiba van. 1253 00:51:37,680 --> 00:51:38,015 Igen? 1254 00:51:38,015 --> 00:51:39,540 KÖZÖNSÉG: [hangtalan] 1255 00:51:39,540 --> 00:51:40,070 DAVID J. Malan: Igen. 1256 00:51:40,070 --> 00:51:43,130 Szóval, buta hibát csináltam, de hihetetlenül fontos. 1257 00:51:43,130 --> 00:51:45,870 A számítógép nem fog csak szemet hunynak, és hagyja 1258 00:51:45,870 --> 00:51:48,770 me használja tőkét F, amikor ténylegesen bevallott változó 1259 00:51:48,770 --> 00:51:51,360 a kisbetűs f itt, 8 vezetéken. 1260 00:51:51,360 --> 00:51:54,470 Szóval ki kell javítani a line 11 én kapitalizáció, amelyet a 1261 00:51:54,470 --> 00:51:56,820 perce volt a tőke F véletlenül. 1262 00:51:56,820 --> 00:51:57,610 Mi van itt? 1263 00:51:57,610 --> 00:51:59,980 Amennyiben ez kisbetűvel is? 1264 00:51:59,980 --> 00:52:02,260 Meg kell, de ez véletlen egybeesés. 1265 00:52:02,260 --> 00:52:05,070 Ez a% f semmi köze a változó. 1266 00:52:05,070 --> 00:52:07,980 Szóval, csak hogy szuper világos van, hadd menjen előre, és 1267 00:52:07,980 --> 00:52:10,710 átnevezni ezt röviden "hőmérséklet". Hadd átnevezése 1268 00:52:10,710 --> 00:52:15,050 ez a "hőmérséklet". Hadd ne nevezze át ezt. 1269 00:52:15,050 --> 00:52:18,180 Mert újra,% f globálisan azt jelenti, "lebegőpontos értéket." 1270 00:52:18,180 --> 00:52:19,950 Semmi köze az én változó. 1271 00:52:19,950 --> 00:52:23,080 De a "hőmérséklet" az egész hely egy kicsit bőbeszédű, 1272 00:52:23,080 --> 00:52:25,370 úgyhogy megyek vissza a kisbetűs "f" s. 1273 00:52:25,370 --> 00:52:27,890 >> Nos, hadd menjen előre le ablakom itt. 1274 00:52:27,890 --> 00:52:29,190 Gyártó F2C - 1275 00:52:29,190 --> 00:52:31,200 ami ismét a tetszőleges név I 1276 00:52:31,200 --> 00:52:32,590 adta ezt a fájlt. 1277 00:52:32,590 --> 00:52:33,690 Úgy tűnik, hogy összeállítani. 1278 00:52:33,690 --> 00:52:35,080 Hadd futni F2C. 1279 00:52:35,080 --> 00:52:35,780 Az Enter billentyűt. 1280 00:52:35,780 --> 00:52:37,786 Hőmérséklet Fahrenheit - csináljuk könnyű. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, korrektek. 1283 00:52:40,910 --> 00:52:45,910 De, ha most ezt a 212 forrásponttartomány - 1284 00:52:45,910 --> 00:52:46,630 átkozott. 1285 00:52:46,630 --> 00:52:47,030 Rendben van. 1286 00:52:47,030 --> 00:52:50,780 Tehát nyilvánvalóan nem helyes, ha a TF megpróbálja 1287 00:52:50,780 --> 00:52:51,800 legalább két érték. 1288 00:52:51,800 --> 00:52:53,340 Akkor mi a probléma? 1289 00:52:53,340 --> 00:52:55,970 Nos, akkor már tegye az ujját, hogy mi a kérdés. 1290 00:52:55,970 --> 00:52:57,600 De miért van az, hogy a helyzet? 1291 00:52:57,600 --> 00:53:00,630 Akár itt, amikor csinálom a matek az 5 osztva 9. 1292 00:53:00,630 --> 00:53:02,190 Szóval fogalmilag, ez teljesen korrekt. 1293 00:53:02,190 --> 00:53:03,690 Teljesen megfelel a képlet. 1294 00:53:03,690 --> 00:53:05,940 De a számítógép csak akkor pontosan mit 1295 00:53:05,940 --> 00:53:06,760 mondd meg nekik csinálni. 1296 00:53:06,760 --> 00:53:08,940 És mi vagyunk hatékonyan mondja a számítógép itt 1297 00:53:08,940 --> 00:53:12,320 ossza el egész az 5. egész 9 1298 00:53:12,320 --> 00:53:13,670 és add nekem az eredményt. 1299 00:53:13,670 --> 00:53:16,230 A gond az, azonban, ha nem alá adatok felhasználásával 1300 00:53:16,230 --> 00:53:20,220 típusok, a kimenet azonos adatokat típusú, mint a bemenet. 1301 00:53:20,220 --> 00:53:23,670 És ha a két bemenet egyaránt ints, a kimenet megy 1302 00:53:23,670 --> 00:53:25,110 , hogy egy int. 1303 00:53:25,110 --> 00:53:28,770 És így 5 osztva a 9. pont valami. 1304 00:53:28,770 --> 00:53:32,320 De mi a legközelebbi egész pontra valamit? 1305 00:53:32,320 --> 00:53:33,630 Szóval, ez tényleg 0. 1306 00:53:33,630 --> 00:53:36,620 Tehát ahogy megbeszéltük hétfőn, minden tizedes 1307 00:53:36,620 --> 00:53:37,940 pont lesz csonka. 1308 00:53:37,940 --> 00:53:39,495 Csak kap eldobják. 1309 00:53:39,495 --> 00:53:42,760 Tehát ez egy teljes tévedés, mert én is, valamint csak 1310 00:53:42,760 --> 00:53:44,700 szorozzuk mindent 0 ide. 1311 00:53:44,700 --> 00:53:46,550 >> Most már tudom kijavítani ezt egy pár módon. 1312 00:53:46,550 --> 00:53:48,080 Tudnám csinálni. 1313 00:53:48,080 --> 00:53:50,490 5,0 osztva 9,0. 1314 00:53:50,490 --> 00:53:52,110 Technikailag nem is kell csinálni ezt. 1315 00:53:52,110 --> 00:53:55,780 Ez nem elegendő ahhoz, hogy az egyik csak a számok egy úszó - 1316 00:53:55,780 --> 00:53:58,290 vagy dupla - azáltal, hogy a tizedes pont itt. 1317 00:53:58,290 --> 00:54:01,740 Mert mi történik most, amikor osztani egy egész által 1318 00:54:01,740 --> 00:54:04,670 a float, vagy kettős, a számítógép fog megvalósítani 1319 00:54:04,670 --> 00:54:06,830 Ó, ezek egyike pontosabb. 1320 00:54:06,830 --> 00:54:09,420 Hadd err oldalán így pontosabb, mint a 1321 00:54:09,420 --> 00:54:10,310 Ön szánták. 1322 00:54:10,310 --> 00:54:12,700 Így fogja átalakítani az eredmény - 1323 00:54:12,700 --> 00:54:16,240 tér majd vissza az eredmény egy lebegőpontos értéket is. 1324 00:54:16,240 --> 00:54:17,330 Annak érdekében, hogy működni fog. 1325 00:54:17,330 --> 00:54:18,060 Ez működik. 1326 00:54:18,060 --> 00:54:20,010 És van egy másik mechanizmus, hogy mi lesz látható 1327 00:54:20,010 --> 00:54:21,390 részletesebben a jövő héten. 1328 00:54:21,390 --> 00:54:24,690 Tudod valójában, mint a programozó, mondd meg a számítógép 1329 00:54:24,690 --> 00:54:27,930 ténylegesen kezelni egy adattípust a 1330 00:54:27,930 --> 00:54:29,260 bár lenne még egy. 1331 00:54:29,260 --> 00:54:30,990 >> Így tudtam ténylegesen ezt. 1332 00:54:30,990 --> 00:54:35,280 A zárójelben tudok mondani valamit, mint a (float), nyitott 1333 00:54:35,280 --> 00:54:36,350 paren, közeli paren. 1334 00:54:36,350 --> 00:54:39,050 És ez az úgynevezett "casting". Ismét több 1335 00:54:39,050 --> 00:54:39,940 ezen a jövő héten. 1336 00:54:39,940 --> 00:54:42,280 De ez még csak a programszerű lehet megmondani 1337 00:54:42,280 --> 00:54:45,910 A számítógép, igen tudom, hogy a 9 egész szám, vagy egy hosszú. 1338 00:54:45,910 --> 00:54:47,700 Tudom, hogy ez nem egy lebegőpontos értéket. 1339 00:54:47,700 --> 00:54:49,420 De kezelje azt, mint egyébként. 1340 00:54:49,420 --> 00:54:52,000 Szóval, hogy leadott egy adattípust jelent átalakítására 1341 00:54:52,000 --> 00:54:53,310 egyikről a másik. 1342 00:54:53,310 --> 00:54:55,790 Őszintén szólva, ez csak egy kicsit csúnya, úgyhogy azt javaslom, menjünk 1343 00:54:55,790 --> 00:54:58,830 vissza az eredeti javaslatot az igazságos konvertáló 1344 00:54:58,830 --> 00:55:00,770 ezeket a dolgokat lebegőpontos értékek manuálisan. 1345 00:55:00,770 --> 00:55:02,890 Mert most már csak szuper világos, hogy mi folyik itt, és a 1346 00:55:02,890 --> 00:55:04,280 ez nem olyan zavaró. 1347 00:55:04,280 --> 00:55:06,710 >> Szóval most már menj vissza az én terminál ablakot. 1348 00:55:06,710 --> 00:55:07,990 Gyártó F2C. 1349 00:55:07,990 --> 00:55:09,430 Hadd menjek előre, és fuss ez. 1350 00:55:09,430 --> 00:55:12,340 És, mint egy félre, unatkozni írja ezeket a parancsokat 1351 00:55:12,340 --> 00:55:14,910 újra és újra észre, hogy a számítógépek, mint a Linux van, 1352 00:55:14,910 --> 00:55:16,010 általában elég okos. 1353 00:55:16,010 --> 00:55:18,890 És ha megüt Up, mehetünk az én egész története 1354 00:55:18,890 --> 00:55:20,380 parancsok, fel és le. 1355 00:55:20,380 --> 00:55:23,840 Tehát ebben az esetben is, én is csak megy Korhatár futtassuk le a make F2C. 1356 00:55:23,840 --> 00:55:25,830 Én, hogy kiabáltam, mert én csak tettem, hogy egy második napja. 1357 00:55:25,830 --> 00:55:27,030 Ez már naprakész. 1358 00:55:27,030 --> 00:55:30,720 Így most tudok futni F2C újra. 1359 00:55:30,720 --> 00:55:33,260 Próbáljuk 32 Fahrenheit. 1360 00:55:33,260 --> 00:55:36,720 Most próbáljuk 212 Fahrenheit. 1361 00:55:36,720 --> 00:55:37,250 >> Pfuj. 1362 00:55:37,250 --> 00:55:38,250 Úgy tűnik, hogy működik. 1363 00:55:38,250 --> 00:55:41,760 Nos, ez jó, de úgy érzi, egy kicsit, hogy az önkényes 1364 00:55:41,760 --> 00:55:44,890 Én mutató hat szám után a tizedes pont. 1365 00:55:44,890 --> 00:55:45,070 Igaz? 1366 00:55:45,070 --> 00:55:47,830 Ha az időjárás a személy, TV, te egyfajta doofus 1367 00:55:47,830 --> 00:55:49,150 ha olvasod a hőmérséklet 1368 00:55:49,150 --> 00:55:50,070 ilyen fokú pontosság. 1369 00:55:50,070 --> 00:55:51,270 Szóval egyszerűsítése. 1370 00:55:51,270 --> 00:55:53,880 Szóval tényleg megy fel ide, az én printf. 1371 00:55:53,880 --> 00:55:55,490 És igen, azt akarom, hogy lebegnek. 1372 00:55:55,490 --> 00:55:57,570 De azt akarom, hogy most meg a pontosságot. 1373 00:55:57,570 --> 00:55:59,070 És fogok egy kicsit rövid. 1374 00:55:59,070 --> 00:56:03,090 Fogom mondani, hogy adjon nekem egy pont után a tizedes. 1375 00:56:03,090 --> 00:56:07,590 Tehát ahelyett, mondjuk% f, fogok mondani% .1 f. 1376 00:56:07,590 --> 00:56:09,760 És ez csak annyit jelent, adjon nekem egy pozíció 1377 00:56:09,760 --> 00:56:11,410 a tizedesvessző után. 1378 00:56:11,410 --> 00:56:11,700 Rendben van. 1379 00:56:11,700 --> 00:56:12,570 Próbáljuk meg újra. 1380 00:56:12,570 --> 00:56:15,590 Hadd újra futtatni fordítása után. 1381 00:56:15,590 --> 00:56:18,160 És most azt írja, 32, és kapok vissza 1382 00:56:18,160 --> 00:56:19,310 tömörebb értéket. 1383 00:56:19,310 --> 00:56:22,480 És tudok gépelni, most 212, és menj vissza a tömörebb 1384 00:56:22,480 --> 00:56:23,260 érték is. 1385 00:56:23,260 --> 00:56:25,190 És van más dolog, amit tehetünk a printf. 1386 00:56:25,190 --> 00:56:27,950 Tudod valójában meghatározza, hogy milyen széles a számot kell lennie. 1387 00:56:27,950 --> 00:56:30,900 Ha azt szeretnénk, hogy a padding rajta, így jobb összehangolásának vagy 1388 00:56:30,900 --> 00:56:32,360 balra igazítása az összes szám-vagy 1389 00:56:32,360 --> 00:56:33,400 próbálja center dolgokat. 1390 00:56:33,400 --> 00:56:35,340 Tehát észre, vannak kis trükköket lehet csinálni ott. 1391 00:56:35,340 --> 00:56:38,420 De ők csak szűkülnek le a formátum kódok, 1392 00:56:38,420 --> 00:56:39,600 mint mi van ott. 1393 00:56:39,600 --> 00:56:41,090 >> Tehát jelen kérdésének elsőbbséget. 1394 00:56:41,090 --> 00:56:43,820 Ez egy nagyon unalmas táblázatot, hogy menjen át módszeresen. 1395 00:56:43,820 --> 00:56:46,780 De észre, hogy a szerzők a C jöttek fel a 1396 00:56:46,780 --> 00:56:50,190 szabályokat, amelyek meghatározzák a piaci szereplőknek nagyobb 1397 00:56:50,190 --> 00:56:53,680 részesítendő, több kötelező ereje, mint mások. 1398 00:56:53,680 --> 00:56:55,890 Így mivel az iskolában, általában tudta, hogy 1399 00:56:55,890 --> 00:56:58,930 szorzás és osztás, majd összeadás és kivonás, 1400 00:56:58,930 --> 00:56:59,950 majd néhány más dolog. 1401 00:56:59,950 --> 00:57:01,720 Egy olyan világban, programozás, van egy sokkal 1402 00:57:01,720 --> 00:57:03,360 hosszabb listát azokról a dolgokról. 1403 00:57:03,360 --> 00:57:05,150 És ez nem olyan dolog, érdemes memorizálni most. 1404 00:57:05,150 --> 00:57:07,310 Majd kap szoktatott előtt hosszú. 1405 00:57:07,310 --> 00:57:10,690 De csakúgy, mint az iskolában, zárójelek általában megoldja 1406 00:57:10,690 --> 00:57:12,990 kérdések elsőbbségi azáltal, szuper egyértelmű a 1407 00:57:12,990 --> 00:57:15,620 számítógép és emberi egyaránt milyen szánják. 1408 00:57:15,620 --> 00:57:17,770 Szóval, hogy ezt csak egy kis puskát ott. 1409 00:57:17,770 --> 00:57:21,690 De a legtöbb ilyen adatokat mi nem kap egy ideig. 1410 00:57:21,690 --> 00:57:21,900 >> Rendben van. 1411 00:57:21,900 --> 00:57:24,120 Most építsük fel, és helyezze el ezeket a kis buta 1412 00:57:24,120 --> 00:57:25,460 matematikai példákat. 1413 00:57:25,460 --> 00:57:27,500 Még mindig ugyanazt a fundamentumok, hanem indítsa 1414 00:57:27,500 --> 00:57:29,960 expresszáló magunkat egy kicsit több, mint a Scratch. 1415 00:57:29,960 --> 00:57:31,660 Tehát Scratch, mi volt ezeknek logikai kifejezések. 1416 00:57:31,660 --> 00:57:34,890 És az angol, a logikai kifejezés mi? 1417 00:57:34,890 --> 00:57:35,580 Igaz vagy hamis. 1418 00:57:35,580 --> 00:57:38,300 Ez valami olyasmi, hogy értékeli az igaz vagy hamis. 1419 00:57:38,300 --> 00:57:39,060 1 vagy 0. 1420 00:57:39,060 --> 00:57:39,870 Be-vagy kikapcsolása. 1421 00:57:39,870 --> 00:57:41,000 Bármit is szeretne nevezni. 1422 00:57:41,000 --> 00:57:43,210 Most Scratch, a puzzle darabkái nézett ki, mint ez. 1423 00:57:43,210 --> 00:57:45,850 És ez a kombináció, az alján van, a három 1424 00:57:45,850 --> 00:57:47,980 puzzle darabkái. 1425 00:57:47,980 --> 00:57:48,980 One összefüggésben - 1426 00:57:48,980 --> 00:57:51,710 valami, amely üres és üres. 1427 00:57:51,710 --> 00:57:53,970 És akkor két logikai kifejezések belsejébe. 1428 00:57:53,970 --> 00:57:56,460 Így fészket logikai kifejezések, hogy minél több 1429 00:57:56,460 --> 00:57:59,360 bonyolult logikai kifejezések. 1430 00:57:59,360 --> 00:58:03,930 Például, ha az, szombaton és ez jó 1431 00:58:03,930 --> 00:58:06,180 időjárás, akkor menj ki. 1432 00:58:06,180 --> 00:58:07,500 Vagy valami önkényes ilyesmi. 1433 00:58:07,500 --> 00:58:10,090 Szóval lehet csatlakozni logikai kifejezések, hogy dolgozzon ki egy 1434 00:58:10,090 --> 00:58:12,780 Nagyobb igaz érték, amelynek választ székhelye 1435 00:58:12,780 --> 00:58:13,800 A kisebbek. 1436 00:58:13,800 --> 00:58:15,770 >> Most, C, szerencsére, ez a leképezés 1437 00:58:15,770 --> 00:58:16,720 valójában nagyon egyszerű. 1438 00:58:16,720 --> 00:58:18,820 Zárójelek segíteni abban, hogy a dolgok egyértelművé itt. 1439 00:58:18,820 --> 00:58:21,700 &&, Ami azt jelenti, "és a". Szóval így 1440 00:58:21,700 --> 00:58:24,700 fogjuk átalakítani ezeket háztömbnyire Scratch a C. 1441 00:58:24,700 --> 00:58:27,590 És a körülmények láttunk Scratch, a bal oldali 1442 00:58:27,590 --> 00:58:31,150 oldalon van, én is verem őket hasonlóan C. Ha x kisebb 1443 00:58:31,150 --> 00:58:32,970 mint y, akkor ezt. 1444 00:58:32,970 --> 00:58:35,100 Különben, ha x nagyobb, mint y, akkor ezt. 1445 00:58:35,100 --> 00:58:38,030 Else logikusan azt egyenlőnek kell lennie, tehát mondjuk 1446 00:58:38,030 --> 00:58:39,140 hogy azok azonos. 1447 00:58:39,140 --> 00:58:41,210 Így most már kezdeni építeni ezeket a dolgokat. 1448 00:58:41,210 --> 00:58:42,170 >> Szóval nem egy példát. 1449 00:58:42,170 --> 00:58:45,550 Hadd nyitni egy fájlt, ami a kurzus honlapján, hogy a 1450 00:58:45,550 --> 00:58:47,270 Írtam előre. 1451 00:58:47,270 --> 00:58:50,540 Ezt nevezik nonswitch.c. 1452 00:58:50,540 --> 00:58:52,270 És majd meglátjuk, miért csak egy pillanatra. 1453 00:58:52,270 --> 00:58:54,770 Tehát ebben a fájlban - nonswitch.c-- 1454 00:58:54,770 --> 00:58:56,830 1. észre, hogy van egy csomó 1455 00:58:56,830 --> 00:58:58,460 Megjegyzés a tetején. 1456 00:58:58,460 --> 00:59:00,110 Ez csak elmagyarázza a fájl neve, amit 1457 00:59:00,110 --> 00:59:01,260 nem, és így tovább. 1458 00:59:01,260 --> 00:59:04,390 És ez nyilvánvalóan mutatja a használatát Logikai ÉS-nek - 1459 00:59:04,390 --> 00:59:06,220 egyesítésekor két kifejezést. 1460 00:59:06,220 --> 00:59:07,670 >> Akkor lássuk, hogyan működik ez a program. 1461 00:59:07,670 --> 00:59:10,840 Én tartalmazzák a két fájlt, és cs50.h stdio.h. 1462 00:59:10,840 --> 00:59:13,180 Ha lapozzunk lefelé, most, hogy a program, ez egy kicsit 1463 00:59:13,180 --> 00:59:15,730 mint azt írtam korábban, de nagyon olvasható. 1464 00:59:15,730 --> 00:59:18,360 Szóval először kinyomtatni a felhasználó, a sorban 18, 1465 00:59:18,360 --> 00:59:20,460 "Adj egy egész szám 1 és 10 között." Így 1466 00:59:20,460 --> 00:59:21,530 , hogy ott van. 1467 00:59:21,530 --> 00:59:23,410 Most kapok egész. 1468 00:59:23,410 --> 00:59:25,380 De észre, hogy getInt - elég egyszerű. 1469 00:59:25,380 --> 00:59:26,510 Ez csak megy, hogy kap egy int. 1470 00:59:26,510 --> 00:59:28,830 Ez fogja biztosítani, hogy nem kap egy int, és nem 1471 00:59:28,830 --> 00:59:30,060 karakterlánc vagy úszó. 1472 00:59:30,060 --> 00:59:32,390 De ez nem fog csinálni bármilyen határ ellenőrzését. 1473 00:59:32,390 --> 00:59:34,750 Ez nem fogja szűrni a számok között a 1474 00:59:34,750 --> 00:59:35,630 bizonyos tartományban. 1475 00:59:35,630 --> 00:59:37,730 Tehát annak végrehajtására magunkat. 1476 00:59:37,730 --> 00:59:40,680 Szóval, csak úgy, mint Scratch, ahol tudtam csinálni egy kötőszó a 1477 00:59:40,680 --> 00:59:43,560 két kifejezést, meg tudom csinálni, hogy a C az alábbiak szerint. 1478 00:59:43,560 --> 00:59:48,660 Ha n értéke nagyobb vagy egyenlő, mint 1, és n értéke kisebb, mint a és 1479 00:59:48,660 --> 00:59:52,220 vagy egyenlő 3, fogok nagyon önkényesen rendeletet, amely a 1480 00:59:52,220 --> 00:59:53,830 szám, hogy egy kevés. 1481 00:59:53,830 --> 00:59:56,730 Csak kedvéért egy nyilatkozatot. 1482 00:59:56,730 --> 01:00:00,210 Különben ha n 4 és 6 között, print "Te szedett egy átlagos 1483 01:00:00,210 --> 01:00:03,440 száma. "Else ha n 7 és 10 között, print" Te választottál 1484 01:00:03,440 --> 01:00:06,390 nagy szám. "else print" Te vedd érvénytelen számot. " 1485 01:00:06,390 --> 01:00:07,900 Mert logikusan, hogy a következő, ha volna 1486 01:00:07,900 --> 01:00:09,230 kimerült kínálatunkban. 1487 01:00:09,230 --> 01:00:12,400 >> Tehát észre ezt nem egészen, hogyan írjuk nagyobb vagy 1488 01:00:12,400 --> 01:00:15,000 egyenlő egy matematikai osztály. 1489 01:00:15,000 --> 01:00:15,160 Igaz? 1490 01:00:15,160 --> 01:00:17,430 Ön általában rajzolni, mint ez, a vonal alá. 1491 01:00:17,430 --> 01:00:19,250 De nincs ilyen kulcsfontosságú én billentyűzeten. 1492 01:00:19,250 --> 01:00:22,390 Tehát a szimbólum C kifejezésére nagyobb vagy 1493 01:00:22,390 --> 01:00:25,770 egyenlő a két karakter, és a szimbólum kevesebb, mint 1494 01:00:25,770 --> 01:00:29,100 vagy egyenlő a két karaktert is. 1495 01:00:29,100 --> 01:00:29,330 Rendben van. 1496 01:00:29,330 --> 01:00:31,910 Szóval, ha futtatni ezt a programot, akkor talán kitalálni, mi ez 1497 01:00:31,910 --> 01:00:32,650 fog tenni. 1498 01:00:32,650 --> 01:00:36,180 Ha megy előre, és nonswitch, Enter. 1499 01:00:36,180 --> 01:00:38,130 Majd futtassa nonswitch. 1500 01:00:38,130 --> 01:00:39,530 Adj egy számot 1 és 10 között. 1501 01:00:39,530 --> 01:00:40,870 Fogom adni 11. 1502 01:00:40,870 --> 01:00:42,280 Felvettem egy érvénytelen számot. 1503 01:00:42,280 --> 01:00:44,090 Hadd próbáljam meg a 3-as szám. 1504 01:00:44,090 --> 01:00:45,990 Felvettem egy kis számot. 1505 01:00:45,990 --> 01:00:48,360 Tehát meglehetősen egyszerű ott. 1506 01:00:48,360 --> 01:00:52,230 >> Mit tegyek, ha szeretné változtatni a viselkedését a program és 1507 01:00:52,230 --> 01:00:54,250 tenni valamit egy kicsit más helyett? 1508 01:00:54,250 --> 01:00:57,620 Hadd menjek előre, és mondom ezt. 1509 01:00:57,620 --> 01:00:59,480 Hadd megszabadulni mindezt. 1510 01:00:59,480 --> 01:01:03,780 És hadd mondjam el, ha az (n == 42). 1511 01:01:03,780 --> 01:01:08,730 És akkor én megyek előre, és azt mondják print "Te felvette a 1512 01:01:08,730 --> 01:01:16,340 helyes válasz. "Else fogunk menni előre, és azt mondja: 1513 01:01:16,340 --> 01:01:18,460 printf ("Te felvette a 1514 01:01:18,460 --> 01:01:21,170 rossz válasz. "); Oké. 1515 01:01:21,170 --> 01:01:22,040 Csak azért, mert. 1516 01:01:22,040 --> 01:01:23,890 >> Most, néhány pontot tehetünk itt. 1517 01:01:23,890 --> 01:01:26,570 Az egyik, hogy nem írja be a szimbólumot, amit azt hiszem, az a 1518 01:01:26,570 --> 01:01:27,390 leginkább ésszerű. 1519 01:01:27,390 --> 01:01:30,110 Ha azt akarom, hogy ellenőrizze az egyenlőség, kiderül, hogy nem használja a 1520 01:01:30,110 --> 01:01:30,910 egyenlőségjel. 1521 01:01:30,910 --> 01:01:34,000 Te inkább használja az egyenlő egyenlőségjel. 1522 01:01:34,000 --> 01:01:36,440 És miért lenne az, csak ösztönösen? 1523 01:01:36,440 --> 01:01:37,030 Igen. 1524 01:01:37,030 --> 01:01:39,330 KÖZÖNSÉG: [hangtalan] 1525 01:01:39,330 --> 01:01:39,615 DAVID J. Malan: Helyes. 1526 01:01:39,615 --> 01:01:41,630 Az egyenlőségjel már használják megbízást. 1527 01:01:41,630 --> 01:01:43,020 Valaki nem igazán gondolja ezt végig. 1528 01:01:43,020 --> 01:01:45,820 És most, amikor az egyenlőség vizsgálatot, meg kell 1529 01:01:45,820 --> 01:01:48,850 jobban kifejezett, és azt mondják, egyenlő egyenlő. 1530 01:01:48,850 --> 01:01:52,110 Egy nagyon gyakori hiba, hogy ezt megtehesse. 1531 01:01:52,110 --> 01:01:54,800 És, ha az irodai órák vagy valamikor a jövő héten, vagy a 1532 01:01:54,800 --> 01:01:58,340 következő két hétben teszel ilyet, majd a 1533 01:01:58,340 --> 01:02:00,920 küzdenek, hogy 10, 20 percig, hogy kitaláljam, 1534 01:02:00,920 --> 01:02:03,330 mi a rohadt bug van, észre, hogy az egyik ilyen 1535 01:02:03,330 --> 01:02:04,470 az emberek, akik ezt a hibát. 1536 01:02:04,470 --> 01:02:06,030 Szóval, szuper könnyen elkészíthető. 1537 01:02:06,030 --> 01:02:08,240 De a cél most az, hogy kivédjék ezt a hibát. 1538 01:02:08,240 --> 01:02:11,840 Ez lehet értékelni, mert mi ez valójában mondani? 1539 01:02:11,840 --> 01:02:15,010 Ha n lesz 42. 1540 01:02:15,010 --> 01:02:18,250 Tehát az ige az emberek használni, szóban kifejezni 1541 01:02:18,250 --> 01:02:21,800 fogalma hozzárendelés "lesz." Tehát, ha n lesz 42. 1542 01:02:21,800 --> 01:02:24,060 Tehát ez azt jelenti, rendelni 42-n. 1543 01:02:24,060 --> 01:02:26,250 Most van egy logikai kifejezés zárójelben, 1544 01:02:26,250 --> 01:02:30,230 belsejében feltétel, amelynek értéke 42. 1545 01:02:30,230 --> 01:02:30,390 Igaz? 1546 01:02:30,390 --> 01:02:32,690 Mert ha értékeli azt a belülről kifelé, a teljes 1547 01:02:32,690 --> 01:02:34,100 válasz, most is 42. 1548 01:02:34,100 --> 01:02:37,360 >> Tehát, ha azt kérdeztem a kérdést, "ha (42)," mi a 1549 01:02:37,360 --> 01:02:38,410 Tényleg mond? 1550 01:02:38,410 --> 01:02:40,990 Nos, logikai kifejezések csak akkor lehet igaz vagy hamis. 1551 01:02:40,990 --> 01:02:42,010 1 vagy 0. 1552 01:02:42,010 --> 01:02:43,010 Be-vagy kikapcsolása. 1553 01:02:43,010 --> 01:02:45,240 Tehát úgy tűnik, hogy egy sarokba esetben is, amely szerint minden olyan 1554 01:02:45,240 --> 01:02:50,060 hirtelen azt mondom, "ha (42)." Ez nem egy logikai érték. 1555 01:02:50,060 --> 01:02:54,500 Tehát mi számítógépek tenni, bár, ez lényegében megegyezik 1556 01:02:54,500 --> 01:02:58,620 bármit, ami nem 0-t értelmezni, hogy igaz legyen. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 On. 1559 01:02:59,690 --> 01:03:01,510 Ők mind funkcionálisan egyenértékű. 1560 01:03:01,510 --> 01:03:05,070 Csak az értéke 0, vagy a kulcsszót hamis, mivel mi 1561 01:03:05,070 --> 01:03:07,860 végül látni, valójában hamis. 1562 01:03:07,860 --> 01:03:15,040 Így a "ha (42)" ténylegesen nem igaz, mert nem-nulla. 1563 01:03:15,040 --> 01:03:18,620 Így pontosabban itt egy logikai érték valóban nem annyira 1564 01:03:18,620 --> 01:03:20,680 sok igaz vagy hamis, de ez a 1565 01:03:20,680 --> 01:03:24,650 esetben, ha a értéke 0 vagy nem-nulla. 1566 01:03:24,650 --> 01:03:26,330 Tehát hamis vagy nem hamis. 1567 01:03:26,330 --> 01:03:28,640 És ez lehetővé teszi számunkra, hogy az magában foglalja az összes látna 1568 01:03:28,640 --> 01:03:30,980 lehetőségek a zárójeles kifejezésben. 1569 01:03:30,980 --> 01:03:33,840 Tehát meg kell, soha oly gondosan, mondom ezt - 1570 01:03:33,840 --> 01:03:35,620 if (n == 42). 1571 01:03:35,620 --> 01:03:39,100 Egyszerűen azért, mert meg kell adni a vizsgálat az egyenlőség, 1572 01:03:39,100 --> 01:03:40,930 Nem egy megbízást egy érték. 1573 01:03:40,930 --> 01:03:42,830 >> Mit érdemes megjegyezni itt? 1574 01:03:42,830 --> 01:03:46,030 Ezek a kapcsos zárójelek valójában nincs szükség. 1575 01:03:46,030 --> 01:03:48,650 Csináltam őket, csak hogy nit-válogatós itt. 1576 01:03:48,650 --> 01:03:51,350 De ha van egy feltétellel, hogy csak egy sor 1577 01:03:51,350 --> 01:03:55,100 kód, a kényelem, a programozók nem kell használni 1578 01:03:55,100 --> 01:03:56,030 A kapcsos zárójelek. 1579 01:03:56,030 --> 01:03:59,370 Elegendő csak a francia, esztétikai okokból, és a 1580 01:03:59,370 --> 01:04:01,050 majd írjuk meg a sort. 1581 01:04:01,050 --> 01:04:04,160 Csak akkor, ha azt szeretnénk, hogy írjon két sornyi kódot - a 1582 01:04:04,160 --> 01:04:08,230 Például más printf ("Viszlát!"). Ha akarod 1583 01:04:08,230 --> 01:04:09,540 , hogy ez hibás. 1584 01:04:09,540 --> 01:04:11,700 A francia, amit csak akarsz, de az a tény, hogy van 1585 01:04:11,700 --> 01:04:14,600 beírt két sor kód használata nélkül kapcsos zárójelek 1586 01:04:14,600 --> 01:04:16,860 azt jelenti, hogy ez a program nem fut megfelelően, vagy esetleg 1587 01:04:16,860 --> 01:04:18,530 sem összeállításához megfelelően. 1588 01:04:18,530 --> 01:04:21,040 Tehát most, hogy őszinte legyek, azt hiszem, a legjobb szokás csak 1589 01:04:21,040 --> 01:04:24,460 használja a kapcsos zárójelek, és rájössz, hogy teszik 1590 01:04:24,460 --> 01:04:25,750 super világos, mi folyik itt. 1591 01:04:25,750 --> 01:04:29,410 >> Is, mint egy félre - különösen, ha azok között, akik 1592 01:04:29,410 --> 01:04:31,700 az ajánlott könyveket, vagy források online - 1593 01:04:31,700 --> 01:04:33,480 észre, hogy ott van ez a fogalom a stílus 1594 01:04:33,480 --> 01:04:34,130 programozás. 1595 01:04:34,130 --> 01:04:37,280 És néhány ember valójában inkább tegye a kapcsos zárójel 1596 01:04:37,280 --> 01:04:38,720 ide egy sorban. 1597 01:04:38,720 --> 01:04:41,520 Vannak, akik inkább nem nevetséges dolgokat, 1598 01:04:41,520 --> 01:04:43,830 szeretem őket ide. 1599 01:04:43,830 --> 01:04:45,140 Nincs rossz válasz, amikor a 1600 01:04:45,140 --> 01:04:46,710 stílus, de ez rossz. 1601 01:04:46,710 --> 01:04:47,700 De néhány ember csinálni. 1602 01:04:47,700 --> 01:04:49,160 [Nevetés] 1603 01:04:49,160 --> 01:04:51,760 DAVID J. Malan: Szóval azért említem ezt most, egyszerűen azért, mert a 1604 01:04:51,760 --> 01:04:54,400 olvas fel a dolgokat a könyvekben vagy az interneten, fogsz kapni 1605 01:04:54,400 --> 01:04:55,990 különböző üzeneteket különböző tanárok és 1606 01:04:55,990 --> 01:04:56,730 különböző szerzők. 1607 01:04:56,730 --> 01:04:58,640 És csak észre, hogy funkcionálisan, ők 1608 01:04:58,640 --> 01:05:00,740 általában azonos, de légy következetes. 1609 01:05:00,740 --> 01:05:02,850 Tehát ebben az esetben, akkor egységesíteni a göndör 1610 01:05:02,850 --> 01:05:04,650 nadrágtartó sorakoznak itt a bal oldalon. 1611 01:05:04,650 --> 01:05:04,910 >> Rendben van. 1612 01:05:04,910 --> 01:05:07,040 Akkor menjünk előre, most és fuss ez, és meglátjuk, mi történik 1613 01:05:07,040 --> 01:05:07,780 ezt a programot. 1614 01:05:07,780 --> 01:05:09,970 Gyártó nonswitch. 1615 01:05:09,970 --> 01:05:11,040 Ezután futtasd nonswitch. 1616 01:05:11,040 --> 01:05:13,900 Adj egy egész szám 0 és - annak érdekében, hogy ez nem megfelelő 1617 01:05:13,900 --> 01:05:16,480 már, de én csak úgy önkényesen mondani 42. 1618 01:05:16,480 --> 01:05:17,850 És én felvette a helyes válasz. 1619 01:05:17,850 --> 01:05:20,430 Nos, hadd valójában ezt egy másik irányba. 1620 01:05:20,430 --> 01:05:22,070 Kiderült, hogy van egy másik szintaxis mi 1621 01:05:22,070 --> 01:05:23,480 használható a program. 1622 01:05:23,480 --> 01:05:27,310 Itt egy új darab szintaxis, amely funkcionálisan azonos, 1623 01:05:27,310 --> 01:05:30,680 de csak bevezet egy másik módja kifejezni magunkat. 1624 01:05:30,680 --> 01:05:32,830 Szóval ez az, amit a neve a "switch nyilatkozatot." És egy 1625 01:05:32,830 --> 01:05:34,820 switch kifejezés a következőképpen működik. 1626 01:05:34,820 --> 01:05:37,580 Tart, zárójelben, a kívánt értéket a 1627 01:05:37,580 --> 01:05:38,860 "Kapcsoló". 1628 01:05:38,860 --> 01:05:41,490 Azt akarod, hogy másképp viselkednek értéke alapján. 1629 01:05:41,490 --> 01:05:44,360 Tehát ez azt jelenti, kapcsoló értéke n. 1630 01:05:44,360 --> 01:05:45,480 És mit jelent ez? 1631 01:05:45,480 --> 01:05:50,530 Nos, ha n értéke 1 vagy 2 vagy 3, megy előre, és nyomtassa ki "Te 1632 01:05:50,530 --> 01:05:52,680 szedett egy nagy szám ", majd a szünet. 1633 01:05:52,680 --> 01:05:55,720 Ennek oka az a szünet, hogy az út a C működik, mint 1634 01:05:55,720 --> 01:05:59,790 amint talál egy eset, amely megfelel, elindul végrehajtó 1635 01:05:59,790 --> 01:06:01,610 az összes alábbi kódot is. 1636 01:06:01,610 --> 01:06:04,580 Szóval, ha van egy sor kód, mint én itt on line 27, akkor 1637 01:06:04,580 --> 01:06:05,360 lesz végrehajtva. 1638 01:06:05,360 --> 01:06:07,520 Ha újabb sort itt, nem lesz végrehajtva. 1639 01:06:07,520 --> 01:06:09,350 Egy másik vonal van, ez lesz végrehajtva. 1640 01:06:09,350 --> 01:06:12,460 A program csak akkor áll végrehajtó mi alatt 1641 01:06:12,460 --> 01:06:14,680 alkalmazandó ítélkezési kijelentés, amikor kifejezetten 1642 01:06:14,680 --> 01:06:17,210 mondják, hogy "szünet". Tehát rossz. 1643 01:06:17,210 --> 01:06:19,220 Jobbra, ebben az esetben, mivel emiatt. 1644 01:06:19,220 --> 01:06:22,130 4. eset vagy 5 vagy 6, hasonlóképpen, megy 1645 01:06:22,130 --> 01:06:23,160 hogy nyomtassa ki egy üzenetet. 1646 01:06:23,160 --> 01:06:24,410 Ebben az esetben a közeg szám. 1647 01:06:24,410 --> 01:06:25,200 Szünet. 1648 01:06:25,200 --> 01:06:28,160 Case 7, 8, 9, 10, ez fog kinyomtatni "Te szedett egy nagy 1649 01:06:28,160 --> 01:06:28,950 száma. "Szünet. 1650 01:06:28,950 --> 01:06:31,290 És akkor ott van szó a kulcsszó a "default" 1651 01:06:31,290 --> 01:06:34,090 ez hatékonyan, mint a "más" konstrukciót. 1652 01:06:34,090 --> 01:06:36,010 Tehát új szintaxis, hanem szellemileg, 1653 01:06:36,010 --> 01:06:37,060 semmi új itt. 1654 01:06:37,060 --> 01:06:38,280 Olyan, mint a Scratch. 1655 01:06:38,280 --> 01:06:41,040 Ha else if, else if, egyfajta blokk. 1656 01:06:41,040 --> 01:06:44,560 >> Szóval ez a kapcsolt változata a program. 1657 01:06:44,560 --> 01:06:46,280 De észre, hogy megcsináltuk a számok itt. 1658 01:06:46,280 --> 01:06:49,040 Hadd nyit a második verzió, csak megmutatni 1659 01:06:49,040 --> 01:06:50,670 egy kicsit konkrétabb. 1660 01:06:50,670 --> 01:06:52,840 Tehát itt van osztályzatok helyett. 1661 01:06:52,840 --> 01:06:55,540 Kiderült, hogy tudod használni kapcsolók nem csak egész számok, hanem 1662 01:06:55,540 --> 01:06:56,340 karakter. 1663 01:06:56,340 --> 01:06:58,930 Nem minden adattípus, de legalább a karakter. 1664 01:06:58,930 --> 01:07:02,670 Tehát itt tudnánk tenni valamit, mint ha az érték a C, hogy a 1665 01:07:02,670 --> 01:07:06,230 a felhasználó beírt, az a 19, használja a GetChar funkció 1666 01:07:06,230 --> 01:07:09,410 a tőke A vagy a kisbetűs, hadd értelmezi, mint egy osztály, 1667 01:07:09,410 --> 01:07:11,340 és azt mondják, hogy felvette egy kiváló minőségű. 1668 01:07:11,340 --> 01:07:14,690 És le végig a switch, akkor van más 1669 01:07:14,690 --> 01:07:17,950 tokok "B" s és "C"-ek, és így tovább. 1670 01:07:17,950 --> 01:07:19,780 De nézzük most egészítik ki egy másik dolog. 1671 01:07:19,780 --> 01:07:21,130 És ismét, milyen átrepülni 1672 01:07:21,130 --> 01:07:22,200 néhány ilyen példát. 1673 01:07:22,200 --> 01:07:26,990 De ez tényleg így tudjuk alkalmazni őket, most - 1674 01:07:26,990 --> 01:07:28,880 vagy tényleg, csak lefordítani őket most - 1675 01:07:28,880 --> 01:07:32,220 a C. 1676 01:07:32,220 --> 01:07:33,310 >> Szóval hadd menjen előre, és ezt. 1677 01:07:33,310 --> 01:07:34,830 Fogok nyitni egy új fájlt. 1678 01:07:34,830 --> 01:07:39,430 És én fogom csinálni tartalmazza . 1679 01:07:39,430 --> 01:07:42,770 És akkor fogok csinálni int main (void). 1680 01:07:42,770 --> 01:07:46,390 Hadd menteni a fájlt, mint egy loop.c. 1681 01:07:46,390 --> 01:07:48,280 Csak példaként. 1682 01:07:48,280 --> 01:07:49,910 És én megyek előre, és tegye a következőket. 1683 01:07:49,910 --> 01:07:54,180 Szeretnék írni egy nagyon unalmas program. 1684 01:07:54,180 --> 01:07:56,170 Tehát 10. 1685 01:07:56,170 --> 01:07:58,862 Csináljuk ezt. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 Rendben van. 1688 01:08:00,360 --> 01:08:02,120 Amint elkezdi ezt a programozásban, akkor 1689 01:08:02,120 --> 01:08:03,490 talán csinál valamit rosszul. 1690 01:08:03,490 --> 01:08:04,950 De kezdjük ott egyébként. 1691 01:08:04,950 --> 01:08:05,430 Hoppá. 1692 01:08:05,430 --> 01:08:06,950 Ez tényleg rossz. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 Semmi sem fog történni, ha eljutunk 0-ra. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 Oké. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 Törlés. 1704 01:08:18,689 --> 01:08:19,029 >> Rendben van. 1705 01:08:19,029 --> 01:08:20,029 Szóval vissza 0-ra. 1706 01:08:20,029 --> 01:08:22,010 Szóval, ez a program nyilván fog csinálni, amit nagyon 1707 01:08:22,010 --> 01:08:23,310 unalmasan azt mondja, hogy fog csinálni. 1708 01:08:23,310 --> 01:08:24,060 Ez lesz nyomtatni az összes ilyen 1709 01:08:24,060 --> 01:08:25,290 értékek, fentről lefelé. 1710 01:08:25,290 --> 01:08:27,140 Szóval hadd megcsináljuk hurok. 1711 01:08:27,140 --> 01:08:28,640 És aztán - Hoppá. 1712 01:08:28,640 --> 01:08:29,700 Gyártó hurok. 1713 01:08:29,700 --> 01:08:31,479 Én voltam a hibás könyvtárban. 1714 01:08:31,479 --> 01:08:33,300 És most hadd futni hurok. 1715 01:08:33,300 --> 01:08:34,140 Az Enter billentyűt. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 Nagyon szép. 1718 01:08:35,270 --> 01:08:36,279 Szép, hosszú program. 1719 01:08:36,279 --> 01:08:38,109 >> Rendben, de most csináljuk jobban. 1720 01:08:38,109 --> 01:08:40,810 Csakúgy, mint a Scratch, amikor elkezdtem használni a hurok 1721 01:08:40,810 --> 01:08:43,149 konstrukció, ahelyett, hogy csak a másolás és beillesztés az összes 1722 01:08:43,149 --> 01:08:45,580 puzzle darabkái, hadd mutassam be ezt a dolgot. 1723 01:08:45,580 --> 01:08:48,609 Így a C, vannak különböző loop konstrukciók, 1724 01:08:48,609 --> 01:08:50,540 amelyek közül az egyik úgy néz ki, mint ez. 1725 01:08:50,540 --> 01:08:55,069 A "for" ciklus három dolgot, elválasztott két pontosvesszővel. 1726 01:08:55,069 --> 01:08:57,770 És aztán, belsejében a test a hurok, hogy úgy mondjam - a 1727 01:08:57,770 --> 01:08:59,390 cucc belsejében a kapcsos zárójelek - 1728 01:08:59,390 --> 01:09:01,010 tehetünk valamit, újra és újra. 1729 01:09:01,010 --> 01:09:02,310 Szóval mi van itt a képernyőn, ez 1730 01:09:02,310 --> 01:09:03,300 szó szerint csak egy megjegyzést. 1731 01:09:03,300 --> 01:09:05,380 A / / itt azt jelenti, jön egy megjegyzést. 1732 01:09:05,380 --> 01:09:06,180 Ez nem kód. 1733 01:09:06,180 --> 01:09:08,890 Ez csak angol leírást, nekem, az ember. 1734 01:09:08,890 --> 01:09:11,300 >> Szóval inicializálás feltételeket, és a frissítéseket. 1735 01:09:11,300 --> 01:09:12,770 Nos, lássuk, hogyan is működik ez. 1736 01:09:12,770 --> 01:09:15,520 Ez lehetővé teszi számomra, hogy átírják a program az alábbiak szerint. 1737 01:09:15,520 --> 01:09:16,399 For - 1738 01:09:16,399 --> 01:09:18,029 így itt jön a loop - 1739 01:09:18,029 --> 01:09:19,439 int i - 1740 01:09:19,439 --> 01:09:21,330 itt jön a változó nevű "i" - 1741 01:09:21,330 --> 01:09:23,140 lesz inicializálva 10-ig. 1742 01:09:23,140 --> 01:09:25,260 Tehát az én inicializálás. 1743 01:09:25,260 --> 01:09:29,450 Azt akarom, hogy ez a hurok, amíg az "i"-nél nagyobb vagy 1744 01:09:29,450 --> 01:09:30,899 0-val egyenlő. 1745 01:09:30,899 --> 01:09:32,880 És minden egyes iterációs e hurok, azt akarom, 1746 01:09:32,880 --> 01:09:34,979 csinálni i -. 1747 01:09:34,979 --> 01:09:36,310 Szóval láttunk + + hétfőn. 1748 01:09:36,310 --> 01:09:37,660 - Az ellentéte. 1749 01:09:37,660 --> 01:09:39,410 A csökkentést az értéket 1-gyel. 1750 01:09:39,410 --> 01:09:43,319 Belül a hurok, azt akarom, hogy valóban tenni valamit. 1751 01:09:43,319 --> 01:09:46,390 Így fogok mondani valamit, mint a printf. 1752 01:09:46,390 --> 01:09:48,939 Nem akarom, hogy mondjuk 10 most, mert ez nyilvánvalóan csak 1753 01:09:48,939 --> 01:09:50,000 nyomdába ugyanazt az értéket. 1754 01:09:50,000 --> 01:09:52,246 Mit kíván nyomtatni helyett, talán? 1755 01:09:52,246 --> 01:09:52,590 Igen. 1756 01:09:52,590 --> 01:09:55,270 Tehát "i". Szóval% d, i. 1757 01:09:55,270 --> 01:09:57,340 >> Szóval megyek lopni egy ilyen ötleteket a korábbi - 1758 01:09:57,340 --> 01:09:59,640 ez a helyettesítés a formátum kódok - 1759 01:09:59,640 --> 01:10:01,620 majd itt lent, alul, én vissza 0, csak 1760 01:10:01,620 --> 01:10:02,710 a jó intézkedés. 1761 01:10:02,710 --> 01:10:04,740 De most van egy tömörebb programot. 1762 01:10:04,740 --> 01:10:07,490 Ez csak egy pár sort, és nem egy 10 vagy 11 vonalak. 1763 01:10:07,490 --> 01:10:09,440 Hadd menjen a prompt le ide. 1764 01:10:09,440 --> 01:10:10,630 Remake hurok. 1765 01:10:10,630 --> 01:10:12,140 Rerun hurok. 1766 01:10:12,140 --> 01:10:13,570 És úgy tűnik, hogy az azonos. 1767 01:10:13,570 --> 01:10:15,550 Most, a program nincs sokkal érdekesebb. 1768 01:10:15,550 --> 01:10:17,180 De most beírhatja valami ilyesmi. 1769 01:10:17,180 --> 01:10:18,970 Tudom megváltoztatni ezt 100-ra. 1770 01:10:18,970 --> 01:10:21,400 Én aztán újrafordítani a programot. 1771 01:10:21,400 --> 01:10:23,360 És aztán újra futtatni a programot. 1772 01:10:23,360 --> 01:10:26,390 És most megy szupergyors a mai számítógépek. 1773 01:10:26,390 --> 01:10:27,820 De ott van - 1774 01:10:27,820 --> 01:10:29,620 és valóban, a scrollback buffer nem 1775 01:10:29,620 --> 01:10:30,890 is megy ilyen messzire. 1776 01:10:30,890 --> 01:10:31,680 Ott vagyunk. 1777 01:10:31,680 --> 01:10:34,090 Tehát ott van mind a 100. 1778 01:10:34,090 --> 01:10:35,880 De ez könnyű hibázni ide. 1779 01:10:35,880 --> 01:10:37,920 Mi lesz az elvárt viselkedést, ha 1780 01:10:37,920 --> 01:10:41,150 véletlenül csinálni? 1781 01:10:41,150 --> 01:10:42,550 Így olyan, mintha végtelen. 1782 01:10:42,550 --> 01:10:44,670 Tehát lássuk, ha a számítógép működését. 1783 01:10:44,670 --> 01:10:47,020 >> Szóval hadd menjen előre, és hurok. 1784 01:10:47,020 --> 01:10:48,355 És hadd futni hurok. 1785 01:10:53,590 --> 01:10:55,210 Szóval jött vissza, hogy csak egy pillanatra. 1786 01:10:55,210 --> 01:10:56,720 Majd hagyd, hogy futni. 1787 01:10:56,720 --> 01:10:59,520 Mert mit számítunk fel, minimálisan? 1788 01:10:59,520 --> 01:11:02,200 Valószínűleg legalább 2 milliárd, ha van, hogy sok bit, és 1789 01:11:02,200 --> 01:11:03,660 mi a pozitív értékeket. 1790 01:11:03,660 --> 01:11:04,890 Szóval ugrik vissza. 1791 01:11:04,890 --> 01:11:07,810 Emellett az ilyen típusú hurkok, már az úgynevezett közben 1792 01:11:07,810 --> 01:11:09,430 hurkok. Szóval, csak mint Scratch, meg kellett Örökké 1793 01:11:09,430 --> 01:11:11,240 blokkokat, és meg kellett ismétlés blokkokat. 1794 01:11:11,240 --> 01:11:13,270 Hasonlóképpen, a C, csak más módon 1795 01:11:13,270 --> 01:11:14,260 kifejezni magad. 1796 01:11:14,260 --> 01:11:17,110 Szóval van ez a fogalom a while ciklus, amely lehetővé teszi, hogy 1797 01:11:17,110 --> 01:11:18,860 kifejezni magát egy kicsit másképp. 1798 01:11:18,860 --> 01:11:21,490 És akkor van egy úgynevezett do-while ciklus, 1799 01:11:21,490 --> 01:11:24,200 ami működik kicsit másképp is. 1800 01:11:24,200 --> 01:11:25,320 És mi ugratni ezeket szét az idő múlásával. 1801 01:11:25,320 --> 01:11:28,630 >> De vessünk egy pillantást az utolsó itt. 1802 01:11:28,630 --> 01:11:30,160 Ha bemegyünk - 1803 01:11:30,160 --> 01:11:31,466 még mindig fut. 1804 01:11:31,466 --> 01:11:32,770 Elég végtelen. 1805 01:11:32,770 --> 01:11:36,870 Szóval hadd menjen pozitív, és mutassa meg, hogyan lehet valójában 1806 01:11:36,870 --> 01:11:39,410 szabályozzák felhasználói egy kicsit hatékonyabb. 1807 01:11:39,410 --> 01:11:40,910 Ez egy elég rövid program. 1808 01:11:40,910 --> 01:11:43,730 És itt van, a fő, int n nyilatkozatot. 1809 01:11:43,730 --> 01:11:46,570 Szóval adj egy változót nevű n. Most szó szerint mondom 1810 01:11:46,570 --> 01:11:48,340 "Igen." És akkor kaptam nyílt göndör 1811 01:11:48,340 --> 01:11:49,630 zárójel, kapcsos zárójel bezár. 1812 01:11:49,630 --> 01:11:52,000 És akkor észre, jobb után, hogy azt mondja, miközben n 1813 01:11:52,000 --> 01:11:53,790 1-nél kisebb. 1814 01:11:53,790 --> 01:11:55,300 Tehát észre, hogy ezeken a vonalakon - 1815 01:11:55,300 --> 01:11:56,740 19-24 - 1816 01:11:56,740 --> 01:11:59,450 együttesen alkotják a do-while ciklus. 1817 01:11:59,450 --> 01:12:01,280 Továbbá, az új szintaxis, nem új ötlet. 1818 01:12:01,280 --> 01:12:03,740 Ez csak egy másik módja a looping, szintaktikailag. 1819 01:12:03,740 --> 01:12:04,890 Szóval, mit jelent ez csinálni? 1820 01:12:04,890 --> 01:12:08,000 Tegye a következőket míg n értéke kisebb, mint 1. 1821 01:12:08,000 --> 01:12:09,080 Szóval, mit szeretnél csinálni? 1822 01:12:09,080 --> 01:12:11,390 Követelem, hogy adjon nekem egy pozitív egész szám. 1823 01:12:11,390 --> 01:12:14,110 Aztán tényleg próbálnak értéke a felhasználó. 1824 01:12:14,110 --> 01:12:16,740 De tekintve a műveletek sorrendjére itt, mert a 1825 01:12:16,740 --> 01:12:21,850 míg a feltétel itt lent, én majd megy, hogy ellenőrizze, az n 1826 01:12:21,850 --> 01:12:23,100 kevesebb, mint 1? 1827 01:12:23,100 --> 01:12:24,600 Tehát tegyük fel, hogy a felhasználó - 1828 01:12:24,600 --> 01:12:26,450 miután követelte ily módon - 1829 01:12:26,450 --> 01:12:29,190 típus az értéket 0-ra. 1830 01:12:29,190 --> 01:12:34,510 Ez a feltétel lesz igaz vagy hamis? 1831 01:12:34,510 --> 01:12:35,820 Nos, ez valóban lesz igaz. 1832 01:12:35,820 --> 01:12:38,700 Mivel a n értéke 0, és 0 1-nél kisebb. 1833 01:12:38,700 --> 01:12:40,140 Szóval, mit jelent? 1834 01:12:40,140 --> 01:12:41,160 Csináld újra. 1835 01:12:41,160 --> 01:12:41,990 Csináld újra. 1836 01:12:41,990 --> 01:12:42,640 Csináld újra. 1837 01:12:42,640 --> 01:12:46,080 Csak egyszer ez a feltétel eredménye hamis. 1838 01:12:46,080 --> 01:12:47,510 Ha azt írja be a 42. 1839 01:12:47,510 --> 01:12:49,690 Nos nincs, a 42 nem kisebb 1-nél. 1840 01:12:49,690 --> 01:12:52,320 Ezért ez a hurok történik végrehajtó. 1841 01:12:52,320 --> 01:12:54,650 És ezen a ponton, a program azt fogja mondani, köszönöm, 1842 01:12:54,650 --> 01:12:57,530 a 42, ebben az esetben. 1843 01:12:57,530 --> 01:13:00,320 Most, hogy ilyen módon kifejező magad - 1844 01:13:00,320 --> 01:13:02,360 Nem szabad várni, hogy ez a befejezéshez. 1845 01:13:02,360 --> 01:13:03,620 Ez fog tartani egy ideig. 1846 01:13:03,620 --> 01:13:04,990 Folytatás legközelebb, talán. 1847 01:13:04,990 --> 01:13:08,050 >> De most, megvan a képessége, hogy remélhetőleg, hogy megértsék a 1848 01:13:08,050 --> 01:13:09,060 kis stréber humor. 1849 01:13:09,060 --> 01:13:11,560 Elnézést. 1850 01:13:11,560 --> 01:13:13,620 Ez nem reprezentatív humor a számítástechnika 1851 01:13:13,620 --> 01:13:14,870 világban, de ez aranyos. 1852 01:13:21,020 --> 01:13:23,890 [Nevet] Legyen vége e megjegyzés. 1853 01:13:23,890 --> 01:13:25,750 És mi lesz látni hétfőn. 1854 01:13:25,750 --> 01:13:31,629 [Taps]