1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Malan: Ez CS50, és ez a kezdete 1. hét. 2 00:00:12,200 --> 00:00:15,520 Amit mi hittük ezt ma egy pillantást vissza 3 00:00:15,520 --> 00:00:18,290 amit sokan közületek valószínűleg elsétált néhány 4 00:00:18,290 --> 00:00:20,570 idő, és most tűnhet egy kicsit ismerős. 5 00:00:20,570 --> 00:00:23,720 Ez a dolog itt, ez persze a - 6 00:00:23,720 --> 00:00:24,155 KÖZÖNSÉG: Science. 7 00:00:24,155 --> 00:00:26,030 DAVID Malan: Science központ. 8 00:00:26,030 --> 00:00:28,940 Tehát ez valójában az egyik legkorábbi számítógépek 9 00:00:28,940 --> 00:00:30,220 vissza a 1940-es években. 10 00:00:30,220 --> 00:00:33,790 Ez volt az egyik első elektromechanikus számítógépek 11 00:00:33,790 --> 00:00:35,730 amely képes volt a különösen hosszú, 12 00:00:35,730 --> 00:00:38,450 önfenntartó számítások, és amit ténylegesen látható 13 00:00:38,450 --> 00:00:41,580 a tudomány központja mindössze egy kis darab ez a dolog. 14 00:00:41,580 --> 00:00:44,170 Amit mi hittük ezt akkor is vessen egy pillantást a videót 15 00:00:44,170 --> 00:00:46,670 hogy történt néhány évvel ezelőtt, és bevezeti a 16 00:00:46,670 --> 00:00:47,520 dolog a világon. 17 00:00:47,520 --> 00:00:50,200 És látni fogod, a zene és a hang, hogy valóban azok 18 00:00:50,200 --> 00:00:52,070 nagyon boldogok voltak alkalommal. 19 00:00:54,885 --> 00:00:59,700 >> [VIDEO LEJÁTSZÁS] 20 00:00:59,700 --> 00:01:02,490 -A diadal a matematikai és mechanikai készség ez 21 00:01:02,490 --> 00:01:06,340 nagyszerű új automatikus számológépet a Harvard Egyetemen. 22 00:01:06,340 --> 00:01:08,620 Bonyolult problémák matematika, helyezze át a 23 00:01:08,620 --> 00:01:12,420 gép kódolt formában a szalagon, pontosan megoldani a 24 00:01:12,420 --> 00:01:15,200 perc töredéke az idő szükséges emberi 25 00:01:15,200 --> 00:01:16,450 számítás. 26 00:01:27,050 --> 00:01:30,600 Úgy tervezték, hogy felgyorsítsák minden formáját matematikai és tudományos 27 00:01:30,600 --> 00:01:34,610 kutatás, az óriás mechanikus agy fog működni az Egyesült 28 00:01:34,610 --> 00:01:36,570 States Navy amíg a háború végén. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Malan: Szóval, amit lehet, hogy nem tudja, hogy ez volt a 30 00:01:52,980 --> 00:01:56,310 ugyanez az eszköz, amely a kifejezés mindannyian most már nagyon sok 31 00:01:56,310 --> 00:01:59,300 értetődőnek alkotta, hogy a bug. 32 00:01:59,300 --> 00:02:01,140 Tehát az egyik dolgozó mérnökök ezen a számítógépen 33 00:02:01,140 --> 00:02:05,280 szó szerint talált egy kis lepke a gép, amelynek eredményeként 34 00:02:05,280 --> 00:02:07,580 Néhány téves számítások. 35 00:02:07,580 --> 00:02:10,410 És mivel a történet úgy szól, hogy moly volt ragasztva ez a napló 36 00:02:10,410 --> 00:02:14,180 folyóirat itt, hát szeptember 9 1940-valamit, 37 00:02:14,180 --> 00:02:16,550 és így született meg a világ a "bug". 38 00:02:16,550 --> 00:02:19,880 Tehát ezentúl úgy véljük hibákat lehet bármilyen hibákat 39 00:02:19,880 --> 00:02:23,290 programok, akár mesterséges vagy, a jelen esetben, rovarok. 40 00:02:23,290 --> 00:02:25,030 >> Tehát néhány bejelentés, ahogy haladunk. 41 00:02:25,030 --> 00:02:29,160 Tehát CS50 van hagyománya kínál ebédek a fajta a 42 00:02:29,160 --> 00:02:31,600 legtöbb pénteken a félév során, ha veszünk 30- 43 00:02:31,600 --> 00:02:34,650 40 hallgató a Fire and Ice in the Square alkalmi 44 00:02:34,650 --> 00:02:36,390 fecsegés, beszélni számítástechnika, 45 00:02:36,390 --> 00:02:37,420 beszélni a jövőben. 46 00:02:37,420 --> 00:02:40,000 Meghívjuk öregdiákok és a barátok az ipar chat up 47 00:02:40,000 --> 00:02:40,690 diákok is. 48 00:02:40,690 --> 00:02:44,020 Tényleg vége felé készítés mi egy elég nagy osztály 49 00:02:44,020 --> 00:02:46,740 annál is inkább intim, legalább egyszer, míg a 50 00:02:46,740 --> 00:02:47,710 részhalmazai versenyző. 51 00:02:47,710 --> 00:02:50,940 Tehát, ha szeretné, hogy csatlakozzon hozzánk ezen a héten pénteken, 01:15, látogasson el a 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch az RSVP. 53 00:02:53,340 --> 00:02:55,840 És mi ezt újra és újra, így nem kell aggódnia, ha nem 54 00:02:55,840 --> 00:02:57,930 közül az első 30, vagy úgy ezen a héten. 55 00:02:57,930 --> 00:02:59,070 >> Szóval írnok jegyzeteket. 56 00:02:59,070 --> 00:03:01,500 A szó a források most indul rendelkezésre állnak 57 00:03:01,500 --> 00:03:03,040 a diákok az osztályban. 58 00:03:03,040 --> 00:03:05,540 Annak érdekében, hogy a fejek nem kell le előadásokon 59 00:03:05,540 --> 00:03:08,560 irkafirka meg mindent, amit mondok, és így tovább, mit csinálunk 60 00:03:08,560 --> 00:03:10,765 helyett már biztosítja a nevelőtestület a 61 00:03:10,765 --> 00:03:11,920 kanonikus készlet jegyzetek. 62 00:03:11,920 --> 00:03:14,850 Tehát az egyik tanítási fickók, Andrew Sellergren, 63 00:03:14,850 --> 00:03:17,830 aki leül minden héten áttekinti a videókat, majd 64 00:03:17,830 --> 00:03:19,730 írja le, hogy mit gondolunk egy meglehetősen 65 00:03:19,730 --> 00:03:21,840 mérvadó készlet jegyzetek. 66 00:03:21,840 --> 00:03:24,180 És András szereti is, az üzembe snarky lábjegyzeteket 67 00:03:24,180 --> 00:03:24,820 az alsó. 68 00:03:24,820 --> 00:03:27,300 Szóval akkor remélhetőleg élvezni ezeket a referencia foglalás 69 00:03:27,300 --> 00:03:30,230 szórakoztató, és azt is, gyere quiz idő, mint egy lehetőséget arra, hogy vizsgálják felül 70 00:03:30,230 --> 00:03:31,830 mi történt az egyes előadások. 71 00:03:31,830 --> 00:03:33,580 Tehát azok kapcsolódnak az előadások oldalon. 72 00:03:33,580 --> 00:03:35,300 >> Probléma set 0, eközben nincs. 73 00:03:35,300 --> 00:03:37,470 És tekintve a rendelkezésre álló források az Ön számára - 74 00:03:37,470 --> 00:03:38,020 a walkthrough. 75 00:03:38,020 --> 00:03:39,730 Milo vezette az első pénteken. 76 00:03:39,730 --> 00:03:41,470 Azt forgatták, tedd online szombaton. 77 00:03:41,470 --> 00:03:44,030 És észre, ha nem biztos benne, hol kezdjem, 78 00:03:44,030 --> 00:03:47,280 e vagy jövőbeli p-készletek, mindig kapcsolja először a 79 00:03:47,280 --> 00:03:49,300 walkthrough vagy a videó cikke. 80 00:03:49,300 --> 00:03:52,950 A vágás van folyamatban, a cs50.net/section az, ahol 81 00:03:52,950 --> 00:03:54,540 be kell nyújtania a beállítások, ha nem 82 00:03:54,540 --> 00:03:55,880 már, a ma. 83 00:03:55,880 --> 00:03:58,140 Mivel a szakaszok indul a jövő vasárnap, hétfő, 84 00:03:58,140 --> 00:03:58,760 és kedden. 85 00:03:58,760 --> 00:04:02,470 Mi szakaszok a három nap, minden héten a 86 00:04:02,470 --> 00:04:03,870 félévben a legtöbb. 87 00:04:03,870 --> 00:04:06,600 És mi is bevezetni újra, különböző pályákon. 88 00:04:06,600 --> 00:04:08,270 Szóval meg kell adnia e vágás formájában, ha 89 00:04:08,270 --> 00:04:10,350 Nem láttam már, ha azok között kevesebb 90 00:04:10,350 --> 00:04:12,800 kényelmes, kényelmesebb, vagy valahol a kettő között. 91 00:04:12,800 --> 00:04:14,960 És ha valami a kerítésen, általában valahol 92 00:04:14,960 --> 00:04:18,160 között, az, amit a legtöbb diák a végén ellenőrzés. 93 00:04:18,160 --> 00:04:19,579 Hivatali órák kezdődik ma este. 94 00:04:19,579 --> 00:04:23,020 >> Szóval Scratch meglehetősen alacsony kulcs, annak ellenére, hogy teljesen természetes 95 00:04:23,020 --> 00:04:25,300 futtatni a különböző hibákat, vagy bizonytalan, hogy miként 96 00:04:25,300 --> 00:04:26,550 végre valamit. 97 00:04:26,550 --> 00:04:28,880 Tehát észre, hogy kezdjük munkaidőn ezen a héten. 98 00:04:28,880 --> 00:04:30,500 Ők lehet Annenberg hétfő, kedd, szerda, 99 00:04:30,500 --> 00:04:34,300 Csütörtök, 20:00-11:00 közben az agy szünet. 100 00:04:34,300 --> 00:04:38,160 Felső classmen lehet bejutni, és ha valaha is gondja 101 00:04:38,160 --> 00:04:40,720 az ajtón, mert lesz ellop, csak beszélni az utat 102 00:04:40,720 --> 00:04:42,560 és magyarázzák te a CS50. 103 00:04:42,560 --> 00:04:45,230 Általában 20-30-ig nekünk személyzet ott lesz, hogy segítsen 104 00:04:45,230 --> 00:04:46,190 Ön egy az egy. 105 00:04:46,190 --> 00:04:48,980 >> Érkezéskor a gondolat ez: akkor hozd a laptop, 106 00:04:48,980 --> 00:04:51,300 lesz a töltő, akkor extra tápkábelek, 107 00:04:51,300 --> 00:04:53,320 különösen mentén a déli fal Annenberg ahol 108 00:04:53,320 --> 00:04:55,080 van sok elektromos aljzatból. 109 00:04:55,080 --> 00:04:59,290 És a fő belépési pont munkaidőn Q & A, hogy megy 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss és tegye 111 00:05:01,690 --> 00:05:02,580 a kérdés ott. 112 00:05:02,580 --> 00:05:05,600 És a címkén azt Pset 0 vagy Pset 1, függetlenül a hét 113 00:05:05,600 --> 00:05:06,810 Előfordulhat, hogy legyen. 114 00:05:06,810 --> 00:05:09,240 És akkor mit fogunk csinálni egy olyan táblázat tanítási ösztöndíjasok 115 00:05:09,240 --> 00:05:12,040 és persze asszisztensek általában 8 vagy 10, vagy úgy vagyunk, 116 00:05:12,040 --> 00:05:14,430 megy keresztül, miközben szemmel a táblán, és a 117 00:05:14,430 --> 00:05:16,810 kopasztás off kérdés valóban, amilyen gyorsan csak tudunk, 118 00:05:16,810 --> 00:05:19,600 hivatkozva, hogy a kapcsolódó álláshelyek ha nem talált e 119 00:05:19,600 --> 00:05:22,220 magatokat, online referenciák, szükség szerint. 120 00:05:22,220 --> 00:05:24,280 És akkor, ha problémák vannak, mivel elkerülhetetlenül 121 00:05:24,280 --> 00:05:27,190 lesz, vagy ez csak több értelme, hogy üljön le egy az egy, 122 00:05:27,190 --> 00:05:28,660 munka révén problémák valakivel. 123 00:05:28,660 --> 00:05:30,810 >> Vagy csak jönnek munkaidő igazán 124 00:05:30,810 --> 00:05:31,640 szüksége, hogy a gondolkodásmód. 125 00:05:31,640 --> 00:05:33,400 Nem akarod, hogy menjen át az elektronikus űrlapot, 126 00:05:33,400 --> 00:05:34,410 igazán akar találkozni valakivel. 127 00:05:34,410 --> 00:05:37,240 Közlik, hogy nekünk, és mi fog történni, amikor a 128 00:05:37,240 --> 00:05:40,620 kérdést már látta a személyzet tagja, és 129 00:05:40,620 --> 00:05:43,660 meghatározza, aha, ez lehet szállítani az egyik a 20, vagy 130 00:05:43,660 --> 00:05:47,800 30 csapat tagjai itt helyben, látni fogja a bal felső sarokban a 131 00:05:47,800 --> 00:05:51,590 kis Adja meg a Queue gomb villogni kezd cs50.net / 132 00:05:51,590 --> 00:05:52,165 megvitatni. 133 00:05:52,165 --> 00:05:55,260 És ez azt mondja neked, hogy most már meghívták, így a 134 00:05:55,260 --> 00:05:56,880 beszélni, hogy adja meg a sorban. 135 00:05:56,880 --> 00:05:59,090 És kattintva azt a gombot, a neve ekkor megjelenik a 136 00:05:59,090 --> 00:06:02,660 iPad a CS50 üdvözlő, az egyik természetesen a fejeket, majd 137 00:06:02,660 --> 00:06:05,250 tartanak a bejárat közelében a Annenberg, aki majd 138 00:06:05,250 --> 00:06:08,630 lásd ábrázolt itt a diákok, akik kérdéseket 139 00:06:08,630 --> 00:06:11,630 a bal oldali, a személyzet tagjai, akik jelen vannak a jobb oldalon. 140 00:06:11,630 --> 00:06:14,830 És egy kattintás a bal és a jobb, a web böngésző 141 00:06:14,830 --> 00:06:18,610 villogni amint, például, professzor McGonnagal 142 00:06:18,610 --> 00:06:21,460 készen áll arra, hogy látlak egy adott tábla Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Tehát volt néhány ilyen tavaly. 144 00:06:23,340 --> 00:06:25,430 Már újraindul munkaidőn és 145 00:06:25,430 --> 00:06:26,980 újra végre sok a szoftver. 146 00:06:26,980 --> 00:06:29,940 Tehát észre, hogy ez lesz felmelegedni ezen a héten. 147 00:06:29,940 --> 00:06:32,970 De azt is észre is, az elmúlt években, mivel lehet, hogy hallott 148 00:06:32,970 --> 00:06:35,710 a barátok, munkaidőn valóban 50-től 149 00:06:35,710 --> 00:06:37,040 150 diák egyszerre. 150 00:06:37,040 --> 00:06:39,300 És ez egyszerűen nem lehetséges számunkra, hogy kezelni, hogy 151 00:06:39,300 --> 00:06:42,060 hatékonyan, az egyik egy, az egész este. 152 00:06:42,060 --> 00:06:44,570 És amit mi valójában megpróbálnak tenni ebben az évben 153 00:06:44,570 --> 00:06:46,590 kihasználni azt a tényt, hogy sok kérdés 154 00:06:46,590 --> 00:06:49,050 gyakran ismételt és gyakran jobban válaszol 155 00:06:49,050 --> 00:06:50,030 aszinkron. 156 00:06:50,030 --> 00:06:52,140 Így egyfajta gondolja át a munkatársak választ, 157 00:06:52,140 --> 00:06:54,360 és mi is gondolja végig a kódot anélkül, hogy a fűtött 158 00:06:54,360 --> 00:06:57,050 nyomás szükségszerűen küzd 159 00:06:57,050 --> 00:06:58,210 rajta egymás mellett. 160 00:06:58,210 --> 00:07:00,980 Szóval úgy becsüljük, hogy mintegy harmadát vagy felét kérdések 161 00:07:00,980 --> 00:07:03,500 kerül feladása személyesen, és mi megpróbáljuk tépni ki, mint 162 00:07:03,500 --> 00:07:05,530 több mint egy fél vagy több elektronikus 163 00:07:05,530 --> 00:07:06,710 hivatali órákban. 164 00:07:06,710 --> 00:07:08,070 És mi továbbra is használni Fórum 165 00:07:08,070 --> 00:07:09,990 egész héten is. 166 00:07:09,990 --> 00:07:12,680 >> És végül, rájönnek, hogy ez a kurzus vehető át / nem. 167 00:07:12,680 --> 00:07:16,230 Tehát, ha van a kerítés, vagy csak úgy gondolja, hogy te tényleg 168 00:07:16,230 --> 00:07:18,650 Nem biztos, hogy ez a világ az Ön számára, vagy ez tényleg 169 00:07:18,650 --> 00:07:21,310 meglehetősen idegen neked, észre, hogy ez egy csodálatos módja 170 00:07:21,310 --> 00:07:24,840 megszerzése egy kis bizalmat, amellyel belép a 171 00:07:24,840 --> 00:07:26,780 osztály, mint én őszintén évvel ezelőtt. 172 00:07:26,780 --> 00:07:28,630 És akkor öt hétig rendezni ábra ki 173 00:07:28,630 --> 00:07:30,850 magad, ha akarsz maradni megfelelt / nem felelt, váltsunk át egy levelet 174 00:07:30,850 --> 00:07:31,800 fokozat, vagy a hasonlók. 175 00:07:31,800 --> 00:07:34,050 És általában mi megy / nem jelent, azt hiszem, a tanulók 176 00:07:34,050 --> 00:07:36,700 , hogy ha életbe, hogy 10 óra, 20 óra, bármi is 177 00:07:36,700 --> 00:07:38,830 Lehet néhány problémát, és te beverte a fejét 178 00:07:38,830 --> 00:07:39,690 ellen a fal, 179 00:07:39,690 --> 00:07:41,750 és akkor tényleg csak nem lehet üldözni valamit le, és 180 00:07:41,750 --> 00:07:44,230 olyan sok más dolog, amit tennie kell, őszintén, amit én 181 00:07:44,230 --> 00:07:46,070 Szerintem át / nem az, hogy azon a szélén le 182 00:07:46,070 --> 00:07:47,250 helyzetek, mint ezt. 183 00:07:47,250 --> 00:07:49,350 Ha már megtette a dolog 90%-át az utat. 184 00:07:49,350 --> 00:07:50,830 Tudod, ez nem egészen tökéletes. 185 00:07:50,830 --> 00:07:52,950 De van egy csomó belőle, mégis. 186 00:07:52,950 --> 00:07:55,440 Szóval úgy megfelelt / nem felelt, mint így, hogy a 187 00:07:55,440 --> 00:07:57,590 mentális modell, talán. 188 00:07:57,590 --> 00:08:00,680 >> Rendben, szóval múlt héten galamb a Scratch, és 189 00:08:00,680 --> 00:08:03,610 beszélt programozás meglehetősen nagy grafikus szinten. 190 00:08:03,610 --> 00:08:05,340 És ma már, hogy az átmenet a nyelv 191 00:08:05,340 --> 00:08:08,300 a C, egy alacsonyabb szintű programozási nyelv tetején 192 00:08:08,300 --> 00:08:11,260 amit sok modern nyelvek már épül, beleértve néhány 193 00:08:11,260 --> 00:08:13,010 az is, mi lesz a ciklus vége felé. 194 00:08:13,010 --> 00:08:15,530 És szintaktikailag, hogyan néznek ki 195 00:08:15,530 --> 00:08:17,330 minden nagyon hasonló. 196 00:08:17,330 --> 00:08:19,080 Szóval kezdjük, hogy ez az átmenet itt. 197 00:08:19,080 --> 00:08:21,730 Szóval ez volt a program a múlt héten ez volt a legegyszerűbb 198 00:08:21,730 --> 00:08:22,910 hello world programok. 199 00:08:22,910 --> 00:08:25,560 Egyszerűen kerül a képernyőre hello world, a 200 00:08:25,560 --> 00:08:27,650 kis beszéd buborék jön ki a macska. 201 00:08:27,650 --> 00:08:30,590 Nos, ha elkezdjük most lefordítani ezt a másik 202 00:08:30,590 --> 00:08:33,419 nyelv, rájönnek, hogy az ötleteket ma és szerdán 203 00:08:33,419 --> 00:08:36,450 azonosak, de a szintaxis kezd megváltozni. 204 00:08:36,450 --> 00:08:39,370 Szóval, mivel a múlt héten volt, amikor a zöld zászló rákattint, mondjuk 205 00:08:39,370 --> 00:08:40,340 hello világ. 206 00:08:40,340 --> 00:08:43,870 Ma megyünk, hogy int, a fő, üres, printf, 207 00:08:43,870 --> 00:08:46,350 Cserébe néhány más szintaxissal ott is. 208 00:08:46,350 --> 00:08:49,200 Kapcsos zárójelek és zárójelek és idézőjelek, és miegymás. 209 00:08:49,200 --> 00:08:54,520 De észre, hogy a lényege az ötlet itt a nyomtatást, 210 00:08:54,520 --> 00:08:58,470 és végül a tény, hogy a legfontosabb most lesz 211 00:08:58,470 --> 00:09:00,770 egyet jelent a kezdő a program. 212 00:09:00,770 --> 00:09:04,250 Main lesz, ha a zöld zászló indul dolgokat. 213 00:09:04,250 --> 00:09:06,390 >> Tehát most hadd kötekedik eltekintve egyes építőelemek itt 214 00:09:06,390 --> 00:09:08,650 mielőtt belevetik magukat néhány konkrét példát. 215 00:09:08,650 --> 00:09:11,620 Ezért hívják ezt a nyilatkozatot a múlt héten, ahol ez csak 216 00:09:11,620 --> 00:09:12,470 utasítást. 217 00:09:12,470 --> 00:09:15,660 Ehhez - ebben az esetben, mondjuk hello world. 218 00:09:15,660 --> 00:09:18,400 Nos, a C, ha megnézzük csak ezt a vonalat, ez hogyan vagyunk 219 00:09:18,400 --> 00:09:20,920 fog kezdeni hangot adott puzzle darab: 220 00:09:20,920 --> 00:09:24,780 printf ("hello world"),. 221 00:09:24,780 --> 00:09:27,330 És most mi ugratni ezeket egymástól több és több időt, 222 00:09:27,330 --> 00:09:29,330 de rájönnek, hogy van egy minta itt. 223 00:09:29,330 --> 00:09:31,870 Tehát az egyik, van ez a dolog az úgynevezett printf, amely a 224 00:09:31,870 --> 00:09:34,310 lényegében hasonló a szót mondani. 225 00:09:34,310 --> 00:09:35,800 Ez az, amit ez fog tenni. 226 00:09:35,800 --> 00:09:37,870 Printf és f itt "formázott". 227 00:09:37,870 --> 00:09:39,270 Tehát ez csak azt jelenti, hogy be 228 00:09:39,270 --> 00:09:41,600 Különböző esztétikai részletek. 229 00:09:41,600 --> 00:09:43,770 Tehát idézet idézőjel bezárva a kezdete, mit fogunk 230 00:09:43,770 --> 00:09:45,340 elindításához hívás egy string. 231 00:09:45,340 --> 00:09:47,110 Egy szó, egy mondat, egy mondat. 232 00:09:47,110 --> 00:09:50,220 Egy karakterlánc egy programozási nyelv sorozata nulla 233 00:09:50,220 --> 00:09:51,330 vagy több karaktert. 234 00:09:51,330 --> 00:09:54,390 Így az e-h-l-l-o, vessző, és így tovább van, 235 00:09:54,390 --> 00:09:56,290 idézet idézőjel bezárva, egy string. 236 00:09:56,290 --> 00:09:58,710 És most backslash n, egy kis szintaktikailag furcsa, de 237 00:09:58,710 --> 00:10:01,780 már meghatározta, hogy a múlt héten akként mi? 238 00:10:01,780 --> 00:10:02,630 Ez csak egy új sort. 239 00:10:02,630 --> 00:10:05,000 Ez csak egy módja közvetíteni a számítógépre szeretné, hogy a 240 00:10:05,000 --> 00:10:07,700 ekvivalens üti meg az Enter ott van, de te nem 241 00:10:07,700 --> 00:10:10,460 szeretnénk, hogy ténylegesen Enter, és így elrontani az összes 242 00:10:10,460 --> 00:10:12,130 formázása a tényleges program. 243 00:10:12,130 --> 00:10:15,500 Most a zárójelben mellékelje ezt a fonalat, nyitott paren és 244 00:10:15,500 --> 00:10:18,130 bezár paren, és belül ez a string. 245 00:10:18,130 --> 00:10:22,600 Mert ez azért van, mert a C és más programozási 246 00:10:22,600 --> 00:10:27,510 nyelvek, dolgok, mint a printf vesz érveket, vagy vegyen 247 00:10:27,510 --> 00:10:28,420 paraméterek. 248 00:10:28,420 --> 00:10:31,490 >> Tehát elkezd gondolkodni most ezen lila Szóljon blokk, mint egy 249 00:10:31,490 --> 00:10:34,890 függvény, mint egy eljárás, mint egy eljárás. 250 00:10:34,890 --> 00:10:36,890 Te tényleg nevezni, amit akarsz most, de 251 00:10:36,890 --> 00:10:39,260 ez egyfajta miniatűr program, amely nem csak az 1 252 00:10:39,260 --> 00:10:41,480 dolog, egy sorban, nem kevesebb. 253 00:10:41,480 --> 00:10:43,620 Szóval printf is, mit fogunk kezdeni a hívó 254 00:10:43,620 --> 00:10:46,680 funkció, és funkciók tenni valamit - ebben az esetben 255 00:10:46,680 --> 00:10:49,320 nyomtat formázott string a képernyőn - 256 00:10:49,320 --> 00:10:53,220 de a funkcióját is figyelembe érveket vagy paramétereket. 257 00:10:53,220 --> 00:10:55,880 És érvek vagy paraméterek, köszönöm, azt jelenti, 258 00:10:55,880 --> 00:11:01,220 hogy a magatartás hatással lehet, amit igazolványt 259 00:11:01,220 --> 00:11:03,420 belül a zárójelben. 260 00:11:03,420 --> 00:11:06,460 Tehát ebben az esetben printf igényeket kell mondani, hogy mit kell nyomtatni, és azt 261 00:11:06,460 --> 00:11:09,520 Csak elmúlik, az idézőjelek itt, a húr, hogy mi 262 00:11:09,520 --> 00:11:11,270 valójában szeretne nyomtatni. 263 00:11:11,270 --> 00:11:14,060 És a pontosvessző a legvégén ebben a sorban csak egy 264 00:11:14,060 --> 00:11:18,020 történeti kellemetlenség ahol végén legtöbb sornyi kódot, 265 00:11:18,020 --> 00:11:21,170 teszel egy pontosvesszőt tenni Super Clear a számítógép 266 00:11:21,170 --> 00:11:23,020 hogy ezt a kódsort itt ér véget. 267 00:11:23,020 --> 00:11:25,600 Most ez jó, mert mint látni fogjuk, programok minél több 268 00:11:25,600 --> 00:11:29,030 komplex, a pontosvessző teszi szuper világos számunkra, emberek, 269 00:11:29,030 --> 00:11:32,280 valamint a számítógép, ahol kódsorokat kezdő és befejező. 270 00:11:32,280 --> 00:11:34,360 Ismerd fel, hogy bizonyos nyelvek nem rendelkeznek valamilyen 271 00:11:34,360 --> 00:11:35,045 Az ugyanezen részletek. 272 00:11:35,045 --> 00:11:37,870 És valóban, a JavaScript, akkor nem mindig kell valamit 273 00:11:37,870 --> 00:11:38,670 mint a pontosvessző. 274 00:11:38,670 --> 00:11:40,210 De még e jönni. 275 00:11:40,210 --> 00:11:41,170 >> Szóval hurkok. 276 00:11:41,170 --> 00:11:43,520 Volt valami ilyesmi, nagyon intuitív, nyilvánvaló, nem 277 00:11:43,520 --> 00:11:44,860 valami újra és újra és újra. 278 00:11:44,860 --> 00:11:47,720 Mint felhúzása zoknit, vagy mondván hello, ebben az esetben. 279 00:11:47,720 --> 00:11:51,090 Nos, a mai naptól a C, tudtuk fejezni ezt a Scratch 280 00:11:51,090 --> 00:11:54,970 blokk while (true) printf ("hello world"). 281 00:11:54,970 --> 00:11:57,630 Tehát észre kezdünk építeni szó a puzzle 282 00:11:57,630 --> 00:11:58,480 darabot előtt. 283 00:11:58,480 --> 00:12:01,310 Mi van egyforma lila mondatban, de ez belsejében 284 00:12:01,310 --> 00:12:04,880 zárójelben Örökké blokk, és a legjobb módja annak, hogy lefordítani, hogy a 285 00:12:04,880 --> 00:12:06,480 a C a következő. 286 00:12:06,480 --> 00:12:08,130 Nincs Örökké kulcsszó. 287 00:12:08,130 --> 00:12:10,940 Nem lehet csak írja f-o-r-e-v-e-r in C. 288 00:12:10,940 --> 00:12:13,440 Tehát a legközelebbi analóg van ideje. 289 00:12:13,440 --> 00:12:17,050 >> Most, while (true) úgy tűnik, egy kicsit hülye, mert nem az érték 290 00:12:17,050 --> 00:12:18,700 valódi valaha változás? 291 00:12:18,700 --> 00:12:19,810 Valószínűleg nem. 292 00:12:19,810 --> 00:12:22,770 Ez, mintha azt mondanánk, míg egy, míg a, míg igaz. 293 00:12:22,770 --> 00:12:25,430 Ez mind ugyanaz, igaz, mindig ez a helyzet. 294 00:12:25,430 --> 00:12:29,860 Tehát ez a hurok ténylegesen kiváltására milyen hurok? 295 00:12:29,860 --> 00:12:31,210 Csak egy végtelen ciklusba, rendben. 296 00:12:31,210 --> 00:12:32,930 A Mindig hurok vagy ahogy mi nevezzük a múlt héten, 297 00:12:32,930 --> 00:12:33,870 Csak egy végtelen ciklusba. 298 00:12:33,870 --> 00:12:35,250 Szóval néha ez rossz. 299 00:12:35,250 --> 00:12:37,060 Néha ez egy bug, néha ez miért kap 300 00:12:37,060 --> 00:12:39,340 A forgó strandlabda vagy homokóra vagy hasonló. 301 00:12:39,340 --> 00:12:41,260 De ebben az esetben, azt szándékosan, bármilyen 302 00:12:41,260 --> 00:12:43,040 Ezért akar nyomtatni ugyanaz a dolog újra 303 00:12:43,040 --> 00:12:43,970 és újra és újra. 304 00:12:43,970 --> 00:12:45,900 Vagy abban az esetben, mint egy óra, amit akarok 305 00:12:45,900 --> 00:12:47,470 valami újra és újra és újra. 306 00:12:47,470 --> 00:12:49,070 Szóval végtelen hurkok meglehet van értelme. 307 00:12:49,070 --> 00:12:53,560 És így a C talán lefordítani a Mindig a kódot. 308 00:12:53,560 --> 00:12:55,570 >> Tehát most ez egy kicsit konkrétabb. 309 00:12:55,570 --> 00:12:58,880 Mi volt ismételje meg 10-szer a következő nyilatkozatot. 310 00:12:58,880 --> 00:13:02,490 Tehát while (true) nem egészen működik ott, mert igaz, 311 00:13:02,490 --> 00:13:03,590 mindig igaz. 312 00:13:03,590 --> 00:13:07,060 Tehát, ha inkább nézd meg a C verzió, most a szintaxis kap 313 00:13:07,060 --> 00:13:08,180 kicsit rejtélyes. 314 00:13:08,180 --> 00:13:11,380 De hogy őszinte legyek, ha egyszer elkezd látni ezt, mind kap 315 00:13:11,380 --> 00:13:12,600 elég ismerős gyorsan. 316 00:13:12,600 --> 00:13:14,370 Szóval ezt hívják a hurok. 317 00:13:14,370 --> 00:13:17,210 A for ciklus elmondja a számítógéphez, hogy tegyen valamit 318 00:13:17,210 --> 00:13:20,710 újra és újra és újra, amíg 319 00:13:20,710 --> 00:13:21,850 ezek a dolgok igazak. 320 00:13:21,850 --> 00:13:23,370 Most mit értünk ez alatt? 321 00:13:23,370 --> 00:13:25,470 Nos, három részből egy for ciklus, és fogunk 322 00:13:25,470 --> 00:13:28,240 gyere vissza erre az összefüggésben a tényleges 323 00:13:28,240 --> 00:13:29,100 példák egy pillanatra. 324 00:13:29,100 --> 00:13:31,650 Szóval ne aggódj, ha nem egészen elsüllyed minden egyszerre. 325 00:13:31,650 --> 00:13:35,400 De int i = 0, hosszú történet rövid, mondván, adj egy 326 00:13:35,400 --> 00:13:38,290 változó, hogy ez a típus integer, ezért adj egy számot 327 00:13:38,290 --> 00:13:40,890 nevű i, és inicializálni azt 0-ra. 328 00:13:40,890 --> 00:13:43,460 Ez ad nekem, mint egy algebrai változó x és 329 00:13:43,460 --> 00:13:44,580 inicializálni, hogy 0-ra. 330 00:13:44,580 --> 00:13:46,250 De ebben az esetben mi neveztük i. 331 00:13:46,250 --> 00:13:49,120 Aztán a közepén, azt mondja, én 10-nél kevesebb. 332 00:13:49,120 --> 00:13:52,150 Ezt mondja a számítógép nem a következő dolgokat, amíg 333 00:13:52,150 --> 00:13:53,770 mivel i kisebb 10-nél. 334 00:13:53,770 --> 00:13:55,370 És természetesen indul kevesebb, mint 10, mert 335 00:13:55,370 --> 00:13:56,550 akkor 0-tól indul. 336 00:13:56,550 --> 00:13:59,150 Aztán végül, akkor talán tudod mit i + + segítségével. 337 00:13:59,150 --> 00:14:02,140 Ez egy kicsit szintaxist csak azt jelenti, növelni i. 338 00:14:02,140 --> 00:14:05,270 Tehát adjunk hozzá 1 az i, újra és újra és újra. 339 00:14:05,270 --> 00:14:09,260 >> És mint látni fogjuk ezt a hurok, ez a forma inkább valósít 340 00:14:09,260 --> 00:14:12,160 pontosan ugyanaz a dolog, hogy őszintén, a Scratch éppen annyira 341 00:14:12,160 --> 00:14:13,250 sokkal könnyebb kifejezni. 342 00:14:13,250 --> 00:14:15,170 Ismételje meg 10, és kész. 343 00:14:15,170 --> 00:14:17,690 A C-ben, és a legtöbb programozási nyelv, van, hogy egy 344 00:14:17,690 --> 00:14:20,190 kicsit tanulságos a számítógép és a ténylegesen 345 00:14:20,190 --> 00:14:21,630 meg ilyesmi. 346 00:14:21,630 --> 00:14:23,730 De majd jön vissza ezen és más szintaxist. 347 00:14:23,730 --> 00:14:24,780 >> Mi a helyzet a változók? 348 00:14:24,780 --> 00:14:26,940 A Scratch volt valami, mint ezek narancs tömb, 349 00:14:26,940 --> 00:14:28,180 ahol tudtam, hogy egy változót. 350 00:14:28,180 --> 00:14:30,000 Nézzük önkényesen hívják számláló. 351 00:14:30,000 --> 00:14:31,880 Nézzük inicializálni azt 0-ra, majd a 352 00:14:31,880 --> 00:14:33,240 tegyük örökké csinálni valamit. 353 00:14:33,240 --> 00:14:35,760 Ebben az esetben a Scratch mondok a számlálót, így a 354 00:14:35,760 --> 00:14:38,230 macska megy, hogy egy kis beszéd buborék, hogy beszél 355 00:14:38,230 --> 00:14:40,010 a számot, hogy van ez a változó. 356 00:14:40,010 --> 00:14:42,460 És akkor mi van változást számláló 1-gyel. 357 00:14:42,460 --> 00:14:45,760 Szóval mindez csomagolva belsejében egy örökre zár. 358 00:14:45,760 --> 00:14:48,960 Tehát már most van a építőelemek C 359 00:14:48,960 --> 00:14:50,040 amely lefordítani ezt. 360 00:14:50,040 --> 00:14:51,650 >> Ennek egyik módja, amit tehetünk, hogy van ez. 361 00:14:51,650 --> 00:14:53,890 Adj egy integer, hívja számláló. 362 00:14:53,890 --> 00:14:55,190 Inicializálása a 0 363 00:14:55,190 --> 00:14:56,490 az első sorban ott. 364 00:14:56,490 --> 00:14:59,390 While (true), úgyhogy lopni, hogy az elképzelést csak egy pillanatra 365 00:14:59,390 --> 00:15:01,300 ezelőtt, megy előre, és tegye a következőket. 366 00:15:01,300 --> 00:15:04,880 Nyomtassa ki a számláló, majd növelni a számláló, 367 00:15:04,880 --> 00:15:06,930 újra, és újra, és újra. 368 00:15:06,930 --> 00:15:09,380 Vagy ismét + + csak azt jelenti, adjunk hozzá 1 valamire. 369 00:15:09,380 --> 00:15:11,030 De van egy új darab szintaxis itt. 370 00:15:11,030 --> 00:15:15,730 Mi kiugrott mivel nem szerepel az előző példát? 371 00:15:15,730 --> 00:15:17,190 Igen, ez a% d. 372 00:15:17,190 --> 00:15:19,810 Így lehet következtetni, hogy ez mit csinál, őszintén szólva, amely 373 00:15:19,810 --> 00:15:21,410 amit a Scratch blokkot csinál. 374 00:15:21,410 --> 00:15:24,510 De ismét a C, akkor csak meg kell egy kicsit különös 375 00:15:24,510 --> 00:15:25,990 amikor a kifejező magunkat. 376 00:15:25,990 --> 00:15:30,560 >> Szóval printf ("% d \ n"). 377 00:15:30,560 --> 00:15:32,320 Nos, a legtöbb, amit lehet dobni, mint ismerős. 378 00:15:32,320 --> 00:15:34,910 A jegyzések csak annyit jelent, hogy ez egy string, backslash n 379 00:15:34,910 --> 00:15:35,970 csak egy új sor. 380 00:15:35,970 --> 00:15:38,860 Tehát az egyetlen új dolog, itt% d. 381 00:15:38,860 --> 00:15:40,390 És minden, ami egy placeholder. 382 00:15:40,390 --> 00:15:43,510 % D fog jelölésére tizedes. 383 00:15:43,510 --> 00:15:47,820 És% d eszközökkel számítógép, hogy egy decimális számot itt. 384 00:15:47,820 --> 00:15:49,450 Nos, milyen számot akarsz tenni ott? 385 00:15:49,450 --> 00:15:52,400 Nos, akkor talán következtetni, miután a vessző azt mondjuk, 386 00:15:52,400 --> 00:15:55,480 számláló, ez a neve, egy változó, amit bejelentett, vagy 387 00:15:55,480 --> 00:15:57,260 létrehozott egy pár sort korábban. 388 00:15:57,260 --> 00:16:02,420 Tehát ez csak a C módon csatlakoztatásával változó egy 389 00:16:02,420 --> 00:16:04,480 karakterlánc dinamikusan. 390 00:16:04,480 --> 00:16:07,350 Mert ezzel szemben, ha tudtam volna, hanem csinált valami hasonlót 391 00:16:07,350 --> 00:16:12,470 Ennek printf ("counter"), mi lenne ez a 392 00:16:12,470 --> 00:16:15,220 program helyett csinálni, feltehetően? 393 00:16:15,220 --> 00:16:17,260 Ez lesz szó print "számlálót". 394 00:16:17,260 --> 00:16:18,750 Ami nem az a hatás, amit szeretnék. 395 00:16:18,750 --> 00:16:20,920 Meg kell helyettesíteni néhány numerikus értéket. 396 00:16:20,920 --> 00:16:24,340 Szóval majd meglátjuk, hogy a funkciókat, majd, mint a printf, nem vehet 397 00:16:24,340 --> 00:16:26,930 éppen csak egyetlen érveket, mint például a 398 00:16:26,930 --> 00:16:28,150 "Hello world". 399 00:16:28,150 --> 00:16:32,050 Ezek figyelembe idézet idézőjel bezárva vessző, majd bizonyos változók 400 00:16:32,050 --> 00:16:35,830 hogy lesz dugva, amint látni fogjuk az előző húr 401 00:16:35,830 --> 00:16:38,280 ezeken keresztül% jel helykitöltõvel. 402 00:16:38,280 --> 00:16:39,660 >> Nos, mi a logikai kifejezések? 403 00:16:39,660 --> 00:16:42,200 Logikai kifejezések voltak ezek az értékek, igaz vagy hamis. 404 00:16:42,200 --> 00:16:42,830 Igen vagy nem. 405 00:16:42,830 --> 00:16:44,020 1 vagy 0. 406 00:16:44,020 --> 00:16:45,190 Be-vagy kikapcsolása. 407 00:16:45,190 --> 00:16:47,570 Tehát Scratch úgy néz ki, és vegyük észre, hogy a 408 00:16:47,570 --> 00:16:50,170 horogszerkezet itt valójában a kötőszó 409 00:16:50,170 --> 00:16:51,500 A két kisebb blokk. 410 00:16:51,500 --> 00:16:53,610 Szóval ilyen húzni, és leesett 3 puzzle darabkái 411 00:16:53,610 --> 00:16:56,450 együtt, hogy győződjön meg, hogy a hosszabb puzzle darab ott, hogy én 412 00:16:56,450 --> 00:17:00,420 tudta közvetíteni a gondolat, hogy szeretnék x kevesebb lesz, mint y és 413 00:17:00,420 --> 00:17:02,540 y, hogy kisebb, mint a z. 414 00:17:02,540 --> 00:17:05,790 És így tudom lefordítani a két külön sorba az alábbiak szerint. 415 00:17:05,790 --> 00:17:08,650 A felső egy lehet nagyon triviálisan lefordítva a C, 416 00:17:08,650 --> 00:17:10,069 mindössze x 00:17:11,990 Talán néhány zárójelben jó intézkedés. 418 00:17:11,990 --> 00:17:15,520 És akkor a C, akkor nem írok, és jelöli a 419 00:17:15,520 --> 00:17:16,819 együtt valamit. 420 00:17:16,819 --> 00:17:19,585 Te ehelyett levelet &&. 421 00:17:19,585 --> 00:17:22,849 És mi végül látni, egyetlen jel történik 422 00:17:22,849 --> 00:17:23,880 jelent valami mást. 423 00:17:23,880 --> 00:17:27,530 Szóval csak && jelöli azt az elképzelést, ÉS. 424 00:17:27,530 --> 00:17:30,040 >> Tehát újra, noha ez kezd eléggé összetett, 425 00:17:30,040 --> 00:17:32,560 egyik célja bevezetésének Scratch mellett 426 00:17:32,560 --> 00:17:34,810 csak úgy, egyfajta szórakoztató on-rámpa, ahol meg tudod csinálni 427 00:17:34,810 --> 00:17:36,590 valamit, ami nagyon grafikus és animációs, valamint 428 00:17:36,590 --> 00:17:39,000 megosztható és a hasonló, az is, hogy közvetíteni az elképzelést, hogy a 429 00:17:39,000 --> 00:17:42,010 minden ötletet kezdünk búvárkodás a mai és újabb 430 00:17:42,010 --> 00:17:44,300 már megtestesült, még ilyen egyszerű 431 00:17:44,300 --> 00:17:46,850 felület, mivel egy nap. 432 00:17:46,850 --> 00:17:47,790 Mi ez itt? 433 00:17:47,790 --> 00:17:48,860 >> Szóval feltételeket. 434 00:17:48,860 --> 00:17:50,590 Tehát a Scratch blokk a bal oldalon látszik 435 00:17:50,590 --> 00:17:51,610 egy kicsit bonyolultabb. 436 00:17:51,610 --> 00:17:52,650 De ez csak egy húzás és 437 00:17:52,650 --> 00:17:54,140 csepegtető ismerős darab. 438 00:17:54,140 --> 00:17:56,690 Ha x kisebb, mint y, mondjuk így. 439 00:17:56,690 --> 00:17:59,900 Különben, ha x nagyobb mint y, mondjuk így. 440 00:17:59,900 --> 00:18:02,460 Else tudunk logikusan feltételezhetjük, hogy ez következik, hogy a 441 00:18:02,460 --> 00:18:03,580 azokat meg kell egyeznie. 442 00:18:03,580 --> 00:18:05,220 Tehát azt mondják, hogy egyenlő. 443 00:18:05,220 --> 00:18:07,690 Most a C a jobb oldalon, pontosan ugyanolyan dolog. 444 00:18:07,690 --> 00:18:09,730 És észre, hogy a kapcsos zárójelek lesznek a 445 00:18:09,730 --> 00:18:12,190 jellemzője, C és más nyelveken, hogy nem ez a fajta 446 00:18:12,190 --> 00:18:13,210 A tokozás. 447 00:18:13,210 --> 00:18:15,470 Csakúgy, mint az, ha ez a mondat sárga dolog, hogy ez a fajta 448 00:18:15,470 --> 00:18:17,770 megragadta a lila blokk belsejébe. 449 00:18:17,770 --> 00:18:19,480 Hasonlóképpen ezek nadrágtartó - 450 00:18:19,480 --> 00:18:20,870 ezeket kapcsos zárójelek - 451 00:18:20,870 --> 00:18:24,710 hivatott felidézni ugyanezen ötlet átfogó, egy vagy több 452 00:18:24,710 --> 00:18:27,680 sornyi kódot, amelyek beljebb bennük. 453 00:18:27,680 --> 00:18:31,270 Így a jobb oldalon van, ha x kisebb, mint y, printf 454 00:18:31,270 --> 00:18:32,270 ("X kisebb mint y"). 455 00:18:32,270 --> 00:18:34,980 Különben, ha x nagyobb mint y, nyomtassa ki az ugyanaz. 456 00:18:34,980 --> 00:18:38,360 Else nyomtassa ki, hogy azok egyenlő. 457 00:18:38,360 --> 00:18:41,750 >> Így a rövid, van egy meglehetősen közvetlen leképezés vagy fordítás 458 00:18:41,750 --> 00:18:44,720 A nyelvi láttunk eddig, beleértve az egyes 459 00:18:44,720 --> 00:18:45,940 A bonyolultabb funkciókat. 460 00:18:45,940 --> 00:18:48,680 Szóval lehet, hogy nem használja ezt a projekt, vagy lehet, hogy nem 461 00:18:48,680 --> 00:18:51,150 használja ezt a projekt ezen a héten. 462 00:18:51,150 --> 00:18:54,650 De mi ezeket a dolgokat néven tömbök C Scratch, 463 00:18:54,650 --> 00:18:55,680 ők hívják listákat. 464 00:18:55,680 --> 00:18:59,370 És láttuk ezeket a Fruitcraft RPG múlt héten. 465 00:18:59,370 --> 00:19:01,320 A kis kék fickó, mászkálok, felvette 466 00:19:01,320 --> 00:19:03,010 cseresznye és a narancs és hasonlók. 467 00:19:03,010 --> 00:19:05,110 Nos Scratch, hogy hajtotta végre e narancssárga 468 00:19:05,110 --> 00:19:09,000 blokk, amely olyan szavakat tartalmaz, ebben az esetben, mi vagyunk a szó szoros értelmében 469 00:19:09,000 --> 00:19:10,800 hozzátéve, "narancs" a 470 00:19:10,800 --> 00:19:12,460 nevű változó leltár. 471 00:19:12,460 --> 00:19:14,910 Tehát C, ez a forma lesz, hogy egy kicsit rejtélyes. 472 00:19:14,910 --> 00:19:17,250 És mi jön vissza erre a jövő héten, és jobban 473 00:19:17,250 --> 00:19:21,060 érdekes dolog a világon a kriptográfia vele. 474 00:19:21,060 --> 00:19:23,990 De az alján itt, ezt a két vonalat lényegében 475 00:19:23,990 --> 00:19:27,550 lefordítani, hogy mit csinálunk egy Scratch blokkolják ott. 476 00:19:27,550 --> 00:19:30,120 De még e jönni. 477 00:19:30,120 --> 00:19:34,120 >> Tehát üzembe össze, itt van egy program a C. úgyhogy 478 00:19:34,120 --> 00:19:36,590 Gyorsan kötekedik eltekintve néhány darab szintaxis itt, hanem az 479 00:19:36,590 --> 00:19:40,300 akkor menjünk ténylegesen írásához néhány kódot, ismerkedjen 480 00:19:40,300 --> 00:19:42,440 Önnek néhány eszközt fogunk használni, és nézd meg, mi 481 00:19:42,440 --> 00:19:45,400 építhet a már néhány ilyen alapvető építőköveit tól 482 00:19:45,400 --> 00:19:49,150 a múlt héten, most a C szintaktikailag Tehát a tetején van, ez a 483 00:19:49,150 --> 00:19:51,380 talán az egyik leginkább unalmas programokat tudna 484 00:19:51,380 --> 00:19:53,130 levelet a legtöbb programozási nyelv. 485 00:19:53,130 --> 00:19:55,010 De ez a fajta különleges jelentése, mert ez a 486 00:19:55,010 --> 00:19:58,120 gyűjtő program, amely minden számítógép tudós ír, ha 487 00:19:58,120 --> 00:19:59,620 tanítás valaki egy programozási nyelv - 488 00:19:59,620 --> 00:20:01,230 a hello world program. 489 00:20:01,230 --> 00:20:05,120 >> Tehát a legtetején, látjuk ezt a fogalmat az # include 490 00:20:05,120 --> 00:20:08,180 és akkor, szögletes zárójelben, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Megyünk, hogy jöjjön vissza, de tényleg, hogy mi 492 00:20:10,580 --> 00:20:13,770 azt jelenti, hogy van egy fájl ebben a világban az úgynevezett szabvány 493 00:20:13,770 --> 00:20:17,670 I / O, sdtio pont h, és ez csak egy szöveges fájl, amely 494 00:20:17,670 --> 00:20:19,240 valaki írta évvel ezelőtt. 495 00:20:19,240 --> 00:20:22,550 És belül, hogy a szöveges fájl egy csomó 496 00:20:22,550 --> 00:20:25,840 funkciókat vagy módszerek, illetve eljárásokat, hogy valaki 497 00:20:25,840 --> 00:20:28,970 azt írta, hogy mi vagyunk a kedvezményezettek, mert 498 00:20:28,970 --> 00:20:31,420 Most már használhatja az adott személy kódot. 499 00:20:31,420 --> 00:20:33,070 A funkciók ő írt. 500 00:20:33,070 --> 00:20:36,320 Ebben az esetben a printf nem olyasvalami, amit én írtam, ez 501 00:20:36,320 --> 00:20:37,500 Nem valami CS50 írt. 502 00:20:37,500 --> 00:20:40,290 Ez valami olyasmi, hogy valaki írt évvel ezelőtt valósult meg a 503 00:20:40,290 --> 00:20:43,450 nevű fájl stdio.h majd, mint félre, kimért 504 00:20:43,450 --> 00:20:45,830 másik része a funkció egy másik fájlt. 505 00:20:45,830 --> 00:20:46,940 De mi lesz ott. 506 00:20:46,940 --> 00:20:50,070 >> Szóval # include csak magunk módján a mondás, hogy 507 00:20:50,070 --> 00:20:53,110 C, adjon hozzáférést a funkciókat, hogy valaki más írta. 508 00:20:53,110 --> 00:20:55,490 És ebben az esetben érdekel, mert azt akarom printf. 509 00:20:55,490 --> 00:20:57,530 Most kap int main (void). 510 00:20:57,530 --> 00:21:00,160 Szóval ez egy ilyen dolog, őszintén szólva, hogy a 0. napon, 511 00:21:00,160 --> 00:21:02,400 nagyjából Nekem, hogy milyen zóna ki, mert ez csak 512 00:21:02,400 --> 00:21:03,260 nem érdekes 513 00:21:03,260 --> 00:21:04,780 intellektuálisan, néhány szintaxist. 514 00:21:04,780 --> 00:21:07,940 De most már tudom, hogy a funkciók, vagy más néven 515 00:21:07,940 --> 00:21:11,660 eljárások vagy módszerek általában termel némi értéket. 516 00:21:11,660 --> 00:21:12,520 Ők valamit. 517 00:21:12,520 --> 00:21:13,810 Jönnek fel a választ. 518 00:21:13,810 --> 00:21:15,020 Ők termelnek kimenet. 519 00:21:15,020 --> 00:21:18,780 Így int mellett a fő csak a rövidített szóval 520 00:21:18,780 --> 00:21:21,380 hogy ez a funkció, ez az eljárás, végül is megy 521 00:21:21,380 --> 00:21:22,650 hogy adja vissza a számot. 522 00:21:22,650 --> 00:21:24,370 És hogy ez miért van, akkor gyere vissza. 523 00:21:24,370 --> 00:21:27,810 Main csak az alapértelmezett világszínvonalat az alapértelmezett 524 00:21:27,810 --> 00:21:30,990 funkció fog kerül végrehajtásra a C programban 525 00:21:30,990 --> 00:21:31,860 futtatni azt. 526 00:21:31,860 --> 00:21:34,160 Void csak annyit jelent ez a dolog, a fő, nem veszi 527 00:21:34,160 --> 00:21:35,270 érveket, ebben az esetben. 528 00:21:35,270 --> 00:21:36,400 Szóval, hogy szuper explicit. 529 00:21:36,400 --> 00:21:38,160 Nincs húrok ott, nincs vessző. 530 00:21:38,160 --> 00:21:40,690 Void jelenti, hogy nincs a fő érveket. 531 00:21:40,690 --> 00:21:44,350 >> Most végül, szerencsére, az utolsó két sor ismerős. 532 00:21:44,350 --> 00:21:46,160 Bent a kapcsos zárójelek van egy printf 533 00:21:46,160 --> 00:21:47,620 és van egy visszatérés. 534 00:21:47,620 --> 00:21:50,450 És a visszatérés milyen szerencsés, hogy van, hogy 535 00:21:50,450 --> 00:21:53,510 tedd oda, mert ebben az esetben ez nem csinál minden 536 00:21:53,510 --> 00:21:54,600 nagy az érdeklődés. 537 00:21:54,600 --> 00:21:58,790 De egy számítógépes program, amikor egy függvény értéke 0, 538 00:21:58,790 --> 00:22:00,610 azt jelenti, hogy minden rendben van. 539 00:22:00,610 --> 00:22:01,820 Semmi baj. 540 00:22:01,820 --> 00:22:06,170 Ezzel szemben, ha egy függvény visszatérési értéke 1, vagy negatív 1, vagy 541 00:22:06,170 --> 00:22:11,670 negatív 1.337, vagy néhány véletlenszerű számok, mint arra, hogy a 542 00:22:11,670 --> 00:22:14,020 általában azt jelenti, hogy hiba valóban történt. 543 00:22:14,020 --> 00:22:16,150 Szóval, ha a Mac vagy a PC, ha valaha is látott 544 00:22:16,150 --> 00:22:18,590 néhány bosszantó üzenetet, mert a számítógép lefagyott, vagy 545 00:22:18,590 --> 00:22:20,660 fagyasztva, és van egy rejtélyes hibaüzenet jelenik meg, 546 00:22:20,660 --> 00:22:23,320 majd egy kódot, mint a rendszer-kód 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, néhány szám, 548 00:22:25,110 --> 00:22:29,270 hogy általában egy felesleges részlet, hogy elmondjam 549 00:22:29,270 --> 00:22:32,110 a legtöbben az emberek, de ez az, amit néhány funkciót, vagy valamilyen 550 00:22:32,110 --> 00:22:34,890 program tulajdonképpen visszaadásra, akkor egy nem nulla érték. 551 00:22:34,890 --> 00:22:38,540 És az előnye az, hogy a 0 jelenti, minden is, és 552 00:22:38,540 --> 00:22:40,470 akkor alapvetően van egy végtelen számú dolog, hogy 553 00:22:40,470 --> 00:22:41,130 rosszra. 554 00:22:41,130 --> 00:22:44,700 Melyik miért választották 0 jó és egy nem nulla értéket 555 00:22:44,700 --> 00:22:46,450 rossz, ahogy hamarosan látni fogjuk. 556 00:22:46,450 --> 00:22:47,870 >> Akkor menjünk előre, és ezt a levelet. 557 00:22:47,870 --> 00:22:51,610 Így emlékeztetni arra, hogy a minap használt Mac-emet, hogy nyit egy 558 00:22:51,610 --> 00:22:53,970 terminál ablakban, aztán megnyílt szöveges program, mint például 559 00:22:53,970 --> 00:22:55,900 TextEdit, és elkezdtem írni valami kódot. 560 00:22:55,900 --> 00:22:56,580 Nos, ez rendben van. 561 00:22:56,580 --> 00:22:58,636 De a tapasztalat lesz más a Mac, vagy 562 00:22:58,636 --> 00:23:01,220 a Solaris számítógépre, a Linux számítógépen, bármilyen operációs 563 00:23:01,220 --> 00:23:02,810 rendszer véletlenül használ. 564 00:23:02,810 --> 00:23:04,970 És így folyamán, amit inkább használni valami 565 00:23:04,970 --> 00:23:07,010 úgynevezett CS50 Appliance. 566 00:23:07,010 --> 00:23:10,420 Tehát a CS50 Appliance egy letölthető szoftver 567 00:23:10,420 --> 00:23:13,640 , amely lehetővé teszi, hogy futtasson egy operációs rendszert, a Linux, 568 00:23:13,640 --> 00:23:16,810 kifejezetten Fedora Linux, saját Mac vagy PC. 569 00:23:16,810 --> 00:23:20,810 És te ezt letölti egy úgynevezett hypervisor. 570 00:23:20,810 --> 00:23:23,100 Szóval mindez kell dokumentálni probléma szett 1. 571 00:23:23,100 --> 00:23:25,240 És akkor vezérli felé, hogy mit kell letölteni. 572 00:23:25,240 --> 00:23:27,510 De a végeredmény, hogy van-e a Mac vagy PC, te vagy 573 00:23:27,510 --> 00:23:29,080 letölt egy ingyenes szoftver. 574 00:23:29,080 --> 00:23:32,340 Ezután le a CS50 Appliance, és azt mondani, hogy 575 00:23:32,340 --> 00:23:33,960 szabad szoftver - a hypervisor - 576 00:23:33,960 --> 00:23:38,080 futtatni a CS50 gép egy ablakban a számítógépen. 577 00:23:38,080 --> 00:23:39,490 És mi történik ez. 578 00:23:39,490 --> 00:23:43,660 >> Én most, észre itt, amit úgy tűnik, hogy egy asztali 579 00:23:43,660 --> 00:23:44,130 környezet. 580 00:23:44,130 --> 00:23:46,150 És hadd ténylegesen zsugorodás ez az egyetlen ablakot. 581 00:23:46,150 --> 00:23:49,640 Szóval ez most a Mac-emet, egy kis ablak van, és a belső 582 00:23:49,640 --> 00:23:51,300 Ezen ablak történetesen teljesen 583 00:23:51,300 --> 00:23:52,380 különböző operációs rendszer. 584 00:23:52,380 --> 00:23:55,250 Valóban van ez a start menüben ide, emlékeztető 585 00:23:55,250 --> 00:23:57,990 Windows, hogy van egy csomó almenük, beleértve 586 00:23:57,990 --> 00:24:00,720 egy linket a CS50 kézikönyv, Dropbox, és hasonlók. 587 00:24:00,720 --> 00:24:03,480 És mi ez a környezet most szabványos környezet 588 00:24:03,480 --> 00:24:06,280 hogy mindannyian már használhatja úgy, hogy nem számít, milyen 589 00:24:06,280 --> 00:24:08,960 számítógép, amit telepítve van, milyen verziójú 590 00:24:08,960 --> 00:24:11,430 Mac OS vagy Windows futsz, mindannyian most már a 591 00:24:11,430 --> 00:24:12,800 ugyanabban a környezetben. 592 00:24:12,800 --> 00:24:15,850 És most, ebben a környezetben kezdhetjük írni valami kódot. 593 00:24:15,850 --> 00:24:18,480 >> Szóval megyek előre, és nyissa meg a program neve gedit. 594 00:24:18,480 --> 00:24:21,500 Ez hasonló a notepad.exe, vagy 595 00:24:21,500 --> 00:24:22,790 TextEdit egy Mac. 596 00:24:22,790 --> 00:24:25,390 És ez csak egy szuper egyszerű szöveges szerkesztő program 597 00:24:25,390 --> 00:24:27,500 úgy néz ki, mint ez első pillantásra. 598 00:24:27,500 --> 00:24:30,640 Most legtetején, van egy fehér paletta, a ZUBOLY 599 00:24:30,640 --> 00:24:33,860 van ez a fekete ablak, amely azt mondja jharvard @ készüléket. 600 00:24:33,860 --> 00:24:36,440 És ez azért van, mert a felhasználói fiók, amit előre létrehozott 601 00:24:36,440 --> 00:24:38,430 mindenki számára az úgynevezett John Harvard. 602 00:24:38,430 --> 00:24:41,490 Van egy mappát, ahol minden az ő fájl menni, és 603 00:24:41,490 --> 00:24:43,500 itt ahol tudunk kezdeni írni néhány kódot. 604 00:24:43,500 --> 00:24:45,810 Akkor hadd menjek előre, itt és zoom csak egy kicsit, és én vagyok 605 00:24:45,810 --> 00:24:51,550 csinálni # include , int main (void), és a 606 00:24:51,550 --> 00:24:57,470 akkor fogok csinálni printf ("hello world") 607 00:24:57,470 --> 00:24:59,490 , Vissza 0-ra. 608 00:24:59,490 --> 00:25:01,400 Nos, ez az egész nagyon fekete és fehér. 609 00:25:01,400 --> 00:25:03,830 >> Hadd menjek előre, és nem egy dolog, hogy tanítson gedit mire vagyok 610 00:25:03,830 --> 00:25:04,510 ténylegesen csinál. 611 00:25:04,510 --> 00:25:06,140 Hadd menjek a Mentés másként. 612 00:25:06,140 --> 00:25:08,560 Fogok választani a bal oldali ide jharvard. 613 00:25:08,560 --> 00:25:11,010 Tehát újra, még akkor is, ha soha nem használt Linux előtt, őszintén 614 00:25:11,010 --> 00:25:13,680 ezekben a napokban, mindegyik ruházott be lényegében a 615 00:25:13,680 --> 00:25:14,590 azonos típusú interfész - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows, és a Linux. 617 00:25:16,030 --> 00:25:18,680 Szóval választottam jharvard home mappájában van. 618 00:25:18,680 --> 00:25:21,120 És én fogom menteni ezt a fájlt hello.c. 619 00:25:21,120 --> 00:25:24,260 Tehát a legtetején, beírtam hello.c, elnevezésekor C 620 00:25:24,260 --> 00:25:26,520 programot a. c kiterjesztés 621 00:25:26,520 --> 00:25:27,570 mi a bevett gyakorlat. 622 00:25:27,570 --> 00:25:28,650 És hit Mentés. 623 00:25:28,650 --> 00:25:32,510 És most mi a jó, hogy én már hatékonyan tanítani gedit, 624 00:25:32,510 --> 00:25:33,690 hogy ez egy C program. 625 00:25:33,690 --> 00:25:36,470 Figyeljük meg, hogy a fekete-fehér szöveg most színkódja, vagy 626 00:25:36,470 --> 00:25:39,330 szintaxis kiemelte, ami csak felhívja a figyelmet a 627 00:25:39,330 --> 00:25:41,540 különböző szemantikai részei a programnak. 628 00:25:41,540 --> 00:25:44,260 A bal felső sarokban van, ahogy a programok minél több összetett, én vagyok 629 00:25:44,260 --> 00:25:47,060 lesz egy összefoglaló az összes dolog, amit írtak. 630 00:25:47,060 --> 00:25:48,050 Szóval ez az odafent. 631 00:25:48,050 --> 00:25:52,350 Szóval hadd most kicsinyíteni és menj le a terminál ablakot. 632 00:25:52,350 --> 00:25:54,570 >> Szóval ez talán az új, hogy sok ember. 633 00:25:54,570 --> 00:25:57,260 Ha még sohasem használt parancssoros környezetben, akkor sosem 634 00:25:57,260 --> 00:26:00,020 használt DOS, vagy soha nem használt Linux, vagy még soha nem nyitotta 635 00:26:00,020 --> 00:26:02,550 Mac OS terminál ablak, van egy csomó dolog, amit 636 00:26:02,550 --> 00:26:04,820 tehetnénk a GUI, mint mutatva, és rákattint, és a 637 00:26:04,820 --> 00:26:07,080 húzva, és csökken, és a hasonló, de általában - 638 00:26:07,080 --> 00:26:09,360 bizonnyal a világ számítógép-tudomány - 639 00:26:09,360 --> 00:26:11,580 parancssor segítségével, ahol nem kell az egérrel 640 00:26:11,580 --> 00:26:14,220 általában már csak a billentyűzet, valójában egy csomó 641 00:26:14,220 --> 00:26:17,260 erősebb, mint a felület, ha egyszer megszokta a 642 00:26:17,260 --> 00:26:18,580 különféle parancsokat. 643 00:26:18,580 --> 00:26:20,940 És egyfajta szabad magad igénylő pontra, és kattintson 644 00:26:20,940 --> 00:26:21,690 mindent. 645 00:26:21,690 --> 00:26:23,890 Szóval gedit fogunk egyfajta van a legjobb mindkét világból. 646 00:26:23,890 --> 00:26:25,600 Mi lehet a drag and drop szöveges, azt láthatjuk, hogy 647 00:26:25,600 --> 00:26:26,840 szép és színkódolt. 648 00:26:26,840 --> 00:26:29,630 De amikor eljön az ideje, hogy fut a program, akkor néha 649 00:26:29,630 --> 00:26:31,750 Csak ezt a kis ablakot itt. 650 00:26:31,750 --> 00:26:33,460 >> Szóval megyek előre, és ezt. 651 00:26:33,460 --> 00:26:36,420 Az alsó fekete-fehér ablakhoz, megyek, hogy menjen előre 652 00:26:36,420 --> 00:26:37,890 és írd csenget. 653 00:26:37,890 --> 00:26:40,130 És csenget a neve a fordító. 654 00:26:40,130 --> 00:26:43,310 Ez egy program, amely átalakítja a forráskód 655 00:26:43,310 --> 00:26:48,770 bele, így tárgykód. 656 00:26:48,770 --> 00:26:51,270 0s és 1s, hogy láttuk röviden a múlt héten. 657 00:26:51,270 --> 00:26:53,700 Emlékezzünk a múlt hét óta, azt ígérte, hogy fogunk 658 00:26:53,700 --> 00:26:55,920 megy valami ilyesmi - mi kellett lennie 659 00:26:55,920 --> 00:26:57,010 valami ilyesmi - 660 00:26:57,010 --> 00:26:58,700 és ez természetesen nem valami, hogy egy ember megy 661 00:26:58,700 --> 00:26:59,690 csinálni kézzel. 662 00:26:59,690 --> 00:27:01,980 Tehát ahelyett, hogy fogunk használni a program, és hogy a program 663 00:27:01,980 --> 00:27:03,430 Ebben az esetben az úgynevezett csenget. 664 00:27:03,430 --> 00:27:06,020 És a neve az én program hello.c. 665 00:27:06,020 --> 00:27:09,670 Így annak érdekében, hogy fordítani hello.c származó forráskódot 666 00:27:09,670 --> 00:27:12,930 tárgykódban vagy 0s és 1s, meg kell elegendő csak nem 667 00:27:12,930 --> 00:27:14,820 ezt, és megüt Belép. 668 00:27:14,820 --> 00:27:16,850 >> Oké, semmi sem történt volna. 669 00:27:16,850 --> 00:27:20,450 De tudom, hogy most, vagy a múlt héten, hogy az alapértelmezett név 670 00:27:20,450 --> 00:27:24,920 a program, amikor a C-ben írt, az ostoba neve a.out. 671 00:27:24,920 --> 00:27:26,610 A legtöbb érdektelen infója tudnál jön ki. 672 00:27:26,610 --> 00:27:28,790 A jelentése az első betű az ábécé, ki az, ami volt 673 00:27:28,790 --> 00:27:29,960 kiadásra, de hát legyen. 674 00:27:29,960 --> 00:27:33,570 Ez az én program, és most pont slash, mint látni fogjuk, nem 675 00:27:33,570 --> 00:27:36,170 valójában csak egyfajta biztonsági szolgáltatás, mert a 676 00:27:36,170 --> 00:27:38,250 a.out egy program írtam. 677 00:27:38,250 --> 00:27:39,650 Nem jön a számítógép, ez 678 00:27:39,650 --> 00:27:40,790 nem a Program Files. 679 00:27:40,790 --> 00:27:42,910 Ez nem a Mac OS a Applications mappába. 680 00:27:42,910 --> 00:27:45,740 Kell lennem szuper explicit a számítógép, és azt mondják, 681 00:27:45,740 --> 00:27:49,030 ez a program, a.out, az az aktuális mappában, az 682 00:27:49,030 --> 00:27:50,260 aktuális könyvtárban. 683 00:27:50,260 --> 00:27:53,160 És ahogy Ön által képviselt ezt olyan környezetben, mint ez 684 00:27:53,160 --> 00:27:57,070 A dot jelent bármilyen mappát éppen be 685 00:27:57,070 --> 00:27:59,420 És így. / Csak azt jelenti, fuss a.out 686 00:27:59,420 --> 00:28:00,530 az aktuális mappában. 687 00:28:00,530 --> 00:28:04,830 És Én vezetem ezt az Enter billentyűt, és íme, a legelső program. 688 00:28:04,830 --> 00:28:05,990 >> Most hadd tegyen egy lépést hátra. 689 00:28:05,990 --> 00:28:08,280 Ez az ablak egy kicsit kicsi, és rájönnek, hogy az alsó 690 00:28:08,280 --> 00:28:10,340 balra a készülék itt egy másik ikonra. 691 00:28:10,340 --> 00:28:12,660 Az egyik a Chrome, ami elég ismerős, csak a web 692 00:28:12,660 --> 00:28:14,350 böngésző a készülék belsejét. 693 00:28:14,350 --> 00:28:16,340 És ez a fekete-fehér ikon csak egy 694 00:28:16,340 --> 00:28:17,720 nagyobb terminál ablakot. 695 00:28:17,720 --> 00:28:19,830 Tehát ha lesz egy kicsit bosszantó, hogy egyfajta ha csak 696 00:28:19,830 --> 00:28:22,270 ez apró szelete egy ablak, amely kölcsönhatásba 697 00:28:22,270 --> 00:28:24,370 programokkal tudunk helyette csinálni. 698 00:28:24,370 --> 00:28:26,640 És most hadd kezdjem gépelés néhány hamarosan 699 00:28:26,640 --> 00:28:27,980 ismernie kell parancsokat. 700 00:28:27,980 --> 00:28:28,900 ls. 701 00:28:28,900 --> 00:28:31,410 Tehát ls a parancs jegyzékbe. 702 00:28:31,410 --> 00:28:33,900 Tehát a Mac OS vagy Windows, akkor általában duplán kattint egy 703 00:28:33,900 --> 00:28:36,510 mappát, majd, íme, látod az összes különböző fájlokat 704 00:28:36,510 --> 00:28:37,210 és mappákat. 705 00:28:37,210 --> 00:28:39,650 A parancssoros környezetben, ahol akkor csak írja 706 00:28:39,650 --> 00:28:42,390 parancsok vagy szöveg, ls az egyenértékű. 707 00:28:42,390 --> 00:28:44,380 Akkor mutasd meg, mi van ebben a könyvtárban. 708 00:28:44,380 --> 00:28:46,540 >> Most van egy csomó dolog van, ami mind egy kicsit 709 00:28:46,540 --> 00:28:48,190 ismerős és egy kicsit szokatlan. 710 00:28:48,190 --> 00:28:50,740 De vegyük észre, hogy ugyanúgy, mint a Windows és a Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 van egy asztali mappába. 712 00:28:52,190 --> 00:28:54,520 Tehát minden olyan ikon, amely az asztalon történik 713 00:28:54,520 --> 00:28:55,650 kell lennie, hogy a mappában. 714 00:28:55,650 --> 00:28:57,250 Van egy letöltések mappa, dolog, hogy 715 00:28:57,250 --> 00:28:58,890 Chrome tehet ott. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Így a készülék jön a beépített támogatás Dropbox 718 00:29:01,820 --> 00:29:04,500 úgy, hogy az elmúlt félévben, akkor szinkronizálni a Dropbox 719 00:29:04,500 --> 00:29:06,420 figyelembe, hogy az összes program alátámasztani. 720 00:29:06,420 --> 00:29:08,050 Ők hozzáférhető a másik számítógépen. 721 00:29:08,050 --> 00:29:09,780 Ha bármi rosszul a készülék, akkor 722 00:29:09,780 --> 00:29:11,340 nagyon könnyen talpra Dropbox. 723 00:29:11,340 --> 00:29:12,940 Szóval mappa ott erre. 724 00:29:12,940 --> 00:29:14,660 Van két fájlt, amit tett - hello.c 725 00:29:14,660 --> 00:29:16,540 és a.out. 726 00:29:16,540 --> 00:29:18,530 És aztán jobbra van valami más mappákba, hogy mi lesz 727 00:29:18,530 --> 00:29:20,710 kap a vége felé a félév, web 728 00:29:20,710 --> 00:29:21,540 programozás. 729 00:29:21,540 --> 00:29:26,160 Tehát, ha tudom. /, A.out, Enter, hogy mondja megy 730 00:29:26,160 --> 00:29:29,460 a könyvtárban vagyok, az aktuális könyvtárban, és futtassa a 731 00:29:29,460 --> 00:29:32,465 nevű program a.out ott. 732 00:29:32,465 --> 00:29:35,810 >> Rendben, ez szép és jó, de ez nem minden 733 00:29:35,810 --> 00:29:38,550 kényszerítő írni nevű program segít a.out. 734 00:29:38,550 --> 00:29:40,790 Tehát ténylegesen ezt egy kicsit másképp. 735 00:29:40,790 --> 00:29:43,980 Tehát ahelyett, hogy csak futó csenget, hello.c, tegyük hozzá 736 00:29:43,980 --> 00:29:46,850 az úgynevezett egy parancssori argumentum. 737 00:29:46,850 --> 00:29:50,730 Tehát egy parancssori argumentum, vagy egy kapcsoló ebben az esetben, csak 738 00:29:50,730 --> 00:29:54,930 egy szó vagy kifejezés, hogy írjon egy prompt után 739 00:29:54,930 --> 00:29:56,290 a programot futtatni kívánt. 740 00:29:56,290 --> 00:29:59,970 Tehát ebben az esetben, csenget a programot szeretnék futtatni,-o 741 00:29:59,970 --> 00:30:03,480 eszköz kimeneti fájl, ami már nem hívják a.out. 742 00:30:03,480 --> 00:30:07,510 Output nevű fájlt hello, és erre összeállításában 743 00:30:07,510 --> 00:30:10,200 utolsó szót a vonalon, hello.c. 744 00:30:10,200 --> 00:30:13,200 Szóval röviden, ez egy nagyon csekély javulást, amelynek 745 00:30:13,200 --> 00:30:15,850 ahelyett, hogy ezt ostobán nevű fájlt a.out, 746 00:30:15,850 --> 00:30:21,430 Most már nem csenget-o hello, majd hello.c és 747 00:30:21,430 --> 00:30:22,530 majd nyomja meg az Entert. 748 00:30:22,530 --> 00:30:25,510 Semmi sem úgy tűnik, hogy megtörténjen, de megint nagyon tetszik, 0 - ha 749 00:30:25,510 --> 00:30:28,510 semmi sem történik ez azt jelenti, semmi baj történt - 750 00:30:28,510 --> 00:30:31,460 így csináljuk ls most, Enter, sőt most 751 00:30:31,460 --> 00:30:32,780 Van egy helló program. 752 00:30:32,780 --> 00:30:38,510 Szóval, ha én most írja helló, parancs nem található. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Szóval, pontosan így van. 755 00:30:40,220 --> 00:30:43,170 Szóval azért, mert ez a program írtam, és nem jön a 756 00:30:43,170 --> 00:30:45,810 A számítógép,. / hello, Enter, azt jelenti, 757 00:30:45,810 --> 00:30:47,350 Én most fut hello. 758 00:30:47,350 --> 00:30:48,440 >> Szóval ennyi van. 759 00:30:48,440 --> 00:30:51,070 Most mi lesz végül kap egyre több parancssori 760 00:30:51,070 --> 00:30:54,110 érveket, amelyek lehetővé teszik számunkra, hogy nem több, hanem csak azokat, 761 00:30:54,110 --> 00:30:57,760 akinek ez lehet öreg, hadd valójában bemegy egy 762 00:30:57,760 --> 00:31:01,910 könyvtár van, és csak ad egy teaser, hogyan mást 763 00:31:01,910 --> 00:31:05,770 mehet mintegy végrehajtási hello world. 764 00:31:05,770 --> 00:31:10,730 Hadd menjek be ide, és fogom kinyitni. 765 00:31:10,730 --> 00:31:13,090 Szóval tényleg, fogok elmagyarázni, hogy mit csinálok, így 766 00:31:13,090 --> 00:31:15,610 ez hasznos. 767 00:31:15,610 --> 00:31:17,410 Hadd vissza. 768 00:31:17,410 --> 00:31:19,620 >> Szóval már ezt sokáig. 769 00:31:19,620 --> 00:31:23,030 Így észre felett a jobb oldalon van egy pár 770 00:31:23,030 --> 00:31:26,940 könyvtárakat, amelyek furcsa nevű source1m és source1w. 771 00:31:26,940 --> 00:31:28,830 Ez csak ostoba konvenció használunk. 772 00:31:28,830 --> 00:31:31,825 Source csak azt jelenti, forráskód, 1 azt jelenti, ez a héten egy, és 773 00:31:31,825 --> 00:31:34,000 m azt jelenti, hogy hétfőn és w azt jelenti, hogy szerda van. 774 00:31:34,000 --> 00:31:34,900 Tehát semmi rejtélyes ott. 775 00:31:34,900 --> 00:31:37,830 Ez csak rövidített írásmódot. 776 00:31:37,830 --> 00:31:39,860 Ezek a kék dolgok mappák, más néven 777 00:31:39,860 --> 00:31:40,630 könyvtárakat. 778 00:31:40,630 --> 00:31:43,870 Azt akarom, hogy ebbe a mappába, és most egy normál számítógép 779 00:31:43,870 --> 00:31:45,710 Én is csak kattintson duplán a mappa ikonra, és 780 00:31:45,710 --> 00:31:46,810 ott található összes fájlt. 781 00:31:46,810 --> 00:31:49,270 De egy parancssori környezet, nem tudok elég csinálni 782 00:31:49,270 --> 00:31:52,640 , hogy így ehelyett azt kell változtatni könyvtárakat kézzel. 783 00:31:52,640 --> 00:31:57,900 Tehát, ha azt írja cd majd source1m, Enter, észreveheti, hogy 784 00:31:57,900 --> 00:32:01,180 a gyors, a dolog, a fehér a bal, csak megváltozott. 785 00:32:01,180 --> 00:32:03,690 És így valóban, amikor csak mondott zárójeleket és aztán a 786 00:32:03,690 --> 00:32:06,450 kis cirkalom, a tilde jel, hogy csak azt jelentette, én voltam 787 00:32:06,450 --> 00:32:08,800 John Harvard home könyvtárában, a My Documents, 788 00:32:08,800 --> 00:32:10,390 személyes fájlokat. 789 00:32:10,390 --> 00:32:14,000 De most zárójelben azt mondja, ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Ez csak azt jelenti, én vagyok a nevű mappába source1m 791 00:32:17,090 --> 00:32:19,160 ez a John Harvard saját könyvtára. 792 00:32:19,160 --> 00:32:22,030 Szóval, ha én most akarom felsorolni a fájlokat ebben a mappában, könnyen 793 00:32:22,030 --> 00:32:25,300 kérdés, írja csak ls. 794 00:32:25,300 --> 00:32:28,860 És most látom az összes fájlt, hogy én előre hozott létre a mai 795 00:32:28,860 --> 00:32:31,020 előadás, amelyek mindegyike, vagy amelyek nagy része, történik 796 00:32:31,020 --> 00:32:32,740 a vége. c. 797 00:32:32,740 --> 00:32:36,210 >> Szóval hadd menjen előre, és most fut gedit egy program neve 798 00:32:36,210 --> 00:32:39,140 holloway.c, ami meg van írva néhány random hacker 799 00:32:39,140 --> 00:32:42,920 az interneten, úgy néz ki, egy kicsit olyan, mint ez. 800 00:32:42,920 --> 00:32:44,880 És mi nem fog átmenni ez semmilyen 801 00:32:44,880 --> 00:32:48,530 részletesen, de azok még kényelmesebb, különösen, ha 802 00:32:48,530 --> 00:32:50,935 azt szeretnénk, hogy a találgatás, hogy mi ez a program nem itt. 803 00:32:57,950 --> 00:32:59,990 Biztos lehet benne, hogy te több vagy kevesebb kényelmesebb, 804 00:32:59,990 --> 00:33:01,655 mi nem is kap ez a fajta dolog végére 805 00:33:01,655 --> 00:33:02,160 ebben a félévben. 806 00:33:02,160 --> 00:33:05,390 Ez az, amit egy példa egy összezavart C versenyen, amely 807 00:33:05,390 --> 00:33:08,390 úton levelet a leginkább rejtélyes keresett programot esetleg 808 00:33:08,390 --> 00:33:10,820 lehet felülmúlni más okos emberek, akik hasonlóképpen 809 00:33:10,820 --> 00:33:13,010 próbál írni a dolgokat, és mutatják be, hogy tud írni 810 00:33:13,010 --> 00:33:14,280 több rejtélyes dolog, mint te. 811 00:33:14,280 --> 00:33:17,290 Így ez nem egy példa a jól megírt program a 812 00:33:17,290 --> 00:33:21,260 szempontjából stílus, ez egy példa egy olyan program 813 00:33:21,260 --> 00:33:22,860 nyer egy verseny, az emberek próbálnak 814 00:33:22,860 --> 00:33:24,090 legyen homályos és elvont. 815 00:33:24,090 --> 00:33:27,670 >> Szóval, ha futunk ezt a dolgot, hadd menjen be a terminál ablak, 816 00:33:27,670 --> 00:33:28,110 hogy úgy mondjam. 817 00:33:28,110 --> 00:33:29,650 Tehát ez a fekete-fehér környezet az úgynevezett 818 00:33:29,650 --> 00:33:31,160 terminál ablak általában. 819 00:33:31,160 --> 00:33:32,600 Hadd menjek előre, és fordítsuk le. 820 00:33:32,600 --> 00:33:34,440 Nem fogom használni csenget, mert ez a program egy 821 00:33:34,440 --> 00:33:36,340 kicsit rejtélyes, és szüksége van egy másik 822 00:33:36,340 --> 00:33:38,190 fordító, az egyik neve GCC. 823 00:33:38,190 --> 00:33:39,200 De ez nem ugyanaz a dolog. 824 00:33:39,200 --> 00:33:41,130 Beletelik forráskód tárgykód. 825 00:33:41,130 --> 00:33:43,940 És most, ha én futni a.out, hogy a program segítségével 826 00:33:43,940 --> 00:33:46,065 Csak látta teszi ezt. 827 00:33:49,220 --> 00:33:51,170 Szóval a fickó az évben megnyerte a versenyt. 828 00:33:51,170 --> 00:33:54,020 Akárhogy is, nem fogunk ebben az irányban, per se. 829 00:33:54,020 --> 00:33:57,400 >> Szóval valóban próbáljuk most ugratni kívül mit tehetünk 830 00:33:57,400 --> 00:33:59,540 ezen alapvető építőköveit, hogy egyre több és több 831 00:33:59,540 --> 00:34:00,590 érdekes programokat. 832 00:34:00,590 --> 00:34:02,800 Ezért írtam egy programot, most már fut a program. 833 00:34:02,800 --> 00:34:05,780 Most valóban egyszerűsítsék és nem kell írni 834 00:34:05,780 --> 00:34:07,210 a szót csenget a billentyűket. 835 00:34:07,210 --> 00:34:10,710 Kiderült, hogy a mi programok minél több rejtélyes, tudjuk, vagy 836 00:34:10,710 --> 00:34:14,699 bonyolultabb inkább, mi is valójában futtatni ezt a parancsot. 837 00:34:14,699 --> 00:34:17,610 Akkor hadd menjek vissza a home könyvtár, hogy úgy mondjam, hadd 838 00:34:17,610 --> 00:34:20,750 eltávolítás - rm a remove parancs - Megyek, hogy távolítsa el 839 00:34:20,750 --> 00:34:23,060 Az a.out nevű fájlt, és hello. 840 00:34:23,060 --> 00:34:25,489 És most észre egy parancssoros környezetben, ugyanúgy, mint a 841 00:34:25,489 --> 00:34:27,800 a GUI, kapsz kéri. Nem tudok kattintson egy gombra, bár, én 842 00:34:27,800 --> 00:34:31,040 kell beírni y igen, y igen. 843 00:34:31,040 --> 00:34:33,460 És most, ha azt írja ls újra, vegyük észre, hogy ezek a zöld 844 00:34:33,460 --> 00:34:35,469 programok - a.out és hello - 845 00:34:35,469 --> 00:34:35,734 elmentek. 846 00:34:35,734 --> 00:34:37,340 Vigyázz rm. 847 00:34:37,340 --> 00:34:39,739 Ez nem rossz dolog, mint akkor húzással 848 00:34:39,739 --> 00:34:40,810 dolgok a kukába. 849 00:34:40,810 --> 00:34:43,989 >> Tehát most menjünk előre - és nem tudtam ezt - csengés-o 850 00:34:43,989 --> 00:34:45,139 hello, hello - 851 00:34:45,139 --> 00:34:46,884 Én már unatkozom gépelés a parancsot. 852 00:34:46,884 --> 00:34:48,080 Annak ellenére, hogy nem adtam egy kicsit gyorsan. 853 00:34:48,080 --> 00:34:51,870 Tehát ahelyett, megcsináljuk hello. 854 00:34:51,870 --> 00:34:53,880 Tehát, hogy nem a fordító. 855 00:34:53,880 --> 00:34:57,720 Ez csak egy baráti programot, hogy jön a Linux, az e 856 00:34:57,720 --> 00:34:59,070 esetben - az operációs rendszer - 857 00:34:59,070 --> 00:35:02,480 , amely automatizálja a folyamatot összeállításának programok. 858 00:35:02,480 --> 00:35:05,555 Tehát ahelyett, hogy az emlékezés csengés-o fájlnév és 859 00:35:05,555 --> 00:35:08,190 majd így tovább, különösen akkor ezeket a sorokat kap hosszabb és 860 00:35:08,190 --> 00:35:10,110 hosszabb, tudok csak írni, hogy. 861 00:35:10,110 --> 00:35:12,030 És ez fog kiköp egy csomó dolog, hogy 862 00:35:12,030 --> 00:35:13,940 majd végül látni ebben a félévben. 863 00:35:13,940 --> 00:35:17,500 De észre, most, ha az I. típusú ls, hello újra az én könyvtárban. 864 00:35:17,500 --> 00:35:19,850 És valóban tudok futni, hogy a. / Hello. 865 00:35:19,850 --> 00:35:23,330 Tehát, hogy csak automatizálja a folyamat fut, mi volt, 866 00:35:23,330 --> 00:35:26,910 ebben az esetben, egy sokkal hosszabb, bonyolultabb parancs. 867 00:35:26,910 --> 00:35:29,060 Így fogunk kezdeni a márka, csak azért, mert egy csomó 868 00:35:29,060 --> 00:35:30,530 inkább felhasználóbarát. 869 00:35:30,530 --> 00:35:32,770 >> De most tegyünk egy érdekes programot 870 00:35:32,770 --> 00:35:34,650 mint mondjuk hello. 871 00:35:34,650 --> 00:35:38,680 Így a programok általunk írt eddig ott fő. 872 00:35:38,680 --> 00:35:40,890 Ez csak az alapértelmezett dolog, hogy mindent indul ki. 873 00:35:40,890 --> 00:35:43,340 De vannak egyéb feladatokat ott is, és 874 00:35:43,340 --> 00:35:45,890 stdio.h az a dolog, amit láttam a tetején a mi 875 00:35:45,890 --> 00:35:48,480 fájl előtt, és ez az, amit ismert, mint a standard könyvtár. 876 00:35:48,480 --> 00:35:51,300 Belül a szabványos könyvtár egy csomó funkciók 877 00:35:51,300 --> 00:35:53,850 hogy valaki más írta, és mi lehet kezdeni ezekkel a 878 00:35:53,850 --> 00:35:55,050 funkciók levelet látna 879 00:35:55,050 --> 00:35:56,760 Érdekes programok magunkat. 880 00:35:56,760 --> 00:35:58,370 >> Akkor hadd menjek vissza a készüléket. 881 00:35:58,370 --> 00:35:59,820 Fogom zárni ezt a terminál ablakot. 882 00:35:59,820 --> 00:36:02,630 Megyek, hogy lezárja a dolgokat írtunk korábban, és csak megy 883 00:36:02,630 --> 00:36:07,350 a hello.c, és észre most a következőket teheti. 884 00:36:07,350 --> 00:36:09,730 Helló világ egyáltalán nem olyan érdekes, szeretnék 885 00:36:09,730 --> 00:36:11,770 személyre ezt a programot magamnak. 886 00:36:11,770 --> 00:36:13,440 Tehát ahelyett, hogy világ, megyek 887 00:36:13,440 --> 00:36:14,830 megy előre, és azt mondják - 888 00:36:14,830 --> 00:36:16,880 Tudtam írja David - de ez valóban egyfajta 889 00:36:16,880 --> 00:36:18,050 alapvetően ugyanaz. 890 00:36:18,050 --> 00:36:19,970 De próbáljuk ki ezt a helyőrző ötlet. 891 00:36:19,970 --> 00:36:24,460 Emlékezzünk vissza, hogy a C, hanem a printf, mi volt ezek 892 00:36:24,460 --> 00:36:28,110 Helyőrzők, és még több, mint% d. 893 00:36:28,110 --> 00:36:31,150 Szóval% d volt, gyorsan épelméjűség ellenőrzés. 894 00:36:31,150 --> 00:36:32,310 Oké, decimális szám, ennyi. 895 00:36:32,310 --> 00:36:33,860 Decimális számok, ez minden. 896 00:36:33,860 --> 00:36:37,755 Szóval% c, ahogy a találkozás, lesz egy karaktert. 897 00:36:37,755 --> 00:36:40,530 Tegyen egy karakter van, írni a-z, 898 00:36:40,530 --> 00:36:41,600 vagy központozás szimbólum. 899 00:36:41,600 --> 00:36:45,590 Egyetlen karakter,% f, tudja valaki más nyelven? 900 00:36:45,590 --> 00:36:47,020 Tehát egy lebegőpontos értéket. 901 00:36:47,020 --> 00:36:47,880 A valós szám. 902 00:36:47,880 --> 00:36:51,550 Tehát nem egy decimális szám - ez valójában egy valós szám 903 00:36:51,550 --> 00:36:54,130 tizedespont, és némely számjegyek száma a bal 904 00:36:54,130 --> 00:36:55,520 és jobbra tőle. 905 00:36:55,520 --> 00:36:58,060 % S, string. 906 00:36:58,060 --> 00:36:59,530 Ez az egyetlen fogunk látni gyakran. 907 00:36:59,530 --> 00:37:02,140 A húr, ismét csak egy szó, egy mondat, egy sorozat 908 00:37:02,140 --> 00:37:03,330 egyedi karakterek. 909 00:37:03,330 --> 00:37:06,730 És végül, lld? 910 00:37:06,730 --> 00:37:08,210 Tehát ez inkább egy sarok ügyben. 911 00:37:08,210 --> 00:37:09,850 Hosszú, hosszú tizedes. 912 00:37:09,850 --> 00:37:12,035 Szóval, ha azt szeretnénk, nem csak egy szám, ez a nagy, 913 00:37:12,035 --> 00:37:14,160 szeretne egy nagyobb szám, akkor kell majd megadni a 914 00:37:14,160 --> 00:37:16,400 a számítógépet, hogy ez egy adott méretű. 915 00:37:16,400 --> 00:37:17,610 >> Szóval tudod ezt egy kicsit. 916 00:37:17,610 --> 00:37:20,610 Ahelyett, hogy csak kemény kódot a David, hadd enyhén 917 00:37:20,610 --> 00:37:22,460 dinamikusan mondjuk% s. 918 00:37:22,460 --> 00:37:25,790 Így valósult% s itt, ami helyőrző helyett egy string. 919 00:37:25,790 --> 00:37:30,500 Akkor hadd tegyem vesszővel, majd a "Dávid" ide. 920 00:37:30,500 --> 00:37:32,770 Nos, ez egyáltalán nem olyan intellektuálisan érdekes, 921 00:37:32,770 --> 00:37:35,060 mert minden, amit tettem most valóban még több munka 922 00:37:35,060 --> 00:37:35,790 a számítógép. 923 00:37:35,790 --> 00:37:39,660 Ahelyett, hogy elmondja a számítógépre van mindez egyszerre vagyok most 924 00:37:39,660 --> 00:37:43,760 mondja ezt, és helyezzen be egy húr itt végül, vessző, 925 00:37:43,760 --> 00:37:44,950 itt az, hogy string. 926 00:37:44,950 --> 00:37:47,220 Így ez nem egy nagyobb fokú javulást, de ez legalább 927 00:37:47,220 --> 00:37:49,010 Egy lépés egy érdekes program. 928 00:37:49,010 --> 00:37:51,240 Mert most, hadd menjen előre, és ezt az ablakot egy kicsit 929 00:37:51,240 --> 00:37:56,850 nagyobb, hadd menjen előre, és fuss, hogy hello. 930 00:37:56,850 --> 00:38:01,340 És most,. / A.out nem működik, miért? 931 00:38:03,880 --> 00:38:05,570 Rendben, most úgy hívják hello. 932 00:38:05,570 --> 00:38:09,400 Tehát újra tenni, valamint csenget egy-o átnevezte az 933 00:38:09,400 --> 00:38:11,120 programot, hogy valami sokkal érdekesebb. 934 00:38:11,120 --> 00:38:13,060 És íme: most azt mondja helló David. 935 00:38:13,060 --> 00:38:14,590 >> Rendben, még mindig egy hülye program. 936 00:38:14,590 --> 00:38:18,070 És most nézzük a ténylegesen menjen vissza ide, és bevezetni a fogalmát 937 00:38:18,070 --> 00:38:18,810 változó. 938 00:38:18,810 --> 00:38:21,600 Nem lenne jó, ha tudnám, hogy egy változót 939 00:38:21,600 --> 00:38:23,150 amelynek típusa karakterlánc? 940 00:38:23,150 --> 00:38:26,720 És a változó érték valóban származik a használó 941 00:38:26,720 --> 00:38:27,810 saját maga. 942 00:38:27,810 --> 00:38:30,240 Szóval önkényesen fogom hívni a változó s, amely 943 00:38:30,240 --> 00:38:32,410 Csak egy közös egyezmény, ha van egy változó neve 944 00:38:32,410 --> 00:38:33,250 a húr. 945 00:38:33,250 --> 00:38:35,670 Fogok csinálni egyenlőségjel, aztán megyek hívni 946 00:38:35,670 --> 00:38:38,030 nevezett funkció getString. 947 00:38:38,030 --> 00:38:40,830 Tehát getString nem olyasmi, amit gyárilag beépített C. Ez 948 00:38:40,830 --> 00:38:43,330 egy függvényt, amely a CS50 staff írta, tényleg csak a 949 00:38:43,330 --> 00:38:45,670 ezeket az első néhány hét, hogy egyszerűsítse a folyamat 950 00:38:45,670 --> 00:38:49,450 egyre felhasználói és egyre felhasználói formában 951 00:38:49,450 --> 00:38:51,960 a vonósok, vagy számokat, és az ilyen. 952 00:38:51,960 --> 00:38:55,520 Szóval getString olyan, mint printf, de nyilvánvalóan helyett 953 00:38:55,520 --> 00:38:58,700 nyomtassa ki fogja csinálni, amit a neve is mondja, hogy egy string. 954 00:38:58,700 --> 00:39:00,970 De ahhoz, hogy használni getString, fogunk van, hogy a változás 955 00:39:00,970 --> 00:39:03,180 Itt, ezen túl. 956 00:39:03,180 --> 00:39:07,170 Szóval ösztönösen ez a program, remélhetőleg, lesz valahogy 957 00:39:07,170 --> 00:39:09,700 kap egy string a felhasználótól, majd mi is fog tenni 958 00:39:09,700 --> 00:39:11,460 ezzel a húr, s az úgynevezett? 959 00:39:15,060 --> 00:39:16,470 Ez csak a nyomdába, igaz? 960 00:39:16,470 --> 00:39:18,870 Még mindig nem ösztönző programot, mert mindent meg fog 961 00:39:18,870 --> 00:39:22,160 kell tennie, hogy csatlakoztassa az említett értéket, ahol% s 962 00:39:22,160 --> 00:39:23,750 azt mondja, hogy kell menni. 963 00:39:23,750 --> 00:39:25,290 >> Szóval legalábbis ez az intézkedés. 964 00:39:25,290 --> 00:39:27,040 Hadd mentése és kicsinyítéshez. 965 00:39:27,040 --> 00:39:30,280 Most az én terminálablakban idelent, a kis szelet egy, 966 00:39:30,280 --> 00:39:32,760 hadd megint megcsináljuk hello. 967 00:39:32,760 --> 00:39:35,160 Oké, és ah, átkozott, kaptam egy csomó hibát. 968 00:39:35,160 --> 00:39:38,020 Hadd lapozzunk fel, és látjuk az első - 969 00:39:38,020 --> 00:39:40,430 úgyhogy valóban ezt egy még nagyobb ablakot, így 970 00:39:40,430 --> 00:39:42,110 Láthatjuk, hogy rosszul elszúrtam - 971 00:39:42,110 --> 00:39:44,460 úgyhogy győződjön hello. 972 00:39:44,460 --> 00:39:46,540 Oké, ez egy katasztrófa, nem igaz? 973 00:39:46,540 --> 00:39:48,740 Írtam három sornyi kódot, 974 00:39:48,740 --> 00:39:50,070 ez adott nekem 12 hibákat. 975 00:39:50,070 --> 00:39:51,980 Miért van ez? 976 00:39:51,980 --> 00:39:55,720 Szóval szerencsére sokszor, amikor meglátja sok-sok hiba 977 00:39:55,720 --> 00:39:57,730 köpködés ki egyszerre, ez tényleg csak azért, mert már 978 00:39:57,730 --> 00:39:59,760 zavaros a számítógép itt. 979 00:39:59,760 --> 00:40:02,330 És továbbra is zavarba az idő nem lesz itt. 980 00:40:02,330 --> 00:40:04,400 És így ez csak elindul botlás, és botladozva, valamint 981 00:40:04,400 --> 00:40:07,310 köpködés többet ijesztő dolog, mint a ténylegesen alkalmazandó. 982 00:40:07,310 --> 00:40:10,120 Így általában, mindig kezdje a felső 1. 983 00:40:10,120 --> 00:40:13,320 >> Tehát a nagyon legfelső fokon a vörös, a 984 00:40:13,320 --> 00:40:14,740 hibaüzenet ez. 985 00:40:14,740 --> 00:40:17,750 A be nem jelentett azonosító string, tettem 986 00:40:17,750 --> 00:40:19,160 jelent szabvány? 987 00:40:19,160 --> 00:40:19,900 Én nem. 988 00:40:19,900 --> 00:40:24,180 Úgy értettem, húr, de ez azért van, mert is, a szó húr 989 00:40:24,180 --> 00:40:26,020 hogy tartsa a szóban ténylegesen 990 00:40:26,020 --> 00:40:27,240 nem létezik a C sem. 991 00:40:27,240 --> 00:40:29,470 Ez valami olyasmi, fogjuk használni, csak az első héten, vagy két 992 00:40:29,470 --> 00:40:34,500 van, de létezik egy nevű fájlt cs50.h. 993 00:40:34,500 --> 00:40:37,110 Tehát most, tudom, hogy van ez a másik, hogy a könyvtári 994 00:40:37,110 --> 00:40:39,330 staff írta, így ez már írva a közelmúltban, mint a 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 De belül cs50.h olyan meghatározás, szinonimája 997 00:40:45,020 --> 00:40:48,310 rendezi, hogy létrehozza ezt a szót string. 998 00:40:48,310 --> 00:40:50,890 >> És most hadd menjek vissza a terminál ablakot. 999 00:40:50,890 --> 00:40:53,200 Fogom törölni ezt az egész zűrzavar a Ctrl-L. Majd csak 1000 00:40:53,200 --> 00:40:55,700 törölje minden tiszta, és én megyek előre, és 1001 00:40:55,700 --> 00:40:57,860 helló ismét az Enter billentyűt. 1002 00:40:57,860 --> 00:40:59,440 Szóval, mi történt most? 1003 00:40:59,440 --> 00:41:01,150 Most már az összes ilyen hibák elment. 1004 00:41:01,150 --> 00:41:02,230 Tehát mi is igazán tettem? 1005 00:41:02,230 --> 00:41:05,920 Most tanította a számítógépen húr létezik, és ez 1006 00:41:05,920 --> 00:41:07,890 a fájlban nevezett cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Tehát ne panaszkodj, mert most már tudod, hogy hol találja 1008 00:41:10,930 --> 00:41:13,220 ez a funkció nyilatkozat úgy mondjam. 1009 00:41:13,220 --> 00:41:15,200 Ha létezik a világon. 1010 00:41:15,200 --> 00:41:18,820 >> Úgyhogy most megyek, hogy menjen előre és fuss hello. 1011 00:41:18,820 --> 00:41:22,300 Úgy tűnik, hogy egy végtelen ciklus, semmi sem történik. 1012 00:41:25,530 --> 00:41:26,870 Szóval kell beírni valamit, rendben. 1013 00:41:26,870 --> 00:41:29,650 Az első sor a kód az én programot getString. 1014 00:41:29,650 --> 00:41:31,750 Szóval ez szó szerint vár rám, hogy kap egy string. 1015 00:41:31,750 --> 00:41:33,680 Tehát ebben az értelemben igen, ez egy végtelen ciklusba. 1016 00:41:33,680 --> 00:41:36,520 Úgy látszik, a getString az alapértelmezett viselkedést, hogy mi 1017 00:41:36,520 --> 00:41:37,510 írta - az alkalmazottak - 1018 00:41:37,510 --> 00:41:39,550 azt mondja, hogy csak várni és várni és várni és várni és várni, 1019 00:41:39,550 --> 00:41:42,550 amíg a felhasználó ad egy string beírásával valamit be 1020 00:41:42,550 --> 00:41:46,000 Szóval hadd menjen előre, és írja be a D-a-v - i-d, az Enter billentyűt. 1021 00:41:46,000 --> 00:41:47,420 És itt van, hello David. 1022 00:41:47,420 --> 00:41:50,430 >> Most ez úgy tűnik, mintha ez csak egy jogi aktus? 1023 00:41:50,430 --> 00:41:52,810 Hadd menjek előre, és írja be a Tommy. 1024 00:41:52,810 --> 00:41:54,740 Enter, oké, úgy tűnik, hogy működik. 1025 00:41:54,740 --> 00:41:59,130 Működik Rob, művek Zamyla, dolgozik - rendben. 1026 00:41:59,130 --> 00:42:01,000 Szóval ez működni fog, valószínűleg. 1027 00:42:01,000 --> 00:42:05,030 Így kell kinyomtatni, amit mi valójában, hogy ez, 1028 00:42:05,030 --> 00:42:07,830 és mi lehet egy kicsit nehéz itt. 1029 00:42:07,830 --> 00:42:12,130 Lássuk, ha valami ilyesmit hello. 1030 00:42:12,130 --> 00:42:18,000 Lehet menni ide, lássuk, másolás, beillesztés. 1031 00:42:18,000 --> 00:42:19,950 Én nem lesz képes beilleszteni, hogy sokszor van. 1032 00:42:19,950 --> 00:42:24,410 Paste, oké, Shift + Ctrl + V Szóval mit tudott 1033 00:42:24,410 --> 00:42:26,970 Előfordulhat, hogy rossz itt? 1034 00:42:26,970 --> 00:42:27,770 >> Oké, segfaultol. 1035 00:42:27,770 --> 00:42:29,710 Így néhányan előzetes háttérrel tudni fogja, hogy 1036 00:42:29,710 --> 00:42:32,710 általában, így számítógépek sok Be, amikor ők 1037 00:42:32,710 --> 00:42:36,140 valószínűleg nem azt jelentette, hogy megkapja a hosszú neveket, mint ez - rossz 1038 00:42:36,140 --> 00:42:36,740 dolgok történnek. 1039 00:42:36,740 --> 00:42:39,230 Valóban, a világ az interneten is, ez történik egy kicsit, 1040 00:42:39,230 --> 00:42:41,000 ahol amikor tervezése egy honlapot, ha éppen 1041 00:42:41,000 --> 00:42:43,850 tervezése Facebook, van, hogy önkényes döntések up 1042 00:42:43,850 --> 00:42:45,370 elől, mint hogy mennyi ideig fog valaki 1043 00:42:45,370 --> 00:42:46,360 Facebook username lenni? 1044 00:42:46,360 --> 00:42:48,050 Vagy meddig valaki keresztneve lenni? 1045 00:42:48,050 --> 00:42:50,110 Mennyi ideig tart valakinek a telefonszámát lenni, és hasonlók. 1046 00:42:50,110 --> 00:42:53,580 És ha a programozók, hogy rossz feltételezéseket, programok szünet 1047 00:42:53,580 --> 00:42:56,640 mert próbál így több kimenet, több bemeneti 1048 00:42:56,640 --> 00:42:58,330 inkább, mint hogy van memória. 1049 00:42:58,330 --> 00:43:01,860 Vagy RAM számára elkülönített, és így ha most Enter, 1050 00:43:01,860 --> 00:43:04,640 hogy a program ténylegesen ledolgozott, mert mi voltunk a könyvtárban 1051 00:43:04,640 --> 00:43:06,790 és mi tulajdonképpen várható ebben a konkrét esetben. 1052 00:43:06,790 --> 00:43:10,900 De kétségtelenül ebben a félévben, akkor írja legalább egy 1053 00:43:10,900 --> 00:43:13,280 program, amely azt fogja mondani ezeket a szavakat. 1054 00:43:13,280 --> 00:43:16,520 Ne feledje, ez a hét múlva, talán két nap múlva. 1055 00:43:16,520 --> 00:43:18,760 Segmentation fault egy rossz dolog. 1056 00:43:18,760 --> 00:43:21,920 Ez a jelentés az Ön csinál valamit, hogy a számítógép 1057 00:43:21,920 --> 00:43:23,310 nem számítottak. 1058 00:43:23,310 --> 00:43:25,810 És ebben az esetben, ha a programozó, nem számítottak. 1059 00:43:25,810 --> 00:43:27,720 Akárcsak mi ez a halom zokni, voltak különböző 1060 00:43:27,720 --> 00:43:29,520 sarok esetekben volna találkozott. 1061 00:43:29,520 --> 00:43:32,340 Hasonlóképpen programokban, ha nem számít milyen hosszú 1062 00:43:32,340 --> 00:43:33,310 valakinek a neve lesz. 1063 00:43:33,310 --> 00:43:35,890 Vagy mi van, ha van egy rosszindulatú felhasználó, és az ő neve 1064 00:43:35,890 --> 00:43:37,230 valóban nagyon rövid, de ők csak próbál 1065 00:43:37,230 --> 00:43:37,960 A rendetlenség velem? 1066 00:43:37,960 --> 00:43:40,490 Mi lesz a viselkedését a program? 1067 00:43:40,490 --> 00:43:43,930 Nos, ebben az esetben, hogy valami tényleg összeomolhat. 1068 00:43:43,930 --> 00:43:44,750 >> Akkor csináljuk. 1069 00:43:44,750 --> 00:43:46,860 90 perc alatt, ez egy szörnyű hosszú idő 1070 00:43:46,860 --> 00:43:47,780 tenni számítástechnika. 1071 00:43:47,780 --> 00:43:49,550 Miért nem jutunk be a szokása vesz egy öt perces 1072 00:43:49,550 --> 00:43:51,520 szünet van, és amikor visszajön, akkor belevetik magukat bizonyos 1073 00:43:51,520 --> 00:43:53,430 bonyolultabb és vonzó programokat? 1074 00:43:53,430 --> 00:43:54,680 Öt perc. 1075 00:43:56,910 --> 00:43:58,160 >> Rendben van. 1076 00:44:01,138 --> 00:44:02,780 Tehát egy gyors megjegyzést. 1077 00:44:02,780 --> 00:44:05,590 Azt mondják, hogy bár ez volt a képernyő előtt, milyen 1078 00:44:05,590 --> 00:44:08,880 kijött az én számból volt cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Ez helyes. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Tehát most akkor próbáld RSVPing erre a / ebéd. 1081 00:44:16,030 --> 00:44:16,980 De tegyük ezt most. 1082 00:44:16,980 --> 00:44:20,150 Szóval ez volt a szuper gyors, szuper új egy csomó emberek. 1083 00:44:20,150 --> 00:44:21,560 Régi kalap egyes emberek. 1084 00:44:21,560 --> 00:44:24,930 Szóval visszatekeréshez egy pillanatra, és hogyan jutottunk 1085 00:44:24,930 --> 00:44:29,350 ez a hello world kimenet csak egy pillanattal ezelőtt. 1086 00:44:29,350 --> 00:44:31,780 >> Tehát az első, itt van ez a CS50 gép. 1087 00:44:31,780 --> 00:44:34,270 Ismét, szoftver, problémamegoldás készlet 1 fogja mondani 1088 00:44:34,270 --> 00:44:36,610 hogyan kell letölteni, ha le, mit kell kattintani 1089 00:44:36,610 --> 00:44:37,430 és így tovább. 1090 00:44:37,430 --> 00:44:39,670 És ha egyszer kövessék ezeket az utasításokat, akkor képes lesz arra 1091 00:44:39,670 --> 00:44:42,840 hogy maximalizálja az ablakot, és a Mac vagy PC fog kinézni a 1092 00:44:42,840 --> 00:44:43,910 kis valami ilyesmi. 1093 00:44:43,910 --> 00:44:47,170 A fekete háttér, a saját mappa tetején, ahol az összes 1094 00:44:47,170 --> 00:44:49,850 A fájlok megy, a szemetes, a bal felső sarokban, 1095 00:44:49,850 --> 00:44:51,130 a menü alján. 1096 00:44:51,130 --> 00:44:54,010 Szóval megint szép szellemükben hasonlóak Mac OS vagy Windows, 1097 00:44:54,010 --> 00:44:56,040 még ha történetesen a Linux. 1098 00:44:56,040 --> 00:44:58,120 Szóval, mit is next csinálni? 1099 00:44:58,120 --> 00:44:59,580 Nos, elkezdtem írni programokat. 1100 00:44:59,580 --> 00:45:02,260 És emlékszem a múlt héten, hogy minden kell ahhoz, hogy írjon egy 1101 00:45:02,260 --> 00:45:04,970 program egy egyszerű szövegszerkesztő, 1102 00:45:04,970 --> 00:45:06,550 mint a Notepad vagy TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Őszintén szólva, azt is a Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 De a rossz dolgok előbb-utóbb történni, mert ez egy nagyon 1105 00:45:11,170 --> 00:45:13,930 keménykezű megoldás írt egy programot, és ez lesz 1106 00:45:13,930 --> 00:45:15,400 mentse el a rossz formátumban. 1107 00:45:15,400 --> 00:45:18,150 De ez csak egy szövegszerkesztő, szövegszerkesztő, ez minden, ami 1108 00:45:18,150 --> 00:45:19,390 szükséges, hogy írjon egy programot. 1109 00:45:19,390 --> 00:45:23,420 >> Így a CS50 Appliance, akkor ezt egy egyszerű módon. 1110 00:45:23,420 --> 00:45:25,580 Mi csak kattintson erre az ikonra a bal alsó sarokban. 1111 00:45:25,580 --> 00:45:28,790 És ismét, problémamegoldás készlet 1 tájékoztatni fogja Önt erre, és íme - 1112 00:45:28,790 --> 00:45:31,210 megkapod ezt a fekete-fehér felület, ahol meg tudjuk kezdeni 1113 00:45:31,210 --> 00:45:32,160 kódot írni. 1114 00:45:32,160 --> 00:45:34,960 Szóval kezdjük el beírni a szuper egyszerű program újra. 1115 00:45:34,960 --> 00:45:38,890 Én megyek fel Fájl, Mentés, és én fogom hívni 1116 00:45:38,890 --> 00:45:42,870 ez, mondjuk, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 És Én csak azt mondom, ha rákattint a jharvard, helyezze 1118 00:45:45,410 --> 00:45:46,750 saját home könyvtár, nem igazán érdekel 1119 00:45:46,750 --> 00:45:47,980 ha ez megy. 1120 00:45:47,980 --> 00:45:49,090 És akkor a Mentés gombra. 1121 00:45:49,090 --> 00:45:50,880 És most lehet kezdeni írni a programot. 1122 00:45:50,880 --> 00:45:53,560 És emlékszem a korábbi, hogy kell írni int 1123 00:45:53,560 --> 00:45:55,400 main (void). 1124 00:45:55,400 --> 00:45:57,000 Nagyítás a bal felső sarokban. 1125 00:45:57,000 --> 00:46:02,670 És akkor azt akarom mondani printf, hogy kettő. 1126 00:46:02,670 --> 00:46:05,690 És most egy újsor, becsuk idézet, close 1127 00:46:05,690 --> 00:46:07,820 zárójel, pontosvessző. 1128 00:46:07,820 --> 00:46:10,560 És aztán menj le ide, hogy a terminál ablak, hogy ez 1129 00:46:10,560 --> 00:46:12,840 beágyazott gedit, csak az egyszerűség kedvéért. 1130 00:46:12,840 --> 00:46:15,200 És én megyek előre, és levelet, hogy hello, de nem 1131 00:46:15,200 --> 00:46:17,500 helló egyedül, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Szóval a fájl hívják hello2.c. A fájl ezért 1133 00:46:20,490 --> 00:46:23,510 fel kell kérni hello2, ebben az esetben. 1134 00:46:23,510 --> 00:46:26,490 A fenébe, mit csináltam rosszul? 1135 00:46:26,490 --> 00:46:29,490 Rendben, szóval egyértelműen kimaradt egy sort, ha felidézni, mit 1136 00:46:29,490 --> 00:46:31,020 Korábbi programok kinézni. 1137 00:46:31,020 --> 00:46:32,480 De lássuk, ha nem tudjuk ugratni e egymástól. 1138 00:46:32,480 --> 00:46:35,310 Sajnos, a legtöbb ember, aki írni a programokat, amelyek 1139 00:46:35,310 --> 00:46:38,820 írunk programok nem egyszerűsíti a dolgokat minden jól. 1140 00:46:38,820 --> 00:46:41,520 Tehát, hogy milyen sovány, hogy mit nem igazán teszi 1141 00:46:41,520 --> 00:46:44,050 érezni itt, és hátha tudunk kitalálni, hogy mi a baj. 1142 00:46:44,050 --> 00:46:46,700 Az első sorban ott azt mondja, hallgatólagosan nyilvánító C 1143 00:46:46,700 --> 00:46:49,310 printf könyvtári függvény típusú int. 1144 00:46:49,310 --> 00:46:51,210 OK, megértettem része az. 1145 00:46:51,210 --> 00:46:54,570 De úgy tűnik, hogy utal arra a tényre, hogy én használt printf 1146 00:46:54,570 --> 00:46:55,700 rossz, valahogy. 1147 00:46:55,700 --> 00:46:56,930 És mi értelme van baj? 1148 00:46:56,930 --> 00:46:59,970 Csak nem tanítják a számítógépet, hogy ez egy fájlban 1149 00:46:59,970 --> 00:47:01,420 hívott stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Most már csak azt kell megjegyeznünk éppen most, hogy a printf 1151 00:47:04,120 --> 00:47:06,540 A stdio.h, és valóban nem lesz más 1152 00:47:06,540 --> 00:47:08,900 működik, hogy az ugyanabban a fájlban, hogy mi fog szokni. 1153 00:47:08,900 --> 00:47:12,490 >> És most hadd menjek előre, és nyomja meg a Ctrl-L, hogy csak egyértelmű, hogy 1154 00:47:12,490 --> 00:47:16,050 el, hogy futtassa újra hello2, és íme. 1155 00:47:16,050 --> 00:47:19,490 És ez parancs ismét sokkal összetettebb, mint mi magyarázza a 1156 00:47:19,490 --> 00:47:20,520 mai célokra. 1157 00:47:20,520 --> 00:47:23,570 De ez nem fut csenget, és a csengés úgy forráskód és 1158 00:47:23,570 --> 00:47:24,870 kiköpi 0s és 1s. 1159 00:47:24,870 --> 00:47:28,610 És ezek 0s és 1s ebben az esetben nevezzük mi? 1160 00:47:28,610 --> 00:47:29,470 Oké, kifogást kódot. 1161 00:47:29,470 --> 00:47:32,210 És a fájlt, ők hívják, szóval, 1162 00:47:32,210 --> 00:47:33,820 hello2, ebben az esetben. 1163 00:47:33,820 --> 00:47:37,040 Mert a szöveges fájl volt hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 És most már, hogy két felkiáltójel, felkiáltás 1165 00:47:39,820 --> 00:47:41,880 pont, felkiáltójel. 1166 00:47:41,880 --> 00:47:45,430 Rendben, így már most a képességét, hogy húrok, 1167 00:47:45,430 --> 00:47:46,280 látszólag. 1168 00:47:46,280 --> 00:47:48,190 Nos, mi mást kapunk a felhasználók? 1169 00:47:48,190 --> 00:47:51,010 >> Nos, a CS50 könyvtárban, van más funkciókat, 1170 00:47:51,010 --> 00:47:53,300 megy, hogy egyszerűsítse az életünket ezek az első néhány napban. 1171 00:47:53,300 --> 00:47:56,350 GetChar, GetDouble, getFloat, getInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, getString. 1173 00:47:57,290 --> 00:47:59,550 Nos, összeszedi le a legkönnyebben e először. 1174 00:47:59,550 --> 00:48:01,430 GetString szó csinálja. 1175 00:48:01,430 --> 00:48:04,210 Csak ül ott, arra várva, hogy a felhasználó adja meg valamit, 1176 00:48:04,210 --> 00:48:07,170 és amint azt írja valamit, és nyomja meg az Enter, akkor 1177 00:48:07,170 --> 00:48:08,860 csinál valamit ezzel az értékkel. 1178 00:48:08,860 --> 00:48:11,700 Akkor menjünk vissza, hogy például, hogy pontosan milyen 1179 00:48:11,700 --> 00:48:12,950 GetString csinál. 1180 00:48:12,950 --> 00:48:17,445 Hadd menjek előre, és nyissa fel a gedit, hello.c és visszahívása 1181 00:48:17,445 --> 00:48:20,590 ezt a jogot a szünet előtt, ez az, ahol abbahagytuk. 1182 00:48:20,590 --> 00:48:23,240 >> Szóval most ugratni ezt szét egy kicsit részletesebben. 1183 00:48:23,240 --> 00:48:27,190 Szóval line 6, van két dolog 1184 00:48:27,190 --> 00:48:28,450 történik abban a pillanatban. 1185 00:48:28,450 --> 00:48:32,630 Az egyenlőségjel kerül elválasztó első fele és második fele. 1186 00:48:32,630 --> 00:48:34,670 Tehát a bal oldali az egyenlőségjel vagyunk 1187 00:48:34,670 --> 00:48:35,580 mondván karakterlánc s. 1188 00:48:35,580 --> 00:48:37,580 És akkor, csak a laikus szempontból, mi a karakterlánc s 1189 00:48:37,580 --> 00:48:41,040 csinálsz, mit gondolsz? 1190 00:48:41,040 --> 00:48:42,990 Ez létrehozása mi? 1191 00:48:42,990 --> 00:48:44,930 Szóval ez létre egy string nevű s. 1192 00:48:44,930 --> 00:48:46,370 Most mit jelent ez valójában? 1193 00:48:46,370 --> 00:48:51,540 Nos, ez fenn helyet egy string nevű s. 1194 00:48:51,540 --> 00:48:52,490 Ez nem egészen igaz. 1195 00:48:52,490 --> 00:48:53,120 Mit keres ez? 1196 00:48:53,120 --> 00:48:55,400 Nos számítógépek, mint tudod, van merevlemez, ez az, ahol 1197 00:48:55,400 --> 00:48:56,300 A fájlok. 1198 00:48:56,300 --> 00:48:59,100 Számítógépek RAM, és ez az, ahol a betöltött programok 1199 00:48:59,100 --> 00:49:00,240 miközben ezek futnak. 1200 00:49:00,240 --> 00:49:02,470 Tehát, ha duplán kattint egy ikonra, és a Microsoft Word megnyitja 1201 00:49:02,470 --> 00:49:06,380 fel, Microsoft Word fut, hogy úgy mondjam, a RAM-ban, amely a 1202 00:49:06,380 --> 00:49:08,160 elektronikus része a számítógép. 1203 00:49:08,160 --> 00:49:10,660 Nem a fizikai, mechanikus részét ez fonás, ahol a 1204 00:49:10,660 --> 00:49:12,640 adatok általában tárolja hosszú távon. 1205 00:49:12,640 --> 00:49:15,810 Tehát karakterlánc s nagyjából azt mondja a számítógép nekem 1206 00:49:15,810 --> 00:49:18,150 elegendő RAM, hogy elférjen egy string. 1207 00:49:18,150 --> 00:49:20,450 Most, hogy egy kicsit leegyszerűsítés, mert a 1208 00:49:20,450 --> 00:49:22,300 mekkora az a karakterlánc lesz? 1209 00:49:22,300 --> 00:49:24,410 Nos, igazából nem tudom még, így az elkövetkezendő hetek során 1210 00:49:24,410 --> 00:49:27,290 mi valójában húzza vissza a réteg, amely string és 1211 00:49:27,290 --> 00:49:28,510 mi megmondjuk, hogy mi is valójában. 1212 00:49:28,510 --> 00:49:31,050 String, most, csak egy szép egyszerűsítését világunkat. 1213 00:49:31,050 --> 00:49:35,700 De karakterlánc s nyilatkozik egy string nevű s, most. 1214 00:49:35,700 --> 00:49:36,520 Kinyilvánítja egy string. 1215 00:49:36,520 --> 00:49:39,310 Ez fenntartja magának helyet a RAM a húr a felhasználó 1216 00:49:39,310 --> 00:49:40,150 körülbelül beírni. 1217 00:49:40,150 --> 00:49:41,840 >> Most nézzük meg a jobb oldali az egyenlőségjel. 1218 00:49:41,840 --> 00:49:44,110 Szóval azt mondja, getString (). 1219 00:49:44,110 --> 00:49:45,070 És egy kis józanság megtekintéséhez. 1220 00:49:45,070 --> 00:49:47,940 Az a tény, hogy nincs semmi belül a zárójelben 1221 00:49:47,940 --> 00:49:50,810 azt mi getString? 1222 00:49:50,810 --> 00:49:52,180 Ez nem veszi érveket. 1223 00:49:52,180 --> 00:49:55,290 Ez azt jelenti, nem tudja befolyásolni a viselkedést semmilyen módon. 1224 00:49:55,290 --> 00:49:58,940 Minden alkalommal, amikor használja, akkor kap egy húr, és ennyi. 1225 00:49:58,940 --> 00:50:02,210 Ezzel szemben a printf, remélhetőleg a viselkedését nem 1226 00:50:02,210 --> 00:50:03,010 változik minden alkalommal. 1227 00:50:03,010 --> 00:50:05,230 Egyébként ez egy elég használhatatlan nyomtatási funkciót, ha 1228 00:50:05,230 --> 00:50:06,480 ez nem ugyanaz a dolog. 1229 00:50:06,480 --> 00:50:07,970 Ha mindig nyomtat David vagy valami 1230 00:50:07,970 --> 00:50:09,500 tetszőleges egész idő alatt. 1231 00:50:09,500 --> 00:50:11,540 Szóval printf van értelme, hogy egy érvet. 1232 00:50:11,540 --> 00:50:14,240 GetString nincs igazán szüksége az érvet, mert szerettem volna 1233 00:50:14,240 --> 00:50:16,700 kap egy string a felhasználó, és ez a felhasználó, aki megy 1234 00:50:16,700 --> 00:50:19,580 hogy a kínálat a dinamizmus által gépelés különböző levelekben 1235 00:50:19,580 --> 00:50:20,850 minden alkalommal, amikor a billentyűzeten. 1236 00:50:20,850 --> 00:50:23,140 >> Szóval mit getString nem végső soron? 1237 00:50:23,140 --> 00:50:25,080 Gondold azt, hogy ez a kis fekete doboz. 1238 00:50:25,080 --> 00:50:29,340 És ez a fekete doboz nem veszi be, de ha bang 1239 00:50:29,340 --> 00:50:33,240 , ez kiköpi egy karakterlánc, amely a felhasználó által beírt be 1240 00:50:33,240 --> 00:50:36,660 És az a tény, hogy van egy egyenlőségjel ott azt figyelembe 1241 00:50:36,660 --> 00:50:39,890 amit kiköp a jobb oldalon, és tárolja belsejében 1242 00:50:39,890 --> 00:50:41,390 mi van a bal oldalon. 1243 00:50:41,390 --> 00:50:43,470 Tehát egyenlőségjelet itt, hogy valójában nem jelent 1244 00:50:43,470 --> 00:50:46,490 egyenlőség, inkább technikailag jelent feladatot. 1245 00:50:46,490 --> 00:50:49,330 Vegyük az érték a jobb oldalon, és tedd a 1246 00:50:49,330 --> 00:50:51,050 változó a bal oldalon. 1247 00:50:51,050 --> 00:50:52,820 Szóval ez minden, ami történik ott. 1248 00:50:52,820 --> 00:50:55,640 >> Most a 7. sorban, mi hív printf. 1249 00:50:55,640 --> 00:50:58,170 Szóval printf remélhetőleg kezd egy kicsit unalmas már. 1250 00:50:58,170 --> 00:50:59,530 Tehát nyomtatása formázott string. 1251 00:50:59,530 --> 00:51:00,440 Mi a húr? 1252 00:51:00,440 --> 00:51:05,460 Nyomtassa ki: "h-e-l-l-o,% s 1253 00:51:05,460 --> 00:51:07,840 ! \ N ". 1254 00:51:07,840 --> 00:51:10,470 Rendben, mit akarok plug-in% s? 1255 00:51:10,470 --> 00:51:12,960 Szó szerint, függetlenül tárolják s. 1256 00:51:12,960 --> 00:51:15,570 Tehát ebben az esetben, kis józanság csekk, hány érvek nem 1257 00:51:15,570 --> 00:51:16,820 printf tartani? 1258 00:51:19,860 --> 00:51:21,110 Oké, hallottam egyet. 1259 00:51:23,840 --> 00:51:26,330 Hallottam egy újra. 1260 00:51:26,330 --> 00:51:27,730 Két, hallottam kettő. 1261 00:51:27,730 --> 00:51:29,920 És mi van három? 1262 00:51:29,920 --> 00:51:30,450 Oké, három? 1263 00:51:30,450 --> 00:51:30,930 Kiváló. 1264 00:51:30,930 --> 00:51:33,170 Három lehetséges válasz, csak az egyik helyes. 1265 00:51:33,170 --> 00:51:36,390 Szóval érvek ismét befolyásolja a viselkedését a funkciót. 1266 00:51:36,390 --> 00:51:39,380 A múltban a printf nem csak egyetlen érvet. 1267 00:51:39,380 --> 00:51:42,260 "Hello world" volt az egyetlen érv. 1268 00:51:42,260 --> 00:51:45,190 Most azonban, ha ez észre vessző van. 1269 00:51:45,190 --> 00:51:49,600 Ez a vessző kívül van az idézet / idézet vége, ami azt jelenti, 1270 00:51:49,600 --> 00:51:52,170 printf hé, itt jön a második argumentum. 1271 00:51:52,170 --> 00:51:54,240 >> Tehát vesszők a legtöbb programozási nyelven 1272 00:51:54,240 --> 00:51:57,300 külön több érveket. 1273 00:51:57,300 --> 00:51:59,600 Tehát a válasz itt egyáltalán nem egy, mert a 1274 00:51:59,600 --> 00:52:00,390 itt van ez a vessző. 1275 00:52:00,390 --> 00:52:03,680 Tehát minimálisan, printf láthatóan hogy két 1276 00:52:03,680 --> 00:52:04,940 érvek ebben az időben. 1277 00:52:04,940 --> 00:52:07,050 De a lehetőséget egy beugratós kérdés itt az, hogy mi 1278 00:52:07,050 --> 00:52:07,990 erről a vessző? 1279 00:52:07,990 --> 00:52:11,260 Vajon ez azt jelenti, hogy ott valójában három érvek? 1280 00:52:11,260 --> 00:52:13,820 Ez, ez, és ez. 1281 00:52:13,820 --> 00:52:18,820 Tehát nem, mert vessző belsejében a jegyzések, ami 1282 00:52:18,820 --> 00:52:20,890 azt jelenti, hogy tényleg csak egy esztétikai angolul. 1283 00:52:20,890 --> 00:52:23,180 Ennek semmi köze a számát 1284 00:52:23,180 --> 00:52:24,890 érveket ebben a programban. 1285 00:52:24,890 --> 00:52:27,670 Tehát ez a vessző kívül idézőjelek. 1286 00:52:27,670 --> 00:52:28,850 És majd vissza 0-ra. 1287 00:52:28,850 --> 00:52:30,980 Most nézzük csak egyfajta veszi ezt a hit 1288 00:52:30,980 --> 00:52:34,460 ma, és csak azt tudom, hogy amikor a funkciókat kész végrehajtó 1289 00:52:34,460 --> 00:52:37,950 sornyi kódot, akkor általában vissza valamilyen értéket. 1290 00:52:37,950 --> 00:52:42,010 Ebben az esetben, csak azért, mert fontosabb vissza kell térnie az int, 1291 00:52:42,010 --> 00:52:44,320 ez csak az, ahogy a nyelvet C működik. 1292 00:52:44,320 --> 00:52:47,040 >> Szóval, mert semmi sem volt a baj, úgy érzi, ez a program 1293 00:52:47,040 --> 00:52:49,960 finom, csak kemény kódolt return 0. 1294 00:52:49,960 --> 00:52:52,980 De ezzel szemben, és én fogom írni ezt a pszeudo-kód 1295 00:52:52,980 --> 00:52:55,020 Most, akárcsak Joseph tette, amikor megcsináltuk a zokni 1296 00:52:55,020 --> 00:52:56,220 Például a múlt héten. 1297 00:52:56,220 --> 00:53:00,440 Ha valami baj - ez nem a tényleges kód - folytatta 1298 00:53:00,440 --> 00:53:06,570 rossz, majd vissza, mondjuk, 1. 1299 00:53:06,570 --> 00:53:08,770 Else vissza 0-ra. 1300 00:53:08,770 --> 00:53:10,070 Szóval, ez az, ahol megyünk ezzel. 1301 00:53:10,070 --> 00:53:12,090 Ez nem a tényleges C kód, csak pszeudokód. 1302 00:53:12,090 --> 00:53:14,010 De ez, hogyan lehet visszatérni 1303 00:53:14,010 --> 00:53:15,580 különböző lehetséges értékeket. 1304 00:53:15,580 --> 00:53:19,520 De most én csak megyek előre és vissza 0-ra. 1305 00:53:19,520 --> 00:53:24,410 Rendben, bármilyen kérdése eddig a szintaxis, a funkcionalitás, 1306 00:53:24,410 --> 00:53:25,000 vagy a hasonló? 1307 00:53:25,000 --> 00:53:26,280 Igen, vissza. 1308 00:53:26,280 --> 00:53:27,530 >> KÖZÖNSÉG: [hangtalan] 1309 00:53:30,510 --> 00:53:32,210 DAVID Malan: Tud beszélni egy kicsit hangosabban? 1310 00:53:32,210 --> 00:53:34,325 Miért ezt a programot return 0, és? 1311 00:53:34,325 --> 00:53:35,575 KÖZÖNSÉG: [hangtalan] 1312 00:53:39,910 --> 00:53:43,450 DAVID Malan: Oh, ez azért van, mert kaptam lusta, sajnálom. 1313 00:53:43,450 --> 00:53:48,290 No jó tanulmányi válasz, vissza 0-ra. 1314 00:53:48,290 --> 00:53:52,690 Én ilyen megmenteni ezt, mondván technikailag C, ha a fő 1315 00:53:52,690 --> 00:53:55,900 kifejezetten nem ad vissza értéket, 0 kerül vissza 1316 00:53:55,900 --> 00:53:57,730 automatikusan az Ön számára. 1317 00:53:57,730 --> 00:54:00,290 Ami igaz, én nem csak eltüntetésével. 1318 00:54:00,290 --> 00:54:03,270 De kellett volna így. 1319 00:54:03,270 --> 00:54:05,250 Nem érdekes, elvitelre, mint hogy más, mint az én hibám. 1320 00:54:05,250 --> 00:54:06,170 Igen? 1321 00:54:06,170 --> 00:54:08,470 >> KÖZÖNSÉG: Általában, amikor gépel semmis, ez azt jelenti, 1322 00:54:08,470 --> 00:54:10,770 nem tér vissza valamit. 1323 00:54:10,770 --> 00:54:11,420 DAVID Malan: Helyes. 1324 00:54:11,420 --> 00:54:15,800 Ha ehelyett megadja előtt a függvény nevét, a 1325 00:54:15,800 --> 00:54:18,590 Például itt, üres, akkor a függvény 1326 00:54:18,590 --> 00:54:20,480 nem ad vissza semmit. 1327 00:54:20,480 --> 00:54:25,210 És ezért én csak azt mondom, visszatérő vagy semmit, 1328 00:54:25,210 --> 00:54:26,730 és ez összhangban lenne. 1329 00:54:26,730 --> 00:54:27,750 És akkor jön vissza, hogy a. 1330 00:54:27,750 --> 00:54:31,030 És csak FYI, az egyik fogás a tanulási 1331 00:54:31,030 --> 00:54:33,450 programozás egy olyan világban, amely több száz könyv és 1332 00:54:33,450 --> 00:54:36,180 Több száz honlap van fogsz mindig 1333 00:54:36,180 --> 00:54:38,220 látni a különböző szintaxis különböző könyvek 1334 00:54:38,220 --> 00:54:40,220 különböző emberek. 1335 00:54:40,220 --> 00:54:42,100 Ismerd fel, mi megteszünk minden tőlünk telhetőt szakaszban és előadások is 1336 00:54:42,100 --> 00:54:42,960 következetes. 1337 00:54:42,960 --> 00:54:46,660 De néha látni fogja ütköző szintaxist. 1338 00:54:46,660 --> 00:54:48,540 Tehát, ha kétségei vannak, csak kérdez. 1339 00:54:48,540 --> 00:54:51,100 És általában, mi gondoskodunk az előadások és szakaszokban 1340 00:54:51,100 --> 00:54:53,710 szinte mindig jelen azt a helyes utat. 1341 00:54:53,710 --> 00:54:56,070 És azt mondom szinte mindig, mert esete. 1342 00:54:56,070 --> 00:54:56,860 Egyéb kérdés? 1343 00:54:56,860 --> 00:55:01,590 >> KÖZÖNSÉG:% s létezik-e kívül a készülék? 1344 00:55:01,590 --> 00:55:03,710 DAVID Malan:% s létezik-e kívül a készülék? 1345 00:55:03,710 --> 00:55:04,180 Igen. 1346 00:55:04,180 --> 00:55:07,760 Szóval% s köze C. A tény, hogy használja azt a 1347 00:55:07,760 --> 00:55:10,290 A készülék alapvetően semmi köze a 1348 00:55:10,290 --> 00:55:12,080 jellemzői a nyelv mi használ. 1349 00:55:12,080 --> 00:55:15,990 Valóban, a múlt héten, amikor használják a Mac-emet, írtam 1350 00:55:15,990 --> 00:55:17,160 C kód az én Mac. 1351 00:55:17,160 --> 00:55:20,020 Tudtam volna használni% s Mac-emet, és használhatja azt a 1352 00:55:20,020 --> 00:55:22,400 a Windows a számítógép, ha telepíti a fordító, mint 1353 00:55:22,400 --> 00:55:24,070 Visual Studio a Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Szóval% s. 1355 00:55:24,990 --> 00:55:27,860 Minden, amit csinálunk belül ezt az ablakot, hogy ma 1356 00:55:27,860 --> 00:55:31,140 köze C. és alapvetően semmi köze a 1357 00:55:31,140 --> 00:55:33,450 operációs rendszer kérdés. 1358 00:55:33,450 --> 00:55:35,900 Ezzel ellentétben, a fekete-fehér terminál ablak - ha 1359 00:55:35,900 --> 00:55:40,160 Én gépelés dolgokat, mint ls, és rm és cd - 1360 00:55:40,160 --> 00:55:42,020 hogy köze van az operációs rendszer és 1361 00:55:42,020 --> 00:55:43,562 navigáció körül. 1362 00:55:43,562 --> 00:55:44,546 Igen. 1363 00:55:44,546 --> 00:55:46,520 KÖZÖNSÉG: Úgy értettem, a könyvtár, a CS50 könyvtár. 1364 00:55:46,520 --> 00:55:49,960 DAVID Malan: Oké, így ha érted a kulcsszó string, hogy 1365 00:55:49,960 --> 00:55:52,460 csak létezik a CS50 könyvtár helyes. 1366 00:55:52,460 --> 00:55:55,350 Ez nem létezik a C magát, és valóban egy pár 1367 00:55:55,350 --> 00:55:58,220 hét fogjuk eldobni a CS50 könyvtár és indítsa 1368 00:55:58,220 --> 00:56:02,290 dolgokat csinál a semmiből magunkat, hogy úgy mondjam. 1369 00:56:02,290 --> 00:56:02,940 Egyéb kérdés? 1370 00:56:02,940 --> 00:56:04,577 Igen. 1371 00:56:04,577 --> 00:56:05,827 >> KÖZÖNSÉG: [hangtalan] 1372 00:56:09,470 --> 00:56:10,160 DAVID Malan: Jó kérdés. 1373 00:56:10,160 --> 00:56:11,720 Vannak parancsok nagybetűk? 1374 00:56:11,720 --> 00:56:13,710 És hadd tegyen különbséget itt. 1375 00:56:13,710 --> 00:56:15,840 Szóval parancsok általában a dolgok, mi írjuk a 1376 00:56:15,840 --> 00:56:17,940 Az ablak alján, a terminál ablakban. 1377 00:56:17,940 --> 00:56:21,770 Bármi ide lenne nyilatkozatok vagy C kód. 1378 00:56:21,770 --> 00:56:24,490 De mindkét esetben, a válasz ugyanaz, igen. 1379 00:56:24,490 --> 00:56:27,800 Mindkét környezetben, a C-kódot a tetején, és a 1380 00:56:27,800 --> 00:56:29,910 operációs rendszer parancssorban a 1381 00:56:29,910 --> 00:56:31,440 alul, a kis-és nagybetűket. 1382 00:56:31,440 --> 00:56:33,830 Szóval kell kihasználni getString tőkével G, 1383 00:56:33,830 --> 00:56:37,050 tőke S. Be kell írni printf minden kisbetűvel. 1384 00:56:37,050 --> 00:56:39,520 Meg kell adnia ls minden kisbetűvel. 1385 00:56:39,520 --> 00:56:43,260 Így szinte minden helyzetben ebben a félévben, ügy, az 1386 00:56:43,260 --> 00:56:44,820 Tény, hogy számít. 1387 00:56:44,820 --> 00:56:46,148 Igen. 1388 00:56:46,148 --> 00:56:47,398 >> KÖZÖNSÉG: [hangtalan] 1389 00:56:54,770 --> 00:56:56,480 DAVID Malan: Ah, szóval oké, mi lenne, ha volna egy fájlt 1390 00:56:56,480 --> 00:56:57,840 hívott hello.d. 1391 00:56:57,840 --> 00:57:00,090 Így kiderült, hogy D egy programozási nyelv. 1392 00:57:00,090 --> 00:57:02,790 És így néhány esetben, A ténylegesen levelet program 1393 00:57:02,790 --> 00:57:06,190 ezt a fájlt, és azt, hogy az összeállított divat. 1394 00:57:06,190 --> 00:57:09,090 Tudjuk, és valóban, a rövid válasz az, hogy nem tudom. 1395 00:57:09,090 --> 00:57:10,440 Így fogjuk csinálni. 1396 00:57:10,440 --> 00:57:13,040 Hadd menjek előre, és hozzon létre egy új fájlt. 1397 00:57:13,040 --> 00:57:15,580 És a spin itt, őszintén általában is, ha minden kétséget kizáróan 1398 00:57:15,580 --> 00:57:18,130 ebben a félévben, és van, a készülék vagy a számítógép 1399 00:57:18,130 --> 00:57:20,030 nyitni, megy előre, és próbálj ki valami. 1400 00:57:20,030 --> 00:57:23,740 Szóval megyek menteni nevű fájlt hello.d. 1401 00:57:23,740 --> 00:57:25,010 Mentés ezt. 1402 00:57:25,010 --> 00:57:29,070 És fogok futni, hogy helló Enter billentyűt. 1403 00:57:29,070 --> 00:57:31,660 Úgy tűnt, a következtetés, hogy c nagyobb volt a valószínűsége 1404 00:57:31,660 --> 00:57:35,920 mint d, ebben az esetben. 1405 00:57:35,920 --> 00:57:38,046 Egyéb kérdések. 1406 00:57:38,046 --> 00:57:40,456 Igen. 1407 00:57:40,456 --> 00:57:41,706 >> KÖZÖNSÉG: [hangtalan] 1408 00:57:48,170 --> 00:57:49,837 DAVID Malan: Oké, azt mondják, hogy még egyszer. 1409 00:57:49,837 --> 00:57:51,087 KÖZÖNSÉG: [hangtalan] 1410 00:58:04,250 --> 00:58:05,780 DAVID Malan: Hogyan megy a diagnosztizálására, vagy 1411 00:58:05,780 --> 00:58:06,380 hibakeresési útmutatásra van ez? 1412 00:58:06,380 --> 00:58:08,800 Így a legvalószínűbb, mert ők különböző nyelveken 1413 00:58:08,800 --> 00:58:10,280 valószínűleg akkor kap egy teljesen 1414 00:58:10,280 --> 00:58:11,580 különböző program kimeneten. 1415 00:58:11,580 --> 00:58:14,140 Ön kapnánk teljesen különböző hibaüzenetek. 1416 00:58:14,140 --> 00:58:16,750 És azt is csak a tervezés, akkor vitathatatlanul egy 1417 00:58:16,750 --> 00:58:19,140 rossz tervezés határozat írni két különböző 1418 00:58:19,140 --> 00:58:21,510 nyelv majdnem azonos nevű fájlokat, 1419 00:58:21,510 --> 00:58:23,000 pontosan ugyanabban a könyvtárban, amihez 1420 00:58:23,000 --> 00:58:24,550 automatikus eszközzel, mint tenni. 1421 00:58:24,550 --> 00:58:27,750 Szóval én is nyomja vissza, és azt mondják a 15 éves ezt, 1422 00:58:27,750 --> 00:58:29,190 soha ezt a hibát. 1423 00:58:29,190 --> 00:58:30,030 Megtörténhet. 1424 00:58:30,030 --> 00:58:31,190 De van, csak különböző, azt hiszem, 1425 00:58:31,190 --> 00:58:33,180 logisztikai védelem a helyén. 1426 00:58:33,180 --> 00:58:35,440 Plusz a hibaüzenetek vezetne, ez 1427 00:58:35,440 --> 00:58:37,260 végül kiderüljön, mi a kérdés. 1428 00:58:37,260 --> 00:58:39,120 De egy esetleges sarok ügyben. 1429 00:58:39,120 --> 00:58:41,730 >> Rendben, hadd vezessen be, csak egy pár más 1430 00:58:41,730 --> 00:58:45,600 funkciók itt, így tudjuk kezdeni épület fel látna 1431 00:58:45,600 --> 00:58:47,140 és bonyolultabb program. 1432 00:58:47,140 --> 00:58:49,000 Tehát először is, matek. 1433 00:58:49,000 --> 00:58:51,520 Tehát matematikai példák csak ilyen egyszerű az első héten. 1434 00:58:51,520 --> 00:58:53,560 Ez nem azt jelenti, hogy az összes programozási szól 1435 00:58:53,560 --> 00:58:54,390 matematika. 1436 00:58:54,390 --> 00:58:57,890 Természetesen, a megértés különböző vonásai 1437 00:58:57,890 --> 00:58:59,610 matematika, algebra különösen, hogy 1438 00:58:59,610 --> 00:59:00,330 nagyon fontos itt. 1439 00:59:00,330 --> 00:59:03,010 A magasabb szintű CS osztályok, lineáris algebra, 1440 00:59:03,010 --> 00:59:03,920 analízis, és a hasonlók. 1441 00:59:03,920 --> 00:59:06,500 De észre, a legtöbb, amit fogunk tenni ebben a félévben csökkenti a nem 1442 00:59:06,500 --> 00:59:09,230 a matek, és minden bizonnyal nem a számtani, per se, de tényleg 1443 00:59:09,230 --> 00:59:11,570 hogy csak logika és a gondos gondolkodás. 1444 00:59:11,570 --> 00:59:14,310 És így ez a kapcsolat, hogy a számítógép-tudomány már régóta, 1445 00:59:14,310 --> 00:59:16,570 különösen a középiskolai szinten, a matematika, egy 1446 00:59:16,570 --> 00:59:17,370 kissé félrevezető. 1447 00:59:17,370 --> 00:59:20,090 Mivel a legtöbb program, amit írok, de tényleg, a 1448 00:59:20,090 --> 00:59:23,290 egyfajta magasabb szintű és összpontosítás problémákat megoldani, 1449 00:59:23,290 --> 00:59:26,410 Biztos, talán használni néhány összeadás, kivonás, és a különböző 1450 00:59:26,410 --> 00:59:28,650 matematikai képletek vagy a hasonló, 1451 00:59:28,650 --> 00:59:30,860 de a végén a nap, ez a gondolkodásról, és nem 1452 00:59:30,860 --> 00:59:33,240 Csak végrehajtási mit volna elvégezni, mint a TI 1453 00:59:33,240 --> 00:59:35,050 számológép a gimiben. 1454 00:59:35,050 --> 00:59:38,410 >> Tehát azt mondta, most már valamit csinálni ezekkel 1455 00:59:38,410 --> 00:59:40,980 matematikai üzemeltetők léteznek, hogy mi lehet utazásként 1456 00:59:40,980 --> 00:59:43,950 felett néhány Az alapul szolgáló vonatkozásainak programozás, vagy 1457 00:59:43,950 --> 00:59:48,930 Ebben az esetben C. Tehát vannak, mint a CS50 könyvtár javasolta, 1458 00:59:48,930 --> 00:59:51,520 és ma mi csak használ getString -, és egy pillanat alatt 1459 00:59:51,520 --> 00:59:52,940 esetleg egy másik funkció - 1460 00:59:52,940 --> 00:59:55,380 de vannak különböző adat típus egy számítógép. 1461 00:59:55,380 --> 00:59:58,550 A nap végére a számítógépek csak azt tudják 0s és 1s. 1462 00:59:58,550 --> 01:00:01,880 De emlékeztetni arra, hogy a múlt héten beszéltünk a bináris rendszer 1463 01:00:01,880 --> 01:00:05,000 A képviselő számok, mint a szám 0, és 1, és 2, 1464 01:00:05,000 --> 01:00:07,480 egészen a maximum 8, mint Nate képe. 1465 01:00:07,480 --> 01:00:08,840 És akkor mi is számít sokkal nagyobb, mint mi 1466 01:00:08,840 --> 01:00:10,000 tette a színpadon van. 1467 01:00:10,000 --> 01:00:15,660 De ha azt akarjuk, hogy képviselje nemcsak számokat, hanem betűket, 1468 01:00:15,660 --> 01:00:18,240 mi, az emberek, van, hogy dolgozzon ki néhány önkényes 1469 01:00:18,240 --> 01:00:21,180 egyezmények, ahol, ha a végén a nap az én számítógép 1470 01:00:21,180 --> 01:00:24,260 még az a képesség, hogy kifejezze 0s és 1s, nos mi lenne jobb 1471 01:00:24,260 --> 01:00:27,990 kezdeni szabványosítása minták 0s és 1s képviselő 1472 01:00:27,990 --> 01:00:28,800 különböző dolog. 1473 01:00:28,800 --> 01:00:32,370 A minta 0s és 1s, amely képviseli a levelet a. 1474 01:00:32,370 --> 01:00:34,840 Patterns of 0s és 1s, hogy képviselje a levél z. 1475 01:00:34,840 --> 01:00:37,600 Patterns of 0s és 1s, hogy képviselje a kék szín, vagy 1476 01:00:37,600 --> 01:00:38,600 vörös, vagy a hasonlók. 1477 01:00:38,600 --> 01:00:42,360 Meg kell, hogy minden ilyen 0s és 1s kifejezni magunkat 1478 01:00:42,360 --> 01:00:45,140 különböző kontextusokban, különböző módokon, amelyek nem 1479 01:00:45,140 --> 01:00:46,470 szükségképpen numerikus. 1480 01:00:46,470 --> 01:00:51,150 >> Így a képviselet tekintetében, a C különböző adattípusok 1481 01:00:51,150 --> 01:00:52,550 és láttunk egy ilyen eddig. 1482 01:00:52,550 --> 01:00:54,940 Láttuk int, és figyelje meg mi nem a képernyőn 1483 01:00:54,940 --> 01:00:56,140 most az string. 1484 01:00:56,140 --> 01:00:58,550 Karakterlánc nem, sőt, léteznek C. Ismét, ez egy 1485 01:00:58,550 --> 01:01:00,610 egyszerűsítés vagyunk bemutató az első 1486 01:01:00,610 --> 01:01:01,570 pár hétig. 1487 01:01:01,570 --> 01:01:03,770 A karakter egy egyéni jellegű. 1488 01:01:03,770 --> 01:01:07,050 Az úszó egy valós szám, a tizedes pont és számok 1489 01:01:07,050 --> 01:01:09,066 a bal és a jobb oldalán. 1490 01:01:09,066 --> 01:01:16,040 A kettős, amit, azok számára, akik vissza korábbi háttérben? 1491 01:01:16,040 --> 01:01:19,720 Tehát egy kettős kétszer valami. 1492 01:01:19,720 --> 01:01:21,240 Ad kétszer annyi pontossággal. 1493 01:01:21,240 --> 01:01:22,440 Szóval mit jelent ez? 1494 01:01:22,440 --> 01:01:26,090 Így minden, ezekben az esetekben a világ fajta szabványosított 1495 01:01:26,090 --> 01:01:27,960 hány bitet használnak az 1496 01:01:27,960 --> 01:01:29,160 Minden ilyen dolgokat. 1497 01:01:29,160 --> 01:01:31,590 Tehát, ha már figyelte Nate ASCII videó már egy része 1498 01:01:31,590 --> 01:01:36,170 A Pset 0, vagy később ezen a héten lesz, akkor valószínűleg tudja, 1499 01:01:36,170 --> 01:01:37,450 hogy az ASCII - 1500 01:01:37,450 --> 01:01:38,610 karakter képviseletek - 1501 01:01:38,610 --> 01:01:40,670 használja hány bit? 1502 01:01:40,670 --> 01:01:43,410 És talán még emlékeznek a mi demo a múlt héten, hogy milyen 1503 01:01:43,410 --> 01:01:45,500 sokan voltak a színpadon. 1504 01:01:45,500 --> 01:01:46,840 Így 7 vagy 8, jellemzően. 1505 01:01:46,840 --> 01:01:49,230 Tehát általában 8, és van valami úgynevezett kiterjesztett 1506 01:01:49,230 --> 01:01:51,240 ASCII használó minden 8 bit, 7 helyett. 1507 01:01:51,240 --> 01:01:54,710 De általában, Beszélhetnénk 2 hatványai, így ebben az esetben, 8. 1508 01:01:54,710 --> 01:01:58,900 Tehát egy char egy programozási nyelv, általában 8 bit. 1509 01:01:58,900 --> 01:02:02,550 Tehát egy int általában 32 bit. 1510 01:02:02,550 --> 01:02:04,810 Az úszó általában 32 bit. 1511 01:02:04,810 --> 01:02:08,060 A kettős általában 64 bit. 1512 01:02:08,060 --> 01:02:08,870 És mit jelent ez? 1513 01:02:08,870 --> 01:02:11,500 Ez azt jelenti, hogy képviselje nagyobb számokat, vagy abban az esetben, 1514 01:02:11,500 --> 01:02:15,490 a valós számok, akkor már sokkal több szám után 1515 01:02:15,490 --> 01:02:16,240 tizedesjegy pontossággal. 1516 01:02:16,240 --> 01:02:18,980 Sokkal pontosabb, ebben az esetben. 1517 01:02:18,980 --> 01:02:21,780 Most egy hosszú, hosszú sajnos nevét. 1518 01:02:21,780 --> 01:02:24,340 Szóval van egy int, amely 32 biten. 1519 01:02:24,340 --> 01:02:29,800 Van egy hosszú, amely, dehogy, 32 bit. 1520 01:02:29,800 --> 01:02:32,610 És egy hosszú, hosszú, amely 64 bit. 1521 01:02:32,610 --> 01:02:34,830 Azonban néhány ezek környezetfüggő, ez attól függ, 1522 01:02:34,830 --> 01:02:36,190 Milyen számítógépre van. 1523 01:02:36,190 --> 01:02:40,510 Tehát általánosságban, akkor adja meg a házi feladat vagy kvíz, amikor 1524 01:02:40,510 --> 01:02:41,180 valójában számít. 1525 01:02:41,180 --> 01:02:43,080 De a lényeg ott van mindezen különböző 1526 01:02:43,080 --> 01:02:44,250 ábrázolások itt. 1527 01:02:44,250 --> 01:02:45,950 >> Szóval tényleg belevetik magukat a program. 1528 01:02:45,950 --> 01:02:48,300 Ahelyett, hogy levelet ez a semmiből, hadd menjek előre 1529 01:02:48,300 --> 01:02:50,940 és nyissa ki a mai forráskódját - minden, ami 1530 01:02:50,940 --> 01:02:54,980 online - ha azt szeretnénk, hogy bütykölni körül online, vagy megtérülése 1531 01:02:54,980 --> 01:02:57,120 Szerdán a készüléket a számítógépre, utasítások 1532 01:02:57,120 --> 01:02:59,160 amelyek össze fogja kapcsolni a kurzus honlapján. 1533 01:02:59,160 --> 01:03:00,830 Itt egy szuper egyszerű program. 1534 01:03:00,830 --> 01:03:02,520 De van egy kis valami újat a tetején, hogy 1535 01:03:02,520 --> 01:03:03,650 nem volt korábban. 1536 01:03:03,650 --> 01:03:05,800 Egy csomó kék sornyi szöveget. 1537 01:03:05,800 --> 01:03:08,410 Tehát ezek a kék vonalak hozzászólás. 1538 01:03:08,410 --> 01:03:10,620 Szóval ez nagyon hasznos a program, hogy képes legyen írni 1539 01:03:10,620 --> 01:03:13,160 néhány megjegyzést saját magának, illetve a kollégák, vagy barátok, vagy 1540 01:03:13,160 --> 01:03:15,700 tanítási fickók, hogy az a fajta írni mi folyik 1541 01:03:15,700 --> 01:03:18,500 ezt a fájlt, de semmi köze a C kódot is. 1542 01:03:18,500 --> 01:03:20,860 Semmi köze a program funkcionálisan, ez csak 1543 01:03:20,860 --> 01:03:21,760 esztétika. 1544 01:03:21,760 --> 01:03:24,580 Tehát úgy, ahogy ezt a C akkor általában kezdeni a 1545 01:03:24,580 --> 01:03:29,860 észrevételek / *, és akkor vége a észrevételek 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 És ha tényleg anális és szeretném felhívni a fajta képek, 1548 01:03:34,140 --> 01:03:35,870 akkor azt, hogy egy csomó csillagok, akkor azt, hogy egy 1549 01:03:35,870 --> 01:03:36,970 kis doboz, mint ez. 1550 01:03:36,970 --> 01:03:37,990 De mindez nem számít. 1551 01:03:37,990 --> 01:03:40,230 Az egyetlen dolog, ami számít, az első 1552 01:03:40,230 --> 01:03:41,620 és az utolsó. 1553 01:03:41,620 --> 01:03:43,820 Ezt hívják többsoros megjegyzést. 1554 01:03:43,820 --> 01:03:46,610 És ez csak az emberi konvenció, hogy gyakran a csillagok és a doboz 1555 01:03:46,610 --> 01:03:48,420 dolgok, mint ez, ha sok szabad időt. 1556 01:03:48,420 --> 01:03:51,550 >> Szóval, miután írt néhány megjegyzést, általában, gyere 1557 01:03:51,550 --> 01:03:53,160 tényleges belek a program. 1558 01:03:53,160 --> 01:03:55,630 Itt a megszokott # include . 1559 01:03:55,630 --> 01:04:00,410 És csak gyors, ez szükséges vagy nem szükséges? 1560 01:04:00,410 --> 01:04:02,860 KÖZÖNSÉG: Szükséges. 1561 01:04:02,860 --> 01:04:04,390 DAVID Malan: Tehát ez valójában nem szükséges. 1562 01:04:04,390 --> 01:04:07,070 Akkor miért, bár, ez nem szükséges? 1563 01:04:07,070 --> 01:04:08,170 Szóval nincs printf. 1564 01:04:08,170 --> 01:04:08,510 Valóban. 1565 01:04:08,510 --> 01:04:10,470 Minden, amit csinálunk ebben a programban a matematika. 1566 01:04:10,470 --> 01:04:11,640 Szóval valóban törölni azt. 1567 01:04:11,640 --> 01:04:14,330 Szóval nem mindig fel semmit 1568 01:04:14,330 --> 01:04:15,420 a tetején a program. 1569 01:04:15,420 --> 01:04:17,020 >> Szóval ez egy kicsit egyszerűsíteni. 1570 01:04:17,020 --> 01:04:18,650 És most észre, hogy mi ez a program nem. 1571 01:04:18,650 --> 01:04:19,920 Nem sok érdekes. 1572 01:04:19,920 --> 01:04:21,410 int x = 1. 1573 01:04:21,410 --> 01:04:22,550 Nos, mi ez csinál? 1574 01:04:22,550 --> 01:04:25,130 Nos, gondolom, vissza a mentális modell előtt. 1575 01:04:25,130 --> 01:04:27,500 A bal oldali ez a kifejezés mit csinál? 1576 01:04:31,440 --> 01:04:32,830 Hozzon létre hely egész. 1577 01:04:32,830 --> 01:04:33,930 Szóval, mennyi helyet? 1578 01:04:33,930 --> 01:04:36,980 Nos, történetesen most már tudom, hogy ez 32 bites. 1579 01:04:36,980 --> 01:04:40,070 Korábban egy string műszakilag 32 bit, de több 1580 01:04:40,070 --> 01:04:40,950 az, hogy a jövőben. 1581 01:04:40,950 --> 01:04:42,240 De egy int a 32 bit. 1582 01:04:42,240 --> 01:04:45,590 Tehát ez a kifejezés, a bal oldalon van, int x, csak azt mondja, hey 1583 01:04:45,590 --> 01:04:48,490 operációs rendszer, adj 32 bit RAM - 1584 01:04:48,490 --> 01:04:50,450 más néven 4 bájtja RAM - 1585 01:04:50,450 --> 01:04:53,930 így tudom rakni egész szám, hogy a tér. 1586 01:04:53,930 --> 01:04:55,330 Mit integer akartál tenni? 1587 01:04:55,330 --> 01:04:56,640 Nos, csak az 1-es szám. 1588 01:04:56,640 --> 01:04:59,530 int y kap 2, nem pontosan ugyanaz a dolog, még ha a 1589 01:04:59,530 --> 01:05:02,160 szám nagyobb, tekintve annak nagyságát. 1590 01:05:02,160 --> 01:05:04,790 A szám maga is csak 32 bit. 1591 01:05:04,790 --> 01:05:06,520 Ez csak a minta bitek különbözik 1592 01:05:06,520 --> 01:05:08,260 képviselnek 1 versus 2. 1593 01:05:08,260 --> 01:05:11,980 int z most azt mondja nekem egy 32 bites, hívja z, és helyezze a 1594 01:05:11,980 --> 01:05:14,210 összegzése 1-2-ott. 1595 01:05:14,210 --> 01:05:18,050 Így, hogy most z vélhetően tárolja az érték 3, 1596 01:05:18,050 --> 01:05:19,360 , majd vissza 0-ra. 1597 01:05:19,360 --> 01:05:23,020 >> Most ez a program, nem is csinál semmit érdekes? 1598 01:05:23,020 --> 01:05:26,170 Tehát ez valójában nem csinál semmit érdekes, minden 1599 01:05:26,170 --> 01:05:28,450 értelme, mert miért? Ez csinál valami matek. 1600 01:05:28,450 --> 01:05:30,590 De ez nem vissza a válasz, igaz. 1601 01:05:30,590 --> 01:05:31,790 Ez visszatérő 0. 1602 01:05:31,790 --> 01:05:33,440 Ez nem nyomtat a választ. 1603 01:05:33,440 --> 01:05:35,760 Szóval ez a program alapvetően értéktelen, mert 1604 01:05:35,760 --> 01:05:36,350 áll most. 1605 01:05:36,350 --> 01:05:37,220 Ez csinál valami munkát. 1606 01:05:37,220 --> 01:05:39,530 Ez fog tartani bizonyos számú másodperc, vagy ezredmásodperc, a 1607 01:05:39,530 --> 01:05:41,510 futni, de ez valójában nem csinál semmit 1608 01:05:41,510 --> 01:05:42,770 hasznos az emberi. 1609 01:05:42,770 --> 01:05:46,810 >> Úgyhogy tulajdonképpen most nyissuk math2, ahol most vagyok, tényleg 1610 01:05:46,810 --> 01:05:48,250 nyomtatás az eredményt. 1611 01:05:48,250 --> 01:05:51,260 Szóval ez is lehet következtetni az előző példákban. 1612 01:05:51,260 --> 01:05:54,320 Ha azt akarom, hogy néhány egyszerű matematika, int x = 1, y 1613 01:05:54,320 --> 01:05:56,820 = 2. z = 1 plusz 2 most. 1614 01:05:56,820 --> 01:05:59,240 Mit fog ez kinyomtatni nyilvánvalóan? 1615 01:05:59,240 --> 01:06:00,120 Mindössze 3. 1616 01:06:00,120 --> 01:06:01,590 Így gyorsan józanság megtekintéséhez. 1617 01:06:01,590 --> 01:06:03,830 Hadd helyezze ebbe a könyvtárba. 1618 01:06:03,830 --> 01:06:06,480 Szóval cd source1m. 1619 01:06:06,480 --> 01:06:09,370 Hadd menjek előre, és írja be, hogy math2. 1620 01:06:09,370 --> 01:06:11,510 Nincs hiba üzenet jött ki, úgyhogy hadd futni - 1621 01:06:11,510 --> 01:06:14,800 Nem a.out--Hadd futni math2. Az Enter billentyűt. 1622 01:06:14,800 --> 01:06:16,750 És valóban, a kinyomtatott 3. 1623 01:06:16,750 --> 01:06:18,460 Nos, vessünk egy pillantást egy változata ez. 1624 01:06:18,460 --> 01:06:23,870 A math3.c, most már ezt a példát itt. 1625 01:06:23,870 --> 01:06:26,540 >> Szóval ez az ember ilyen érdekes. 1626 01:06:26,540 --> 01:06:32,000 Tehát ez itt, választ fog kapni 1 osztva 10, 1627 01:06:32,000 --> 01:06:33,910 , és vegyük észre, amit bejelentett, mint egy úszó. 1628 01:06:33,910 --> 01:06:35,200 Miért akarom, hogy legyen egy float? 1629 01:06:35,200 --> 01:06:36,110 Nos, ez a frakció. 1630 01:06:36,110 --> 01:06:37,140 Ez lesz a valós szám. 1631 01:06:37,140 --> 01:06:40,970 Így lesz 0,1, remélhetőleg - 10%, ebben az esetben. 1632 01:06:40,970 --> 01:06:42,610 És mit tegyek majd szeretnék nyomtatni? 1633 01:06:42,610 --> 01:06:43,440 Nos, ez a válasz. 1634 01:06:43,440 --> 01:06:44,760 Nos, kötekedik ezeket szét először. 1635 01:06:44,760 --> 01:06:47,020 Tehát a bal oldali nyilvánítja a 1636 01:06:47,020 --> 01:06:49,410 úszó, hívjuk választ. 1637 01:06:49,410 --> 01:06:52,280 A jobb oldal, DO 1 osztva 10, és tegye azt 1638 01:06:52,280 --> 01:06:54,370 answer belül a változó. 1639 01:06:54,370 --> 01:06:56,410 Nos, úgy néz ki, ez a vonal egy kicsit rejtélyes. 1640 01:06:56,410 --> 01:06:59,440 De észre néhány ismerős funkciók. % Azt jelenti, itt jön a 1641 01:06:59,440 --> 01:07:00,490 helyőrző. 1642 01:07:00,490 --> 01:07:03,230 f: az itt van egy lebegőpontos érték, csak egy igazi 1643 01:07:03,230 --> 01:07:05,490 számot, valami tizedespont. 1644 01:07:05,490 --> 01:07:07,330 0,2 mit jelent? 1645 01:07:07,330 --> 01:07:10,740 Bárki, aki tudja az előzetes tapasztalata? 1646 01:07:10,740 --> 01:07:12,010 Két tizedesjegy pontossággal. 1647 01:07:12,010 --> 01:07:14,050 Tehát nem láttam ilyet, de ez csak egy módja 1648 01:07:14,050 --> 01:07:16,360 gyakorlása egy kicsit több beleszólásuk printf és 1649 01:07:16,360 --> 01:07:20,840 mondás ne adj 30 pontot a tizedespont után, 1650 01:07:20,840 --> 01:07:22,490 ahelyett, adj mindössze 2. 1651 01:07:22,490 --> 01:07:23,960 >> És akkor menjünk előre, és fuss ez. 1652 01:07:23,960 --> 01:07:30,160 Tehát, hogy matek 3, és most hadd futni matek 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 És ez nem helyes. 1654 01:07:34,630 --> 01:07:37,390 Úgy tűnik, találkozott az első igazi bug. 1655 01:07:37,390 --> 01:07:39,400 Nos, talán én csak nem keres elég közel. 1656 01:07:39,400 --> 01:07:41,960 Akkor engedj el ide, hadd tegye 20 tizedes 1657 01:07:41,960 --> 01:07:43,300 pont helyen van. 1658 01:07:43,300 --> 01:07:47,950 És hadd fordítani e, hogy math3, fuss. 1659 01:07:47,950 --> 01:07:50,960 Pretty Biztos 1 osztva 10 nem 0-ra. 1660 01:07:50,960 --> 01:07:54,270 Szóval, mi folyik itt? 1661 01:07:54,270 --> 01:07:56,740 Hát oké, így valójában nincs köze ehhez. 1662 01:07:56,740 --> 01:07:57,600 Ez egy jó gondolat. 1663 01:07:57,600 --> 01:07:59,140 Ez tényleg csak egy véletlen egybeesés 1664 01:07:59,140 --> 01:08:00,220 hogy ezt csináljuk. 1665 01:08:00,220 --> 01:08:02,010 De csak annak bizonyítására, hogy ez nem igaz, én 1666 01:08:02,010 --> 01:08:03,160 vissza valami véletlenszerű. 1667 01:08:03,160 --> 01:08:05,160 Ne csináld ezt otthon, mert ez csak rossz. 1668 01:08:05,160 --> 01:08:08,000 De hogy math3, hadd futtatni. 1669 01:08:08,000 --> 01:08:10,690 Tehát semmi köze ahhoz, amit én vissza, csak meg kell tennie 1670 01:08:10,690 --> 01:08:11,940 , amit én a nyomtatást. 1671 01:08:11,940 --> 01:08:14,150 De azt hallottam, hogy itt lent. 1672 01:08:14,150 --> 01:08:15,270 Mi az? 1673 01:08:15,270 --> 01:08:17,524 KÖZÖNSÉG: Tehát meg kell írni a számokat 1674 01:08:17,524 --> 01:08:19,680 a felosztást - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Malan: Oké jó. 1676 01:08:20,319 --> 01:08:22,810 Tehát meg kell írni a számokat részt vevő 1677 01:08:22,810 --> 01:08:25,979 körzet itt lebegőpontos értékek magukat. 1678 01:08:25,979 --> 01:08:29,359 Tehát a probléma itt is, mint korábban: C, mint sok 1679 01:08:29,359 --> 01:08:31,819 nyelvek, eltérő adattípusok. 1680 01:08:31,819 --> 01:08:34,600 És azok adattípusok, például ezek itt. 1681 01:08:34,600 --> 01:08:37,430 És az adattípusok kérdést itt, mikor írja be az 1 és utána 1682 01:08:37,430 --> 01:08:40,870 10-es típus, valószínűleg mi adattípusok? 1683 01:08:40,870 --> 01:08:42,170 Szóval ez valószínűleg egy int, ugye? 1684 01:08:42,170 --> 01:08:44,149 Ez biztosan nem egy úszó mert nincs tizedes 1685 01:08:44,149 --> 01:08:45,460 pont vagy ilyesmi. 1686 01:08:45,460 --> 01:08:48,270 Szóval tényleg, van egy int osztva int. 1687 01:08:48,270 --> 01:08:52,160 >> Tehát az érdekes dolog matematika és a számítógép, hogy a 1688 01:08:52,160 --> 01:08:54,840 ha csinálsz részleg használata egészek - 1689 01:08:54,840 --> 01:08:57,310 1 osztva 10, igen: 0,1. 1690 01:08:57,310 --> 01:09:01,420 Azonban, amikor elosztják értéke egy egész szám, az 1691 01:09:01,420 --> 01:09:06,859 választ meg is egész, csak azért, mert most. 1692 01:09:06,859 --> 01:09:08,630 És mi a hatása akkor? 1693 01:09:08,630 --> 01:09:13,640 Nos, ha a válasz 1 osztva 10 egyenlő 0,1, mit 1694 01:09:13,640 --> 01:09:15,680 a számítógép fog tenni az fogalmam sincs, hogyan kell 1695 01:09:15,680 --> 01:09:19,270 képviselnek 0,1, mert ez egy lebegőpontos érték, nem 1696 01:09:19,270 --> 01:09:21,910 integer; ez fog levágja mindent után 1697 01:09:21,910 --> 01:09:27,470 tizedespont és csak megmutatja a 0 az elején. 1698 01:09:27,470 --> 01:09:29,540 És az a tény, hogy ez nyomtat egy lebegőpontos 1699 01:09:29,540 --> 01:09:31,200 érték, ez csak egy esztétikai dolog. 1700 01:09:31,200 --> 01:09:34,279 Ez azért van, mert én vagyok kényszerítve a számítógép nyomtassa ezt egy 1701 01:09:34,279 --> 01:09:35,229 lebegőpontos értéket. 1702 01:09:35,229 --> 01:09:37,720 És valóban, én kijelentette, mint egy úszó, de a matematika 1703 01:09:37,720 --> 01:09:39,010 történik itt. 1704 01:09:39,010 --> 01:09:41,859 >> Szóval hadd ténylegesen erősít ez egy nagyon egyszerű módon. 1705 01:09:41,859 --> 01:09:45,250 Miért nem csak csináld, 10,0 és 1,0, de 1706 01:09:45,250 --> 01:09:47,609 műszakilag tudtam megúszni, csak csinál egy ilyen. 1707 01:09:47,609 --> 01:09:50,630 Most hadd menjen előre, és math3. 1708 01:09:50,630 --> 01:09:56,350 Hadd menjek előre, és most fut math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 És most, oh boy. 1710 01:09:57,500 --> 01:10:00,050 Most van egy új probléma teljesen. 1711 01:10:00,050 --> 01:10:05,600 Szóval jobb, ugye, mi vagyunk közelebb a 0,1, de mi nyilván 1712 01:10:05,600 --> 01:10:06,240 baj van? 1713 01:10:06,240 --> 01:10:08,260 Hacsak mi már hazudik neked évek óta, igaz? 1714 01:10:08,260 --> 01:10:13,660 1 osztva 10 valójában nem egészen 0,1, így mi 1715 01:10:13,660 --> 01:10:14,700 Tényleg folyik itt? 1716 01:10:14,700 --> 01:10:16,420 Hát akkor milyen okból ezen keresztül logikusan. 1717 01:10:16,420 --> 01:10:19,200 Ha a számítógép csak egy véges mennyiségű RAM kezdeni 1718 01:10:19,200 --> 01:10:23,530 be, sőt a számítógépet csak az a 32 bit a 1719 01:10:23,530 --> 01:10:26,200 lebegőpontos érték, magától értetődik, hogy egy 1720 01:10:26,200 --> 01:10:29,870 véges bitek száma, 32 ebben az esetben igen, akkor 1721 01:10:29,870 --> 01:10:31,050 jelentenek egy csomó dolgot. 1722 01:10:31,050 --> 01:10:33,220 Ez valójában 4000000000 különböző értékeket lehet 1723 01:10:33,220 --> 01:10:38,040 képviseli a 32 bit, 2 a 32, de ez még mindig véges. 1724 01:10:38,040 --> 01:10:40,730 Tehát a probléma van egy végtelen számú valós 1725 01:10:40,730 --> 01:10:41,370 számok, jobbra. 1726 01:10:41,370 --> 01:10:43,560 Ha adsz nekem egy valós szám, én is mindig talál neked egy 1727 01:10:43,560 --> 01:10:46,080 valamivel nagyobb, valamivel kevesebb, ha csak a csípés 1728 01:10:46,080 --> 01:10:47,970 számok, amelyek a tizedesvessző után. 1729 01:10:47,970 --> 01:10:50,870 Tehát, ha nincs végtelen számú bit, akkor 1730 01:10:50,870 --> 01:10:52,940 semmiképpen nem jelenthet végtelen 1731 01:10:52,940 --> 01:10:54,800 számú valós számok. 1732 01:10:54,800 --> 01:10:58,090 >> Szóval, itt van ez a benne rejlő pontatlanság számítógépek és 1733 01:10:58,090 --> 01:11:00,930 ez lesz megbotlott minden alkalommal még a legegyszerűbb 1734 01:11:00,930 --> 01:11:02,260 programok, mint ez. 1735 01:11:02,260 --> 01:11:05,640 De néhány nagyon valódi világ problémáira is. 1736 01:11:05,640 --> 01:11:07,790 Tény, hogy vessünk egy pillanatra, hogy csak egy pillantást 1737 01:11:07,790 --> 01:11:09,530 valami, ami valóban megtörtént a valóságban. 1738 01:11:09,530 --> 01:11:11,620 Majd nézni csak az első pár percet, majd 1739 01:11:11,620 --> 01:11:13,270 feltesszük a kapcsolatot online. 1740 01:11:13,270 --> 01:11:16,700 De ez bizonyíték arra, hogy éppen mi baj, egészen 1741 01:11:16,700 --> 01:11:19,680 őszintén szólva, egy nagyon tragikus módon, amikor ezek a dolgok nem 1742 01:11:19,680 --> 01:11:23,870 értékelik, vagy csak mi, emberek hibáznak, amikor a 1743 01:11:23,870 --> 01:11:26,792 Az ilyen típusú végrehajtásának részleteit a modern számítógépek. 1744 01:11:26,792 --> 01:11:27,284 >> [VIDEO lejátszása] 1745 01:11:27,284 --> 01:11:30,730 -Most vissza mérnöki katasztrófák Modern csodák. 1746 01:11:30,730 --> 01:11:32,200 Számítógépek. 1747 01:11:32,200 --> 01:11:34,920 Mindannyian jön, hogy elfogadja a sokszor zavaró problémák 1748 01:11:34,920 --> 01:11:36,750 , hogy menjen velük. 1749 01:11:36,750 --> 01:11:40,690 Bugs, vírusok és a szoftver hibák kicsik árak 1750 01:11:40,690 --> 01:11:42,550 fizetnie a kényelem. 1751 01:11:42,550 --> 01:11:45,170 De a high-tech és a nagy sebességű katonai és tér 1752 01:11:45,170 --> 01:11:48,450 programot alkalmazások, a legkisebb probléma lehet 1753 01:11:48,450 --> 01:11:52,220 nagyított a katasztrófa. 1754 01:11:52,220 --> 01:11:56,780 Június 4-én, 1996, a tudósok elő, hogy indítson pilóta nélküli 1755 01:11:56,780 --> 01:11:58,430 Ariane 5 rakéta. 1756 01:11:58,430 --> 01:12:00,750 Ezt könyv tudományos műholdak tervezett 1757 01:12:00,750 --> 01:12:03,580 megállapítani pontosan, hogy a Föld mágneses tere 1758 01:12:03,580 --> 01:12:06,900 kölcsönhatásba lép a napszél. 1759 01:12:06,900 --> 01:12:10,330 A rakéta épült az Európai Űrügynökség és az 1760 01:12:10,330 --> 01:12:13,450 emelte ki annak létesítmény partjainál Francia Guyana. 1761 01:12:13,450 --> 01:12:16,970 >> -Körülbelül mintegy 37 másodperccel a repülés, először 1762 01:12:16,970 --> 01:12:19,700 Észrevettem valami baj, hogy a fúvókák voltak 1763 01:12:19,700 --> 01:12:21,590 billentés olyan módon, hogy tényleg nem kellene. 1764 01:12:21,590 --> 01:12:25,020 Körülbelül 40 másodperccel a járatot, egyértelműen a jármű 1765 01:12:25,020 --> 01:12:27,340 bajban volt, és ez az, amikor úgy döntött, hogy 1766 01:12:27,340 --> 01:12:28,136 elpusztítani. 1767 01:12:28,136 --> 01:12:31,450 Számos biztonsági tisztviselő óriási belek megnyomta a 1768 01:12:31,450 --> 01:12:34,160 gombot, felrobbantotta a rakétát mielőtt válhatna 1769 01:12:34,160 --> 01:12:37,470 veszélyeztetheti a közbiztonságra nézve. 1770 01:12:37,470 --> 01:12:40,750 >> -Ez volt az első út az Ariane 5, és a 1771 01:12:40,750 --> 01:12:43,990 megsemmisítés került sor, mert egy hiba ágyazott 1772 01:12:43,990 --> 01:12:45,480 rakéta szoftvere. 1773 01:12:45,480 --> 01:12:47,660 >> -A probléma az Ariane az volt, hogy ez a szám 1774 01:12:47,660 --> 01:12:51,245 előírja, 64 bit, hogy kifejezzék és akarták alakítani 1775 01:12:51,245 --> 01:12:53,010 egy 16 bites szám. 1776 01:12:53,010 --> 01:12:54,900 Azt feltételezték, hogy a szám soha nem volt 1777 01:12:54,900 --> 01:12:56,280 lesz nagyon nagy, 1778 01:12:56,280 --> 01:12:59,920 hogy a legtöbb ilyen jegy a 64 bites szám volt 0s. 1779 01:12:59,920 --> 01:13:01,860 Voltak rossz. 1780 01:13:01,860 --> 01:13:04,550 >> -A képtelenség egy szoftver, hogy elfogadja a 1781 01:13:04,550 --> 01:13:07,730 fajta generált szám egy másik volt a gyökere 1782 01:13:07,730 --> 01:13:08,930 a hiba. 1783 01:13:08,930 --> 01:13:11,490 Szoftverfejlesztés vált nagyon költséges része 1784 01:13:11,490 --> 01:13:13,280 új technológia. 1785 01:13:13,280 --> 01:13:16,530 Az Ariane 4 rakéta volt nagyon sikeres. 1786 01:13:16,530 --> 01:13:19,100 Ennyit a szoftver létrehozott azt is használták 1787 01:13:19,100 --> 01:13:21,050 Az Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Az alapvető probléma az volt, hogy az Ariane 5 gyorsabb volt, 1789 01:13:25,530 --> 01:13:27,280 felgyorsult gyorsabb. 1790 01:13:27,280 --> 01:13:30,590 És a program nem számolják el ezt. 1791 01:13:30,590 --> 01:13:33,060 >> -A megsemmisítése a rakéta egy hatalmas pénzügyi 1792 01:13:33,060 --> 01:13:37,670 katasztrófa, minden miatt egy percet szoftver hiba. 1793 01:13:37,670 --> 01:13:40,750 De nem ez volt az első alkalom, adatkonverzió problémák voltak 1794 01:13:40,750 --> 01:13:43,680 sújtja a modern rakéta technológia. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Malan: Majd hagyjuk ennyiben. 1796 01:13:44,390 --> 01:13:46,870 De ez bizonyíték arra, hogy milyen is alkalmazandó egyes 1797 01:13:46,870 --> 01:13:48,750 Ezen legalacsonyabb szintre details hogy már megkezdte a 1798 01:13:48,750 --> 01:13:50,040 vizsgálja meg ma. 1799 01:13:50,040 --> 01:13:52,510 Tehát még akkor is ha egy kicsit megzavart talán néhány 1800 01:13:52,510 --> 01:13:55,240 A szintaxis és arcaneness itt, rájönnek, hogy az 1801 01:13:55,240 --> 01:13:57,690 kifejezést fogunk összpontosítani, csak arról, hogyan alkalmazható ez az, hogy 1802 01:13:57,690 --> 01:13:59,530 világok messze CS. 1803 01:13:59,530 --> 01:14:00,780 Fogjuk látni szerdán.