1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] Дейвид Малан: Това е CS50, и това е началото на седмица 1. 2 00:00:12,200 --> 00:00:15,520 Това, което ние решихме да направим днес, е да погледнете назад към 3 00:00:15,520 --> 00:00:18,290 нещо, което много от вас вероятно мина покрай за някои 4 00:00:18,290 --> 00:00:20,570 време и сега може да изглежда малко по-запознати. 5 00:00:20,570 --> 00:00:23,720 Това нещо тук, това разбира се е в 6 00:00:23,720 --> 00:00:24,155 АУДИТОРИЯ: науката. 7 00:00:24,155 --> 00:00:26,030 Дейвид Малан: Наука център. 8 00:00:26,030 --> 00:00:28,940 Така че това всъщност е един от най-ранните компютри 9 00:00:28,940 --> 00:00:30,220 назад От 1940-те. 10 00:00:30,220 --> 00:00:33,790 Той беше един от първите електромеханични компютри 11 00:00:33,790 --> 00:00:35,730 това е състояние на особено дълго, 12 00:00:35,730 --> 00:00:38,450 самоподдържащи изчисления, и това, което ние всъщност виждаме в 13 00:00:38,450 --> 00:00:41,580 научен център е само една малка част от това нещо. 14 00:00:41,580 --> 00:00:44,170 Това, което ние решихме да правим тогава, е да погледнете назад към видео 15 00:00:44,170 --> 00:00:46,670 , което е станало преди известно време, въвеждането на тази 16 00:00:46,670 --> 00:00:47,520 нещо на света. 17 00:00:47,520 --> 00:00:50,200 И ще видите, от музика и глас, че наистина тези 18 00:00:50,200 --> 00:00:52,070 бяха много щастливи времена. 19 00:00:54,885 --> 00:00:59,700 >> [VIDEO PLAYBACK] 20 00:00:59,700 --> 00:01:02,490 Триумф на математически и механични умения е това 21 00:01:02,490 --> 00:01:06,340 страхотен нов автоматичен калкулатор в Харвардския университет. 22 00:01:06,340 --> 00:01:08,620 Сложни задачи в математиката, чрез 23 00:01:08,620 --> 00:01:12,420 машина в кодирана форма на лента, точно решен в 24 00:01:12,420 --> 00:01:15,200 незначителна част от времето, необходимо за консумация от човека 25 00:01:15,200 --> 00:01:16,450 изчисление. 26 00:01:27,050 --> 00:01:30,600 Проектиран да ускори всички форми на математически и научни 27 00:01:30,600 --> 00:01:34,610 изследвания, гигантски механичен мозък ще работи за Организацията на обединените 28 00:01:34,610 --> 00:01:36,570 Щати флот до края на войната. 29 00:01:50,280 --> 00:01:52,980 >> Дейвид Малан: Така че това, което може би не знаете е, че тя е в 30 00:01:52,980 --> 00:01:56,310 същото това устройство, че план всички ние сега се почти 31 00:01:56,310 --> 00:01:59,300 за даденост, че на бъг е измислена. 32 00:01:59,300 --> 00:02:01,140 Така че един от инженерите, работещи в този компютър 33 00:02:01,140 --> 00:02:05,280 буквално малък молец в машината, която е довела 34 00:02:05,280 --> 00:02:07,580 в някои неправилни изчисления. 35 00:02:07,580 --> 00:02:10,410 И тъй като историята разказва, че молец е записано в този дневник 36 00:02:10,410 --> 00:02:14,180 списание тук, от септември 9, през 1940 г. - нещо, което, 37 00:02:14,180 --> 00:02:16,550 и по този начин е роден за света на термина "бъг". 38 00:02:16,550 --> 00:02:19,880 Така че отсега нататък ние считаме грешки да бъдат всякакъв вид грешки в 39 00:02:19,880 --> 00:02:23,290 програми, независимо дали човека или, в този случай, насекоми. 40 00:02:23,290 --> 00:02:25,030 >> Така няколко съобщения, тъй като ние продължи. 41 00:02:25,030 --> 00:02:29,160 Така CS50 има традиция за предлагане на обяд на видове 42 00:02:29,160 --> 00:02:31,600 повечето петък по време на семестъра, когато вземем 30 до 43 00:02:31,600 --> 00:02:34,650 40 студенти за огън и лед на площада за случайни 44 00:02:34,650 --> 00:02:36,390 задявка, говорим за компютърни науки, 45 00:02:36,390 --> 00:02:37,420 говорим за бъдещето. 46 00:02:37,420 --> 00:02:40,000 Каним възпитаници и приятели от индустрията за чат 47 00:02:40,000 --> 00:02:40,690 студенти, както добре. 48 00:02:40,690 --> 00:02:44,020 Наистина към края на това, което е доста голяма класа 49 00:02:44,020 --> 00:02:46,740 всички по-интимен, най-малко веднъж, докато за 50 00:02:46,740 --> 00:02:47,710 подгрупи на студентите. 51 00:02:47,710 --> 00:02:50,940 Така че, ако искате да се присъедините към нас този петък, 13:15, отидете на 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch RSVP. 53 00:02:53,340 --> 00:02:55,840 И ние ще направим това recurringly, така че не се притеснявайте, ако не сте 54 00:02:55,840 --> 00:02:57,930 сред първите 30 или така че тази седмица. 55 00:02:57,930 --> 00:02:59,070 >> Така книжниците бележки. 56 00:02:59,070 --> 00:03:01,500 Дума за ресурси, които сега ще започнат да бъдат на разположение 57 00:03:01,500 --> 00:03:03,040 на учениците в клас. 58 00:03:03,040 --> 00:03:05,540 Така че главите си, не е необходимо да бъдат определени по време на лекции 59 00:03:05,540 --> 00:03:08,560 пишейки всичко, което казвам и така нататък, това, което правим 60 00:03:08,560 --> 00:03:10,765 вместо това се предвижда от преподавателския състав 61 00:03:10,765 --> 00:03:11,920 каноничен набор от бележки. 62 00:03:11,920 --> 00:03:14,850 Така че ние имаме един от нашите учебни събратя, Андрю Sellergren 63 00:03:14,850 --> 00:03:17,830 който сяда всяка седмица, преглед на видео, и след това 64 00:03:17,830 --> 00:03:19,730 пише това, което смятаме, че е доста 65 00:03:19,730 --> 00:03:21,840 авторитетен набор от бележки. 66 00:03:21,840 --> 00:03:24,180 Андрю любители, също така, на snarky бележки под линия в 67 00:03:24,180 --> 00:03:24,820 на дъното. 68 00:03:24,820 --> 00:03:27,300 Така че ще се надяваме да се насладите на тези като справочник за 69 00:03:27,300 --> 00:03:30,230 забавно, и също така, викторина време, като възможност да се преразгледа 70 00:03:30,230 --> 00:03:31,830 това, което се случи в отделни лекции. 71 00:03:31,830 --> 00:03:33,580 Така че тези, които са свързани на лекции страница. 72 00:03:33,580 --> 00:03:35,300 >> Проблем набор 0, междувременно, е. 73 00:03:35,300 --> 00:03:37,470 И по отношение на ресурсите, достъпни за Вас - 74 00:03:37,470 --> 00:03:38,020 помагалото. 75 00:03:38,020 --> 00:03:39,730 Мило поведе първото в петък. 76 00:03:39,730 --> 00:03:41,470 Той е бил заснет, пуснати онлайн от събота. 77 00:03:41,470 --> 00:03:44,030 И така осъзнават, ако не сте съвсем сигурни къде да започнете, 78 00:03:44,030 --> 00:03:47,280 за това, или бъдещи р-комплекти, винаги изключвайте първо до 79 00:03:47,280 --> 00:03:49,300 репетиция или видео от него. 80 00:03:49,300 --> 00:03:52,950 Секциониране е в ход в cs50.net/section е мястото, където 81 00:03:52,950 --> 00:03:54,540 трябва да представят вашите предпочитания, ако не сте 82 00:03:54,540 --> 00:03:55,880 вече от днес. 83 00:03:55,880 --> 00:03:58,140 Защото секции ще започнат идната неделя, понеделник, 84 00:03:58,140 --> 00:03:58,760 и вторник. 85 00:03:58,760 --> 00:04:02,470 Ние правим раздели тези три дни, всяка седмица на 86 00:04:02,470 --> 00:04:03,870 семестър за по-голямата си част. 87 00:04:03,870 --> 00:04:06,600 И ние също въведе отново, различни писти. 88 00:04:06,600 --> 00:04:08,270 Така ще бъдете помолени този разделящ форма, ако 89 00:04:08,270 --> 00:04:10,350 не са го виждали вече, ако сте сред тези, които по-малко 90 00:04:10,350 --> 00:04:12,800 удобно, по-удобно, или някъде по средата. 91 00:04:12,800 --> 00:04:14,960 И ако сте на оградата, обикновено някъде в 92 00:04:14,960 --> 00:04:18,160 между тях е това, което повечето студенти в крайна сметка проверка. 93 00:04:18,160 --> 00:04:19,579 Работно време започват тази вечер. 94 00:04:19,579 --> 00:04:23,020 >> Така че Scratch е доста нисък ключ, въпреки че това е съвсем естествено 95 00:04:23,020 --> 00:04:25,300 да се движат в различни бъгове, или да не е сигурно, тъй като за това как да 96 00:04:25,300 --> 00:04:26,550 прилагане нещо. 97 00:04:26,550 --> 00:04:28,880 Така че осъзнават, че ние ще започнем работно време тази седмица. 98 00:04:28,880 --> 00:04:30,500 Те ще бъдат в Annenberg понеделник, вторник, сряда, 99 00:04:30,500 --> 00:04:34,300 Четвъртък, 20:00-23:00 по време на мозъчна почивка. 100 00:04:34,300 --> 00:04:38,160 Горни classmen могат да влязат, и ако някога имате проблеми с получаване на 101 00:04:38,160 --> 00:04:40,720 на вратата, тъй като те ще бъдат прекарване, просто говоря пътя си 102 00:04:40,720 --> 00:04:42,560 и обясни сте с CS50. 103 00:04:42,560 --> 00:04:45,230 Обикновено 20 и 30 от нас по отношение на персонала ще бъде там, за да помогнем 104 00:04:45,230 --> 00:04:46,190 един на един. 105 00:04:46,190 --> 00:04:48,980 >> При пристигането идеята е това: ще донесе лаптопа си, 106 00:04:48,980 --> 00:04:51,300 ще имате зарядното устройство, ще имат допълнителни захранващи кабели, 107 00:04:51,300 --> 00:04:53,320 особено по южната стена на Annenberg 108 00:04:53,320 --> 00:04:55,080 има много електрически контакти. 109 00:04:55,080 --> 00:04:59,290 И основната входна точка в офиса на час Q & A е да отидете на 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss и за да публикувате 111 00:05:01,690 --> 00:05:02,580 вашия въпрос. 112 00:05:02,580 --> 00:05:05,600 И за да го етикетират с pset 0 или pset 1, независимо от седмица 113 00:05:05,600 --> 00:05:06,810 може да се случи да бъде. 114 00:05:06,810 --> 00:05:09,240 И тогава какво ще направим, е да има таблица за преподаване на другарите 115 00:05:09,240 --> 00:05:12,040 и разбира сътрудници, общо 8 или 10, или така на нас, 116 00:05:12,040 --> 00:05:14,430 става чрез водене на зоркото око на борда, и 117 00:05:14,430 --> 00:05:16,810 скубане на разстояние въпроси наистина ли е толкова бързо, колкото можем, 118 00:05:16,810 --> 00:05:19,600 отнасящи свързани с публикации, ако не сте намерили тези 119 00:05:19,600 --> 00:05:22,220 себе си, онлайн препратки, според случая. 120 00:05:22,220 --> 00:05:24,280 И тогава, ако има проблеми, тъй като неизбежно 121 00:05:24,280 --> 00:05:27,190 ще бъде, или просто има повече смисъл да седнат един по един, 122 00:05:27,190 --> 00:05:28,660 работят чрез проблеми с някой. 123 00:05:28,660 --> 00:05:30,810 >> Или просто влезе в работно време наистина 124 00:05:30,810 --> 00:05:31,640 нуждаещи се от този начин на мислене. 125 00:05:31,640 --> 00:05:33,400 Вие не искате да мине през електронния формуляр, 126 00:05:33,400 --> 00:05:34,410 наистина искате да се срещнете с някого. 127 00:05:34,410 --> 00:05:37,240 , Че за нас, както и какво ще се случи е, когато вашият 128 00:05:37,240 --> 00:05:40,620 въпрос е било видяно от член на персонала, и ние 129 00:05:40,620 --> 00:05:43,660 определи Мда, това трябва да бъде изпращан в един от 20 или 130 00:05:43,660 --> 00:05:47,800 30 членове на екипа тук на местно ниво, ще видите горе вляво това 131 00:05:47,800 --> 00:05:51,590 малко Въведете бутона опашката започва мига cs50.net / 132 00:05:51,590 --> 00:05:52,165 обсъдим. 133 00:05:52,165 --> 00:05:55,260 И това ви казвам, че сега са били поканени, така че 134 00:05:55,260 --> 00:05:56,880 да се каже, за да влезете в опашката. 135 00:05:56,880 --> 00:05:59,090 И като щракнете върху този бутон, името ви ще се появи на 136 00:05:59,090 --> 00:06:02,660 IPAD, че за посрещане CS50, един от ръководителите на курса, ще 137 00:06:02,660 --> 00:06:05,250 се проведе в близост до входа на Annenberg, които след това ще 138 00:06:05,250 --> 00:06:08,630 Виж, както е описано тук, студенти, които имат въпроси относно 139 00:06:08,630 --> 00:06:11,630 ляво, членовете на персонала, които се намират в дясно. 140 00:06:11,630 --> 00:06:14,830 И с едно кликване на ляво и дясно, вашия уеб браузър 141 00:06:14,830 --> 00:06:18,610 започне да мига веднага щом като, например, професор McGonnagal 142 00:06:18,610 --> 00:06:21,460 е готов да ви видим в конкретна таблица в Аненберг. 143 00:06:21,460 --> 00:06:23,340 >> Така че сме направили част от тази последна година. 144 00:06:23,340 --> 00:06:25,430 Сме рестартира работно време и 145 00:06:25,430 --> 00:06:26,980 усвоени голяма част от софтуера. 146 00:06:26,980 --> 00:06:29,940 Така че осъзнавам, че това ще бъде топло тази седмица. 147 00:06:29,940 --> 00:06:32,970 Но също така осъзнават, през последните години, както може би сте чували 148 00:06:32,970 --> 00:06:35,710 от приятели, работно време наистина е от 50 до 149 00:06:35,710 --> 00:06:37,040 150 ученици наведнъж. 150 00:06:37,040 --> 00:06:39,300 И това просто не е възможно за нас да се справим, че 151 00:06:39,300 --> 00:06:42,060 ефективно, един по един, през цялата вечер. 152 00:06:42,060 --> 00:06:44,570 И това, което ние сме наистина ще се опитаме да направим тази година е 153 00:06:44,570 --> 00:06:46,590 се възползва от факта, че много въпроси 154 00:06:46,590 --> 00:06:49,050 често задавани и често могат да бъдат по-добре отговори 155 00:06:49,050 --> 00:06:50,030 асинхронно. 156 00:06:50,030 --> 00:06:52,140 Така можете да сортирате обмислят отговор на персонала, 157 00:06:52,140 --> 00:06:54,360 и можем да мислим чрез кода си, без отопляем 158 00:06:54,360 --> 00:06:57,050 налягане на задължително борят 159 00:06:57,050 --> 00:06:58,210 чрез него рамо до рамо. 160 00:06:58,210 --> 00:07:00,980 Така че ние изчислихме, че около една трета или половината от въпросите 161 00:07:00,980 --> 00:07:03,500 ще бъдат изпратени в лице, и ние ще се опитаме да късат като 162 00:07:03,500 --> 00:07:05,530 много като половината или повече по електронен път, 163 00:07:05,530 --> 00:07:06,710 в работно време. 164 00:07:06,710 --> 00:07:08,070 И ние ще продължим да използвате Обсъждане 165 00:07:08,070 --> 00:07:09,990 през цялата седмица, както добре. 166 00:07:09,990 --> 00:07:12,680 >> И накрая, да разбере, че този курс могат да бъдат взети Pass / Fail. 167 00:07:12,680 --> 00:07:16,230 Така че, ако сте на оградата или просто мисля, че наистина сте 168 00:07:16,230 --> 00:07:18,650 не съм сигурен дали това е светът за теб, или това е наистина 169 00:07:18,650 --> 00:07:21,310 съвсем чужди за вас, разберете, че това е чудесен начин 170 00:07:21,310 --> 00:07:24,840 за получаване на някои увереност, с която да се оттегли в 171 00:07:24,840 --> 00:07:26,780 клас, както направих аз, честно казано, преди години. 172 00:07:26,780 --> 00:07:28,630 И тогава има пет седмици, за да сортирате фигура за 173 00:07:28,630 --> 00:07:30,850 себе си, ако искаш да останеш Pass / Fail, превключете на писмо 174 00:07:30,850 --> 00:07:31,800 клас, или нещо подобно. 175 00:07:31,800 --> 00:07:34,050 И обикновено това, което Pass / Fail се, мисля, че за студентите е 176 00:07:34,050 --> 00:07:36,700 , че ако си сложиш, че 10 часа, 20 часа, независимо от това 177 00:07:36,700 --> 00:07:38,830 може да бъде по някои проблеми, а ти си чука главата си 178 00:07:38,830 --> 00:07:39,690 срещу стената, 179 00:07:39,690 --> 00:07:41,750 и наистина просто не може да гони нещо, и вие 180 00:07:41,750 --> 00:07:44,230 има толкова много други неща, които трябва да направите, честно казано, това, което 181 00:07:44,230 --> 00:07:46,070 мисля, Pass / Fail е, тя е на ръба на 182 00:07:46,070 --> 00:07:47,250 ситуации като тази. 183 00:07:47,250 --> 00:07:49,350 Когато сте взели нещо, което 90% от пътя. 184 00:07:49,350 --> 00:07:50,830 Знаеш ли, това не е съвсем перфектно. 185 00:07:50,830 --> 00:07:52,950 Но имаш много от нея, все пак. 186 00:07:52,950 --> 00:07:55,440 Така че, помисли Pass / Fail като ви дава, че 187 00:07:55,440 --> 00:07:57,590 мисловен модел, може би. 188 00:07:57,590 --> 00:08:00,680 >> Добре, така че миналата седмица се гмурна под нулата, и ние 189 00:08:00,680 --> 00:08:03,610 говорихме за програмиране на сравнително по-висока графична ниво. 190 00:08:03,610 --> 00:08:05,340 И днес ние правим преход към език 191 00:08:05,340 --> 00:08:08,300 С, по-ниско ниво език за програмиране на върха на 192 00:08:08,300 --> 00:08:11,260 които сега са построени много съвременни езици, включително и някои 193 00:08:11,260 --> 00:08:13,010 на онези, които ще се използват към края план. 194 00:08:13,010 --> 00:08:15,530 И синтактично, как изглеждат 195 00:08:15,530 --> 00:08:17,330 е доста сходни. 196 00:08:17,330 --> 00:08:19,080 Така че нека започнем да направят този преход тук. 197 00:08:19,080 --> 00:08:21,730 Така че това е програма миналата седмица, че е най-простият 198 00:08:21,730 --> 00:08:22,910 Hello World програми. 199 00:08:22,910 --> 00:08:25,560 Тя просто отпечатва на екрана здравей свят, с 200 00:08:25,560 --> 00:08:27,650 малко балонче излиза на котката. 201 00:08:27,650 --> 00:08:30,590 Е, ако сега ние започваме да преведат на някой друг 202 00:08:30,590 --> 00:08:33,419 език, да разбере, че идеите днес и в сряда 203 00:08:33,419 --> 00:08:36,450 са идентични, но синтаксисът започва да се променя. 204 00:08:36,450 --> 00:08:39,370 Така че, като има предвид, че миналата седмица имахме, когато зеленото знаме кликнали, да речем 205 00:08:39,370 --> 00:08:40,340 здравей свят. 206 00:08:40,340 --> 00:08:43,870 Днес ние ще трябва ПНА, основно, невалидни, ФОРМАТ 207 00:08:43,870 --> 00:08:46,350 връщане, с някой друг синтаксис там, както добре. 208 00:08:46,350 --> 00:08:49,200 Фигурни скоби, скоби, както и цитати, и какво ли не. 209 00:08:49,200 --> 00:08:54,520 Но осъзнават, че в основата на идеята тук е печат, 210 00:08:54,520 --> 00:08:58,470 и в крайна сметка факта, че основната сега ще да бъде 211 00:08:58,470 --> 00:09:00,770 синоним на стартиране на програма. 212 00:09:00,770 --> 00:09:04,250 Основно ще бъде там, където зеленото знаме започва нещата. 213 00:09:04,250 --> 00:09:06,390 >> Така че нека сега дразни освен някои от основните градивни елементи тук 214 00:09:06,390 --> 00:09:08,650 Преди да се потопите в някои конкретни примери. 215 00:09:08,650 --> 00:09:11,620 Така че ние нарича това изявление миналата седмица, което е просто 216 00:09:11,620 --> 00:09:12,470 инструкция. 217 00:09:12,470 --> 00:09:15,660 Направете това - в този случай, да кажем здравей свят. 218 00:09:15,660 --> 00:09:18,400 Ами в C, ако се вгледаме в тази линия, това е как сме 219 00:09:18,400 --> 00:09:20,920 ще започне да изрази, че специално парче пъзел: 220 00:09:20,920 --> 00:09:24,780 ФОРМАТ ("Hello World");. 221 00:09:24,780 --> 00:09:27,330 И сега ние ще дразни това, освен все повече и повече с течение на времето, 222 00:09:27,330 --> 00:09:29,330 но осъзнават, че има модел тук. 223 00:09:29,330 --> 00:09:31,870 Така че, ние имаме това нещо, наречено ФОРМАТ, което е 224 00:09:31,870 --> 00:09:34,310 по същество аналогично на думата казвам. 225 00:09:34,310 --> 00:09:35,800 Това е, което ще направи. 226 00:09:35,800 --> 00:09:37,870 ФОРМАТ и е тук означава "форматиран". 227 00:09:37,870 --> 00:09:39,270 Така че това просто означава, че можете да вмъкнете 228 00:09:39,270 --> 00:09:41,600 различни естетически детайли. 229 00:09:41,600 --> 00:09:43,770 Цитат кавички е началото на това, което ще 230 00:09:43,770 --> 00:09:45,340 да започне да се обадите на низ. 231 00:09:45,340 --> 00:09:47,110 Дума, фраза, изречение. 232 00:09:47,110 --> 00:09:50,220 Низ в езика за програмиране е поредица от нула 233 00:09:50,220 --> 00:09:51,330 или повече знака. 234 00:09:51,330 --> 00:09:54,390 Така з-д-л-л-о, запетая и т.н., 235 00:09:54,390 --> 00:09:56,290 цитат кавички низ. 236 00:09:56,290 --> 00:09:58,710 И сега обратно наклонена черта N, малко синтактично странно, но ние 237 00:09:58,710 --> 00:10:01,780 вече е определен, че миналата седмица в смисъл, какво? 238 00:10:01,780 --> 00:10:02,630 Това е просто нов ред. 239 00:10:02,630 --> 00:10:05,000 Това е просто начин на предаване към компютъра иска 240 00:10:05,000 --> 00:10:07,700 еквивалент на удари Въведете там, но не 241 00:10:07,700 --> 00:10:10,460 искате да удари Въведете и следователно обърквам всички 242 00:10:10,460 --> 00:10:12,130 форматиране на действителното си програма. 243 00:10:12,130 --> 00:10:15,500 Сега скоби приложат този низ, отворена скоба и 244 00:10:15,500 --> 00:10:18,130 близо скоба и вътре в това е нашата низ. 245 00:10:18,130 --> 00:10:22,600 Защото това е така, защото в C, и други програми 246 00:10:22,600 --> 00:10:27,510 езици, неща като ФОРМАТ вземат аргументи, или да се 247 00:10:27,510 --> 00:10:28,420 параметри. 248 00:10:28,420 --> 00:10:31,490 >> Така че да започнем да мислим сега на този лилаво блок казвам като 249 00:10:31,490 --> 00:10:34,890 функция, като метод, като процедура. 250 00:10:34,890 --> 00:10:36,890 Вие наистина може да го наречем, каквото си искате за сега, но 251 00:10:36,890 --> 00:10:39,260 Това е нещо на миниатюрна програма, която само един 252 00:10:39,260 --> 00:10:41,480 нещо, в един ред, не по-малко. 253 00:10:41,480 --> 00:10:43,620 Така ФОРМАТ е това, което ние ще започнем да наричаш 254 00:10:43,620 --> 00:10:46,680 функция, както и функциите направи нещо - в този случай 255 00:10:46,680 --> 00:10:49,320 отпечатва форматиран низ на екрана - 256 00:10:49,320 --> 00:10:53,220 но функционира също така да вземат аргументи и параметри. 257 00:10:53,220 --> 00:10:55,880 И с аргументи и параметри, благодаря ти, имаме предвид 258 00:10:55,880 --> 00:11:01,220 че тяхното поведение могат да бъдат повлияни от това, което давате 259 00:11:01,220 --> 00:11:03,420 вътре в скобите. 260 00:11:03,420 --> 00:11:06,460 Така че в този случай, ФОРМАТ нужди да се каже какво да отпечатате, и ние 261 00:11:06,460 --> 00:11:09,520 просто минават, в кавички, низ, че ние 262 00:11:09,520 --> 00:11:11,270 всъщност искате да отпечатате. 263 00:11:11,270 --> 00:11:14,060 И точка и запетая на края на тази линия е просто 264 00:11:14,060 --> 00:11:18,020 исторически неудобство, с което в края на повечето линии на кода, 265 00:11:18,020 --> 00:11:21,170 сложите точка и запетая, за да се направи супер ясно към компютъра 266 00:11:21,170 --> 00:11:23,020 , че тази линия на код свършва тук. 267 00:11:23,020 --> 00:11:25,600 Сега това е добре, защото както ще видим и програми за да получите повече 268 00:11:25,600 --> 00:11:29,030 комплекс, точка и запетая ще направи супер ясно за нас, хората, 269 00:11:29,030 --> 00:11:32,280 , а също и на компютъра, където линии на началото и края на код. 270 00:11:32,280 --> 00:11:34,360 Осъзнайте, че някои езици не е нужно някои 271 00:11:34,360 --> 00:11:35,045 на същите тези подробности. 272 00:11:35,045 --> 00:11:37,870 И в действителност, JavaScript, не винаги се нуждаем от нещо 273 00:11:37,870 --> 00:11:38,670 като точка и запетая. 274 00:11:38,670 --> 00:11:40,210 Но повече за това, за да дойде. 275 00:11:40,210 --> 00:11:41,170 >> Така цикли. 276 00:11:41,170 --> 00:11:43,520 Имахме нещо като това, много интуитивно, очевидно, направете 277 00:11:43,520 --> 00:11:44,860 нещо отново и отново и отново. 278 00:11:44,860 --> 00:11:47,720 Както пускането на чорапи, или да каже здравей, в този случай. 279 00:11:47,720 --> 00:11:51,090 Е, започва днес в C, бихме могли да изрази тази Scratch 280 00:11:51,090 --> 00:11:54,970 блок като докато (вярно) ФОРМАТ ("Hello World"). 281 00:11:54,970 --> 00:11:57,630 Така че забележите, че започвате да се гради върху буквално пъзел 282 00:11:57,630 --> 00:11:58,480 парче от преди. 283 00:11:58,480 --> 00:12:01,310 Имаме същия лилаво блок, но това е в рамките на това 284 00:12:01,310 --> 00:12:04,880 скоби Завинаги блок, и най-добрият начин да превежда, че 285 00:12:04,880 --> 00:12:06,480 С е както следва. 286 00:12:06,480 --> 00:12:08,130 Има не Завинаги ключови думи. 287 00:12:08,130 --> 00:12:10,940 Вие не можете просто да въведете е-о-р-д-V-д-р на C. 288 00:12:10,940 --> 00:12:13,440 Така че най-близкият аналог е време. 289 00:12:13,440 --> 00:12:17,050 >> Сега, докато (вярно) изглежда малко глупаво, защото на стойност 290 00:12:17,050 --> 00:12:18,700 вярно някога се промени? 291 00:12:18,700 --> 00:12:19,810 Предполага се, че не. 292 00:12:19,810 --> 00:12:22,770 Това е като да кажеш, докато един, докато, докато вярно. 293 00:12:22,770 --> 00:12:25,430 Всичко е едно и също нещо, вярно е, винаги е така. 294 00:12:25,430 --> 00:12:29,860 Така че този цикъл действително се убедят каква линия? 295 00:12:29,860 --> 00:12:31,210 Само един безкраен цикъл, нали. 296 00:12:31,210 --> 00:12:32,930 Контур Forever или както ние го нарече миналата седмица, 297 00:12:32,930 --> 00:12:33,870 просто един безкраен цикъл. 298 00:12:33,870 --> 00:12:35,250 Така че понякога това е лошо. 299 00:12:35,250 --> 00:12:37,060 Понякога това е бъг, понякога това е причината да получавате 300 00:12:37,060 --> 00:12:39,340 въртящата се топка на плажа или пясъчен часовник или нещо подобно. 301 00:12:39,340 --> 00:12:41,260 Но в този случай, ние нарочно, за каквото 302 00:12:41,260 --> 00:12:43,040 причина, искаше да отпечатате едно и също нещо отново 303 00:12:43,040 --> 00:12:43,970 и отново, и отново. 304 00:12:43,970 --> 00:12:45,900 Или в случай на подобно на часовник, което искате да направите 305 00:12:45,900 --> 00:12:47,470 нещо отново и отново и отново. 306 00:12:47,470 --> 00:12:49,070 Толкова безкрайни цикли може да има смисъл. 307 00:12:49,070 --> 00:12:53,560 И това е в C можем да превежда Завинаги до код. 308 00:12:53,560 --> 00:12:55,570 >> Така че сега това е малко по-специфичен. 309 00:12:55,570 --> 00:12:58,880 Бяхме се повтаря 10 пъти следното изявление. 310 00:12:58,880 --> 00:13:02,490 Така че, докато (вярно) не съвсем работят там, защото е вярно 311 00:13:02,490 --> 00:13:03,590 винаги е вярно. 312 00:13:03,590 --> 00:13:07,060 Така че, ако вместо това погледнете версията на C, сега синтаксиса получава 313 00:13:07,060 --> 00:13:08,180 малко по-загадъчно. 314 00:13:08,180 --> 00:13:11,380 Но за да бъда честен, след като започнете да виждате това, всичко се 315 00:13:11,380 --> 00:13:12,600 доста запознат бързо. 316 00:13:12,600 --> 00:13:14,370 Така че това е, което се нарича за контур. 317 00:13:14,370 --> 00:13:17,210 А за цикъла ще да каже на компютъра, за да се направи нещо 318 00:13:17,210 --> 00:13:20,710 отново и отново, и отново, за толкова дълго, колкото 319 00:13:20,710 --> 00:13:21,850 тези неща са верни. 320 00:13:21,850 --> 00:13:23,370 Сега какво ще кажеш с това? 321 00:13:23,370 --> 00:13:25,470 Е, има три части на линия, и ние ще 322 00:13:25,470 --> 00:13:28,240 се върнем към това в контекста на реалното 323 00:13:28,240 --> 00:13:29,100 примери в един миг. 324 00:13:29,100 --> 00:13:31,650 Така че не се притеснявайте, ако не съвсем потъне във всички наведнъж. 325 00:13:31,650 --> 00:13:35,400 Но Int I = 0 е дълга история кратко, казвайки дайте ми 326 00:13:35,400 --> 00:13:38,290 променлива, която е от тип цяло число, така че ми даде номера 327 00:13:38,290 --> 00:13:40,890 призован, и да я инициализираме с 0. 328 00:13:40,890 --> 00:13:43,460 Това ми даде като алгебрични променливата х и 329 00:13:43,460 --> 00:13:44,580 инициализира до 0. 330 00:13:44,580 --> 00:13:46,250 Но в този случай ние го извиках аз. 331 00:13:46,250 --> 00:13:49,120 След това в средата, тя казва, че е по-малко от 10. 332 00:13:49,120 --> 00:13:52,150 Това казва на компютъра, направете следното неща толкова дълго време 333 00:13:52,150 --> 00:13:53,770 , както и е по-малко от 10. 334 00:13:53,770 --> 00:13:55,370 И очевидно тя започва по-малко от 10, тъй като 335 00:13:55,370 --> 00:13:56,550 започва от 0. 336 00:13:56,550 --> 00:13:59,150 Тогава накрая, може би Познай какво + + средства. 337 00:13:59,150 --> 00:14:02,140 Това е малко на синтаксиса, което просто означава, че нарастване. 338 00:14:02,140 --> 00:14:05,270 Така, се добавя 1 да съм отново и отново и отново. 339 00:14:05,270 --> 00:14:09,260 >> И така, както ще видим по тази линия, този синтаксис, а по-скоро изпълнява 340 00:14:09,260 --> 00:14:12,160 точно същото нещо, което, честно казано, в Scratch беше толкова 341 00:14:12,160 --> 00:14:13,250 много по-лесно да изразят. 342 00:14:13,250 --> 00:14:15,170 Повторете 10 и сте готови. 343 00:14:15,170 --> 00:14:17,690 В C, и в повечето програмни езици, трябва да бъде 344 00:14:17,690 --> 00:14:20,190 малко по-поучително за компютъра и всъщност 345 00:14:20,190 --> 00:14:21,630 уточняват нещо подобно. 346 00:14:21,630 --> 00:14:23,730 Но ние ще се върнем на този и други синтаксис. 347 00:14:23,730 --> 00:14:24,780 >> Ами променливи? 348 00:14:24,780 --> 00:14:26,940 Scratch имахме нещо като тези оранжеви блокове, 349 00:14:26,940 --> 00:14:28,180 , където можех да декларирате променлива. 350 00:14:28,180 --> 00:14:30,000 Да произволно го наричат ​​брояч. 351 00:14:30,000 --> 00:14:31,880 Нека да я инициализираме на 0, а след това 352 00:14:31,880 --> 00:14:33,240 нека направим нещо завинаги. 353 00:14:33,240 --> 00:14:35,760 В този случай в Scratch казвам на тезгяха, така че 354 00:14:35,760 --> 00:14:38,230 котка ще трябва малко балонче за реч, която говори 355 00:14:38,230 --> 00:14:40,010 номер, който е в тази променлива. 356 00:14:40,010 --> 00:14:42,460 И тогава имаме промяна брояч с 1. 357 00:14:42,460 --> 00:14:45,760 Така че всичко това е обвит в рамките на ключалка Forever. 358 00:14:45,760 --> 00:14:48,960 Така че вече има градивни блокове в C с 359 00:14:48,960 --> 00:14:50,040 който да превежда. 360 00:14:50,040 --> 00:14:51,650 >> Един от начина, по който бихме могли да направим, че е това. 361 00:14:51,650 --> 00:14:53,890 Дай ми цяло число, да го наречем контра. 362 00:14:53,890 --> 00:14:55,190 Инициализиране 0 363 00:14:55,190 --> 00:14:56,490 на първа линия там. 364 00:14:56,490 --> 00:14:59,390 Докато (вярно), така че аз съм кражба на тази идея само за миг 365 00:14:59,390 --> 00:15:01,300 преди, давай напред и направете следното. 366 00:15:01,300 --> 00:15:04,880 Печат на тезгяха, и след това нарастване на тезгяха, 367 00:15:04,880 --> 00:15:06,930 отново, и отново, и отново. 368 00:15:06,930 --> 00:15:09,380 Или пък, + + означава само добавете 1 до нещо. 369 00:15:09,380 --> 00:15:11,030 Но тук има едно ново парче на синтаксиса. 370 00:15:11,030 --> 00:15:15,730 Какво изскочи като не е сред нашите предишни примери? 371 00:15:15,730 --> 00:15:17,190 Да, това% г. 372 00:15:17,190 --> 00:15:19,810 Така че може би си представите какво се прави, честно казано, на базата 373 00:15:19,810 --> 00:15:21,410 на това, което Scratch блок се прави. 374 00:15:21,410 --> 00:15:24,510 Но отново в C, ние просто трябва да бъде малко по-специално 375 00:15:24,510 --> 00:15:25,990 , когато става дума да се изрази. 376 00:15:25,990 --> 00:15:30,560 >> Така ФОРМАТ ("% г \ N"). 377 00:15:30,560 --> 00:15:32,320 Е, повечето от които можем да изхвърляме като запознати. 378 00:15:32,320 --> 00:15:34,910 Котировките просто означава, че е низ, наклонена черта н 379 00:15:34,910 --> 00:15:35,970 е просто нов ред. 380 00:15:35,970 --> 00:15:38,860 Така че единственото ново нещо тук е% г. 381 00:15:38,860 --> 00:15:40,390 И всичко, което е контейнер. 382 00:15:40,390 --> 00:15:43,510 % Г ще се обозначи десетично число. 383 00:15:43,510 --> 00:15:47,820 % Г компютъра означава, десетично число. 384 00:15:47,820 --> 00:15:49,450 Е, какъв номер искате да поставите там? 385 00:15:49,450 --> 00:15:52,400 Е, както може би може да се направи извод, след запетаята, което казваме 386 00:15:52,400 --> 00:15:55,480 брояч, това е името на променливата, че ние декларирахме или 387 00:15:55,480 --> 00:15:57,260 създаден преди няколко линии. 388 00:15:57,260 --> 00:16:02,420 Така че това е просто начин С включване в променлива в 389 00:16:02,420 --> 00:16:04,480 низ динамично. 390 00:16:04,480 --> 00:16:07,350 Защото за разлика от това, ако бях вместо правил нещо подобно 391 00:16:07,350 --> 00:16:12,470 това, ФОРМАТ ("гише"), какво би тази 392 00:16:12,470 --> 00:16:15,220 програма да го правим, вероятно? 393 00:16:15,220 --> 00:16:17,260 Буквално ще отпечатате "гише". 394 00:16:17,260 --> 00:16:18,750 Което не е в смисъл, че искам. 395 00:16:18,750 --> 00:16:20,920 Трябва да замени в някои числова стойност. 396 00:16:20,920 --> 00:16:24,340 Така че ще видим, че функциите и след това, като ФОРМАТ, не могат да приемат 397 00:16:24,340 --> 00:16:26,930 само единични аргументи, като 398 00:16:26,930 --> 00:16:28,150 "Hello World". 399 00:16:28,150 --> 00:16:32,050 Те могат да вземат край на цитата цитат запетая, а след това някои променливи 400 00:16:32,050 --> 00:16:35,830 , който ще се включи в нея, както ще видим Предишният низ 401 00:16:35,830 --> 00:16:38,280 чрез тези контейнери% знак. 402 00:16:38,280 --> 00:16:39,660 >> Ами какво да кажем за булеви изрази? 403 00:16:39,660 --> 00:16:42,200 Булеви изрази са тези стойности, вярно или невярно. 404 00:16:42,200 --> 00:16:42,830 Да или не. 405 00:16:42,830 --> 00:16:44,020 1 или 0. 406 00:16:44,020 --> 00:16:45,190 Включен или изключен. 407 00:16:45,190 --> 00:16:47,570 Така че в Scratch те изглеждат по този начин, и забележите, че 408 00:16:47,570 --> 00:16:50,170 дъното блок тук е всъщност връзка 409 00:16:50,170 --> 00:16:51,500 на две по-малки блокове. 410 00:16:51,500 --> 00:16:53,610 Така че аз на влачене и пускане три парчета пъзел 411 00:16:53,610 --> 00:16:56,450 заедно, за да направи това по-дълъг парче пъзел там, така че аз 412 00:16:56,450 --> 00:17:00,420 биха могли да предадат идеята, че искам Х да бъде по-малко от години и 413 00:17:00,420 --> 00:17:02,540 г. да бъде по-малко от ¼. 414 00:17:02,540 --> 00:17:05,790 И така, аз може да превежда тези две отделни линии, както следва. 415 00:17:05,790 --> 00:17:08,650 На върха може да бъде много тривиално преведени на C, 416 00:17:08,650 --> 00:17:10,069 само с X <г. 417 00:17:10,069 --> 00:17:11,990 Може би с някои скоби за добра мярка. 418 00:17:11,990 --> 00:17:15,520 И след това в C, не пишат и да се обозначи 419 00:17:15,520 --> 00:17:16,819 връзка на нещо. 420 00:17:16,819 --> 00:17:19,585 Вместо да пишат &&. 421 00:17:19,585 --> 00:17:22,849 И тъй като ние в крайна сметка ще видите, един амперсанд се случва с 422 00:17:22,849 --> 00:17:23,880 означава нещо различно. 423 00:17:23,880 --> 00:17:27,530 Така && просто обозначава идеята за "И". 424 00:17:27,530 --> 00:17:30,040 >> Така че отново, въпреки че това започва да изглежда доста сложен, 425 00:17:30,040 --> 00:17:32,560 една от целите на въвеждането на надраскване, освен 426 00:17:32,560 --> 00:17:34,810 просто като вид забавление на рампата, където можете да направите 427 00:17:34,810 --> 00:17:36,590 нещо, което е много графичен и анимирани, както и 428 00:17:36,590 --> 00:17:39,000 споделя и други подобни, е да предам идеята, че 429 00:17:39,000 --> 00:17:42,010 всички идеи, ние започваме да се гмурне в днес и по-нататък 430 00:17:42,010 --> 00:17:44,300 са въплътени в дори тази проста 431 00:17:44,300 --> 00:17:46,850 интерфейс, тъй като един ден. 432 00:17:46,850 --> 00:17:47,790 Какво ще кажете за това тук? 433 00:17:47,790 --> 00:17:48,860 >> Така условия. 434 00:17:48,860 --> 00:17:50,590 Така че Scratch блок на ляво, там изглежда 435 00:17:50,590 --> 00:17:51,610 малко по-сложни. 436 00:17:51,610 --> 00:17:52,650 Но това е само част плъзгане и 437 00:17:52,650 --> 00:17:54,140 отпадане на познатите парчета. 438 00:17:54,140 --> 00:17:56,690 Ако х е по-малко от години, да кажем така. 439 00:17:56,690 --> 00:17:59,900 Иначе, ако х е по-голяма, отколкото у, кажете го. 440 00:17:59,900 --> 00:18:02,460 Друго, ние логично да се приеме, че тя е заключи, че 441 00:18:02,460 --> 00:18:03,580 те трябва да бъдат равни. 442 00:18:03,580 --> 00:18:05,220 Така казват, че те са равни. 443 00:18:05,220 --> 00:18:07,690 Сега в C от дясната страна, точно същата нещо. 444 00:18:07,690 --> 00:18:09,730 И забележите, че фигурни скоби ще бъде 445 00:18:09,730 --> 00:18:12,190 характеристика на C и други езици, които правят този вид 446 00:18:12,190 --> 00:18:13,210 капсулиране. 447 00:18:13,210 --> 00:18:15,470 Точно както, ако блок е това жълто нещо, което е нещо 448 00:18:15,470 --> 00:18:17,770 вземете лилаво блок вътре в него. 449 00:18:17,770 --> 00:18:19,480 По същия начин са тези скоби - 450 00:18:19,480 --> 00:18:20,870 тези фигурни скоби - 451 00:18:20,870 --> 00:18:24,710 за цел да апелирам, че същата идея се възползват от един или повече 452 00:18:24,710 --> 00:18:27,680 редове код, които са вмъкнати вътре в тях. 453 00:18:27,680 --> 00:18:31,270 Така че от дясната страна, ако х по-малко от Y, ФОРМАТ 454 00:18:31,270 --> 00:18:32,270 ("Х е по-малко, отколкото у"). 455 00:18:32,270 --> 00:18:34,980 Иначе, ако х е по-голяма от години, отпечатате същото. 456 00:18:34,980 --> 00:18:38,360 Else отпечатате, че те са равни. 457 00:18:38,360 --> 00:18:41,750 >> Така че, накратко, има доста пряка картографиране или превод 458 00:18:41,750 --> 00:18:44,720 на езика, които сме виждали до този момент, включително и за някои 459 00:18:44,720 --> 00:18:45,940 на по-сложни функции. 460 00:18:45,940 --> 00:18:48,680 Така че може да не се използва това за своя проект, или може да не 461 00:18:48,680 --> 00:18:51,150 се използва за вашия проект тази седмица. 462 00:18:51,150 --> 00:18:54,650 Но ние сме тези неща, наречени масиви в C. Scratch 463 00:18:54,650 --> 00:18:55,680 те се наричат ​​списъци. 464 00:18:55,680 --> 00:18:59,370 И видяхме с Fruitcraft RPG миналата седмица. 465 00:18:59,370 --> 00:19:01,320 Малък син човек, който се разхождаше наоколо, бране 466 00:19:01,320 --> 00:19:03,010 череши и портокали и други подобни. 467 00:19:03,010 --> 00:19:05,110 Ами в самото начало, че се реализира с този оранжев 468 00:19:05,110 --> 00:19:09,000 блок, който съдържа думи, в този случай, ние сме буквално 469 00:19:09,000 --> 00:19:10,800 добавяне на "оранжевите" на 470 00:19:10,800 --> 00:19:12,460 променлива, наречена инвентара. 471 00:19:12,460 --> 00:19:14,910 Така че в C, този синтаксис ще се получи малко по-загадъчен. 472 00:19:14,910 --> 00:19:17,250 И ние ще се върнем към това следващата седмица и да направи повече 473 00:19:17,250 --> 00:19:21,060 интересни неща в света на криптографията с него. 474 00:19:21,060 --> 00:19:23,990 Но в дъното тук, тези две линии по същество 475 00:19:23,990 --> 00:19:27,550 превод на това, което правим в една драскотина блокира там. 476 00:19:27,550 --> 00:19:30,120 Но повече за това, за да дойде. 477 00:19:30,120 --> 00:19:34,120 >> Така че пускането заедно, тук е програма на C. Така че нека 478 00:19:34,120 --> 00:19:36,590 бързо дразни освен някои на парчета на синтаксиса тук, но 479 00:19:36,590 --> 00:19:40,300 след това да започнете да пишете някакъв код, запознаване 480 00:19:40,300 --> 00:19:42,440 с някои от инструментите, които ще се използват, и да видим дали можем 481 00:19:42,440 --> 00:19:45,400 може да се изгради сега някои от тези основни градивни елементи от 482 00:19:45,400 --> 00:19:49,150 миналата седмица, сега синтактично в C. Така че в горната тук, това 483 00:19:49,150 --> 00:19:51,380 е може би един от най-скучните програми, които биха могли да 484 00:19:51,380 --> 00:19:53,130 пише в почти всеки език за програмиране. 485 00:19:53,130 --> 00:19:55,010 Но е някак има специално значение, защото това е 486 00:19:55,010 --> 00:19:58,120 каноничен програма, която всеки компютър учен пише, когато 487 00:19:58,120 --> 00:19:59,620 преподаване на някой програмен език - 488 00:19:59,620 --> 00:20:01,230 здравей програма свят. 489 00:20:01,230 --> 00:20:05,120 >> Така че на самия връх, ние виждаме това понятие на # включват 490 00:20:05,120 --> 00:20:08,180 и след това в ъглови скоби, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Ние ще се върнем към това, но наистина това, че 492 00:20:10,580 --> 00:20:13,770 означава, че в този свят има файл наречен стандартен 493 00:20:13,770 --> 00:20:17,670 I / O, stdio точка з, и това е просто един текстов файл, който 494 00:20:17,670 --> 00:20:19,240 Някой е написал преди години. 495 00:20:19,240 --> 00:20:22,550 А вътре на този текстов файл са цял куп 496 00:20:22,550 --> 00:20:25,840 функции, или методи, или процедури, че някой друг 497 00:20:25,840 --> 00:20:28,970 пише, че ние сме бенефициенти на защото ние 498 00:20:28,970 --> 00:20:31,420 вече могат да използват кода, който човек. 499 00:20:31,420 --> 00:20:33,070 Функции, той или тя пише. 500 00:20:33,070 --> 00:20:36,320 В този случай, ФОРМАТ не е нещо, което съм написал, това е 501 00:20:36,320 --> 00:20:37,500 не нещо, което CS50 пише. 502 00:20:37,500 --> 00:20:40,290 Това е нещо, което някой е написал преди години и се слага в 503 00:20:40,290 --> 00:20:43,450 файл, наречен stdio.h и след това, като настрана, сложи 504 00:20:43,450 --> 00:20:45,830 друга част на функцията в друг файл. 505 00:20:45,830 --> 00:20:46,940 Но ние ще стигнем до там. 506 00:20:46,940 --> 00:20:50,070 >> Така # включват е просто начин да се каже, в 507 00:20:50,070 --> 00:20:53,110 C, дай ми достъп до функции, които някой друг е написал. 508 00:20:53,110 --> 00:20:55,490 И в този случай ме интересува, защото искам ФОРМАТ. 509 00:20:55,490 --> 00:20:57,530 Сега стигаме INT главната (нищожна). 510 00:20:57,530 --> 00:21:00,160 Така че това е едно от тези неща, честно казано, че на ден 0, 511 00:21:00,160 --> 00:21:02,400 почти Нямам вид на зона извън, защото това е просто 512 00:21:02,400 --> 00:21:03,260 не е интересно 513 00:21:03,260 --> 00:21:04,780 интелектуално, някои от синтаксиса. 514 00:21:04,780 --> 00:21:07,940 Но за сега се знае, че функциите, иначе известни като 515 00:21:07,940 --> 00:21:11,660 процедури, или методи, обикновено някаква стойност. 516 00:21:11,660 --> 00:21:12,520 Те правят нещо. 517 00:21:12,520 --> 00:21:13,810 Те идват с отговор. 518 00:21:13,810 --> 00:21:15,020 Те произвеждат продукция. 519 00:21:15,020 --> 00:21:18,780 Така INT до главната е само стенограмите начин да се каже 520 00:21:18,780 --> 00:21:21,380 че тази функция, тази процедура, е в крайна сметка ще 521 00:21:21,380 --> 00:21:22,650 да ви дам номер. 522 00:21:22,650 --> 00:21:24,370 И защо това е така, ние ще се върнем. 523 00:21:24,370 --> 00:21:27,810 Майн е само стандарта по подразбиране света по подразбиране 524 00:21:27,810 --> 00:21:30,990 функция, която ще се изпълни в програма на C, когато 525 00:21:30,990 --> 00:21:31,860 можете да го стартирате. 526 00:21:31,860 --> 00:21:34,160 Void просто означава това нещо, основен, не взема 527 00:21:34,160 --> 00:21:35,270 аргументи, като в този случай. 528 00:21:35,270 --> 00:21:36,400 Така че аз съм супер изрично. 529 00:21:36,400 --> 00:21:38,160 Няма по струните там, няма запетаи. 530 00:21:38,160 --> 00:21:40,690 Void означава, че няма аргументи на основното. 531 00:21:40,690 --> 00:21:44,350 >> Сега, накрая, слава Богу, последните два реда са запознати. 532 00:21:44,350 --> 00:21:46,160 Вътре в фигурни скоби имаме ФОРМАТ 533 00:21:46,160 --> 00:21:47,620 и имаме възвращаемост. 534 00:21:47,620 --> 00:21:50,450 И връщането е вид жалко, че ние трябва да 535 00:21:50,450 --> 00:21:53,510 да я тури там, защото в този случай не прави всичко това 536 00:21:53,510 --> 00:21:54,600 много на интереси. 537 00:21:54,600 --> 00:21:58,790 Но в компютърна програма, когато функцията връща 0, 538 00:21:58,790 --> 00:22:00,610 това означава, че всичко е наред. 539 00:22:00,610 --> 00:22:01,820 Нищо не се е объркало. 540 00:22:01,820 --> 00:22:06,170 От друга страна, ако една функция връща един или отрицателна 1, или 541 00:22:06,170 --> 00:22:11,670 отрицателно 1337, или някои случайни числа, като това, че 542 00:22:11,670 --> 00:22:14,020 обикновено означава, че действително е имало грешка. 543 00:22:14,020 --> 00:22:16,150 Така че, ако сте на вашия Mac или PC, ако сте виждал 544 00:22:16,150 --> 00:22:18,590 някои досадни съобщение, защото компютърът ви е разбил или 545 00:22:18,590 --> 00:22:20,660 замразени, а има и загадъчно съобщение за грешка, 546 00:22:20,660 --> 00:22:23,320 и след това някакъв код, като кодова система 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, известен брой, 548 00:22:25,110 --> 00:22:29,270 , че като цяло е излишен детайл да се каже 549 00:22:29,270 --> 00:22:32,110 повечето от нас, хората, но това е, което някои функции или някои 550 00:22:32,110 --> 00:22:34,890 програмата действително е върната, различна от нула стойност. 551 00:22:34,890 --> 00:22:38,540 И Ползата от това е, че 0 означава, както и 552 00:22:38,540 --> 00:22:40,470 тогава ти същество да има безкраен брой неща, които 553 00:22:40,470 --> 00:22:41,130 може да се обърка. 554 00:22:41,130 --> 00:22:44,700 Което е защо са избрали 0 за добро и различна от нула стойност за 555 00:22:44,700 --> 00:22:46,450 лошо, както скоро ще видим. 556 00:22:46,450 --> 00:22:47,870 >> Така че нека да вървим напред и да напиша тази. 557 00:22:47,870 --> 00:22:51,610 Така че се припомни, че на другия ден аз използвах моя Мак да отвори 558 00:22:51,610 --> 00:22:53,970 терминален прозорец, а след това отвори текстообработваща програма, като 559 00:22:53,970 --> 00:22:55,900 TextEdit, и аз започнах да пиша някакъв код. 560 00:22:55,900 --> 00:22:56,580 Е, това е добре. 561 00:22:56,580 --> 00:22:58,636 Но вашият опит ще бъде различен на Mac, или 562 00:22:58,636 --> 00:23:01,220 на компютър, Linux, Solaris компютър, независимо от операционната 563 00:23:01,220 --> 00:23:02,810 система, се случи да използвате. 564 00:23:02,810 --> 00:23:04,970 И така, разбира се, това, което ние, вместо да се използва, е нещо 565 00:23:04,970 --> 00:23:07,010 CS50 техника. 566 00:23:07,010 --> 00:23:10,420 Така че CS50 техника за изтегляне част от софтуера 567 00:23:10,420 --> 00:23:13,640 , която ви позволява да стартирате операционната система, наречена Linux, 568 00:23:13,640 --> 00:23:16,810 специално Fedora Linux, на собствения си Mac или PC. 569 00:23:16,810 --> 00:23:20,810 И това се прави чрез изтегляне на нещо, наречено на хипервайзор. 570 00:23:20,810 --> 00:23:23,100 Така че всичко това ще бъде документирано в проблем набор 1. 571 00:23:23,100 --> 00:23:25,240 И ще се насочва към това, което трябва да изтеглите. 572 00:23:25,240 --> 00:23:27,510 Но крайният резултат, независимо дали имате Mac или PC, 573 00:23:27,510 --> 00:23:29,080 изтегляне някакъв свободен софтуер. 574 00:23:29,080 --> 00:23:32,340 След това да изтеглите CS50 техника, и да ти кажа, че 575 00:23:32,340 --> 00:23:33,960 свободен софтуер - хипервайзора 576 00:23:33,960 --> 00:23:38,080 да стартирате CS50 техника в прозореца на вашия компютър. 577 00:23:38,080 --> 00:23:39,490 И това, което се случва, е това. 578 00:23:39,490 --> 00:23:43,660 >> Имам сега, забележете, тук това, което изглежда да бъде работния плот 579 00:23:43,660 --> 00:23:44,130 околната среда. 580 00:23:44,130 --> 00:23:46,150 И нека ми се свие тази единствен прозорец. 581 00:23:46,150 --> 00:23:49,640 Така че това сега е моя Mac, с малък прозорец, и вътре 582 00:23:49,640 --> 00:23:51,300 на този прозорец се случва да бъде напълно 583 00:23:51,300 --> 00:23:52,380 различна операционна система. 584 00:23:52,380 --> 00:23:55,250 Всъщност има този старт менюто тук, напомнящ 585 00:23:55,250 --> 00:23:57,990 Windows, който има цял куп подменютата, включително 586 00:23:57,990 --> 00:24:00,720 линк към CS50 употреба, Dropbox, и други подобни. 587 00:24:00,720 --> 00:24:03,480 И какво тази среда сега е стандартна среда 588 00:24:03,480 --> 00:24:06,280 че всички ние вече могат да използват, така че няма значение какво ви 589 00:24:06,280 --> 00:24:08,960 компютърът е, какво е инсталирано на него, каква версия 590 00:24:08,960 --> 00:24:11,430 Mac OS или Windows бягаш, ние всички вече имат 591 00:24:11,430 --> 00:24:12,800 и съща среда. 592 00:24:12,800 --> 00:24:15,850 И сега, в тази среда можем да започнете да пишете някакъв код. 593 00:24:15,850 --> 00:24:18,480 >> Така че аз отивам да вървим напред и да се отвори една програма, наречена Gedit. 594 00:24:18,480 --> 00:24:21,500 Това е сравнимо notepad.exe, или 595 00:24:21,500 --> 00:24:22,790 TextEdit на Mac. 596 00:24:22,790 --> 00:24:25,390 И това е само супер проста програма за редактиране на текст 597 00:24:25,390 --> 00:24:27,500 което прилича на това на пръв поглед. 598 00:24:27,500 --> 00:24:30,640 Сега най-отгоре, имам бяла палитра, в долната 599 00:24:30,640 --> 00:24:33,860 този черен прозорец, който казва jharvard @ уреда. 600 00:24:33,860 --> 00:24:36,440 И това е, защото потребителят има предвид, че ние предварително 601 00:24:36,440 --> 00:24:38,430 за всеки е призван Джон Харвард. 602 00:24:38,430 --> 00:24:41,490 Той има папка, където всички файловете му ще отидете, и 603 00:24:41,490 --> 00:24:43,500 тук е мястото, където можем да започнете да пишете някакъв код. 604 00:24:43,500 --> 00:24:45,810 Така че нека да вървим напред тук и да се увеличат само малко, и аз съм 605 00:24:45,810 --> 00:24:51,550 ще направим # включват , INT главната (недействителни), и 606 00:24:51,550 --> 00:24:57,470 тогава аз ще направя ФОРМАТ ("Hello World") 607 00:24:57,470 --> 00:24:59,490 ; Върне 0. 608 00:24:59,490 --> 00:25:01,400 Сега всичко това е доста черно и бяло. 609 00:25:01,400 --> 00:25:03,830 >> Позволете ми да отида напред и да направи едно нещо, за да преподават Gedit какво съм 610 00:25:03,830 --> 00:25:04,510 всъщност прави. 611 00:25:04,510 --> 00:25:06,140 Нека да отида до Save As. 612 00:25:06,140 --> 00:25:08,560 Отивам да изберат най-лявата страна тук jharvard. 613 00:25:08,560 --> 00:25:11,010 Така че отново, дори ако никога не сте използвали Linux преди, честно казано 614 00:25:11,010 --> 00:25:13,680 тези дни, всички от тях са прехвърлени в по същество 615 00:25:13,680 --> 00:25:14,590 един и същ тип интерфейс - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows и Linux. 617 00:25:16,030 --> 00:25:18,680 Затова избрах jharvard домашната папка. 618 00:25:18,680 --> 00:25:21,120 И аз отивам да запишете файла като hello.c. 619 00:25:21,120 --> 00:25:24,260 Така че на самия връх, написах hello.c именуване C 620 00:25:24,260 --> 00:25:26,520 програма с разширение в 621 00:25:26,520 --> 00:25:27,570 това, което е често срещана практика. 622 00:25:27,570 --> 00:25:28,650 И аз удари Запиши. 623 00:25:28,650 --> 00:25:32,510 И сега, което е хубаво е, че съм ефективно преподава Gedit, 624 00:25:32,510 --> 00:25:33,690 , че това е програма C. 625 00:25:33,690 --> 00:25:36,470 Забележете, че ми черно и бяло сега е цветово кодиран текст, или 626 00:25:36,470 --> 00:25:39,330 синтаксис подчерта, която току-що се насочва вниманието си към 627 00:25:39,330 --> 00:25:41,540 различни семантични части на програмата. 628 00:25:41,540 --> 00:25:44,260 В горния ляв ъгъл, програмите ми стават по-сложни, аз съм 629 00:25:44,260 --> 00:25:47,060 ще има резюме на всички от нещата, които съм написал. 630 00:25:47,060 --> 00:25:48,050 Така че това е там. 631 00:25:48,050 --> 00:25:52,350 Така че нека сега да се намали и до този терминален прозорец. 632 00:25:52,350 --> 00:25:54,570 >> Така че това е може би нова за много хора. 633 00:25:54,570 --> 00:25:57,260 Ако никога не сте използвали среда на командния ред, които никога не сте 634 00:25:57,260 --> 00:26:00,020 използва DOS, или никога не сте използвали Linux, или никога не сте отворили 635 00:26:00,020 --> 00:26:02,550 Mac OS терминален прозорец, има много неща, които 636 00:26:02,550 --> 00:26:04,820 може да направи с GUI, като сочи, и кликнете и 637 00:26:04,820 --> 00:26:07,080 плъзгане и пускане, и други подобни, но като цяло - 638 00:26:07,080 --> 00:26:09,360 сигурност в света на компютърната наука - 639 00:26:09,360 --> 00:26:11,580 командния ред, където не е нужно мишката 640 00:26:11,580 --> 00:26:14,220 обикновено, имате само клавиатурата си, всъщност е много 641 00:26:14,220 --> 00:26:17,260 по-силен от интерфейса, след като се аклиматизират към 642 00:26:17,260 --> 00:26:18,580 различни команди. 643 00:26:18,580 --> 00:26:20,940 И ти вид на свободно себе си, че е необходимо да се отбележи и кликнете 644 00:26:20,940 --> 00:26:21,690 във всичко. 645 00:26:21,690 --> 00:26:23,890 Така че в Gedit ще някак да имате най-доброто от двата свята. 646 00:26:23,890 --> 00:26:25,600 Ние можем да влачите и пускате текст, можем да го видим 647 00:26:25,600 --> 00:26:26,840 хубаво и цветово кодиран. 648 00:26:26,840 --> 00:26:29,630 Но когато дойде време да работи нашата програма, ние ще понякога 649 00:26:29,630 --> 00:26:31,750 просто използвайте този малък прозорец. 650 00:26:31,750 --> 00:26:33,460 >> Така че аз отивам да вървим напред и да направи това. 651 00:26:33,460 --> 00:26:36,420 В долната черно и бяло прозорец, аз отивам да вървим напред 652 00:26:36,420 --> 00:26:37,890 и пишат ехтя. 653 00:26:37,890 --> 00:26:40,130 И звъня е името на компилатор. 654 00:26:40,130 --> 00:26:43,310 Това е програма, която конвертира ми изходния код 655 00:26:43,310 --> 00:26:48,770 в, така, обектния код. 656 00:26:48,770 --> 00:26:51,270 0s и 1s, че видяхме за кратко миналата седмица. 657 00:26:51,270 --> 00:26:53,700 Спомнете си от миналата седмица, обеща, че щяхме да 658 00:26:53,700 --> 00:26:55,920 от нещо подобно - ние трябваше да бъде 659 00:26:55,920 --> 00:26:57,010 нещо подобно - 660 00:26:57,010 --> 00:26:58,700 и това със сигурност не е нещо, което човек ще 661 00:26:58,700 --> 00:26:59,690 да направите ръчно. 662 00:26:59,690 --> 00:27:01,980 Така че, вместо да започваш да използвате програма, и тази програма в 663 00:27:01,980 --> 00:27:03,430 този случай се нарича звъня. 664 00:27:03,430 --> 00:27:06,020 И името на моята програма е hello.c. 665 00:27:06,020 --> 00:27:09,670 Така че, за да съставят hello.c от сорс код в 666 00:27:09,670 --> 00:27:12,930 обектен код или 0s и 1s, той трябва да е достатъчно просто да си направи 667 00:27:12,930 --> 00:27:14,820 и натиснете Enter. 668 00:27:14,820 --> 00:27:16,850 >> Добре, нищо не изглежда да се случи. 669 00:27:16,850 --> 00:27:20,450 Но аз знам, сега, или от миналата седмица, че името по подразбиране на 670 00:27:20,450 --> 00:27:24,920 програма, когато са написани в C, е глупаво нарича a.out. 671 00:27:24,920 --> 00:27:26,610 Най-безинтересна името, което може да дойде. 672 00:27:26,610 --> 00:27:28,790 А е първата буква от азбуката, е това, което беше 673 00:27:28,790 --> 00:27:29,960 изход, но така да бъде. 674 00:27:29,960 --> 00:27:33,570 Това е моята програма, а сега точка наклонена черта, както ще видим, е 675 00:27:33,570 --> 00:27:36,170 всъщност само функция на сигурността, тъй като 676 00:27:36,170 --> 00:27:38,250 a.out е програма, съм написал. 677 00:27:38,250 --> 00:27:39,650 Тя не дойде с моя компютър, това е 678 00:27:39,650 --> 00:27:40,790 не в Program Files. 679 00:27:40,790 --> 00:27:42,910 Тя не е в папката "Приложения" Mac OS. 680 00:27:42,910 --> 00:27:45,740 Трябва да съм супер изрично с компютъра, и да кажа 681 00:27:45,740 --> 00:27:49,030 тази програма, a.out, е в текущата папка, 682 00:27:49,030 --> 00:27:50,260 текущата директория. 683 00:27:50,260 --> 00:27:53,160 И начина, по който го представлява, в среда като тази 684 00:27:53,160 --> 00:27:57,070 е точка представлява каквато и папката, в която в момента са инча 685 00:27:57,070 --> 00:27:59,420 И така. / Просто означава, работи a.out 686 00:27:59,420 --> 00:28:00,530 в текущата папка. 687 00:28:00,530 --> 00:28:04,830 И аз тичам с Enter, и готово, първата ми програма. 688 00:28:04,830 --> 00:28:05,990 >> Сега нека да направи крачка назад. 689 00:28:05,990 --> 00:28:08,280 Този прозорец е малко по-малък, и осъзнавам, че дъното 690 00:28:08,280 --> 00:28:10,340 ляво на уреда тук е друга икона. 691 00:28:10,340 --> 00:28:12,660 Един от тях е Chrome, който трябва да бъде доста познато, само на уеб 692 00:28:12,660 --> 00:28:14,350 браузъра вътрешността на уреда. 693 00:28:14,350 --> 00:28:16,340 И това е само черно и бяло икона на 694 00:28:16,340 --> 00:28:17,720 по-голям терминал прозорец. 695 00:28:17,720 --> 00:28:19,830 Така че, ако става малко досадно да сортирате имат само 696 00:28:19,830 --> 00:28:22,270 едно мъничко парче на прозореца, с които да си взаимодействат 697 00:28:22,270 --> 00:28:24,370 с програми, ние можем да го правим това. 698 00:28:24,370 --> 00:28:26,640 А сега нека да започнете да пишете няколко скоро 699 00:28:26,640 --> 00:28:27,980 да бъде познатите команди. 700 00:28:27,980 --> 00:28:28,900 LS. 701 00:28:28,900 --> 00:28:31,410 Така ли е команда за включване в списъка. 702 00:28:31,410 --> 00:28:33,900 Така че в Mac OS или Windows, като цяло ще двукратно върху 703 00:28:33,900 --> 00:28:36,510 папка и след това, готово, ще видите всички различни файлове 704 00:28:36,510 --> 00:28:37,210 и папки. 705 00:28:37,210 --> 00:28:39,650 В командния ред среда, където можете само да въведете 706 00:28:39,650 --> 00:28:42,390 команди или текст, ли е еквивалент. 707 00:28:42,390 --> 00:28:44,380 Така ми покаже какво има в тази директория. 708 00:28:44,380 --> 00:28:46,540 >> Сега има един куп неща тук, това е малко 709 00:28:46,540 --> 00:28:48,190 познати и малко непознати. 710 00:28:48,190 --> 00:28:50,740 Но забележете, че точно като Windows и Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 има папка на работния плот. 712 00:28:52,190 --> 00:28:54,520 Така се случват всички икони, които са на компютъра си 713 00:28:54,520 --> 00:28:55,650 да бъде в тази папка. 714 00:28:55,650 --> 00:28:57,250 Има сваляния папка, неща, които 715 00:28:57,250 --> 00:28:58,890 Chrome може да постави там. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Така че Уредът е с вградена поддръжка за Dropbox 718 00:29:01,820 --> 00:29:04,500 така, че през семестъра, може да се синхронизира с вашия Dropbox 719 00:29:04,500 --> 00:29:06,420 сметка, така че всички ваши програми са подкрепени. 720 00:29:06,420 --> 00:29:08,050 Те са достъпни на другия си компютър. 721 00:29:08,050 --> 00:29:09,780 Ако нещо някога се обърка с уреда, можете да 722 00:29:09,780 --> 00:29:11,340 много лесно да се възстанови от Dropbox. 723 00:29:11,340 --> 00:29:12,940 Така че тази папка е там за това. 724 00:29:12,940 --> 00:29:14,660 Има два файла, които направих - hello.c 725 00:29:14,660 --> 00:29:16,540 a.out. 726 00:29:16,540 --> 00:29:18,530 И тогава в дясно има някои други папки, които ние ще 727 00:29:18,530 --> 00:29:20,710 стигнем до към края на семестъра, с уеб 728 00:29:20,710 --> 00:29:21,540 програмиране. 729 00:29:21,540 --> 00:29:26,160 Така че, когато го направя. /, A.out, Enter, че казва 730 00:29:26,160 --> 00:29:29,460 в директорията съм в текущата директория, и изпълнете 731 00:29:29,460 --> 00:29:32,465 програма, наречена a.out точно там. 732 00:29:32,465 --> 00:29:35,810 >> Добре, така че е хубаво и добро, но това не е всичко, че 733 00:29:35,810 --> 00:29:38,550 непреодолими да се напише програма, наречена помогне a.out. 734 00:29:38,550 --> 00:29:40,790 Така че ние може да се прави това е малко по-различно. 735 00:29:40,790 --> 00:29:43,980 Така че, вместо просто вървят ехтя, hello.c, нека добавим 736 00:29:43,980 --> 00:29:46,850 , което се нарича аргумент на командния ред. 737 00:29:46,850 --> 00:29:50,730 Така аргумент от командния ред, или преминаване в този случай, е само 738 00:29:50,730 --> 00:29:54,930 друга дума или фраза, която въведете в ред след 739 00:29:54,930 --> 00:29:56,290 програмата, която искате да стартирате. 740 00:29:56,290 --> 00:29:59,970 Така че в този случай, ехтя е програмата Искам да изпълня-о 741 00:29:59,970 --> 00:30:03,480 средства изходен файл, който вече не нарича a.out. 742 00:30:03,480 --> 00:30:07,510 Изход файл със същото име и да го направят чрез съставяне на 743 00:30:07,510 --> 00:30:10,200 последната дума на линията, hello.c. 744 00:30:10,200 --> 00:30:13,200 Така че по-кратко, това е много леко подобрение, с което 745 00:30:13,200 --> 00:30:15,850 вместо това глупаво име на файла a.out, 746 00:30:15,850 --> 00:30:21,430 Сега мога да направя ехтя-о здравей, тогава hello.c и 747 00:30:21,430 --> 00:30:22,530 след това натиснете Enter. 748 00:30:22,530 --> 00:30:25,510 Сякаш нищо не може да се случи, но отново много с 0 - когато 749 00:30:25,510 --> 00:30:28,510 нищо не изглежда да се случи, това означава, че нищо лошо се случи - 750 00:30:28,510 --> 00:30:31,460 така че нека го направим ли сега, Enter, и наистина сега 751 00:30:31,460 --> 00:30:32,780 здравей програма. 752 00:30:32,780 --> 00:30:38,510 Така че, ако напиша здравей сега, Командата не е намерена. 753 00:30:38,510 --> 00:30:39,440 OK. /. 754 00:30:39,440 --> 00:30:40,220 Така че, точно така. 755 00:30:40,220 --> 00:30:43,170 Така, защото тази програма съм написал, и тя не дойде с 756 00:30:43,170 --> 00:30:45,810 компютъра, / Здравейте, Enter, означава 757 00:30:45,810 --> 00:30:47,350 Аз съм сега работи здрасти. 758 00:30:47,350 --> 00:30:48,440 >> Така че тя е там. 759 00:30:48,440 --> 00:30:51,070 Сега това, което в крайна сметка ще стигнем до все повече и повече командния ред 760 00:30:51,070 --> 00:30:54,110 аргументи, които ни позволяват да се направи повече, но само за тези, за които 761 00:30:54,110 --> 00:30:57,760 които това може да бъде стара шапка, нека отиде в 762 00:30:57,760 --> 00:31:01,910 директория тук и да ви дам само една закачка как иначе ние 763 00:31:01,910 --> 00:31:05,770 може да отиде за прилагане здравей свят. 764 00:31:05,770 --> 00:31:10,730 Нека отида в тук, и аз отивам да го отворите. 765 00:31:10,730 --> 00:31:13,090 Така че всъщност, аз отивам да се обясни това, което правя, така че 766 00:31:13,090 --> 00:31:15,610 това е полезно. 767 00:31:15,610 --> 00:31:17,410 Нека обратно. 768 00:31:17,410 --> 00:31:19,620 >> Така че аз съм правил това от дълго време. 769 00:31:19,620 --> 00:31:23,030 Така че забележите в дясно има няколко 770 00:31:23,030 --> 00:31:26,940 директории, които са странно име source1m и source1w. 771 00:31:26,940 --> 00:31:28,830 Това е просто глупаво конвенция, която ние използваме. 772 00:31:28,830 --> 00:31:31,825 Източник просто означава, изходния код, 1 означава, че това е една седмица, и 773 00:31:31,825 --> 00:31:34,000 m означава, че е понеделник и w означава, че е сряда. 774 00:31:34,000 --> 00:31:34,900 Така че нищо загадъчно там. 775 00:31:34,900 --> 00:31:37,830 Това е просто съкратена нотация. 776 00:31:37,830 --> 00:31:39,860 Тези сини неща са папки, иначе известни като 777 00:31:39,860 --> 00:31:40,630 директории. 778 00:31:40,630 --> 00:31:43,870 Искам да отида в тази папка, както и на нормален компютър 779 00:31:43,870 --> 00:31:45,710 Можех просто щракнете двукратно върху иконата на папката и 780 00:31:45,710 --> 00:31:46,810 има всичките си файлове. 781 00:31:46,810 --> 00:31:49,270 Но в среда на командния ред, не може съвсем да направя 782 00:31:49,270 --> 00:31:52,640 това, така че вместо това, аз трябва да промените директории ръчно. 783 00:31:52,640 --> 00:31:57,900 Така че, ако въведете компактдиск и след това source1m, Enter, забележите, че 784 00:31:57,900 --> 00:32:01,180 бързо ми, нещо в бяло в ляво, току-що се променили. 785 00:32:01,180 --> 00:32:03,690 И наистина, когато тя току-що каза, скоби и след това 786 00:32:03,690 --> 00:32:06,450 малко завъртулка, символът тилда, това означаваше, че е 787 00:32:06,450 --> 00:32:08,800 в домашната директория на Джон Харвард, My Documents, 788 00:32:08,800 --> 00:32:10,390 личните си файлове. 789 00:32:10,390 --> 00:32:14,000 Но сега в скоби се казва ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Това просто означава, че съм в една папка, наречена source1m 791 00:32:17,090 --> 00:32:19,160 това е в домашната директория на Джон Харвард. 792 00:32:19,160 --> 00:32:22,030 Така че, ако аз сега искам да се изброят файловете в тази папка, лесно 793 00:32:22,030 --> 00:32:25,300 въпрос, ще напише ли. 794 00:32:25,300 --> 00:32:28,860 И сега виждам всички файлове, че предварително създаден за днес 795 00:32:28,860 --> 00:32:31,020 лекция, всички от които, или по-голямата част от които, се случи 796 00:32:31,020 --> 00:32:32,740 до края инча в. 797 00:32:32,740 --> 00:32:36,210 >> Така че нека да вървим напред и тичам Gedit на програма, наречена 798 00:32:36,210 --> 00:32:39,140 holloway.c, която е написана от някой случаен хакер 799 00:32:39,140 --> 00:32:42,920 в интернет, че изглежда малко като този. 800 00:32:42,920 --> 00:32:44,880 И ние няма да мине през това във всеки 801 00:32:44,880 --> 00:32:48,530 детайли, но за тези, които по-удобно, по-специално, ако 802 00:32:48,530 --> 00:32:50,935 искате да се предположение на това, което прави тази програма тук. 803 00:32:57,950 --> 00:32:59,990 Уверяваме ви, независимо дали сте по-малко или по-удобно, 804 00:32:59,990 --> 00:33:01,655 ние не сме дори да се стигне до подобно нещо до края на 805 00:33:01,655 --> 00:33:02,160 този семестър. 806 00:33:02,160 --> 00:33:05,390 Това е, което е пример за завоалира конкурса C, които 807 00:33:05,390 --> 00:33:08,390 средства пишете най-загадъчен търсите програма, която евентуално 808 00:33:08,390 --> 00:33:10,820 може да надмине други умни хора, които са по същия начин 809 00:33:10,820 --> 00:33:13,010 се опитвам да напиша неща и да покаже, че те могат да пишат 810 00:33:13,010 --> 00:33:14,280 по-загадъчни неща от теб. 811 00:33:14,280 --> 00:33:17,290 Така че това не е пример за добре написана програма от 812 00:33:17,290 --> 00:33:21,260 гледна точка на стил, това е пример за програма, която 813 00:33:21,260 --> 00:33:22,860 печели конкурс за хора, които се опитват да 814 00:33:22,860 --> 00:33:24,090 да бъдат неясни и абстрактни. 815 00:33:24,090 --> 00:33:27,670 >> Така че, ако ни свърши това нещо, пусни ме в моя терминален прозорец, 816 00:33:27,670 --> 00:33:28,110 така да се каже. 817 00:33:28,110 --> 00:33:29,650 Така че това черно и бяло среда се нарича 818 00:33:29,650 --> 00:33:31,160 терминален прозорец като цяло. 819 00:33:31,160 --> 00:33:32,600 Нека вървим напред и да го компилирате. 820 00:33:32,600 --> 00:33:34,440 Аз няма да се използва ехтя, защото тази програма е 821 00:33:34,440 --> 00:33:36,340 малко загадъчен и се нуждае от по-различно 822 00:33:36,340 --> 00:33:38,190 съставител, наречен GCC. 823 00:33:38,190 --> 00:33:39,200 Но го прави едно и също нещо. 824 00:33:39,200 --> 00:33:41,130 Изходния код на обектен код. 825 00:33:41,130 --> 00:33:43,940 И сега, ако аз тичам a.out, че програмата, която 826 00:33:43,940 --> 00:33:46,065 Току-що видях прави това. 827 00:33:49,220 --> 00:33:51,170 Така че този човек през тази година спечели този конкурс. 828 00:33:51,170 --> 00:33:54,020 Във всеки случай, ние не отиваме в тази посока, сама по себе си. 829 00:33:54,020 --> 00:33:57,400 >> Така че нека да се опитаме да дразни, освен това, което можем да направим 830 00:33:57,400 --> 00:33:59,540 с тези основни градивни елементи, за да правят все повече и повече 831 00:33:59,540 --> 00:34:00,590 интересни програми. 832 00:34:00,590 --> 00:34:02,800 Така че ние сме написал програма, ние сме стартирате програмата. 833 00:34:02,800 --> 00:34:05,780 Сега ние действително можем да се опрости и вече не се налага да пиша 834 00:34:05,780 --> 00:34:07,210 думата ехтя в командния ред. 835 00:34:07,210 --> 00:34:10,710 Оказва се, че нашите програми получават по-загадъчен, ние можем, или 836 00:34:10,710 --> 00:34:14,699 по-сложна, а ние действително можем да стартирате тази команда. 837 00:34:14,699 --> 00:34:17,610 Така че нека да се върнем към моята домашна директория, така да се каже, позволете ми да 838 00:34:17,610 --> 00:34:20,750 премахване - RM е командата за премахване - Тръгвам да премахнете 839 00:34:20,750 --> 00:34:23,060 файл, наречен a.out и здрасти. 840 00:34:23,060 --> 00:34:25,489 И сега забележите в среда на командния ред, също като в 841 00:34:25,489 --> 00:34:27,800 GUI, ще получите подкана за това. Не мога да щракнете върху бутона обаче, 842 00:34:27,800 --> 00:34:31,040 трябва да въведете г. за Да, Y за да. 843 00:34:31,040 --> 00:34:33,460 И сега, ако въведете ли отново, забележете, че тези зелени 844 00:34:33,460 --> 00:34:35,469 програми - a.out и здравей - 845 00:34:35,469 --> 00:34:35,734 са си отишли. 846 00:34:35,734 --> 00:34:37,340 Пазете се Rm. 847 00:34:37,340 --> 00:34:39,739 Той може да направи лоши неща, както можете да направите чрез плъзгане 848 00:34:39,739 --> 00:34:40,810 неща за боклука. 849 00:34:40,810 --> 00:34:43,989 >> Така че сега, нека вървим напред и бих могъл да направя това - ехтя-о 850 00:34:43,989 --> 00:34:45,139 здравей, здравей - 851 00:34:45,139 --> 00:34:46,884 Аз вече съм отегчен пишете тази команда. 852 00:34:46,884 --> 00:34:48,080 Въпреки, че аз го написали малко по-бързо. 853 00:34:48,080 --> 00:34:51,870 Така че ние можем, вместо да правят здрасти. 854 00:34:51,870 --> 00:34:53,880 Така че да не е компилатор. 855 00:34:53,880 --> 00:34:57,720 Това е просто една програма, която идва с Linux, в това 856 00:34:57,720 --> 00:34:59,070 случай - операционната система - 857 00:34:59,070 --> 00:35:02,480 , която автоматизира процеса на съставяне на програми. 858 00:35:02,480 --> 00:35:05,555 Така че, вместо да помним ехтя-о име и 859 00:35:05,555 --> 00:35:08,190 така нататък, особено след тези линии се удължават и 860 00:35:08,190 --> 00:35:10,110 по-дълго, може просто да напишете направи. 861 00:35:10,110 --> 00:35:12,030 И това се случва да плюе цял куп неща, които 862 00:35:12,030 --> 00:35:13,940 ние в крайна сметка ще видим този семестър. 863 00:35:13,940 --> 00:35:17,500 Но забележете сега, ако ми тип ли, здравей отново е в моята директория. 864 00:35:17,500 --> 00:35:19,850 И наистина мога да го стартирате. / Здрасти. 865 00:35:19,850 --> 00:35:23,330 Така че направи просто автоматизира процеса да работи това, което е било, 866 00:35:23,330 --> 00:35:26,910 в този случай, много по-дълъг, по-сложна команда. 867 00:35:26,910 --> 00:35:29,060 Така че ние ще започнем да се използва марката, просто защото това е много 868 00:35:29,060 --> 00:35:30,530 по-удобни за ползване. 869 00:35:30,530 --> 00:35:32,770 >> Но сега нека да направим по-интересна програма 870 00:35:32,770 --> 00:35:34,650 , отколкото просто да кажа здрасти. 871 00:35:34,650 --> 00:35:38,680 Така че в програмите сме написали досега е основната. 872 00:35:38,680 --> 00:35:40,890 Това е просто по подразбиране, което започва всичко. 873 00:35:40,890 --> 00:35:43,340 Но там има и други функции, както и 874 00:35:43,340 --> 00:35:45,890 stdio.h е нещо, което видяхме на върха на нашата 875 00:35:45,890 --> 00:35:48,480 файл и преди, и това е, което е известно като стандартната библиотека. 876 00:35:48,480 --> 00:35:51,300 Вътре от стандартната библиотека е цял куп функции 877 00:35:51,300 --> 00:35:53,850 че някой друг пише, а ние да започнете да използвате тези 878 00:35:53,850 --> 00:35:55,050 функции да пиша повече 879 00:35:55,050 --> 00:35:56,760 интересни самите програми. 880 00:35:56,760 --> 00:35:58,370 >> Така че нека да се върна на уреда. 881 00:35:58,370 --> 00:35:59,820 Отивам да затворите този прозорец на терминала. 882 00:35:59,820 --> 00:36:02,630 Отивам да затворите нещата, които е написал по-рано, и просто отидете 883 00:36:02,630 --> 00:36:07,350 в hello.c и забележете сега мога да направя следното. 884 00:36:07,350 --> 00:36:09,730 Здравей, свят не е толкова интересно, бих искал да 885 00:36:09,730 --> 00:36:11,770 персонализирате тази програма за себе си. 886 00:36:11,770 --> 00:36:13,440 Така че, вместо да казва на света, аз отивам да 887 00:36:13,440 --> 00:36:14,830 отидете напред и да каже - 888 00:36:14,830 --> 00:36:16,880 Можех да въведете David - но това наистина е нещо 889 00:36:16,880 --> 00:36:18,050 основата си е същият. 890 00:36:18,050 --> 00:36:19,970 Но нека се опитаме тази идея контейнер. 891 00:36:19,970 --> 00:36:24,460 Спомнете си, че в C, а в ФОРМАТ, имахме тези 892 00:36:24,460 --> 00:36:28,110 контейнери, и там са повече, отколкото просто% г. 893 00:36:28,110 --> 00:36:31,150 Така% D, бърза проверка на здрав разум. 894 00:36:31,150 --> 00:36:32,310 Добре, десетично число, това е всичко. 895 00:36:32,310 --> 00:36:33,860 Десетични цифри, това е всичко. 896 00:36:33,860 --> 00:36:37,755 Така% C, тъй като ние ще се сблъскате, ще бъде герой. 897 00:36:37,755 --> 00:36:40,530 Поставете герой тук, писмо от А до Я, 898 00:36:40,530 --> 00:36:41,600 или препинателен знак. 899 00:36:41,600 --> 00:36:45,590 Един символ,% F, Някой знае ли от други езици? 900 00:36:45,590 --> 00:36:47,020 Така плаваща запетая стойност. 901 00:36:47,020 --> 00:36:47,880 Реално число. 902 00:36:47,880 --> 00:36:51,550 Така че не десетично число - това е реално число с 903 00:36:51,550 --> 00:36:54,130 десетичната запетая, а някои от броя на цифрите в ляво 904 00:36:54,130 --> 00:36:55,520 и вдясно от нея. 905 00:36:55,520 --> 00:36:58,060 % S, низ. 906 00:36:58,060 --> 00:36:59,530 Това отива да се види доста често. 907 00:36:59,530 --> 00:37:02,140 Низ, отново, е просто дума, фраза, поредица от 908 00:37:02,140 --> 00:37:03,330 отделните герои. 909 00:37:03,330 --> 00:37:06,730 И накрая, LLD? 910 00:37:06,730 --> 00:37:08,210 Така че това е повече от ъгъла случай. 911 00:37:08,210 --> 00:37:09,850 Дълго, дълго след десетичната запетая. 912 00:37:09,850 --> 00:37:12,035 Така че, ако не искате само един номер, който е този голям, 913 00:37:12,035 --> 00:37:14,160 искат по-голям брой, вие ще трябва да се определи до 914 00:37:14,160 --> 00:37:16,400 компютъра, че на определен размер. 915 00:37:16,400 --> 00:37:17,610 >> Така че нека да ощипвам това малко. 916 00:37:17,610 --> 00:37:20,610 Вместо просто трудно код в Дейвид, нека леко 917 00:37:20,610 --> 00:37:22,460 динамично кажа% S. 918 00:37:22,460 --> 00:37:25,790 Така че, сложи S%, което е контейнер за низ. 919 00:37:25,790 --> 00:37:30,500 После ме остави да правя запетая, а след това "Давид" тук. 920 00:37:30,500 --> 00:37:32,770 Сега това не е всичко че интелектуално интересно, 921 00:37:32,770 --> 00:37:35,060 защото всичко, което съм направил сега е наистина създава повече работа за 922 00:37:35,060 --> 00:37:35,790 на компютъра. 923 00:37:35,790 --> 00:37:39,660 Вместо да кажеш на компютъра, всичко това едновременно, аз съм сега 924 00:37:39,660 --> 00:37:43,760 казва направи това и го поставете низ тук в крайна сметка, запетая, 925 00:37:43,760 --> 00:37:44,950 тук е, че низ. 926 00:37:44,950 --> 00:37:47,220 Така че това не е по-голямо подобрение, но това е най-малко 927 00:37:47,220 --> 00:37:49,010 стъпка към по-интересна програма. 928 00:37:49,010 --> 00:37:51,240 Защото сега, позволете ми да отида напред и да направи този прозорец малко 929 00:37:51,240 --> 00:37:56,850 по-голям, позволете ми да отида напред и да тичам да здравей. 930 00:37:56,850 --> 00:38:01,340 И сега, / a.out не работи, защо? 931 00:38:03,880 --> 00:38:05,570 Добре, сега тя се нарича здрасти. 932 00:38:05,570 --> 00:38:09,400 Така че отново, а също и ехтя с-о, преименуван на 933 00:38:09,400 --> 00:38:11,120 програмата да бъде нещо по-интересно. 934 00:38:11,120 --> 00:38:13,060 И готово: сега се казва здравей Дейвид. 935 00:38:13,060 --> 00:38:14,590 >> Добре, още една глупава програма. 936 00:38:14,590 --> 00:38:18,070 Така че сега да се върна тук и да се въведе понятието 937 00:38:18,070 --> 00:38:18,810 на променливата. 938 00:38:18,810 --> 00:38:21,600 Не би ли било хубаво, ако мога да декларирате променлива 939 00:38:21,600 --> 00:38:23,150 , чийто тип е низ? 940 00:38:23,150 --> 00:38:26,720 И стойността на променливата всъщност идва от потребителя 941 00:38:26,720 --> 00:38:27,810 себе си. 942 00:38:27,810 --> 00:38:30,240 Така произволно, аз отивам да се обадя на променлива S, която е 943 00:38:30,240 --> 00:38:32,410 обща конвенция, когато имате една променлива, наречена 944 00:38:32,410 --> 00:38:33,250 низ. 945 00:38:33,250 --> 00:38:35,670 Отивам да направя знак за равенство, и тогава аз ще се обадя 946 00:38:35,670 --> 00:38:38,030 функция, наречена GetString. 947 00:38:38,030 --> 00:38:40,830 Така GetString не е нещо, което идва вграден в C. Това е 948 00:38:40,830 --> 00:38:43,330 функция, която CS50 екип е писал, наистина само за 949 00:38:43,330 --> 00:38:45,670 тези първи няколко седмици, за да се опрости процеса на 950 00:38:45,670 --> 00:38:49,450 приноса на потребителите и получаване на приноса на потребителите под формата 951 00:38:49,450 --> 00:38:51,960 на низове, или номера, както и такива. 952 00:38:51,960 --> 00:38:55,520 Така GetString е като ФОРМАТ, но очевидно, отколкото 953 00:38:55,520 --> 00:38:58,700 да го отпечатате ще направи това, което името му казва, низ. 954 00:38:58,700 --> 00:39:00,970 Но да използваш GetString, ние ще трябва да се направи промяна 955 00:39:00,970 --> 00:39:03,180 тук, отвъд това. 956 00:39:03,180 --> 00:39:07,170 Така интуитивно, тази програма, да се надяваме, е по някакъв начин да 957 00:39:07,170 --> 00:39:09,700 низ от потребителя, а след това какво ще направя 958 00:39:09,700 --> 00:39:11,460 с този символен низ, наречен S? 959 00:39:15,060 --> 00:39:16,470 Тя просто ще го отпечатате, нали? 960 00:39:16,470 --> 00:39:18,870 Все още не е стимулираща програма, защото всичко ще 961 00:39:18,870 --> 00:39:22,160 да направите, е да включите в тази стойност в където% е 962 00:39:22,160 --> 00:39:23,750 казва, че трябва да отида. 963 00:39:23,750 --> 00:39:25,290 >> Така че нека поне видим това в действие. 964 00:39:25,290 --> 00:39:27,040 Нека ме спаси и отдалечаване. 965 00:39:27,040 --> 00:39:30,280 Сега тук, в моя терминален прозорец малка част от една, 966 00:39:30,280 --> 00:39:32,760 нека отново правят здрасти. 967 00:39:32,760 --> 00:39:35,160 Добре, ах, по дяволите, аз имам един куп грешки. 968 00:39:35,160 --> 00:39:38,020 Нека превъртете нагоре, и ние виждаме нашата първа - 969 00:39:38,020 --> 00:39:40,430 така че нека действително да направите това в още по-голям прозорец, така че 970 00:39:40,430 --> 00:39:42,110 може да видите колко лошо се издъних - 971 00:39:42,110 --> 00:39:44,460 така че не Здравейте. 972 00:39:44,460 --> 00:39:46,540 Добре, това е катастрофа, нали? 973 00:39:46,540 --> 00:39:48,740 Съм написал три реда код, и 974 00:39:48,740 --> 00:39:50,070 ми даде 12 грешки. 975 00:39:50,070 --> 00:39:51,980 Така че, защо е това? 976 00:39:51,980 --> 00:39:55,720 Така че, за щастие, често, когато видите много, много грешки 977 00:39:55,720 --> 00:39:57,730 плюе наведнъж, това е наистина само защото сте 978 00:39:57,730 --> 00:39:59,760 бърка компютъра тук. 979 00:39:59,760 --> 00:40:02,330 И остава объркан от времето, става тук. 980 00:40:02,330 --> 00:40:04,400 И така, той просто започва да препъване, и се препъваше и 981 00:40:04,400 --> 00:40:07,310 плюе по-страшни неща, отколкото в действителност. 982 00:40:07,310 --> 00:40:10,120 Така че, като цяло, винаги започват с горната. 983 00:40:10,120 --> 00:40:13,320 >> Така най-най-най-например червено, 984 00:40:13,320 --> 00:40:14,740 съобщение за грешка е това. 985 00:40:14,740 --> 00:40:17,750 Използване на недекларирания идентификатор низ, съм 986 00:40:17,750 --> 00:40:19,160 означава стандарт в? 987 00:40:19,160 --> 00:40:19,900 Аз не го направих. 988 00:40:19,900 --> 00:40:24,180 Имах предвид стринг, но това е така, защото, думата низ 989 00:40:24,180 --> 00:40:26,020 , че продължите да използвате устно всъщност 990 00:40:26,020 --> 00:40:27,240 не съществува в C или. 991 00:40:27,240 --> 00:40:29,470 Това е нещо, което ние ще използваме само за първата седмица или две 992 00:40:29,470 --> 00:40:34,500 тук, но тя съществува в един файл, наречен cs50.h. 993 00:40:34,500 --> 00:40:37,110 Така че за сега, знам, че има тази друга библиотека 994 00:40:37,110 --> 00:40:39,330 екип е писал, така че е бил написан по-скоро от 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Но вътре на cs50.h е определение, синоним на 997 00:40:45,020 --> 00:40:48,310 видове, които създава тази дума низ. 998 00:40:48,310 --> 00:40:50,890 >> Така че сега да се върна на моя терминален прозорец. 999 00:40:50,890 --> 00:40:53,200 Отивам да изчистите цялата тази бъркотия от Ctrl-L. Ние просто ще 1000 00:40:53,200 --> 00:40:55,700 избършете всичко чисто, и аз ще отида напред и да направи 1001 00:40:55,700 --> 00:40:57,860 Здравейте отново, Enter. 1002 00:40:57,860 --> 00:40:59,440 Така че това, което се случи сега? 1003 00:40:59,440 --> 00:41:01,150 Сега всички тези грешки си отиде. 1004 00:41:01,150 --> 00:41:02,230 Така че това, което съм наистина направи? 1005 00:41:02,230 --> 00:41:05,920 Току-що научи, че компютърът, низ съществува, и това е 1006 00:41:05,920 --> 00:41:07,890 в този файл, наречен cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Така че спрете да се оплакват, защото сега знаят къде да намерят 1008 00:41:10,930 --> 00:41:13,220 декларация, че функцията, така да се каже. 1009 00:41:13,220 --> 00:41:15,200 Когато съществува в света. 1010 00:41:15,200 --> 00:41:18,820 >> Така че сега аз отивам да вървим напред и да работи здравей. 1011 00:41:18,820 --> 00:41:22,300 Струва ми се, че да има безкраен цикъл, нищо не се случва. 1012 00:41:25,530 --> 00:41:26,870 Така че аз трябва да напишете нещо тук, нали. 1013 00:41:26,870 --> 00:41:29,650 Първия ред от кода в моята програма е GetString. 1014 00:41:29,650 --> 00:41:31,750 Така че това е буквално ме чака да се получи низ. 1015 00:41:31,750 --> 00:41:33,680 Така че в този смисъл да, това е безкраен цикъл. 1016 00:41:33,680 --> 00:41:36,520 Очевидно в GetString е поведението по подразбиране, че ние 1017 00:41:36,520 --> 00:41:37,510 пише - персоналът - 1018 00:41:37,510 --> 00:41:39,550 че просто казва, чакаме и чакаме и чакаме и чакаме и чакаме, 1019 00:41:39,550 --> 00:41:42,550 , докато потребителят не ви дава низ от пишете нещо инча 1020 00:41:42,550 --> 00:41:46,000 Така че нека да вървим напред и тип в D-А-V - I-г, въведете. 1021 00:41:46,000 --> 00:41:47,420 И това е, здравей Дейвид. 1022 00:41:47,420 --> 00:41:50,430 >> Сега това изглежда като че ли е просто акт? 1023 00:41:50,430 --> 00:41:52,810 Нека вървим напред и въведете в Томи. 1024 00:41:52,810 --> 00:41:54,740 Въведете, добре, изглежда да се работи. 1025 00:41:54,740 --> 00:41:59,130 Работи за Роб, работи за Zamyla, работи добре. 1026 00:41:59,130 --> 00:42:01,000 Така че ще ходи да работи, най-вероятно. 1027 00:42:01,000 --> 00:42:05,030 Така че трябва да отпечатате каквото и да го дам, 1028 00:42:05,030 --> 00:42:07,830 и можем да бъдем малко трудно тук. 1029 00:42:07,830 --> 00:42:12,130 Да видим, ако ние не направим нещо подобно Здравейте. 1030 00:42:12,130 --> 00:42:18,000 Да отидете тук, нека да видим, копие, паста. 1031 00:42:18,000 --> 00:42:19,950 Аз няма да бъде в състояние да поставите, че много пъти тук. 1032 00:42:19,950 --> 00:42:24,410 Paste, добре, Shift + Ctrl + V. Така че това, което би могло 1033 00:42:24,410 --> 00:42:26,970 се случи, че е лошо тук? 1034 00:42:26,970 --> 00:42:27,770 >> Добре, така, segfaults. 1035 00:42:27,770 --> 00:42:29,710 Така че някои от вас с предишни произход ще знаят, че 1036 00:42:29,710 --> 00:42:32,710 като цяло, като компютри партиди на суровини, когато те са 1037 00:42:32,710 --> 00:42:36,140 вероятно не е трябвало да получават дълги имена като този - лошо 1038 00:42:36,140 --> 00:42:36,740 неща се случват. 1039 00:42:36,740 --> 00:42:39,230 Всъщност, в света на интернет, също това се случва доста малко, 1040 00:42:39,230 --> 00:42:41,000 , при която, когато сте проектиране на уеб сайт, когато сте 1041 00:42:41,000 --> 00:42:43,850 проектиране Facebook, вие трябва да направите произволни решения на 1042 00:42:43,850 --> 00:42:45,370 отпред, както и колко дълго ще продължи някой 1043 00:42:45,370 --> 00:42:46,360 Facebook потребителско име да бъде? 1044 00:42:46,360 --> 00:42:48,050 Или колко дълго ще първото име на някого? 1045 00:42:48,050 --> 00:42:50,110 Колко дълго ще телефонния номер на някого и др. 1046 00:42:50,110 --> 00:42:53,580 И ако програмистите правят лоши предположения, програми чупят 1047 00:42:53,580 --> 00:42:56,640 защото се опитате като им дава повече мощност, по-вход 1048 00:42:56,640 --> 00:42:58,330 по-скоро, отколкото те имат памет. 1049 00:42:58,330 --> 00:43:01,860 Или RAM разпределени за него, така че ако сега удари Въведете, 1050 00:43:01,860 --> 00:43:04,640 тази програма действително работи, защото бяхме в библиотеката 1051 00:43:04,640 --> 00:43:06,790 и ние всъщност очаква този конкретен случай. 1052 00:43:06,790 --> 00:43:10,900 Но безспорно този семестър, ще напише най-малко един 1053 00:43:10,900 --> 00:43:13,280 програма, която ще каже тези думи. 1054 00:43:13,280 --> 00:43:16,520 Запомни тази седмица от сега, може би два дни от сега. 1055 00:43:16,520 --> 00:43:18,760 Сегментация е виновен за нещо лошо. 1056 00:43:18,760 --> 00:43:21,920 Той се отнася да правиш нещо, което на компютъра 1057 00:43:21,920 --> 00:43:23,310 не очаквате. 1058 00:43:23,310 --> 00:43:25,810 И в този случай, като програмист, не е очаквала. 1059 00:43:25,810 --> 00:43:27,720 Много харесва това, което тази купчина чорапи, имаше различни 1060 00:43:27,720 --> 00:43:29,520 ъглови случаи бихме могли да са се сблъсквали. 1061 00:43:29,520 --> 00:43:32,340 По подобен начин в програми, ако не се предвидят колко време е 1062 00:43:32,340 --> 00:43:33,310 нечие име ще бъде. 1063 00:43:33,310 --> 00:43:35,890 Или какво, ако имам един злонамерен потребител, и името му е 1064 00:43:35,890 --> 00:43:37,230 всъщност е доста кратко, но те просто се опитваме 1065 00:43:37,230 --> 00:43:37,960 да се забъркваш с мен? 1066 00:43:37,960 --> 00:43:40,490 Какво ще бъде поведението на моята програма? 1067 00:43:40,490 --> 00:43:43,930 Е, в този случай, нещо, което всъщност може да се срине. 1068 00:43:43,930 --> 00:43:44,750 >> Така че нека да го направим. 1069 00:43:44,750 --> 00:43:46,860 90 минути, това е ужасно дълго време 1070 00:43:46,860 --> 00:43:47,780 да направят компютърни науки. 1071 00:43:47,780 --> 00:43:49,550 Защо не получите в навик на вземане на пет минути 1072 00:43:49,550 --> 00:43:51,520 почивка тук, и когато се върнем, ще се потопите в някои 1073 00:43:51,520 --> 00:43:53,430 по-сложни и завладяващи програми? 1074 00:43:53,430 --> 00:43:54,680 Пет минути. 1075 00:43:56,910 --> 00:43:58,160 >> Добре. 1076 00:44:01,138 --> 00:44:02,780 Така че един бърз коментар. 1077 00:44:02,780 --> 00:44:05,590 Казаха ми, че въпреки че това е на екрана, преди, какво 1078 00:44:05,590 --> 00:44:08,880 излезе от устата ми беше cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Това е правилно. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Така че сега можете да опитате RSVPing за това / обяд. 1081 00:44:16,030 --> 00:44:16,980 Но нека да направим това сега. 1082 00:44:16,980 --> 00:44:20,150 Така че това е супер бързо, супер нова за много хора. 1083 00:44:20,150 --> 00:44:21,560 Стара шапка за някои хора. 1084 00:44:21,560 --> 00:44:24,930 Така че нека назад само за миг, и да видим как се стигна до 1085 00:44:24,930 --> 00:44:29,350 тази здравей световното производство само преди миг. 1086 00:44:29,350 --> 00:44:31,780 >> Така че, на първо място, е това CS50 техника. 1087 00:44:31,780 --> 00:44:34,270 Отново, парче от софтуер, проблем 1 ще каже 1088 00:44:34,270 --> 00:44:36,610 как да го изтеглите, къде да го изтеглите, какво да кликнете 1089 00:44:36,610 --> 00:44:37,430 и така нататък. 1090 00:44:37,430 --> 00:44:39,670 И тогава, след като следвате тези инструкции, ще бъде в състояние 1091 00:44:39,670 --> 00:44:42,840 да увеличите вашия прозорец, и вашия Mac или PC ще изглежда 1092 00:44:42,840 --> 00:44:43,910 малко нещо подобно. 1093 00:44:43,910 --> 00:44:47,170 Черен фон, домашна папка в горната част, където всички 1094 00:44:47,170 --> 00:44:49,850 вашите файлове, една кофа за боклук в горния ляв, 1095 00:44:49,850 --> 00:44:51,130 меню в долната част. 1096 00:44:51,130 --> 00:44:54,010 Така че отново, доста подобни по дух на Mac OS или Windows, 1097 00:44:54,010 --> 00:44:56,040 въпреки че се случва да бъде Linux. 1098 00:44:56,040 --> 00:44:58,120 И така, какво е следващото? 1099 00:44:58,120 --> 00:44:59,580 Е, ние започва да пише програми. 1100 00:44:59,580 --> 00:45:02,260 И си спомняте от миналата седмица, че всичко необходимо, за да напишете 1101 00:45:02,260 --> 00:45:04,970 Програмата е обикновен текстов редактор, 1102 00:45:04,970 --> 00:45:06,550 като Notepad или TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Честно казано, дори можете да използвате Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Но лошите неща, в крайна сметка ще се случи, защото това е много 1105 00:45:11,170 --> 00:45:13,930 непохватни решение за написването на програмата, плюс това ще 1106 00:45:13,930 --> 00:45:15,400 да го запишете в грешен формат на файла. 1107 00:45:15,400 --> 00:45:18,150 Но това е просто текстов редактор, текстообработваща програма, всичко, което е 1108 00:45:18,150 --> 00:45:19,390 е необходимо да се напише програма. 1109 00:45:19,390 --> 00:45:23,420 >> Така че в уреда CS50, можем да направим това по един прост начин. 1110 00:45:23,420 --> 00:45:25,580 Ние можем само да кликнете върху тази икона в долния ляв. 1111 00:45:25,580 --> 00:45:28,790 И отново проблеми 1 ще ви посъветва за това, и готово - 1112 00:45:28,790 --> 00:45:31,210 можете да получите този черно-бял интерфейс, където можем да започнем 1113 00:45:31,210 --> 00:45:32,160 писане на код. 1114 00:45:32,160 --> 00:45:34,960 Така че нека започнем написването на супер проста програма отново. 1115 00:45:34,960 --> 00:45:38,890 Отивам да отидете до File, Save, и аз ще се обадя 1116 00:45:38,890 --> 00:45:42,870 това, нека кажем, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 И аз просто го казвам като кликнете върху jharvard, го 1118 00:45:45,410 --> 00:45:46,750 в своята домашна директория, не ми пука 1119 00:45:46,750 --> 00:45:47,980 когато това се отива. 1120 00:45:47,980 --> 00:45:49,090 И тогава Запиши. 1121 00:45:49,090 --> 00:45:50,880 И сега мога да започна да пиша моята програма. 1122 00:45:50,880 --> 00:45:53,560 И си спомням от по-рано, че аз трябва да пиша Int 1123 00:45:53,560 --> 00:45:55,400 главната (нищожна). 1124 00:45:55,400 --> 00:45:57,000 Увеличаване на горния ляв ъгъл. 1125 00:45:57,000 --> 00:46:02,670 И тогава искам да кажа, ФОРМАТ вземат две. 1126 00:46:02,670 --> 00:46:05,690 И сега един нов ред, в близост цитат, затворете 1127 00:46:05,690 --> 00:46:07,820 скоби, точка и запетая. 1128 00:46:07,820 --> 00:46:10,560 И тогава слизат тук, за да ми терминален прозорец, който е 1129 00:46:10,560 --> 00:46:12,840 вградени в Gedit, просто за удобство. 1130 00:46:12,840 --> 00:46:15,200 И аз ще отида напред и пишат направи здравей, но не 1131 00:46:15,200 --> 00:46:17,500 Здравейте сам, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Така че моето досие се нарича hello2.c. Моят файл следователно 1133 00:46:20,490 --> 00:46:23,510 трябва да се нарича hello2, в този случай. 1134 00:46:23,510 --> 00:46:26,490 По дяволите, какво съм направил погрешно? 1135 00:46:26,490 --> 00:46:29,490 Добре, така че аз ясно пропуснати линия, ако си спомняте какво 1136 00:46:29,490 --> 00:46:31,020 предишни програми изглеждат. 1137 00:46:31,020 --> 00:46:32,480 Но нека да видим дали не можем да дразни този апарт. 1138 00:46:32,480 --> 00:46:35,310 За съжаление, повечето хора, които пишат програмите, с които 1139 00:46:35,310 --> 00:46:38,820 пишем програми не се опростят нещата толкова добре. 1140 00:46:38,820 --> 00:46:41,520 Така че ние трябва да се вид на обезмаслено над това, което не прави 1141 00:46:41,520 --> 00:46:44,050 смисъл тук и да видим дали можем да разберем какво не е наред. 1142 00:46:44,050 --> 00:46:46,700 Най-горния ред казва, че ще имплицитно обявяване C 1143 00:46:46,700 --> 00:46:49,310 библиотека функция ФОРМАТ тип с вътр. 1144 00:46:49,310 --> 00:46:51,210 Добре, разбрах, част от това. 1145 00:46:51,210 --> 00:46:54,570 Но изглежда намеква за факта, че използва ФОРМАТ 1146 00:46:54,570 --> 00:46:55,700 погрешно, по някакъв начин. 1147 00:46:55,700 --> 00:46:56,930 И какъв смисъл не е наред? 1148 00:46:56,930 --> 00:46:59,970 Аз просто не се учат на компютъра, че е във файл 1149 00:46:59,970 --> 00:47:01,420 нарича stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Сега само трябва да запомните, че сега ФОРМАТ е 1151 00:47:04,120 --> 00:47:06,540 в stdio.h, и наистина ще има друга 1152 00:47:06,540 --> 00:47:08,900 функции в същия файл, че ние ще свикнем да. 1153 00:47:08,900 --> 00:47:12,490 >> Така че сега ме пусна напред и натиснете Ctrl-L само ясно, че 1154 00:47:12,490 --> 00:47:16,050 далеч, повторение hello2, и готово. 1155 00:47:16,050 --> 00:47:19,490 И тази команда отново, по-сложна, отколкото ще обясним за 1156 00:47:19,490 --> 00:47:20,520 днешните цели. 1157 00:47:20,520 --> 00:47:23,570 Но той не се управлява ехтя и ехтя изходния код и 1158 00:47:23,570 --> 00:47:24,870 изплюва 0s и 1s. 1159 00:47:24,870 --> 00:47:28,610 И 0s и 1s в този случай се наричат ​​какво? 1160 00:47:28,610 --> 00:47:29,470 Добре, обектния код. 1161 00:47:29,470 --> 00:47:32,210 И файла, че те са в, така се нарича, 1162 00:47:32,210 --> 00:47:33,820 hello2, в този случай. 1163 00:47:33,820 --> 00:47:37,040 Защото моят текстов файл hello2.c Enter. 1164 00:47:37,040 --> 00:47:39,820 И сега да вземе две удивителен знак, удивителен 1165 00:47:39,820 --> 00:47:41,880 точка, удивителен знак. 1166 00:47:41,880 --> 00:47:45,430 Добре, така че сега имаме способността да се получи струни, 1167 00:47:45,430 --> 00:47:46,280 очевидно. 1168 00:47:46,280 --> 00:47:48,190 Е, какво друго можем да получим от потребителите? 1169 00:47:48,190 --> 00:47:51,010 >> Добре в CS50 библиотека, има и други функции, които 1170 00:47:51,010 --> 00:47:53,300 ще да опростим живота си в тези първи няколко дни. 1171 00:47:53,300 --> 00:47:56,350 GetChar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Ами, нека да извади най-лесният от тях първи. 1174 00:47:59,550 --> 00:48:01,430 GetString буквално прави това. 1175 00:48:01,430 --> 00:48:04,210 Той просто седи там, чакайки на потребителя да въведете нещо в 1176 00:48:04,210 --> 00:48:07,170 и веднага след като напишете нещо и натиснете Enter, 1177 00:48:07,170 --> 00:48:08,860 прави нещо с тази стойност. 1178 00:48:08,860 --> 00:48:11,700 Така че нека да се върнем към този пример, за да видите какво точно 1179 00:48:11,700 --> 00:48:12,950 GetString прави. 1180 00:48:12,950 --> 00:48:17,445 Нека вървим напред и да се отворят в Gedit, hello.c, и припомни 1181 00:48:17,445 --> 00:48:20,590 че точно преди почивката, това е там, където бяхме. 1182 00:48:20,590 --> 00:48:23,240 >> Така че нека сега дразни освен в малко по-подробно. 1183 00:48:23,240 --> 00:48:27,190 Така че по линия 6, има две неща 1184 00:48:27,190 --> 00:48:28,450 случва в момента. 1185 00:48:28,450 --> 00:48:32,630 Знак за равенство се отделя първото полувреме и втората половина. 1186 00:48:32,630 --> 00:48:34,670 Така че на лявата страна на знака за равенство, ние сме 1187 00:48:34,670 --> 00:48:35,580 казва низ е. 1188 00:48:35,580 --> 00:48:37,580 И тогава, само мирянин условията, какво е низ е 1189 00:48:37,580 --> 00:48:41,040 правиш, мислиш ли? 1190 00:48:41,040 --> 00:48:42,990 Те създават в какво? 1191 00:48:42,990 --> 00:48:44,930 Така че това е низ, наречен S. 1192 00:48:44,930 --> 00:48:46,370 Сега какво всъщност означава това? 1193 00:48:46,370 --> 00:48:51,540 Е, това е запазване място за низ, наречен S. 1194 00:48:51,540 --> 00:48:52,490 Това не е съвсем така. 1195 00:48:52,490 --> 00:48:53,120 Какво е това? 1196 00:48:53,120 --> 00:48:55,400 Ами компютри, както знаете, имат твърди дискове, това е мястото, където 1197 00:48:55,400 --> 00:48:56,300 вашите файлове се съхраняват. 1198 00:48:56,300 --> 00:48:59,100 Компютри RAM, и това е мястото, където програмите са заредени 1199 00:48:59,100 --> 00:49:00,240 докато те се изпълняват. 1200 00:49:00,240 --> 00:49:02,470 Така че, когато щракнете двукратно върху иконата и Microsoft Word отваря 1201 00:49:02,470 --> 00:49:06,380 , Microsoft Word работи, така да се каже, RAM, което е 1202 00:49:06,380 --> 00:49:08,160 електронна част на вашия компютър. 1203 00:49:08,160 --> 00:49:10,660 Не физически, механичната част, която е предене, където 1204 00:49:10,660 --> 00:49:12,640 данни обикновено се съхраняват в дългосрочен план. 1205 00:49:12,640 --> 00:49:15,810 Така низ е доста много казва компютъра ми даде 1206 00:49:15,810 --> 00:49:18,150 достатъчно RAM, за да се вмести в низ. 1207 00:49:18,150 --> 00:49:20,450 Сега това е малко прекалено опростяване, защото 1208 00:49:20,450 --> 00:49:22,300 колко голяма е низ ще бъде? 1209 00:49:22,300 --> 00:49:24,410 Ами ние всъщност не знам все още, така че в следващите седмици да дойде 1210 00:49:24,410 --> 00:49:27,290 ние действително ще дръпне слой, който е низ и 1211 00:49:27,290 --> 00:49:28,510 ние ще ви кажа за какво става въпрос. 1212 00:49:28,510 --> 00:49:31,050 String, за сега, е просто хубава опростяване на нашия свят. 1213 00:49:31,050 --> 00:49:35,700 Но низ и декларира, низ, наречен S, за сега. 1214 00:49:35,700 --> 00:49:36,520 Обявява низ. 1215 00:49:36,520 --> 00:49:39,310 Запазва малко място в паметта за низ, потребителят е 1216 00:49:39,310 --> 00:49:40,150 за да въведете. 1217 00:49:40,150 --> 00:49:41,840 >> Сега нека погледнем в правото на знак за равенство. 1218 00:49:41,840 --> 00:49:44,110 Така се казва GetString (). 1219 00:49:44,110 --> 00:49:45,070 И малко здрав разум проверка. 1220 00:49:45,070 --> 00:49:47,940 Фактът, че няма нищо вътре в скобите 1221 00:49:47,940 --> 00:49:50,810 предполага какво да кажем за GetString? 1222 00:49:50,810 --> 00:49:52,180 Той не възприема аргументи. 1223 00:49:52,180 --> 00:49:55,290 Това е, че не може да повлияе на поведението му по какъвто и да е начин. 1224 00:49:55,290 --> 00:49:58,940 Всеки път, когато го използвате, ще получите низ и това е всичко. 1225 00:49:58,940 --> 00:50:02,210 От друга страна, ФОРМАТ, се надяваме, че поведението му прави 1226 00:50:02,210 --> 00:50:03,010 променя всеки път. 1227 00:50:03,010 --> 00:50:05,230 В противен случай, това е доста безполезен печат функция, ако 1228 00:50:05,230 --> 00:50:06,480 го прави едно и също нещо. 1229 00:50:06,480 --> 00:50:07,970 Ако тя винаги се отпечатва Давид или нещо подобно 1230 00:50:07,970 --> 00:50:09,500 произволно през цялото време. 1231 00:50:09,500 --> 00:50:11,540 Така ФОРМАТ има смисъл да има аргумент. 1232 00:50:11,540 --> 00:50:14,240 GetString не трябва наистина аргумент, защото исках 1233 00:50:14,240 --> 00:50:16,700 да се получи низ от потребителя и това е потребител, който ще 1234 00:50:16,700 --> 00:50:19,580 да предостави на динамика като напишете различни букви 1235 00:50:19,580 --> 00:50:20,850 всеки път в клавиатурата. 1236 00:50:20,850 --> 00:50:23,140 >> Така че това, което се GetString се в крайна сметка? 1237 00:50:23,140 --> 00:50:25,080 Мислете за него като за тази малка черна кутия. 1238 00:50:25,080 --> 00:50:29,340 И тази черна кутия не взема вход, но когато взрив на 1239 00:50:29,340 --> 00:50:33,240 него, да го изплюе низ, който потребителят е въвел инча 1240 00:50:33,240 --> 00:50:36,660 А фактът, че има знак за равенство означава вземе 1241 00:50:36,660 --> 00:50:39,890 това, което се изплюе в дясно и да го съхраните в 1242 00:50:39,890 --> 00:50:41,390 това, което е в ляво. 1243 00:50:41,390 --> 00:50:43,470 Така знак за равенство, то всъщност не означава 1244 00:50:43,470 --> 00:50:46,490 равенство, а по-скоро технически означава задача. 1245 00:50:46,490 --> 00:50:49,330 На стойността на правото, и го постави в 1246 00:50:49,330 --> 00:50:51,050 променлива в ляво. 1247 00:50:51,050 --> 00:50:52,820 Така че това е всичко, което се случва там. 1248 00:50:52,820 --> 00:50:55,640 >> Сега в линия 7, ние се обаждате ФОРМАТ. 1249 00:50:55,640 --> 00:50:58,170 Така ФОРМАТ надяваме се малко скучно до сега. 1250 00:50:58,170 --> 00:50:59,530 Така че да отпечатате форматиран низ. 1251 00:50:59,530 --> 00:51:00,440 Какво низ? 1252 00:51:00,440 --> 00:51:05,460 Печат ", ч-е-л-л-о,% S 1253 00:51:05,460 --> 00:51:07,840 \ N ". 1254 00:51:07,840 --> 00:51:10,470 Добре, така че това, което мога да искате да включите в% S? 1255 00:51:10,470 --> 00:51:12,960 Буквално, каквото и да се съхраняват в чл. 1256 00:51:12,960 --> 00:51:15,570 Така че в този случай, малко здрав разум проверка, колко аргументи 1257 00:51:15,570 --> 00:51:16,820 ФОРМАТ отнеме? 1258 00:51:19,860 --> 00:51:21,110 Добре, чух едно. 1259 00:51:23,840 --> 00:51:26,330 Чух отново. 1260 00:51:26,330 --> 00:51:27,730 Второ, чух две. 1261 00:51:27,730 --> 00:51:29,920 И как около три? 1262 00:51:29,920 --> 00:51:30,450 Добре, три? 1263 00:51:30,450 --> 00:51:30,930 Отлично. 1264 00:51:30,930 --> 00:51:33,170 Три възможни отговора, само един от тях е верен. 1265 00:51:33,170 --> 00:51:36,390 Така че аргументите отново повлияе на поведението на функция. 1266 00:51:36,390 --> 00:51:39,380 В миналото, ФОРМАТ е само един аргумент. 1267 00:51:39,380 --> 00:51:42,260 "Hello World" е единствен аргумент. 1268 00:51:42,260 --> 00:51:45,190 Въпреки това, сега, забележете, когато това запетаята. 1269 00:51:45,190 --> 00:51:49,600 Това запетая е извън цитат / кавички, което означава, 1270 00:51:49,600 --> 00:51:52,170 хей ФОРМАТ, тук идва втори аргумент. 1271 00:51:52,170 --> 00:51:54,240 >> Така запетаи в повечето езици за програмиране 1272 00:51:54,240 --> 00:51:57,300 отделни множество аргументи. 1273 00:51:57,300 --> 00:51:59,600 Така че отговорът тук определено не е един, защото 1274 00:51:59,600 --> 00:52:00,390 има запетая. 1275 00:52:00,390 --> 00:52:03,680 Толкова минимално, ФОРМАТ изглежда като две 1276 00:52:03,680 --> 00:52:04,940 аргументи това време. 1277 00:52:04,940 --> 00:52:07,050 Но възможността за подвеждащ въпрос тук е това, което 1278 00:52:07,050 --> 00:52:07,990 за този запетая? 1279 00:52:07,990 --> 00:52:11,260 Означава ли това, че всъщност има три аргумента? 1280 00:52:11,260 --> 00:52:13,820 Това, това и това. 1281 00:52:13,820 --> 00:52:18,820 Така че не, защото това запетая е вътре в кавичките, които 1282 00:52:18,820 --> 00:52:20,890 означава, че тя е наистина само естетиката на английски език. 1283 00:52:20,890 --> 00:52:23,180 Това няма нищо общо с броя на 1284 00:52:23,180 --> 00:52:24,890 аргументи в тази програма. 1285 00:52:24,890 --> 00:52:27,670 Така че това запетая е извън кавичките. 1286 00:52:27,670 --> 00:52:28,850 И тогава върне 0. 1287 00:52:28,850 --> 00:52:30,980 За сега нека просто на тази вяра за 1288 00:52:30,980 --> 00:52:34,460 днес, и просто знам, че когато се правят функции изпълнение 1289 00:52:34,460 --> 00:52:37,950 реда код, те по принцип трябва да върне някаква стойност. 1290 00:52:37,950 --> 00:52:42,010 В този случай, просто защото основният трябва да се върне Int 1291 00:52:42,010 --> 00:52:44,320 това е само начин на езика C работи. 1292 00:52:44,320 --> 00:52:47,040 >> Така, защото нищо не се обърка, се чувства като тази програма 1293 00:52:47,040 --> 00:52:49,960 добре, аз просто трудно кодирани в замяна 0. 1294 00:52:49,960 --> 00:52:52,980 Но за сметка на това и аз отивам да пиша това в псевдо код 1295 00:52:52,980 --> 00:52:55,020 сега, точно както Джоузеф когато направихме чорап 1296 00:52:55,020 --> 00:52:56,220 Например миналата седмица. 1297 00:52:56,220 --> 00:53:00,440 Ако нещо се обърка - това не е действителният код - са заминали 1298 00:53:00,440 --> 00:53:06,570 наред, след това се върнете, да речем, 1. 1299 00:53:06,570 --> 00:53:08,770 Else върне 0. 1300 00:53:08,770 --> 00:53:10,070 Така че това е мястото, където отиваме с това. 1301 00:53:10,070 --> 00:53:12,090 Това не е актуален C код, просто pseudocode. 1302 00:53:12,090 --> 00:53:14,010 Но това е начина, по който може да се върне 1303 00:53:14,010 --> 00:53:15,580 различните възможни стойности. 1304 00:53:15,580 --> 00:53:19,520 Но за сега аз съм просто ще да вървим напред и да върне 0. 1305 00:53:19,520 --> 00:53:24,410 Добре, всички въпроси до този момент по синтаксис, функционалност, 1306 00:53:24,410 --> 00:53:25,000 или нещо подобно? 1307 00:53:25,000 --> 00:53:26,280 Да, в гърба. 1308 00:53:26,280 --> 00:53:27,530 >> ПУБЛИКАТА: недоловим] 1309 00:53:30,510 --> 00:53:32,210 Дейвид Малан: Може ли да се говори малко по-силно? 1310 00:53:32,210 --> 00:53:34,325 Защо тази програма за връщане 0, и? 1311 00:53:34,325 --> 00:53:35,575 ПУБЛИКАТА: недоловим] 1312 00:53:39,910 --> 00:53:43,450 Дейвид Малан: О, това е защото имам мързелив, съжалявам. 1313 00:53:43,450 --> 00:53:48,290 Не добър академичен отговор върне 0. 1314 00:53:48,290 --> 00:53:52,690 Мога да вид спасят това, с думите, технически C, ако основната 1315 00:53:52,690 --> 00:53:55,900 изрично не връща стойност 0 ще бъдат върнати 1316 00:53:55,900 --> 00:53:57,730 автоматично за вас. 1317 00:53:57,730 --> 00:54:00,290 Кое е вярно, аз не съм просто прикрива. 1318 00:54:00,290 --> 00:54:03,270 Но, аз трябва да го направи по този начин. 1319 00:54:03,270 --> 00:54:05,250 Не интересна храна за вкъщи, отколкото, че освен моя грешка. 1320 00:54:05,250 --> 00:54:06,170 Да? 1321 00:54:06,170 --> 00:54:08,470 >> ПУБЛИКАТА: Обикновено, когато напишете невалидни, това означава, 1322 00:54:08,470 --> 00:54:10,770 не върне нещо. 1323 00:54:10,770 --> 00:54:11,420 Дейвид Малан: Правилно. 1324 00:54:11,420 --> 00:54:15,800 Ако вместо това, трябва да укажете пред името на функцията, 1325 00:54:15,800 --> 00:54:18,590 Например тук, нищожно, то функцията 1326 00:54:18,590 --> 00:54:20,480 не връща нищо. 1327 00:54:20,480 --> 00:54:25,210 И затова просто ще кажа, връщане или нищо, 1328 00:54:25,210 --> 00:54:26,730 и това ще бъде последователна. 1329 00:54:26,730 --> 00:54:27,750 И ние ще се върнем към това. 1330 00:54:27,750 --> 00:54:31,030 И точно FYI, един от улова с учене 1331 00:54:31,030 --> 00:54:33,450 програмиране в света, която има стотици книги и 1332 00:54:33,450 --> 00:54:36,180 стотици сайтове там е неизменно ще 1333 00:54:36,180 --> 00:54:38,220 виж различен синтаксис в различни книги 1334 00:54:38,220 --> 00:54:40,220 от различни хора. 1335 00:54:40,220 --> 00:54:42,100 Осъзнайте, ние ще направим всичко възможно в раздели и лекции да бъде 1336 00:54:42,100 --> 00:54:42,960 последователна. 1337 00:54:42,960 --> 00:54:46,660 Но понякога ще видите противоречиви синтаксис. 1338 00:54:46,660 --> 00:54:48,540 Така че, когато се съмнявате, просто попитайте. 1339 00:54:48,540 --> 00:54:51,100 И като цяло, ние ще се погрижим в лекции и секции, за да 1340 00:54:51,100 --> 00:54:53,710 почти винаги го представят по правилния начин. 1341 00:54:53,710 --> 00:54:56,070 И аз казвам почти винаги, защото пример в това отношение. 1342 00:54:56,070 --> 00:54:56,860 Други въпроси? 1343 00:54:56,860 --> 00:55:01,590 >> ПУБЛИКАТА:% съществува извън уреда? 1344 00:55:01,590 --> 00:55:03,710 Дейвид Малан: Има ли% S съществуват извън уреда? 1345 00:55:03,710 --> 00:55:04,180 Да. 1346 00:55:04,180 --> 00:55:07,760 Така% и трябва да се направи с C. Фактът, че ние го използвате, 1347 00:55:07,760 --> 00:55:10,290 уреда фундаментално няма нищо общо с 1348 00:55:10,290 --> 00:55:12,080 особености на езика, ние използваме. 1349 00:55:12,080 --> 00:55:15,990 Всъщност, миналата седмица, когато ние използвахме моя Мак, аз написах 1350 00:55:15,990 --> 00:55:17,160 C код на моя Mac. 1351 00:55:17,160 --> 00:55:20,020 Бих могъл да използвам% и на моя Mac, и можете да го използвате за 1352 00:55:20,020 --> 00:55:22,400 вашия Windows компютър, ако инсталирате компилатор, като 1353 00:55:22,400 --> 00:55:24,070 Visual Studio от Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Така% S. 1355 00:55:24,990 --> 00:55:27,860 Всичко, което правим днес в рамките на този прозорец трябва да 1356 00:55:27,860 --> 00:55:31,140 общо с C. И фундаментално нищо общо с 1357 00:55:31,140 --> 00:55:33,450 операционната система под въпрос. 1358 00:55:33,450 --> 00:55:35,900 От друга страна, черно и бяло терминален прозорец - когато 1359 00:55:35,900 --> 00:55:40,160 Съм да пишете такива неща ли, и RM, и CD - 1360 00:55:40,160 --> 00:55:42,020 че има нещо общо с операционната система и 1361 00:55:42,020 --> 00:55:43,562 навигацията наоколо. 1362 00:55:43,562 --> 00:55:44,546 Да. 1363 00:55:44,546 --> 00:55:46,520 АУДИТОРИЯ: Имах предвид библиотека, CS50 библиотека. 1364 00:55:46,520 --> 00:55:49,960 Дейвид Малан: Добре, така че ако искаш да кажеш дума низ, че 1365 00:55:49,960 --> 00:55:52,460 съществува само в библиотеката CS50, правилно. 1366 00:55:52,460 --> 00:55:55,350 Това не съществува в C себе си, а и в няколко 1367 00:55:55,350 --> 00:55:58,220 седмици ще изхвърлите CS50 библиотека и да започне 1368 00:55:58,220 --> 00:56:02,290 правене на нещата от нулата себе си, така да се каже. 1369 00:56:02,290 --> 00:56:02,940 Други въпроси? 1370 00:56:02,940 --> 00:56:04,577 Да. 1371 00:56:04,577 --> 00:56:05,827 >> ПУБЛИКАТА: недоловим] 1372 00:56:09,470 --> 00:56:10,160 Дейвид Малан: Добър въпрос. 1373 00:56:10,160 --> 00:56:11,720 Команди малки и главни букви? 1374 00:56:11,720 --> 00:56:13,710 И нека ме направи разграничение. 1375 00:56:13,710 --> 00:56:15,840 Така команди са нещата, които ще напиша в 1376 00:56:15,840 --> 00:56:17,940 долната част на прозореца, в терминален прозорец. 1377 00:56:17,940 --> 00:56:21,770 Всичко тук би било изявления или C код. 1378 00:56:21,770 --> 00:56:24,490 Но и в двата случая отговорът е един и същ, да. 1379 00:56:24,490 --> 00:56:27,800 И двете тези среди код C в горната и 1380 00:56:27,800 --> 00:56:29,910 онлайн система команда в 1381 00:56:29,910 --> 00:56:31,440 дъно, са чувствителни. 1382 00:56:31,440 --> 00:56:33,830 Така че трябва да се възползва GetString с капитал G, 1383 00:56:33,830 --> 00:56:37,050 капитал S. Вие трябва да напишете ФОРМАТ във всички малки букви. 1384 00:56:37,050 --> 00:56:39,520 Вие трябва да напишете ли във всички малки букви. 1385 00:56:39,520 --> 00:56:43,260 Така че в почти всяка ситуация, този семестър, случай, в 1386 00:56:43,260 --> 00:56:44,820 Всъщност, значение. 1387 00:56:44,820 --> 00:56:46,148 Да. 1388 00:56:46,148 --> 00:56:47,398 >> ПУБЛИКАТА: недоловим] 1389 00:56:54,770 --> 00:56:56,480 Дейвид Малан: Ах, толкова добре, какво ще стане, ако имахме файл 1390 00:56:56,480 --> 00:56:57,840 нарича hello.d. 1391 00:56:57,840 --> 00:57:00,090 Така се оказва, D е език за програмиране. 1392 00:57:00,090 --> 00:57:02,790 И така, в някои случаи, в действителност може да се напише програма на 1393 00:57:02,790 --> 00:57:06,190 този файл и да го съставя, че в модата. 1394 00:57:06,190 --> 00:57:09,090 Ние можем и всъщност Краткият отговор е, аз не знам. 1395 00:57:09,090 --> 00:57:10,440 Така че ние ще направим това. 1396 00:57:10,440 --> 00:57:13,040 Нека вървим напред и да се създаде нов файл. 1397 00:57:13,040 --> 00:57:15,580 И спин тук, честно казано като цяло, е, когато всякакво съмнение 1398 00:57:15,580 --> 00:57:18,130 този семестър, а вие имате вашия уред или компютър 1399 00:57:18,130 --> 00:57:20,030 отворите, давай напред и да опитам нещо. 1400 00:57:20,030 --> 00:57:23,740 Така че аз отивам да запишете файл, наречен hello.d. 1401 00:57:23,740 --> 00:57:25,010 Запази това. 1402 00:57:25,010 --> 00:57:29,070 И аз отивам да тече здравей Въведете. 1403 00:57:29,070 --> 00:57:31,660 Изглеждаше да се направи извод, че в по-вероятно 1404 00:57:31,660 --> 00:57:35,920 от г, в този случай. 1405 00:57:35,920 --> 00:57:38,046 Други въпроси. 1406 00:57:38,046 --> 00:57:40,456 Да. 1407 00:57:40,456 --> 00:57:41,706 >> ПУБЛИКАТА: недоловим] 1408 00:57:48,170 --> 00:57:49,837 Дейвид Малан: Добре, да кажем, че още веднъж. 1409 00:57:49,837 --> 00:57:51,087 ПУБЛИКАТА: недоловим] 1410 00:58:04,250 --> 00:58:05,780 Дейвид Малан: Как бихте отишли ​​за диагностициране на това или 1411 00:58:05,780 --> 00:58:06,380 отстраняване? 1412 00:58:06,380 --> 00:58:08,800 Така че най-вероятно, защото те са различни езици, 1413 00:58:08,800 --> 00:58:10,280 най-вероятно ще получи напълно 1414 00:58:10,280 --> 00:58:11,580 друга програма изведен. 1415 00:58:11,580 --> 00:58:14,140 Вие ще получите напълно различни съобщения за грешка. 1416 00:58:14,140 --> 00:58:16,750 И също така само по отношение на дизайна, ще може би е 1417 00:58:16,750 --> 00:58:19,140 лош дизайн решение да се пише две различни 1418 00:58:19,140 --> 00:58:21,510 езици с почти идентично име файлове, в 1419 00:58:21,510 --> 00:58:23,000 точно същата директория, като се използва 1420 00:58:23,000 --> 00:58:24,550 автоматичен инструмент като направи. 1421 00:58:24,550 --> 00:58:27,750 Така че аз също може да бъде отблъснат и да кажа, през последните 15 години за правене на това, 1422 00:58:27,750 --> 00:58:29,190 никога не прави тази грешка. 1423 00:58:29,190 --> 00:58:30,030 Може да се случи. 1424 00:58:30,030 --> 00:58:31,190 Но има само различни, мисля, 1425 00:58:31,190 --> 00:58:33,180 логистични защита на място. 1426 00:58:33,180 --> 00:58:35,440 Плюс съобщения за грешки, които биха настъпили, това би 1427 00:58:35,440 --> 00:58:37,260 в крайна сметка разкрие какъв е проблемът. 1428 00:58:37,260 --> 00:58:39,120 Но възможен ъгъл случай. 1429 00:58:39,120 --> 00:58:41,730 >> Добре, така че нека се въведе само за няколко други 1430 00:58:41,730 --> 00:58:45,600 функции тук, така че ние може да започне изграждането на повече 1431 00:58:45,600 --> 00:58:47,140 и по-сложна програма. 1432 00:58:47,140 --> 00:58:49,000 Така че, на първо място, математика. 1433 00:58:49,000 --> 00:58:51,520 Математика примери са просто вид на лесно в първата седмица. 1434 00:58:51,520 --> 00:58:53,560 Това не е да се каже, че всички програми е около 1435 00:58:53,560 --> 00:58:54,390 математика. 1436 00:58:54,390 --> 00:58:57,890 Разбира се, разбирането на различните характеристики на 1437 00:58:57,890 --> 00:58:59,610 математика, алгебра, в частност, е 1438 00:58:59,610 --> 00:59:00,330 доста от значение тук. 1439 00:59:00,330 --> 00:59:03,010 В по-горните класове, ниво CS, линейна алгебра, 1440 00:59:03,010 --> 00:59:03,920 смятане, както и други подобни. 1441 00:59:03,920 --> 00:59:06,500 Но да реализираме повечето от това, което ние ще направим този семестър не намалява 1442 00:59:06,500 --> 00:59:09,230 математика, и със сигурност не за аритметика, сама по себе си, но наистина 1443 00:59:09,230 --> 00:59:11,570 само логика и внимателно мислене. 1444 00:59:11,570 --> 00:59:14,310 И така тази връзка, че компютърната наука отдавна имали 1445 00:59:14,310 --> 00:59:16,570 особено на гимназиално ниво, с математиката, е 1446 00:59:16,570 --> 00:59:17,370 малко подвеждащо. 1447 00:59:17,370 --> 00:59:20,090 Тъй като по-голямата част от програмите, които ще пишем, наистина, са 1448 00:59:20,090 --> 00:59:23,290 нещо на по-високо ниво и се съсредоточи върху решаването на проблемите, че 1449 00:59:23,290 --> 00:59:26,410 разбира се, може да използвате някои събиране, изваждане, както и различни 1450 00:59:26,410 --> 00:59:28,650 математически формули или други подобни, 1451 00:59:28,650 --> 00:59:30,860 но в края на деня, това е за мислене, а не 1452 00:59:30,860 --> 00:59:33,240 само изпълнението на това, което може да направи като TI 1453 00:59:33,240 --> 00:59:35,050 калкулатор в гимназията. 1454 00:59:35,050 --> 00:59:38,410 >> Така че с това каза, нека сега направим нещо с тях 1455 00:59:38,410 --> 00:59:40,980 математически оператори, които не съществуват, така че можем пътуване 1456 00:59:40,980 --> 00:59:43,950 над някои от основните аспекти на програмирането, или в 1457 00:59:43,950 --> 00:59:48,930 този случай В. Така че, като CS50 библиотека предложи, 1458 00:59:48,930 --> 00:59:51,520 и днес ние сме само с помощта на GetString и в един момент 1459 00:59:51,520 --> 00:59:52,940 може би една друга функция - 1460 00:59:52,940 --> 00:59:55,380 но има различни типове данни в компютъра. 1461 00:59:55,380 --> 00:59:58,550 В края на деня, компютри знам само 0s и 1s. 1462 00:59:58,550 --> 01:00:01,880 Но припомни, че миналата седмица говорихме за двоична система 1463 01:00:01,880 --> 01:00:05,000 в представителството на номера, като номер 0 и 1, и 2, 1464 01:00:05,000 --> 01:00:07,480 по целия път до 8, като във видео Нейт. 1465 01:00:07,480 --> 01:00:08,840 И тогава можем да разчитаме много по-висока, тъй като ние 1466 01:00:08,840 --> 01:00:10,000 на сцената тук. 1467 01:00:10,000 --> 01:00:15,660 Но ако искате да представляват не само номера, но писма, 1468 01:00:15,660 --> 01:00:18,240 ние, хората, трябва да излезе с някаква произволна 1469 01:00:18,240 --> 01:00:21,180 конвенции, при който, ако в края на деня всичко на моя компютър 1470 01:00:21,180 --> 01:00:24,260 е способността да изразиш 0s и 1s, бяхме по-добре 1471 01:00:24,260 --> 01:00:27,990 стандартизиране модели на 0s и 1s, които представляват 1472 01:00:27,990 --> 01:00:28,800 различни неща. 1473 01:00:28,800 --> 01:00:32,370 Модел на 0s и 1s, който представлява писмо. 1474 01:00:32,370 --> 01:00:34,840 Модели на 0s и 1s, които представляват буквата Z. 1475 01:00:34,840 --> 01:00:37,600 Модели на 0s и 1s, които представляват синия цвят, или 1476 01:00:37,600 --> 01:00:38,600 червено, или нещо подобно. 1477 01:00:38,600 --> 01:00:42,360 Трябва да използваме всички тези 0s и 1s да изразим себе си в 1478 01:00:42,360 --> 01:00:45,140 различни контексти, по различни начини, които не са 1479 01:00:45,140 --> 01:00:46,470 непременно цифрова. 1480 01:00:46,470 --> 01:00:51,150 >> Така че по отношение на представителството, C има различни типове данни, 1481 01:00:51,150 --> 01:00:52,550 и видяхме една от тях досега. 1482 01:00:52,550 --> 01:00:54,940 Видяхме ПНА, и забележете, това, което не е на екрана 1483 01:00:54,940 --> 01:00:56,140 точно сега е низ. 1484 01:00:56,140 --> 01:00:58,550 String не, в действителност съществува в C. Отново, това е 1485 01:00:58,550 --> 01:01:00,610 опростяване сме представя за първи път 1486 01:01:00,610 --> 01:01:01,570 няколко седмици. 1487 01:01:01,570 --> 01:01:03,770 Чар е индивидуален характер. 1488 01:01:03,770 --> 01:01:07,050 Плувка е реално число, с десетична точка и номера на 1489 01:01:07,050 --> 01:01:09,066 вляво и вдясно от нея. 1490 01:01:09,066 --> 01:01:16,040 Двойно е това, за тези с назад преди фон? 1491 01:01:16,040 --> 01:01:19,720 Така че двойно е два пъти нещо. 1492 01:01:19,720 --> 01:01:21,240 Добавя два пъти по-голяма прецизност. 1493 01:01:21,240 --> 01:01:22,440 И така, какво означава това? 1494 01:01:22,440 --> 01:01:26,090 Така че във всеки от тези случаи, в света има вид на стандартизиран 1495 01:01:26,090 --> 01:01:27,960 колко бита се използват за представяне 1496 01:01:27,960 --> 01:01:29,160 всяка от тези неща. 1497 01:01:29,160 --> 01:01:31,590 Така че, ако сте гледали ASCII видео Нейт вече за част 1498 01:01:31,590 --> 01:01:36,170 pset 0 или по-късно тази седмица ще ви вероятно ще знаят 1499 01:01:36,170 --> 01:01:37,450 че ASCII - 1500 01:01:37,450 --> 01:01:38,610 характер представителства - 1501 01:01:38,610 --> 01:01:40,670 Колко бита? 1502 01:01:40,670 --> 01:01:43,410 И може би дори да си спомня от нашата демонстрация миналата седмица за това как 1503 01:01:43,410 --> 01:01:45,500 много хора бяха на сцената. 1504 01:01:45,500 --> 01:01:46,840 Така че седем или осем, обикновено. 1505 01:01:46,840 --> 01:01:49,230 Така че принципно 8, а има и нещо, наречено като удължен 1506 01:01:49,230 --> 01:01:51,240 ASCII, която използва всички 8 бита, вместо на 7. 1507 01:01:51,240 --> 01:01:54,710 Но като цяло, ние говорим в правомощията на две, така че в този случай, 8. 1508 01:01:54,710 --> 01:01:58,900 Така че един знак в един език за програмиране обикновено е 8 бита. 1509 01:01:58,900 --> 01:02:02,550 Така че едно число е 32 бита. 1510 01:02:02,550 --> 01:02:04,810 Поплавък обикновено е 32 бита. 1511 01:02:04,810 --> 01:02:08,060 Двойно по принцип е 64 бита. 1512 01:02:08,060 --> 01:02:08,870 И какво означава това? 1513 01:02:08,870 --> 01:02:11,500 Това означава, че може да представлява по-големи числа, или в случай 1514 01:02:11,500 --> 01:02:15,490 на реалните числа, можете да получите много повече номера след 1515 01:02:15,490 --> 01:02:16,240 знак след десетичната запетая. 1516 01:02:16,240 --> 01:02:18,980 Много по-голяма точност, в този случай. 1517 01:02:18,980 --> 01:02:21,780 Сега много дълго е за съжаление име. 1518 01:02:21,780 --> 01:02:24,340 Така че има едно цяло число, което е 32 бита. 1519 01:02:24,340 --> 01:02:29,800 Налице е дълъг, което е, Не, 32 бита. 1520 01:02:29,800 --> 01:02:32,610 И много дълго, което е 64 бита. 1521 01:02:32,610 --> 01:02:34,830 Въпреки това някои от тях са зависи от контекста, то зависи 1522 01:02:34,830 --> 01:02:36,190 какъв компютър имате. 1523 01:02:36,190 --> 01:02:40,510 Така че, като цяло, ние ще посочите в домашна работа или в тест, когато 1524 01:02:40,510 --> 01:02:41,180 всъщност има значение. 1525 01:02:41,180 --> 01:02:43,080 Но въпросът е, че има всички тези различни 1526 01:02:43,080 --> 01:02:44,250 представителства тук. 1527 01:02:44,250 --> 01:02:45,950 >> Така че нека да се потопите в една програма. 1528 01:02:45,950 --> 01:02:48,300 Вместо да напиша това един от нулата, нека вървим напред 1529 01:02:48,300 --> 01:02:50,940 и да се отворят от изходния код днес - всичко, което е 1530 01:02:50,940 --> 01:02:54,980 онлайн - ако искате да калайджия наоколо онлайн, или възвръщаемост на 1531 01:02:54,980 --> 01:02:57,120 Сряда с уреда на вашия компютър, инструкции 1532 01:02:57,120 --> 01:02:59,160 , за която ще свърже на началната страница на курса. 1533 01:02:59,160 --> 01:03:00,830 Тук е супер проста програма. 1534 01:03:00,830 --> 01:03:02,520 Но имам малко нещо ново в горната 1535 01:03:02,520 --> 01:03:03,650 не сме имали преди. 1536 01:03:03,650 --> 01:03:05,800 Един куп сини линии на текст. 1537 01:03:05,800 --> 01:03:08,410 Така че тези сини линии представляват коментари. 1538 01:03:08,410 --> 01:03:10,620 Така че това е доста полезна програма, която да бъде в състояние да пиша 1539 01:03:10,620 --> 01:03:13,160 някои коментари за себе си, или на колеги или приятели, или 1540 01:03:13,160 --> 01:03:15,700 преподаване събратя, този вид описват какво се случва в 1541 01:03:15,700 --> 01:03:18,500 този файл, но нямат нищо общо с C самия код. 1542 01:03:18,500 --> 01:03:20,860 Няма нищо общо с програмата функционално, това е просто 1543 01:03:20,860 --> 01:03:21,760 естетика. 1544 01:03:21,760 --> 01:03:24,580 Така че начина, по който правят това в C е, че обикновено започват 1545 01:03:24,580 --> 01:03:29,860 коментари с / * и в крайна коментари 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 И ако сте наистина анален и да изготви сортиране на снимки, 1548 01:03:34,140 --> 01:03:35,870 тогава ще се сложи един куп звезди, щеше да направи 1549 01:03:35,870 --> 01:03:36,970 малка кутия като тази. 1550 01:03:36,970 --> 01:03:37,990 Но няма значение. 1551 01:03:37,990 --> 01:03:40,230 Единственото нещо, което има значение е самото начало 1552 01:03:40,230 --> 01:03:41,620 и последния. 1553 01:03:41,620 --> 01:03:43,820 Това е, което се нарича мулти-лайн коментар. 1554 01:03:43,820 --> 01:03:46,610 И това е просто човешка конвенция за често правят звездите и кутия 1555 01:03:46,610 --> 01:03:48,420 неща като това, ако имате много свободно време. 1556 01:03:48,420 --> 01:03:51,550 >> Така че, след като съм писал в някои коментари, като цяло, хайде 1557 01:03:51,550 --> 01:03:53,160 действителните смелостта на програмата. 1558 01:03:53,160 --> 01:03:55,630 Това е познатата ни # включват . 1559 01:03:55,630 --> 01:04:00,410 И само бързо, това е необходимо или не е необходимо? 1560 01:04:00,410 --> 01:04:02,860 АУДИТОРИЯ: необходимо. 1561 01:04:02,860 --> 01:04:04,390 Дейвид Малан: Така че това всъщност не е необходимо. 1562 01:04:04,390 --> 01:04:07,070 Така че защо, обаче, не е необходимо? 1563 01:04:07,070 --> 01:04:08,170 Така че няма ФОРМАТ. 1564 01:04:08,170 --> 01:04:08,510 Наистина е така. 1565 01:04:08,510 --> 01:04:10,470 Всичко, което правим в тази програма е математиката. 1566 01:04:10,470 --> 01:04:11,640 Така че аз всъщност може да изтриете това. 1567 01:04:11,640 --> 01:04:14,330 Така че не винаги трябва да включва каквото и да било 1568 01:04:14,330 --> 01:04:15,420 в началото на програмата. 1569 01:04:15,420 --> 01:04:17,020 >> Така че нека да се опрости това малко. 1570 01:04:17,020 --> 01:04:18,650 И сега забележете какво прави тази програма. 1571 01:04:18,650 --> 01:04:19,920 Не много на интереси. 1572 01:04:19,920 --> 01:04:21,410 Int х = 1. 1573 01:04:21,410 --> 01:04:22,550 Е, какво е това? 1574 01:04:22,550 --> 01:04:25,130 Е, мисля, че обратно на мисловен модел от преди. 1575 01:04:25,130 --> 01:04:27,500 Лявата страна на този израз какво прави? 1576 01:04:31,440 --> 01:04:32,830 Създаване на пространство за цяло число. 1577 01:04:32,830 --> 01:04:33,930 Така че колко пространство? 1578 01:04:33,930 --> 01:04:36,980 Е, ние се случи да знаете, че това е 32 бита. 1579 01:04:36,980 --> 01:04:40,070 Преди това низ е технически 32 бита, но по- 1580 01:04:40,070 --> 01:04:40,950 за в бъдеще. 1581 01:04:40,950 --> 01:04:42,240 Но число е 32 бита. 1582 01:04:42,240 --> 01:04:45,590 Така че този израз на ляво тук, вътр х просто казва, хей 1583 01:04:45,590 --> 01:04:48,490 операционната система, дай ми 32 бита на RAM - 1584 01:04:48,490 --> 01:04:50,450 иначе известни като 4 байта RAM - 1585 01:04:50,450 --> 01:04:53,930 , така че да може да се сложи цяло число в това пространство. 1586 01:04:53,930 --> 01:04:55,330 Какво число искате да сложите? 1587 01:04:55,330 --> 01:04:56,640 Ами, просто номер 1. 1588 01:04:56,640 --> 01:04:59,530 INT г. получава две, не точно същото нещо, въпреки че 1589 01:04:59,530 --> 01:05:02,160 брой е по-голям, по отношение на големината му. 1590 01:05:02,160 --> 01:05:04,790 Самият брой все още е само на 32 бита. 1591 01:05:04,790 --> 01:05:06,520 Това е просто модел на битовете е различен 1592 01:05:06,520 --> 01:05:08,260 са 1 срещу 2. 1593 01:05:08,260 --> 01:05:11,980 INT Z сега казва, дай ми още 32 бита, го наричат ​​Z, и сложи 1594 01:05:11,980 --> 01:05:14,210 сумиране на 1 и 2 там. 1595 01:05:14,210 --> 01:05:18,050 Така че сега щ е вероятно съхраняване на стойност 3, 1596 01:05:18,050 --> 01:05:19,360 и после се върнете 0. 1597 01:05:19,360 --> 01:05:23,020 >> Сега тази програма, има ли нещо интересно? 1598 01:05:23,020 --> 01:05:26,170 Така че това всъщност не прави нищо интересно, във всеки 1599 01:05:26,170 --> 01:05:28,450 смисъл, защото защо? Това прави малко математика. 1600 01:05:28,450 --> 01:05:30,590 Но това не е връщане на отговор, нали. 1601 01:05:30,590 --> 01:05:31,790 Това е връщане 0. 1602 01:05:31,790 --> 01:05:33,440 Това не е отпечатването на отговор. 1603 01:05:33,440 --> 01:05:35,760 Така че тази програма е фундаментално безполезно, тъй като 1604 01:05:35,760 --> 01:05:36,350 стои сега. 1605 01:05:36,350 --> 01:05:37,220 Той върши някаква работа. 1606 01:05:37,220 --> 01:05:39,530 Това ще отнеме известен брой секунди, или микросекунди, за да 1607 01:05:39,530 --> 01:05:41,510 тичам, но това не е всъщност прави нищо 1608 01:05:41,510 --> 01:05:42,770 полезно за човека. 1609 01:05:42,770 --> 01:05:46,810 >> Така че нека всъщност вече е отворен math2, където сега аз всъщност съм 1610 01:05:46,810 --> 01:05:48,250 печат на резултата. 1611 01:05:48,250 --> 01:05:51,260 Така че това също може да се изведе от нашите предишни примери. 1612 01:05:51,260 --> 01:05:54,320 Ако аз искам да направя някои прости математика, вътр х = 1, Y 1613 01:05:54,320 --> 01:05:56,820 = 2. Z е 1 плюс 2. 1614 01:05:56,820 --> 01:05:59,240 Какво е това да отпечатате очевидно? 1615 01:05:59,240 --> 01:06:00,120 Само 3. 1616 01:06:00,120 --> 01:06:01,590 Толкова бързо здравия разум проверка. 1617 01:06:01,590 --> 01:06:03,830 Позволете ми да се движи в тази директория. 1618 01:06:03,830 --> 01:06:06,480 Така CD source1m. 1619 01:06:06,480 --> 01:06:09,370 Нека вървим напред и въведете направи math2. 1620 01:06:09,370 --> 01:06:11,510 Съобщения за грешка, така че нека да тичам - 1621 01:06:11,510 --> 01:06:14,800 a.out-нека тичаме math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 И наистина, отпечатани 3. 1623 01:06:16,750 --> 01:06:18,460 Ами нека да разгледаме вариант на този. 1624 01:06:18,460 --> 01:06:23,870 В math3.c, сега ние имаме този пример тук. 1625 01:06:23,870 --> 01:06:26,540 >> Така че това е нещо интересно. 1626 01:06:26,540 --> 01:06:32,000 Така че в този тук, отговор ще получите 1 делено на 10, 1627 01:06:32,000 --> 01:06:33,910 и забележите, съм я обяви като плаващо. 1628 01:06:33,910 --> 01:06:35,200 Защо искам да бъде с плаваща запетая? 1629 01:06:35,200 --> 01:06:36,110 Е, това е една малка част. 1630 01:06:36,110 --> 01:06:37,140 Това ще бъде реално число. 1631 01:06:37,140 --> 01:06:40,970 Така че това ще бъде 0.1, надявам се - 10%, в този случай. 1632 01:06:40,970 --> 01:06:42,610 И какво искате да разпечатате? 1633 01:06:42,610 --> 01:06:43,440 Е, този отговор. 1634 01:06:43,440 --> 01:06:44,760 Ами, нека да дразни тези освен първата. 1635 01:06:44,760 --> 01:06:47,020 Така че на лявата страна, обяви 1636 01:06:47,020 --> 01:06:49,410 плува, да го наречем отговори. 1637 01:06:49,410 --> 01:06:52,280 От дясната страна, 1 делено на 10 и да сложи 1638 01:06:52,280 --> 01:06:54,370 отговори вътрешността на променливата. 1639 01:06:54,370 --> 01:06:56,410 Сега, тази линия изглежда малко по-загадъчен. 1640 01:06:56,410 --> 01:06:59,440 Но забележите някои познати функции. % Означава, тук идва 1641 01:06:59,440 --> 01:07:00,490 контейнера. 1642 01:07:00,490 --> 01:07:03,230 е тук означава стойност с плаваща запетая, просто истински 1643 01:07:03,230 --> 01:07:05,490 номер, нещо с десетична запетая. 1644 01:07:05,490 --> 01:07:07,330 0.2 какво означава? 1645 01:07:07,330 --> 01:07:10,740 Някой знае ли от предишен опит? 1646 01:07:10,740 --> 01:07:12,010 Два знака след десетичната запетая. 1647 01:07:12,010 --> 01:07:14,050 Така че не съм виждал това преди, но това е просто начин на 1648 01:07:14,050 --> 01:07:16,360 упражняване на малко по-голям контрол над ФОРМАТ и 1649 01:07:16,360 --> 01:07:20,840 поговорка, не ми дават 30 точки след десетичната запетая, 1650 01:07:20,840 --> 01:07:22,490 вместо да ми даде само два. 1651 01:07:22,490 --> 01:07:23,960 >> И след това да вървим напред и да стартирате тази. 1652 01:07:23,960 --> 01:07:30,160 Така че направете математика 3, а сега нека тичаме математика 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 И това не е точно така. 1654 01:07:34,630 --> 01:07:37,390 Ние изглежда да са се натъкнали първата ни истинска бъг. 1655 01:07:37,390 --> 01:07:39,400 Е, може би просто не съм достатъчно близо. 1656 01:07:39,400 --> 01:07:41,960 Така че нека отида тук, и нека ме постави на 20 знак след десетичната 1657 01:07:41,960 --> 01:07:43,300 точка места там. 1658 01:07:43,300 --> 01:07:47,950 И нека ми съставят това, math3, бягай. 1659 01:07:47,950 --> 01:07:50,960 Сигурен, че 1 делено на 10, не е 0. 1660 01:07:50,960 --> 01:07:54,270 И така, какво става? 1661 01:07:54,270 --> 01:07:56,740 Е добре, така че всъщност не трябва да правя с това. 1662 01:07:56,740 --> 01:07:57,600 Това е една добра мисъл. 1663 01:07:57,600 --> 01:07:59,140 Това наистина е просто съвпадение 1664 01:07:59,140 --> 01:08:00,220 това, което правим. 1665 01:08:00,220 --> 01:08:02,010 Но само за да докаже, че това не е тя, аз ще 1666 01:08:02,010 --> 01:08:03,160 върнете нещо случаен. 1667 01:08:03,160 --> 01:08:05,160 Не правете това у дома си, защото това е просто погрешно. 1668 01:08:05,160 --> 01:08:08,000 Но се math3, позволете ми да го стартирате. 1669 01:08:08,000 --> 01:08:10,690 Така че има нищо общо с това, което Връщам, само трябва да се направи 1670 01:08:10,690 --> 01:08:11,940 с какво аз съм печат. 1671 01:08:11,940 --> 01:08:14,150 Но аз го чух тук. 1672 01:08:14,150 --> 01:08:15,270 Какво? 1673 01:08:15,270 --> 01:08:17,524 АУДИТОРИЯ: Така че ние трябва да напишете номера в 1674 01:08:17,524 --> 01:08:19,680 разделението като 1675 01:08:19,680 --> 01:08:20,319 >> Дейвид Малан: Добре добро. 1676 01:08:20,319 --> 01:08:22,810 Така че ние трябва да напишете номера, участващи в 1677 01:08:22,810 --> 01:08:25,979 разделение тук като плаваща запетая самите стойности. 1678 01:08:25,979 --> 01:08:29,359 Така че проблемът тук е както преди: C, както и с много 1679 01:08:29,359 --> 01:08:31,819 езици, има различни типове данни. 1680 01:08:31,819 --> 01:08:34,600 И тези типове данни, например, са тези тук. 1681 01:08:34,600 --> 01:08:37,430 И данните въпросните видове, когато въведете 1 и след това 1682 01:08:37,430 --> 01:08:40,870 тип 10, вероятно са какви типове данни? 1683 01:08:40,870 --> 01:08:42,170 Така че това е може би едно цяло число, нали? 1684 01:08:42,170 --> 01:08:44,149 Това определено не е поплавък, защото няма знак след десетичната 1685 01:08:44,149 --> 01:08:45,460 точка или нещо подобно. 1686 01:08:45,460 --> 01:08:48,270 Така че наистина, имам вътр разделени от вътр. 1687 01:08:48,270 --> 01:08:52,160 >> Така че нещо интересно за математика и компютър е, че 1688 01:08:52,160 --> 01:08:54,840 ако правиш разделение при използване на цели числа - 1689 01:08:54,840 --> 01:08:57,310 1 делено на 10, да е 0.1. 1690 01:08:57,310 --> 01:09:01,420 Въпреки това, когато се раздели цяло число от цяло число, 1691 01:09:01,420 --> 01:09:06,859 Отговорът трябва да бъде цяло число, само защото, за сега. 1692 01:09:06,859 --> 01:09:08,630 И какъв е изводът? 1693 01:09:08,630 --> 01:09:13,640 Е, ако отговорът е 1 делено на 10, се равнява на 0.1, какво 1694 01:09:13,640 --> 01:09:15,680 компютъра ще направя е да имам никаква представа как да 1695 01:09:15,680 --> 01:09:19,270 представляват 0.1, защото това е плаваща стойност точка, а не 1696 01:09:19,270 --> 01:09:21,910 цяло число;, че ще отреже всичко след 1697 01:09:21,910 --> 01:09:27,470 десетичната точка и просто да ви покажа 0 в началото. 1698 01:09:27,470 --> 01:09:29,540 А фактът, че това е печат като плаваща запетая 1699 01:09:29,540 --> 01:09:31,200 стойност, това е просто естетически нещо. 1700 01:09:31,200 --> 01:09:34,279 Това е така, защото аз съм принуждава компютъра да отпечатате това като 1701 01:09:34,279 --> 01:09:35,229 плаваща запетая стойност. 1702 01:09:35,229 --> 01:09:37,720 И наистина аз съм го декларира като поплавък, но математиката е 1703 01:09:37,720 --> 01:09:39,010 случва тук. 1704 01:09:39,010 --> 01:09:41,859 >> Така че, нека действително определи това в един доста лесен начин. 1705 01:09:41,859 --> 01:09:45,250 Защо не мога да направя 10.0 и 1.0, въпреки че 1706 01:09:45,250 --> 01:09:47,609 технически може да се размине само с един от тези. 1707 01:09:47,609 --> 01:09:50,630 Сега нека да вървим напред и да math3. 1708 01:09:50,630 --> 01:09:56,350 Позволете ми да отида напред и сега тичам math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 И сега, о, момче. 1710 01:09:57,500 --> 01:10:00,050 Сега имаме съвсем нов проблем. 1711 01:10:00,050 --> 01:10:05,600 Толкова по-добре, нали, ние сме по-близо до 0,1, но това, което е ясно 1712 01:10:05,600 --> 01:10:06,240 наред? 1713 01:10:06,240 --> 01:10:08,260 Освен ако не сме били лъжа в продължение на години, нали? 1714 01:10:08,260 --> 01:10:13,660 1 делено на 10, всъщност не е съвсем 0,1, така че това, което е 1715 01:10:13,660 --> 01:10:14,700 всъщност се случва тук? 1716 01:10:14,700 --> 01:10:16,420 Ами да на разума през това логично. 1717 01:10:16,420 --> 01:10:19,200 Ако компютърът разполага само с ограничено количество RAM да започне 1718 01:10:19,200 --> 01:10:23,530 , и наистина компютърът използва само 32 бита за 1719 01:10:23,530 --> 01:10:26,200 плаваща запетая стойност, то е естествено, че с 1720 01:10:26,200 --> 01:10:29,870 краен брой на битовете, 32 в този случай, да, можете да 1721 01:10:29,870 --> 01:10:31,050 представляват много неща. 1722 01:10:31,050 --> 01:10:33,220 То всъщност е четири милиарда различни стойности могат да бъдат 1723 01:10:33,220 --> 01:10:38,040 представена с 32 бита, от 2 до 32, но все още е ограничен. 1724 01:10:38,040 --> 01:10:40,730 Така че проблемът е, че има безкраен брой на недвижимите 1725 01:10:40,730 --> 01:10:41,370 номера, нали. 1726 01:10:41,370 --> 01:10:43,560 Ако ми дадеш реален брой, винаги може да ви намери един 1727 01:10:43,560 --> 01:10:46,080 малко по-голям, по-малко, като просто променя 1728 01:10:46,080 --> 01:10:47,970 номера, които са след десетичната запетая. 1729 01:10:47,970 --> 01:10:50,870 Така че, ако не да има безкраен брой на битовете, 1730 01:10:50,870 --> 01:10:52,940 не може да представлява безкрайна 1731 01:10:52,940 --> 01:10:54,800 броя на реалните числа. 1732 01:10:54,800 --> 01:10:58,090 >> Така че този присъщ неточности в компютрите и 1733 01:10:58,090 --> 01:11:00,930 това стане спъна през цялото време, дори и в най-простите на 1734 01:11:00,930 --> 01:11:02,260 програми като тази. 1735 01:11:02,260 --> 01:11:05,640 Но също и в някои много реални проблеми от световен мащаб, както и. 1736 01:11:05,640 --> 01:11:07,790 Всъщност, нека да отделим момент просто да погледнете 1737 01:11:07,790 --> 01:11:09,530 нещо, което всъщност се е случило в действителност. 1738 01:11:09,530 --> 01:11:11,620 Ще гледате само първите няколко минути, а след това 1739 01:11:11,620 --> 01:11:13,270 ние ще публикуваме онлайн връзка. 1740 01:11:13,270 --> 01:11:16,700 Но това е доказателство за точно това, което може да се обърка съвсем 1741 01:11:16,700 --> 01:11:19,680 честно казано, в един много трагичен начин, когато тези неща не са 1742 01:11:19,680 --> 01:11:23,870 оценява и не само ние, хората правят грешки, когато става въпрос за 1743 01:11:23,870 --> 01:11:26,792 тези видове на подробностите по изпълнението на съвременните компютри. 1744 01:11:26,792 --> 01:11:27,284 >> [Видео игра] 1745 01:11:27,284 --> 01:11:30,730 Ние сега се върнем към инженерни бедствия на съвременни чудеса. 1746 01:11:30,730 --> 01:11:32,200 Компютри. 1747 01:11:32,200 --> 01:11:34,920 Всички сме да приеме често проблемите 1748 01:11:34,920 --> 01:11:36,750 че отиде с тях. 1749 01:11:36,750 --> 01:11:40,690 Бъгове, вируси и софтуерни бъгове са малки цени 1750 01:11:40,690 --> 01:11:42,550 плащат за удобство. 1751 01:11:42,550 --> 01:11:45,170 Но във високи технологии и висока скорост на военни и пространство 1752 01:11:45,170 --> 01:11:48,450 програмни приложения, най-малкият проблем може да бъде 1753 01:11:48,450 --> 01:11:52,220 възвеличи в бедствие. 1754 01:11:52,220 --> 01:11:56,780 На 4 юни 1996 г., учените са подготвени да започне безпилотен 1755 01:11:56,780 --> 01:11:58,430 Ракетата "Ариана 5. 1756 01:11:58,430 --> 01:12:00,750 Тя носеше научни спътници, предназначени да 1757 01:12:00,750 --> 01:12:03,580 установи точно как магнитното поле на земята 1758 01:12:03,580 --> 01:12:06,900 взаимодейства със слънчеви ветрове. 1759 01:12:06,900 --> 01:12:10,330 Ракетата е била построена за Европейската космическа агенция и 1760 01:12:10,330 --> 01:12:13,450 започнаха от централата на брега на Френска Гвиана. 1761 01:12:13,450 --> 01:12:16,970 >> За около 37 секунди от полета, те първи 1762 01:12:16,970 --> 01:12:19,700 забелязали нещо не е наред, че дюзите 1763 01:12:19,700 --> 01:12:21,590 поклащайки се на начина, по който те наистина не трябва. 1764 01:12:21,590 --> 01:12:25,020 Около 40 секунди в полет, ясно превозни средства 1765 01:12:25,020 --> 01:12:27,340 е в беда, и това е, когато те е взела решение да 1766 01:12:27,340 --> 01:12:28,136 го унищожи. 1767 01:12:28,136 --> 01:12:31,450 Служител диапазон на безопасност с огромен кураж натисна 1768 01:12:31,450 --> 01:12:34,160 бутона, взриви ракетата, преди да може да се превърне в 1769 01:12:34,160 --> 01:12:37,470 опасност за обществената безопасност. 1770 01:12:37,470 --> 01:12:40,750 >> Това беше първата разходка на Ариана 5, и 1771 01:12:40,750 --> 01:12:43,990 е извършено унищожаване поради недостатък, вградени в 1772 01:12:43,990 --> 01:12:45,480 ракетата софтуер. 1773 01:12:45,480 --> 01:12:47,660 >> Проблемът на "Ариана" беше, че има номер, който 1774 01:12:47,660 --> 01:12:51,245 изисква 64 бита, за да се изразят и те искаха да го конвертирате 1775 01:12:51,245 --> 01:12:53,010 16-битов номер. 1776 01:12:53,010 --> 01:12:54,900 Те предполагаха, че броят никога не е бил 1777 01:12:54,900 --> 01:12:56,280 ще бъде много голяма, 1778 01:12:56,280 --> 01:12:59,920 , които най-много на тези цифри в 64 броя малко 0s. 1779 01:12:59,920 --> 01:13:01,860 Те са били погрешни. 1780 01:13:01,860 --> 01:13:04,550 >> Невъзможността на една софтуерна програма, за да приемете 1781 01:13:04,550 --> 01:13:07,730 вид на номер, генериран от друга, е в основата на 1782 01:13:07,730 --> 01:13:08,930 недостатъчност. 1783 01:13:08,930 --> 01:13:11,490 Разработка на софтуер е станала много скъпа част от 1784 01:13:11,490 --> 01:13:13,280 нова технология. 1785 01:13:13,280 --> 01:13:16,530 На ракета "Ариана 4" е била много успешна. 1786 01:13:16,530 --> 01:13:19,100 Така че голяма част от софтуер, създаден за него е използвано също и 1787 01:13:19,100 --> 01:13:21,050 в Ариана 5. 1788 01:13:21,050 --> 01:13:25,530 >> - Основният проблем е, че "Ариана 5 е по-бързо, 1789 01:13:25,530 --> 01:13:27,280 ускорява по-бързо. 1790 01:13:27,280 --> 01:13:30,590 И софтуерът не се отчитат за това. 1791 01:13:30,590 --> 01:13:33,060 >> -Унищожаване на ракетата е огромен финансов 1792 01:13:33,060 --> 01:13:37,670 бедствия, поради минута грешка софтуер. 1793 01:13:37,670 --> 01:13:40,750 Но това не е първият път, данни преобразуване проблеми 1794 01:13:40,750 --> 01:13:43,680 измъчван модерни ракетни технологии. 1795 01:13:43,680 --> 01:13:44,390 >> Дейвид Малан: Ще го оставите в това. 1796 01:13:44,390 --> 01:13:46,870 Но това е свидетелство за това колко приложим дори някои от 1797 01:13:46,870 --> 01:13:48,750 тези най-ниските детайли ниво, което сме започнали да 1798 01:13:48,750 --> 01:13:50,040 проучи днес. 1799 01:13:50,040 --> 01:13:52,510 Така че, дори можете да получите малко разсеяни може би от някои от 1800 01:13:52,510 --> 01:13:55,240 синтаксиса и arcaneness тук, да разбере, че през 1801 01:13:55,240 --> 01:13:57,690 мандат ще бъдат насочени само от това колко е приложимо това е да се 1802 01:13:57,690 --> 01:13:59,530 светове далеч отвъд CS. 1803 01:13:59,530 --> 01:14:00,780 Ще се видим в сряда.