1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. MALAN: Tehát ez CS50. 3 00:00:13,800 --> 00:00:18,970 És ez volt CS50 saját Colton Ogden, még több, aki a zene lehet 4 00:00:18,970 --> 00:00:22,820 letölteni soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Így ma már a hangsúly a nagyobb A művészet a programozás. 6 00:00:26,690 --> 00:00:28,980 És mi hol hagytuk ki a múlt héten, amelynek középpontjában 7 00:00:28,980 --> 00:00:31,660 A Scratch, ami ezt a grafikus programozási nyelv. 8 00:00:31,660 --> 00:00:35,490 És a dolgokat le egy alacsonyabb szintre, egy hagyományos programozási 9 00:00:35,490 --> 00:00:38,420 nyelv ismert C. De az út mentén, felismerve, 10 00:00:38,420 --> 00:00:40,730 hogy az azonos ötleteket beszélt múlt pénteken 11 00:00:40,730 --> 00:00:44,390 megismétlődik nem csak ebben a C nyelv, de a legtöbb minden más 12 00:00:44,390 --> 00:00:46,350 hogy nézzük ebben a félévben. 13 00:00:46,350 --> 00:00:50,247 >> Így hívják ezt a dolgot Itt mi utoljára? 14 00:00:50,247 --> 00:00:51,830 Ez a képviselő a nyilatkozatot. 15 00:00:51,830 --> 00:00:53,080 Így hívják ezt a nyilatkozatot. 16 00:00:53,080 --> 00:00:54,100 És ez nem valami. 17 00:00:54,100 --> 00:00:56,910 Ez egy utasítás, hogy a számítógép vagy Scratch lehet végrehajtani. 18 00:00:56,910 --> 00:00:59,910 És ezentúl, hadd is indul hívó valami ilyesmi a funkció, 19 00:00:59,910 --> 00:01:02,070 okokból hamarosan látni fogjuk. 20 00:01:02,070 --> 00:01:03,681 >> Közben láttuk a dolgokat, mint ez. 21 00:01:03,681 --> 00:01:05,680 És ezek általában néven milyen konstrukció? 22 00:01:05,680 --> 00:01:06,240 >> Közönség: hurok. 23 00:01:06,240 --> 00:01:06,860 >> David J. MALAN: Tehát a hurok. 24 00:01:06,860 --> 00:01:07,943 Így elég egyértelmű. 25 00:01:07,943 --> 00:01:09,470 Ez szó szerint azt teszi, amit mond. 26 00:01:09,470 --> 00:01:12,210 És Scratch, ha azt szeretné, hogy teletölteni több puzzle darab ott, 27 00:01:12,210 --> 00:01:13,950 a darab nő fér meg. 28 00:01:13,950 --> 00:01:16,790 És majd meglátjuk, C, hogy akkor nem ugyanaz a dolog. 29 00:01:16,790 --> 00:01:20,000 >> Egy másik típusú hurok, mégis, A Scratch lehet örökké, 30 00:01:20,000 --> 00:01:21,820 vagy van valami szám más megközelítések. 31 00:01:21,820 --> 00:01:24,150 De vessünk egy generalista néz, arca 32 00:01:24,150 --> 00:01:27,402 ez valószínűleg nagyon ismerős, A hurkok általában. 33 00:01:27,402 --> 00:01:29,110 Mark Zuckerberg: Egy dolog, hogy a számítógépek 34 00:01:29,110 --> 00:01:31,860 nagyon jó az ismétlődő parancsokat. 35 00:01:31,860 --> 00:01:33,910 Mint egy ember, azt kap nagyon unatkozik, ha 36 00:01:33,910 --> 00:01:36,730 volt, hogy nem ugyanaz a dolog sokszor egymás után. 37 00:01:36,730 --> 00:01:40,530 De a számítógép nem ugyanaz a dolog millió vagy akár milliárd alkalommal, 38 00:01:40,530 --> 00:01:43,290 és nem fog unatkozni, és képesnek kell lennie folytatni, hogy ki igazán jól. 39 00:01:43,290 --> 00:01:45,650 >> Így például, ha akartam kívánni mindenkinek 40 00:01:45,650 --> 00:01:48,840 a Facebook-on a happy birthday küldött nekik egy e-mailt, 41 00:01:48,840 --> 00:01:51,550 lehet, hogy nekem több, mint egy század ténylegesen írjon ki 42 00:01:51,550 --> 00:01:53,000 az összes e-maileket, hogy mindenki. 43 00:01:53,000 --> 00:01:57,780 De csak néhány sornyi kódot, tudok Van egy rendszer küld egy e-mailt mindenkinek 44 00:01:57,780 --> 00:01:59,930 a Facebook-on, akik nekik boldog születésnapot. 45 00:01:59,930 --> 00:02:02,730 Szóval, ez az, amit hurkok, és miért ők értékes és valami 46 00:02:02,730 --> 00:02:04,740 hogy a számítógépek nagyon jól. 47 00:02:04,740 --> 00:02:05,630 >> David J. MALAN: Tehát, ha voltál a címzett 48 00:02:05,630 --> 00:02:07,820 néhány CS50 és a Dropbox tér az utóbbi időben, 49 00:02:07,820 --> 00:02:10,590 hogy valójában pontosan az, amit mi igen, a kód egészen így. 50 00:02:10,590 --> 00:02:12,600 Mi alapvetően egy nagy táblázatot, amely 51 00:02:12,600 --> 00:02:15,016 emberek már webes felületen az nevét és e-mail címeket. 52 00:02:15,016 --> 00:02:18,160 És írtam egy apró kis kód lehet végighaladni ezeket a címeket 53 00:02:18,160 --> 00:02:21,860 és kiköp egyedi címek ha valaki benyújtott többször. 54 00:02:21,860 --> 00:02:25,120 És azután, küldünk egy automatikus e-mail CS50 a bot, 55 00:02:25,120 --> 00:02:27,190 beleértve a kupon kódot. 56 00:02:27,190 --> 00:02:29,290 >> Most is néztem ez konstrukció utoljára. 57 00:02:29,290 --> 00:02:33,100 És ez egy adott példa arra, mi? 58 00:02:33,100 --> 00:02:35,050 Szóval, igen, egy logikai kifejezés. 59 00:02:35,050 --> 00:02:37,050 És a forma értjük megragadni, hogy is. 60 00:02:37,050 --> 00:02:39,966 Minden ilyen kérdései formában igaz vagy hamis Scratch 61 00:02:39,966 --> 00:02:41,590 fog kinézni egy kicsit valahogy így. 62 00:02:41,590 --> 00:02:43,200 És ezt nevezzük a logikai kifejezés. 63 00:02:43,200 --> 00:02:46,170 Ez valóban igaz vagy hamis, igen vagy nem. 64 00:02:46,170 --> 00:02:49,150 Ez egy módja a választ a kérdésre. 65 00:02:49,150 --> 00:02:52,420 >> És közben lehet használni ezeket a logikai kifejezések belsejében konstrukciók 66 00:02:52,420 --> 00:02:54,720 mint ezek, amelyek a Természetesen vannak feltételei 67 00:02:54,720 --> 00:02:57,259 vagy fióktelepek, közmondásos villa az úton. 68 00:02:57,259 --> 00:02:59,550 És nézd nem csak mint ez, de ők is 69 00:02:59,550 --> 00:03:02,080 már másnak velük kapcsolatban. 70 00:03:02,080 --> 00:03:05,820 És akkor valóban van egy három módon villa az úton, vagy a négy út villa 71 00:03:05,820 --> 00:03:08,340 az úton, egyszerűen fészkelő ezeket a dolgokat, 72 00:03:08,340 --> 00:03:10,510 ahogy látni fogod a Scratch ha még nem tette meg. 73 00:03:10,510 --> 00:03:13,550 És meg tudod csinálni a C is. 74 00:03:13,550 --> 00:03:16,810 >> Vessünk egy generalista nézd meg egy alumnist, is, aki 75 00:03:16,810 --> 00:03:21,490 jelenthet egy másik megközelítés hogy ezeket a dolgokat az úgynevezett körülmények. 76 00:03:21,490 --> 00:03:24,060 >> Bill Gates: Az emberek döntés minden nap. 77 00:03:24,060 --> 00:03:27,530 Például, mielőtt kimész te ilyen van az if utasítást, amely azt mondja, 78 00:03:27,530 --> 00:03:31,480 ha esik az eső, akkor azt kell, hogy a kabát. 79 00:03:31,480 --> 00:03:36,820 És számítógépek csodálatos, ha dönt az ilyen jellegű nyilatkozatok, 80 00:03:36,820 --> 00:03:42,280 hogy végre tudják megbízhatóan azokat a dolgokat, a hihetetlen sebességgel. 81 00:03:42,280 --> 00:03:48,240 És így a számítógépes program valóban egy kis matek és néhány 82 00:03:48,240 --> 00:03:53,050 ha nyilatkozatokra, amennyiben a döntés lesz készült. 83 00:03:53,050 --> 00:03:55,020 >> David J. MALAN: Annak érdekében, Ön is tudja, hogy 84 00:03:55,020 --> 00:03:57,880 emberek, mint Bill Gates, Paul Allen és mások 85 00:03:57,880 --> 00:04:00,240 hogy valóban indult a úgynevezett személyi számítógép 86 00:04:00,240 --> 00:04:01,990 forradalom néhány évvel ezelőtt. 87 00:04:01,990 --> 00:04:04,140 Azt gondoltam, mielőtt fejest a néhány Karbantartás, 88 00:04:04,140 --> 00:04:09,920 mi lenne vonatkoznak a mese az Albuquerque, New Mexico Museum of Natural History 89 00:04:09,920 --> 00:04:13,650 és a tudomány, ahol néhány Bill Gates " és Paul Allen legkorábbi történetek 90 00:04:13,650 --> 00:04:17,470 tolmácsolom hogyan van most A mai PC-k és Mac és így tovább. 91 00:04:17,470 --> 00:04:22,390 Ehhez azonban szükségünk van két önkéntest akik nagyon jó elbeszélés hang 92 00:04:22,390 --> 00:04:23,735 olvasni a forgatókönyvet hangosan. 93 00:04:23,735 --> 00:04:25,530 >> Rendben, mi a helyzet az ott hátul. 94 00:04:25,530 --> 00:04:26,120 Gyere fel. 95 00:04:26,120 --> 00:04:27,770 És mi van előtte itt. 96 00:04:27,770 --> 00:04:28,340 Gyere le. 97 00:04:28,340 --> 00:04:29,600 Vigye magával helyen itt. 98 00:04:29,600 --> 00:04:32,444 Ahogy a srácok jön fel, egy pár adminisztratív bejelentések. 99 00:04:32,444 --> 00:04:34,360 szakaszolási, a folyamat a választás a szakasz, 100 00:04:34,360 --> 00:04:36,068 indul ez Szerdától péntekig. 101 00:04:36,068 --> 00:04:38,400 Bővebben az, hogy ez a jövő Szerdán előadást. 102 00:04:38,400 --> 00:04:41,770 >> Szuper szakaszok, eközben vannak amit kínálunk a jövő héten 103 00:04:41,770 --> 00:04:45,310 ahol a teljes osztály meghívást hogy részt vegyenek a meglehetősen nagy léptékű 104 00:04:45,310 --> 00:04:47,690 szakaszok, még egy kényelmes, egy kevésbé kényelmes. 105 00:04:47,690 --> 00:04:51,340 És fogjuk be az adatokat Az, hogy is, később ezen a héten. 106 00:04:51,340 --> 00:04:53,310 >> Közben szakaszok, maguk, indul 107 00:04:53,310 --> 00:04:57,241 A hét három természetesen nulla index, ami azt jelenti, ezek egy pár hétig 108 00:04:57,241 --> 00:04:57,740 ki. 109 00:04:57,740 --> 00:04:58,450 Szóval ne aggódj. 110 00:04:58,450 --> 00:05:01,014 Ön még nem hiányzott valami ezekhez hasonlót. 111 00:05:01,014 --> 00:05:03,930 Eközben az addig is, ha bármilyen kérdése van adminisztratív, 112 00:05:03,930 --> 00:05:08,120 e-mail magam, és Devon és Gabe és Rob ezen a címen itt. 113 00:05:08,120 --> 00:05:10,320 >> Végül, a probléma be 0, természetesen, ki. 114 00:05:10,320 --> 00:05:12,320 Lehet, hogy észrevette, hogy A kurzus honlapján. 115 00:05:12,320 --> 00:05:14,840 Meg kell adnia a minden kérdésekre adott válaszok 116 00:05:14,840 --> 00:05:18,250 lehet, hogy az út mentén Ismerkedés a probléma meg. 117 00:05:18,250 --> 00:05:21,430 De ha találsz magadnak szüksége van egy segítő kéz, 118 00:05:21,430 --> 00:05:25,020 minden eszközzel részt vesz munkaidőben, Hétfő, kedd, szerda, csütörtök 119 00:05:25,020 --> 00:05:27,290 Ezen a héten az esti négy étkezőben. 120 00:05:27,290 --> 00:05:31,650 Lásd, hogy URL-t is az adatok hol munkaidőben kell lennie. 121 00:05:31,650 --> 00:05:34,000 >> Most Találkozzunk a két vendég itt ma. 122 00:05:34,000 --> 00:05:34,740 Mi a neve? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Jay Paul. 124 00:05:35,290 --> 00:05:36,880 >> David J. MALAN: Jay Paul, örülök, hogy találkoztunk. 125 00:05:36,880 --> 00:05:37,330 >> Hikari: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> David J. MALAN: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> Hikari: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> David J. MALAN: Hikari. 129 00:05:38,810 --> 00:05:39,790 Örülök, hogy találkoztunk is. 130 00:05:39,790 --> 00:05:42,123 Jay Paul és Hikari rendelkeznie Előttük a következő zene 131 00:05:42,123 --> 00:05:45,100 áll két írás, amit nyomtatott Ma reggel a New Mexico 132 00:05:45,100 --> 00:05:46,692 Museum of Natural History és a tudomány. 133 00:05:46,692 --> 00:05:48,400 És mit gondoltam Én ezt a felső 134 00:05:48,400 --> 00:05:52,830 A kísérje el a szavalat A forgatókönyvet, és ez a történelem 135 00:05:52,830 --> 00:05:54,700 néhány képi, nincs meglepetés. 136 00:05:54,700 --> 00:05:57,512 >> És mit tettem előre A prehighlight a script 137 00:05:57,512 --> 00:05:59,470 mit kell olvasni, és mit kell olvasni. 138 00:05:59,470 --> 00:06:00,920 És mi lényegében csak alternatív bekezdések. 139 00:06:00,920 --> 00:06:03,211 Tehát ez nagyon hasonló lehet, hogy volna az angol osztályban. 140 00:06:03,211 --> 00:06:06,875 Ez tényleg kényszerítsék a közönség hinni a mese itt. 141 00:06:06,875 --> 00:06:07,600 Mehetünk? 142 00:06:07,600 --> 00:06:13,272 Tehát a történet itt van, van egy BASIC, és kezdődik a Cambridge-ben. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Tél volt, 1974-ben, Cambridge, Massachusetts 144 00:06:18,750 --> 00:06:20,240 ahol a tél lehet hideg. 145 00:06:20,240 --> 00:06:22,800 A szakállas, hosszú hajú főiskolai lemorzsolódás neve 146 00:06:22,800 --> 00:06:27,280 Paul Allen volt drudging át Harvard Tér, elmerült a gondolataiban. 147 00:06:27,280 --> 00:06:31,050 Fő gondja akkoriban az volt, hogyan lehet a barátja, Bill Gates, 148 00:06:31,050 --> 00:06:34,974 abbahagyni a tanulást, és menj az üzleti vele. 149 00:06:34,974 --> 00:06:37,890 Hikari: A két már elment egy sor üzleti vállalkozások 150 00:06:37,890 --> 00:06:40,850 együtt, kezdve Lakeside iskola Seattle- 151 00:06:40,850 --> 00:06:45,220 ben került sor szabad számítógép idő tesztelni PDP-10 számítógépen a helyi idő 152 00:06:45,220 --> 00:06:46,580 közös vállalat. 153 00:06:46,580 --> 00:06:50,930 A legújabb terv az volt, hogy kilép iskola és a forma egy szoftverfejlesztő cég. 154 00:06:50,930 --> 00:06:53,440 Allen elhagyta Washington Állami Egyetemen. 155 00:06:53,440 --> 00:06:58,380 De az utolsó pillanatban, Gates úgy döntött, hogy kibír Harvard. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Azon a napon, átkelés Harvard Tér, Allen észrevette a január, 157 00:07:02,080 --> 00:07:07,530 1975 kérdés a Popular Electronics A Föld megállás főcím, 158 00:07:07,530 --> 00:07:11,900 A világ első Minicomputer Kit a rivális kereskedelmi modellek. 159 00:07:11,900 --> 00:07:14,430 Alatta a főcím volt a kép egy kis doboz 160 00:07:14,430 --> 00:07:16,160 díszített fények és kapcsolók. 161 00:07:16,160 --> 00:07:19,770 Ez volt az úgynevezett MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 És Allen tudta, hogy ez mit ő keresett. 163 00:07:24,100 --> 00:07:26,350 >> Hikari: Napok vita követte. 164 00:07:26,350 --> 00:07:30,170 Allen és Gates megértette a jelentősége az Altair. 165 00:07:30,170 --> 00:07:32,480 Ők beszéltek sokszor a mikroprocesszorok 166 00:07:32,480 --> 00:07:35,250 és arra vártak, hogy mi volna tenni velük. 167 00:07:35,250 --> 00:07:39,770 Most volt egy minicomputer kit a fedelet a Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Úgy tűnik, nem volt még szoftver. 169 00:07:42,830 --> 00:07:46,830 Azt képzelte a nemzet programozók csökkenő a MITS. 170 00:07:46,830 --> 00:07:49,590 És így hívják Ed Roberts, A cég vezetője, 171 00:07:49,590 --> 00:07:53,330 azt állítva, hogy egy változata a BASIC programozási nyelv majdnem kész 172 00:07:53,330 --> 00:07:54,710 Az Altair. 173 00:07:54,710 --> 00:07:55,570 Ők nem. 174 00:07:55,570 --> 00:07:58,910 És Roberts tudnia kellett, hogy nem. 175 00:07:58,910 --> 00:08:03,170 Kezdett 10 hívásokat a nap az emberek, akik a BASIC majdnem kész. 176 00:08:03,170 --> 00:08:05,570 És a készlet válasz ez volt: "Az első ember, 177 00:08:05,570 --> 00:08:11,090 aki felbukkan egy működő BASIC kapja meg a szerződést. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Gates és Allen még soha nem látott egy Altair. 179 00:08:13,910 --> 00:08:17,600 Ők soha nem is látta az Intel 8080 mikroprocesszor 180 00:08:17,600 --> 00:08:19,060 középpontjában az Altair. 181 00:08:19,060 --> 00:08:21,470 De néhány évvel korábban Allen írt egy programot 182 00:08:21,470 --> 00:08:25,220 a mainframe számítógépen emulált működését a korábbi Intel 183 00:08:25,220 --> 00:08:26,217 mikroprocesszor. 184 00:08:26,217 --> 00:08:28,300 És ezúttal ők nem ugyanaz a dolog. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> Hikari: Intel 8080 kézi az oldalán, 187 00:08:34,380 --> 00:08:37,770 Allen leült egy Harvard PDP-10 számítógép 188 00:08:37,770 --> 00:08:42,010 és írta az emulátor és szoftver szükséges eszközöket, hogy nem a programozás. 189 00:08:42,010 --> 00:08:45,820 Eközben Gates nem járt osztályok és szentelte magát 190 00:08:45,820 --> 00:08:48,120 tervezése a BASIC, segítségével minden trükköt 191 00:08:48,120 --> 00:08:53,130 tudta, hogy a méret lent 4 kilobyte. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out Albuquerque, Ed Roberts hívott Gates 193 00:08:55,870 --> 00:08:59,754 kért adatokat arról, hogy a Altair kezelni speciális rutinok. 194 00:08:59,754 --> 00:09:01,170 Soha senki nem kérte, hogy korábban. 195 00:09:01,170 --> 00:09:02,670 És Roberts kezdett érdeklődni. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> Hikari: A fejlesztés eszközöket és a tervezési kész, 198 00:09:07,970 --> 00:09:10,780 Gates és Allen írt A kódot a PDP-10, 199 00:09:10,780 --> 00:09:16,060 besorozzák másik Harvard diák, Monte Davidoff, írni matematikai rutinok. 200 00:09:16,060 --> 00:09:19,450 Miután egy utolsó éjszaka programozás, Allen kapott a repülőn 201 00:09:19,450 --> 00:09:22,970 ürítse ki a BASIC a MITS. 202 00:09:22,970 --> 00:09:25,800 Töltötte a sík út ki aggasztó. 203 00:09:25,800 --> 00:09:28,490 És vissza Cambridge Gates aggasztó. 204 00:09:28,490 --> 00:09:32,100 Már tesztelték a BASIC és azt már dolgozott az emulátor. 205 00:09:32,100 --> 00:09:35,444 De mi van, ha az emulátor volt a baj? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Amikor a repülőgép közeledett Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Allen rájött, hogy a BASIC, most szépen foglalt 208 00:09:40,070 --> 00:09:42,460 egy kis tekercs lyukasztott papír szalag, akkor 209 00:09:42,460 --> 00:09:44,970 haszontalan nélkül külön program, az úgynevezett a loader, hogy 210 00:09:44,970 --> 00:09:47,550 megmondja az Altair hogyan olvasni a papír szalagon 211 00:09:47,550 --> 00:09:49,620 betáplálni a telex gép. 212 00:09:49,620 --> 00:09:52,970 Elővette a notebook és gyorsan felírta a loader programot 213 00:09:52,970 --> 00:09:56,819 Assembly nyelv, majd kézzel fordították, hogy az 1 és 0 214 00:09:56,819 --> 00:09:57,985 Az Altair értené. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> Hikari: Allen számítottam tiszta, kicsi, high-tech cég 217 00:10:03,830 --> 00:10:05,470 által működtetett öltönyös férfi. 218 00:10:05,470 --> 00:10:09,210 Szóval meglepődött, amikor Roberts találkozott őt a repülőtéren néz ki, mint egy tanyán 219 00:10:09,210 --> 00:10:10,270 kezét. 220 00:10:10,270 --> 00:10:12,070 Roberts is meglepődött. 221 00:10:12,070 --> 00:10:16,340 Amikor leesett a Harvard programozó egy drága hotel, 222 00:10:16,340 --> 00:10:20,790 Allen kellett vallanom, hogy ő nem engedheti meg magának a szobát. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, maga volt található egy poros strip mall. 224 00:10:24,510 --> 00:10:27,040 Belül egy zsúfolt munkapad volt Altair 225 00:10:27,040 --> 00:10:30,390 feltöltsék 5 kilobyte memória és egy kábellel összekötve 226 00:10:30,390 --> 00:10:32,030 a telex gép. 227 00:10:32,030 --> 00:10:37,200 Roberts és főmérnök, Bill Yates, várta várakozóan 228 00:10:37,200 --> 00:10:40,660 mint Allen toggled a loader programot az Altair. 229 00:10:40,660 --> 00:10:44,980 A telex kezdte szórakoztak ahogy húzta A papírszalag át a szalagot olvasó. 230 00:10:44,980 --> 00:10:47,215 Ez volt talán 15 perc alatt betölteni a programot. 231 00:10:47,215 --> 00:10:52,110 Majd a telex hirtelen nyomtatott memória gyors, akkor a kész gyors, 232 00:10:52,110 --> 00:10:55,340 és Allen kezdett gépelés néhány teszt parancsok. 233 00:10:55,340 --> 00:10:57,400 Mindenki legnagyobb meglepetésére, A szoftver működött. 234 00:10:57,400 --> 00:10:58,525 Voltak hibák, természetesen. 235 00:10:58,525 --> 00:11:02,070 De a legfontosabb dolog az volt, hogy működött. 236 00:11:02,070 --> 00:11:06,570 >> Hikari: Később, útban a $ 3,00 ebéd Pancho egy darázs repült 237 00:11:06,570 --> 00:11:10,470 az ablakban a felvétel teherautó és megcsípte Allen a karját. 238 00:11:10,470 --> 00:11:13,070 De ezen a ponton semmi tudta elrontani a hangulatot. 239 00:11:13,070 --> 00:11:17,210 Az Altair most már az alapvető, a első kereskedelmi szoftver az otthoni 240 00:11:17,210 --> 00:11:23,260 számítógép által készített Paul Allen és Bill Gates, üzleti, mint a Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. MALAN: Sok köszönhetően a két olvasó. 242 00:11:25,336 --> 00:11:30,690 >> [Taps] 243 00:11:30,690 --> 00:11:32,520 >> David J. MALAN: most van a választás, 244 00:11:32,520 --> 00:11:35,880 mielőtt elmész, egy csillogó vagy a fény a dark-- ó, 245 00:11:35,880 --> 00:11:40,810 várj egy percet, várj csillogó és a fény a sötétben elefánt 246 00:11:40,810 --> 00:11:42,534 a CS50 saját Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 Hikari: Ó, köszönöm. 248 00:11:43,450 --> 00:11:45,324 David J. MALAN: All Rendben, köszönöm szépen. 249 00:11:45,324 --> 00:11:49,855 [Taps] 250 00:11:49,855 --> 00:11:51,105 David J. MALAN: Tehát igaz történet. 251 00:11:51,105 --> 00:11:54,380 Ez azt jelenti, hogy az összes ilyen gépek és a könnyedség, amellyel mi 252 00:11:54,380 --> 00:11:56,270 használja őket, és most, hogy biztosra, tényleg 253 00:11:56,270 --> 00:12:00,070 itt kezdődött, csak néhány lépésnyire ebből tényleges színház. 254 00:12:00,070 --> 00:12:03,930 És most ma, ha már nem volt, ez Maxwell Dworkin, a számítógép 255 00:12:03,930 --> 00:12:05,810 tudományok épület, is a sarkon. 256 00:12:05,810 --> 00:12:09,760 És a második emeleten a jelen épületben Nincs hang három oldal 257 00:12:09,760 --> 00:12:12,740 Az eredeti forráskód hogy Bill Gates és Paul Allen írta. 258 00:12:12,740 --> 00:12:14,770 Sőt, ha használat ráközelít A látható nem csak 259 00:12:14,770 --> 00:12:17,350 nevüket a eredeti típus, hanem 260 00:12:17,350 --> 00:12:22,100 az aláírást, hogy díszíti a Néhány évvel ezelőtt, amikor utoljára meglátogatott. 261 00:12:22,100 --> 00:12:25,800 >> De mi volt különösen meggyőző erről az, amit meghatározott a teendő 262 00:12:25,800 --> 00:12:29,760 az volt, hogy írni egy programot, amely lehetővé teszi más emberek írni 263 00:12:29,760 --> 00:12:30,950 saját programjaikat. 264 00:12:30,950 --> 00:12:34,280 Abban az időben minden ott volt ez Altair géppel készült MITS. 265 00:12:34,280 --> 00:12:40,020 És szükségük volt valamilyen módon így könnyen az amatőrök és az emberek 266 00:12:40,020 --> 00:12:45,300 olyan, mint mi ebben a teremben, hogy valóban a program , hogy nem feltétlenül a megértés 267 00:12:45,300 --> 00:12:49,060 Assembly kód, vagy a gép kód, vagy Isten ments, 0s és 1s. 268 00:12:49,060 --> 00:12:51,190 Mi programozók, mint azok ebben a teremben, mi 269 00:12:51,190 --> 00:12:54,070 szeretné, hogy képes kifejezni magunkat sokkal inkább pszeudo kód 270 00:12:54,070 --> 00:12:57,330 akkor is, ha ez egy kicsit nit válogatós, mint beszélgettünk múlt héten. 271 00:12:57,330 --> 00:13:00,970 Nem akarjuk, hogy kódot írni, mint ez, amely Paul Allen és Bill Gates volt. 272 00:13:00,970 --> 00:13:04,850 Mi ehelyett akar írni a kódot, hogy az úgy néz ki, egy kicsit felhasználóbarát. 273 00:13:04,850 --> 00:13:07,150 >> Most ez a nyelv az úgynevezett BASIC. 274 00:13:07,150 --> 00:13:11,497 És a sorszámok vannak, amit használja, hogy egyszerűen számlálni a sor kódot 275 00:13:11,497 --> 00:13:12,330 hogy írsz. 276 00:13:12,330 --> 00:13:14,038 Még csak nem is kell Ehhez manapság. 277 00:13:14,038 --> 00:13:16,060 De látható itt hogyan PRINT "hello, world" 278 00:13:16,060 --> 00:13:18,660 valóban feltehetően nyomtatni, hogy csak. 279 00:13:18,660 --> 00:13:22,710 És akkor mi van Bill és Paul nem volt képessé az embereket, hogy írni a kódot, mint ez 280 00:13:22,710 --> 00:13:27,240 helyette of-- ha veszel egy pillantást a számítástechnika wall-- kód, mint ez. 281 00:13:27,240 --> 00:13:29,290 >> Sőt, az utóbbi időben CS50 lehetőségük volt 282 00:13:29,290 --> 00:13:32,540 hogy üljön le a professzor Harry Lewis A Számítástudományi Tanszék, aki 283 00:13:32,540 --> 00:13:34,640 valójában tanított Bill Gates néhány évvel ezelőtt, 284 00:13:34,640 --> 00:13:38,460 és itt áll előtt a három oldalnyi részletekben. 285 00:13:38,460 --> 00:13:39,560 Vessünk egy pillantást. 286 00:13:39,560 --> 00:13:45,520 >> HARRY LEWIS: Mi van itt egy felsorolása korai szoftver 287 00:13:45,520 --> 00:13:50,240 írta Bill Gates és Paul Allen, a Microsoft alapítója. 288 00:13:50,240 --> 00:13:52,570 Így a kód érdekes két okból. 289 00:13:52,570 --> 00:13:55,480 Először is, ez lett A Microsoft első terméke, 290 00:13:55,480 --> 00:14:01,810 amely tolmácsként A BASIC programozási nyelv. 291 00:14:01,810 --> 00:14:04,940 Másrészt, ez volt az egyik első próbálkozás 292 00:14:04,940 --> 00:14:10,580 hogy hozzon létre egy tolmács olyan közönséges ember jönne személyi számítógépek. 293 00:14:10,580 --> 00:14:12,670 >> Így Bill Gates volt egyetemi Harvardon. 294 00:14:12,670 --> 00:14:14,820 Kezdtem tanítani a Harvardon 1974-ben. 295 00:14:14,820 --> 00:14:16,560 Erre azért került sor 1975-ben. 296 00:14:16,560 --> 00:14:20,180 Így volt ez már az ő karrierje és a karrierem elején. 297 00:14:20,180 --> 00:14:23,790 Igazából tanított Bill A tanfolyam ebben az időben. 298 00:14:23,790 --> 00:14:27,130 Paul Allen nem volt Harvard diák, de 299 00:14:27,130 --> 00:14:31,020 volt egy középiskolában osztálytársa Bill Gates. 300 00:14:31,020 --> 00:14:33,740 Ha jön, és keresse meg A lista, akkor 301 00:14:33,740 --> 00:14:36,230 valójában talál egy harmadik név, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 aki Gates osztálytársa itt a Harvardon. 303 00:14:39,260 --> 00:14:41,340 >> OK, így itt van egy érdekes megjegyzés itt. 304 00:14:41,340 --> 00:14:47,150 Azt mondja: "A 4K törölheti négyzetgyök de hurkok még mindig működik. " 305 00:14:47,150 --> 00:14:53,080 OK, így ez azt jelenti, hogy Két módon lehet fordítani ezt a programot. 306 00:14:53,080 --> 00:14:57,860 Az egyik az volt, hogy fut egy változata Ennek Altair számítógép 307 00:14:57,860 --> 00:15:04,310 hogy még csak 4K szavak memória, 4096 szavait memória. 308 00:15:04,310 --> 00:15:07,050 De a nagy verzió volt 8K. 309 00:15:07,050 --> 00:15:09,770 És mi ez mond hogy a 4K verzió 310 00:15:09,770 --> 00:15:12,770 meg kellett törölnie kell néhány kódot, hogy illik. 311 00:15:12,770 --> 00:15:14,790 És az egyik dolog, Ez lenne hagyni 312 00:15:14,790 --> 00:15:16,290 lenne a négyzetgyök rutin. 313 00:15:16,290 --> 00:15:20,360 De úgy tűnik, a A hurkok kellene még 314 00:15:20,360 --> 00:15:26,392 működik akkor is, ha éppen összeállításakor le mindössze a 4K változata a számítógép. 315 00:15:26,392 --> 00:15:29,350 David J. MALAN: Tehát az egyik téma, mint látni fogjuk a számítógép-tudomány, 316 00:15:29,350 --> 00:15:31,430 ez a fogalom réteg és az absztrakció, 317 00:15:31,430 --> 00:15:34,670 és tényleg állva a vállán Az emberek, akik jöttek előttünk, nem 318 00:15:34,670 --> 00:15:37,890 ellentétben néhány a Bill Gates és Paul Allen elbeszélő itt. 319 00:15:37,890 --> 00:15:40,080 És mit jelent ez az hogy ma már magától 320 00:15:40,080 --> 00:15:43,490 biztosított, hogy a dolgok valóban könnyebb számunkra, hogy írjon kódot. 321 00:15:43,490 --> 00:15:47,170 Valóban kódot, ahogy mondta pénteken, technikailag úgynevezett forráskódot. 322 00:15:47,170 --> 00:15:52,210 És ez az angol, mint a szintaxis ez több, megfelelő és jól meghatározott 323 00:15:52,210 --> 00:15:55,480 mint valami, mint a pszeudo kód, ami nincs hivatalos meghatározás. 324 00:15:55,480 --> 00:15:58,320 >> És ma mit fogunk összpontosítani a forráskód 325 00:15:58,320 --> 00:16:01,010 úgy néz ki, mint ez, ami Igaz első pillantásra 326 00:16:01,010 --> 00:16:02,690 úgy néz ki, teljesen rejtélyes. 327 00:16:02,690 --> 00:16:08,540 És őszintén szólva, ez így esztétikailag bonyolultabb, mint az alapul szolgáló program. 328 00:16:08,540 --> 00:16:13,300 Mindez a program nem, emlékszem, az, amit mondtunk? 329 00:16:13,300 --> 00:16:14,990 Csak kiírja, hogy "hello world". 330 00:16:14,990 --> 00:16:19,600 És mégis, nézd meg az összes cucc van szükségünk körülveszi, hogy nagyon egyszerű mondat. 331 00:16:19,600 --> 00:16:21,750 De hamarosan az összes ezeket a sorokat, és több 332 00:16:21,750 --> 00:16:24,800 teszi sokkal jobban értelme van. 333 00:16:24,800 --> 00:16:26,940 >> És az áramlás a következő. 334 00:16:26,940 --> 00:16:31,220 Amire szükségünk rendelkezésünkre az, hogy kódot, mint forrás 335 00:16:31,220 --> 00:16:32,340 kódot, amit most láttam. 336 00:16:32,340 --> 00:16:35,060 És szükségünk van egy új program fut át. 337 00:16:35,060 --> 00:16:39,130 Szükségünk algoritmusokat konvertálni forráskód, mint ez, 338 00:16:39,130 --> 00:16:41,932 a tárgykód, 0s és 1s. 339 00:16:41,932 --> 00:16:43,890 Más szóval, mi fogunk tanulni ma 340 00:16:43,890 --> 00:16:46,620 hogy hogyan kell ezt csinálni, írni forráskód up felső, 341 00:16:46,620 --> 00:16:49,930 adja át az input egy speciális néven ismert program a fordító, 342 00:16:49,930 --> 00:16:52,140 és fogunk termelni tárgykód. 343 00:16:52,140 --> 00:16:54,600 Ami csak egy divatos módon mondván, mi lesz valami 344 00:16:54,600 --> 00:16:58,350 hogy néz ki, adja át egy program neve a fordító, 345 00:16:58,350 --> 00:17:01,210 termelő tárgykód úgy néz ki, mint ez. 346 00:17:01,210 --> 00:17:04,720 >> Tehát ezek a szó szoros értelmében A minták 0s és 1s 347 00:17:04,720 --> 00:17:08,550 megért egy Intel számítógép ezekben a napokban, 348 00:17:08,550 --> 00:17:12,480 hogy ha értelmezi a CPU, az agy belsejében egy számítógép, 349 00:17:12,480 --> 00:17:16,130 szó szerint ki kell nyomtatni, egyszerűen, "hello world". 350 00:17:16,130 --> 00:17:19,670 Most ez így még 0s és 1s, mint te remélem szükség lehet erre. 351 00:17:19,670 --> 00:17:22,520 De csak azért, mert mi építünk egy jó üzlet a komplexitás 352 00:17:22,520 --> 00:17:24,270 hogy tudjuk ezentúl vesznek. 353 00:17:24,270 --> 00:17:27,869 Más szóval, egy csomó okos emberek adtak nekünk egy csomó klassz eszközök 354 00:17:27,869 --> 00:17:32,480 és hatékony szoftvert, amellyel most, hogy a projektek a miénk. 355 00:17:32,480 --> 00:17:33,400 >> Tehát kezdjük. 356 00:17:33,400 --> 00:17:36,640 Mivel múlt pénteken, és A probléma Set 0 ezen a héten, 357 00:17:36,640 --> 00:17:39,000 akkor lehet játszani a világ úgy néz ki, mint ez. 358 00:17:39,000 --> 00:17:42,180 A mai naptól és a probléma Set 1 a jövő héten, a kód 359 00:17:42,180 --> 00:17:45,410 fog nézni egy kicsit rejtélyes, de funkcionálisan is 360 00:17:45,410 --> 00:17:46,940 lesz ugyanaz. 361 00:17:46,940 --> 00:17:50,770 Tehát értesítés, tetején Scratch, alsó C. Őszintén szólva Scratch 362 00:17:50,770 --> 00:17:52,780 sokkal inkább felhasználóbarát barátságos és megközelíthető. 363 00:17:52,780 --> 00:17:56,890 De ha összehasonlítjuk vizuálisan felső alul, van egyfajta 00:59 364 00:17:56,890 --> 00:17:59,690 közötti levelezés puzzle-darabokat és a nyelv 365 00:17:59,690 --> 00:18:00,870 vagyunk arról, hogy játszani. 366 00:18:00,870 --> 00:18:04,420 Különösen, mondjuk, a kék puzzle darab felfelé top, 367 00:18:04,420 --> 00:18:08,370 látszólag megegyezik azzal, amit kulcsszó vagy speciális kifejezés ezen a nyelven 368 00:18:08,370 --> 00:18:09,062 az úgynevezett C? 369 00:18:09,062 --> 00:18:09,770 Közönség: printf. 370 00:18:09,770 --> 00:18:10,728 David J. MALAN: printf. 371 00:18:10,728 --> 00:18:12,140 Ez azt jelenti, formázott nyomtatást. 372 00:18:12,140 --> 00:18:15,240 És ez még csak a képzelet szóval printf C 373 00:18:15,240 --> 00:18:18,615 lesz egy nyilatkozatot, vagy a funkció amely kiírja valami a képernyőn. 374 00:18:18,615 --> 00:18:19,990 Mit nyomtatnak a képernyőn? 375 00:18:19,990 --> 00:18:23,627 Bármit is mondani, hogy belülről Az idézetek, belsejében zárójelek. 376 00:18:23,627 --> 00:18:25,460 Tehát újra, igaz, van egy csomó dolog 377 00:18:25,460 --> 00:18:27,990 hogy meg kell szem előtt tartani, zárójel, idézetek, pontosvesszővel 378 00:18:27,990 --> 00:18:28,656 és mindezt. 379 00:18:28,656 --> 00:18:30,600 De minden, ami egyfajta Az a lényeg. 380 00:18:30,600 --> 00:18:33,660 Az érdekes elvihető most az, hogy a mondjuk blokk Scratch 381 00:18:33,660 --> 00:18:37,520 nagyjából egyenértékű a printf nyilatkozatot C. 382 00:18:37,520 --> 00:18:41,390 >> Eközben a sárga puzzle-darab up top, amikor a zöld zászló kattintott, 383 00:18:41,390 --> 00:18:44,736 valószínűleg azonos milyen kulcsszó itt? 384 00:18:44,736 --> 00:18:45,360 Közönség: Main. 385 00:18:45,360 --> 00:18:46,359 David J. MALAN: Tehát fő. 386 00:18:46,359 --> 00:18:47,410 Lehet, hogy int, talán semmis. 387 00:18:47,410 --> 00:18:51,280 De fő fajtája a hangok, mint a ez fontos, és valóban az is. 388 00:18:51,280 --> 00:18:54,080 Tehát, amikor a zöld zászló csattant , ismét a puzzle-darab 389 00:18:54,080 --> 00:18:56,390 hogy indul egy teljes Scratch programot. 390 00:18:56,390 --> 00:19:02,140 De mi lesz most kezdődik hívás hogy fő, ez a funkció az úgynevezett fő. 391 00:19:02,140 --> 00:19:06,410 >> Most közben fogjuk általánosítani ezt az alábbiak szerint. 392 00:19:06,410 --> 00:19:08,780 Nevezhetjük mondjuk a funkciót. 393 00:19:08,780 --> 00:19:10,580 És lehet, hogy néz ki különösen, mint ez. 394 00:19:10,580 --> 00:19:11,770 Nos, mi a hurok? 395 00:19:11,770 --> 00:19:16,540 Ha meg akarjuk kezdeni konvertáló vagy fordítás több Scratch C, 396 00:19:16,540 --> 00:19:19,400 ez a dolog itt nyilvánvalóan csak azt mondja: "hello world" örökre. 397 00:19:19,400 --> 00:19:23,060 Tehát, ha társítani ezeket szkriptek egy macska a Scratch, 398 00:19:23,060 --> 00:19:26,560 ez csak fog tartani azt valamilyen rajzfilm buborék, 399 00:19:26,560 --> 00:19:29,922 "Hello world, Helló világ, helló világ, "ad nauseum, örökre. 400 00:19:29,922 --> 00:19:33,130 Ha azt akarjuk, hogy valami hasonló C, ez meg fog nézni egy kicsit rejtélyes. 401 00:19:33,130 --> 00:19:35,463 De tudjuk elérni ugyanazt a eredményeket, majd végül 402 00:19:35,463 --> 00:19:36,861 megtudja, a szintaxis, mint ez. 403 00:19:36,861 --> 00:19:39,360 Fogom használni printf újra, mert a végén a nap 404 00:19:39,360 --> 00:19:42,040 Azt akarom, hogy print "hello world". 405 00:19:42,040 --> 00:19:45,610 És én látszólag egy kulcsszó, hogy nem örökre. 406 00:19:45,610 --> 00:19:47,320 Ez inkább a szó közben. 407 00:19:47,320 --> 00:19:49,650 De csak szemantikailag a Angol, míg a fajta 408 00:19:49,650 --> 00:19:52,120 azt sugallja, valami hurok vagy ciklus. 409 00:19:52,120 --> 00:19:55,070 >> Annak érdekében, hogy történetesen A kulcsszó, hogy a C használ. 410 00:19:55,070 --> 00:20:00,700 És bár igaz, miért míg igaz hatékonyan jelent örökre? 411 00:20:00,700 --> 00:20:04,240 Nos, míg, ahogy hamarosan értékelik a több, 412 00:20:04,240 --> 00:20:08,140 van ez a zárójeles mellette ahol meg lehet tenni a logikai kifejezés. 413 00:20:08,140 --> 00:20:11,360 És mindaddig, amíg az kifejezés igaz, ezt a kódot, 414 00:20:11,360 --> 00:20:14,750 lapokon a két kapcsos zárójelek ahogy hívjuk őket, 415 00:20:14,750 --> 00:20:16,880 majd csak folyamatosan fut újra és újra. 416 00:20:16,880 --> 00:20:18,410 >> Tehát igaz, igaz. 417 00:20:18,410 --> 00:20:20,900 Tehát míg a valódi eszközök csak ezt örökké. 418 00:20:20,900 --> 00:20:23,480 Ez majdnem egy hülye építeni, hogy kifejezze magát. 419 00:20:23,480 --> 00:20:26,590 De nem volt örökké kulcsszó C. Volt közben. 420 00:20:26,590 --> 00:20:29,390 És ott volt egy nagyon egyszerű Logikai kifejezés, mint az igazi. 421 00:20:29,390 --> 00:20:32,210 És ez, majd meglátjuk, éri el ugyanazt az eredményt. 422 00:20:32,210 --> 00:20:33,890 >> Hogy mást lehet, hogy végre a hurok? 423 00:20:33,890 --> 00:20:36,980 Nos, lehet, hogy Scratch kemény kód egy bizonyos számú 424 00:20:36,980 --> 00:20:39,430 iterációk a hurok itt. 425 00:20:39,430 --> 00:20:43,210 És pontosan ez az, amit mi talán nem ez a verzió a C, 426 00:20:43,210 --> 00:20:46,140 amelynek van egy úgynevezett hurok. 427 00:20:46,140 --> 00:20:49,850 És a for ciklus itt folyik segítségével navigálhat, kissé rejtélyesen, 428 00:20:49,850 --> 00:20:54,100 Az érték 0-fel a, de kevesebb, mint 10. 429 00:20:54,100 --> 00:20:55,955 >> Most változók Scratch. 430 00:20:55,955 --> 00:20:57,830 Lehet, hogy nem kellett volna alkalom, hogy használja ezeket. 431 00:20:57,830 --> 00:21:02,516 De mi az a pont, az általános, A változó mondtunk a múlt héten? 432 00:21:02,516 --> 00:21:03,015 Mi ez? 433 00:21:03,015 --> 00:21:03,780 >> Közönség: pont. 434 00:21:03,780 --> 00:21:05,200 >> David J. MALAN: ponthoz? 435 00:21:05,200 --> 00:21:05,700 Oh, pont. 436 00:21:05,700 --> 00:21:07,620 OK, nyomon követése pont, például egy játékban. 437 00:21:07,620 --> 00:21:09,510 Vagy még általánosabban csinál amit a változó? 438 00:21:09,510 --> 00:21:10,450 Mi a haszna őket? 439 00:21:10,450 --> 00:21:10,825 >> Közönség: Memory. 440 00:21:10,825 --> 00:21:11,750 >> David J. MALAN: Igen, a memória. 441 00:21:11,750 --> 00:21:13,000 Ez tárolására valami. 442 00:21:13,000 --> 00:21:17,336 És az a fajta ostoba vizuális használtam utoljára volt ilyen üveg tál. 443 00:21:17,336 --> 00:21:19,710 És ha azt akartuk, hogy tárolja valami belsejében egy változó, 444 00:21:19,710 --> 00:21:21,918 például most a érték hat, mert 445 00:21:21,918 --> 00:21:23,450 Hat ping-pong labdák itt. 446 00:21:23,450 --> 00:21:26,158 Ez csak valami tárolás tartály, amely a motorháztető alatt 447 00:21:26,158 --> 00:21:30,030 valósul bitek, 0-ák és 1-esek, azonban a számítógép éppen erre. 448 00:21:30,030 --> 00:21:32,900 >> Így Scratch, ha szeretnénk, hogy a változó, 449 00:21:32,900 --> 00:21:34,840 tudjuk használni egy narancssárga blokk, mint ez. 450 00:21:34,840 --> 00:21:37,050 Hívjuk, hogy counter ebben a konkrét esetben. 451 00:21:37,050 --> 00:21:38,890 Én inicializálja azt 0-ra. 452 00:21:38,890 --> 00:21:41,080 És mi az én akkor csinálni? 453 00:21:41,080 --> 00:21:44,780 Örökre, mondjuk számláló, ami ha játszani azzal a Scratch, 454 00:21:44,780 --> 00:21:45,780 akkor csak látni Scratch. 455 00:21:45,780 --> 00:21:49,920 A macska vagy bármi jelmez teszel neki fog beszélni a számot kérdéses. 456 00:21:49,920 --> 00:21:52,840 >> Változás számláló 1 mint növelésével 1. 457 00:21:52,840 --> 00:21:56,580 És ez lesz a számít, amit akkor mi van? 458 00:21:56,580 --> 00:21:59,114 0 til végtelenig, vagy míg Scratch szünetek, 459 00:21:59,114 --> 00:22:01,030 vagy addig, amíg valami elveszti érdeklődését a figyel 460 00:22:01,030 --> 00:22:02,650 milyen magas is valójában számít. 461 00:22:02,650 --> 00:22:04,800 >> Tehát hogyan tudnánk konvertálni a C? 462 00:22:04,800 --> 00:22:06,480 Meg fog nézni egy kicsit rejtélyes. 463 00:22:06,480 --> 00:22:08,896 De ismétlem, ha megnézi az egyes Ezeknek a vonalaknak külön-külön 464 00:22:08,896 --> 00:22:10,410 Ezek a fajta felállás általában. 465 00:22:10,410 --> 00:22:13,526 Tehát látszólag int fog néhány speciális jelentése C. 466 00:22:13,526 --> 00:22:14,400 Majd meglátjuk, hogy az újra. 467 00:22:14,400 --> 00:22:15,810 Mellesleg azt jelenti egész. 468 00:22:15,810 --> 00:22:16,990 Tehát ez csak azt jelenti számát. 469 00:22:16,990 --> 00:22:18,920 Szóval ez a fajta üvegtál akarok, egy 470 00:22:18,920 --> 00:22:21,120 hogy képes tárolni a számokat, nem ping-pong labda. 471 00:22:21,120 --> 00:22:25,520 És én fogom használni az egyenlőségjel ott hozzárendelni a 0 érték. 472 00:22:25,520 --> 00:22:29,440 Szóval ez elég, mint a beállított számláló 0, de a C. 473 00:22:29,440 --> 00:22:32,840 >> Közben, míg igaz, hogy volt egyenértékű, persze, hogy örökre, 474 00:22:32,840 --> 00:22:35,980 annak ellenére, hogy ez egy kicsit rejtélyes, majd belül a kapcsos zárójelek. 475 00:22:35,980 --> 00:22:39,188 És azt lehet gondolni ezeket kapcsos zárójelek, amely beírhatja a billentyűzeten, 476 00:22:39,188 --> 00:22:43,110 mivel nagyon is, mint a görbület ezeket a sárga hurok blokkokat Scratch. 477 00:22:43,110 --> 00:22:45,700 Ez magában foglalja több sornyi kódot. 478 00:22:45,700 --> 00:22:48,120 >> Printf kezd egy kicsit ijesztő most, mert 479 00:22:48,120 --> 00:22:51,120 hogy nem csak idézi zárójelben. 480 00:22:51,120 --> 00:22:55,160 De mi mást is új szintaktikailag ebben a példában? 481 00:22:55,160 --> 00:22:57,300 Van egy százalék d. 482 00:22:57,300 --> 00:22:58,551 És akkor backslash n van. 483 00:22:58,551 --> 00:23:00,883 Mi nem látjuk, hogy korábban, még bár nem említette. 484 00:23:00,883 --> 00:23:01,886 Aztán ott van a vessző. 485 00:23:01,886 --> 00:23:03,010 És akkor ott van a számláló. 486 00:23:03,010 --> 00:23:05,010 >> De majd meglátjuk, csak a pillanatban, hogy ez csak 487 00:23:05,010 --> 00:23:09,080 szabványos szóval nyomtatása "Decimális szám", idézet, idézet vége, 488 00:23:09,080 --> 00:23:10,500 néhány decimális szám. 489 00:23:10,500 --> 00:23:13,370 De fogom mondani később hogy mi decimális szám. 490 00:23:13,370 --> 00:23:16,835 Tehát az a tény, hogy van egy vessző ebben a sorban mondás printf, 491 00:23:16,835 --> 00:23:18,710 azt jelenti, megy előre, és a nyomtatási néhány decimális szám. 492 00:23:18,710 --> 00:23:23,110 Ja, és mellesleg, ez a szám függetlenül az értéke változó. 493 00:23:23,110 --> 00:23:25,880 És így, hogy ez a több világos, akkor egy példát 494 00:23:25,880 --> 00:23:30,930 nemsokára bevonásával pontosan printf összefüggésben a valódi C programok. 495 00:23:30,930 --> 00:23:33,472 >> Most csak azért, hogy lezárja bizonyos Ezen konstrukciók. 496 00:23:33,472 --> 00:23:36,680 Logikai kifejezések, akkor lehet, hogy nem alkalom, hogy ezeket a programban 497 00:23:36,680 --> 00:23:39,450 de lehet, hogy nagyon jól, különösen, ha a körülmények. 498 00:23:39,450 --> 00:23:43,460 És így ez a két példa Scratch értem, ha x kisebb mint y, 499 00:23:43,460 --> 00:23:48,770 vagy ha x kisebb mint y és y kevesebb mint z, hogyan tudnánk fordítani, hogy? 500 00:23:48,770 --> 00:23:50,810 >> Nos, a C ez csak fog kinézni, mint ez. 501 00:23:50,810 --> 00:23:55,300 Egy kicsit rejtélyes, több zárójel, furcsa jellel is jelölhetünk, de alapvetően 502 00:23:55,300 --> 00:23:59,160 A gondolatok olyan egyszerű, mint azok vannak a puzzle-darabot világ. 503 00:23:59,160 --> 00:24:02,690 Mi bejelöli ha valami kevesebb, mint valami más. 504 00:24:02,690 --> 00:24:03,910 >> Mit szólnál körülmények között? 505 00:24:03,910 --> 00:24:09,710 Dióhéjban angolul, mit jelent ez a darab Scratch kód nem mondanál? 506 00:24:09,710 --> 00:24:11,050 >> Közönség: Összehasonlít két számot. 507 00:24:11,050 --> 00:24:13,760 >> David J. MALAN: Összehasonlít két számokat, és ha x kisebb mint y 508 00:24:13,760 --> 00:24:14,860 azt mondja, annyira. 509 00:24:14,860 --> 00:24:18,080 Ha x nagyobb mint y azt mondja, mint sok, más 510 00:24:18,080 --> 00:24:20,740 ha x egyenlő y azt mondja, annyira. 511 00:24:20,740 --> 00:24:22,180 Most hol x és y származik? 512 00:24:22,180 --> 00:24:22,680 Ki tudja. 513 00:24:22,680 --> 00:24:25,380 Ez a darab a Scratch kód az adott környezetben. 514 00:24:25,380 --> 00:24:29,050 De mit akarunk csinálni most lefordítani ez csak egy pillanatra látni. 515 00:24:29,050 --> 00:24:31,660 >> Így kapsz kényelmes ezen a héten Probléma Set 516 00:24:31,660 --> 00:24:34,190 0 játszani ebben a világban a bal oldalon, észre 517 00:24:34,190 --> 00:24:36,940 hogy az ötletek nem változik ezen a héten vagy a következő, vagy azon túl. 518 00:24:36,940 --> 00:24:38,690 Mi egyszerűen csak a írásához dolgok 519 00:24:38,690 --> 00:24:41,240 más módon a mi billentyűzet helyett a képre. 520 00:24:41,240 --> 00:24:44,577 >> Tehát, ha x kisebb mint y, és van valami zárójel ott, 521 00:24:44,577 --> 00:24:47,160 akkor van egy kis kapcsos zárójelek ismét, hogy milyen beépítsük 522 00:24:47,160 --> 00:24:48,970 csakúgy, mint a sárga puzzle darab van. 523 00:24:48,970 --> 00:24:53,000 És fogok printf x kisebb, mint Y, és így tovább. 524 00:24:53,000 --> 00:24:56,540 >> Milyen szép a C, mint látható itt, 525 00:24:56,540 --> 00:25:00,480 az, hogy nem kap ez fészkelő, fészkelő, fészkelő ez feltétlenül 526 00:25:00,480 --> 00:25:02,220 majd nyomja a kódot a megfelelő. 527 00:25:02,220 --> 00:25:04,990 Helyettük mindent felállás szépen tetszik. 528 00:25:04,990 --> 00:25:08,960 De ez csak egy esztétikai részletesen látni fogjuk ismét nemsokára. 529 00:25:08,960 --> 00:25:09,660 >> Rendben. 530 00:25:09,660 --> 00:25:13,290 Így jutunk vissza ez rejtélyes keres a program. 531 00:25:13,290 --> 00:25:15,180 Nézzük valójában írni egy kis kódot. 532 00:25:15,180 --> 00:25:16,830 Most, hogy megy a kódot írni? 533 00:25:16,830 --> 00:25:21,310 Annyi éven át, amit tulajdonosa Mac vagy PC, asztali vagy laptop, 534 00:25:21,310 --> 00:25:24,520 már valóban volt képes írhatunk programozás kódot. 535 00:25:24,520 --> 00:25:27,050 De akkor valószínűleg hiányzik egy speciális program. 536 00:25:27,050 --> 00:25:28,470 Akkor biztosan kódot írni. 537 00:25:28,470 --> 00:25:30,740 De nem feltétlenül, ki a dobozból, 538 00:25:30,740 --> 00:25:34,210 átalakítani, hogy a forráskód a tárgykód, 0s és 1s 539 00:25:34,210 --> 00:25:35,619 nélkül, amit a számítógépen? 540 00:25:35,619 --> 00:25:36,410 Közönség: Compiler. 541 00:25:36,410 --> 00:25:37,630 David J. MALAN: Tehát egy fordító, jobbra. 542 00:25:37,630 --> 00:25:39,730 Most a legtöbb, akkor valószínűleg nem maga a fordító, 543 00:25:39,730 --> 00:25:41,259 soha le a fordító. 544 00:25:41,259 --> 00:25:44,300 De látni fogod azt akkor töltse le mint a legtöbb más szoftver. 545 00:25:44,300 --> 00:25:47,470 A világ a Mac OS, lehet, hogy letölteni vagy letöltött már 546 00:25:47,470 --> 00:25:50,437 úgynevezett Xcode vagy GCC vagy csenget. 547 00:25:50,437 --> 00:25:52,270 Ha jön a A Windows a világ lehet, hogy 548 00:25:52,270 --> 00:25:56,190 letöltött Visual Studio, Visual Basic, a környezet, mint ezt. 549 00:25:56,190 --> 00:25:59,200 Van több tucat fordítóprogramok ezekben a napokban, hogy lehet használni. 550 00:25:59,200 --> 00:26:01,940 De a rövid itt az, hogy ez lenne a fájdalom 551 00:26:01,940 --> 00:26:04,480 és, őszintén szólva, a technológiai rémálom száz 552 00:26:04,480 --> 00:26:07,680 Az emberek különböző számítógép konfigurációk az összes 553 00:26:07,680 --> 00:26:09,800 beállítani a gép pontosan ugyanúgy 554 00:26:09,800 --> 00:26:11,700 hogy mindannyian ugyanazon az oldalon. 555 00:26:11,700 --> 00:26:15,240 >> Tehát mi, hanem csinálni A CS50 is adunk 556 00:26:15,240 --> 00:26:18,349 szabványos környezet, a Linux környezetben ez 557 00:26:18,349 --> 00:26:20,140 majd meg egy kicsit valami ilyesmi. 558 00:26:20,140 --> 00:26:22,980 Látni fogod, több ez a Probléma Set 1 specifikáció, amely 559 00:26:22,980 --> 00:26:25,330 megy online péntek este. 560 00:26:25,330 --> 00:26:28,360 >> És hogy ez mit jelent az, hogy ezentúl 561 00:26:28,360 --> 00:26:32,060 lesz, hogy képes legyen töltse le és telepítse a programot 562 00:26:32,060 --> 00:26:33,650 úgynevezett CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 És fogsz letölteni és telepíteni másik program neve 564 00:26:36,275 --> 00:26:40,300 a hypervisor, amely csak egy divatos módja ennek elérésére. 565 00:26:40,300 --> 00:26:44,600 Akár saját Mac vagy PC, vagy a Linux számítógép vagy a Solaris számítógép, 566 00:26:44,600 --> 00:26:46,830 vagy bármi őrült üzemeltetési rendszer futsz, 567 00:26:46,830 --> 00:26:49,820 fogsz tölteni egy programot úgynevezett hypervisor, ami 568 00:26:49,820 --> 00:26:53,350 fog futni a CS50 Készülék a számítógépen 569 00:26:53,350 --> 00:26:55,430 Nem számít, milyen operációs rendszer van. 570 00:26:55,430 --> 00:27:00,640 Egy más szavakkal hypervisor átalakítja a dolog, hogy milyen nyelven, 571 00:27:00,640 --> 00:27:03,850 bármilyen utasítást a saját számítógép megért. 572 00:27:03,850 --> 00:27:04,962 >> Tehát ez a réteg. 573 00:27:04,962 --> 00:27:06,920 És ismét, ez a fajta A tematikus számítógép 574 00:27:06,920 --> 00:27:08,722 tudomány, az épület tetején a dolgokat. 575 00:27:08,722 --> 00:27:09,680 Lehet, hogy a Windows-t. 576 00:27:09,680 --> 00:27:10,710 Lehet, hogy a Mac OS. 577 00:27:10,710 --> 00:27:12,960 De jövő héten kezd te fog letöltött 578 00:27:12,960 --> 00:27:14,980 a szabad szoftver úgynevezett hypervisor. 579 00:27:14,980 --> 00:27:17,800 Fogsz letöltött egy darab A szoftver az úgynevezett CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Ez fog futni a hypervisor, amely fogja futtatni a számítógépen. 581 00:27:21,050 --> 00:27:23,030 És a végeredmény hogy mindannyian 582 00:27:23,030 --> 00:27:26,220 Van egy egyszerű ablak, mint ezt a Mac vagy PC 583 00:27:26,220 --> 00:27:30,160 hogy ad nekünk az illúziót minden fut ugyanazt az operációs rendszert, 584 00:27:30,160 --> 00:27:32,800 nélkül bármely egyéb hatással van a számítógép. 585 00:27:32,800 --> 00:27:34,870 És akkor teljes képernyőn , és lényegében viselkedik 586 00:27:34,870 --> 00:27:37,550 mintha fut egy operációs rendszert, a Linux, 587 00:27:37,550 --> 00:27:40,270 ami pontosan a CS50 Appliance alapul. 588 00:27:40,270 --> 00:27:42,930 >> Szóval valóban használja ezt a Most, hogy írjon egy programot. 589 00:27:42,930 --> 00:27:45,450 Írhatsz egy programot a Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Írhatsz egy programot a TextEdit, vagy Notepad, 591 00:27:48,160 --> 00:27:51,880 vagy WordPad, vagy elég sok olyan szó feldolgozó program, amit valaha használt. 592 00:27:51,880 --> 00:27:55,174 De a valóság az, hogy nem szabad használat valóban ezen programok bármelyikének. 593 00:27:55,174 --> 00:27:57,840 Ön bizonyára nem kell használni valami, mint a Microsoft Word, amely 594 00:27:57,840 --> 00:28:01,120 rendelkezik merész néző dőlt, és nagyobb betűk kisebb betűk, 595 00:28:01,120 --> 00:28:03,560 mert a számítógép nem érdekel sem az. 596 00:28:03,560 --> 00:28:05,600 Minden a számítógép fog törődni az 597 00:28:05,600 --> 00:28:09,040 Angol mint utasítás C nyelven írt 598 00:28:09,040 --> 00:28:12,050 >> Szóval, mit fogunk csinálni benne A CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 van egy program szabadon rendelkezésre áll, és ez 600 00:28:14,290 --> 00:28:17,360 előre telepített ebben készülék, az úgynevezett Gedit. 601 00:28:17,360 --> 00:28:22,280 És Gedit csak egy szuper egyszerű szövegszerkesztő, mint a Mac OS TextEdit, 602 00:28:22,280 --> 00:28:26,200 mint például a Windows Notepad hogy fog meg egy kicsit valahogy így. 603 00:28:26,200 --> 00:28:28,910 >> Szóval valójában nem nézd diák ezt. 604 00:28:28,910 --> 00:28:32,580 De nézzük tényleg megy a környezet is. 605 00:28:32,580 --> 00:28:36,090 Én megyek előre, és jelentkezz be, ebben a másik ablakban, 606 00:28:36,090 --> 00:28:40,910 az én CS50 Appliance, amit már előre van telepítve a laptop itt. 607 00:28:40,910 --> 00:28:43,771 >> Figyeljük meg, hogy, mint a Windows és Mac OS, akkor van néhány menü. 608 00:28:43,771 --> 00:28:45,520 , Mint a Windows, hogy hozza le ott, hanem 609 00:28:45,520 --> 00:28:47,020 A Mac OS, amely helyére teszi le ott. 610 00:28:47,020 --> 00:28:48,930 De a valóság az, hogy ez mindenféle ugyanaz. 611 00:28:48,930 --> 00:28:50,770 És itt van egy egész csomó szoftver. 612 00:28:50,770 --> 00:28:51,770 Van Dropbox. 613 00:28:51,770 --> 00:28:54,780 Van egy csomó kiegészítők, grafikai programokat, hogy mi lesz 614 00:28:54,780 --> 00:28:56,430 a későbbiekben a kifejezés a probléma készletek. 615 00:28:56,430 --> 00:28:59,650 Van egy böngésző beépített, így hogy ez egy teljes értékű számítógép 616 00:28:59,650 --> 00:29:01,240 belsejében egy számítógép. 617 00:29:01,240 --> 00:29:04,170 >> De fogom kattintson erre legbaloldalibb fehér ikon van, 618 00:29:04,170 --> 00:29:05,890 amely az ikonra Gedit. 619 00:29:05,890 --> 00:29:09,650 És ez meg fog nyitni egy ablakot amely három panel hozzá, 620 00:29:09,650 --> 00:29:12,590 a bal oldali, a felső egy, és a legalsó. 621 00:29:12,590 --> 00:29:16,071 >> Most már ezen a jobb felső sarokban az egyik, hogy Fogok valójában írni egy kis kódot. 622 00:29:16,071 --> 00:29:16,820 Szóval ezt ,. 623 00:29:16,820 --> 00:29:19,040 Én megyek a File, Save. 624 00:29:19,040 --> 00:29:22,100 És lehet, hogy soha nem láttam az adott ablak előtt. 625 00:29:22,100 --> 00:29:23,620 De ez olyan, mint a Mac OS és a Windows. 626 00:29:23,620 --> 00:29:25,490 Ez csak egy ablak az összes mappa 627 00:29:25,490 --> 00:29:27,290 hogy van benne az a számítógép. 628 00:29:27,290 --> 00:29:30,320 >> És én fogom megmenteni a fájl hello.c. 629 00:29:30,320 --> 00:29:32,690 És én megyek előre, és kattintson a Mentés gombra. 630 00:29:32,690 --> 00:29:36,364 És most észre van egy fül A bal felső hívott hello.c. 631 00:29:36,364 --> 00:29:38,280 Így valószínűleg elég ismerős is, ha már nem 632 00:29:38,280 --> 00:29:40,240 használják ezt a különleges programot, mielőtt. 633 00:29:40,240 --> 00:29:44,890 >> És most megyek, hogy írja be azokat meglehetősen rejtélyes parancsokat 634 00:29:44,890 --> 00:29:46,360 hogy láttunk egy perce. 635 00:29:46,360 --> 00:29:49,330 Közé tartozik, standard I / O.h. 636 00:29:49,330 --> 00:29:50,600 További információk, hogy hamarosan. 637 00:29:50,600 --> 00:29:55,670 Int main üres, nyitott göndör zárójel, zárt zárójel. 638 00:29:55,670 --> 00:30:01,570 Aztán belsejében ott azt hiszem ahol volt "hello world" pontosvessző. 639 00:30:01,570 --> 00:30:03,100 És most menteni. 640 00:30:03,100 --> 00:30:08,780 >> Tehát ez egy olyan program C-ben írt, írt, ezért a forráskódot. 641 00:30:08,780 --> 00:30:10,720 De nem csak futni a program. 642 00:30:10,720 --> 00:30:13,390 Valahogy szeretnék duplázni kattintson egy ikonra valahol, 643 00:30:13,390 --> 00:30:16,390 de nincs ikon létezik más mint a forráskódban. 644 00:30:16,390 --> 00:30:20,359 Mi az, megint, ez a folyamat most, hogy Meg kell futtatni ezt a fájlt át? 645 00:30:20,359 --> 00:30:21,150 Közönség: Compiler. 646 00:30:21,150 --> 00:30:22,399 David J. MALAN: Tehát a fordító. 647 00:30:22,399 --> 00:30:24,890 Tehát a különböző számítógépeket Ehhez különböző módokon. 648 00:30:24,890 --> 00:30:27,480 De mit tettünk itt a CS50 Appliance ez 649 00:30:27,480 --> 00:30:31,260 képviselője, hogyan lehet Ehhez számos különböző rendszerek, 650 00:30:31,260 --> 00:30:34,036 az Én csak fog futtatni egy parancsot hívott make. 651 00:30:34,036 --> 00:30:35,660 , És a szó szoros értelmében fog tenni. 652 00:30:35,660 --> 00:30:36,640 Csinálj nekem egy programot. 653 00:30:36,640 --> 00:30:39,060 >> Tehát, hogy nem fog fut a fordító nekem. 654 00:30:39,060 --> 00:30:42,160 És a program neve Azt szeretnénk, hogy a Hello. 655 00:30:42,160 --> 00:30:43,510 Most, hogy egy program. 656 00:30:43,510 --> 00:30:47,170 , És elég okos ahhoz, hogy észre, hogy ha azt mondom, hogy szia, 657 00:30:47,170 --> 00:30:50,980 ez fog kinézni automatikusan Egy nevű fájlt hello.c 658 00:30:50,980 --> 00:30:53,420 csak azért, mert ez a ahogy ez beállítva. 659 00:30:53,420 --> 00:31:00,300 >> Tehát, amikor már az Enter leütése itt, ez őrült rejtélyes vonal csak most végre. 660 00:31:00,300 --> 00:31:02,720 És hidd el, mielőtt hosszú, belül csak néhány nappal, 661 00:31:02,720 --> 00:31:05,590 meg fogod érteni, mi minden Az, hogy hülyeség eszközök. 662 00:31:05,590 --> 00:31:11,150 De most, csak tudom, hogy, hogy kiváltott végrehajtása a fordító. 663 00:31:11,150 --> 00:31:13,290 Más szavakkal, úgy találta, a fordító a számítógépen 664 00:31:13,290 --> 00:31:14,820 az előre telepített A CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 hogy mi adja neked a probléma Set 1. 666 00:31:16,560 --> 00:31:20,990 És aztán hello.c mint bemenet, és elő látszólag 667 00:31:20,990 --> 00:31:23,040 0s és 1s kimenetként. 668 00:31:23,040 --> 00:31:29,410 >> És alapértelmezés mit csinál ez takarít azok 0s és 1s nevű fájlt helló. 669 00:31:29,410 --> 00:31:33,180 És bár ez a szintaxis is lehet, hogy lehet új neked, egyszerűen azzal, hogy pont 670 00:31:33,180 --> 00:31:37,110 slash Helló lesz a eszközöket, amelyekkel én vezetem ezt a programot. 671 00:31:37,110 --> 00:31:40,360 >> Most és legalább egy-két A hét szinte minden program 672 00:31:40,360 --> 00:31:44,230 Írunk lesznek a fekete-fehér szöveg ablakokat. 673 00:31:44,230 --> 00:31:47,006 Nem egér, nem csattanó, nincs ablak, nincs ikonok. 674 00:31:47,006 --> 00:31:49,630 Fogjuk, hogy ez egyszerű és elsősorban a mögöttes gondolatok 675 00:31:49,630 --> 00:31:52,490 kezdetben mielőtt eljutunk valami magasabb szintjén, például, 676 00:31:52,490 --> 00:31:56,410 mint a kitörni játék, hogy beszéltünk körülbelül az első előadás a múlt héten. 677 00:31:56,410 --> 00:32:00,820 >> Így amikor az Enter leütése itt, ez egyenértékű egy szöveges környezetben csak 678 00:32:00,820 --> 00:32:03,272 hogy duplán kattintva egy ikon nevű helló. 679 00:32:03,272 --> 00:32:05,480 Mit vársz akarat történni, ha az Enter leütése akkor? 680 00:32:05,480 --> 00:32:07,120 >> Közönség: Nem lesz print "hello world". 681 00:32:07,120 --> 00:32:10,000 >> David J. MALAN: Remélhetőleg kiírja a "Hello World". 682 00:32:10,000 --> 00:32:11,370 És valóban így volt. 683 00:32:11,370 --> 00:32:13,690 Most van itt egy kis rejtélyes szintaxis itt. 684 00:32:13,690 --> 00:32:15,950 Nézzük hátra mindössze egy pillanatra, és nézd meg, mi 685 00:32:15,950 --> 00:32:19,530 nem tudja elindítani következtet csupán bütyköl, próbál, és nem, 686 00:32:19,530 --> 00:32:21,130 arról, hogy mi folyik itt. 687 00:32:21,130 --> 00:32:23,609 Mit tegyek, ha megszabadulni a backslash n? 688 00:32:23,609 --> 00:32:25,650 Most néhányan közületek, akik már programozott előtt valószínűleg 689 00:32:25,650 --> 00:32:27,054 azonnal tudni, hogy ez mit jelent. 690 00:32:27,054 --> 00:32:29,220 De azoknak, akik már soha programozott korábban, 691 00:32:29,220 --> 00:32:34,052 legalábbis azt gondolja, hogy mi folyik változtatni, amikor ismételni ezt a programot? 692 00:32:34,052 --> 00:32:37,010 Szóval megyek vissza az én kis fekete-fehér ablak, amely 693 00:32:37,010 --> 00:32:39,290 az ablak, amelyben Tudom fordítani ezt. 694 00:32:39,290 --> 00:32:41,130 Megyek újrafordítani helló. 695 00:32:41,130 --> 00:32:43,520 Megyünk, hogy az azonos rejtélyes sorozat parancsok. 696 00:32:43,520 --> 00:32:45,719 És én fogom csinálni pont perjel helló. 697 00:32:45,719 --> 00:32:48,260 És most valaki, ha lenne, aki soha nem programozott korábban, 698 00:32:48,260 --> 00:32:49,770 mi más lehet ebben az időben? 699 00:32:49,770 --> 00:32:50,020 Igen. 700 00:32:50,020 --> 00:32:51,840 >> Közönség: Ez nem áll le nyomtatás "hello world". 701 00:32:51,840 --> 00:32:52,660 >> David J. MALAN: Ez megy hogy-- sajnálom? 702 00:32:52,660 --> 00:32:54,210 >> Közönség: Nem fog megállítani a nyomtatást meg? 703 00:32:54,210 --> 00:32:55,810 >> David J. MALAN: Nem fog állítsa le a nyomtatást "hello world". 704 00:32:55,810 --> 00:32:56,560 Tehát nem egy rossz ötlet. 705 00:32:56,560 --> 00:32:58,633 Más ötlet? 706 00:32:58,633 --> 00:32:59,132 Igen. 707 00:32:59,132 --> 00:33:00,060 >> Közönség: Hibaüzenet? 708 00:33:00,060 --> 00:33:01,750 >> David J. MALAN: Error üzenet, OK, lehet. 709 00:33:01,750 --> 00:33:02,250 Mi van még? 710 00:33:02,250 --> 00:33:05,479 Közönség: Lehet, hogy nyomtassa ki a konzol a pontosvessző is? 711 00:33:05,479 --> 00:33:08,270 David J. MALAN: Lehet nyomtatni a konzol a pontosvessző is. 712 00:33:08,270 --> 00:33:11,950 Szóval lehet, hogy a backslash akkor valami fajta terminous ez fontos. 713 00:33:11,950 --> 00:33:14,860 Minden más gondolatok? 714 00:33:14,860 --> 00:33:16,412 >> Tehát minden jó ötletet. 715 00:33:16,412 --> 00:33:18,370 És valóban, ez lesz hogy egy hibaüzenetet. 716 00:33:18,370 --> 00:33:20,400 Ez talán a legvalószínűbb hogy a válasz általában 717 00:33:20,400 --> 00:33:22,420 A következő hetekben ahogy megtanuljuk kódot. 718 00:33:22,420 --> 00:33:27,680 >> De most ne feledjük, hogy a számítógépek csak, hogy mit mond nekik, hogy nem. 719 00:33:27,680 --> 00:33:30,400 Ugyanúgy, mint a nevetséges mogyoró a vaj pl. 720 00:33:30,400 --> 00:33:33,860 A humán számítógépeket csak feltételezett arra, amit mondtam nekik, hogy nem. 721 00:33:33,860 --> 00:33:36,250 Tehát ebben az esetben, ha ne mondd el a számítógép 722 00:33:36,250 --> 00:33:41,190 mozgatni, hogy a villogó kurzort a következő sorban, ez nem fog csinálni. 723 00:33:41,190 --> 00:33:45,390 Tehát, amikor elindul a program Most veszi észre a különbséget. 724 00:33:45,390 --> 00:33:46,900 >> Úgy néz ki, mint egy bogár. 725 00:33:46,900 --> 00:33:49,190 Ez egy esztétikai hiba, talán. 726 00:33:49,190 --> 00:33:53,310 De mi a különbség ezt kimenet szemben az utolsó nyilvánvalóan? 727 00:33:53,310 --> 00:33:53,810 Igen. 728 00:33:53,810 --> 00:33:54,920 >> Közönség: Nem csinál egy új sort. 729 00:33:54,920 --> 00:33:56,586 >> David J. MALAN: Nem csinál egy új sort. 730 00:33:56,586 --> 00:33:58,740 Most azok, akik Van talán készült weboldalak 731 00:33:58,740 --> 00:34:01,910 előtt, lehet, hogy tudja, a BR tag vagy a paragrafus, 732 00:34:01,910 --> 00:34:03,120 nagyon hasonló szellemben. 733 00:34:03,120 --> 00:34:06,680 A böngésző figyelmen kívül hagyja, amíg mondani, hogy pontosan mit kell csinálni. 734 00:34:06,680 --> 00:34:10,020 Hasonlóképpen, a nyelv, mint a C csak csinálni, amit te mondasz, hogy igen. 735 00:34:10,020 --> 00:34:12,730 >> Így az oka, hogy Ezekben a példákban az összes, 736 00:34:12,730 --> 00:34:15,350 eddig, van ilyen véletlenül volt ez a backslash 737 00:34:15,350 --> 00:34:18,560 ott, ez az eszköz amellyel ki magad 738 00:34:18,560 --> 00:34:21,380 mint egy új sor karaktert, hogy úgy mondjam. 739 00:34:21,380 --> 00:34:26,219 És tudod milyen értékelni, talán, hogy ez meg ilyen hülye 740 00:34:26,219 --> 00:34:27,070 ha mást nem. 741 00:34:27,070 --> 00:34:29,150 Ha akartam egy új sort, csak Enter használatával, majd a kedves 742 00:34:29,150 --> 00:34:32,219 A mészáros a kód ilyen Nem igazán dörzsölje meg a helyes utat. 743 00:34:32,219 --> 00:34:33,830 És akkor is, ha nem igazán érdekel, ezen a ponton, 744 00:34:33,830 --> 00:34:35,830 észre fogod venni, hogy ez nem egy különösen 745 00:34:35,830 --> 00:34:37,870 jól néz kódrészletet. 746 00:34:37,870 --> 00:34:39,969 >> És akkor mi van a világ határozott évvel ezelőtt 747 00:34:39,969 --> 00:34:43,420 hogy ha azt szeretné, hogy a kurzort egy új sort kifejezetten, 748 00:34:43,420 --> 00:34:46,332 akkor azt explicit módon mondják új vonal, backslash n. 749 00:34:46,332 --> 00:34:48,040 És van egy másik szimbólumok, mint ezt. 750 00:34:48,040 --> 00:34:50,719 De most csak összpontosítani backslash n. 751 00:34:50,719 --> 00:34:53,790 >> Most nézzük, hogy a program egy kicsit érdekes. 752 00:34:53,790 --> 00:34:59,200 Én megyek előre, és Ebben az időben nyit egy új fájlt. 753 00:34:59,200 --> 00:35:02,520 Fogom menteni ezt a Helló-1.c. 754 00:35:02,520 --> 00:35:05,540 És csak a hecc kedvéért, én megyek menj tedd be a Dropbox mappában. 755 00:35:05,540 --> 00:35:09,030 >> Ahogy látni fogod a CS50 dokumentáció a készülék, 756 00:35:09,030 --> 00:35:11,210 később ezen a héten probléma Set 1 fogjuk ösztönözni 757 00:35:11,210 --> 00:35:13,230 hogy használja Dropbox vagy Egyes egyenértékű szolgáltatást, 758 00:35:13,230 --> 00:35:15,430 mert akkor az összes kód a majd automatikusan biztonsági másolat. 759 00:35:15,430 --> 00:35:17,830 És ez az, amiért én már ment ebbe a mappába itt. 760 00:35:17,830 --> 00:35:20,230 >> És most fogok levelet kissé eltérő programot. 761 00:35:20,230 --> 00:35:24,740 Közé tartozik, standard I / O.h, int main semmis. 762 00:35:24,740 --> 00:35:29,660 És akkor itt printf, hello world, ami pontosan ugyanaz, mint korábban. 763 00:35:29,660 --> 00:35:32,450 >> De most akarok nyomtatni valamit ez egy kicsit más. 764 00:35:32,450 --> 00:35:34,800 Azt akarom, hogy nyomtassa ki, azt mondja: "Helló, David." 765 00:35:34,800 --> 00:35:37,590 Rendben, nyilvánvalóan, ez remélhetőleg 766 00:35:37,590 --> 00:35:40,360 abban az esetben, hogy ha én újrafordítani ezt a programot, futtassa újra azt, 767 00:35:40,360 --> 00:35:41,840 azt fogja mondani: "Helló, David." 768 00:35:41,840 --> 00:35:45,160 >> De mi van, ha azt akarom, hogy vezessenek be ez a fajta változó, 769 00:35:45,160 --> 00:35:49,240 fogalma a tartály, hogy fog tárolni D-a-v-i-d és nem nehéz ez a kódja 770 00:35:49,240 --> 00:35:50,600 a programom. 771 00:35:50,600 --> 00:35:53,430 Hát mi van, ha elkezdek csinál valamit, mint ez? 772 00:35:53,430 --> 00:35:57,120 >> Húr s, így ez a változó. 773 00:35:57,120 --> 00:36:00,250 Ha szeretne egy húr, más néven egy szót vagy kifejezést. 774 00:36:00,250 --> 00:36:03,485 A karakterek sorozata, amit mi a programozás hívni egy string. 775 00:36:03,485 --> 00:36:06,610 Mi csak úgy általánosságban hívás s ez, mert ez egy szép egyszerű nevet. 776 00:36:06,610 --> 00:36:08,010 De nevezhetjük bárminek. 777 00:36:08,010 --> 00:36:12,920 >> Fogok mondani húr s egyenlő idézet idézet vége: "David," pontosvessző. 778 00:36:12,920 --> 00:36:18,330 És most azt szeretné szúrni D-a-v-i-d abba, amit én a nyomtatást. 779 00:36:18,330 --> 00:36:23,720 És mielőtt láttuk a teaser a a képernyő néhány speciális szintaxis 780 00:36:23,720 --> 00:36:26,050 amely lehetővé tette számunkra, hogy helyettesítő értéket. 781 00:36:26,050 --> 00:36:29,250 Mi volt a különleges szimbólum néhány diák ezelőtt? 782 00:36:29,250 --> 00:36:30,040 >> Így százalék. 783 00:36:30,040 --> 00:36:33,830 Abban az időben ez volt százalék d decimális szám. 784 00:36:33,830 --> 00:36:35,850 Ez nem igazán tűnik releváns. 785 00:36:35,850 --> 00:36:38,650 Kiderült, hogy a másik százalék szimbólum, 786 00:36:38,650 --> 00:36:42,810 amely százalék s, amely áll a helyőrző egy karakterlánc. 787 00:36:42,810 --> 00:36:49,350 >> Tehát most, nagyon egyszerű, én vagyok menni, hogy helló-1, 788 00:36:49,350 --> 00:36:54,210 mivel ez a fájl neve Helló-1.c, és nyomja meg az Enter. 789 00:36:54,210 --> 00:36:56,230 És elszúrtam. 790 00:36:56,230 --> 00:36:57,394 Mi folyik itt? 791 00:36:57,394 --> 00:37:00,560 Nos, itt, ahol meg kell kezdeni értékelik, hogy mi ebben a parancs 792 00:37:00,560 --> 00:37:02,810 line környezetben, ez csak szöveges környezetben. 793 00:37:02,810 --> 00:37:06,114 Nincs az ikonra kattintva mint mappák most. 794 00:37:06,114 --> 00:37:07,280 És gondolj vissza egy perce. 795 00:37:07,280 --> 00:37:10,740 Milyen mappa nem mondok Én megtakarítás kódomat? 796 00:37:10,740 --> 00:37:11,657 Így a Dropbox mappában. 797 00:37:11,657 --> 00:37:12,989 Lehetett volna hívott semmit. 798 00:37:12,989 --> 00:37:14,530 De előfordul, hogy hívják Dropbox. 799 00:37:14,530 --> 00:37:18,380 Szóval valahogy meg kell duplán kattintani hogy Dropbox mappában annak érdekében, hogy 800 00:37:18,380 --> 00:37:21,657 bele, és kap az én kód neve hello-1.c. 801 00:37:21,657 --> 00:37:24,490 Sőt, hadd menjen előre, és minimálisra csökkenti Ebben az ablakban egy pillanatra. 802 00:37:24,490 --> 00:37:27,560 Csakúgy, mint a Windows és a Mac OS, vannak mappák Linux. 803 00:37:27,560 --> 00:37:29,410 Vannak olyan mappa a CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Csak éppen most szorítsák magunkat ezt a szöveget környezetben. 805 00:37:32,380 --> 00:37:34,700 >> De ha a Double Click A Dropbox, észre ott 806 00:37:34,700 --> 00:37:37,210 az a fájl, amit szeretnék fordítani. 807 00:37:37,210 --> 00:37:41,430 De kell ez a fekete-fehér terminál ablak, hogy úgy mondjam. 808 00:37:41,430 --> 00:37:45,750 De szükségem van, tehát, hogy mozogni ebbe a mappába vagy könyvtárba. 809 00:37:45,750 --> 00:37:48,290 Szóval kissé misztikus, de Majd megszokod, hogy ezt is. 810 00:37:48,290 --> 00:37:50,430 >> A világ a Linux, ami ismét az operációs 811 00:37:50,430 --> 00:37:54,860 rendszer kifutunk belül a CS50 Készülék, van egy parancs az úgynevezett CD-t. 812 00:37:54,860 --> 00:37:58,310 Ami azt jelenti, hogy képes CD, tér, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, változás könyvtárba. 814 00:37:59,900 --> 00:38:00,400 Jobb. 815 00:38:00,400 --> 00:38:02,890 Vissza a nap, amikor az emberek feltalálás számítógépek és operációs 816 00:38:02,890 --> 00:38:05,806 rendszerek, mint ez, azt akarták, hogy írja be a legkevesebb billentyűleütéseket lehetséges. 817 00:38:05,806 --> 00:38:08,760 Így a legegyszerűbb módja annak, hogy változás könyvtár volt CD. 818 00:38:08,760 --> 00:38:13,910 >> Szóval ha megüt CD, tér Dropbox, észre, mi változott itt. 819 00:38:13,910 --> 00:38:16,480 Belsejében zárójelek A készülék fajta 820 00:38:16,480 --> 00:38:19,360 A humoring én és emlékeztetve, hogy hol vagyok. 821 00:38:19,360 --> 00:38:21,480 Így a nyitott mappa Dropbox. 822 00:38:21,480 --> 00:38:24,950 Ha most írja LS lista, ismét tömör, 823 00:38:24,950 --> 00:38:27,540 mert az emberek nem akartak írja vissza a nap l-i-s-t. 824 00:38:27,540 --> 00:38:29,300 Így ahelyett, tette ls. 825 00:38:29,300 --> 00:38:30,110 >> Az Enter billentyűt. 826 00:38:30,110 --> 00:38:35,740 Figyeld meg látok két dolog, helló-1.c, és akkor ez a rejtélyes dolog, forrás 1m. 827 00:38:35,740 --> 00:38:38,310 Ez csak az én így mondom forráskódja 1 hét hétfő. 828 00:38:38,310 --> 00:38:42,020 Ez egy mappát I letöltött CS50 honlapján, amit korábban tett ma 829 00:38:42,020 --> 00:38:43,990 és csak tedd be a készülék előre. 830 00:38:43,990 --> 00:38:47,550 >> De most az egyetlen dolog, amit az érdekel, hogy hogy ez a program. 831 00:38:47,550 --> 00:38:50,440 Tehát, amikor azt írja, hogy szia-1, Enter. 832 00:38:50,440 --> 00:38:51,320 A fenébe. 833 00:38:51,320 --> 00:38:53,060 Valami nem stimmel. 834 00:38:53,060 --> 00:38:54,580 Szóval kötekedik ezt szét. 835 00:38:54,580 --> 00:38:58,489 És sajnos ez az, ahol a dolgok egy kicsit stresszes az első, 836 00:38:58,489 --> 00:39:00,280 legalábbis ha neked van soha előtt programozott. 837 00:39:00,280 --> 00:39:00,980 >> Istenem. 838 00:39:00,980 --> 00:39:04,990 Írtam egy két vonal program Van négy sora hibákat. 839 00:39:04,990 --> 00:39:07,180 Szóval, mi folyik itt. 840 00:39:07,180 --> 00:39:11,370 Az első és legfontosabb mindig lépjünk vissza és megtalálja az első hibaüzenet, 841 00:39:11,370 --> 00:39:15,730 mert sokszor fordítóprogramok csak összezavarodnak, amit te és én. 842 00:39:15,730 --> 00:39:17,000 Fordítóprogramok elég buta. 843 00:39:17,000 --> 00:39:18,360 Majd csak az, amit te mondd meg nekik, hogy nem. 844 00:39:18,360 --> 00:39:21,484 És ha megzavarja őket, ők csak majd, hogy milyen dobja fel a kezét 845 00:39:21,484 --> 00:39:25,010 és talán dobja több hibaüzenetek mint valóban fontosak. 846 00:39:25,010 --> 00:39:26,380 >> Tehát nézzük meg az első. 847 00:39:26,380 --> 00:39:27,540 Super rejtélyes először. 848 00:39:27,540 --> 00:39:31,050 De bejelentés, itt a neve fájlt, amit elrontottam látszólag. 849 00:39:31,050 --> 00:39:36,570 Colon 5, vastagbél 5 csak azt jelenti, a 5. sor az ötödik karakter. 850 00:39:36,570 --> 00:39:39,760 Így ötödik oszlop karakterekből ha úgy tetszik, hiba. 851 00:39:39,760 --> 00:39:41,870 A be nem jelentett azonosító karakterlánc. 852 00:39:41,870 --> 00:39:43,120 Gondolt szabvány n? 853 00:39:43,120 --> 00:39:44,850 >> Nem, úgy értem húr. 854 00:39:44,850 --> 00:39:47,640 És akkor ez a fajta másolás és beillesztés 855 00:39:47,640 --> 00:39:50,700 amit beírtam igazán felhívni a a figyelmet arra, elcsesztem. 856 00:39:50,700 --> 00:39:54,260 Tehát valamilyen okból C, vagy legalább a fordító 857 00:39:54,260 --> 00:39:56,470 nem érti a szót húr. 858 00:39:56,470 --> 00:39:57,890 És ez azért van, mert mi tette fel. 859 00:39:57,890 --> 00:40:01,440 Tehát húr nem létezik C. Mi CS50 csinál, 860 00:40:01,440 --> 00:40:03,380 az első néhány hét alatt csak az osztály, 861 00:40:03,380 --> 00:40:05,700 A mi az egyes képzési kerekek, hogy úgy mondjam. 862 00:40:05,700 --> 00:40:11,160 És hogy ezeket a képzés kerekek belsejében egy speciális nevű fájlt CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Tehát ez a második a két fájl nevek, látszólag véget pont h. 864 00:40:14,970 --> 00:40:16,300 Nézzük visszatekerés. 865 00:40:16,300 --> 00:40:19,360 Printf nyilatkozat vagy funkció hogy látszólag kiírja valami 866 00:40:19,360 --> 00:40:20,580 a képernyőre. 867 00:40:20,580 --> 00:40:23,470 De te nem látsz engem végre printf, jobbra. 868 00:40:23,470 --> 00:40:26,360 Valaki évvel ezelőtt végrehajtott printf. 869 00:40:26,360 --> 00:40:30,420 Milyen fájlt kíván fogadást ő vagy ő tesz a végrehajtás 870 00:40:30,420 --> 00:40:34,270 A printf, a kód printf? 871 00:40:34,270 --> 00:40:36,860 >> Nevű fájlt szabványos I / O.h. 872 00:40:36,860 --> 00:40:39,930 Sőt, ez valószínűleg Két kép, standard I / O.h, 873 00:40:39,930 --> 00:40:42,650 amely áll a header fájlt, és standard I / O.c, 874 00:40:42,650 --> 00:40:44,060 amely áll a C forráskód. 875 00:40:44,060 --> 00:40:48,220 Így ő néhány éve lehuppant a kódot, azt írták be, hogy a fájl 876 00:40:48,220 --> 00:40:51,240 hogy az emberek, mint mi évvel később is tartalmazza azt, 877 00:40:51,240 --> 00:40:53,040 hogy úgy mondjam, a saját programokat. 878 00:40:53,040 --> 00:40:56,320 >> És valóban, ez az, amit a font jel szó követi közé teszi. 879 00:40:56,320 --> 00:41:00,250 Úgy néz ki, a helyi merevlemezen, megtalálja a fájlt a Standard I / O.h, 880 00:41:00,250 --> 00:41:03,840 majd hatékonyan másolatok és beilleszti belsejébe saját fájlt. 881 00:41:03,840 --> 00:41:07,210 Tehát most a programot tudja hogyan lehet nyomtatni a képernyőn. 882 00:41:07,210 --> 00:41:11,120 >> Tehát a logika, ahol A húr meghatározása? 883 00:41:11,120 --> 00:41:12,260 >> Közönség: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> David J. MALAN: CS50.h. 885 00:41:13,290 --> 00:41:15,540 És valóban, ez az, amit mi, A fő személyzet, megtette. 886 00:41:15,540 --> 00:41:19,590 Már találtak néhány adattípusok, hogy úgy mondjam, mint egy húr, 887 00:41:19,590 --> 00:41:22,370 mellett is meg kap ingyen, mint egy int. 888 00:41:22,370 --> 00:41:26,010 És majd meglátjuk, mások, mint a char egy karaktert, és még néhány. 889 00:41:26,010 --> 00:41:30,670 Belsejében CS50.h látszólag legalább néhány említést húr. 890 00:41:30,670 --> 00:41:34,980 >> Tehát most hadd menjen előre és futtassa újra make helló-1. 891 00:41:34,980 --> 00:41:37,100 Majd nagyítás újra és át az ujjaimat. 892 00:41:37,100 --> 00:41:41,370 Most azáltal, hogy tett egy változtatni rögzítettem a legtöbb dolgot. 893 00:41:41,370 --> 00:41:42,100 De a fenébe is. 894 00:41:42,100 --> 00:41:44,290 Több százalékot, mint az adatok érveket. 895 00:41:44,290 --> 00:41:45,980 Mit csináltam rosszul ebben az időben? 896 00:41:45,980 --> 00:41:47,420 >> Így még mindig elég rejtélyes. 897 00:41:47,420 --> 00:41:51,560 De ez a hiba a 7. sor és a karakter 21. 898 00:41:51,560 --> 00:41:53,880 Tehát nézzük meg itt. 899 00:41:53,880 --> 00:41:55,350 Ez egy kis finom. 900 00:41:55,350 --> 00:41:59,167 De ha úgy gondolja, hogy mi az alapvető ötletek itt, 901 00:41:59,167 --> 00:42:00,500 talán tudjuk ugratni ezt szét. 902 00:42:00,500 --> 00:42:02,300 >> Így printf a neve a funkciót. 903 00:42:02,300 --> 00:42:04,960 Zárójelben eddig, az mint amit teszünk körül 904 00:42:04,960 --> 00:42:07,005 a cuccot mi megy mint bemenetek függvényében. 905 00:42:07,005 --> 00:42:08,921 Rendben, csak egy önkényes emberi egyezmény. 906 00:42:08,921 --> 00:42:09,919 Zárójelek. 907 00:42:09,919 --> 00:42:12,460 Belül ilyen zárójelek mi már üzembe idézőjelek, 908 00:42:12,460 --> 00:42:14,810 majd a szöveg, mint a "hello world". 909 00:42:14,810 --> 00:42:18,160 >> De a korábbi példa nagyon röviden nem nézzük a Scratch. 910 00:42:18,160 --> 00:42:22,590 És mi volt a százalékos d, mi mást volt benne azoknak zárójelben 911 00:42:22,590 --> 00:42:23,730 hogy hívtam ki szóban? 912 00:42:23,730 --> 00:42:24,230 Igen. 913 00:42:24,230 --> 00:42:28,166 >> KÖZÖNSÉG: Tehát ez az, amit az ember vesz [Nem hallható] belül [nem hallható] 914 00:42:28,166 --> 00:42:30,200 amit ezek [nem hallható]? 915 00:42:30,200 --> 00:42:31,200 David J. MALAN: Pontosan. 916 00:42:31,200 --> 00:42:32,700 Tehát mi volt a százalékos d. 917 00:42:32,700 --> 00:42:36,620 De akkor mi volt szoros idézet, vessző, pult. 918 00:42:36,620 --> 00:42:37,120 Jobb. 919 00:42:37,120 --> 00:42:40,680 Azt meg, hogy mit akarunk csinálni, mint a helyőrző. 920 00:42:40,680 --> 00:42:44,621 Szóval, mit fogok csinálni itt vessző, mit akarsz tenni? 921 00:42:44,621 --> 00:42:45,120 Közönség: S. 922 00:42:45,120 --> 00:42:46,828 David J. MALAN: S, s mert ebben az esetben 923 00:42:46,828 --> 00:42:48,700 a neve a tartály. 924 00:42:48,700 --> 00:42:50,180 Ez a neve annak a üvegtál. 925 00:42:50,180 --> 00:42:53,610 Míg korábban nem volt számláló, hogy egyszerű Scratch példa néztük. 926 00:42:53,610 --> 00:42:56,630 Tehát ma már kétszer is változások, hadd nagyítás 927 00:42:56,630 --> 00:42:59,800 és próbálja meg még egyszer fordítani ezt a programot. 928 00:42:59,800 --> 00:43:01,596 >> Most látom, hogy rejtélyes sor. 929 00:43:01,596 --> 00:43:03,470 De ez valójában a neve a fordító. 930 00:43:03,470 --> 00:43:04,886 Csenget a neve a fordító. 931 00:43:04,886 --> 00:43:07,100 Tedd csak megmentettél a fejfájás egyre 932 00:43:07,100 --> 00:43:09,830 gépelés, hogy a hosszú őrült parancs ki. 933 00:43:09,830 --> 00:43:14,900 Tehát most, ha én pont perjel Helló-1, Meg kell látni a "hello, David." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, ugye? 935 00:43:16,450 --> 00:43:18,158 Tudtuk volna ez sokkal egyszerűbben 936 00:43:18,158 --> 00:43:20,940 nélkül beszél változókkal és CS50.h és minden adott. 937 00:43:20,940 --> 00:43:23,080 Szóval, hogy ez egy kicsit érdekes. 938 00:43:23,080 --> 00:43:31,010 >> Amellett, hogy CS50.h, miután a dolgok, mint húr 939 00:43:31,010 --> 00:43:34,550 kijelentette, a CS50 könyvtár is van néhány funkciók. 940 00:43:34,550 --> 00:43:38,520 Szóval, mint évekkel ezelőtt, valaki azt írta printf és tedd a standard I / O.h 941 00:43:38,520 --> 00:43:39,530 és néhány egyéb fájl. 942 00:43:39,530 --> 00:43:44,010 >> Mi, a CS50 személyzet, írt egy funkció hívott GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, getString, és mi tesz azok belsejében egy fájlt 944 00:43:47,610 --> 00:43:49,890 hívott CS50.h és CS50.c. 945 00:43:49,890 --> 00:43:51,880 És rakjuk be őket A CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 És az emberek is letöltés őket az interneten, ha 947 00:43:53,880 --> 00:43:55,880 szeretnénk, hogy őket a saját számítógépeket is. 948 00:43:55,880 --> 00:44:00,880 Ami azt jelenti, hogy az általunk létrehozott funkciók kap a felhasználóhoz. 949 00:44:00,880 --> 00:44:02,930 Én nem tudom, mi minden Ezen adatok típusok. 950 00:44:02,930 --> 00:44:06,490 GetInt a fajta egyszerű, mint kap egy egész valahogy a felhasználó. 951 00:44:06,490 --> 00:44:09,980 És getString valószínűleg hasonló get egy szó vagy egy mondat a felhasználó. 952 00:44:09,980 --> 00:44:11,770 >> Szóval összpontosítani, hogy. 953 00:44:11,770 --> 00:44:14,710 És én megyek vissza a készüléket, és én megyek előre 954 00:44:14,710 --> 00:44:20,790 és mentse ezt a fájlt, nevezzük akkor szia-2.c mint a második verzió. 955 00:44:20,790 --> 00:44:23,030 És nézzük, hogy egy-két változás. 956 00:44:23,030 --> 00:44:25,800 >> Ezúttal helyett kemény kódolás David, amely 957 00:44:25,800 --> 00:44:29,120 tesz egy hihetetlenül következetes de underwhelming program 958 00:44:29,120 --> 00:44:32,640 mi van, ha helyette nem getString? 959 00:44:32,640 --> 00:44:35,660 Figyeljük getString nyitott zárójel, 960 00:44:35,660 --> 00:44:38,500 zárt zárójel, mert nem kell semmilyen bemenet. 961 00:44:38,500 --> 00:44:40,850 Ez csak úgy megy, hogy a húr a felhasználó. 962 00:44:40,850 --> 00:44:42,460 >> És most egy szó a másik szintaxis. 963 00:44:42,460 --> 00:44:45,439 Pontosvessző csak a végén egy sor kódot. 964 00:44:45,439 --> 00:44:46,730 Nem kell őket mindenhol. 965 00:44:46,730 --> 00:44:48,896 De ez csak azt jelenti, én vagyok történik ebben a sorban a kódot. 966 00:44:48,896 --> 00:44:51,080 Hadd mozog egy másik nyilatkozat vagy funkció. 967 00:44:51,080 --> 00:44:53,010 Húr kijelenti változó. 968 00:44:53,010 --> 00:44:55,920 Húr, mintha azt mondanánk adj egy tálba, kérem. 969 00:44:55,920 --> 00:44:57,940 És hadd tegyek fel egy sor benne. 970 00:44:57,940 --> 00:44:59,430 >> És most az egyenlőségjel. 971 00:44:59,430 --> 00:45:03,510 Mi az egyenlőségjel lényegében egyenértékű? 972 00:45:03,510 --> 00:45:04,500 >> Közönség: hozzárendelése. 973 00:45:04,500 --> 00:45:06,190 >> David J. MALAN: Igen, egy értéket rendelünk. 974 00:45:06,190 --> 00:45:09,872 Tehát, ha én például hívás Ez a funkció getString, 975 00:45:09,872 --> 00:45:12,830 és majd meglátjuk, egy pillanat, ami majd figyelmezteti a felhasználót a húr. 976 00:45:12,830 --> 00:45:17,810 Ez olyan, mint engedte majd írjuk D-a-v-i-d egy darab papírra. 977 00:45:17,810 --> 00:45:21,060 És amikor azt mondom, húr s egyenlő getString, 978 00:45:21,060 --> 00:45:24,140 egyenlő nem igazán jelent egyenlő C programozás. 979 00:45:24,140 --> 00:45:27,880 Ez azt jelenti, hozzárendelése a jobb oldalán a bal oldalon. 980 00:45:27,880 --> 00:45:29,510 >> Így kaptam egy string. 981 00:45:29,510 --> 00:45:32,785 És az egyenlőség jel azt jelenti tedd tartóban hívott s. 982 00:45:32,785 --> 00:45:36,730 Majd át ezt ki, hogy printf hogy valójában nem a dolog. 983 00:45:36,730 --> 00:45:39,790 >> Tehát a végeredmény, akkor megy hogy vizsgálja meg egy kicsit más. 984 00:45:39,790 --> 00:45:40,840 Csináljuk, hogy helló-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Sem működhet. 987 00:45:45,260 --> 00:45:46,450 Aki követi. 988 00:45:46,450 --> 00:45:47,940 Készíts Helló-2 dolgozott. 989 00:45:47,940 --> 00:45:52,640 Dot perjel Helló-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Úgy tűnik, hogy egy végtelen hurok vagy valami. 991 00:45:54,620 --> 00:45:55,453 Semmi sem történik. 992 00:45:55,453 --> 00:45:56,134 Miért? 993 00:45:56,134 --> 00:45:57,805 >> Közönség: Ez így végtelen ciklusba kerül. 994 00:45:57,805 --> 00:45:59,430 David J. MALAN: Ez egy végtelen ciklus. 995 00:45:59,430 --> 00:46:02,710 Ez a fajta vár rám, hogy ténylegesen biztosítani, hogy néhány bemenet. 996 00:46:02,710 --> 00:46:05,800 Szóval, hadd menjen előre, és írja be Dávid, és nyomja meg az Enter. 997 00:46:05,800 --> 00:46:07,230 És most azt mondja: "Helló, David." 998 00:46:07,230 --> 00:46:09,040 Ha elindul újra. 999 00:46:09,040 --> 00:46:11,530 Nézzük írja be Rob, a "hello, Rob." 1000 00:46:11,530 --> 00:46:13,900 >> Most ez a legrosszabb felhasználói felület valaha. 1001 00:46:13,900 --> 00:46:16,110 A felhasználó látszólag kéne tudni, hogy mit kell tenni. 1002 00:46:16,110 --> 00:46:17,120 De nem számít. 1003 00:46:17,120 --> 00:46:19,570 Ezekkel a ugyanabban az épületben blokkok, mint a Scratch, 1004 00:46:19,570 --> 00:46:24,980 meg tudjuk oldani ezt a problémát, és azt mondják valami, mint a név, kérjük, kettőspont, 1005 00:46:24,980 --> 00:46:27,820 hely, zárt idézet, szoros zárójel, pontosvessző. 1006 00:46:27,820 --> 00:46:30,680 Így sok újra ostobaság a szintaxis. 1007 00:46:30,680 --> 00:46:34,040 >> De észre én már csak hozzá a puzzle darab felett ez 1008 00:46:34,040 --> 00:46:35,280 és e fölött egy. 1009 00:46:35,280 --> 00:46:38,870 Tehát most, ha én ismételni ezt, szia-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Várj egy percet. 1011 00:46:41,180 --> 00:46:41,830 Mi a baj? 1012 00:46:41,830 --> 00:46:43,570 Ez nem viselkedik másként. 1013 00:46:43,570 --> 00:46:44,200 Igen. 1014 00:46:44,200 --> 00:46:46,010 >> Közönség: Nem fut, hogy újra. 1015 00:46:46,010 --> 00:46:47,968 >> David J. MALAN: Én nem fut, hogy újra, jobbra. 1016 00:46:47,968 --> 00:46:49,430 Szóval megváltozott a forráskódot. 1017 00:46:49,430 --> 00:46:50,638 De a lényeg, van, hogy az áramlás. 1018 00:46:50,638 --> 00:46:54,530 Forráskód a fordítóprogram ad Ön új tárgykód, vagy 0-ák és 1-esek. 1019 00:46:54,530 --> 00:47:00,209 Szóval kell, hogy ténylegesen ismétlését make Helló-2 Írja be. 1020 00:47:00,209 --> 00:47:01,750 OK, valami úgy tűnik, hogy történt. 1021 00:47:01,750 --> 00:47:04,220 Dot perjel Helló-2. 1022 00:47:04,220 --> 00:47:05,390 Az Ön neve kérem. 1023 00:47:05,390 --> 00:47:09,990 És hogy most tiszta, hogy miért van a kurzor ugyanabban a sorban? 1024 00:47:09,990 --> 00:47:10,490 Pontosan. 1025 00:47:10,490 --> 00:47:13,020 Nem tettem a backslash n fel itt a kód. 1026 00:47:13,020 --> 00:47:16,110 Így most már tudok írni valami ilyesmit Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Tudok futni újra, és írja be olyasmi, mint Gabe, Enter, 1028 00:47:18,710 --> 00:47:22,250 és kapunk egy másik program újra és újra és újra. 1029 00:47:22,250 --> 00:47:28,940 >> Most végül mi lesz szükségünk hogy egy néhány különböző képességeit. 1030 00:47:28,940 --> 00:47:32,860 Meg kell, hogy vezessenek be végül néhány feltételek dolgokat feltételesen. 1031 00:47:32,860 --> 00:47:35,550 Talán hurkok így nem tehetünk dolgok újra és újra. 1032 00:47:35,550 --> 00:47:38,220 >> Talán jó lenne, ha is végre saját függvények, 1033 00:47:38,220 --> 00:47:41,355 mint mi is végre saját printf vagy a saját verzióját getString 1034 00:47:41,355 --> 00:47:45,870 és GetFlow, mert végül is Ha ezt a parancsot környezet 1035 00:47:45,870 --> 00:47:49,780 tehetünk még a leginkább vizuálisan érdekes dolgok. 1036 00:47:49,780 --> 00:47:51,950 >> Valóban végezetül hadd tegye ezt. 1037 00:47:51,950 --> 00:47:54,020 Én megyek előre és zárja be ezeket az ablakokat 1038 00:47:54,020 --> 00:47:57,400 és nyissa meg ezt az ikont itt, ami csak egy nagyobb 1039 00:47:57,400 --> 00:48:00,020 változata, amely beágyazott terminál ablak. 1040 00:48:00,020 --> 00:48:02,329 Így Gedit nem csak A hely a kódomat, 1041 00:48:02,329 --> 00:48:05,620 hanem a beépített terminál ablakban, a fekete-fehér ablak, ahol tudok futni 1042 00:48:05,620 --> 00:48:06,230 parancsok. 1043 00:48:06,230 --> 00:48:08,600 >> Én csak véletlenül megnyitni egy nagyobb változata ezt. 1044 00:48:08,600 --> 00:48:11,170 És most fogok menni azt a mappát, én már 1045 00:48:11,170 --> 00:48:13,150 fel előre a pályán honlapján. 1046 00:48:13,150 --> 00:48:16,720 És én megyek előre, és Egy fájl megnyitásához nevű thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 amit írt valaki. 1048 00:48:18,710 --> 00:48:21,220 >> És ha megnézzük ezt, ez nem az a fajta kód 1049 00:48:21,220 --> 00:48:24,370 fogunk írni, mivel A cél ennek a kód 1050 00:48:24,370 --> 00:48:28,450 megírása volt a legszebb látszó kód, hogy ő tudta, 1051 00:48:28,450 --> 00:48:31,290 függetlenül attól, hogy Egy másik emberi lény valaha is 1052 00:48:31,290 --> 00:48:33,660 megérteni ezt a kódot. 1053 00:48:33,660 --> 00:48:37,050 >> Sőt, minden évben van mit úgynevezett összezavarva C versenyen, amely 1054 00:48:37,050 --> 00:48:39,570 ez az igazi geekek, akik írni kód, hogy senki más nem tud olvasni, 1055 00:48:39,570 --> 00:48:42,050 De ez nem valami vagy nagyon egyszerű, vagy nagyon csodálatos. 1056 00:48:42,050 --> 00:48:43,890 És úgy gondoltuk, mi lenne zárul ez a megjelenés 1057 00:48:43,890 --> 00:48:48,300 valamit, ami elég elképesztő lehet, hogy látott egyszer. 1058 00:48:48,300 --> 00:48:52,650 De mi lesz a vége ezen megjegyzés, pont perjel, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Ez tehát az, amit vár. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Ez az a CS50. 1062 00:48:58,500 --> 00:48:59,935 Látni fogjuk, hogy szerdán. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [Zenelejátszás] 1065 00:49:10,016 --> 00:53:31,883