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