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