1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> DAVID J. Malan: Значи това е CS50. 3 00:00:13,800 --> 00:00:18,970 И това е собствена Колтън Ogden CS50 е, за повече от това кой е музиката, която може да 4 00:00:18,970 --> 00:00:22,820 изтеглите най-soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Така че днес ние се фокусираме още повече на изкуството на програмирането. 6 00:00:26,690 --> 00:00:28,980 И ние приемаме, когато ние напуснахме миналата седмица, като се фокусира 7 00:00:28,980 --> 00:00:31,660 на Scratch, което е тази графичен език за програмиране. 8 00:00:31,660 --> 00:00:35,490 И вземе нещата до по-ниско ниво, с помощта на по-традиционните програмиране 9 00:00:35,490 --> 00:00:38,420 език, известен като C. Но по протежение на пътя, осъзнавайки 10 00:00:38,420 --> 00:00:40,730 че едни и същи идеи, ние Говорихме за миналия петък 11 00:00:40,730 --> 00:00:44,390 ще се повтори, не само в този език C, но в най-всяка друга 12 00:00:44,390 --> 00:00:46,350 че ние гледаме на този семестър. 13 00:00:46,350 --> 00:00:50,247 >> Така че ние се нарича това нещо тук това, което за последен път? 14 00:00:50,247 --> 00:00:51,830 Това е представител на изявление. 15 00:00:51,830 --> 00:00:53,080 Така че ние нарича това изявление. 16 00:00:53,080 --> 00:00:54,100 И го прави нещо. 17 00:00:54,100 --> 00:00:56,910 Това е инструкция, която е компютър или Scratch може да изпълни. 18 00:00:56,910 --> 00:00:59,910 И отсега нататък, нека да започнем вика нещо като това е функция, 19 00:00:59,910 --> 00:01:02,070 по причини, ние скоро ще видим. 20 00:01:02,070 --> 00:01:03,681 >> Междувременно, видяхме неща като това. 21 00:01:03,681 --> 00:01:05,680 И те като цяло са известен като това, което се изгради? 22 00:01:05,680 --> 00:01:06,240 >> АУДИТОРИЯ: Loop. 23 00:01:06,240 --> 00:01:06,860 >> DAVID J. Malan: Значи една линия. 24 00:01:06,860 --> 00:01:07,943 Така че доста ясен. 25 00:01:07,943 --> 00:01:09,470 Тя буквално прави това, което казва. 26 00:01:09,470 --> 00:01:12,210 И в Scratch, ако искате да тъпча повече пъзел парчета в там, 27 00:01:12,210 --> 00:01:13,950 парчето ще расте, за да го побере. 28 00:01:13,950 --> 00:01:16,790 И ние ще видим в C, че можем да направим същото. 29 00:01:16,790 --> 00:01:20,000 >> Друг вид на линия, обаче, в Scratch може да бъде вечно, 30 00:01:20,000 --> 00:01:21,820 или има някакъв номер на други подходи. 31 00:01:21,820 --> 00:01:24,150 Но нека хвърлим един по- общопрактикуващ поглед, с лице 32 00:01:24,150 --> 00:01:27,402 това е вероятно доста познато, в контура по-общо. 33 00:01:27,402 --> 00:01:29,110 Марк Цукерберг: One нещо, че компютрите 34 00:01:29,110 --> 00:01:31,860 са наистина добър в е повтаряне на команди. 35 00:01:31,860 --> 00:01:33,910 Като човек, вие ще получите наистина скучно, ако 36 00:01:33,910 --> 00:01:36,730 трябваше да направи същото нещо, много пъти в един ред. 37 00:01:36,730 --> 00:01:40,530 Но един компютър може да направи същото нещо, милиони или дори милиарди пъти, 38 00:01:40,530 --> 00:01:43,290 и не се отегчават, и да бъде в състояние да изпълним наистина добре. 39 00:01:43,290 --> 00:01:45,650 >> Така например, ако аз исках да пожелая на всички 40 00:01:45,650 --> 00:01:48,840 на Facebook щастлив рожден ден , като им изпраща имейл, 41 00:01:48,840 --> 00:01:51,550 тя може да ми отнеме повече от век действително да напишете 42 00:01:51,550 --> 00:01:53,000 всички тези имейли до всички. 43 00:01:53,000 --> 00:01:57,780 Но само с няколко реда код, мога имат система да изпрати имейл до всички 44 00:01:57,780 --> 00:01:59,930 на Facebook, които желаят ги щастлив рожден ден. 45 00:01:59,930 --> 00:02:02,730 Така че това е, което вериги са и защо те са ценно и нещо 46 00:02:02,730 --> 00:02:04,740 че компютрите могат да направят много добре. 47 00:02:04,740 --> 00:02:05,630 >> DAVID J. Malan: Така че, ако сте били на получателя 48 00:02:05,630 --> 00:02:07,820 на някои от CS50 и Пространство от края на Dropbox е, 49 00:02:07,820 --> 00:02:10,590 това всъщност е точно това, което ние направи, като се използва код доста подобно. 50 00:02:10,590 --> 00:02:12,600 Ние по същество има голям таблица, в която 51 00:02:12,600 --> 00:02:15,016 хора са въвеждащи им имена и имейл адреси. 52 00:02:15,016 --> 00:02:18,160 И ние написахме една малка част от код, който може да обхождане на тези адреси 53 00:02:18,160 --> 00:02:21,860 и изплюе уникални адреси в случай, че някой подава на няколко пъти. 54 00:02:21,860 --> 00:02:25,120 И след това, ние изпращаме една автоматизиран имейл от бот CS50 е, 55 00:02:25,120 --> 00:02:27,190 включително кода на купон. 56 00:02:27,190 --> 00:02:29,290 >> Сега ние също погледна Тази конструкция за последен път. 57 00:02:29,290 --> 00:02:33,100 И това е особено пример за това какво? 58 00:02:33,100 --> 00:02:35,050 Така че, да, булев израз. 59 00:02:35,050 --> 00:02:37,050 И формата се разбира за улавяне и това. 60 00:02:37,050 --> 00:02:39,966 Всички тези въпроси на образуват вярно или невярно в Scratch 61 00:02:39,966 --> 00:02:41,590 ще изглежда малко нещо като това. 62 00:02:41,590 --> 00:02:43,200 И ние наричаме това Булев израз. 63 00:02:43,200 --> 00:02:46,170 Това е наистина вярно или невярно, да или не. 64 00:02:46,170 --> 00:02:49,150 Това е начин да отговори на един въпрос. 65 00:02:49,150 --> 00:02:52,420 >> А междувременно можете да използвате тези Булева изрази вътре на конструкции 66 00:02:52,420 --> 00:02:54,720 като тези, които на Разбира се условия 67 00:02:54,720 --> 00:02:57,259 или клонове, пословичен вилици по пътя. 68 00:02:57,259 --> 00:02:59,550 И те могат да изглеждат не само по този начин, но те могат също така да 69 00:02:59,550 --> 00:03:02,080 иначе са свързани с тях. 70 00:03:02,080 --> 00:03:05,820 И всъщност можете да имате три начина разклонение на пътя или четири начин вилица 71 00:03:05,820 --> 00:03:08,340 по пътя, просто чрез гнездене на тези неща, 72 00:03:08,340 --> 00:03:10,510 както ще видите в Scratch Ако не сте го направили. 73 00:03:10,510 --> 00:03:13,550 И както можете да направите в C, както добре. 74 00:03:13,550 --> 00:03:16,810 >> Да вземем друг общопрактикуващ разгледаме един alumnist, както и, които 75 00:03:16,810 --> 00:03:21,490 може да има по-различен подход за тези неща, наречени условия. 76 00:03:21,490 --> 00:03:24,060 >> Бил Гейтс: Хората правят решения всеки ден. 77 00:03:24,060 --> 00:03:27,530 Така например, преди да излезем навън ви вид има, ако изявление, че казва, 78 00:03:27,530 --> 00:03:31,480 ако вали тогава аз Трябва да си взема якето. 79 00:03:31,480 --> 00:03:36,820 И компютрите са невероятни, след като определят тези видове отчети, 80 00:03:36,820 --> 00:03:42,280 че те могат надеждно изпълнение тези неща на невероятни скорост. 81 00:03:42,280 --> 00:03:48,240 И така, една компютърна програма наистина е малко на математиката и някои 82 00:03:48,240 --> 00:03:53,050 ако отчети, където за решението получава направи. 83 00:03:53,050 --> 00:03:55,020 >> DAVID J. Malan: Така че, както може би знаете, че е 84 00:03:55,020 --> 00:03:57,880 хора като Бил Гейтс, Paul Allen, а други 85 00:03:57,880 --> 00:04:00,240 че наистина започна на т.нар персонален компютър 86 00:04:00,240 --> 00:04:01,990 революция преди няколко години. 87 00:04:01,990 --> 00:04:04,140 Помислих си, преди да се потопите в някои administrivia, 88 00:04:04,140 --> 00:04:09,920 ние ще се отнасят една приказка от Albuquerque, New Mexico природонаучен музей 89 00:04:09,920 --> 00:04:13,650 и науката, където някои от Бил Гейтс " и ранните истории Пол Алън 90 00:04:13,650 --> 00:04:17,470 се разказва как, което имаме сега днешните персонални компютри и Mac-ове и др. 91 00:04:17,470 --> 00:04:22,390 За това, обаче, имаме нужда от двама доброволци които имат много добри гласове разказ 92 00:04:22,390 --> 00:04:23,735 да се чете сценария на глас. 93 00:04:23,735 --> 00:04:25,530 >> Добре, какво ще кажеш в там. 94 00:04:25,530 --> 00:04:26,120 Хайде нагоре. 95 00:04:26,120 --> 00:04:27,770 А какво ще кажеш пред тук. 96 00:04:27,770 --> 00:04:28,340 Хайде надолу. 97 00:04:28,340 --> 00:04:29,600 Заемете местата си тук. 98 00:04:29,600 --> 00:04:32,444 Както вие, момчета идват, няколко на административни съобщения. 99 00:04:32,444 --> 00:04:34,360 разрязване, процесът на избора на точка, 100 00:04:34,360 --> 00:04:36,068 ще започне тази Сряда до петък. 101 00:04:36,068 --> 00:04:38,400 Повече за това по този смешен Сряда в лекция. 102 00:04:38,400 --> 00:04:41,770 >> Супер секции, междувременно, са нещо, което ние предлагаме следващата седмица 103 00:04:41,770 --> 00:04:45,310 , според което целият клас е поканен да участват в сравнително голям мащаб 104 00:04:45,310 --> 00:04:47,690 секции, една по-удобен, един по-малко удобни. 105 00:04:47,690 --> 00:04:51,340 И ние ще обявим подробностите на това, както и, по-късно тази седмица. 106 00:04:51,340 --> 00:04:53,310 >> Междувременно секции, себе си, ще започне 107 00:04:53,310 --> 00:04:57,241 в три от хода седмици, индекс на нула, което означава, че тези, които са на няколко седмици 108 00:04:57,241 --> 00:04:57,740 от. 109 00:04:57,740 --> 00:04:58,450 Така че не се притеснявай. 110 00:04:58,450 --> 00:05:01,014 Все още не сте пропуснали нещо по тези линии. 111 00:05:01,014 --> 00:05:03,930 Междувременно в същото време, ако имате някакви въпроси, административно, 112 00:05:03,930 --> 00:05:08,120 себе си и Девън и Гейб приятел и Роб на този адрес тук. 113 00:05:08,120 --> 00:05:10,320 >> На последно място, проблем зададете 0 е, разбира се, от. 114 00:05:10,320 --> 00:05:12,320 Може би сте го забелязали, на интернет страницата на курса. 115 00:05:12,320 --> 00:05:14,840 Това трябва да ви предостави всички отговори на въпроси 116 00:05:14,840 --> 00:05:18,250 може да се наложи по протежение на пътя за подготовка за работа с комплекта проблем. 117 00:05:18,250 --> 00:05:21,430 Но ако се окажете в нужда от ръка, 118 00:05:21,430 --> 00:05:25,020 с всички възможни средства да присъстват на работното време, Понеделник, Вторник, Сряда, Четвъртък 119 00:05:25,020 --> 00:05:27,290 на тази седмица през нощта в четири зали за хранене. 120 00:05:27,290 --> 00:05:31,650 Виж, че URL там за данните на мястото, където работното време следва да бъдат. 121 00:05:31,650 --> 00:05:34,000 >> Сега нека да отговаря на нашите двама гости тук днес. 122 00:05:34,000 --> 00:05:34,740 Как ти е името? 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, хубаво е да се запознаем. 125 00:05:36,880 --> 00:05:37,330 >> ХИКАРИ: Hikari. 126 00:05:37,330 --> 00:05:37,975 >> DAVID J. Malan: Hikari? 127 00:05:37,975 --> 00:05:38,250 >> ХИКАРИ: Hikari. 128 00:05:38,250 --> 00:05:38,810 >> DAVID J. Malan: Hikari. 129 00:05:38,810 --> 00:05:39,790 Приятно ми е да се запознаем, както добре. 130 00:05:39,790 --> 00:05:42,123 Jay Павел и Hikari имате в Пред тях по тези музика 131 00:05:42,123 --> 00:05:45,100 откроява две скриптове, които съм печатни тази сутрин от Ню Мексико 132 00:05:45,100 --> 00:05:46,692 музей по естествена история и науката. 133 00:05:46,692 --> 00:05:48,400 И аз това си помислих Бих направил на режийните 134 00:05:48,400 --> 00:05:52,830 се придружава рецитация на сценария и тази история 135 00:05:52,830 --> 00:05:54,700 с някои визуални образи, няма изненади. 136 00:05:54,700 --> 00:05:57,512 >> И това, което съм направил по-рано се prehighlight на вашия скрипт 137 00:05:57,512 --> 00:05:59,470 това, което трябва да се чете, и това, което трябва да се чете. 138 00:05:59,470 --> 00:06:00,920 И ние ще същество просто заместник параграфи. 139 00:06:00,920 --> 00:06:03,211 Така че това е много като може да се направил в час по английски. 140 00:06:03,211 --> 00:06:06,875 Това е наистина принуди публиката да вярват в своята приказка тук. 141 00:06:06,875 --> 00:06:07,600 Ще тръгваме ли? 142 00:06:07,600 --> 00:06:13,272 Така че историята тук е, че имаме BASIC, и тя започва в Кеймбридж. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Беше зима, 1974, в Кеймбридж, Масачузетс 144 00:06:18,750 --> 00:06:20,240 където зимите могат да са студени. 145 00:06:20,240 --> 00:06:22,800 Брадат, дълга коса колеж отпадане име 146 00:06:22,800 --> 00:06:27,280 Paul Allen бе drudging в Харвард Square, погълнат в мислите си. 147 00:06:27,280 --> 00:06:31,050 Неговата основна грижа в тези дни е как да получите своя приятел, Бил Гейтс, 148 00:06:31,050 --> 00:06:34,974 да напусна училище и да отидете в бизнес с него. 149 00:06:34,974 --> 00:06:37,890 ХИКАРИ: Двамата вече бяха отишли чрез редица бизнес начинания 150 00:06:37,890 --> 00:06:40,850 заедно, започваща в Lakeside училище в Сиатъл, където 151 00:06:40,850 --> 00:06:45,220 те са били платени в безплатен компютърен път да тестване на PDP-10 компютъра в местно време 152 00:06:45,220 --> 00:06:46,580 споделяне на компанията. 153 00:06:46,580 --> 00:06:50,930 Най-новата планът е бил да се откажат училище и образуват софтуерна компания. 154 00:06:50,930 --> 00:06:53,440 Алън е напуснал Вашингтон State University. 155 00:06:53,440 --> 00:06:58,380 Но в последната минута, Гейтс реши да се придържате към Харвард. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Този ден, пресичайки Harvard Square, Алън забеляза януари, 157 00:07:02,080 --> 00:07:07,530 1975 издаване на Popular Electronics със заглавието на земята е спряла, 158 00:07:07,530 --> 00:07:11,900 Първата в света миникомпютър Kit да съперничи търговски модели. 159 00:07:11,900 --> 00:07:14,430 Под заглавие е снимка на малка кутия 160 00:07:14,430 --> 00:07:16,160 украсен със светлини и ключове. 161 00:07:16,160 --> 00:07:19,770 Тя била наречена MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 И Алън знаеше, че това е това, което той е бил търсите. 163 00:07:24,100 --> 00:07:26,350 >> ХИКАРИ: Дни на дискусия последваха. 164 00:07:26,350 --> 00:07:30,170 Алън и Гейтс разбира значимост на Altair. 165 00:07:30,170 --> 00:07:32,480 Те бяха разговаряли често за микропроцесори 166 00:07:32,480 --> 00:07:35,250 и чакаха да видят какво ще бъде направено с тях. 167 00:07:35,250 --> 00:07:39,770 Сега имаше комплект миникомпютър на корицата на популярните Electronics. 168 00:07:39,770 --> 00:07:42,830 Това очевидно не е имал софтуер все още. 169 00:07:42,830 --> 00:07:46,830 Те си представяли нация от програмисти слизаха по MITS. 170 00:07:46,830 --> 00:07:49,590 И така те наричат ​​Ед Робъртс, ръководителят на компанията, 171 00:07:49,590 --> 00:07:53,330 които твърдят, че има версия на BASIC език почти готова за програмиране 172 00:07:53,330 --> 00:07:54,710 за Altair. 173 00:07:54,710 --> 00:07:55,570 Те не го направих. 174 00:07:55,570 --> 00:07:58,910 И Roberts трябва да знае, че не го направих. 175 00:07:58,910 --> 00:08:03,170 Той ставаше все по 10 обаждания на ден от хора, които са имали BASIC почти готова. 176 00:08:03,170 --> 00:08:05,570 И му фондова отговор беше: "Първият човек, 177 00:08:05,570 --> 00:08:11,090 , който се появява с работна BASIC получава договора. " 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Гейтс и Алън Никога не бях виждал на Altair. 179 00:08:13,910 --> 00:08:17,600 Те дори не са видели Intel 8080 микропроцесор 180 00:08:17,600 --> 00:08:19,060 в сърцето на Altair. 181 00:08:19,060 --> 00:08:21,470 Но няколко години по-рано Алън е написал програма 182 00:08:21,470 --> 00:08:25,220 на мейнфрейм компютър, който емулира действието на предишния Intel 183 00:08:25,220 --> 00:08:26,217 микропроцесор. 184 00:08:26,217 --> 00:08:28,300 И този път те ще направи същото нещо. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> ХИКАРИ: С Intel 8080 ръководство на негова страна, 187 00:08:34,380 --> 00:08:37,770 Алън седна на Harvard PDP-10 компютъра 188 00:08:37,770 --> 00:08:42,010 и пише на емулатора и софтуер инструменти, необходими, за да направят програмирането. 189 00:08:42,010 --> 00:08:45,820 Междувременно Гейтс спря става да класове и се посвещава 190 00:08:45,820 --> 00:08:48,120 за проектиране на основните, използвайки всеки трик 191 00:08:48,120 --> 00:08:53,130 той знаеше, че за да получите размера долу 4 килобайта. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: Out в Albuquerque, Ed Roberts получих обаждане от Гейтс 193 00:08:55,870 --> 00:08:59,754 пита за подробности за това как Altair обработват специфични съчетания. 194 00:08:59,754 --> 00:09:01,170 Никой никога не е поискал това преди. 195 00:09:01,170 --> 00:09:02,670 И Робъртс започна да се интересувам. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> ХИКАРИ: С развитието инструменти и дизайнът е готов, 198 00:09:07,970 --> 00:09:10,780 Гейтс и Алън пише кода на PDP-10, 199 00:09:10,780 --> 00:09:16,060 привличане друг студент в Харвард, Monte Davidoff, за да напишете математика съчетания. 200 00:09:16,060 --> 00:09:19,450 След окончателно нощ програмиране, Алън се качил на самолет 201 00:09:19,450 --> 00:09:22,970 да достави своя BASIC до MITS. 202 00:09:22,970 --> 00:09:25,800 Той прекара самолета вози притеснявате. 203 00:09:25,800 --> 00:09:28,490 И обратно в Кеймбридж Гейтс се притеснявате. 204 00:09:28,490 --> 00:09:32,100 Те бяха тествани тяхната BASIC и той е работил на емулатора. 205 00:09:32,100 --> 00:09:35,444 Но какво, ако емулатора не е наред? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Когато самолетът приближи Albuquerque, 207 00:09:37,360 --> 00:09:40,070 Алън разбра, че тяхната BASIC, сега спретнато, съдържаща 208 00:09:40,070 --> 00:09:42,460 на малка ролка перфорирана хартия лента, би 209 00:09:42,460 --> 00:09:44,970 бъде безполезна без отделен програма, наречена товарач, че 210 00:09:44,970 --> 00:09:47,550 ще каже Altair как да прочетете хартиена лента благосъстоянието 211 00:09:47,550 --> 00:09:49,620 подава в терминал,. 212 00:09:49,620 --> 00:09:52,970 Той извади бележника си и бързо надраска надолу програма товарач 213 00:09:52,970 --> 00:09:56,819 в езика събрание, а след това ръчно преведено, че в 1-ци и 0s 214 00:09:56,819 --> 00:09:57,985 Алтаир ще разбере. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> ХИКАРИ: Allen очаквах чисти, малко, високотехнологична компания 217 00:10:03,830 --> 00:10:05,470 управлявана от мъже в делови костюми. 218 00:10:05,470 --> 00:10:09,210 Така че той е бил изненадан, когато Робъртс се срещна го на летището прилича на ранчо 219 00:10:09,210 --> 00:10:10,270 ръка. 220 00:10:10,270 --> 00:10:12,070 Робъртс също беше изненадан. 221 00:10:12,070 --> 00:10:16,340 Когато той се отказа от Харвард програмист в скъп хотел, 222 00:10:16,340 --> 00:10:20,790 Алън трябваше да призная, че той не можеше да си позволи стаята. 223 00:10:20,790 --> 00:10:24,510 >> JAY Павел MITS, сама по себе си е намира в един прашен ивица мол. 224 00:10:24,510 --> 00:10:27,040 Вътре в затрупана Workbench е Altair 225 00:10:27,040 --> 00:10:30,390 зареден с 5 килобайта памет и свързан с кабел 226 00:10:30,390 --> 00:10:32,030 да телекс машина. 227 00:10:32,030 --> 00:10:37,200 Робъртс и главен инженер, Бил Йейтс, чакаше очаквателно 228 00:10:37,200 --> 00:10:40,660 като Allen сменил си товарач програма в Altair. 229 00:10:40,660 --> 00:10:44,980 The телекса започна chugging като го извади Лентата на хартия чрез читателя лента. 230 00:10:44,980 --> 00:10:47,215 Отне може би 15 минути за да заредите програмата. 231 00:10:47,215 --> 00:10:52,110 Тогава телекса рязко отпечатали бърза памет, тогава готов ред 232 00:10:52,110 --> 00:10:55,340 и Алън започна да пише няколко тест команди. 233 00:10:55,340 --> 00:10:57,400 За учудване на всички, софтуерът работи. 234 00:10:57,400 --> 00:10:58,525 Имаше грешки, разбира се. 235 00:10:58,525 --> 00:11:02,070 Но най-важното е, че е работил. 236 00:11:02,070 --> 00:11:06,570 >> ХИКАРИ: По-късно, по пътя им към $ 3,00 обяд в Панчо, оса прелетя 237 00:11:06,570 --> 00:11:10,470 в прозореца на пикапа камион и ужилен Allen по ръката. 238 00:11:10,470 --> 00:11:13,070 Но в този момент нищо може да развали настроението. 239 00:11:13,070 --> 00:11:17,210 Алтаир вече има своя BASIC, на първият комерсиален софтуер за дома 240 00:11:17,210 --> 00:11:23,260 компютър, направено от Пол Алън и Бил Гейтс, правене на бизнес като Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> DAVID J. Malan: Много Благодарение на нашите две читатели. 242 00:11:25,336 --> 00:11:30,690 >> [APPLAUSE] 243 00:11:30,690 --> 00:11:32,520 >> DAVID J. Malan: Сега имате избор, 244 00:11:32,520 --> 00:11:35,880 преди да си тръгнеш, на блестящи или светят в dark-- о, 245 00:11:35,880 --> 00:11:40,810 изчакайте една секунда, Чакай блестящи и светят в тъмното слона 246 00:11:40,810 --> 00:11:42,534 от собствената Cheng Gong CS50 е. 247 00:11:42,534 --> 00:11:43,450 ХИКАРИ: О, благодаря ви. 248 00:11:43,450 --> 00:11:45,324 DAVID J. Malan: All Добре, благодаря ви много. 249 00:11:45,324 --> 00:11:49,855 [APPLAUSE] 250 00:11:49,855 --> 00:11:51,105 DAVID J. Malan: Значи истинска история. 251 00:11:51,105 --> 00:11:54,380 Това е да се каже, че всички тези машини и лекотата, с която ние 252 00:11:54,380 --> 00:11:56,270 ги използват сега и да вземат за даденост, наистина 253 00:11:56,270 --> 00:12:00,070 започна тук, само на няколко крачки от тази актуална театър. 254 00:12:00,070 --> 00:12:03,930 И сега, днес, ако не съм бил, това е Максуел Дворкин, компютърът 255 00:12:03,930 --> 00:12:05,810 науки сграда, също зад ъгъла. 256 00:12:05,810 --> 00:12:09,760 И на втория етаж на тази сграда, не се мотае три страници 257 00:12:09,760 --> 00:12:12,740 от оригиналния изходен код, който Бил Гейтс и Пол Алън е написал. 258 00:12:12,740 --> 00:12:14,770 В действителност, ако използването увеличите в можете да видите не само 259 00:12:14,770 --> 00:12:17,350 имената им в оригинален вид, но също така 260 00:12:17,350 --> 00:12:22,100 подписа си, че те украсени с няколко години назад, когато те последно посетен. 261 00:12:22,100 --> 00:12:25,800 >> Но това, което беше особено убедителна за това е, което те определят, за да се направи 262 00:12:25,800 --> 00:12:29,760 е да се напише програма, която би се даде възможност на други хора да пишат 263 00:12:29,760 --> 00:12:30,950 собствените им програми. 264 00:12:30,950 --> 00:12:34,280 В момента всичко е с този Altair машина, направена от MITS. 265 00:12:34,280 --> 00:12:40,020 И всички те се нуждаеха някакъв начин на което го прави лесен за любители и хора 266 00:12:40,020 --> 00:12:45,300 ни харесва в тази стая всъщност програма че без непременно разбиране 267 00:12:45,300 --> 00:12:49,060 Код събрание, или машина код, или не дай боже, 0s и 1s. 268 00:12:49,060 --> 00:12:51,190 Ние, програмисти, като тези, в тази зала, ние 269 00:12:51,190 --> 00:12:54,070 Искам да бъда в състояние да изразят себе си много повече като псевдо код 270 00:12:54,070 --> 00:12:57,330 дори ако това е малко по-гнида придирчиви, отколкото ние говорихме миналата седмица. 271 00:12:57,330 --> 00:13:00,970 Ние не искаме да се напише код, подобен на този, които Paul Allen и Бил Гейтс е направил. 272 00:13:00,970 --> 00:13:04,850 Ние, вместо това, искате да пишете код, който изглежда малко по-лесна за използване. 273 00:13:04,850 --> 00:13:07,150 >> Сега това е език, известен като BASIC. 274 00:13:07,150 --> 00:13:11,497 А номерата на редове има какво използвате, за да просто да преброят реда код 275 00:13:11,497 --> 00:13:12,330 че пишеш. 276 00:13:12,330 --> 00:13:14,038 Ние дори не е нужно да се правим, че тези дни. 277 00:13:14,038 --> 00:13:16,060 Но вие може да видите тук как PRINT "Здравей, свят" 278 00:13:16,060 --> 00:13:18,660 наистина би вероятно отпечатате точно това. 279 00:13:18,660 --> 00:13:22,710 И така, това, което Бил и Пол направих, беше възможност на хората да пишат код като този 280 00:13:22,710 --> 00:13:27,240 вместо на-- ако погледнете в компютърни науки wall-- код като този. 281 00:13:27,240 --> 00:13:29,290 >> В действителност, CS50 наскоро имаше възможност 282 00:13:29,290 --> 00:13:32,540 да седнем с професор Хари Lewis в Computer Science отдел, който 283 00:13:32,540 --> 00:13:34,640 всъщност преподава Bill Гейтс преди няколко години, 284 00:13:34,640 --> 00:13:38,460 и стои тук и преди тези три страници с откъси. 285 00:13:38,460 --> 00:13:39,560 Нека хвърлим един поглед. 286 00:13:39,560 --> 00:13:45,520 >> ХАРИ LEWIS: Какво имате тук е списък на ранен парче от софтуер, 287 00:13:45,520 --> 00:13:50,240 написан от Бил Гейтс и Пол Алън, основателите на Microsoft. 288 00:13:50,240 --> 00:13:52,570 Така че кодът е интересно по две причини. 289 00:13:52,570 --> 00:13:55,480 На първо място, става Първият продукт на Microsoft, 290 00:13:55,480 --> 00:14:01,810 който е преводач за на езика за програмиране BASIC. 291 00:14:01,810 --> 00:14:04,940 И на второ място, това е един от първите опити 292 00:14:04,940 --> 00:14:10,580 за създаване на устен преводач, с обикновен хората могат да използват лични компютри. 293 00:14:10,580 --> 00:14:12,670 >> Така че Бил Гейтс е бил студент в Харвард. 294 00:14:12,670 --> 00:14:14,820 Аз започнах да преподавам в Харвард през 1974. 295 00:14:14,820 --> 00:14:16,560 Това беше направено през 1975 г.. 296 00:14:16,560 --> 00:14:20,180 Така беше в началото на кариерата си и в началото на кариерата ми. 297 00:14:20,180 --> 00:14:23,790 Аз всъщност преподава Bill в курс по това време. 298 00:14:23,790 --> 00:14:27,130 Пол Алън не беше Харвард студент, но той 299 00:14:27,130 --> 00:14:31,020 е бил в гимназията съученик на Бил Гейтс. 300 00:14:31,020 --> 00:14:33,740 Ако дойдете и да потърсите в списъка, ще 301 00:14:33,740 --> 00:14:36,230 всъщност намерите трета име, Monte Davidoff, 302 00:14:36,230 --> 00:14:39,260 който е бил съученик на Гейтс тук в Харвард. 303 00:14:39,260 --> 00:14:41,340 >> ОК, така че тук е едно интересен коментар тук. 304 00:14:41,340 --> 00:14:47,150 Той казва: "В 4K да изтривате квадратен корен но за вериги все още трябва да работят. " 305 00:14:47,150 --> 00:14:53,080 ОК, така че какво означава това е, че има са два начина за събиране на тази програма. 306 00:14:53,080 --> 00:14:57,860 Една от тях беше да се движат по една версия на този компютър Altair 307 00:14:57,860 --> 00:15:04,310 че имаше само 4K думи памет, 4096 думи на паметта. 308 00:15:04,310 --> 00:15:07,050 Но голямата версия имаше 8К. 309 00:15:07,050 --> 00:15:09,770 И така, какво казва е че в 4K версия 310 00:15:09,770 --> 00:15:12,770 трябваше да изтриете някои код, за да се побере. 311 00:15:12,770 --> 00:15:14,790 И едно от нещата, , които ще бъдат изтрити 312 00:15:14,790 --> 00:15:16,290 ще бъде корен квадратен рутина. 313 00:15:16,290 --> 00:15:20,360 Но очевидно за електрическа верига трябва още 314 00:15:20,360 --> 00:15:26,392 работи дори и когато сте съставяне надолу само на 4K версия на компютъра. 315 00:15:26,392 --> 00:15:29,350 DAVID J. Malan: Така че една от темите, както ще видим по компютърни науки, 316 00:15:29,350 --> 00:15:31,430 е това понятие за наслояване и абстракция, 317 00:15:31,430 --> 00:15:34,670 и наистина стои на раменете на хора, които са дошли преди нас, а не 318 00:15:34,670 --> 00:15:37,890 за разлика от някои от Бил Гейтс и Paul Allen разказ тук. 319 00:15:37,890 --> 00:15:40,080 И какво означава това е, , че днес можем да вземем за 320 00:15:40,080 --> 00:15:43,490 даденост, че нещата всъщност са по-лесно за нас да пишете код. 321 00:15:43,490 --> 00:15:47,170 Всъщност код, както казахме в петък, е повече технически известен като изходен код. 322 00:15:47,170 --> 00:15:52,210 И това е този английски като синтаксис че е по-правилно и по-добре дефинирани 323 00:15:52,210 --> 00:15:55,480 от нещо като псевдо код, за които няма официална дефиниция. 324 00:15:55,480 --> 00:15:58,320 >> И днес това, което ще да се съсредоточи върху е изходния код 325 00:15:58,320 --> 00:16:01,010 който прилича на този, който Вярно е на пръв поглед 326 00:16:01,010 --> 00:16:02,690 изглежда напълно загадъчен. 327 00:16:02,690 --> 00:16:08,540 И честно казано, това е начин по-естетически комплекс от основната програма е. 328 00:16:08,540 --> 00:16:13,300 All прави тази програма, Спомнете си, е какво да кажем? 329 00:16:13,300 --> 00:16:14,990 Тя просто отпечатва "Hello World". 330 00:16:14,990 --> 00:16:19,600 И все пак разгледаме всички неща, които трябва да обгърне, че много проста фраза. 331 00:16:19,600 --> 00:16:21,750 Но не след дълго всички тези линии и повече 332 00:16:21,750 --> 00:16:24,800 ще направи много по-добро чувство за вас. 333 00:16:24,800 --> 00:16:26,940 >> И потока е както следва. 334 00:16:26,940 --> 00:16:31,220 Това, което трябва, с които разполагаме е да се код, като източник 335 00:16:31,220 --> 00:16:32,340 код, който току-що видяхме. 336 00:16:32,340 --> 00:16:35,060 И ние се нуждаем от нова програма да тече през него. 337 00:16:35,060 --> 00:16:39,130 Имаме нужда от алгоритми, които могат да конвертирате изходния код, като този, 338 00:16:39,130 --> 00:16:41,932 в обектен код, 0s и 1s. 339 00:16:41,932 --> 00:16:43,890 С други думи, отиваме да научите днес 340 00:16:43,890 --> 00:16:46,620 е как да направите това, напишете изходния код до върха, 341 00:16:46,620 --> 00:16:49,930 го давате като вход за специален програма, известна като съставител, 342 00:16:49,930 --> 00:16:52,140 и ние отиваме да произвежда обектен код. 343 00:16:52,140 --> 00:16:54,600 Което е просто един луксозен начин на Казваш, че ще вземе нещо 344 00:16:54,600 --> 00:16:58,350 , който изглежда така, дай я в една програма, наречена компилатор, 345 00:16:58,350 --> 00:17:01,210 производство на обектен код който изглежда по този начин. 346 00:17:01,210 --> 00:17:04,720 >> Така че това са буквално моделите на 0s и 1s 347 00:17:04,720 --> 00:17:08,550 че се разбира под Intel компютър тези дни, 348 00:17:08,550 --> 00:17:12,480 че ако се тълкува от процесора, мозъците вътрешността на компютъра, 349 00:17:12,480 --> 00:17:16,130 буквално ще отпечатате, съвсем просто, "Hello World". 350 00:17:16,130 --> 00:17:19,670 Сега вече има начин повече 0s и 1s от теб да се надяваме, може да е необходимо за това. 351 00:17:19,670 --> 00:17:22,520 Но това е така, защото ние строим за добра сделка на сложност 352 00:17:22,520 --> 00:17:24,270 че отсега нататък ние можем да приемаме за даденост. 353 00:17:24,270 --> 00:17:27,869 С други думи, много умни хора са ни дали много готини инструменти 354 00:17:27,869 --> 00:17:32,480 и мощен софтуер, с който ние вече могат да се осъществяват проектите на нашите собствени. 355 00:17:32,480 --> 00:17:33,400 >> Така че нека да започнем. 356 00:17:33,400 --> 00:17:36,640 Като има предвид, миналия петък, и за Проблем Set 0 тази седмица 357 00:17:36,640 --> 00:17:39,000 вие ще се играе в свят, който изглежда по този начин. 358 00:17:39,000 --> 00:17:42,180 От днес и за Проблем Определете един през следващата седмица, кодът 359 00:17:42,180 --> 00:17:45,410 ще изглежда малко по- загадъчно, но функционално е 360 00:17:45,410 --> 00:17:46,940 ще бъде една и съща. 361 00:17:46,940 --> 00:17:50,770 Така известие, отгоре е Scratch, дъното е C. Честно Scratch 362 00:17:50,770 --> 00:17:52,780 е много по-удобни за лесен и достъпен. 363 00:17:52,780 --> 00:17:56,890 Но ако сега сравним визуално отгоре дъно, има вид на едно към едно 364 00:17:56,890 --> 00:17:59,690 кореспонденцията между пъзел парчета и езика 365 00:17:59,690 --> 00:18:00,870 ние сме на път да играе с тях. 366 00:18:00,870 --> 00:18:04,420 По-специално, да речем, синьо пъзел парче до върха, 367 00:18:04,420 --> 00:18:08,370 очевидно е еквивалентно на това, което дума или специална фраза в този език 368 00:18:08,370 --> 00:18:09,062 нарича C? 369 00:18:09,062 --> 00:18:09,770 АУДИТОРИЯ: ФОРМАТ. 370 00:18:09,770 --> 00:18:10,728 DAVID J. Malan: ФОРМАТ. 371 00:18:10,728 --> 00:18:12,140 Това означава, форматиран печат. 372 00:18:12,140 --> 00:18:15,240 И това е само една фантазия начин да се каже ФОРМАТ в C 373 00:18:15,240 --> 00:18:18,615 ще бъде дадено изявление или функция който извежда нещо на екрана. 374 00:18:18,615 --> 00:18:19,990 Какво означава да го отпечатате на екрана? 375 00:18:19,990 --> 00:18:23,627 Каквото и да ти го кажа, до вътрешна цитати, вътре в скоби. 376 00:18:23,627 --> 00:18:25,460 Така че отново, разбира се, има много неща, 377 00:18:25,460 --> 00:18:27,990 че трябва да се има предвид, скоби, кавички, точка и запетая, 378 00:18:27,990 --> 00:18:28,656 и всичко това. 379 00:18:28,656 --> 00:18:30,600 Но всичко това е нещо от до точката. 380 00:18:30,600 --> 00:18:33,660 Интересното храна за вкъщи за сега е, че блокът да речем в Scratch 381 00:18:33,660 --> 00:18:37,520 е почти еквивалентна на отчета за ФОРМАТ в C. 382 00:18:37,520 --> 00:18:41,390 >> Междувременно, жълто парче пъзел до върха, когато зелен флаг кликнали, 383 00:18:41,390 --> 00:18:44,736 вероятно е еквивалентен до каква ключова дума тук? 384 00:18:44,736 --> 00:18:45,360 АУДИТОРИЯ: Main. 385 00:18:45,360 --> 00:18:46,359 DAVID J. Malan: Значи основната. 386 00:18:46,359 --> 00:18:47,410 Може би ПНА, може би за невалидни. 387 00:18:47,410 --> 00:18:51,280 Но основният вид звучи като това е важно, и наистина е така. 388 00:18:51,280 --> 00:18:54,080 Така че, когато зелен флаг кликнали е, отново, на парче пъзел 389 00:18:54,080 --> 00:18:56,390 че започва една Цялата програма Scratch. 390 00:18:56,390 --> 00:19:02,140 Но ние ще се сега започвайте да викате че основната тази функция известен като основен. 391 00:19:02,140 --> 00:19:06,410 >> Сега междувременно ние ще обобщим това, както следва. 392 00:19:06,410 --> 00:19:08,780 Ние може да се нарече каже функция. 393 00:19:08,780 --> 00:19:10,580 И това може да изглежда конкретно по този начин. 394 00:19:10,580 --> 00:19:11,770 Е, какво да кажем за вериги? 395 00:19:11,770 --> 00:19:16,540 Ако искаме да започне конвертиране или превода повече в Scratch за C, 396 00:19:16,540 --> 00:19:19,400 това нещо тук явно просто казва "Здравей, свят" завинаги. 397 00:19:19,400 --> 00:19:23,060 Така че, ако се сдружават тези скриптове с котка в Scratch, 398 00:19:23,060 --> 00:19:26,560 това е просто да повтаряш в някаква карикатура балон, 399 00:19:26,560 --> 00:19:29,922 "Здравей свят, здравей свят, здравей свят ", реклама nauseum, завинаги. 400 00:19:29,922 --> 00:19:33,130 Ако искаме да направим нещо подобно в C, тя ще изглежда по-малко загадъчен. 401 00:19:33,130 --> 00:19:35,463 Но ние можем да постигнем същия резултат води, както ще в крайна сметка 402 00:19:35,463 --> 00:19:36,861 разберете, с синтаксис като този. 403 00:19:36,861 --> 00:19:39,360 Отивам да се използва ФОРМАТ отново, защото в края на деня 404 00:19:39,360 --> 00:19:42,040 Искам да отпечатате "Hello World". 405 00:19:42,040 --> 00:19:45,610 И аз съм очевидно с помощта на ключова дума, която не е завинаги. 406 00:19:45,610 --> 00:19:47,320 Това е вместо думата време. 407 00:19:47,320 --> 00:19:49,650 Но просто семантично в Английски, докато вид 408 00:19:49,650 --> 00:19:52,120 предполага някаква линия или цикъл. 409 00:19:52,120 --> 00:19:55,070 >> Така, че се случва да бъде ключовата дума, която C използва. 410 00:19:55,070 --> 00:20:00,700 И докато е вярно, защо докато вярно ефективно означава завинаги? 411 00:20:00,700 --> 00:20:04,240 Е, време, тъй като ние скоро ще Оценявам още повече, 412 00:20:04,240 --> 00:20:08,140 има това вмъкнат до него , където можете да сложите Булев израз. 413 00:20:08,140 --> 00:20:11,360 И толкова дълго, колкото, че словото е вярно, този код, 414 00:20:11,360 --> 00:20:14,750 като означен между тези две фигурни скоби, тъй като ние ще ги наричат, 415 00:20:14,750 --> 00:20:16,880 просто ще продължи да работи отново и отново. 416 00:20:16,880 --> 00:20:18,410 >> Така че, вярно е вярно. 417 00:20:18,410 --> 00:20:20,900 Така че, докато истинските средства просто правя това вечно. 418 00:20:20,900 --> 00:20:23,480 Това е почти една глупава конструира да изразиш себе си. 419 00:20:23,480 --> 00:20:26,590 Но там не е завинаги ключова дума в C. Имаше време. 420 00:20:26,590 --> 00:20:29,390 И имаше един много прост Булев израз като истина. 421 00:20:29,390 --> 00:20:32,210 И така, това, ще видим, постига същия резултат. 422 00:20:32,210 --> 00:20:33,890 >> Как иначе може да ви се приложи цикъл? 423 00:20:33,890 --> 00:20:36,980 Е, в Scratch можете да твърд код определен брой 424 00:20:36,980 --> 00:20:39,430 итерации в контура тук. 425 00:20:39,430 --> 00:20:43,210 И така, това е точно това, което ние може да се направи в тази версия на C, 426 00:20:43,210 --> 00:20:46,140 с което ние имаме така наречената за контур. 427 00:20:46,140 --> 00:20:49,850 А за линия тук се случва да превъртите, малко загадъчно, 428 00:20:49,850 --> 00:20:54,100 от стойността 0 нагоре да, но по-малко от 10. 429 00:20:54,100 --> 00:20:55,955 >> Сега променливи в Scratch. 430 00:20:55,955 --> 00:20:57,830 Може да не са имали повод да се използват тези. 431 00:20:57,830 --> 00:21:02,516 Но какъв е смисълът, като цяло, на дадена променлива казахме миналата седмица? 432 00:21:02,516 --> 00:21:03,015 Какво е това? 433 00:21:03,015 --> 00:21:03,780 >> Публика: точки. 434 00:21:03,780 --> 00:21:05,200 >> DAVID J. Malan: За да посоча? 435 00:21:05,200 --> 00:21:05,700 О, точки. 436 00:21:05,700 --> 00:21:07,620 OK, следене на точки, например, в една игра. 437 00:21:07,620 --> 00:21:09,510 Или по-общо прави какво с променлива? 438 00:21:09,510 --> 00:21:10,450 Каква е ползата от тях? 439 00:21:10,450 --> 00:21:10,825 >> АУДИТОРИЯ: Memory. 440 00:21:10,825 --> 00:21:11,750 >> DAVID J. Malan: Да, толкова памет. 441 00:21:11,750 --> 00:21:13,000 Това е за съхранение на нещо. 442 00:21:13,000 --> 00:21:17,336 И подобно на глупав визуална Използвах Последният път беше като тази стъклена купа. 443 00:21:17,336 --> 00:21:19,710 И ако искаме да съхраним нещо вътре в променлива, 444 00:21:19,710 --> 00:21:21,918 например в момента на стойност е шест, тъй като има 445 00:21:21,918 --> 00:21:23,450 шест пинг-понг топки в тук. 446 00:21:23,450 --> 00:21:26,158 Това е просто някакъв вид на съхранение контейнер, че под предния капак 447 00:21:26,158 --> 00:21:30,030 се осъществява с бита, 0s и 1s, обаче компютър се случва да направя това. 448 00:21:30,030 --> 00:21:32,900 >> Така че в Scratch, ако ние искате да имате променлива, 449 00:21:32,900 --> 00:21:34,840 можем да използваме оранжев блок като този. 450 00:21:34,840 --> 00:21:37,050 Ние ще се обадя, че борбата в този конкретен случай. 451 00:21:37,050 --> 00:21:38,890 Аз го инициализира с 0. 452 00:21:38,890 --> 00:21:41,080 И това, което аз тогава да направите? 453 00:21:41,080 --> 00:21:44,780 Forever, да кажем брояч, който, ако играете с тази в Scratch, 454 00:21:44,780 --> 00:21:45,780 вие просто ще видите Scratch. 455 00:21:45,780 --> 00:21:49,920 Котката или каквото костюм ви постави на него ще говоря с номера по въпроса. 456 00:21:49,920 --> 00:21:52,840 >> Промяна брояч от един е като увеличаване с 1. 457 00:21:52,840 --> 00:21:56,580 И така, това ще се брои от какво и какво от това? 458 00:21:56,580 --> 00:21:59,114 От 0 Тил безкрайност, или докато скреч-паузи, 459 00:21:59,114 --> 00:22:01,030 или докато вид губят интерес към гледане 460 00:22:01,030 --> 00:22:02,650 колко високо той всъщност може да брои. 461 00:22:02,650 --> 00:22:04,800 >> И така, как бихме могли да я превърне в това, за да C? 462 00:22:04,800 --> 00:22:06,480 Тя ще изглежда малко по-загадъчен. 463 00:22:06,480 --> 00:22:08,896 Но отново, ако се вгледате в всеки на тези линии индивидуално 464 00:22:08,896 --> 00:22:10,410 те вид подреждане обикновено. 465 00:22:10,410 --> 00:22:13,526 Така че очевидно INT ще има някакъв специален смисъл в C. 466 00:22:13,526 --> 00:22:14,400 Ще видите, че отново. 467 00:22:14,400 --> 00:22:15,810 Като настрана, това означава число. 468 00:22:15,810 --> 00:22:16,990 Така че това просто означава номер. 469 00:22:16,990 --> 00:22:18,920 Така че това е вида на стъклена купа искам, една 470 00:22:18,920 --> 00:22:21,120 който може да съхранява числа, не пинг-понг топки. 471 00:22:21,120 --> 00:22:25,520 И аз отивам да се използва знака за равенство там, за да го зададете стойност 0. 472 00:22:25,520 --> 00:22:29,440 Така че е съвсем като комплект брояч на 0, но в C. 473 00:22:29,440 --> 00:22:32,840 >> В същото време, докато е вярно, че е еквивалент, разбира се, да завинаги, 474 00:22:32,840 --> 00:22:35,980 макар че е малко загадъчен, и след това вътре на фигурните скоби. 475 00:22:35,980 --> 00:22:39,188 И вие може да се мисли за тези фигурни скоби, които можете да пишете на клавиатурата си, 476 00:22:39,188 --> 00:22:43,110 тъй като наистина е като кривината в тези жълти контур блокове в Scratch. 477 00:22:43,110 --> 00:22:45,700 Тя включва няколко реда код. 478 00:22:45,700 --> 00:22:48,120 >> ФОРМАТ става все по- малко страшно сега, защото аз 479 00:22:48,120 --> 00:22:51,120 виж цитира не само в скоби. 480 00:22:51,120 --> 00:22:55,160 Но какво друго е ново синтактично в този пример? 481 00:22:55,160 --> 00:22:57,300 Има процента г. 482 00:22:57,300 --> 00:22:58,551 И след това обратно наклонена черта н е там. 483 00:22:58,551 --> 00:23:00,883 Ние видяхме, че и преди, дори макар че аз не го споменавам. 484 00:23:00,883 --> 00:23:01,886 Тогава там е запетая. 485 00:23:01,886 --> 00:23:03,010 И тогава там е един брояч. 486 00:23:03,010 --> 00:23:05,010 >> Но ние ще видим само за момент, че това е само 487 00:23:05,010 --> 00:23:09,080 стандартен начин да се каже за печат на "Десетично число", цитат, край на цитата, 488 00:23:09,080 --> 00:23:10,500 някои десетични номер. 489 00:23:10,500 --> 00:23:13,370 Но аз ще ви кажа по-късно какво е това десетичен номер. 490 00:23:13,370 --> 00:23:16,835 Така че фактът, че има запетая в този ред поговорка ФОРМАТ, 491 00:23:16,835 --> 00:23:18,710 означава, давай напред и печат някои десетични номер. 492 00:23:18,710 --> 00:23:23,110 О, и между другото, броят им е независимо от стойността на тази променлива. 493 00:23:23,110 --> 00:23:25,880 И така, за да стане това по- ясно, че ще видим един пример 494 00:23:25,880 --> 00:23:30,930 Не след дълго, включваща точно ФОРМАТ в контекста на програмите за недвижими C. 495 00:23:30,930 --> 00:23:33,472 >> Сега просто да приключи до някои на тези конструкции. 496 00:23:33,472 --> 00:23:36,680 Булеви изрази, може да не са повод да се използват тези във вашата програма 497 00:23:36,680 --> 00:23:39,450 но може би много добре, особено при използване на условия. 498 00:23:39,450 --> 00:23:43,460 И така, тези два примера от Изтъркайте да кажа, ако х е по-малко от Y, 499 00:23:43,460 --> 00:23:48,770 или ако X е по-малко от Y и Y е по-малко от Z, как бихме могли да преведе това? 500 00:23:48,770 --> 00:23:50,810 >> Е, в C това е просто ще изглежда по този начин. 501 00:23:50,810 --> 00:23:55,300 А малко загадъчни, повече скоби, някои странни амперсанди, но фундаментално 502 00:23:55,300 --> 00:23:59,160 идеите са толкова прости, тъй като те са в света на пъзел парче. 503 00:23:59,160 --> 00:24:02,690 Ние сме просто проверка, ако нещо е по-малко, отколкото нещо друго. 504 00:24:02,690 --> 00:24:03,910 >> Какво ще кажете за условия? 505 00:24:03,910 --> 00:24:09,710 С две думи на английски език, което прави това парче от Scratch код се бихте казали? 506 00:24:09,710 --> 00:24:11,050 >> АУДИТОРИЯ: Сравнява две числа. 507 00:24:11,050 --> 00:24:13,760 >> DAVID J. Malan: Сравнява две номера, и ако X е по-малко от Y 508 00:24:13,760 --> 00:24:14,860 тя казва толкова много. 509 00:24:14,860 --> 00:24:18,080 Ако X е по-голямо от Y той казва, като много, друго 510 00:24:18,080 --> 00:24:20,740 ако х е равно на х го казва толкова много. 511 00:24:20,740 --> 00:24:22,180 Сега къде е х и у идват от? 512 00:24:22,180 --> 00:24:22,680 Кой знае. 513 00:24:22,680 --> 00:24:25,380 Това парче от Scratch код е извън контекста. 514 00:24:25,380 --> 00:24:29,050 Но това, което искам да направя сега е да преведете това само за миг да се види. 515 00:24:29,050 --> 00:24:31,660 >> Така, както можете да се удобно тази седмица в Проблем Set 516 00:24:31,660 --> 00:24:34,190 0 играещи в този свят в ляво, да разбере, 517 00:24:34,190 --> 00:24:36,940 че идеите не се променят тази седмица или следващата, или след това. 518 00:24:36,940 --> 00:24:38,690 Ние просто ще започнете да пишете неща 519 00:24:38,690 --> 00:24:41,240 по различен начин с нашия клавиатура вместо на нашия мишка. 520 00:24:41,240 --> 00:24:44,577 >> Така че, ако х е по-малко от Y, и Има някои скоби там, 521 00:24:44,577 --> 00:24:47,160 след това има някои фигурни скоби отново, за да вид го капсулират 522 00:24:47,160 --> 00:24:48,970 точно като жълтите пъзел парчета правят. 523 00:24:48,970 --> 00:24:53,000 И аз отивам да ФОРМАТ х е по-малко от Y и така нататък. 524 00:24:53,000 --> 00:24:56,540 >> Какво е хубаво за C, както можете да видите тук, 525 00:24:56,540 --> 00:25:00,480 е, че те не получават това гнездене, гнездене, гнездене, че е задължително 526 00:25:00,480 --> 00:25:02,220 ще наложи на кода в дясно. 527 00:25:02,220 --> 00:25:04,990 Вместо Можете да имате всичко подреждане точно по този начин. 528 00:25:04,990 --> 00:25:08,960 Но това е само естетически подробно ще видим отново след дълго. 529 00:25:08,960 --> 00:25:09,660 >> Добре. 530 00:25:09,660 --> 00:25:13,290 Така че това ни връща към този загадъчен търсите програма. 531 00:25:13,290 --> 00:25:15,180 Нека всъщност пиша някакъв код. 532 00:25:15,180 --> 00:25:16,830 Сега как да отида за писането на код? 533 00:25:16,830 --> 00:25:21,310 През всичките тези години, че сте собственост на Mac или PC, десктоп или лаптоп, 534 00:25:21,310 --> 00:25:24,520 сте имал действително възможност да започнете да пишете програмен код. 535 00:25:24,520 --> 00:25:27,050 Но вие вероятно липсва специален тип програма. 536 00:25:27,050 --> 00:25:28,470 Вие със сигурност може да се пише код. 537 00:25:28,470 --> 00:25:30,740 Но не можеш да е задължително, изваждането от кутията, 538 00:25:30,740 --> 00:25:34,210 конвертирате, че изходния код в обектен код, 0s и 1s 539 00:25:34,210 --> 00:25:35,619 без това на вашия компютър? 540 00:25:35,619 --> 00:25:36,410 АУДИТОРИЯ: Compiler. 541 00:25:36,410 --> 00:25:37,630 DAVID J. Malan: Значи компилатор, нали. 542 00:25:37,630 --> 00:25:39,730 Сега повечето от вас вероятно не притежават компилатор, 543 00:25:39,730 --> 00:25:41,259 никога не са се изтеглили съставител. 544 00:25:41,259 --> 00:25:44,300 Но вие ще видите, можете да го изтеглите като най-всяка друга част от софтуера. 545 00:25:44,300 --> 00:25:47,470 В света на Mac OS, може да се изтеглите или вече са изтеглили 546 00:25:47,470 --> 00:25:50,437 нещо, наречено Xcode или GCC или звъня. 547 00:25:50,437 --> 00:25:52,270 Ако идвате от Windows ви светът може 548 00:25:52,270 --> 00:25:56,190 изтеглили Visual Studio, Visual Basic, среди като това. 549 00:25:56,190 --> 00:25:59,200 Има десетки компилатори тези дни, които можете да използвате. 550 00:25:59,200 --> 00:26:01,940 Но в краткосрочен от него тук е, че той ще бъде болка 551 00:26:01,940 --> 00:26:04,480 и, честно казано, технологична кошмар за стотици 552 00:26:04,480 --> 00:26:07,680 на хора с различен компютърни конфигурации за всички 553 00:26:07,680 --> 00:26:09,800 конфигуриране на техните машини точно по същия начин 554 00:26:09,800 --> 00:26:11,700 така че всичко, което може да бъде на една и съща страница. 555 00:26:11,700 --> 00:26:15,240 >> Така че това, което ние, вместо, направете в CS50 е ние да ви даде 556 00:26:15,240 --> 00:26:18,349 стандартна среда, а Linux среда, която е 557 00:26:18,349 --> 00:26:20,140 щеше да изглежда малко по- нещо като това. 558 00:26:20,140 --> 00:26:22,980 Ще видите повече от този в Проблем Set една спецификация, която 559 00:26:22,980 --> 00:26:25,330 ще отидете онлайн, този петък вечер. 560 00:26:25,330 --> 00:26:28,360 >> И какво означава това е, че отсега нататък 561 00:26:28,360 --> 00:26:32,060 ще бъде в състояние да изтеглите и инсталирате програма 562 00:26:32,060 --> 00:26:33,650 наречен CS50 уреда. 563 00:26:33,650 --> 00:26:36,275 И ти започваш да изтеглите и инсталирате друга програма, наречена 564 00:26:36,275 --> 00:26:40,300 хипервайзор, който е само луксозен начин за постигане на това. 565 00:26:40,300 --> 00:26:44,600 Независимо дали сте собственик на Mac или PC или Linux компютър или компютър, Solaris, 566 00:26:44,600 --> 00:26:46,830 или каквото и луд операционна система, която пускате, 567 00:26:46,830 --> 00:26:49,820 ти започваш да си изтеглите програма наречен хипервайзора, че е 568 00:26:49,820 --> 00:26:53,350 Ще стартирате CS50 Техника на вашия компютър 569 00:26:53,350 --> 00:26:55,430 Без значение какво си операционна система е. 570 00:26:55,430 --> 00:27:00,640 Хипервайзор в други думи преобразува нашите неща какъвто и да е език, 571 00:27:00,640 --> 00:27:03,850 каквото и инструкции ви собствен компютър разбира. 572 00:27:03,850 --> 00:27:04,962 >> Така че това е наслояване. 573 00:27:04,962 --> 00:27:06,920 И отново, това е един вид на тематична в компютър 574 00:27:06,920 --> 00:27:08,722 науката, сградата на върха на нещата. 575 00:27:08,722 --> 00:27:09,680 Може да имате Windows. 576 00:27:09,680 --> 00:27:10,710 Може да имате Mac OS. 577 00:27:10,710 --> 00:27:12,960 Но началото на следващата седмица, вие сте ще сте изтеглили 578 00:27:12,960 --> 00:27:14,980 свободна част от софтуера нарича хипервизора. 579 00:27:14,980 --> 00:27:17,800 Ти започваш да се изтеглили парче на софтуер, наречен на CS50 уреда. 580 00:27:17,800 --> 00:27:21,050 >> Това ще да тече в хипервайзора, които ще работят на вашия компютър. 581 00:27:21,050 --> 00:27:23,030 И крайният резултат е че всички от нас ще 582 00:27:23,030 --> 00:27:26,220 има прост прозорец като този на вашия Mac или PC 583 00:27:26,220 --> 00:27:30,160 която ни дава илюзията за всички движение на същата операционна система, 584 00:27:30,160 --> 00:27:32,800 без друго въздействие върху вашия компютър. 585 00:27:32,800 --> 00:27:34,870 И вие можете да цял екран това и по същество се държат 586 00:27:34,870 --> 00:27:37,550 като че ли се работи с операционна система, наречена Linux, 587 00:27:37,550 --> 00:27:40,270 което е това, което CS50 Техника се основава на. 588 00:27:40,270 --> 00:27:42,930 >> Така че нека всъщност използвате този сега, за да се напише програма. 589 00:27:42,930 --> 00:27:45,450 Можете да напишете програма с помощта на Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Можете да напишете програма използвайки TextEdit или Notepad, 591 00:27:48,160 --> 00:27:51,880 или WordPad, или почти всяка дума програма за обработка, което някога сте се използва. 592 00:27:51,880 --> 00:27:55,174 Но реалността е, че не трябва да използвате наистина някоя от тези програми. 593 00:27:55,174 --> 00:27:57,840 Вие със сигурност не трябва да използвате нещо като Microsoft Word, който 594 00:27:57,840 --> 00:28:01,120 има смели изложение и курсив, и по-големи шрифтове и по-малки шрифтове, 595 00:28:01,120 --> 00:28:03,560 защото компютърът не пука за нищо от това. 596 00:28:03,560 --> 00:28:05,600 Всички компютърът е ще се грижа за е 597 00:28:05,600 --> 00:28:09,040 English като инструкции, написани на C. 598 00:28:09,040 --> 00:28:12,050 >> Така че това, което ние ще направим вътре на CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 се използват свободно програма достъпно, а това е 600 00:28:14,290 --> 00:28:17,360 предварително инсталиран в този уред, наречен Gedit. 601 00:28:17,360 --> 00:28:22,280 И Gedit е просто супер проста текстов редактор като TextEdit Mac OS е, 602 00:28:22,280 --> 00:28:26,200 като Windows Notepad, че ще изглежда малко нещо като това. 603 00:28:26,200 --> 00:28:28,910 >> Така че не е нека действително погледнете пързалки за това. 604 00:28:28,910 --> 00:28:32,580 Но нека всъщност отиде в самата среда. 605 00:28:32,580 --> 00:28:36,090 Отивам да вървим напред и влезете в системата, в този друг прозорец, 606 00:28:36,090 --> 00:28:40,910 да ми CS50 техника, която аз съм предварително инсталирани на моя лаптоп тук. 607 00:28:40,910 --> 00:28:43,771 >> Забележете, че, подобно на Windows и Mac OS, тя има някои от менютата. 608 00:28:43,771 --> 00:28:45,520 Подобно на Windows го слага то там вместо 609 00:28:45,520 --> 00:28:47,020 на Mac OS, което го поставя там. 610 00:28:47,020 --> 00:28:48,930 Но реалността е, че е всички видове на същото. 611 00:28:48,930 --> 00:28:50,770 И тук е цяло куп софтуер. 612 00:28:50,770 --> 00:28:51,770 Има Dropbox. 613 00:28:51,770 --> 00:28:54,780 Има цял куп аксесоари, графични програми, които ще 614 00:28:54,780 --> 00:28:56,430 използвате по-късно в срока за проблемните комплекти. 615 00:28:56,430 --> 00:28:59,650 Има един уеб браузър, създаден в така че това е пълноправен компютър 616 00:28:59,650 --> 00:29:01,240 вътрешността на компютър. 617 00:29:01,240 --> 00:29:04,170 >> Но аз отивам да кликнете върху тази Най-лявата бяла икона тук, 618 00:29:04,170 --> 00:29:05,890 който е иконата за Gedit. 619 00:29:05,890 --> 00:29:09,650 И това се случва, за да отворите прозорец че има три панела играта, 620 00:29:09,650 --> 00:29:12,590 лява едно, топ един и отдолу една. 621 00:29:12,590 --> 00:29:16,071 >> Сега тя е в това горе в дясно едно че Отивам да всъщност пиша някакъв код. 622 00:29:16,071 --> 00:29:16,820 Така че нека да направим тази ,. 623 00:29:16,820 --> 00:29:19,040 Отивам да отидете на File, Save. 624 00:29:19,040 --> 00:29:22,100 И вие може да не сте виждали някога този прозорец преди. 625 00:29:22,100 --> 00:29:23,620 Но това е като Mac OS или Windows. 626 00:29:23,620 --> 00:29:25,490 Това е само един прозорец с всички папки 627 00:29:25,490 --> 00:29:27,290 че имам вътре на този компютър. 628 00:29:27,290 --> 00:29:30,320 >> И аз отивам да спаси файла като hello.c. 629 00:29:30,320 --> 00:29:32,690 И аз отивам да напред и натиснете Save. 630 00:29:32,690 --> 00:29:36,364 И сега забележи Имам раздела в горния ляв нарича hello.c. 631 00:29:36,364 --> 00:29:38,280 Така че вероятно доста познато, дори ако не сте 632 00:29:38,280 --> 00:29:40,240 използва тази конкретна програма преди. 633 00:29:40,240 --> 00:29:44,890 >> И сега аз отивам да напишете в тези доста загадъчен последователност от команди 634 00:29:44,890 --> 00:29:46,360 , която видяхме преди малко. 635 00:29:46,360 --> 00:29:49,330 Включи, стандартна I / O.h. 636 00:29:49,330 --> 00:29:50,600 Повече за това по-скоро. 637 00:29:50,600 --> 00:29:55,670 Int основен нищожен, отворена къдрава презрамки, затворени фигурна скоба. 638 00:29:55,670 --> 00:30:01,570 И тогава вътре от там мисля, че е където имахме "Hello World", точка и запетая. 639 00:30:01,570 --> 00:30:03,100 И сега спаси. 640 00:30:03,100 --> 00:30:08,780 >> Така че това е една програма, написана на C, писмено, следователно, че в изходния код. 641 00:30:08,780 --> 00:30:10,720 Но аз не мога просто да стартирате тази програма. 642 00:30:10,720 --> 00:30:13,390 I вид искате да се удвои кликнете върху икона някъде, 643 00:30:13,390 --> 00:30:16,390 но няма икона съществуват други от изходния код на файла. 644 00:30:16,390 --> 00:30:20,359 Какво, отново, е процес, сега, че Имам нужда да тече този файл чрез? 645 00:30:20,359 --> 00:30:21,150 АУДИТОРИЯ: Compiler. 646 00:30:21,150 --> 00:30:22,399 DAVID J. Malan: Значи компилатор. 647 00:30:22,399 --> 00:30:24,890 Така че в различни компютри вас направите това по различни начини. 648 00:30:24,890 --> 00:30:27,480 Но това, което сме направили тук, в на CS50 уред, който е 649 00:30:27,480 --> 00:30:31,260 представител на това как може да се направите това по много различни системи, 650 00:30:31,260 --> 00:30:34,036 е, че съм просто ще стартирате команда, наречена марка. 651 00:30:34,036 --> 00:30:35,660 И да е буквално ще го направя. 652 00:30:35,660 --> 00:30:36,640 Направи ми програма. 653 00:30:36,640 --> 00:30:39,060 >> Така че ще се тичам компилатор за мен. 654 00:30:39,060 --> 00:30:42,160 А името на програмата Аз искам да направя е здравей. 655 00:30:42,160 --> 00:30:43,510 Сега да е програма. 656 00:30:43,510 --> 00:30:47,170 И да е достатъчно, за да умни осъзнават, че ако кажа направи здравей, 657 00:30:47,170 --> 00:30:50,980 тя ще изглежда автоматично за даден файл, наречен hello.c 658 00:30:50,980 --> 00:30:53,420 просто защото това е начин, че е конфигуриран. 659 00:30:53,420 --> 00:31:00,300 >> Така че, когато вече е хит Въведете тук, това луд загадъчен линия просто се изпълнява. 660 00:31:00,300 --> 00:31:02,720 И повярвайте ми, преди да дълго, в рамките на само няколко дни, 661 00:31:02,720 --> 00:31:05,590 ще разберете това, което всички на тези глупости средства. 662 00:31:05,590 --> 00:31:11,150 Но за сега, просто знам, че правят задействаната изпълнение на компилатор. 663 00:31:11,150 --> 00:31:13,290 С други думи, тя установи, компилатор на моя компютър 664 00:31:13,290 --> 00:31:14,820 това е предварително инсталиран на CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 че ние ще предадем на вас в Проблем Set 1. 666 00:31:16,560 --> 00:31:20,990 И след това взе hello.c като вход, и произведени очевидно 667 00:31:20,990 --> 00:31:23,040 0s и 1s като изход. 668 00:31:23,040 --> 00:31:29,410 >> И по подразбиране, което той прави, е да го спасява тези 0s и 1s във файл, наречен здравей. 669 00:31:29,410 --> 00:31:33,180 И макар че този синтаксис твърде мощ е ново за вас, просто като кажа, точка 670 00:31:33,180 --> 00:31:37,110 наклонена черта здравей ще бъде средствата, чрез които пускам тази програма. 671 00:31:37,110 --> 00:31:40,360 >> За сега и за най-малко една двойка на седмица, почти всички програми 672 00:31:40,360 --> 00:31:44,230 Ние пишем ще бъде в черни и бели текстови прозорци. 673 00:31:44,230 --> 00:31:47,006 Не мишки не щракване, без прозорци, без икони. 674 00:31:47,006 --> 00:31:49,630 Отиваме да го прости и да се съсредоточи върху основните идеи 675 00:31:49,630 --> 00:31:52,490 първоначално, преди да стигнем до нещо, по-високо ниво, например, 676 00:31:52,490 --> 00:31:56,410 като избухне игра, която ние говорихме за в първата лекция миналата седмица. 677 00:31:56,410 --> 00:32:00,820 >> Така че, когато удари Въведете тук, това е равностойност в текст само околната среда 678 00:32:00,820 --> 00:32:03,272 да се удвои като кликнете икона наречена Здравейте. 679 00:32:03,272 --> 00:32:05,480 Какво очаквате воля се случи, когато ударих Въведете тогава? 680 00:32:05,480 --> 00:32:07,120 >> АУДИТОРИЯ: Това ще отпечата "Hello World". 681 00:32:07,120 --> 00:32:10,000 >> DAVID J. Malan: Да се ​​надяваме, тя ще отпечатва "Hello World". 682 00:32:10,000 --> 00:32:11,370 И наистина го е направил. 683 00:32:11,370 --> 00:32:13,690 Сега там е било известно загадъчен синтаксис тук. 684 00:32:13,690 --> 00:32:15,950 Нека назад само за момент и да видим дали можем 685 00:32:15,950 --> 00:32:19,530 не може да започне да прави извода, само чрез бърникането, опитвайки се, и при липса, 686 00:32:19,530 --> 00:32:21,130 за това, което става тук. 687 00:32:21,130 --> 00:32:23,609 Какво става, ако мога да се отърва от наклонена черта N? 688 00:32:23,609 --> 00:32:25,650 Сега някои от вас, които сте програмиран преди вероятно 689 00:32:25,650 --> 00:32:27,054 Знам мигновено какво означава това. 690 00:32:27,054 --> 00:32:29,220 Но за тези от вас, които сте никога преди програмиран, 691 00:32:29,220 --> 00:32:34,052 най-малко мисля за себе си какво се случва да се промени, когато се повтаря отново, но тази програма? 692 00:32:34,052 --> 00:32:37,010 Така че аз отивам да се върна на моя малка черна и бяла прозорец, който 693 00:32:37,010 --> 00:32:39,290 е прозорец, в който Можете да компилирате това. 694 00:32:39,290 --> 00:32:41,130 Отивам да прекомпилирате здравей. 695 00:32:41,130 --> 00:32:43,520 Отиваме, за да видите същото загадъчен последователност от команди. 696 00:32:43,520 --> 00:32:45,719 И аз отивам да правя точка наклонена черта здравей. 697 00:32:45,719 --> 00:32:48,260 И сега някой, ако щете, да който никога не е програмиран и преди, 698 00:32:48,260 --> 00:32:49,770 какво би могло да бъде различно този път? 699 00:32:49,770 --> 00:32:50,020 Да. 700 00:32:50,020 --> 00:32:51,840 >> АУДИТОРИЯ: Тя няма да спре печат "Hello World". 701 00:32:51,840 --> 00:32:52,660 >> DAVID J. Malan: Ще да-- съжалявам? 702 00:32:52,660 --> 00:32:54,210 >> АУДИТОРИЯ: Тя няма да спре да го отпечатате? 703 00:32:54,210 --> 00:32:55,810 >> DAVID J. Malan: тя няма да спрете разпечатването "Hello World". 704 00:32:55,810 --> 00:32:56,560 Така че не е лоша идея. 705 00:32:56,560 --> 00:32:58,633 Други идеи? 706 00:32:58,633 --> 00:32:59,132 Да. 707 00:32:59,132 --> 00:33:00,060 >> АУДИТОРИЯ: Съобщение за грешка? 708 00:33:00,060 --> 00:33:01,750 >> DAVID J. Malan: Грешка съобщение, ОК, може да бъде. 709 00:33:01,750 --> 00:33:02,250 Какво друго? 710 00:33:02,250 --> 00:33:05,479 АУДИТОРИЯ: Може да се отпечата скоба с точка и запетая, както и? 711 00:33:05,479 --> 00:33:08,270 DAVID J. Malan: Може да се отпечата скоба с точка и запетая, както добре. 712 00:33:08,270 --> 00:33:11,950 Така че, може би, че наклонена черта след това е някаква вид terminous, че е важно. 713 00:33:11,950 --> 00:33:14,860 Някакви други идеи? 714 00:33:14,860 --> 00:33:16,412 >> Така че всички добри идеи. 715 00:33:16,412 --> 00:33:18,370 И в действителност, това става за съобщение за грешка. 716 00:33:18,370 --> 00:33:20,400 Това е може би най-вероятно за да се отговори по принцип 717 00:33:20,400 --> 00:33:22,420 за следващите няколко седмици както ние се учим да се кодира тук. 718 00:33:22,420 --> 00:33:27,680 >> Но за сега си спомням, че компютрите само, че това, което им кажа да се направи. 719 00:33:27,680 --> 00:33:30,400 Много прилича на нелепо фъстъка масло и желе например. 720 00:33:30,400 --> 00:33:33,860 Нашите човешки компютрите са само предполагаемите да направи това, което им казах да се направи. 721 00:33:33,860 --> 00:33:36,250 Така че в този случай, ако Не казвай на компютъра 722 00:33:36,250 --> 00:33:41,190 да се движат, че мига курсора до Следващата линия, тя няма да го направи. 723 00:33:41,190 --> 00:33:45,390 Така че, когато стартирате тази програма сега, забележите разликата. 724 00:33:45,390 --> 00:33:46,900 >> Прилича на бъг. 725 00:33:46,900 --> 00:33:49,190 Това е естетически бъг, може би. 726 00:33:49,190 --> 00:33:53,310 Но това, което е различно за това изход спрямо последната очевидно? 727 00:33:53,310 --> 00:33:53,810 Да. 728 00:33:53,810 --> 00:33:54,920 >> АУДИТОРИЯ: Той не е направил нов ред. 729 00:33:54,920 --> 00:33:56,586 >> DAVID J. Malan: Той не е направил нов ред. 730 00:33:56,586 --> 00:33:58,740 Сега онези от вас, които има може би правят уеб страници 731 00:33:58,740 --> 00:34:01,910 и преди, може би знаете от BR тагове или етикет параграф, 732 00:34:01,910 --> 00:34:03,120 много сходни по дух. 733 00:34:03,120 --> 00:34:06,680 А уеб браузър ще ви игнорират, докато ти го кажа точно какво да правя. 734 00:34:06,680 --> 00:34:10,020 По същия начин, е език като C само Ще направя това, което му казвате да прави. 735 00:34:10,020 --> 00:34:12,730 >> Така че причината, поради която Всички тези примери, 736 00:34:12,730 --> 00:34:15,350 досега, има вид на небрежно имаше тази наклонена черта 737 00:34:15,350 --> 00:34:18,560 там, това е средството чрез които да изразиш себе си 738 00:34:18,560 --> 00:34:21,380 като нова линия характер, така да се каже. 739 00:34:21,380 --> 00:34:26,219 И вие можете да вид оценявам, може би, че това ще изглежда много глупаво 740 00:34:26,219 --> 00:34:27,070 ако не друго. 741 00:34:27,070 --> 00:34:29,150 Ако исках нова линия, просто удря Enter и след това вид 742 00:34:29,150 --> 00:34:32,219 на клане кода като че не трябва наистина да ви трия по правилния начин. 743 00:34:32,219 --> 00:34:33,830 И дори ако не го направиш наистина е грижа в този момент, 744 00:34:33,830 --> 00:34:35,830 ще разберем, че това не е особено 745 00:34:35,830 --> 00:34:37,870 добре изглеждащ част от код. 746 00:34:37,870 --> 00:34:39,969 >> И така, това, което светът Преди решиха години е 747 00:34:39,969 --> 00:34:43,420 че, когато искате да поставите курсора върху нов ред изрично, 748 00:34:43,420 --> 00:34:46,332 трябва изрично да се каже, нов ред, наклонена черта п. 749 00:34:46,332 --> 00:34:48,040 А има и някои други символи подобно. 750 00:34:48,040 --> 00:34:50,719 Но за сега ние просто ще съсредоточи върху наклонена черта п. 751 00:34:50,719 --> 00:34:53,790 >> Сега нека да се направи програмата малко по-интересна. 752 00:34:53,790 --> 00:34:59,200 Отивам да вървим напред и този път се отвори нов файл. 753 00:34:59,200 --> 00:35:02,520 Отивам да спаси това като здравей-1.в. 754 00:35:02,520 --> 00:35:05,540 И само за ритници, аз отивам да отида да го сложи в моята Dropbox папка. 755 00:35:05,540 --> 00:35:09,030 >> Както ще видите в CS50 документация за уреда, 756 00:35:09,030 --> 00:35:11,210 по-късно тази седмица, за Проблем Определете един, ще насърчи 757 00:35:11,210 --> 00:35:13,230 можете да използвате Dropbox или някои равностойна услуга, 758 00:35:13,230 --> 00:35:15,430 защото тогава всички от вашия код за Ще бъдат подкрепени автоматично. 759 00:35:15,430 --> 00:35:17,830 И така, това е защо аз съм отишло в тази папка тук. 760 00:35:17,830 --> 00:35:20,230 >> И сега аз отивам да пиша малко по-различна програма. 761 00:35:20,230 --> 00:35:24,740 Включи, стандартна I / O.h, вътр основната невалидна. 762 00:35:24,740 --> 00:35:29,660 И тогава тук ФОРМАТ, здравей свят, което е точно същото, както преди. 763 00:35:29,660 --> 00:35:32,450 >> Но сега искам да отпечатате нещо това е малко по-различна. 764 00:35:32,450 --> 00:35:34,800 Искам да отпечатате, казват: "Здравей, Дейвид." 765 00:35:34,800 --> 00:35:37,590 Добре, така че явно, тя трябва да се надяваме, 766 00:35:37,590 --> 00:35:40,360 да бъде случаят, ако компилирате тази програма, изпълнете отново той, 767 00:35:40,360 --> 00:35:41,840 че ще каже "здравей, Дейвид." 768 00:35:41,840 --> 00:35:45,160 >> Но какво, ако искам да се въведе този вид на променлива, 769 00:35:45,160 --> 00:35:49,240 понятието контейнер, който става за съхранение на D-а-V-и-г и не е трудно да го код 770 00:35:49,240 --> 00:35:50,600 в моята програма. 771 00:35:50,600 --> 00:35:53,430 Ами какво, ако започнете прави нещо подобно? 772 00:35:53,430 --> 00:35:57,120 >> String S, така че това е променлива. 773 00:35:57,120 --> 00:36:00,250 Ако искате низ, познат още като една дума или фраза. 774 00:36:00,250 --> 00:36:03,485 Поредица от символи е какво ние в програмирането наричаме низ. 775 00:36:03,485 --> 00:36:06,610 Ние просто ще генерично повикване това е, защото това е приятно просто име. 776 00:36:06,610 --> 00:36:08,010 Но мога да го наречем нещо. 777 00:36:08,010 --> 00:36:12,920 >> Отивам да се каже, струнни и равни в кавички, "Дейвид," точка и запетая. 778 00:36:12,920 --> 00:36:18,330 И сега искам да вмъкнете D-а-V-и-г в това, което аз съм печат. 779 00:36:18,330 --> 00:36:23,720 И преди видяхме тийзър на екрана на някакъв специален синтаксис 780 00:36:23,720 --> 00:36:26,050 че ни позволи да заместител в стойност. 781 00:36:26,050 --> 00:36:29,250 Какво бе специалната символ преди няколко пързалки? 782 00:36:29,250 --> 00:36:30,040 >> Така процента. 783 00:36:30,040 --> 00:36:33,830 По това време е процента г за десетичен номер. 784 00:36:33,830 --> 00:36:35,850 Това наистина не изглежда уместно тук. 785 00:36:35,850 --> 00:36:38,650 Оказа се, че има друг процента символ, 786 00:36:38,650 --> 00:36:42,810 който е процента и, която стои за контейнер за низ. 787 00:36:42,810 --> 00:36:49,350 >> Така че сега, много просто, аз съм ще отида да здравей-1, 788 00:36:49,350 --> 00:36:54,210 тъй като този файл се нарича здравей-1.в, и натиснете Enter. 789 00:36:54,210 --> 00:36:56,230 И аз се издъних. 790 00:36:56,230 --> 00:36:57,394 Какво става? 791 00:36:57,394 --> 00:37:00,560 Е, тук е мястото, където ние трябва да започнем да Оценявам това, че сме в тази команда 792 00:37:00,560 --> 00:37:02,810 линия среда, този само текст среда. 793 00:37:02,810 --> 00:37:06,114 Няма никаква щракване върху иконите като папки точно сега. 794 00:37:06,114 --> 00:37:07,280 И мисля, обратно преди малко. 795 00:37:07,280 --> 00:37:10,740 В коя папка направих аз казвам Пазех моя код? 796 00:37:10,740 --> 00:37:11,657 Така че папката Dropbox. 797 00:37:11,657 --> 00:37:12,989 Би могъл да се нарича нищо. 798 00:37:12,989 --> 00:37:14,530 Но това се случва, за да бъде наречена Dropbox. 799 00:37:14,530 --> 00:37:18,380 Така че аз по някакъв начин трябва да щракнете два пъти върху че Dropbox папка, за да получите 800 00:37:18,380 --> 00:37:21,657 в него и да получите в моя код, наречен здравей-1.в. 801 00:37:21,657 --> 00:37:24,490 Всъщност, нека да вървим напред и да се минимизира този прозорец само за миг. 802 00:37:24,490 --> 00:37:27,560 Точно като Windows и Mac OS, има папки в Linux. 803 00:37:27,560 --> 00:37:29,410 Има папки в CS50 уреда. 804 00:37:29,410 --> 00:37:32,380 Това е точно сега сме ограничава себе си за този текст среда. 805 00:37:32,380 --> 00:37:34,700 >> Но ако съм двоен клик на Dropbox, забележете, има 806 00:37:34,700 --> 00:37:37,210 е файл, който искате да компилирате. 807 00:37:37,210 --> 00:37:41,430 Но имам нужда от това черно и бяло терминален прозорец, така да се каже. 808 00:37:41,430 --> 00:37:45,750 Но аз имам нужда, следователно, да се движат в тази папка или директория. 809 00:37:45,750 --> 00:37:48,290 Така че малко тайнствена, но Ще свикнеш с това също. 810 00:37:48,290 --> 00:37:50,430 >> В света на Linux, което отново е операционната 811 00:37:50,430 --> 00:37:54,860 система ни изтича вътре на CS50 Appliance, има команда, наречена CD. 812 00:37:54,860 --> 00:37:58,310 Което означава, че мога да направя CD, пространство, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, промяна директория. 814 00:37:59,900 --> 00:38:00,400 Точно така. 815 00:38:00,400 --> 00:38:02,890 Обратно, в деня, когато хората са били изобретяването на компютъра и операционната 816 00:38:02,890 --> 00:38:05,806 системи като тази, те искаха да напишете възможно най-малко клавиши. 817 00:38:05,806 --> 00:38:08,760 Така че най-лесният начин да се каже, промяна директория е CD. 818 00:38:08,760 --> 00:38:13,910 >> Така че, ако се удари CD, пространство Dropbox, забележите, какво се е променило тук. 819 00:38:13,910 --> 00:38:16,480 Вътре в скоби уредът е вид 820 00:38:16,480 --> 00:38:19,360 на мен humoring и ми напомня къде съм. 821 00:38:19,360 --> 00:38:21,480 Така отворената папка е Dropbox. 822 00:38:21,480 --> 00:38:24,950 Ако сега пиша ли за списък, отново кратка, 823 00:38:24,950 --> 00:38:27,540 защото хората не искат да въведете отново в ден л-и-и-т. 824 00:38:27,540 --> 00:38:29,300 Така те вместо да го направи LS. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Забележете, аз виждам две неща, здравей-1.в, и след това тайнствено нещо, източник 1м. 827 00:38:35,740 --> 00:38:38,310 Това е само моя начин на казвайки: изходния код за седмица един понеделник. 828 00:38:38,310 --> 00:38:42,020 Това е папка Свалих от Уебсайт CS50, че съм направил по-рано днес 829 00:38:42,020 --> 00:38:43,990 и просто да го постави в уред предварително. 830 00:38:43,990 --> 00:38:47,550 >> Но за сега единственото, което можем интересува се прави тази програма. 831 00:38:47,550 --> 00:38:50,440 Така че, когато напишете направи здравей-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Дявол да го вземе. 833 00:38:51,320 --> 00:38:53,060 Нещо се е объркало. 834 00:38:53,060 --> 00:38:54,580 Така че нека да дразни този апарт. 835 00:38:54,580 --> 00:38:58,489 И за съжаление това е мястото, където нещата получи малко стресиращо в началото, 836 00:38:58,489 --> 00:39:00,280 най-малко, ако сте никога преди програмиран. 837 00:39:00,280 --> 00:39:00,980 >> Моят бог. 838 00:39:00,980 --> 00:39:04,990 Написах програма за две линии и Имам четири линии на грешки. 839 00:39:04,990 --> 00:39:07,180 Така че това, което става тук. 840 00:39:07,180 --> 00:39:11,370 Първо и преди всичко винаги превъртете назад нагоре и да намерят първо съобщение за грешка, 841 00:39:11,370 --> 00:39:15,730 защото често компилатори просто се бърка с това, което и аз. 842 00:39:15,730 --> 00:39:17,000 Съставители са доста тъпи. 843 00:39:17,000 --> 00:39:18,360 Те ще правят това, което само можете да им кажа да се направи. 844 00:39:18,360 --> 00:39:21,484 И ако ги обърка, те са просто Ще вид повърна ръцете си 845 00:39:21,484 --> 00:39:25,010 а може би и хвърлят повече съобщения за грешки отколкото всъщност са от значение. 846 00:39:25,010 --> 00:39:26,380 >> Така че нека да погледнем към първото. 847 00:39:26,380 --> 00:39:27,540 Super загадъчен на първо време. 848 00:39:27,540 --> 00:39:31,050 Но забележете, тук е името на файл, в който се издъних очевидно. 849 00:39:31,050 --> 00:39:36,570 Colon 5, дебелото черво 5 просто означава на линия 5 в петия знак. 850 00:39:36,570 --> 00:39:39,760 Така петата колона на героите, ако щете, грешка. 851 00:39:39,760 --> 00:39:41,870 Използване на недекларирания идентификатор низ. 852 00:39:41,870 --> 00:39:43,120 Може би имахте предвид стандартната п? 853 00:39:43,120 --> 00:39:44,850 >> Не, имах предвид низ. 854 00:39:44,850 --> 00:39:47,640 И тогава това е вид копиране и поставяне 855 00:39:47,640 --> 00:39:50,700 това, което написах наистина да рисувам моя внимание към мястото, където се издъних. 856 00:39:50,700 --> 00:39:54,260 Така по някаква причина С, или най-малко на компилатора 857 00:39:54,260 --> 00:39:56,470 не разбира думата низ. 858 00:39:56,470 --> 00:39:57,890 И това е така, защото ние го измислих. 859 00:39:57,890 --> 00:40:01,440 Така низ не съществува в C. Какво CS50 прави, 860 00:40:01,440 --> 00:40:03,380 за първите няколко седмици само на класа, 861 00:40:03,380 --> 00:40:05,700 е ние предлагаме някои обучение колела, така да се каже. 862 00:40:05,700 --> 00:40:11,160 И ние поставяме тези помощни колела вътре в специален файл, наречен CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Така че това е втората от две файл имена, които очевидно завършват с точка з. 864 00:40:14,970 --> 00:40:16,300 Нека назад. 865 00:40:16,300 --> 00:40:19,360 ФОРМАТ е изявление или функция че очевидно отпечатва нещо 866 00:40:19,360 --> 00:40:20,580 на екрана. 867 00:40:20,580 --> 00:40:23,470 Но ти не ме видя приложат ФОРМАТ, нали. 868 00:40:23,470 --> 00:40:26,360 Някой преди година, изпълнявани ФОРМАТ. 869 00:40:26,360 --> 00:40:30,420 По какъв файл бихте заложите той или тя постави изпълнението 870 00:40:30,420 --> 00:40:34,270 за ФОРМАТ, кодът за ФОРМАТ? 871 00:40:34,270 --> 00:40:36,860 >> В един файл, наречен стандартна I / O.h. 872 00:40:36,860 --> 00:40:39,930 В действителност, това е най-вероятно в два файла, стандартна I / O.h, 873 00:40:39,930 --> 00:40:42,650 който стои за заглавна част файл, и стандартна I / O.c, 874 00:40:42,650 --> 00:40:44,060 което е съкращение от C код. 875 00:40:44,060 --> 00:40:48,220 Така че той или тя преди няколко години се пльосна кода, който те пише в този файл 876 00:40:48,220 --> 00:40:51,240 така че хора като нас години по-късно може да го включват, 877 00:40:51,240 --> 00:40:53,040 така да се каже, в нашите собствени програми. 878 00:40:53,040 --> 00:40:56,320 >> И наистина, това е, което знака паунд последвано от думата включва прави. 879 00:40:56,320 --> 00:41:00,250 Тя изглежда на локалния твърд диск, намира файла наречен стандартен I / O.h, 880 00:41:00,250 --> 00:41:03,840 и след това ефективно копия и при него се поставят вътре в собствения си файл. 881 00:41:03,840 --> 00:41:07,210 Така че сега програмата ми знае как да се отпечатва на екрана. 882 00:41:07,210 --> 00:41:11,120 >> Така че от тази логика, където се определя низ? 883 00:41:11,120 --> 00:41:12,260 >> АУДИТОРИЯ: 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 И наистина, това е, което ние, на основния персонал, са направили. 886 00:41:15,540 --> 00:41:19,590 Ние изобретихме няколко типове данни, така да се каже, като низ, 887 00:41:19,590 --> 00:41:22,370 в допълнение към тези, които сте получите безплатно, като вътр. 888 00:41:22,370 --> 00:41:26,010 И ние ще видим другите като Чар за характера и още няколко. 889 00:41:26,010 --> 00:41:30,670 Вътре на CS50.h очевидно е най-малко някои споменаване на низ. 890 00:41:30,670 --> 00:41:34,980 >> Така че сега нека да вървим напред и разясняване марка здравей-1. 891 00:41:34,980 --> 00:41:37,100 Ще увеличите отново и стискайте палци ми. 892 00:41:37,100 --> 00:41:41,370 Сега, като след като направи един промени оправих повечето неща. 893 00:41:41,370 --> 00:41:42,100 Но дявол да го вземе. 894 00:41:42,100 --> 00:41:44,290 Още процента от аргументи данни. 895 00:41:44,290 --> 00:41:45,980 Какво съм направил погрешно този път? 896 00:41:45,980 --> 00:41:47,420 >> Така че тя все още е доста загадъчен. 897 00:41:47,420 --> 00:41:51,560 Но тази грешка е на ред 7 и характер 21. 898 00:41:51,560 --> 00:41:53,880 Така че нека да отидем погледнете тук. 899 00:41:53,880 --> 00:41:55,350 Това е малко коварен. 900 00:41:55,350 --> 00:41:59,167 Но ако мислите, че за това, което основните идеи тук са, 901 00:41:59,167 --> 00:42:00,500 може би можем да дразни този апарт. 902 00:42:00,500 --> 00:42:02,300 >> Така ФОРМАТ е името на функцията. 903 00:42:02,300 --> 00:42:04,960 Скоби, до този момент, е точно като това, което ние поставяме около 904 00:42:04,960 --> 00:42:07,005 нещата, ние сме минаваща като ресурс за функция. 905 00:42:07,005 --> 00:42:08,921 Добре, само един произволна човешка конвенция. 906 00:42:08,921 --> 00:42:09,919 Използвайте скоби. 907 00:42:09,919 --> 00:42:12,460 Вътре в тези скоби ние сме били пускането двойни кавички, 908 00:42:12,460 --> 00:42:14,810 а след това и низ като "Hello World". 909 00:42:14,810 --> 00:42:18,160 >> Но в този по-ранен пример много накратко направих погледнем с Scratch. 910 00:42:18,160 --> 00:42:22,590 И ние имахме процента D, какво друго е вътре в тези скоби 911 00:42:22,590 --> 00:42:23,730 че извиках вербално? 912 00:42:23,730 --> 00:42:24,230 Да. 913 00:42:24,230 --> 00:42:28,166 >> АУДИТОРИЯ: Така че това е това, което приемате [Недоловим] от вътре [недоловим] 914 00:42:28,166 --> 00:42:30,200 какво е това [недоловим]? 915 00:42:30,200 --> 00:42:31,200 DAVID J. Malan: Точно така. 916 00:42:31,200 --> 00:42:32,700 Така че имахме процента г. 917 00:42:32,700 --> 00:42:36,620 Но тогава имахме близо цитат, запетая, брояч. 918 00:42:36,620 --> 00:42:37,120 Точно така. 919 00:42:37,120 --> 00:42:40,680 Ние определено това, което искаме да се направи, тъй като контейнера. 920 00:42:40,680 --> 00:42:44,621 Така че това, което аз ще направя тук, е запетая, какво искаш от мен да се сложи? 921 00:42:44,621 --> 00:42:45,120 АУДИТОРИЯ: S. 922 00:42:45,120 --> 00:42:46,828 DAVID J. Malan: S, защото и в този случай 923 00:42:46,828 --> 00:42:48,700 е името на контейнера за съхранение. 924 00:42:48,700 --> 00:42:50,180 Това е името на тази стъклена купа. 925 00:42:50,180 --> 00:42:53,610 Като има предвид, преди да е брояч в тази прост пример Scratch разгледахме. 926 00:42:53,610 --> 00:42:56,630 Така че сега, след като направи две промени, нека да увеличите 927 00:42:56,630 --> 00:42:59,800 и да се опитаме още веднъж да събиране на тази програма. 928 00:42:59,800 --> 00:43:01,596 >> Сега виждам, че загадъчен линия. 929 00:43:01,596 --> 00:43:03,470 Но това е всъщност име на съставителя. 930 00:43:03,470 --> 00:43:04,886 Звъня е името на съставителя. 931 00:43:04,886 --> 00:43:07,100 Уверете се само, че ме спаси главоболието от всякога 932 00:43:07,100 --> 00:43:09,830 пише, че дълго луд команда навън. 933 00:43:09,830 --> 00:43:14,900 Така че сега, ако аз точка наклонена черта здравей-1, Аз трябва да видите "Здравей, Дейвид." 934 00:43:14,900 --> 00:43:16,450 >> Pretty underwhelming, все пак, нали? 935 00:43:16,450 --> 00:43:18,158 Бихме могли да са направили това е много по-просто 936 00:43:18,158 --> 00:43:20,940 без да говорим за променливи и CS50.h и всичко това. 937 00:43:20,940 --> 00:43:23,080 Така че нека да го правят малко по-интересна. 938 00:43:23,080 --> 00:43:31,010 >> В допълнение към CS50.h, като неща като низ 939 00:43:31,010 --> 00:43:34,550 обявено, библиотеката CS50 също има няколко функции. 940 00:43:34,550 --> 00:43:38,520 Преди Така че просто като години, някой е написал ФОРМАТ и го сложи в стандартен I / O.h 941 00:43:38,520 --> 00:43:39,530 и друг файл. 942 00:43:39,530 --> 00:43:44,010 >> Ние, персоналът CS50, пише функция наречен GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, и ние поставяме тези във файл 944 00:43:47,610 --> 00:43:49,890 наречен CS50.h и CS50.c. 945 00:43:49,890 --> 00:43:51,880 И ние ги сложи вътре на CS50 уреда. 946 00:43:51,880 --> 00:43:53,880 И хората също могат да ги изтеглите онлайн, ако те 947 00:43:53,880 --> 00:43:55,880 Искам да ги постави на тяхното собствените си компютри, както добре. 948 00:43:55,880 --> 00:44:00,880 Което е да се каже, че ние сме създали функции, които се въвеждат от потребителя. 949 00:44:00,880 --> 00:44:02,930 Аз не знам това, което всички на тези данни типове са. 950 00:44:02,930 --> 00:44:06,490 GetInt е нещо просто, като получите число по някакъв начин от потребителя. 951 00:44:06,490 --> 00:44:09,980 И GetString е вероятно като GET дума или изречение от потребителя. 952 00:44:09,980 --> 00:44:11,770 >> Така че нека да се съсредоточим върху това. 953 00:44:11,770 --> 00:44:14,710 И аз отивам да се върнете в уред и аз отивам да вървим напред 954 00:44:14,710 --> 00:44:20,790 и запишете файла като, нека наречем тя здравей-2.в като втори моята версия. 955 00:44:20,790 --> 00:44:23,030 И нека направим няколко промени. 956 00:44:23,030 --> 00:44:25,800 >> Този път вместо трудно кодиране David, който 957 00:44:25,800 --> 00:44:29,120 прави изключително последователен но underwhelming програма 958 00:44:29,120 --> 00:44:32,640 какво ще стане ако вместо да направи GetString? 959 00:44:32,640 --> 00:44:35,660 Сега забележите GetString има отворена скоба, 960 00:44:35,660 --> 00:44:38,500 затворена скоба, защото тя не се нуждае от въвеждане. 961 00:44:38,500 --> 00:44:40,850 Това е просто ще отида да низ от потребителя. 962 00:44:40,850 --> 00:44:42,460 >> А сега няколко думи за друг синтаксис. 963 00:44:42,460 --> 00:44:45,439 Точка и запетая просто сложи край на ред код. 964 00:44:45,439 --> 00:44:46,730 Вие не се нуждаят от тях навсякъде. 965 00:44:46,730 --> 00:44:48,896 Но това просто означава, че аз съм направено с тази линия на код. 966 00:44:48,896 --> 00:44:51,080 Позволете ми да се премести на друг изявление или функция. 967 00:44:51,080 --> 00:44:53,010 String декларира променлива. 968 00:44:53,010 --> 00:44:55,920 String е като да кажеш, дайте ми една купа, моля. 969 00:44:55,920 --> 00:44:57,940 И нека ме постави низ в него. 970 00:44:57,940 --> 00:44:59,430 >> И сега знака за равенство. 971 00:44:59,430 --> 00:45:03,510 Какъв е знака за равенство по същество еквивалентен на? 972 00:45:03,510 --> 00:45:04,500 >> АУДИТОРИЯ: Присвояване. 973 00:45:04,500 --> 00:45:06,190 >> DAVID J. Malan: Да, присвояване на стойност. 974 00:45:06,190 --> 00:45:09,872 Така че, ако аз, например, повикване тази функция GetString, 975 00:45:09,872 --> 00:45:12,830 и ще видим в един момент, че е ще напомни на потребителя за низ. 976 00:45:12,830 --> 00:45:17,810 Това е като отдаване под наем след това ми пишете D-а-V-и-г върху парче хартия. 977 00:45:17,810 --> 00:45:21,060 И когато казвам низ S е равна GetString, 978 00:45:21,060 --> 00:45:24,140 равен наистина не означава, равен в C програмиране. 979 00:45:24,140 --> 00:45:27,880 Това означава зададете от правото страна на лявата страна. 980 00:45:27,880 --> 00:45:29,510 >> Така че аз съм намерила низ. 981 00:45:29,510 --> 00:45:32,785 И знака за равенство означава да я тури в контейнер за съхранение нарича S. 982 00:45:32,785 --> 00:45:36,730 И тогава премине това разстояние да ФОРМАТ действително да направи нещо. 983 00:45:36,730 --> 00:45:39,790 >> Така крайният резултат след това се случва да изглежда малко по-различно. 984 00:45:39,790 --> 00:45:40,840 Нека правим здравей-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Или биха могли да работят. 987 00:45:45,260 --> 00:45:46,450 Ти си след себе си. 988 00:45:46,450 --> 00:45:47,940 Направете здравей-2 работи. 989 00:45:47,940 --> 00:45:52,640 Dot наклонена черта здравей-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Аз като че ли безкрайна контур или нещо такова. 991 00:45:54,620 --> 00:45:55,453 Нищо не се случва. 992 00:45:55,453 --> 00:45:56,134 Защо? 993 00:45:56,134 --> 00:45:57,805 >> АУДИТОРИЯ: Тя е като един безкраен цикъл. 994 00:45:57,805 --> 00:45:59,430 DAVID J. Malan: Това е един безкраен цикъл. 995 00:45:59,430 --> 00:46:02,710 Това е един вид ме чака да всъщност я предостави с някои вход. 996 00:46:02,710 --> 00:46:05,800 Така че нека да вървим напред и да въведете Давид, и натиснете Enter. 997 00:46:05,800 --> 00:46:07,230 И сега тя казва "Здравей, Дейвид." 998 00:46:07,230 --> 00:46:09,040 Ако аз го стартирате отново. 999 00:46:09,040 --> 00:46:11,530 Да напишете Роб, "Здравей, Роб." 1000 00:46:11,530 --> 00:46:13,900 >> Сега това е най-лошото потребителски интерфейс всякога. 1001 00:46:13,900 --> 00:46:16,110 Потребителят е очевидно Трябваше да знам какво да правя. 1002 00:46:16,110 --> 00:46:17,120 Но няма значение. 1003 00:46:17,120 --> 00:46:19,570 Използвайки същите тези сграда блокове, точно като в Scratch, 1004 00:46:19,570 --> 00:46:24,980 можем да решим този проблем и да кажа, нещо като вашето име, моля, на дебелото черво, 1005 00:46:24,980 --> 00:46:27,820 пространство, затворени цитат, в близост скоби, точка и запетая. 1006 00:46:27,820 --> 00:46:30,680 Така че много отново глупост с синтаксис. 1007 00:46:30,680 --> 00:46:34,040 >> Но забележете, че току-що сте добавили пъзел парче над тази една 1008 00:46:34,040 --> 00:46:35,280 и над това. 1009 00:46:35,280 --> 00:46:38,870 Така че сега, ако аз проведена отново този, здравей-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Чакайте малко. 1011 00:46:41,180 --> 00:46:41,830 Какво не е наред? 1012 00:46:41,830 --> 00:46:43,570 Това не е да се държи по различен начин. 1013 00:46:43,570 --> 00:46:44,200 Да. 1014 00:46:44,200 --> 00:46:46,010 >> АУДИТОРИЯ: Вие не избяга направи отново. 1015 00:46:46,010 --> 00:46:47,968 >> DAVID J. Malan: Аз не направих тичам направи отново, нали. 1016 00:46:47,968 --> 00:46:49,430 Така че аз съм променил моя код. 1017 00:46:49,430 --> 00:46:50,638 Но отново, там е това поток. 1018 00:46:50,638 --> 00:46:54,530 Изходен код чрез компилатора дава Вие сте нов обектен код или 0s и 1s. 1019 00:46:54,530 --> 00:47:00,209 Така че аз трябва действително да разясняване марка здравей-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 Добре, нещо изглежда да се е случило. 1021 00:47:01,750 --> 00:47:04,220 Dot наклонена черта здравей-2. 1022 00:47:04,220 --> 00:47:05,390 Вашето име моля. 1023 00:47:05,390 --> 00:47:09,990 И за да е ясно, сега, защо е курсора на същата линия? 1024 00:47:09,990 --> 00:47:10,490 Точно така. 1025 00:47:10,490 --> 00:47:13,020 Аз не съм слагал на наклонената черта п тук в моя код. 1026 00:47:13,020 --> 00:47:16,110 Така че сега мога да напиша нещо като Дейвън, Enter. 1027 00:47:16,110 --> 00:47:18,710 Мога да го стартирате отново и напишете нещо като Габе, Enter, 1028 00:47:18,710 --> 00:47:22,250 и получаваме друга програма отново и отново, и отново. 1029 00:47:22,250 --> 00:47:28,940 >> Сега в крайна сметка ние ще трябва да използвате няколко различни възможности. 1030 00:47:28,940 --> 00:47:32,860 Ние трябва да се въведе в крайна сметка някои условия, за да правят неща, условно. 1031 00:47:32,860 --> 00:47:35,550 Може би контури, така че ние можем да направим отново и отново нещата. 1032 00:47:35,550 --> 00:47:38,220 >> Може би щеше да е хубаво, ако ние би могла да изпълни собствените си функции, 1033 00:47:38,220 --> 00:47:41,355 като бихме могли да изпълнят нашата собствена ФОРМАТ или нашата собствена версия на GetString 1034 00:47:41,355 --> 00:47:45,870 и GetFlow, защото в крайна сметка дори използването на тази онлайн среда команда 1035 00:47:45,870 --> 00:47:49,780 можем да направим, дори и най- визуално интересен на нещата. 1036 00:47:49,780 --> 00:47:51,950 >> Всъщност в заключение позволете ми да направя това. 1037 00:47:51,950 --> 00:47:54,020 Отивам да вървим напред и затворете тези прозорци 1038 00:47:54,020 --> 00:47:57,400 и отворете тази икона тук, което е просто по-голяма 1039 00:47:57,400 --> 00:48:00,020 версия на този внедрен терминален прозорец. 1040 00:48:00,020 --> 00:48:02,329 Така Gedit има не само мястото за моя код, 1041 00:48:02,329 --> 00:48:05,620 но също така и вграден терминален прозорец, за черен и бял прозорец, където мога да тичам 1042 00:48:05,620 --> 00:48:06,230 команди. 1043 00:48:06,230 --> 00:48:08,600 >> Аз просто се случи, за да отворите по-голяма версия на този. 1044 00:48:08,600 --> 00:48:11,170 И сега аз ще отида в папката, която вече съм 1045 00:48:11,170 --> 00:48:13,150 сложи предварително на интернет страницата на курса. 1046 00:48:13,150 --> 00:48:16,720 И аз отивам да вървим напред и отворите файл, наречен thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 който е написан от някой друг. 1048 00:48:18,710 --> 00:48:21,220 >> И ако се вгледаме в това, това не е вид на код 1049 00:48:21,220 --> 00:48:24,370 ние ще се пише, тъй като целта на този кодекс 1050 00:48:24,370 --> 00:48:28,450 беше да напиша най-красивият търси код, който той или тя би могла, 1051 00:48:28,450 --> 00:48:31,290 независимо от това дали или не друго човешко същество може някога 1052 00:48:31,290 --> 00:48:33,660 разбирам този кодекс. 1053 00:48:33,660 --> 00:48:37,050 >> Всъщност, всяка година там е това, което е Нарича се завоалира C конкурс, който 1054 00:48:37,050 --> 00:48:39,570 е за истински маниаци, които пишат код, който никой друг не може да чете, 1055 00:48:39,570 --> 00:48:42,050 но който върши нещо или наистина прости или наистина невероятно. 1056 00:48:42,050 --> 00:48:43,890 И ние решихме, че ние бихме сключва с този поглед 1057 00:48:43,890 --> 00:48:48,300 в нещо, което е доста невероятно може би сте виждали някога преди. 1058 00:48:48,300 --> 00:48:52,650 Но ние ще сложи край на тази бележка, точкова черта, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 Това тогава е това, което очаква. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Това е за CS50. 1062 00:48:58,500 --> 00:48:59,935 Ние ще се видим в сряда. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [За възпроизвеждане на музика] 1065 00:49:10,016 --> 00:53:31,883